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 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
| <?php
session_start();
//indique que le type de la réponse renvoyée au client sera du Texte
header('Content-Type: text/plain ; charset=utf-8');
//anti Cache pour HTTP/1.1
header('Cache-Control: no-cache , private');
//anti Cache pour HTTP/1.0
header('Pragma: no-cache');
//require('connection.php');
require_once dirname(__FILE__) . '/model/config/config.inc.php';
require_once MODEL_PATH . '/autoloader/Autoloader.class.php';
$autoloader = new Autoloader($configPath);
$sql = new SqlManager(DB, USER_DB, PWD_DB);
include('connection.php');
require('fonctions/check_in_range.php');
//Ce code gère le calendrier de l'onglet mon calendrier
require('date.php');
$date = new Date();
if(!isset($_POST['year']))
{
$year = date('Y');
}
else
{
$year = $_POST['year'];
}
//print_r($_POST);
//$events = $date->getEvents($year);
$dates = $date->getAll($year);
//print_r($dates);
$retour = "";
//current Retourne l'élément courant du tableau
$dates = current($dates);
$sql = $bdd->prepare('SELECT jour FROM indisponibilites WHERE ref_identification = :id');
$arr = array(':id'=>$_SESSION['id']);
$res = $sql->execute($arr);
while($row = $sql->fetch(PDO::FETCH_ASSOC))
{
$arr_jours[] = $row['jour'];
}
//je sélectionne toutes les dates des stages avec le nom et prénom du stagiaire
$chaine = 'SELECT date_debut, date_fin, ref_etudiant, nom, prenom ';
$chaine.= 'FROM stage LEFT JOIN etudiant ON etudiant.matricule = stage.ref_etudiant ';
$chaine.= 'WHERE ref_identification = :id';
$sql = $bdd->prepare($chaine);
$arr = array(':id'=>$_SESSION['id']);
$res = $sql->execute($arr);
while($row = $sql->fetch(PDO::FETCH_ASSOC))
{
$arr_et_ULB[] = array(
'debut' => strtotime($row['date_debut']),
'fin' => strtotime($row['date_fin']),
'nom_et' => $row['nom'].' '.$row['prenom']
);
}
//print_r($arr_et_ULB);
//$m ce sont les mois
foreach ($dates as $m=>$days)
{
$retour .= '<table id="tab_cal"><thead><tr>';
foreach ($date->days as $d)
{
$retour.= '<th>'.substr($d,0,3).'</th>';
}
$retour .= '</tr></thead>';
//echo $retour;
//return false;
$retour .= '<tbody><tr>';
//end Positionne le pointeur de tableau en fin de tableau
$end = end($days);
foreach($days as $d=>$w)
{
$time = strtotime("$year-$m-$d");
//fusion des cellules au cas où le premier jour du mois ne commence pas un lundi
if($d == 1 && $w != 1)
{
$retour.= '<td colspan="'.($w-1).'" class="padding noclass"></td>';
}
//construction de l'id de chaque TD
$l_id = $year.'-';
if($m < 10)
{
$l_id .= '0'.$m.'-';
}
else
{
$l_id .= $m.'-';
}
if($d < 10)
{
$l_id .= '0'.$d;
}
else
{
$l_id .= $d;
} //fin de la construction de l'id de chaque TD
$retour.= '<td id="'.$l_id.'" ';
//je vérifie dans l'array $arr_jours que l'id ne s'y trouve pas, autrement, c'est un jour rouge
if(in_array($l_id,$arr_jours))
{
$retour .= ' class="occupe" ';
}
else
{
$date_from_user = $l_id;
$arr = check_in_range($date_from_user, $arr_et_ULB);
foreach($arr as $array)
{
if($l_id == $array['date_stage'])
{
$retour .= ' class="et_ulb" ';
}
}
}
$retour .= '>';
//si c'est le jour d'aujourd'hui, on met un encadré rouge autour du jour
if($time == strtotime(date('Y-m-d')))
{
$retour.= ' class="today" >';
}
$retour.= '<div class="relative">';
//c'est ici que l'on affiche les jours dans les td (1, 2, 3... 30, 31)
$retour.= '<div class="day">'.$d;
$retour .= '</div>';
//je crée une nouvelle div pour le nom du stagiaire
$retour .= '<div id="nom_et">';
//utilisation du tableau associatif créé dans la fonction
foreach($arr as $array)
{
if($l_id == $array['date_stage'])
{
$retour .= $array['nom_et'];
}
}
$retour .= '</div>';
$retour .= '</div>';
$retour .= '<div class="daytitle">';
$retour.= '</div></td>';
if($w == 7)
{
$retour.= '</tr><tr>';
}
} //fin du foreach($days as $d=>$w)
//au cas où un mois ne termine pas un dimanche, fusion des td
if($end != 7)
{
$retour .= '<td colspan="'.(7-$end).'" class="padding noclass"></td>';
}
$retour.= '</tr>';
$retour.= '</tbody>';
$retour.= '</table>';
$retour .='</div>';
$retour.= '#';
//$retour.='</table>';
//$retour.='</div>';
} //fin du foreach ($dates as $m=>$days)
//$retour.='</div>';
echo $retour;
?> |
Partager