1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
| <?php
class listeFaits {
// liste de faits disciplinaires à imprimer pour un élève
var $liste = array();
// l'identificateur de l'élève
var $ideleve;
//------------------------------------------------------------------------------------
// constructeur de l'objet
function listeFaits ($ideleve)
{
$this->ideleve = $ideleve;
// lire la fiche disciplinaire de l'élève dont l'id est connu
require ("config/confbd.inc.php");
$lienDB = mysql_connect($sql_serveur, $sql_user, $sql_passwd);
mysql_select_db ($sql_bdd);
$sql = "SELECT ades_faits.*, ades_retenues.ladate as dateRetenue, ";
$sql .= "ades_retenues.duree, ades_retenues.heure, ades_retenues.local FROM ades_faits ";
$sql .= "LEFT JOIN ades_retenues on ades_faits.idretenue = ades_retenues.idretenue ";
$sql .= "WHERE ideleve='$ideleve' AND supprime !='O' ORDER BY type, ladate ASC";
//$sql .= "SELECT sum(nbre) from ades_faits";
// echo $sql;
$resultat = mysql_query ($sql);
mysql_close ($lienDB);
while ($faitSuivant = mysql_fetch_assoc($resultat))
{
$typeFait = $faitSuivant['type'];
$this->liste[$typeFait][] = $faitSuivant;
}
}
function debutTable ()
{
return "\n<table width=\"100%\" border=\"1\" cellspacing=\"1\" cellpadding=\"1\">\n";
}
function finTable ()
{
return "</table>\n</div>\n<br />\n";
}
function images ($type)
{
switch ($type)
{
case "imgedt":
$img = "<a href=\"fait.php?mode=editer&ideleve={$this->ideleve}&idfait=##idfait##\">";
$img .= "<img src=\"images/editer.png\" $taille alt=\"editer\" ";
$img .= "border=\"0\" title=\"editer\"></a>";
break;
case "imgsup":
$img = "<a href=\"fait.php?mode=confirmer&ideleve={$this->ideleve}&idfait=##idfait##\">";
$img .= "<img src=\"images/suppr.png\" $taille alt=\"supprimer\" ";
$img .= "border=\"0\" $title=\"supprimer\"></a>";
break;
case "imgimp":
$img = "<a href=\"imprretenue.php?idfait=##idfait##\" target=\"_blank\">";
$img .= "<img src=\"images/i.gif\" $taille alt=\"imprimer\" ";
$img .= "border=\"0\" title=\"imprimer\"></a>";
break;
case "imginfo":
$img = "<img src=\"images/interro.png\" $taille $img border=\"0\" alt=\"rédacteur\">";
break;
}
return $img;
}
function ecrire ()
{
$contexte = "tableau";
// lecture de tous les types de faits et de leurs caractéristiques
$listeTypeFaits = new typefait();
// on passe chacun des types de faits en revue
foreach ($listeTypeFaits->liste as $leTypeFait)
{
$typeFait = $leTypeFait['id_TypeFait'];
$sousListe = $this->liste[$typeFait];
$nombreFaits = count($sousListe);
// ESSAIS DE $total='SELECT sum(nbre) from ades_faits';
if ($nombreFaits > 0)
{
// --------------------------------------------------------
// on recherche la description du fait en cours
// dans la liste de description de tous les types de faits,
// on ne retient que le fait de type actuel $typeFait
$tableauEnCours = $listeTypeFaits->descriptionNo($typeFait);
$couleurFond = $tableauEnCours['couleurFond'];
$couleurTexte = $tableauEnCours['couleurTexte'];
$titreFait = $tableauEnCours['titreFait'];
$typeDeRetenue = $tableauEnCours['typeDeRetenue'];
// $lesChamps est un tableau de dimension variable en fonction
// des champs nécessaires à la description du fait (analysé plus loin)
$lesChamps = $tableauEnCours['champs'];
// ---------------------------------------------------------
// ---------------------------------------------------------
// entête du fait disciplinaire
$tableau .= "\n<div style=\"background-color:#$couleurFond;color:#$couleurTexte\">";
$tableau .= "<strong>$titreFait</strong> nombre : $nombreFaits\n";
$tableau .= "<strong>Total des jours:</strong> nombre : $total\n";
$tableau .= $this->debutTable();
// colonne pour les icônes editer, supprimer, imprimer
$tableau .= "<tr>\n\t<td width=\"48\"> </td>\n";
foreach ($lesChamps as $leChamp)
{
// Vérifier que le champ est visible dans le $contexte
if (ereg($contexte, $leChamp['contextes']))
$tableau .= "\t<td>{$leChamp['label']}</td>\n";
}
// on clôture la ligne de titre
$tableau .= "</tr>\n";
// fin de l'entête ----------------------------------------
// description du ou des faits correspondant à l'entête
foreach ($sousListe as $faitSuivant)
{
$nofait = (string) $faitSuivant['idfait'];
$img1 = ereg_replace('##idfait##', $nofait, $this->images('imgedt'));
$img2 = ereg_replace('##idfait##', $nofait, $this->images('imgsup'));
$img3 = ereg_replace('##idfait##', $nofait, $this->images('imgimp'));
$tableau .= "<tr>\n";
$images = $img1.$img2;
if ($typeDeRetenue) $images .= $img3;
$tableau .= "\n<td>$images</td>\n";
// détail de chacune des colonnes du tableau
foreach ($lesChamps as $leChamp)
// si le champ $leChamp doit apparaître dans le contexte défini
if (ereg($contexte, $leChamp['contextes']))
{
$nomChamp = $leChamp['champ'];
$typeDate = $leChamp['typeDate'];
$donnee = $faitSuivant[$nomChamp];
// si c'est une date, convertir de sql vers php
if ($typeDate) $donnee = sh_date_sql_php($donnee);
$tableau .="\t<td>$donnee</td>\n";
}
// clôturer la ligne du tableau en cours
$tableau .= "</tr>\n";
}
$tableau .= $this->finTable();
}
}
return $tableau;
}
}
?> |
Partager