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.
";
}
?>