L : paysage, P : portrait $orientation = "L"; // $format => A3, A4 $format = "A4"; // $largeurtab : en fonction du format et de l'orientation choisit $largeurtab = 282; // Nombre de candidats par page $nbcandpage = 8; // Affichage des noms ou des numéros d'ordre (1:nom, 0:n° d'ordre) $affichernom = 0; /** * Variables générales de l'application */ if (file_exists ("../dyn/custom/var.inc")) { include ("../dyn/custom/var.inc"); } else { include ("../dyn/var.inc"); } /** * Fichiers requis par FPDF */ define ('FPDF_FONTPATH','font/'); require ("fpdf_etat.php"); /** * Connexion à la BDD */ require ("DB.php"); include ("../dyn/connexion.php"); $db =& DB :: connect ($dsn, $db_option); if (DB :: isError ($db)) { die ($db -> getMessage (). " - Erreur BDD : connexion."); } if ($DEBUG == 1) { echo "La base ".$dsn ['database']." est connectée.
"; } /** * Récupération des variables collectivités */ $res = $db -> query ($sql_collectivite); if (DB :: isError ($res)) { die ($res -> getMessage ()." - Erreur BDD requête: [".$sql_collectivite."]."); } while ($row =& $res -> fetchRow ()) { $ville = $row [0]; $logo = $row [1]; $nom = $row [2]; } $res -> free (); /** * On récupère le code de l'élection dans la variable GET */ if (isset ($_GET ['idx'])) { $idx = $_GET ['idx']; } else { $idx = ""; } /** * Récupération des variables de l'élection */ $sql = "select election_libelle, election_nbcandidat, election_date, election_tour from election where election = '".$idx."'"; $res = $db -> query ($sql); if (DB :: isError ($res)) { die ($res -> getMessage ()." - Erreur BDD requête: [".$sql."]."); } while ($row =& $res -> fetchRow ()) { $libelle = $row [0]; $nbcandidat = $row [1]; $date = $row [2]; $tour = $row [3]; } $res -> free (); // Formatage de la date $d = explode ('-',$date); $date = $d [2]."/".$d [1]."/".$d [0]; /** * Récupération des variables candidat */ $sql = "select election_candidat_ordre, candidat_nom, candidat_prenom from election_candidat inner join candidat on candidat.candidat = election_candidat.candidat where election = '".$idx."' order by election_candidat_ordre"; $res = $db -> query ($sql); if (DB :: isError ($res)) { die ($res -> getMessage ()." - Erreur BDD requête: [".$sql."]"); } while ($row =& $res -> fetchRow ()) { $candidat [$row [0]] = $row [2]." ".$row [1]; } $res -> free (); /** * Récupération des variables de canton */ $sql = "select canton, canton_libelle from canton where canton <> 'T' order by canton_libelle"; $res = $db -> query ($sql); if (DB :: isError ($res)) { die ($res -> getMessage ()."erreur ".$sql); } while ($row =& $res -> fetchRow ()) { $canton [$row [0]] = $row [1]; } $res -> free (); /** * Gestion des variables pour le changement de page selon le nombre de candidats */ if ($nbcandidat <= $nbcandpage) { $nbpage = 1; $nbcandidat_first = 1; $nbcandidat_last = $nbcandidat; } else { $nbpage = ceil ($nbcandidat / $nbcandpage); $nbcandidat_first = 1; $nbcandidat_last = $nbcandpage; } /** * Variables du titre de l'état : Intitulé de l'élection (présent sur chaque page) */ $etat['titre'] = $libelle." du ".$date." Tour ".$tour ." - ". $ville; $titre = $etat["titre"]; $etat['titrehauteur'] = "10"; $etat['titrefont'] = "helvetica"; $etat['titreattribut'] = "B"; $etat['titretaille'] = "12"; $etat['titreleft'] = "20"; $etat['titretop'] = "5"; $etat['titrebordure'] = "0"; $etat['titrealign'] = "L"; $etat['titrelargeur'] = "0"; /* * Corps de l'état : Correspondance des candidats avec n° d'ordre */ $etat['corpshauteur'] = "8"; $etat['corpsfont'] = "helvetica"; $etat['corpsattribut'] = "B"; $etat['corpstaille'] = "7"; $etat['corpsleft'] = "10"; $etat['corpstop'] = "10"; $etat['corpsbordure'] = "0"; $etat['corpsalign'] = "R"; $etat['corpslargeur'] = "0"; /* * Variables de l'état */ $etat ['orientation'] = $orientation; $etat ['format'] = $format; $etat ['footerfont'] = "helvetica"; $etat ['footerattribut'] = ""; $etat ['footertaille'] = "0"; $etat ['se_font'] = "helvetica"; $etat ['se_margeleft'] = "7"; $etat ['se_margetop'] = "2"; $etat ['se_margeright'] = "10"; $etat ['se_couleurtexte'] = array ("0", "0", "0"); $etat ['sousetat'] = array ("resultat"); $unite = "mm"; /* * Création pdf */ $pdf = new PDF ($etat ["orientation"], $unite, $etat ["format"]); $pdf -> footerfont = $etat ["footerfont"]; $pdf -> footertaille = $etat ["footertaille"]; $pdf -> footerattribut = $etat ["footerattribut"]; $pdf -> SetMargins ($etat ['se_margeleft'], $etat ['se_margetop'], $etat['se_margeright']); $pdf -> SetDisplayMode ('real', 'single'); $pdf -> AliasNbPages (); /** * On construit chaque page du pdf */ for ($j = 0; $j < $nbpage; $j++) { // On remplit le corps avec les noms des candidats $etat['corps'] = ""; for ($i = $nbcandidat_first; $i <= $nbcandidat_last; $i++) { $etat ['corps'] .= $i."-".$candidat [$i]."; "; } $corps = $etat["corps"]; // On ajoute la page $pdf -> AddPage (); // On affiche le titre et le corps de la page $pdf -> SetFont($etat["titrefont"], $etat["titreattribut"], $etat["titretaille"]); $pdf -> SetXY($etat["titreleft"], $etat["titretop"]); $pdf -> MultiCell($etat["titrelargeur"], $etat["titrehauteur"], $titre, $etat["titrebordure"], $etat["titrealign"], 0); $pdf -> SetFont($etat["corpsfont"], $etat["corpsattribut"], $etat["corpstaille"]); $pdf -> SetXY($etat["corpsleft"], $etat["corpstop"]); $pdf -> MultiCell($etat["corpslargeur"], $etat["corpshauteur"] , $corps, $etat["corpsbordure"], $etat["corpsalign"], 0); // Pour chaque canton on affiche un sous-état foreach ($canton as $key => $can) { // Entete + Ligne de chaque bureau $sousetattab = "canton"; include ("../sql/".$dsn['phptype']."/rescanton_pdf.inc"); $pdf -> sousetat ($db, $etat, $sousetat); // Total du canton sans entête $sousetattab = "totalcanton"; include ("../sql/".$dsn['phptype']."/rescanton_pdf.inc"); $pdf -> sousetat ($db, $etat, $sousetat); } // On affiche un sous-état résultat total $sousetattab = "total"; include ("../sql/".$dsn['phptype']."/rescanton_pdf.inc"); $pdf -> sousetat ($db, $etat, $sousetat); // Gestion des candidats affichés $nbcandidat_first += $nbcandpage; if ($nbcandidat < ($nbcandidat_last + $nbcandpage)) { $nbcandidat_last = $nbcandidat; } else { $nbcandidat_last += $nbcandpage; } } /** * Sortie pdf */ $pdf -> Output ($idx."-canton.pdf", 'F'); $pdf -> Output (); /** * Déconnexion à la BDD */ $db -> disconnect (); if ($DEBUG == 1) { echo "La base ".$dsn['database']." est déconnectée.
"; } ?>