function ConstruireColonne($elapse_time, $req_creneau, $duree_max, $jour_sem, $jour, $tab_id_creneaux, $j, $type_edt, $login_edt, $id_semaine_previous, &$tab_data, &$index_box, $period) { global $debug_edt; global $current_edt_id_cours; // id_cours utilisé pour les semaines A/B dans GetColor() global $week_selected; if ($debug_edt == "y") { echo "<p><b>ConstruireColonne</b><br />"; } $current_edt_id_cours = ""; $elapse_time1 = $elapse_time; // =============== 1 enregistrement existe : initialisation if ($rep_creneau = mysqli_fetch_array($req_creneau)) { $current_edt_id_cours = $rep_creneau['id_cours']; if ($debug_edt == "y") { echo "\$current_edt_id_cours={$current_edt_id_cours}<br />"; echo "<strong>" . get_info_id_cours($current_edt_id_cours) . "</strong><br />"; $current_edt_id_groupe = $rep_creneau['id_groupe']; echo "\$current_edt_id_groupe={$current_edt_id_groupe}<br />"; echo get_info_grp($current_edt_id_groupe) . "<br />"; } RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "conteneur", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], "", "demicellule" . $duree_max, "", ""); $id_semaine = $rep_creneau['id_semaine']; $duree1 = (int) $rep_creneau['duree']; if ($rep_creneau['heuredeb_dec'] != 0 and $elapse_time1 % 2 == 0) { RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], "", "cellule1", "cadre", ""); $duree1++; //$elapse_time1++; $k = (int) ($elapse_time1 / 2); } $contenu = ContenuCreneau($tab_id_creneaux[$j], $jour_sem, $type_edt, $rep_creneau['id_groupe'], $rep_creneau['id_aid'], $id_semaine, $period); RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], $rep_creneau['id_cours'], "cellule" . $rep_creneau['duree'], GetColor($rep_creneau['id_groupe']), $contenu); $elapse_time1 += $duree1; $k = (int) ($elapse_time1 / 2); } else { /* echo "DEBUG: plop<br />"; echo "\$tab_data[$jour]=<pre>"; print_r($tab_data[$jour]); echo "</pre>"; */ RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "conteneur", $tab_id_creneaux[$j], "", "", "demicellule" . $duree_max, "", ""); if ($elapse_time1 % 2 == 0) { $duree1 = 2; } else { $duree1 = 1; } RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$j], "", "", "cellule" . $duree1, "cadre", ""); $elapse_time1 += $duree1; $k = (int) ($elapse_time1 / 2); $rep_creneau['heuredeb_dec'] = 0; $rep_creneau['duree'] = 0; } // ================= procédure de remplissage $end_process = false; if ($rep_creneau['heuredeb_dec'] == 0 and $rep_creneau['duree'] == 1) { if (mysqli_num_rows($req_creneau) == 1 or mysqli_num_rows($req_creneau) == 2) { // ========== étude des cas n°14,15 RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$j], "", "", "cellule1", "cadre", ""); $duree1++; $elapse_time1++; $k = (int) ($elapse_time1 / 2); } else { if (mysqli_num_rows($req_creneau) == 3) { //echo "DEBUG: plip<br />"; // ========== étude des cas n°19, 20 $req_creneau_aux = $req_creneau; // à voir : utiliser une requête auxiliaire ne permet pas apparemment de conserver la requête d'origine dans son état initial // c'est embêtant mais j'en ai tenu compte mysqli_data_seek($req_creneau_aux, 0); $rep_creneau_aux = mysqli_fetch_array($req_creneau_aux); $heuredeb_dec_1 = $rep_creneau_aux['heuredeb_dec']; $id_semaine_1 = $rep_creneau_aux['id_semaine']; $duree1_aux = $rep_creneau_aux['duree']; $id_groupe1_aux = $rep_creneau_aux['id_groupe']; $id_cours1_aux = $rep_creneau_aux['id_cours']; $rep_creneau_aux = mysqli_fetch_array($req_creneau_aux); $heuredeb_dec_2 = $rep_creneau_aux['heuredeb_dec']; $id_semaine_2 = $rep_creneau_aux['id_semaine']; $duree2_aux = $rep_creneau_aux['duree']; $id_groupe2_aux = $rep_creneau_aux['id_groupe']; $id_cours2_aux = $rep_creneau_aux['id_cours']; $rep_creneau_aux = mysqli_fetch_array($req_creneau_aux); $heuredeb_dec_3 = $rep_creneau_aux['heuredeb_dec']; $id_semaine_3 = $rep_creneau_aux['id_semaine']; $duree3_aux = $rep_creneau_aux['duree']; $id_groupe3_aux = $rep_creneau_aux['id_groupe']; $id_cours3_aux = $rep_creneau_aux['id_cours']; $current_edt_id_cours = $rep_creneau['id_cours']; if ($heuredeb_dec_1 != 0 and $id_semaine_1 == $rep_creneau['id_semaine']) { $contenu = ContenuCreneau($tab_id_creneaux[$j], $jour_sem, $type_edt, $rep_creneau['id_groupe'], $rep_creneau['id_aid'], $id_semaine_1, $period); RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], $rep_creneau['id_cours'], "cellule" . $duree1_aux, GetColor($rep_creneau['id_groupe']), $contenu); $duree1 += (int) $duree1_aux; $elapse_time1 += (int) $duree1_aux; $k = (int) ($elapse_time1 / 2); } else { if ($heuredeb_dec_2 != 0 and $id_semaine_2 == $rep_creneau['id_semaine']) { $contenu = ContenuCreneau($tab_id_creneaux[$j], $jour_sem, $type_edt, $rep_creneau['id_groupe'], $rep_creneau['id_aid'], $id_semaine_2, $period); RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], $rep_creneau['id_cours'], "cellule" . $duree2_aux, GetColor($rep_creneau['id_groupe']), $contenu); $duree1 += (int) $duree2_aux; $elapse_time1 += (int) $duree2_aux; $k = (int) ($elapse_time1 / 2); } } if ($heuredeb_dec_3 != 0 and $id_semaine_3 == $rep_creneau['id_semaine']) { $contenu = ContenuCreneau($tab_id_creneaux[$j], $jour_sem, $type_edt, $rep_creneau['id_groupe'], $rep_creneau['id_aid'], $id_semaine_3, $period); RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], $rep_creneau['id_cours'], "cellule" . $duree3_aux, GetColor($rep_creneau['id_groupe']), $contenu); $duree1 += (int) $duree3_aux; $elapse_time1 += (int) $duree3_aux; $k = (int) ($elapse_time1 / 2); } else { RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$j], "", "", "cellule1", "cadre", ""); $duree1++; $elapse_time1++; $k = (int) ($elapse_time1 / 2); } } else { RemplirBox($elapse_time, $tab_data[$jour], $index_box, "erreur", $tab_id_creneaux[$j], "none", "none", "cellule2", "cadreRouge", "C01"); $elapse_time1 += 2; } } } while (isset($tab_id_creneaux[$k]) and !$end_process and $duree1 < $duree_max) { //if ($id_semaine_previous == '0') { if (isset($id_semaine)) { $req_demicreneau = LessonsFromDayTeacherSlotWeekPeriod($jour_sem, $login_edt, $tab_id_creneaux[$k], $id_semaine, $period); } else { $sql = "SELECT id_cours, duree, id_groupe, id_aid, heuredeb_dec, id_semaine FROM edt_cours WHERE \r\n\t\t\tjour_semaine = '" . $jour_sem . "' AND\r\n\t\t\tlogin_prof = '" . $login_edt . "' AND\r\n\t\t\tid_definie_periode = '" . $tab_id_creneaux[$k] . "' AND\r\n\t\t\tid_semaine <> '" . $id_semaine_previous . "' AND\r\n\t\t\tid_semaine <> '0' AND\r\n\t\t\t(id_calendrier = '" . $period . "' OR id_calendrier = '0')\r\n\t\t\t"; if ($debug_edt == "y") { echo "{$sql}<br />"; } $req_demicreneau = mysqli_query($GLOBALS["mysqli"], $sql) or die(mysqli_error($GLOBALS["mysqli"])); } $rep_demicreneau = mysqli_fetch_array($req_demicreneau); if (mysqli_num_rows($req_demicreneau) == 2) { // =========== récupérer les deux cours mysqli_data_seek($req_demicreneau, 0); $rep_demicreneau = mysqli_fetch_array($req_demicreneau); $heuredeb_dec_demi1 = $rep_demicreneau['heuredeb_dec']; $rep_demicreneau = mysqli_fetch_array($req_demicreneau); $heuredeb_dec_demi2 = $rep_demicreneau['heuredeb_dec']; // =========== afficher le bon cours if ($elapse_time1 % 2 == 0) { if ($heuredeb_dec_demi1 == 0) { mysqli_data_seek($req_demicreneau, 0); $rep_demicreneau = mysqli_fetch_array($req_demicreneau); } else { mysqli_data_seek($req_demicreneau, 0); $rep_demicreneau = mysqli_fetch_array($req_demicreneau); $rep_demicreneau = mysqli_fetch_array($req_demicreneau); } } else { if ($heuredeb_dec_demi1 != 0) { mysqli_data_seek($req_demicreneau, 0); $rep_demicreneau = mysqli_fetch_array($req_demicreneau); } else { mysqli_data_seek($req_demicreneau, 0); $rep_demicreneau = mysqli_fetch_array($req_demicreneau); $rep_demicreneau = mysqli_fetch_array($req_demicreneau); } } $contenu = ContenuCreneau($tab_id_creneaux[$k], $jour_sem, $type_edt, $rep_demicreneau['id_groupe'], $rep_demicreneau['id_aid'], "", $period); $current_edt_id_cours = $rep_demicreneau['id_cours']; //echo "demicreneau \$current_edt_id_cours=$current_edt_id_cours<br />"; RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$k], $rep_demicreneau['id_groupe'], $rep_demicreneau['id_cours'], "cellule" . $rep_demicreneau['duree'], GetColor($rep_demicreneau['id_groupe']), $contenu); $duree1 += (int) $rep_demicreneau['duree']; $elapse_time1 += (int) $rep_demicreneau['duree']; $k = (int) ($elapse_time1 / 2); } else { if (mysqli_num_rows($req_demicreneau) == 1) { //$rep_demicreneau = mysql_fetch_array($req_demicreneau); //echo "DEBUG: plup<br />"; if ($rep_demicreneau['heuredeb_dec'] != 0 and $elapse_time1 % 2 == 0) { RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$k], "", "", "cellule1", "cadre", ""); $duree1++; $elapse_time1++; } $current_edt_id_cours = $rep_demicreneau['id_cours']; //echo "demicreneau \$current_edt_id_cours=$current_edt_id_cours<br />"; $contenu = ContenuCreneau($tab_id_creneaux[$k], $jour_sem, $type_edt, $rep_demicreneau['id_groupe'], $rep_demicreneau['id_aid'], "", $period); RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$k], $rep_demicreneau['id_groupe'], $rep_demicreneau['id_cours'], "cellule" . $rep_demicreneau['duree'], GetColor($rep_demicreneau['id_groupe']), $contenu); $duree1 += (int) $rep_demicreneau['duree']; $elapse_time1 += (int) $rep_demicreneau['duree']; if ($rep_demicreneau['heuredeb_dec'] == 0 and $rep_demicreneau['duree'] == 1) { RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$k], "", "", "cellule1", "cadre", ""); $duree1++; $elapse_time1++; } $k = (int) ($elapse_time1 / 2); } else { if ($duree1 < $duree_max) { //echo "DEBUG: plyp<br />"; if ($elapse_time1 % 2 == 0) { RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$k], "", "", "cellule1", "cadre", ""); $duree1++; $elapse_time1++; $k = (int) ($elapse_time1 / 2); } else { RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$k], "", "", "cellule1", "cadre", ""); $duree1++; $elapse_time1++; $k = (int) ($elapse_time1 / 2); } } else { $end_process = true; } } } } RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "fin_conteneur", "", "", "", "", "", ""); }
echo "\n\t\t</tr>\n\t\t<tr>"; } echo "\n\t\t\t<td>"; $cpt_ligne++; $temoin_cours = "y"; //$tab_id_cours=get_tab_id_cours($tab_cours_prof_absent[$tab_creneau[$loop]['id_definie_periode']]); $tab_id_cours = get_tab_id_cours($value['id_cours']); if (isset($tab_id_cours['id_groupe'])) { $id_groupe_courant = $tab_id_cours['id_groupe']; if (!isset($groups[$id_groupe_courant])) { $groups[$id_groupe_courant] = get_group($id_groupe_courant, array('matieres', 'classes', 'profs')); } echo "<span title=\"" . $groups[$id_groupe_courant]['description'] . "\nMatière : " . $groups[$id_groupe_courant]["matiere"]["matiere"] . " (" . $groups[$id_groupe_courant]["matiere"]["nom_complet"] . ")\nClasse(s) : " . $groups[$id_groupe_courant]["classlist_string"] . "\nProfesseur(s) : " . $groups[$id_groupe_courant]['profs']['proflist_string'] . "\">" . $groups[$id_groupe_courant]['name'] . "</span>"; } else { //echo get_info_id_cours($tab_cours_prof_absent[$tab_creneau[$loop]['id_definie_periode']]); echo get_info_id_cours($value['id_cours']); } echo "</td>\n\t\t\t<td>"; if (isset($groups[$id_groupe_courant])) { foreach ($groups[$id_groupe_courant]['classes']['classes'] as $current_id_classe => $current_tab_classe) { echo $current_tab_classe['classe'] . "<br />"; } } /* echo " <a href='#' onclick=\"cocher_sans_cours(".$date_aaaammjj.",".$tab_creneau[$loop]['id_definie_periode'].");return false;\" title=\"Cocher tous les professeurs proposés pour le créneau courant.\"><img src='../images/enabled.png' class='icone16' alt='Cocher' /></a>/<a href='#' onclick=\"decocher_sans_cours(".$date_aaaammjj.",".$tab_creneau[$loop]['id_definie_periode'].");return false;\" title=\"Décocher tous les professeurs proposés pour le créneau courant.\"><img src='../images/disabled.png' class='icone16' alt='Décocher' /></a>"; */ echo "\n\t\t\t</td>\n\t\t\t<td style='text-align:left;'>\n\n\t\t\t\t<a name='jour_" . $date_aaaammjj . "_creneau_" . $id_creneau_courant . "'></a>"; // 20150420 : Tester si on ne veut pas remplacer les cours qui ne correspondent pas à des groupes classe. if (isset($groups[$id_groupe_courant])) { if ($AbsProfGroupesClasseSeulement != "yes" || count($groups[$id_groupe_courant]['classes']['list']) == 1) {