generation de carte d'adherent bcp plus generique (se basse sur des constantes definis par l'administrateur pour la mise en page de la carte)

This commit is contained in:
jlb 2003-08-29 12:59:22 +00:00
parent b808c97629
commit cc474d4df7

View File

@ -1,7 +1,6 @@
<?php
//define('FPDF_FONTPATH','font/');
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2002-2003 Jean-Louis Bergamo <jlb@j1b.org>
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -23,36 +22,48 @@
*/
require($GLOBALS["DOCUMENT_ROOT"]."/adherents/pre.inc.php");
require($GLOBALS["DOCUMENT_ROOT"]."/adherent.class.php");
require($GLOBALS["DOCUMENT_ROOT"]."/adherent_type.class.php");
require($GLOBALS["DOCUMENT_ROOT"]."/adherents/adherent_options.class.php");
require($GLOBALS["DOCUMENT_ROOT"]."/cotisation.class.php");
require($GLOBALS["DOCUMENT_ROOT"]."/paiement.class.php");
require($GLOBALS["DOCUMENT_ROOT"]."/adherents/XML-RPC.functions.php");
require_once("../pre.inc.php");
require_once('PDF_card.class.php');
/*-------------------------------------------------
Pour créer l'objet on a 2 moyens :
Soit on donne les valeurs en les passant dans un tableau (sert pour un format personnel)
Soit on donne le type d'étiquette au format AVERY
-------------------------------------------------*/
// liste des patterns remplacable dans le texte a imprimer
$patterns = array (
'/%PRENOM%/',
'/%NOM%/',
'/%SERVEUR%/',
'/%SOCIETE%/',
'/%ADRESSE%/',
'/%CP%/',
'/%VILLE%/',
'/%PAYS%/',
'/%EMAIL%/',
'/%NAISS%/',
'/%PHOTO%/',
'/%TYPE%/',
'/%ID%/',
'/%ANNEE%/'
);
/*
*-------------------------------------------------
* Pour créer l'objet on a 2 moyens :
* Soit on donne les valeurs en les passant dans un tableau (sert pour un format personnel)
* Soit on donne le type d'étiquette au format AVERY
*-------------------------------------------------
*/
// Dans cet exemple on va commencer l'impression des étiquettes à partir de la seconde colonne (cf les 2 derniers paramètres 1 et 2)
//$pdf = new PDF_Label(array('name'=>'perso1', 'marginLeft'=>1, 'marginTop'=>1, 'NX'=>2, 'NY'=>7, 'SpaceX'=>0, 'SpaceY'=>0, 'width'=>99.1, 'height'=>'38.1', 'metric'=>'mm', 'font-size'=>14), 1, 2);
//$pdf = new PDF_card('L7163', 1, 2);
$pdf = new PDF_card('CARD', 1, 1);
//$db = new Db();
$pdf->Open();
$pdf->AddPage();
// Choix de l'annee d'impression ou annee courante.
if (!isset($annee)){
$now = getdate();
$annee=$now['year'];
}
$sql = "SELECT d.rowid, d.prenom, d.nom, d.societe, ".$db->pdate("d.datefin")." as datefin, adresse,cp,ville,pays, t.libelle as type";
$sql .= " , d.email";
// requete en prenant que les adherents a jour de cotisation
$sql = "SELECT d.rowid, d.prenom, d.nom, d.societe, ".$db->pdate("d.datefin")." as datefin, adresse,cp,ville,pays, t.libelle as type, d.naiss, d.email, d.photo";
$sql .= " FROM llx_adherent as d, llx_adherent_type as t";
$sql .= " WHERE d.fk_adherent_type = t.rowid AND d.statut = 1 AND datefin > now()";
$sql .= " ORDER BY d.rowid ASC ";
@ -65,12 +76,28 @@ if ($result)
while ($i < $num)
{
$objp = $db->fetch_object( $i);
$pdf->Add_PDF_card(sprintf("%s\n%s\n%s\n%s\n%s, %s\n%s", $objp->type."".$objp->rowid,ucfirst(strtolower($objp->prenom))." ".strtoupper($objp->nom),"<".$objp->email.">", ucwords(strtolower($objp->adresse)), $objp->cp, strtoupper($objp->ville), ucfirst(strtolower($objp->pays))),$annee,"Association FreeLUG http://www.freelug.org/");
// attribut a remplacer
$replace = array (
ucfirst(strtolower($objp->prenom)),
strtoupper($objp->nom),
"http://".$_SERVER["SERVER_NAME"]."/",
$objp->societe,
ucwords(strtolower($objp->adresse)),
$objp->cp,
strtoupper($objp->ville),
ucfirst(strtolower($objp->pays)),
$objp->email,
$objp->naiss,
$objp->photo,
$objp->type,
$objp->rowid,
$annee
);
// imprime le texte specifique sur la carte
//$pdf->Add_PDF_card(sprintf("%s\n%s\n%s\n%s\n%s, %s\n%s", $objp->type." n° ".$objp->rowid,ucfirst(strtolower($objp->prenom))." ".strtoupper($objp->nom),"<".$objp->email.">", ucwords(strtolower($objp->adresse)), $objp->cp, strtoupper($objp->ville), ucfirst(strtolower($objp->pays))),$annee,"Association FreeLUG http://www.freelug.org/");
$pdf->Add_PDF_card(preg_replace ($patterns, $replace, ADH_CARD_TEXT),preg_replace ($patterns, $replace, ADH_CARD_HEADER_TEXT),preg_replace ($patterns, $replace, ADH_CARD_FOOTER_TEXT));
$i++;
}
// On imprime les étiquettes
// for($i=0;$i<$num;$i++)
// $pdf->Add_PDF_Label(sprintf("%s\n%s\n%s\n%s, %s, %s", "Laurent $i", 'Immeuble Titi', 'av. fragonard', '06000', 'NICE', 'FRANCE'));
$db->close();
$pdf->Output();