From 52cb86b103fe861b22d3e9958bb0041273d117ad Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 4 May 2008 01:39:08 +0000 Subject: [PATCH] Choix of label format is in a combo list --- htdocs/adherents/cartes/PDF_card.class.php | 104 ++++++++++++--------- htdocs/adherents/cartes/carte.php | 12 +-- htdocs/admin/adherent.php | 48 +++++++--- 3 files changed, 97 insertions(+), 67 deletions(-) diff --git a/htdocs/adherents/cartes/PDF_card.class.php b/htdocs/adherents/cartes/PDF_card.class.php index 7918ef1eaa4..6d06757d192 100755 --- a/htdocs/adherents/cartes/PDF_card.class.php +++ b/htdocs/adherents/cartes/PDF_card.class.php @@ -16,9 +16,6 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * $Id$ - * $Source$ */ /* Inspire de PDF_Label @@ -64,7 +61,7 @@ \author Laurent Passebecq \author Rodolphe Quiedville \author Jean Louis Bergamo. - \version $Revision$ + \version $Id$ */ require_once(FPDFI_PATH.'fpdi_protection.php'); @@ -74,7 +71,6 @@ require_once(FPDFI_PATH.'fpdi_protection.php'); \class PDF_card \brief Classe afin d'éditer au format PDF des étiquettes au format Avery ou personnalisé */ - class PDF_card extends FPDF { // Propriétés privées @@ -96,8 +92,8 @@ class PDF_card extends FPDF { var $_COUNTY = 1; var $_First = 1; - // Listing of labels size - var $_Avery_Labels = array ( + // Listing of labels size + var $_Avery_Labels = array ( '5160'=>array('name'=>'5160', 'paper-size'=>'letter', 'metric'=>'mm', @@ -209,47 +205,22 @@ class PDF_card extends FPDF { 'logo1'=>'logo1.jpg', 'logo2'=>'logo2.jpg', 'fond'=>'fond.jpg') - ); + ); - // convert units (in to mm, mm to in) - // $src and $dest must be 'in' or 'mm' - function _Convert_Metric ($value, $src, $dest) { - if ($src != $dest) { - $tab['in'] = 39.37008; - $tab['mm'] = 1000; - return $value * $tab[$dest] / $tab[$src]; - } else { - return $value; - } - } + - // Give the height for a char size given. - function _Get_Height_Chars($pt) { - // Tableau de concordance entre la hauteur des caractères et de l'espacement entre les lignes - $_Table_Hauteur_Chars = array(6=>2, 7=>2.5, 8=>3, 9=>4, 10=>5, 11=>6, 12=>7, 13=>8, 14=>9, 15=>10); - if (in_array($pt, array_keys($_Table_Hauteur_Chars))) { - return $_Table_Hauteur_Chars[$pt]; - } else { - return 100; // There is a prob.. - } - } - - function _Set_Format($format) { - $this->_Metric = $format['metric']; - $this->_Avery_Name = $format['name']; - $this->_Margin_Left = $this->_Convert_Metric ($format['marginLeft'], $this->_Metric, $this->_Metric_Doc); - $this->_Margin_Top = $this->_Convert_Metric ($format['marginTop'], $this->_Metric, $this->_Metric_Doc); - $this->_X_Space = $this->_Convert_Metric ($format['SpaceX'], $this->_Metric, $this->_Metric_Doc); - $this->_Y_Space = $this->_Convert_Metric ($format['SpaceY'], $this->_Metric, $this->_Metric_Doc); - $this->_X_Number = $format['NX']; - $this->_Y_Number = $format['NY']; - $this->_Width = $this->_Convert_Metric ($format['width'], $this->_Metric, $this->_Metric_Doc); - $this->_Height = $this->_Convert_Metric ($format['height'], $this->_Metric, $this->_Metric_Doc); - $this->Set_Char_Size( $format['font-size']); - } - - function PDF_card ($format, $posX=1, $posY=1, $unit='mm') { - if (is_array($format)) { + /** + * Constructor + * + * @param unknown_type $format Avery format of label paper. For example 5160, 5161, 5162, 5163, 5164, 8600, L7163 + * @param unknown_type $posX + * @param unknown_type $posY + * @param unknown_type $unit + * @return PDF_card + */ + function PDF_card ($format, $posX=1, $posY=1, $unit='mm') + { + if (is_array($format)) { // Si c'est un format personnel alors on maj les valeurs $Tformat = $format; } else { @@ -271,6 +242,7 @@ class PDF_card extends FPDF { $this->_Set_Format($Tformat); } + //Méthode qui permet de modifier la taille des caractères // Cela modiera aussi l'espace entre chaque ligne function Set_Char_Size($pt) { @@ -281,6 +253,7 @@ class PDF_card extends FPDF { } } + // On imprime une étiqette function Add_PDF_card($texte,$header='',$footer='') { // We are in a new page, then we must add a page @@ -336,6 +309,7 @@ class PDF_card extends FPDF { } } + function _Pointille($x1=0,$y1=0,$x2=210,$y2=297,$epaisseur=1,$nbPointilles=15) { $this->SetLineWidth($epaisseur); @@ -389,5 +363,43 @@ class PDF_card extends FPDF { //$this->Color('#000000'); } + + // convert units (in to mm, mm to in) + // $src and $dest must be 'in' or 'mm' + function _Convert_Metric ($value, $src, $dest) { + if ($src != $dest) { + $tab['in'] = 39.37008; + $tab['mm'] = 1000; + return $value * $tab[$dest] / $tab[$src]; + } else { + return $value; + } + } + + // Give the height for a char size given. + function _Get_Height_Chars($pt) { + // Tableau de concordance entre la hauteur des caractères et de l'espacement entre les lignes + $_Table_Hauteur_Chars = array(6=>2, 7=>2.5, 8=>3, 9=>4, 10=>5, 11=>6, 12=>7, 13=>8, 14=>9, 15=>10); + if (in_array($pt, array_keys($_Table_Hauteur_Chars))) { + return $_Table_Hauteur_Chars[$pt]; + } else { + return 100; // There is a prob.. + } + } + + function _Set_Format($format) { + $this->_Metric = $format['metric']; + $this->_Avery_Name = $format['name']; + $this->_Margin_Left = $this->_Convert_Metric ($format['marginLeft'], $this->_Metric, $this->_Metric_Doc); + $this->_Margin_Top = $this->_Convert_Metric ($format['marginTop'], $this->_Metric, $this->_Metric_Doc); + $this->_X_Space = $this->_Convert_Metric ($format['SpaceX'], $this->_Metric, $this->_Metric_Doc); + $this->_Y_Space = $this->_Convert_Metric ($format['SpaceY'], $this->_Metric, $this->_Metric_Doc); + $this->_X_Number = $format['NX']; + $this->_Y_Number = $format['NY']; + $this->_Width = $this->_Convert_Metric ($format['width'], $this->_Metric, $this->_Metric_Doc); + $this->_Height = $this->_Convert_Metric ($format['height'], $this->_Metric, $this->_Metric_Doc); + $this->Set_Char_Size( $format['font-size']); + } + } ?> diff --git a/htdocs/adherents/cartes/carte.php b/htdocs/adherents/cartes/carte.php index 26086b879bc..59e73747645 100755 --- a/htdocs/adherents/cartes/carte.php +++ b/htdocs/adherents/cartes/carte.php @@ -16,22 +16,19 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * $Id$ - * $Source$ */ /** \file htdocs/adherents/cartes/carte.php \ingroup adherent \brief Page de creation d'une carte PDF - \version $Revision$ + \version $Id$ */ require("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php"); +require_once(DOL_DOCUMENT_ROOT."/adherents/cartes/PDF_card.class.php"); -require_once('PDF_card.class.php'); // liste des patterns remplacable dans le texte a imprimer $patterns = array ( @@ -50,6 +47,7 @@ $patterns = array ( '/%ID%/', '/%ANNEE%/' ); + /* *------------------------------------------------- * Pour créer l'objet on a 2 moyens : @@ -108,7 +106,9 @@ if ($result) // 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, ADHERENT_CARD_TEXT),preg_replace ($patterns, $replace, ADHERENT_CARD_HEADER_TEXT),preg_replace ($patterns, $replace, ADHERENT_CARD_FOOTER_TEXT)); + $pdf->Add_PDF_card(preg_replace ($patterns, $replace, $conf->global->ADHERENT_CARD_TEXT), + preg_replace ($patterns, $replace, $conf->global->ADHERENT_CARD_HEADER_TEXT), + preg_replace ($patterns, $replace, $conf->global->ADHERENT_CARD_FOOTER_TEXT)); $i++; } diff --git a/htdocs/admin/adherent.php b/htdocs/admin/adherent.php index 877f12f1a5a..6dd5592dcaa 100644 --- a/htdocs/admin/adherent.php +++ b/htdocs/admin/adherent.php @@ -260,28 +260,46 @@ function form_constantes($tableau) print $langs->trans("Desc".$obj->name) != ("Desc".$obj->name) ? $langs->trans("Desc".$obj->name) : $obj->note; print "\n"; - print ''; - if ($obj->type == 'yesno') + if ($obj->name == 'ADHERENT_ETIQUETTE_TYPE') { - print $form->selectyesno('constvalue',$obj->value,1); - print ''; - $form->select_array('consttype',array('yesno','texte','chaine'),0); - } - elseif ($obj->type == 'texte') - { - print '\n"; + print ''; + // List of possible labels. Values must exists in + // file htdocs/adherents/PDF_Card.class.php + require_once(DOL_DOCUMENT_ROOT.'/adherents/cartes/PDF_card.class.php'); + $pdfcard=new PDF_card('5160',1,1,'mm'); + $arrayoflabels=array_keys($pdfcard->_Avery_Labels); + + $form->select_array('constvalue',$arrayoflabels,$obj->value); print ''; $form->select_array('consttype',array('yesno','texte','chaine'),1); } else { - print ''; - print ''; - $form->select_array('consttype',array('yesno','texte','chaine'),2); + print ''; + if ($obj->type == 'yesno') + { + print $form->selectyesno('constvalue',$obj->value,1); + print ''; + $form->select_array('consttype',array('yesno','texte','chaine'),0); + } + elseif ($obj->type == 'texte') + { + print '\n"; + print ''; + $form->select_array('consttype',array('yesno','texte','chaine'),1); + } + else + { + print ''; + print ''; + $form->select_array('consttype',array('yesno','texte','chaine'),2); + } + print ''; } - print ''; + + print ''; print '  '; // print ''.img_delete().'';