function affiche_evenement($id_ev, $afficher_obsolete = "n") { global $gepiPath; global $tab_salle; global $evenement_sans_lien_mail; global $evenement_sans_lien_ics; global $mes_groupes; /* global $posDiv_infobulle; global $tabid_infobulle; global $unite_div_infobulle; global $niveau_arbo; global $pas_de_decalage_infobulle; global $class_special_infobulle; */ global $tabdiv_infobulle; $retour = ""; if (count($tab_salle) == 0) { $tab_salle = get_tab_salle_cours(); } $sql = "SELECT * FROM d_dates_evenements WHERE id_ev='{$id_ev}';"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res) > 0) { $lig = mysqli_fetch_object($res); $tab_u = array(); $sql = "SELECT * FROM d_dates_evenements_utilisateurs WHERE id_ev='{$id_ev}';"; //echo "$sql<br />"; $res_u = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_u) > 0) { while ($lig_u = mysqli_fetch_object($res_u)) { $tab_u[] = $lig_u->statut; } } if (!isset($evenement_sans_lien_mail) || $evenement_sans_lien_mail != "y") { if (acces_info_dates_evenements()) { $retour .= "<div style='float:right; width:16px;margin-right:3px;' title=\"Informer les/des destinataires par mail.\"><a href='{$gepiPath}/classes/info_dates_classes.php?id_ev=" . $id_ev . "' target='_blank'><img src='{$gepiPath}/images/icons/mail.png' class='icone16' alt='Mail' /></a></div>"; } } if (!isset($evenement_sans_lien_ics) || $evenement_sans_lien_ics != "y") { $retour .= "<div style='float:right; width:16px;margin-right:3px;' title=\"Exporter au format ical/ics l'événement.\nVous pourrez l'importer dans un agenda type Google, WebCalendar,...\"><a href='{$gepiPath}/lib/ical.php?id_ev=" . $id_ev . "' target='_blank'><img src='{$gepiPath}/images/icons/ical.png' class='icone16' alt='ical' /></a></div>"; } if ($lig->type == 'autre') { //$retour.=nl2br($lig->description)."<br />"; $retour .= $lig->texte_avant; //$retour.="<br />"; $liste_dest = ""; if (in_array("professeur", $tab_u)) { $liste_dest .= " <img src='{$gepiPath}/images/icons/prof.png' class='icone16' alt='Prof' title=\"Professeurs de la classe.\" />"; } if (in_array("cpe", $tab_u)) { $liste_dest .= " <img src='{$gepiPath}/images/icons/cpe.png' class='icone16' alt='Cpe' title=\"CPE de la classe.\" />"; } if (in_array("scolarite", $tab_u)) { $liste_dest .= " <img src='{$gepiPath}/images/icons/scolarite.png' class='icone16' alt='Scol' title=\"Comptes scolarité associés à la classe.\" />"; } if (in_array("responsable", $tab_u)) { $liste_dest .= " <img src='{$gepiPath}/images/icons/responsable.png' class='icone16' alt='Resp' title=\"Comptes responsables associés à la classe.\" />"; } if (in_array("eleve", $tab_u)) { $liste_dest .= " <img src='{$gepiPath}/images/icons/eleve.png' class='icone16' alt='Resp' title=\"Élèves associés à la classe.\" />"; } //$retour.="<br />"; if ($afficher_obsolete == "y") { if ($_SESSION['statut'] == 'professeur') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND id_classe IN (SELECT DISTINCT jgc.id_classe FROM j_groupes_classes jgc, j_groupes_professeurs jgp WHERE jgc.id_groupe=jgp.id_groupe AND jgp.login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'cpe') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND id_classe IN (SELECT DISTINCT jec.id_classe FROM j_eleves_classes jec, j_eleves_cpe jecpe WHERE jec.e_login=jecpe.cpe_login AND jecpe.cpe_login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'scolarite') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND id_classe IN (SELECT DISTINCT jsc.id_classe FROM j_scol_classes jsc WHERE jsc.login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'administrateur') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'responsable') { $sql = "SELECT DISTINCT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND id_classe IN (SELECT DISTINCT jec.id_classe FROM resp_pers rp, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresponsables2 r, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\televes e, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tj_eleves_classes jec \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE rp.login='******'login'] . "' AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trp.pers_id=r.pers_id AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tr.ele_id=e.ele_id AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.login=jec.login AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(r.resp_legal='1' OR r.resp_legal='2' OR r.acces_sp='y')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'eleve') { $sql = "SELECT DISTINCT d.*, c.* FROM d_dates_evenements_classes d, classes c, j_eleves_classes jec WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND d.id_classe=jec.id_classe AND jec.login='******'login'] . "' ORDER BY date_evenement, classe;"; } } else { // 12h après if ($_SESSION['statut'] == 'professeur') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' AND id_classe IN (SELECT DISTINCT jgc.id_classe FROM j_groupes_classes jgc, j_groupes_professeurs jgp WHERE jgc.id_groupe=jgp.id_groupe AND jgp.login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'cpe') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' AND id_classe IN (SELECT DISTINCT jec.id_classe FROM j_eleves_classes jec, j_eleves_cpe jecpe WHERE jec.e_login=jecpe.cpe_login AND jecpe.cpe_login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'scolarite') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' AND id_classe IN (SELECT DISTINCT jsc.id_classe FROM j_scol_classes jsc WHERE jsc.login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'administrateur') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'responsable') { $sql = "SELECT DISTINCT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' AND id_classe IN (SELECT DISTINCT jec.id_classe FROM resp_pers rp, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresponsables2 r, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\televes e, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tj_eleves_classes jec \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE rp.login='******'login'] . "' AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trp.pers_id=r.pers_id AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tr.ele_id=e.ele_id AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.login=jec.login AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(r.resp_legal='1' OR r.resp_legal='2' OR r.acces_sp='y')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'eleve') { $sql = "SELECT DISTINCT d.*, c.* FROM d_dates_evenements_classes d, classes c, j_eleves_classes jec WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND d.id_classe=jec.id_classe AND jec.login='******'login'] . "' AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' ORDER BY date_evenement, classe;"; } } $res2 = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res2) > 0) { $tab_tableau = array(); $tab_liste_salles = array(); $tab_liste_dates = array(); while ($lig2 = mysqli_fetch_object($res2)) { if (!in_array($lig2->date_evenement, $tab_liste_dates)) { $tab_liste_dates[] = $lig2->date_evenement; } if (!in_array($lig2->id_salle, $tab_liste_salles)) { $tab_liste_salles[] = $lig2->id_salle; } if (isset($tab_tableau[$lig2->date_evenement][$lig2->id_salle])) { $tab_tableau[$lig2->date_evenement][$lig2->id_salle] .= ", "; } else { $tab_tableau[$lig2->date_evenement][$lig2->id_salle] = ""; } if ($lig2->date_evenement < strftime("%Y-%m-%d %H:%M:%S")) { //$tab_tableau[$lig2->date_evenement][$lig2->id_salle].="<span style='color:red'>".$lig2->classe." : ".formate_date($lig2->date_evenement, "y", "court")."</span>"; $tab_tableau[$lig2->date_evenement][$lig2->id_salle] .= "<span style='color:red'>" . $lig2->classe . "</span>"; } else { //$tab_tableau[$lig2->date_evenement][$lig2->id_salle].=$lig2->classe." : ".formate_date($lig2->date_evenement, "y", "court"); $tab_tableau[$lig2->date_evenement][$lig2->id_salle] .= $lig2->classe; } /* if(($lig2->id_salle>0)&&(isset($tab_salle['indice'][$lig2->id_salle]))) { $tab_tableau[$lig2->date_evenement][$lig2->id_salle].=" (<em>salle ".$tab_salle['indice'][$lig2->id_salle]['designation_complete']."</em>)"; } */ //$retour.="<br />"; } $retour .= "<table class='boireaus boireaus_alt'>\n\t<tr>\n\t\t<th>{$liste_dest}</th>"; for ($loop = 0; $loop < count($tab_liste_dates); $loop++) { $retour .= "\n\t\t<th>" . formate_date($tab_liste_dates[$loop], "y2", "court") . "</th>"; } $retour .= "\n\t</tr>"; for ($loop0 = 0; $loop0 < count($tab_liste_salles); $loop0++) { if ($tab_liste_salles[$loop0] > 0 && isset($tab_salle['indice'][$tab_liste_salles[$loop0]])) { $salle_courante = $tab_salle['indice'][$tab_liste_salles[$loop0]]['designation_complete']; } else { $salle_courante = ""; } $retour .= "\n\t<tr>\n\t\t<th>{$salle_courante}</th>"; for ($loop = 0; $loop < count($tab_liste_dates); $loop++) { $retour .= "\n\t\t<td>"; if (isset($tab_tableau[$tab_liste_dates[$loop]][$tab_liste_salles[$loop0]])) { $retour .= $tab_tableau[$tab_liste_dates[$loop]][$tab_liste_salles[$loop0]]; } $retour .= "</td>"; } $retour .= "\n\t</tr>"; } $retour .= "\n</table>"; /* while($lig2=mysqli_fetch_object($res2)) { if($lig2->date_evenement<strftime("%Y-%m-%d %H:%M:%S")) { $retour.="<span style='color:red'>".$lig2->classe." : ".formate_date($lig2->date_evenement, "y", "court")."</span>"; } else { $retour.=$lig2->classe." : ".formate_date($lig2->date_evenement, "y", "court"); } if(($lig2->id_salle>0)&&(isset($tab_salle['indice'][$lig2->id_salle]))) { $retour.=" (<em>salle ".$tab_salle['indice'][$lig2->id_salle]['designation_complete']."</em>)"; } $retour.="<br />"; } */ } $retour .= $lig->texte_apres; } elseif ($lig->type == 'conseil_de_classe') { $texte_infobulle = "<div id='div_action_conseil_de_classe_{$id_ev}'></div>"; $tabdiv_infobulle[] = creer_div_infobulle('div_infobulle_action_conseil_de_classe_' . $id_ev, "Bulletins et conseils de classe", "", $texte_infobulle, "", 40, 0, 'y', 'y', 'n', 'n'); $retour .= "<script type='text/javascript'>\n\tfunction afficher_action_classe_{$id_ev}(id_classe) {\n\t\tnew Ajax.Updater(\$('div_action_conseil_de_classe_{$id_ev}'), '{$gepiPath}/lib/ajax_action.php?mode=actions_conseil_classe&id_classe='+id_classe,{method: 'get'});\n\t\tafficher_div('div_infobulle_action_conseil_de_classe_{$id_ev}', 'y', 10, 10);\n\t}\n</script>"; $tab_classe_pp = array("id_classe"); if ($_SESSION['statut'] == "professeur") { $tab_classe_pp = get_tab_ele_clas_pp($_SESSION['login']); } if (getSettingAOui('active_mod_engagements')) { if ($_SESSION['statut'] == "scolarite" || $_SESSION['statut'] == "cpe" && getSettingAOui('imprimerConvocationConseilClasseCpe')) { $retour .= "<div style='float:right;width:16px;margin-right:3px;'><a href=\"{$gepiPath}/mod_engagements/imprimer_documents.php\" title=\"Imprimer les documents pour les délégués\"><img src='{$gepiPath}/images/icons/odt.png' class='icone16' alt='Document' /></a></div>"; } } $retour .= $lig->texte_avant; //$retour.="<br />"; if ($afficher_obsolete == "y") { if ($_SESSION['statut'] == 'professeur') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND id_classe IN (SELECT DISTINCT jgc.id_classe FROM j_groupes_classes jgc, j_groupes_professeurs jgp WHERE jgc.id_groupe=jgp.id_groupe AND jgp.login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'cpe') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND id_classe IN (SELECT DISTINCT jec.id_classe FROM j_eleves_classes jec, j_eleves_cpe jecpe WHERE jec.login=jecpe.e_login AND jecpe.cpe_login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'scolarite') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND id_classe IN (SELECT DISTINCT jsc.id_classe FROM j_scol_classes jsc WHERE jsc.login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'administrateur') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'responsable') { $sql = "SELECT DISTINCT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND id_classe IN (SELECT DISTINCT jec.id_classe FROM resp_pers rp, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresponsables2 r, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\televes e, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tj_eleves_classes jec \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE rp.login='******'login'] . "' AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trp.pers_id=r.pers_id AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tr.ele_id=e.ele_id AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.login=jec.login AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(r.resp_legal='1' OR r.resp_legal='2' OR r.acces_sp='y')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'eleve') { $sql = "SELECT DISTINCT d.*, c.* FROM d_dates_evenements_classes d, classes c, j_eleves_classes jec WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND d.id_classe=jec.id_classe AND jec.login='******'login'] . "' ORDER BY date_evenement, classe;"; } } else { // 12h après if ($_SESSION['statut'] == 'professeur') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' AND id_classe IN (SELECT DISTINCT jgc.id_classe FROM j_groupes_classes jgc, j_groupes_professeurs jgp WHERE jgc.id_groupe=jgp.id_groupe AND jgp.login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'cpe') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' AND id_classe IN (SELECT DISTINCT jec.id_classe FROM j_eleves_classes jec, j_eleves_cpe jecpe WHERE jec.login=jecpe.e_login AND jecpe.cpe_login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'scolarite') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' AND id_classe IN (SELECT DISTINCT jsc.id_classe FROM j_scol_classes jsc WHERE jsc.login='******'login'] . "') ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'administrateur') { $sql = "SELECT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'responsable') { $sql = "(SELECT DISTINCT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' AND id_classe IN (SELECT DISTINCT jec.id_classe FROM resp_pers rp, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresponsables2 r, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\televes e, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tj_eleves_classes jec \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE rp.login='******'login'] . "' AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trp.pers_id=r.pers_id AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tr.ele_id=e.ele_id AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.login=jec.login AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(r.resp_legal='1' OR r.resp_legal='2' OR r.acces_sp='y')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)) "; if (getSettingAOui('active_mod_engagements')) { $sql_test = "SELECT eu.valeur AS id_classe FROM engagements e, \n\t\t\t\t\t\t\t\t\t\t\tengagements_user eu\n\t\t\t\t\t\t\t\t\t\tWHERE e.id=eu.id_engagement AND \n\t\t\t\t\t\t\t\t\t\t\te.conseil_de_classe='yes' AND \n\t\t\t\t\t\t\t\t\t\t\teu.login='******'login'] . "' AND \n\t\t\t\t\t\t\t\t\t\t\te.type='id_classe' AND \n\t\t\t\t\t\t\t\t\t\t\teu.id_type='id_classe' AND \n\t\t\t\t\t\t\t\t\t\t\teu.valeur NOT IN (SELECT DISTINCT jec.id_classe FROM resp_pers rp, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresponsables2 r, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\televes e, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tj_eleves_classes jec \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE rp.login='******'login'] . "' AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trp.pers_id=r.pers_id AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tr.ele_id=e.ele_id AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.login=jec.login AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(r.resp_legal='1' OR r.resp_legal='2' OR r.acces_sp='y')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);"; //echo "$sql_test<br />"; $res_test = mysqli_query($GLOBALS["mysqli"], $sql_test); if (mysqli_num_rows($res_test) > 0) { while ($lig_test = mysqli_fetch_object($res_test)) { $sql .= " UNION (SELECT DISTINCT * FROM d_dates_evenements_classes d, classes c WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' AND id_classe='" . $lig_test->id_classe . "')"; } } } $sql .= " ORDER BY date_evenement, classe;"; } elseif ($_SESSION['statut'] == 'eleve') { $sql = "SELECT DISTINCT d.*, c.* FROM d_dates_evenements_classes d, classes c, j_eleves_classes jec WHERE id_ev='{$id_ev}' AND d.id_classe=c.id AND d.id_classe=jec.id_classe AND jec.login='******'login'] . "' AND date_evenement>='" . strftime("%Y-%m-%d %H:%M:%S", time() - 12 * 3600) . "' ORDER BY date_evenement, classe;"; } } // DEBUG: //$retour.="$sql<br />"; $res2 = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res2) > 0) { // On va remplir un tableau et repérer les jours et heures. $tab_jours = array(); $tab_heures = array(); $tab_cellules = array(); while ($lig2 = mysqli_fetch_object($res2)) { $tmp_jour = get_date_slash_from_mysql_date($lig2->date_evenement, "court"); if (!in_array($tmp_jour, $tab_jours)) { $tab_jours[] = $tmp_jour; } //sort($tab_jours); $tmp_tab_pp = get_tab_prof_suivi($lig2->id_classe); //$liste_pp=implode(", ", $tmp_tab_pp); $liste_pp = ""; for ($loop = 0; $loop < count($tmp_tab_pp); $loop++) { if ($loop > 0) { $liste_pp .= ""; } $liste_pp .= affiche_utilisateur($tmp_tab_pp[$loop], $lig2->id_classe); } $tmp_heure = get_heure_2pt_minute_from_mysql_date($lig2->date_evenement); if (!in_array($tmp_heure, $tab_heures)) { $tab_heures[] = $tmp_heure; } sort($tab_heures); $indication_salle = ""; if ($lig2->id_salle > 0 && isset($tab_salle['indice'][$lig2->id_salle])) { $indication_salle = "\nSalle: " . $tab_salle['indice'][$lig2->id_salle]['designation_complete'] . ""; } /* if($lig2->date_evenement<strftime("%Y-%m-%d %H:%M:%S")) { if(!isset($tab_cellules[$tmp_jour][$tmp_heure])) { $tab_cellules[$tmp_jour][$tmp_heure]=""; } else { $tab_cellules[$tmp_jour][$tmp_heure].=" - "; } $tab_cellules[$tmp_jour][$tmp_heure].="<span style='color:red' title=\"La date du conseil de classe de $lig2->classe est passée : ".formate_date($lig2->date_evenement, "y")." ".ucfirst(getSettingValue('gepi_prof_suivi'))." : $liste_pp\">".$lig2->classe."</span>"; } else { */ if (!isset($tab_cellules[$tmp_jour][$tmp_heure])) { $tab_cellules[$tmp_jour][$tmp_heure] = ""; } else { $tab_cellules[$tmp_jour][$tmp_heure] .= " - "; } if ($_SESSION["statut"] == "professeur") { if (in_array($lig2->id_classe, $tab_classe_pp['id_classe'])) { if ($lig2->date_evenement < strftime("%Y-%m-%d %H:%M:%S")) { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span style='color:red' title=\"La date du conseil de classe de {$lig2->classe} est passée : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\n\nCliquer pour saisir/consulter l'avis du conseil de classe,\npour saisir vos notes et appréciations,\npour consulter les graphes, les bulletins,...\">"; $tab_cellules[$tmp_jour][$tmp_heure] .= "<a href='{$gepiPath}/saisie/saisie_avis1.php?id_classe={$lig2->id_classe}' style='color:red' onclick=\"afficher_action_classe_{$id_ev}({$lig2->id_classe});return false;\">"; } else { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span title=\"Date du conseil de classe de {$lig2->classe} : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\n\nCliquer pour saisir l'avis du conseil de classe,\npour saisir vos notes et appréciations,\npour consulter les graphes, les bulletins,...\">"; $tab_cellules[$tmp_jour][$tmp_heure] .= "<a href='{$gepiPath}/saisie/saisie_avis1.php?id_classe={$lig2->id_classe}' style='color:black' onclick=\"afficher_action_classe_{$id_ev}({$lig2->id_classe});return false;\">"; } $tab_cellules[$tmp_jour][$tmp_heure] .= $lig2->classe; $tab_cellules[$tmp_jour][$tmp_heure] .= "</a>"; $tab_cellules[$tmp_jour][$tmp_heure] .= "</span>"; if (getSettingAOui('active_mod_engagements')) { $tab_cellules[$tmp_jour][$tmp_heure] .= " <a href=\"{$gepiPath}/mod_engagements/imprimer_documents.php\" title=\"Imprimer les documents pour les délégués\"><img src='{$gepiPath}/images/icons/odt.png' class='icone16' alt='Document' /></a>"; } } else { $tab_cellules[$tmp_jour][$tmp_heure] .= "<a href='#' style='color:black' onclick=\"afficher_action_classe_{$id_ev}({$lig2->id_classe});return false;\">"; if ($lig2->date_evenement < strftime("%Y-%m-%d %H:%M:%S")) { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span style='color:red' title=\"La date du conseil de classe de {$lig2->classe} est passée : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\n\nCliquer pour consulter vos notes et appréciations, les graphes, les bulletins,...\">"; } else { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span title=\"Date du conseil de classe de {$lig2->classe} : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\n\nCliquer pour saisir vos notes et appréciations, consulter les graphes, les bulletins,...\">"; } // Problème: Un prof peut avoir plusieurs groupes dans une classe //$tab_cellules[$tmp_jour][$tmp_heure].="<a href='$gepiPath/saisie/saisie_appreciations.php?id_groupe=' style='color:black'>"; $tab_cellules[$tmp_jour][$tmp_heure] .= $lig2->classe; $tab_cellules[$tmp_jour][$tmp_heure] .= "</span>"; $tab_cellules[$tmp_jour][$tmp_heure] .= "</a>"; } } elseif ($_SESSION["statut"] == "scolarite") { if ($lig2->date_evenement < strftime("%Y-%m-%d %H:%M:%S")) { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span style='color:red' title=\"La date du conseil de classe de {$lig2->classe} est passée : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\n\nCliquer pour saisir/consulter l'avis du conseil de classe,\n pour accéder aux bulletins, aux graphes,...\">"; $tab_cellules[$tmp_jour][$tmp_heure] .= "<a href='{$gepiPath}/saisie/saisie_avis1.php?id_classe={$lig2->id_classe}' style='color:red' onclick=\"afficher_action_classe_{$id_ev}({$lig2->id_classe});return false;\">"; } else { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span title=\"Date du conseil de classe de {$lig2->classe} : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\n\nCliquer pour saisir l'avis du conseil de classe,\n pour accéder aux bulletins, aux graphes,...\">"; $tab_cellules[$tmp_jour][$tmp_heure] .= "<a href='{$gepiPath}/saisie/saisie_avis1.php?id_classe={$lig2->id_classe}' style='color:black' onclick=\"afficher_action_classe_{$id_ev}({$lig2->id_classe});return false;\">"; } $tab_cellules[$tmp_jour][$tmp_heure] .= $lig2->classe; $tab_cellules[$tmp_jour][$tmp_heure] .= "</a>"; $tab_cellules[$tmp_jour][$tmp_heure] .= "</span>"; } elseif ($_SESSION["statut"] == "cpe") { if ($lig2->date_evenement < strftime("%Y-%m-%d %H:%M:%S")) { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span style='color:red' title=\"La date du conseil de classe de {$lig2->classe} est passée : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\">"; } else { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span title=\"Date du conseil de classe de {$lig2->classe} : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\">"; } $tab_cellules[$tmp_jour][$tmp_heure] .= $lig2->classe; $tab_cellules[$tmp_jour][$tmp_heure] .= "</span>"; } elseif ($_SESSION["statut"] == "administrateur") { if ($lig2->date_evenement < strftime("%Y-%m-%d %H:%M:%S")) { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span style='color:red' title=\"La date du conseil de classe de {$lig2->classe} est passée : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\">"; } else { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span title=\"Date du conseil de classe de {$lig2->classe} : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\">"; } $tab_cellules[$tmp_jour][$tmp_heure] .= $lig2->classe; $tab_cellules[$tmp_jour][$tmp_heure] .= "</span>"; } elseif ($_SESSION["statut"] == "responsable" || $_SESSION["statut"] == "eleve") { if ($lig2->date_evenement < strftime("%Y-%m-%d %H:%M:%S")) { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span style='color:red' title=\"La date du conseil de classe de {$lig2->classe} est passée : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\">"; } else { $tab_cellules[$tmp_jour][$tmp_heure] .= "<span title=\"Date du conseil de classe de {$lig2->classe} : " . formate_date($lig2->date_evenement, "y") . "\n" . ucfirst(retourne_denomination_pp($lig2->id_classe)) . " : " . $liste_pp . $indication_salle . "\">"; } $tab_cellules[$tmp_jour][$tmp_heure] .= $lig2->classe; $tab_cellules[$tmp_jour][$tmp_heure] .= "</span>"; if (getSettingAOui('active_mod_engagements') && is_delegue_conseil_classe($_SESSION['login'], $lig2->id_classe)) { $tab_cellules[$tmp_jour][$tmp_heure] .= " <a href=\"{$gepiPath}/mod_engagements/imprimer_documents.php?id_classe=" . $lig2->id_classe . "&imprimer=liste_eleves\" title=\"Imprimer la liste des élèves pour prendre des notes pendant le conseil de classe\" target='_blank'><img src='{$gepiPath}/images/icons/tableau.png' class='icone16' alt='Document' /></a>"; $tab_cellules[$tmp_jour][$tmp_heure] .= " <a href=\"{$gepiPath}/mod_engagements/imprimer_documents.php?id_classe=" . $lig2->id_classe . "&imprimer=convocation\" title=\"Imprimer la convocation pour le conseil de classe\" target='_blank'><img src='{$gepiPath}/images/icons/saisie.png' class='icone16' alt='Document' /></a>"; } } //} } $retour .= "<table class='boireaus boireaus_alt' summary='Dates de conseils de classe'>\n\t<thead>\n\t\t<tr>\n\t\t\t<th>"; if (in_array("professeur", $tab_u)) { $retour .= " <img src='{$gepiPath}/images/icons/prof.png' class='icone16' alt='Prof' title=\"Professeurs de la classe.\" />"; } if (in_array("cpe", $tab_u)) { $retour .= " <img src='{$gepiPath}/images/icons/cpe.png' class='icone16' alt='Cpe' title=\"CPE de la classe.\" />"; } if (in_array("scolarite", $tab_u)) { $retour .= " <img src='{$gepiPath}/images/icons/scolarite.png' class='icone16' alt='Scol' title=\"Comptes scolarité associés à la classe.\" />"; } if (in_array("responsable", $tab_u)) { $retour .= " <img src='{$gepiPath}/images/icons/responsable.png' class='icone16' alt='Resp' title=\"Comptes responsables associés à la classe.\" />"; } if (in_array("eleve", $tab_u)) { $retour .= " <img src='{$gepiPath}/images/icons/eleve.png' class='icone16' alt='Resp' title=\"Élèves de la classe.\" />"; } //$retour.="<br />"; $retour .= "</th>"; for ($j = 0; $j < count($tab_jours); $j++) { $retour .= "\n\t\t\t<th>" . $tab_jours[$j] . "</th>"; } $retour .= "\n\t</thead>\n\t<tbody>"; for ($i = 0; $i < count($tab_heures); $i++) { $retour .= "\n\t\t<tr>\n\t\t\t<th>" . $tab_heures[$i] . "</th>"; for ($j = 0; $j < count($tab_jours); $j++) { $retour .= "\n\t\t\t<td>"; if (isset($tab_cellules[$tab_jours[$j]][$tab_heures[$i]])) { $retour .= $tab_cellules[$tab_jours[$j]][$tab_heures[$i]]; } $retour .= "</td>"; } $retour .= "\n\t\t</tr>"; } $retour .= "\n\t</tbody>\n</table>"; } $retour .= $lig->texte_apres; } } return $retour; }
$tab_deja = array(); $sql = "SELECT * FROM d_dates_evenements_classes d WHERE id_ev='{$id_ev}';"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res) > 0) { while ($lig = mysqli_fetch_object($res)) { $ts = mysql_date_to_unix_timestamp($lig->date_evenement); $tab_deja[$ts][$lig->id_salle][] = $lig->id_classe; } } /* echo "<pre>"; print_r($tab_deja); echo "</pre>"; */ //=========================================== $tab_salles = get_tab_salle_cours(); //=========================================== $titre_infobulle = "Placer une classe"; $texte_infobulle = "<p>Choisissez la ou les classes à placer</p>\n<form>\n<input type='hidden' name='id_salle_ev' id='id_salle_ev' value='' />\n<input type='hidden' name='date_heure_ev' id='date_heure_ev' value='' />"; $texte_infobulle .= "<div class='div_3_colonnes'>"; for ($loop = 0; $loop < count($id_classe_ev); $loop++) { $current_classe = get_nom_classe($id_classe_ev[$loop]); $texte_infobulle .= "<p id='p_lien_ajout_classe_" . $id_classe_ev[$loop] . "'><a href=\"javascript:placer_classe_ev(" . $id_classe_ev[$loop] . ")\" id='lien_ajout_classe_" . $id_classe_ev[$loop] . "'>" . $current_classe . "</a></p>"; } $texte_infobulle .= "</div>\n</form>"; $tabdiv_infobulle[] = creer_div_infobulle('div_ajout_classe', $titre_infobulle, "", $texte_infobulle, "", 25, 0, 'y', 'y', 'n', 'n'); //=========================================== $tab_ts = array(); for ($loop = 0; $loop < count($date_heure_ev); $loop++) { $ts = mysql_date_to_unix_timestamp($date_heure_ev[$loop]); $tab_ts[$ts] = $date_heure_ev[$loop];
function affiche_edt2($login_eleve, $id_classe, $login_prof, $type_affichage, $ts_display_date, $affichage = "semaine", $x0 = 350, $y0 = 150, $largeur_edt = 800, $hauteur_une_heure = 60) { //echo "y0=$y0<br />"; global $debug_edt; global $hauteur_jour, $hauteur_entete; global $tab_group_edt; //+++++++++++++++++++++ // 20150622 /* global $tab_coord_creneaux; if((!isset($tab_coord_creneaux))||(!is_array($tab_coord_creneaux))) { $tab_coord_creneaux=array(); } */ global $jours; global $largeur_jour; global $x_jour; global $premiere_heure; global $marge_secu; global $hauteur_titre; global $affichage_complementaire_sur_edt; //+++++++++++++++++++++ global $complement_liens_edt; //+++++++++++++++++++++ global $tab_coord_prises; $tab_coord_prises = array(); $param_lien_edt = ""; if ($login_eleve != "") { $param_lien_edt .= "login_eleve={$login_eleve}&"; } elseif ($id_classe != "") { $param_lien_edt .= "id_classe={$id_classe}&"; } elseif ($login_prof != "") { $param_lien_edt .= "login_prof={$login_prof}&"; } $param_lien_edt .= "type_affichage={$type_affichage}&"; if (isset($complement_liens_edt) && $complement_liens_edt != "") { $param_lien_edt .= $complement_liens_edt . "&"; } $html = ""; global $mode_infobulle; $chaine_alea = remplace_accents(rand(1, 1000000) . "_" . microtime(), "all"); $html .= "<script type='text/javascript'>\n\tfunction edt_semaine_suivante(num_semaine_annee) {\n\t\t//alert('plop');\n\t\tnew Ajax.Updater(\$('div_edt_" . $chaine_alea . "'),'../edt/index2.php?num_semaine_annee='+num_semaine_annee+'&mode=afficher_edt_js&{$param_lien_edt}&largeur_edt={$largeur_edt}&y0={$y0}&hauteur_une_heure={$hauteur_une_heure}&hauteur_jour={$hauteur_jour}',{method: 'get'});\n\t}\n</script>\n\n<div id='div_edt_" . $chaine_alea . "'>"; $ts_debut_annee = getSettingValue('begin_bookings'); $ts_fin_annee = getSettingValue('end_bookings'); $display_date = strftime("%d/%m/%Y", $ts_display_date); $num_semaine = strftime("%V", $ts_display_date); if ($num_semaine < 10) { // Le %V a l'air de déjà renvoyer le mois sur 2 chiffres $num_semaine_annee = "0" . $num_semaine . "|" . strftime("%Y", $ts_display_date); $num_semaine_annee = preg_replace("/^[0]{2,}/", "0", $num_semaine_annee); } else { $num_semaine_annee = $num_semaine . "|" . strftime("%Y", $ts_display_date); } $tab_jour = get_tab_jour_ouverture_etab(); if ($affichage == "semaine") { $largeur_jour = $largeur_edt / count($tab_jour); $tab_jours_aff = array(); if (in_array("lundi", $tab_jour)) { $tab_jours_aff[] = 1; } if (in_array("mardi", $tab_jour)) { $tab_jours_aff[] = 2; } if (in_array("mercredi", $tab_jour)) { $tab_jours_aff[] = 3; } if (in_array("jeudi", $tab_jour)) { $tab_jours_aff[] = 4; } if (in_array("vendredi", $tab_jour)) { $tab_jours_aff[] = 5; } if (in_array("samedi", $tab_jour)) { $tab_jours_aff[] = 6; } if (in_array("dimanche", $tab_jour)) { $tab_jours_aff[] = 7; } } else { $largeur_jour = $largeur_edt; $tab_jours_aff = array($affichage); } $hauteur_titre = 10; $hauteur_entete = 40; $opacity_couleur = 0.5; $marge_secu = 6; $font_size = ceil($hauteur_une_heure / 5); $font_size2 = ceil($hauteur_une_heure / 8); $font_size3 = ceil($hauteur_une_heure / 10); $tab_group_edt = array(); $tab_aid_edt = array(); $tab_couleur_matiere = array(); $tab_prof = array(); $tab_salle = get_tab_salle_cours(); //$html=""; //$html="\$num_semaine_annee=$num_semaine_annee<br />"; $tab = explode("|", $num_semaine_annee); $num_semaine = $tab[0]; $annee = $tab[1]; /* $_SESSION['edt_ics_num_semaine']=$num_semaine; $_SESSION['edt_ics_annee']=$annee; */ $jours = get_days_from_week_number($num_semaine, $annee); /* echo "<pre>"; print_r($jours); echo "</pre>"; */ $info_type_semaine = ""; $info_type_semaine_html = ""; $type_semaine = get_type_semaine($num_semaine); //echo "\$type_semaine=$type_semaine<br />"; if ($type_semaine != "") { $info_type_semaine = " - Semaine {$type_semaine}"; $info_type_semaine_html = " <span style='font-size:" . $font_size2 . "pt;' title=\"Semaine {$type_semaine}\">({$type_semaine})</span>"; } //================================================================================= $premiere_heure = 8; //$derniere_heure=16.5; $derniere_heure = 17; // Récupérer les horaires de début et de fin de journée dans le module EDT $sql = "SELECT * FROM edt_creneaux ORDER BY heuredebut_definie_periode ASC LIMIT 1;"; if ($debug_edt == "y") { echo "{$sql}<br />"; } $res_premiere_heure = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_premiere_heure) > 0) { $lig_premiere_heure = mysqli_fetch_object($res_premiere_heure); if ($debug_edt == "y") { echo "Première heure du jour : " . $lig_premiere_heure->heuredebut_definie_periode; } $tmp_tab = explode(":", $lig_premiere_heure->heuredebut_definie_periode); $premiere_heure = $tmp_tab[0] + $tmp_tab[1] / 60; if ($debug_edt == "y") { echo " soit " . $premiere_heure . "<br />"; } } $sql = "SELECT * FROM edt_creneaux ORDER BY heuredebut_definie_periode DESC LIMIT 1;"; $res_derniere_heure = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_derniere_heure) > 0) { $lig_derniere_heure = mysqli_fetch_object($res_derniere_heure); $tmp_tab = explode(":", $lig_derniere_heure->heurefin_definie_periode); $derniere_heure = $tmp_tab[0] + $tmp_tab[1] / 60; } //================================================================================= $tmp_tab = explode(".", $premiere_heure); $heure_debut_jour = $tmp_tab[0]; $min_debut_jour = 0; if (isset($tmp_tab[1])) { $min_debut_jour = floor(($premiere_heure - $tmp_tab[0]) * 60); } $sec_debut_jour = 0; // Hauteur du DIV de la journée $hauteur_jour = ($derniere_heure - $premiere_heure) * $hauteur_une_heure; $y_max = $y0 + $hauteur_entete + $hauteur_jour; //================================================================== $x_jour = array(); if ($affichage == "semaine") { // Affichage des N jours de la semaine //==================================== // Recherche du numéro de semaine précédente $num_semaine_annee_precedente = ""; if (strftime("%V", $jours['num_jour'][1]['timestamp']) <= strftime("%V", $ts_fin_annee)) { if (strftime("%V", $jours['num_jour'][7]['timestamp']) > 1) { if ($num_semaine - 1 > 9) { $num_semaine_annee_precedente = $num_semaine - 1 . "|" . $annee; } else { $num_semaine_annee_precedente = "0" . ($num_semaine - 1) . "|" . $annee; } } else { $num_semaine_annee_precedente = "52|" . ($annee - 1); } } elseif (strftime("%V", $jours['num_jour'][1]['timestamp']) > strftime("%V", $ts_debut_annee)) { if ($num_semaine - 1 > 9) { $num_semaine_annee_precedente = $num_semaine - 1 . "|" . $annee; } else { $num_semaine_annee_precedente = "0" . ($num_semaine - 1) . "|" . $annee; } } // Semaine précédente if ($num_semaine_annee_precedente != "") { //background-color:silver; $x_courant = $x0 - 32; $html .= "<div style='position:absolute; top:" . ($y0 + floor(($hauteur_entete - 16) / 2)) . "px; left:" . $x_courant . "px; width:30px; height:" . $hauteur_entete . "px; text-align:center;' title=\"Semaine précédente\"><a href='" . $_SERVER['PHP_SELF'] . "?" . $param_lien_edt . "num_semaine_annee=" . $num_semaine_annee_precedente . "'><img src='../images/arrow_left.png' class='icone16' alt='Précédent' /></a></div>"; } //==================================== //==================================== // Bandeaux verticaux des jours for ($i = 0; $i < count($tab_jour); $i++) { $x_courant = $x0 + $i * $largeur_jour; $x_jour[$i] = $x_courant; // Abscisse du jour au-dessus de l'entête (pour debug) if ($debug_edt == "y") { $html .= "<div style='position:absolute; top:" . ($y0 - $hauteur_entete - 2) . "px; left:" . $x_courant . "px; width:" . $largeur_jour . "px; height:" . $hauteur_entete . "px;'>" . $x_jour[$i] . "</div>"; } // Nom du jour en entête $html .= "<div style='position:absolute; top:" . $y0 . "px; left:" . $x_courant . "px; width:" . $largeur_jour . "px; height:" . $hauteur_entete . "px; border:1px solid black; text-align:center; background-color:silver;' title=\"" . $jours['num_jour'][$i + 1]['jjmmaaaa'] . "\">" . ucfirst($tab_jour[$i]) . "<br /><span style='font-size:x-small'>" . $jours['num_jour'][$i + 1]['jjmmaaaa'] . "</span></div>"; // Bande verticale de la journée $y_courant = $y0 + $hauteur_entete; $html .= "<div style='position:absolute; top:" . $y_courant . "px; left:" . $x_courant . "px; width:" . $largeur_jour . "px; height:" . $hauteur_jour . "px; border:1px solid black; background-color:white;z-index:1;'></div>"; // Pour avoir les traits verticaux $html .= "<div style='position:absolute; top:" . $y_courant . "px; left:" . $x_courant . "px; width:" . $largeur_jour . "px; height:" . $hauteur_jour . "px; border:1px solid black;z-index:4;'></div>"; } //==================================== //==================================== // Semaine suivante $num_semaine_annee_suivante = ""; if (strftime("%V", $jours['num_jour'][1]['timestamp']) >= strftime("%V", $ts_debut_annee)) { if (strftime("%V", $jours['num_jour'][7]['timestamp']) >= 52) { $num_semaine_annee_suivante = "01|" . ($annee + 1); } else { $num_semaine_annee_suivante = $num_semaine + 1 . "|" . $annee; } } elseif (strftime("%V", $jours['num_jour'][1]['timestamp']) < strftime("%V", $ts_fin_annee)) { if ($num_semaine - 1 > 9) { $num_semaine_annee_suivante = $num_semaine + 1 . "|" . $annee; } else { $num_semaine_annee_suivante = "0" . ($num_semaine + 1) . "|" . $annee; } } if ($num_semaine_annee_suivante != "") { //background-color:silver; $x_courant = $x0 + $largeur_edt; $html .= "<div style='position:absolute; top:" . ($y0 + floor(($hauteur_entete - 16) / 2)) . "px; left:" . $x_courant . "px; width:30px; height:" . $hauteur_entete . "px; text-align:center; z-index:20;' title=\"Semaine suivante\"><a href='" . $_SERVER['PHP_SELF'] . "?" . $param_lien_edt . "num_semaine_annee=" . $num_semaine_annee_suivante . "'"; if ($mode_infobulle == "y") { $html .= " onclick=\"edt_semaine_suivante('{$num_semaine_annee_suivante}'); return false;\""; } $html .= "><img src='../images/arrow_right.png' class='icone16' alt='Suivant' /></a></div>"; } //==================================== } else { //==================================== // Jour précédent // Boucler sur 7 jours pour trouver le précédent jour ouvré $display_date_precedente = ""; $display_date_precedente_num_jour = ""; $ts_test = $ts_display_date; $cpt = 0; while ($cpt < 7 && $ts_test > $ts_debut_annee) { $ts_test -= 3600 * 24; if (in_array(strftime("%A", $ts_test), $tab_jour)) { $display_date_precedente = strftime("%d/%m/%Y", $ts_test); $display_date_precedente_num_jour = strftime("%u", $ts_test); break; } $cpt++; } if ($display_date_precedente != "") { //background-color:silver; $x_courant = $x0 - 32; $html .= "<div style='position:absolute; top:" . ($y0 + floor(($hauteur_entete - 16) / 2)) . "px; left:" . $x_courant . "px; width:30px; height:" . $hauteur_entete . "px; text-align:center;' title=\"Jour précédent\"><a href='" . $_SERVER['PHP_SELF'] . "?" . $param_lien_edt . "affichage=" . $display_date_precedente_num_jour . "&display_date=" . $display_date_precedente . "'><img src='../images/arrow_left.png' class='icone16' alt='Précédent' /></a></div>"; } //==================================== //==================================== // Colonne du jour $x_courant = $x0; $x_jour[0] = $x_courant; // Abscisse du jour au-dessus de l'entête (pour debug) if ($debug_edt == "y") { $html .= "<div style='position:absolute; top:" . ($y0 - $hauteur_entete - 2) . "px; left:" . $x_courant . "px; width:" . $largeur_jour . "px; height:" . $hauteur_entete . "px;'>" . $x_jour[0] . "</div>"; } // Nom du jour en entête $html .= "\n\t<form action='" . $_SERVER['PHP_SELF'] . "' id='form_chgt_date' method='post'>\n\t\t<input type='hidden' name='affichage' value='jour'>\n\t\t<input type='hidden' name='display_date' id='display_date' value='' onchange=\"document.getElementById('form_chgt_date').submit();\">\n\t\t<!--input type='text' name='display_date' id='display_date' value=''-->\n\t</form>\n\n\t<div style='position:absolute; top:" . $y0 . "px; left:" . $x_courant . "px; width:" . $largeur_jour . "px; height:" . $hauteur_entete . "px; border:1px solid black; text-align:center; background-color:silver;' title=\"" . $jours['num_jour'][$affichage]['jjmmaaaa'] . $info_type_semaine . "\">\n\n\t\t<div style='float:right; width:16px;'>" . img_calendrier_js("display_date", "img_bouton_display_date") . "</div>\n\n\t\t<span onclick=\"action_edt_cours('')\" title=\"Cliquez...\">" . ucfirst($jours['num_jour'][$affichage]['nom_jour']) . "</span><br />\n\t\t<span style='font-size:x-small'>" . $jours['num_jour'][$affichage]['jjmmaaaa'] . "</span>{$info_type_semaine_html}\n\t</div>"; // Bande verticale de la journée $y_courant = $y0 + $hauteur_entete; $html .= "<div style='position:absolute; top:" . $y_courant . "px; left:" . $x_courant . "px; width:" . $largeur_jour . "px; height:" . $hauteur_jour . "px; border:1px solid black; background-color:white;z-index:1;'></div>"; // Pour avoir les traits verticaux $html .= "<div style='position:absolute; top:" . $y_courant . "px; left:" . $x_courant . "px; width:" . $largeur_jour . "px; height:" . $hauteur_jour . "px; border:1px solid black;z-index:4;'></div>"; //==================================== //==================================== // Jour suivant // Boucler sur 7 jours pour trouver le jour ouvré suivant $display_date_suivante = ""; $display_date_suivante_num_jour = ""; $ts_test = $ts_display_date; $cpt = 0; while ($cpt < 7 && $ts_test < $ts_fin_annee) { $ts_test += 3600 * 24; if (in_array(strftime("%A", $ts_test), $tab_jour)) { $display_date_suivante = strftime("%d/%m/%Y", $ts_test); $display_date_suivante_num_jour = strftime("%u", $ts_test); break; } $cpt++; } if ($display_date_suivante != "") { //background-color:silver; $x_courant = $x0 + $largeur_jour; $html .= "<div style='position:absolute; top:" . ($y0 + floor(($hauteur_entete - 16) / 2)) . "px; left:" . $x_courant . "px; width:30px; height:" . $hauteur_entete . "px; text-align:center; z-index:20;' title=\"Jour suivant\"><a href='" . $_SERVER['PHP_SELF'] . "?" . $param_lien_edt . "affichage=" . $display_date_suivante_num_jour . "&display_date=" . $display_date_suivante . "'><img src='../images/arrow_right.png' class='icone16' alt='Suivant' /></a></div>"; } //==================================== } //================================================================== // Affichage des heures sur la droite $heure_ronde_debut_jour = floor($premiere_heure); $heure_courante = $heure_ronde_debut_jour; $heure_ronde_debut_jour = floor($derniere_heure); $hauteur_texte = 12; // A la louche $hauteur_demi_texte = ceil($hauteur_texte / 2); while ($heure_courante < $heure_ronde_debut_jour) { $y_courant = $y0 + $hauteur_entete + ($heure_courante - $premiere_heure) * $hauteur_une_heure - $hauteur_demi_texte; $html .= "<div style='position:absolute; top:" . $y_courant . "px; left:" . ($x0 + $largeur_edt) . "px; width:30px; height:" . $hauteur_une_heure . "px; text-align:center;'>" . $heure_courante . "H</div>"; $heure_courante++; } //================================================================== //================================================================== // Affichage des noms de créneaux sur la gauche $sql = "SELECT * FROM edt_creneaux ORDER BY heuredebut_definie_periode;"; $res_creneaux = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_creneaux) > 0) { while ($lig = mysqli_fetch_object($res_creneaux)) { $tab_h = explode(":", $lig->heuredebut_definie_periode); $c = $tab_h[0] + $tab_h[1] / 60 - $premiere_heure; $y1_courant = $y0 + $hauteur_entete + round($c * $hauteur_une_heure); $tab_h = explode(":", $lig->heurefin_definie_periode); $c = $tab_h[0] + $tab_h[1] / 60 - $premiere_heure; $y2_courant = $y0 + $hauteur_entete + round($c * $hauteur_une_heure); $hauteur_courante = $y2_courant - $y1_courant; /* // 20150622 $tab_coord_creneaux['creneau'][$lig->id_definie_periode]['ordonnees'][0]=$y1_courant; $tab_coord_creneaux['creneau'][$lig->id_definie_periode]['ordonnees'][1]=$y2_courant; */ $style_fond_creneau = "background-color:white;"; if ($lig->type_creneaux == "pause") { $style_fond_creneau = "background-color:silver;"; } elseif ($lig->type_creneaux == "repas") { $style_fond_creneau = "background-color:grey;"; } // Nom du créneau sur la gauche $html .= "<div style='position:absolute; top:" . $y1_courant . "px; left:" . ($x0 - 32) . "px; width:30px; height:" . $hauteur_courante . "px; text-align:center; border:1px solid black; vertical-align:middle;" . $style_fond_creneau . "' title=\"Créneau {$lig->nom_definie_periode}\nDe {$lig->heuredebut_definie_periode} à {$lig->heurefin_definie_periode}.\"><div style='position:relative; width:2em; height:1em;'>" . $lig->nom_definie_periode . "</div></div>"; // Bandes horizontales du créneau $html .= "<div style='position:absolute; top:" . $y1_courant . "px; left:" . $x0 . "px; width:" . $largeur_edt . "px; height:" . $hauteur_courante . "px; border:1px solid silver; z-index:2;" . $style_fond_creneau . "'></div>"; // Debug if ($debug_edt == "y") { $html .= "<div style='position:absolute; top:" . $y1_courant . "px; left:" . ($x0 + $largeur_edt + 30) . "px; width:" . $largeur_edt . "px; height:" . $hauteur_courante . "px; color:red; z-index:2;'>{$y1_courant}</div>"; } } } //================================================================== $tab_cours = array(); $tab_nom_classe = array(); /* $sql="SELECT * FROM edt_cours ec, edt_creneaux ecr WHERE ec.id_groupe IN (SELECT id_groupe from j_eleves_groupes WHERE login = '******') AND (ec.id_semaine='' OR ec.id_semaine='0' OR ec.id_semaine='$type_semaine') AND ec.id_definie_periode=ecr.id_definie_periode ORDER BY heuredebut_definie_periode;"; //echo "$sql<br />"; $res_cours_de_la_semaine=mysqli_query($GLOBALS["mysqli"], $sql); while($lig=mysqli_fetch_object($res_cours_de_la_semaine)) { if($debug_edt=="y") { echo "<pre style='border:1px solid red; margin:0.5em;'>"; print_r($lig); echo "</pre>"; } $ts_debut=mysql_date_to_unix_timestamp($lig->date_debut); $horaire_debut=strftime("%H:%M", $ts_debut); $ts_fin=mysql_date_to_unix_timestamp($lig->date_fin); $horaire_fin=strftime("%H:%M", $ts_fin); $num_jour=strftime("%u", $ts_debut)-1; $jour_debut_jour=strftime("%d", $ts_debut); $mois_debut_jour=strftime("%m", $ts_debut); $annee_debut_jour=strftime("%Y", $ts_debut); $ts_debut_jour=mktime($heure_debut_jour,$min_debut_jour,$sec_debut_jour,$mois_debut_jour,$jour_debut_jour,$annee_debut_jour); $duree_en_min=floor(($ts_fin-$ts_debut)/60); $hauteur_courante=floor($duree_en_min*$hauteur_une_heure/60); //$hauteur_courante=floor($duree_en_min*$hauteur_une_heure/60)-ceil($marge_secu/2); //$duree_depuis_debut_journee=floor(($ts_debut-$ts_debut_jour)/3600); $duree_depuis_debut_journee=floor(10*($ts_debut-$ts_debut_jour)/3600)/10; //$y_courant=$y0+$hauteur_entete+$duree_depuis_debut_journee*$hauteur_une_heure; $y_courant=$y0+$hauteur_entete+$duree_depuis_debut_journee*$hauteur_une_heure+ceil($marge_secu/2); if($debug_edt=="y") { $html.="\$jour_debut_jour=$jour_debut_jour<br />"; $html.="\$ts_debut_jour=$ts_debut_jour<br />"; $html.="\$ts_debut=$ts_debut<br />"; $html.="\$duree_depuis_debut_journee=$duree_depuis_debut_journee<br />"; $html.="y_courant=$y_courant<br />"; } $cpt_courant=0; if(isset($tab_cours[$num_jour]['y'][$y_courant])) { $cpt_courant=count($tab_cours[$num_jour]['y'][$y_courant]); } $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['hauteur']=$hauteur_courante; // A FAIRE : Stocker dans des tableaux les retours de fonction qui suivent pour ne pas faire plusieurs fois les mêmes appels $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['matiere']=get_tab_matiere_gepi_pour_matiere_ics($lig->matiere_ics); $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['prof']=get_tab_prof_gepi_pour_prof_ics($lig->prof_ics); $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['salle']=$lig->salle_ics; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['id_cours']=$lig->id; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['id_classe']=$lig->id_classe; if(!array_key_exists($lig->id_classe, $tab_nom_classe)) { $tab_nom_classe[$lig->id_classe]=get_nom_classe($lig->id_classe); } $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['classe']=$tab_nom_classe[$lig->id_classe]; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['horaire_debut']=$horaire_debut; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['horaire_fin']=$horaire_fin; // Stockage des identifiants de cours que n'ont pas les élèves faute de suivre la matière if(($_SESSION['statut']=='eleve')&& ($tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['matiere']['association_faite']=="y")&& (!in_array($tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['matiere']['matiere'], $tab_matieres_eleve))) { $tab_id_cours_exclu[]=$tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['id_cours']; } } */ //================================================================== // On passe à l'affichage du contenu du ou des jours //for($num_jour=1;$num_jour<=count($tab_jour);$num_jour++) { for ($loop_jour = 0; $loop_jour < count($tab_jours_aff); $loop_jour++) { $num_jour = $tab_jours_aff[$loop_jour]; $jour_sem = $jours['num_jour'][$num_jour]['nom_jour']; $jour_debut_jour = $jours['num_jour'][$num_jour]['jj']; $mois_debut_jour = $jours['num_jour'][$num_jour]['mm']; $annee_debut_jour = $jours['num_jour'][$num_jour]['aaaa']; $ts_debut_jour = mktime($heure_debut_jour, $min_debut_jour, $sec_debut_jour, $mois_debut_jour, $jour_debut_jour, $annee_debut_jour); if ($debug_edt == "y") { echo "num_jour={$num_jour}<br />"; echo "heure_debut_jour={$heure_debut_jour}<br />"; echo "min_debut_jour={$min_debut_jour}<br />"; echo "ts_debut_jour={$ts_debut_jour}<br />"; } // A REVOIR On suppose là qu'il n'y a qu'un id_calendrier. // A revoir quand on enregistrera des id_calendrier autres // id_groupe, id_aid, duree, heuredeb_dec, id_semaine, id_cours $ajout_sql = ""; if ($login_eleve != "") { //$ajout_sql.="ec.id_groupe IN (SELECT id_groupe from j_eleves_groupes WHERE login = '******') AND "; $ajout_sql .= "(ec.id_groupe IN (SELECT id_groupe from j_eleves_groupes WHERE login = '******') OR ec.id_aid IN (SELECT DISTINCT id_aid FROM j_aid_eleves WHERE login = '******')) AND "; } if ($id_classe != "") { //$ajout_sql.="ec.id_groupe IN (SELECT id_groupe from j_groupes_classes WHERE id_classe = '".$id_classe."') AND "; $ajout_sql .= "(ec.id_groupe IN (SELECT id_groupe from j_groupes_classes WHERE id_classe = '" . $id_classe . "') OR \n\t\t\t\t\tec.id_aid IN (SELECT DISTINCT id_aid FROM j_aid_eleves jae, j_eleves_classes jec \n\t\t\t\t\t\t\t\t\t\t\tWHERE jae.login=jec.login AND jec.id_classe='" . $id_classe . "')) AND "; } if ($login_prof != "") { //$ajout_sql.="ec.id_groupe IN (SELECT id_groupe from j_groupes_professeurs WHERE login = '******') AND "; $ajout_sql .= "ec.login_prof = '" . $login_prof . "' AND "; } //20150206 // A FAIRE : Prendre en compte un id_calendrier en fonction de la semaine choisie // A VERIFIER : Est-ce id_calendar ou id_calendrier (il y a les 2 dans la table) // Pour un emploi du temps élève, recuperer la classe associée à la semaine // puis tester l'id_calendrier dans edt_cours // Pour un emploi du temps prof, problème si ce n'est pas la même période EDT (id_calendrier) selon les classes // Cela dit le prof n'étant pas sensé être avec 2 classes différentes à un même instant, // il ne devrait pas y avoir de collision (sauf cas de l'EDT mal rempli avec un même enseignement regroupement de deux classes, inscrit à deux moments) // POUR LE MOMENT : Si il y a plusieurs id_calendrier remplis dans edt_cours la requête ci-dessous va cumuler les EDT. //20150205 $afficher_sem_AB = isset($_POST['afficher_sem_AB']) ? $_POST['afficher_sem_AB'] : (isset($_GET['afficher_sem_AB']) ? $_GET['afficher_sem_AB'] : "n"); if ($afficher_sem_AB == "y") { $avec_contrainte_semaine = ""; } else { $avec_contrainte_semaine = "(ec.id_semaine='' OR ec.id_semaine='0' OR ec.id_semaine='{$type_semaine}') AND "; } $sql = "SELECT DISTINCT * FROM edt_cours ec, edt_creneaux ecr WHERE\n\t\t\t\t\t\tec.jour_semaine = '" . $jour_sem . "' AND\n\t\t\t\t\t\t{$ajout_sql}\n\t\t\t\t\t\t{$avec_contrainte_semaine}\n\t\t\t\t\t\tec.id_definie_periode=ecr.id_definie_periode \n\t\t\t\t\tORDER BY heuredebut_definie_periode;"; //echo "<div style='margin-left:1000px'>"; //echo "$sql<br />"; //echo "</div>"; $res = mysqli_query($GLOBALS["mysqli"], $sql); while ($lig = mysqli_fetch_object($res)) { /* echo "<div style='margin-left:1000px'><pre>"; print_r($lig); echo "</pre></div>"; */ $tab_debut = explode(":", $lig->heuredebut_definie_periode); $heure_debut = $tab_debut[0]; $min_debut = $tab_debut[1]; $sec_debut = 0; $ts_debut = mktime($heure_debut, $min_debut, $sec_debut, $mois_debut_jour, $jour_debut_jour, $annee_debut_jour); $horaire_debut = $heure_debut . ":" . $min_debut; $tab_fin = explode(":", $lig->heurefin_definie_periode); $heure_fin = $tab_fin[0]; $min_fin = $tab_fin[1]; $sec_fin = 0; $ts_fin = mktime($heure_fin, $min_fin, $sec_fin, $mois_debut_jour, $jour_debut_jour, $annee_debut_jour); // Problème avec les cours à cheval sur les créneaux de 1/2h du midi. //$duree_courante=(($ts_fin-$ts_debut)/60)*($lig->duree/2); $duree_courante = 60 * ($lig->duree / 2); if ($lig->heuredeb_dec == "0.5") { $ts_debut += ceil(($ts_fin - $ts_debut) / 2); } $horaire_cours_courant = "\nDébut du cours : " . strftime("%H:%M", $ts_debut) . ""; $horaire_cours_courant .= "\nDurée du cours : " . $duree_courante . "minutes"; $duree_depuis_debut_journee = floor(10 * ($ts_debut - $ts_debut_jour) / 3600) / 10; $y_courant = $y0 + $hauteur_entete + $duree_depuis_debut_journee * $hauteur_une_heure + ceil($marge_secu / 2); //$hauteur_courante=$hauteur_une_heure*floor(10*($ts_fin-$ts_debut)/3600)/10-ceil($marge_secu/2); $hauteur_courante = floor($hauteur_une_heure * $lig->duree / 2) - $marge_secu; $largeur_courante = $largeur_jour - $marge_secu; if ($affichage == "semaine") { $x_courant = $x0 + $largeur_jour * ($num_jour - 1) + ceil($marge_secu / 2); } else { $x_courant = $x0 + ceil($marge_secu / 2); } if ($debug_edt == "y") { $html .= "\$jour_debut_jour={$jour_debut_jour}<br />"; $html .= "\$ts_debut_jour={$ts_debut_jour}<br />"; $html .= "\$ts_debut={$ts_debut}<br />"; $html .= "\$duree_depuis_debut_journee={$duree_depuis_debut_journee}<br />"; $html .= "y_courant={$y_courant}<br />"; } $cpt_courant = 0; if (isset($tab_cours[$num_jour]['y'][$y_courant])) { $cpt_courant = count($tab_cours[$num_jour]['y'][$y_courant]); } $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['hauteur'] = $hauteur_courante; if ($ts_debut + 600 > $ts_fin_annee || $ts_debut - 600 < $ts_debut_annee) { $bgcolor_courant = "silver"; $contenu_cellule = "Hors année scolaire"; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['contenu_cellule'] = $contenu_cellule; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['bgcolor_cellule'] = $bgcolor_courant; } elseif ($id_classe != "" && check_ts_vacances($ts_debut + 600, $id_classe)) { $bgcolor_courant = "silver"; $contenu_cellule = nom_ts_vacances($ts_debut + 600, $id_classe); $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['contenu_cellule'] = $contenu_cellule; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['bgcolor_cellule'] = $bgcolor_courant; } else { $chaine_nom_enseignement = ""; $chaine_matiere = ""; $chaine_liste_classes = ""; $chaine_noms_profs = ""; $chaine_proflist_string = ""; $chaine_salle_courante = ""; $chaine_salle_courante_span_title = ""; $chaine_type_semaine_du_cours_courant = ""; if ("{$lig->id_semaine}" != "" && "{$lig->id_semaine}" != "0") { $chaine_type_semaine_du_cours_courant = "\nSemaine : " . $lig->id_semaine; } /* else { $chaine_type_semaine_du_cours_courant="\nSemaine : standard"; } */ if ($lig->id_groupe != "" && $lig->id_groupe != "0") { if (!isset($tab_group_edt[$lig->id_groupe])) { $tab_group_edt[$lig->id_groupe] = get_group($lig->id_groupe, array('matieres', 'classes', 'profs')); } $current_group = $tab_group_edt[$lig->id_groupe]; $chaine_nom_enseignement = $current_group['name'] . " (" . $current_group['description'] . ") en " . $current_group['classlist_string'] . " avec " . $current_group['profs']['proflist_string']; $chaine_matiere = $current_group['matiere']['matiere']; $chaine_proflist_string = $current_group['profs']['proflist_string']; if (!isset($tab_couleur_matiere[$current_group['matiere']['matiere']])) { $tab_couleur_matiere[$current_group['matiere']['matiere']] = get_couleur_edt_matiere($current_group['matiere']['matiere']); } $bgcolor_courant = $tab_couleur_matiere[$current_group['matiere']['matiere']]; $chaine_liste_classes = $current_group['classlist_string']; $cpt_prof = 0; foreach ($current_group['profs']['users'] as $current_prof_login => $current_prof) { if ($cpt_prof > 0) { $chaine_noms_profs .= ", "; } $chaine_noms_profs .= $current_prof['nom']; /* if(!isset($tab_prof[$lig->login_prof])) { $tab_prof[$lig->login_prof]['nom']=$current_prof['nom']; $tab_prof[$lig->login_prof]['designation']=$current_prof['civilite']." ".$current_prof['nom'].mb_substr($current_prof['prenom'],0,1); } */ $cpt_prof++; } } elseif ($lig->id_aid != "") { // A FAIRE Remplir un $tab_edt_aid pour ne pas faire plusieurs fois les mêmes requêtes: if (!isset($tab_aid_edt[$lig->id_aid])) { $sql = "SELECT a.nom AS nom_aid, ac.nom, ac.nom_complet FROM aid a, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taid_config ac \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE a.indice_aid=ac.indice_aid AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ta.id='" . $lig->id_aid . "';"; $res_aid = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_aid) == 0) { $tab_aid_edt[$lig->id_aid]['nom_general_court'] = "AID"; $tab_aid_edt[$lig->id_aid]['nom_general_complet'] = "AID"; $tab_aid_edt[$lig->id_aid]['nom_aid'] = "AID"; $tab_aid_edt[$lig->id_aid]['proflist_string'] = "..."; } else { $lig_aid = mysqli_fetch_object($res_aid); $tab_aid_edt[$lig->id_aid]['nom_general_court'] = $lig_aid->nom; $tab_aid_edt[$lig->id_aid]['nom_general_complet'] = $lig_aid->nom_complet; $tab_aid_edt[$lig->id_aid]['nom_aid'] = $lig_aid->nom_aid; $sql = "SELECT u.civilite, u.nom, u.prenom FROM utilisateurs u, j_aid_utilisateurs jau \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE u.login=jau.id_utilisateur AND \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjau.id_aid='" . $lig->id_aid . "'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY u.nom, u.prenom;"; $res_aid_prof = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_aid_prof) == 0) { $tab_aid_edt[$lig->id_aid]['proflist_string'] = "..."; } else { $tab_aid_edt[$lig->id_aid]['proflist_string'] = ""; $cpt_aid_prof = 0; while ($lig_aid_prof = mysqli_fetch_object($res_aid_prof)) { if ($cpt_aid_prof > 0) { $tab_aid_edt[$lig->id_aid]['proflist_string'] .= ", "; } $tab_aid_edt[$lig->id_aid]['proflist_string'] .= $lig_aid_prof->civilite . " " . $lig_aid_prof->nom . " " . mb_substr($lig_aid_prof->prenom, 0, 1); $cpt_aid_prof++; } } } } $current_aid = $tab_aid_edt[$lig->id_aid]; $chaine_nom_enseignement = $current_aid['nom_aid'] . " (" . $current_aid['nom_general_court'] . ") (" . $current_aid['nom_general_complet'] . ") avec " . $current_aid['proflist_string']; $chaine_matiere = $current_aid['nom_aid']; if (!isset($tab_prof[$lig->login_prof])) { $sql = "SELECT * FROM utilisateurs WHERE login='******';"; $res_prof = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_prof) > 0) { $lig_prof = mysqli_fetch_object($res_prof); $tab_prof[$lig->login_prof]['nom'] = $lig_prof->nom; $tab_prof[$lig->login_prof]['designation'] = $lig_prof->civilite . " " . $lig_prof->nom . " " . mb_substr($lig_prof->prenom, 0, 1); } else { $tab_prof[$lig->login_prof]['nom'] = "..."; $tab_prof[$lig->login_prof]['designation'] = "..."; } } $chaine_noms_profs = $tab_prof[$lig->login_prof]['nom']; $chaine_proflist_string = $current_aid['proflist_string']; $bgcolor_courant = "azure"; } else { // On ne devrait pas passer là $chaine_nom_enseignement = "Cours..."; $chaine_matiere = "Matière"; if (!isset($tab_prof[$lig->login_prof])) { $sql = "SELECT * FROM utilisateurs WHERE login='******';"; $res_prof = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_prof) > 0) { $lig_prof = mysqli_fetch_object($res_prof); $tab_prof[$lig->login_prof]['nom'] = $lig_prof->nom; $tab_prof[$lig->login_prof]['designation'] = $lig_prof->civilite . " " . $lig_prof->nom . " " . mb_substr(${$lig_prof}->prenom, 0, 1); } else { $tab_prof[$lig->login_prof]['nom'] = "..."; $tab_prof[$lig->login_prof]['designation'] = "..."; } } $chaine_noms_profs = $tab_prof[$lig->login_prof]['nom']; $chaine_proflist_string = $tab_prof[$lig->login_prof]['designation']; $bgcolor_courant = "white"; } if (isset($tab_salle['indice'][$lig->id_salle])) { $chaine_salle_courante_span_title = " en salle " . $tab_salle['indice'][$lig->id_salle]['designation_complete']; $chaine_salle_courante = "<br /><span style='font-size:" . $font_size3 . "pt;' title=\"Salle " . $tab_salle['indice'][$lig->id_salle]['designation_complete'] . "\">" . $tab_salle['indice'][$lig->id_salle]['designation_courte'] . "</span>"; } if ($type_affichage == "prof") { $liste_classes = ""; if ($chaine_liste_classes != "") { $liste_classes = "<br />" . $chaine_liste_classes; } $contenu_cellule = "<span style='font-size:" . $font_size . "pt;' title=\"" . $chaine_nom_enseignement . $chaine_salle_courante_span_title . $chaine_type_semaine_du_cours_courant . $horaire_cours_courant . "\">" . $chaine_matiere . "</span>" . $liste_classes . $chaine_salle_courante; } else { $contenu_cellule = "<span style='font-size:" . $font_size . "pt;' title=\"" . $chaine_nom_enseignement . $chaine_salle_courante_span_title . $chaine_type_semaine_du_cours_courant . $horaire_cours_courant . "\">" . $chaine_matiere . "</span><br />\n\t\t\t\t<span style='font-size:" . $font_size2 . "pt;' title=\"" . $chaine_proflist_string . "\">" . $chaine_noms_profs . "</span>" . $chaine_salle_courante; } if ($lig->id_semaine != '0' && $lig->id_semaine != '') { $contenu_cellule .= " <span class='fieldset_opacite50' style='float:right; font-size:" . $font_size2 . "pt;' title=\"Semaine " . $lig->id_semaine . "\">" . $lig->id_semaine . "</span>"; } $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['matiere'] = $chaine_matiere; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['prof'] = $chaine_noms_profs; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['salle'] = $chaine_salle_courante; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['id_cours'] = $lig->id_cours; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['id_classe'] = $id_classe; if (!array_key_exists($id_classe, $tab_nom_classe)) { $tab_nom_classe[$id_classe] = get_nom_classe($id_classe); } $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['classe'] = $tab_nom_classe[$id_classe]; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['horaire_debut'] = $horaire_debut; // Problème avec l'heure de fin calculée avec les créneaux. //$tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['horaire_fin']=$horaire_fin; //$contenu_cellule.=" ".$hauteur_courante; //$contenu_cellule.=" ".$font_size; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['contenu_cellule'] = $contenu_cellule; $tab_cours[$num_jour]['y'][$y_courant][$cpt_courant]['bgcolor_cellule'] = $bgcolor_courant; } } if (isset($tab_cours[$num_jour])) { if ($debug_edt == "y") { echo "\$tab_cours[{$num_jour}]<pre>"; print_r($tab_cours[$num_jour]); echo "</pre>"; } // +++++++++++++++++++++++++++ // +++++++++++++++++++++++++++ // On force ça pour le moment: //$type_edt="classe"; // +++++++++++++++++++++++++++ // +++++++++++++++++++++++++++ //if($type_edt=="classe") { $tab_collisions = array(); $tab_collisions2 = array(); //foreach($tab_cours as $num_jour => $tab) { $tab = $tab_cours[$num_jour]; /* if($num_jour==0) { echo "\$tab_cours[$num_jour]<pre>"; print_r($tab_cours[$num_jour]); echo "</pre>"; } */ foreach ($tab['y'] as $y_courant => $tab2) { for ($loop = 0; $loop < count($tab2); $loop++) { $hauteur_courante = $tab2[$loop]['hauteur']; $y_courant_fin = $y_courant + $hauteur_courante; if (isset($tab2[$loop]['id_cours'])) { $id_cours_courant = $tab2[$loop]['id_cours']; foreach ($tab_cours[$num_jour]['y'] as $y3 => $tab3_cours) { /* echo "y3=$y3<pre>"; print_r($tab3_cours); echo "</pre>"; */ for ($loop3 = 0; $loop3 < count($tab3_cours); $loop3++) { if ($tab3_cours[$loop3]['id_cours'] != $id_cours_courant) { $y_test_debut = $y3; $y_test_fin = $y3 + $tab3_cours[$loop3]['hauteur']; $id_cours_test = $tab3_cours[$loop3]['id_cours']; if ($y_test_debut >= $y_courant && $y_test_debut < $y_courant_fin) { if (!isset($tab_collisions[$id_cours_courant]) || !in_array($id_cours_test, $tab_collisions[$id_cours_courant])) { $tab_collisions[$id_cours_courant][] = $id_cours_test; } } elseif ($y_courant >= $y_test_debut && $y_courant < $y_test_fin) { if (!isset($tab_collisions[$id_cours_courant]) || !in_array($id_cours_test, $tab_collisions[$id_cours_courant])) { $tab_collisions[$id_cours_courant][] = $id_cours_test; } } } } } } /* // DEBUG if($id_cours_courant==602) { echo "<div style='position:absolute; top:800px; left:1000px;'>"; echo "\$tab_collisions[$id_cours_courant]<pre>"; print_r($tab_collisions[$id_cours_courant]); echo "</pre>"; echo "</div>"; } if($id_cours_courant==603) { echo "<div style='position:absolute; top:900px; left:1000px;'>"; echo "\$tab_collisions[$id_cours_courant]<pre>"; print_r($tab_collisions[$id_cours_courant]); echo "</pre>"; echo "</div>"; } */ } } //} $tab_coord_prises = array(); //foreach($tab_cours as $num_jour => $tab) { $tab = $tab_cours[$num_jour]; foreach ($tab['y'] as $y_courant => $tab2) { for ($loop = 0; $loop < count($tab2); $loop++) { //$hauteur_courante=$tab2[$loop]['hauteur']; $hauteur_courante = $tab2[$loop]['hauteur'] - floor($marge_secu / 2); /* $title="".$tab2[$loop]['matiere']['nom_complet']; if($tab2[$loop]['prof']['designation']!="") { $title.=" avec ".$tab2[$loop]['prof']['designation']; } if($tab2[$loop]['salle']!="") { $title.=" en salle ".$tab2[$loop]['salle']; } $title.="\nDe ".$tab2[$loop]['horaire_debut']." à ".$tab2[$loop]['horaire_fin']."."; */ $contenu_courant_ajout = ""; $text_color = ""; if (isset($tab2[$loop]['id_cours'])) { $id_cours_courant = $tab2[$loop]['id_cours']; //$x_courant=$x_jour[$num_jour]+$marge_secu; $x_courant = $x_jour[$loop_jour] + $marge_secu; $largeur_courante = $largeur_jour - 2 * $marge_secu; //$text_color=""; //$font_size=""; $style_font_size1 = " style='font-size:normal;'"; $style_font_size2 = " style='font-size:x-small;'"; //$contenu_courant_ajout=""; if (isset($tab_collisions[$id_cours_courant])) { /* // DEBUG if($id_cours_courant==602) { echo "<div style='position:absolute; top:1000px; left:1000px;'>"; echo "\$id_cours_courant=$id_cours_courant"; echo "</div>"; } if($id_cours_courant==603) { echo "<div style='position:absolute; top:1100px; left:1000px;'>"; echo "\$id_cours_courant=$id_cours_courant"; echo "</div>"; } */ $style_font_size1 = " style='font-size:x-small;'"; $style_font_size2 = " style='font-size:xx-small;'"; if ($debug_edt == "y") { $contenu_courant_ajout .= "<br />nb_col=" . count($tab_collisions[$id_cours_courant]); } // Compter les collisions effectives $nb = count($tab_collisions[$id_cours_courant]); foreach ($tab_collisions[$id_cours_courant] as $id_cours_test) { $nb = min($nb, count($tab_collisions[$id_cours_test])); } // DEBUG if ($debug_edt == "y") { $contenu_courant_ajout .= "<br />nb_reel=" . $nb; } // Largeur du div de ce cours //$largeur_courante=floor($largeur_jour/($nb+1))-2*$marge_secu; // On donne au moins 1px de large... par sécurité //$largeur_courante=max(floor($largeur_jour/($nb+1))-2*$marge_secu,1); $largeur_courante = max(floor($largeur_jour / ($nb + 1)) - 1 * $marge_secu, 1); //$font_size="font-size:x-small;"; //$font_size="font-size:smaller;"; $tmp_tab = array(); $tmp_tab[] = $id_cours_courant; //foreach($tab_collisions as $tmp_current_id_cours => $tmp_current_id_cours_collision) { foreach ($tab_collisions[$id_cours_courant] as $tmp_current_id_cours_collision) { $tmp_tab[] = $tmp_current_id_cours_collision; } sort($tmp_tab); $chaine = ""; for ($loop2 = 0; $loop2 < count($tmp_tab); $loop2++) { if ($chaine != "") { $chaine .= "|"; } $chaine .= $tmp_tab[$loop2]; } //while($x_courant<$x_jour[$num_jour]+$largeur_jour) { while ($x_courant < $x_jour[$loop_jour] + $largeur_jour) { /* if(($id_cours_courant==602)||($id_cours_courant==603)) { $contenu_courant_ajout.="\$id_cours_courant=$id_cours_courant, \$x_courant=$x_courant et \$x_jour[$loop_jour]+$largeur_jour=".$x_jour[$loop_jour]."+".$largeur_jour."<br />\n"; } */ if (check_pas_de_collision($x_courant, $y_courant, $x_courant + $largeur_courante, $y_courant + $hauteur_courante)) { $text_color = ""; break; } else { $x_courant += $largeur_courante + floor($marge_secu / 2); //$x_courant+=floor($largeur_jour/($nb+1))+$marge_secu; //$x_courant+=floor($largeur_jour/($nb+1)); $text_color = "color:red;"; } } if ($text_color != "") { //$x_courant=$x_jour[$num_jour]; $x_courant = $x_jour[$loop_jour]; } $tab_coord_prises[] = $x_courant . "," . $y_courant . "," . ($x_courant + $largeur_courante) . "," . ($y_courant + $hauteur_courante); if ($debug_edt == "y") { $title .= "\nCoordonnées : " . $x_courant . "," . $y_courant . "," . ($x_courant + $largeur_courante) . "," . ($y_courant + $hauteur_courante); } } } /* $contenu_courant="<span title=\"$title\"$style_font_size1>".$tab2[$loop]['matiere']['matiere']."</span>"; // Ne pas inclure ce qui suit pour l'emploi du temps du prof if($type_edt!="prof") { $contenu_courant.="<br /><span$style_font_size2 title=\"".$tab2[$loop]['prof']['designation']."\">".$tab2[$loop]['prof']['nom']."</span>"; } else { $contenu_courant.="<br /><span$style_font_size2 title=\"".$tab2[$loop]['classe']."\">".$tab2[$loop]['classe']."</span>"; } // Ne pas inclure ce qui suit pour l'emploi du temps d'une salle $contenu_courant.="<br /><span$style_font_size2 title=\"Salle ".$tab2[$loop]['salle']."\">".$tab2[$loop]['salle']."</span>"; if($debug_edt=="y") { $contenu_courant.="<br />id_cours=".$id_cours_courant; } $contenu_courant.=$contenu_courant_ajout; // Fond blanc pour masquer les lignes d'heures $html.="<div id='div_fond_masque_cours_".$tab2[$loop]['id_cours']."' style='position:absolute; top:".$y_courant."px; left:".$x_courant."px; width:".$largeur_courante."px; height:".$hauteur_courante."px; background-color:white; z-index:18; '></div>"; // Cadre de couleur avec une opacité réglable if(!isset($tab_couleur_matiere[$tab2[$loop]['matiere']['matiere']])) { $tab_couleur_matiere[$tab2[$loop]['matiere']['matiere']]=get_couleur_edt_matiere($tab2[$loop]['matiere']['matiere']); } $couleur_courante=$tab_couleur_matiere[$tab2[$loop]['matiere']['matiere']]; $html.="<div id='div_fond_couleur_cours_".$tab2[$loop]['id_cours']."' style='position:absolute; top:".$y_courant."px; left:".$x_courant."px; width:".$largeur_courante."px; height:".$hauteur_courante."px; border:1px solid black; background-color:".$couleur_courante."; opacity:$opacity_couleur; z-index:19; text-align:center;".$text_color.$font_size."' title='$title'></div>"; // Cadre du contenu de la cellule $html.="<div id='div_texte_cours_".$tab2[$loop]['id_cours']."' style='position:absolute; top:".$y_courant."px; left:".$x_courant."px; width:".$largeur_courante."px; height:".$hauteur_courante."px; border:1px solid black; z-index:20; text-align:center; overflow:hidden; ".$text_color.$font_size."' title='$title'>".$contenu_courant."</div>"; */ // Cadre de couleur avec une opacité réglable $html .= "<div style='position:absolute; \n\t\t\t\t\t\t\t\t\t\ttop:" . $y_courant . "px; \n\t\t\t\t\t\t\t\t\t\tleft:" . $x_courant . "px; \n\t\t\t\t\t\t\t\t\t\twidth:" . $largeur_courante . "px; \n\t\t\t\t\t\t\t\t\t\theight:" . $hauteur_courante . "px; \n\t\t\t\t\t\t\t\t\t\ttext-align:center; \n\t\t\t\t\t\t\t\t\t\tborder:1px solid black; \n\t\t\t\t\t\t\t\t\t\tbackground-color:" . $tab2[$loop]['bgcolor_cellule'] . ";\n\t\t\t\t\t\t\t\t\t\topacity:{$opacity_couleur}; \n\t\t\t\t\t\t\t\t\t\tz-index:19;'></div>"; // Cadre du contour de la cellule $html .= "<div style='position:absolute; \n\t\t\t\t\t\t\t\t\t\ttop:" . $y_courant . "px; \n\t\t\t\t\t\t\t\t\t\tleft:" . $x_courant . "px; \n\t\t\t\t\t\t\t\t\t\twidth:" . $largeur_courante . "px; \n\t\t\t\t\t\t\t\t\t\theight:" . $hauteur_courante . "px; \n\t\t\t\t\t\t\t\t\t\ttext-align:center; \n\t\t\t\t\t\t\t\t\t\tborder:1px solid black; \n\t\t\t\t\t\t\t\t\t\tline-height:" . $font_size . "pt;\n\t\t\t\t\t\t\t\t\t\tz-index:20;'>" . "</div>"; // Cadre du contenu de la cellule $decalage_vertical = floor($marge_secu / 2); if ($hauteur_courante > $hauteur_une_heure) { $decalage_vertical = floor(($hauteur_courante - $hauteur_une_heure) / 2); } $html .= "<div style='position:absolute; \n\t\t\t\t\t\t\t\t\t\ttop:" . ($y_courant + $decalage_vertical) . "px; \n\t\t\t\t\t\t\t\t\t\tleft:" . $x_courant . "px; \n\t\t\t\t\t\t\t\t\t\twidth:" . $largeur_courante . "px; \n\t\t\t\t\t\t\t\t\t\theight:" . ($hauteur_courante - $decalage_vertical) . "px; \n\t\t\t\t\t\t\t\t\t\ttext-align:center; \n\t\t\t\t\t\t\t\t\t\tline-height:" . $font_size . "pt;\n\t\t\t\t\t\t\t\t\t\toverflow: hidden;\n\t\t\t\t\t\t\t\t\t\tz-index:21;'"; if (isset($tab2[$loop]['id_cours'])) { $html .= "\n\t\t\t\t\t\t\t\t\t\tonclick=\"action_edt_cours('" . $tab2[$loop]['id_cours'] . "')\""; } $html .= ">"; // DEBUG: $chaine_debug = ""; //$chaine_debug="<span style='font-size:xx-small;color:lime;'>".$y0."+".$hauteur_entete."+".$y_courant."=".($y0+$hauteur_entete+$y_courant)."</span> "; $html .= $chaine_debug; $html .= $tab2[$loop]['contenu_cellule'] . " " . $contenu_courant_ajout . " " . $text_color . "</div>"; //} } } //} //} } } /* echo "<div style='position:absolute; top:1500px;'>"; echo "\$tab_cours[5]<pre>"; print_r($tab_cours[5]); echo "</pre>"; echo "</div>"; */ //================================================================== if (isset($affichage_complementaire_sur_edt) && $affichage_complementaire_sur_edt == "absences2") { $html .= affiche_abs2_sur_edt2(); } $html .= "</div>"; return $html; }