function affiche_devoir_vignette($devoir, $couleur_bord_tableau_notice, $color_fond_notices) { echo "<table style=\"border-style:solid; border-width:1px; border-color: " . $couleur_bord_tableau_notice . ";\" width=\"100%\" cellpadding=\"1\" bgcolor=\"" . $color_fond_notices["t"] . "\" summary=\"Tableau de...\">\n<tr>\n<td>\n"; echo "<strong> A faire pour le :</strong>\n"; echo "<b>" . strftime("%a %d %b %y", $devoir->getDateCt()) . "</b>\n"; echo " "; //vise $html_balise = "<div style='display: none; color: red; margin: 0px; float: right;' id='compte_rendu_en_cours_devoir_" . $devoir->getIdCt() . "'></div>"; $html_balise .= '<div style="margin: 0px; float: left;">'; if ($devoir->getVise() != 'y' or isset($visa_cdt_inter_modif_notices_visees) and $visa_cdt_inter_modif_notices_visees == 'no') { //$html_balise .=("<span style='color:plum'>".$devoir->getIdLogin()."</span><br />"); //$html_balise .=("<span style='color:coral'>".$_SESSION['login']."</span>"); $liens_edition_suppression = "y"; if (my_strtoupper($devoir->getIdLogin()) != my_strtoupper($_SESSION['login']) && getSettingValue("cdt_autoriser_modif_multiprof") != "yes") { $liens_edition_suppression = "n"; } if ($liens_edition_suppression == "y") { $html_balise .= "<a href=\"#\" onclick=\"javascript:\n\t\t\t\t\t\t\t\t\tid_groupe = '" . $devoir->getIdGroupe() . "';\n\t\t\t\t\t\t\t\t\tgetWinEditionNotice().setAjaxContent('ajax_edition_devoir.php?id_devoir=" . $devoir->getIdCt() . "',{ onComplete: function(transport) {\tinitWysiwyg();}});\n\t\t\t\t\t\t\t\t\tgetWinListeNotices();\n\t\t\t\t\t\t\t\t\tnew Ajax.Updater('affichage_liste_notice', './ajax_affichages_liste_notices.php?id_groupe=" . $devoir->getIdGroupe() . "',{ onComplete:function() {updateDivModification();}});\n\t\t\t\t\t\t\t\t\tupdateCalendarWithUnixDate(" . $devoir->getDateCt() . ");\n\t\t\t\t\t\t\t\t\tobject_en_cours_edition = 'devoir';\n\t\t\t\t\t\t\t\t\t"; $html_balise .= "\">"; $html_balise .= "<img style=\"border: 0px;\" src=\"../images/edit16.png\" alt=\"modifier\" title=\"modifier\" /></a>\n"; $html_balise .= " "; $html_balise .= "<a href=\"#\" onclick=\"javascript:\n contenu_a_copier = '" . addslashes(htmlspecialchars($devoir->getContenu())) . "';\n ct_a_importer_class='" . get_class($devoir) . "';\n id_ct_a_importer='" . $devoir->getIdCt() . "';\n new Ajax.Updater('affichage_liste_notice', './ajax_affichages_liste_notices.php?id_groupe=" . $devoir->getIdGroupe() . "&ct_a_importer_class=" . get_class($devoir) . "&id_ct_a_importer=" . $devoir->getIdCt() . "',{ onComplete:function() {updateDivModification();} });\n \"><img style=\"border: 0px;\" src=\""; if (isset($_SESSION['ct_a_importer']) && $_SESSION['ct_a_importer'] == $devoir) { $html_balise .= "../images/icons/copy-16-gold.png"; } else { $html_balise .= "../images/icons/copy-16.png"; } $html_balise .= "\" alt=\"Copier\" title=\"Copier\" /></a>\n"; $html_balise .= " "; $html_balise .= "<a href=\"#\" onclick=\"javascript:\n\t\t\t\t\t\t\t\t\tsuppressionDevoir('" . strftime("%A %d %B %Y", $devoir->getDateCt()) . "','" . $devoir->getIdCt() . "', '" . $devoir->getIdGroupe() . "','" . add_token_in_js_func() . "');\n\t\t\t\t\t\t\t\t\tnew Ajax.Updater('affichage_derniere_notice', 'ajax_affichage_dernieres_notices.php', {onComplete : function () {updateDivModification();}});\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\"><img style=\"border: 0px;\" src=\"../images/delete16.png\" alt=\"supprimer\" title=\"supprimer\" /></a>\n"; if ($devoir->getDateVisibiliteEleve() != "" && mysql_date_to_unix_timestamp($devoir->getDateVisibiliteEleve()) > time()) { $html_balise .= "<img src=\"../images/icons/visible.png\" width=\"19\" height=\"16\" alt=\"Date de visibilité de la notice pour les élèves\" title=\"Date de visibilité de la notice pour les élèves\" /><span style='font-size: xx-small; color:red;'> " . get_date_heure_from_mysql_date($devoir->getDateVisibiliteEleve()) . "</span>\n"; } } } else { $html_balise .= "<i><span class=\"red\">Notice signée</span></i>"; } $html_balise .= '</div>'; echo $html_balise; echo "<br/>"; //affichage contenu echo $devoir->getContenu(); //Documents joints $ctDevoirDocuments = $devoir->getCahierTexteTravailAFaireFichierJoints(); echo afficheDocuments($ctDevoirDocuments); echo "</td>\n</tr>\n</table>\n<br/>\n"; }
//=========================================== $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]; } ksort($tab_ts); echo "<form action='" . $_SERVER['PHP_SELF'] . "' method='post'>\n" . add_token_field() . "\n<input type='hidden' name='id_ev' value='{$id_ev}' />\n<input type='hidden' name='mode' value='enregistrer' />\n<table class='boireaus boireaus_alt'>\n\t<thead>\n\t\t<tr>\n\t\t\t<th></th>"; foreach ($tab_ts as $ts => $mysql_date) { echo "\n\t\t\t<th>" . strftime("%a %d/%m/%Y à %H:%M", $ts) . "</th>"; } echo "\n\t\t</tr>\n\t</thead>\n\t<tbody>"; $chaine_js_classes_deja = ""; for ($loop = 0; $loop < count($id_salle_ev); $loop++) { $lieu = ""; if ($id_salle_ev[$loop] != "" && isset($tab_salles['indice'][$id_salle_ev[$loop]]['designation_complete'])) { $lieu = $tab_salles['indice'][$id_salle_ev[$loop]]['designation_complete']; } $current_id_salle = $id_salle_ev[$loop];
$type_notice = "devoir"; } else { // Plus rien à afficher, on sort de la boucle break; } } /* if($type_notice=="devoir") { echo "<p>".$not_dev->date_visibilite_eleve."<br />"; echo mysql_date_to_unix_timestamp($not_dev->date_visibilite_eleve)."<br />"; echo $timestamp_courant."<br />"; echo $not_dev->contenu."<br />"; echo "</p>"; } */ if ($type_notice != "devoir" || $not_dev->date_visibilite_eleve == "" || $not_dev->date_visibilite_eleve != "" && mysql_date_to_unix_timestamp($not_dev->date_visibilite_eleve) <= $timestamp_courant || verif_groupe_appartient_prof($id_groupe) == 1) { // Passage en HTML // INSERT INTO setting SET name='depolluer_MSOffice', value='y'; if (getSettingValue('depolluer_MSOffice') == 'y') { $content =& preg_replace('#.*<\\!\\[endif\\]-->#', "", $not_dev->contenu); } else { $content =& $not_dev->contenu; } $content .= affiche_docs_joints($not_dev->id_ct, $not_dev->type); echo "<h3 class='see_all_h3'>\n<strong>\n"; if ($not_dev->type == "t") { echo "<a name='travail_" . $not_dev->id_ct . "'></a>"; echo "A faire pour le : "; } else { echo "<a name='compte_rendu_" . $not_dev->id_ct . "'></a>"; }
include "../lib/calendrier/calendrier.class.php"; while ($k < $nb_periode) { if ($nom_periode[$k] == '') { $nom_periode[$k] = "période " . $k; } $alt = $alt * -1; //$cal[$k] = new Calendrier("formulaire", "date_fin_period_".$k); echo "<tr class='lig{$alt}'>\n"; echo "<td style='padding: 5px;'>Période {$k}</td>\n"; echo "<td style='padding: 5px;'><input type='text' id='nom_period_{$k}' name='nom_period[{$k}]'"; echo " onchange='changement()'"; echo " value=\"" . $nom_periode[$k] . "\" size='30' /></td>\n"; echo "<td style='padding: 5px;'><input type='text' id='date_fin_period_{$k}' name='date_fin_period[{$k}]'"; echo " onchange='changement()'"; echo " onKeyDown=\"clavier_date(this.id,event);\" AutoComplete=\"off\""; echo " value=\"" . strftime("%d/%m/%Y", mysql_date_to_unix_timestamp($date_fin_periode[$k])) . "\" size='10' />"; //echo "<a href=\"#calend\" onClick=\"".$cal[$k]->get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\"><img src=\"../lib/calendrier/petit_calendrier.gif\" border=\"0\" alt=\"Petit calendrier\" /></a>\n"; echo img_calendrier_js("date_fin_period_" . $k, "img_bouton_date_fin_period_" . $k); echo "</td>\n"; echo "</tr>\n"; $k++; } ?> </table> <!--/center--> <?php } ?> <center><input type='submit' value='Enregistrer' style='margin: 30px 0 30px 0;'/></center> <input type='hidden' name='is_posted' value="yes" /> <input type='hidden' name='id_classe' value='<?php
} // Modification Regis : mise en page par CSS des devoirs à faire si la matière n'est pas sélectionnée $test_cahier_texte = mysqli_query($GLOBALS["mysqli"], "SELECT contenu FROM ct_entry WHERE (id_groupe='{$id_groupe}')"); $nb_test = mysqli_num_rows($test_cahier_texte); $delai = getSettingValue("delai_devoirs"); //Affichage des devoirs globaux s'il n'y a pas de notices dans ct_entry à afficher if ($nb_test == 0 and ($id_classe != null or $selected_eleve) and $delai != 0) { //echo "plop"; //echo "id_classe=$id_classe<br />"; if (isset($selected_eleve) && $selected_eleve) { $tab_date_fin = array(); $tab_id_classe_ele = array(); $tab_periode_ele = array(); $tab_per_eleve = get_class_dates_from_ele_login($selected_eleve->login); foreach ($tab_per_eleve as $key => $value) { $tab_date_fin[] = mysql_date_to_unix_timestamp($value['date_fin']); $tab_id_classe_ele[] = $value['id_classe']; $tab_periode_ele[] = $key; } } if ($delai == "") { die("Erreur : Délai de visualisation du travail personnel non défini. Contactez l'administrateur de GEPI de votre établissement."); } $nb_dev = 0; for ($i = 0; $i <= $delai; $i++) { //$aujourhui = $aujourdhui = mktime(0,0,0,date("m"),date("d"),date("Y")); $aujourdhui = mktime(0, 0, 0, date("m"), date("d"), date("Y")); $jour = mktime(0, 0, 0, date('m', $aujourdhui), date('d', $aujourdhui) + $i, date('Y', $aujourdhui)); $jour_suivant = $jour + 24 * 3600; if (is_numeric($id_classe) and $id_classe > 0) { $sql = "SELECT ct.id_sequence, ct.contenu, g.id, g.description, ct.date_ct, ct.id_ct " . "FROM ct_devoirs_entry ct, groupes g, j_groupes_classes jc WHERE (" . "ct.id_groupe = jc.id_groupe and " . "g.id = jc.id_groupe and " . "jc.id_classe = '" . $id_classe . "' and " . "ct.contenu != '' and " . "ct.date_ct >= '{$jour}' and\n\t ct.date_ct < '{$jour_suivant}'\n\t );";
echo "\n\t\t\t\t\t\t<td title='{$nb} réponses positives.'>" . $nb . "</td>"; } $sql = "SELECT 1=1 FROM abs_prof_remplacement WHERE id_absence='{$lig->id}' AND reponse='non';"; $res_rempl = mysqli_query($GLOBALS["mysqli"], $sql); $nb = mysqli_num_rows($res_rempl); echo "\n\t\t\t\t\t<td title='{$nb} réponses négatives.'>" . $nb . "</td>"; $sql = "SELECT * FROM abs_prof_remplacement WHERE id_absence='{$lig->id}' AND validation_remplacement='oui' ORDER BY date_debut_r, id_classe;"; $res_rempl = mysqli_query($GLOBALS["mysqli"], $sql); $nb = mysqli_num_rows($res_rempl); echo "\n\t\t\t\t\t<td title='{$nb} remplacements validés.'>" . $nb . "</td>"; // Liste des remplacements echo "\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<table class='boireaus boireaus_alt'>"; while ($lig_rempl = mysqli_fetch_object($res_rempl)) { $ts1 = mysql_date_to_unix_timestamp($lig_rempl->date_debut_r); $date_heure = strftime("%A %d/%m/%Y de %H:%M", $ts1); $ts2 = mysql_date_to_unix_timestamp($lig_rempl->date_fin_r); $date_heure .= strftime(" à %H:%M", $ts2); $style = ""; if ($ts2 < time()) { $style = " style='background-color:grey;'"; } echo "\n\t\t\t\t\t\t\t<tr{$style}>\n\t\t\t\t\t\t\t\t<td>"; if (!isset($nom_classe[$lig_rempl->id_classe])) { $nom_classe[$lig_rempl->id_classe] = get_nom_classe($lig_rempl->id_classe); } echo $nom_classe[$lig_rempl->id_classe]; echo "\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>"; echo $date_heure; echo "\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td>"; if (!isset($nom_prof[$lig_rempl->login_user])) { $nom_prof[$lig_rempl->login_user] = affiche_utilisateur($lig_rempl->login_user, $lig_rempl->id_classe);
function get_dates_notices_et_dev($id_groupe, $date_debut, $date_fin, $timestamp_debut, $timestamp_fin, $avec_notices = "y", $avec_dev = "y") { // Passer en paramètres $date_debut et $date_fin (au format jj/mm/aaa) ou bien directement les $timestamp_debut et $timestamp_fin global $current_ordre; $tab_dates = array(); $tab_dates2 = array(); $tab_notices = array(); $tab_dev = array(); if ($timestamp_debut == "") { $tmp_tab = explode("/", $date_debut); $jour = $tmp_tab[0]; $mois = $tmp_tab[1]; $annee = $tmp_tab[2]; $timestamp_debut = mktime(0, 0, 0, $mois, $jour, $annee); } if ($timestamp_fin == "") { $tmp_tab = explode("/", $date_fin); $jour = $tmp_tab[0]; $mois = $tmp_tab[1]; $annee = $tmp_tab[2]; $timestamp_fin = mktime(0, 0, 0, $mois, $jour, $annee); } if ($avec_notices == "y") { $sql = "SELECT cte.* FROM ct_entry cte WHERE (contenu != ''\n\t\t\t\tAND date_ct != ''\n\t\t\t\tAND date_ct >= '" . $timestamp_debut . "'\n\t\t\t\tAND date_ct <= '" . $timestamp_fin . "'\n\t\t\t\tAND id_groupe='" . $id_groupe . "'\n\t\t\t\t) ORDER BY date_ct DESC, heure_entry DESC;"; //echo "$sql<br />"; $res = mysqli_query($GLOBALS["mysqli"], $sql); $cpt = 0; while ($lig = mysqli_fetch_object($res)) { //echo "$lig->date_ct<br />"; $date_notice = strftime("%a %d %b %y", $lig->date_ct); if (!in_array($date_notice, $tab_dates)) { $tab_dates[] = $date_notice; $tab_dates2[] = $lig->date_ct; } $tab_notices[$date_notice][$cpt]['id_ct'] = $lig->id_ct; $tab_notices[$date_notice][$cpt]['id_login'] = $lig->id_login; $tab_notices[$date_notice][$cpt]['contenu'] = $lig->contenu; //echo " <span style='color:red'>\$tab_notices[$date_notice][$cpt]['contenu']=$lig->contenu</span><br />"; $cpt++; } } if ($avec_dev == "y") { $sql = "SELECT ctd.* FROM ct_devoirs_entry ctd WHERE (contenu != ''\n\t\t\t\tAND date_ct != ''\n\t\t\t\tAND date_ct >= '" . $timestamp_debut . "'\n\t\t\t\tAND date_ct <= '" . $timestamp_fin . "'\n\t\t\t\tAND id_groupe='" . $id_groupe . "'\n\t\t\t\t) ORDER BY date_ct DESC;"; //echo "$sql<br />"; $res = mysqli_query($GLOBALS["mysqli"], $sql); $cpt = 0; $timestamp_courant = time(); while ($lig = mysqli_fetch_object($res)) { if ($lig->date_visibilite_eleve == "" || $lig->date_visibilite_eleve != "" && mysql_date_to_unix_timestamp($lig->date_visibilite_eleve) <= $timestamp_courant || verif_groupe_appartient_prof($lig->id_groupe) == 1) { //echo "$lig->date_ct<br />"; $date_dev = strftime("%a %d %b %y", $lig->date_ct); if (!in_array($date_dev, $tab_dates)) { $tab_dates[] = $date_dev; $tab_dates2[] = $lig->date_ct; } $tab_dev[$date_dev][$cpt]['id_ct'] = $lig->id_ct; $tab_dev[$date_dev][$cpt]['id_login'] = $lig->id_login; $tab_dev[$date_dev][$cpt]['contenu'] = $lig->contenu; //echo " <span style='color:green'>\$tab_dev[$date_dev][$cpt]['contenu']=$lig->contenu</span><br />"; $cpt++; } } } //echo "\$current_ordre=$current_ordre<br />"; //sort($tab_dates); if ($current_ordre == 'ASC') { array_multisort($tab_dates, SORT_DESC, SORT_NUMERIC, $tab_dates2, SORT_ASC, SORT_NUMERIC); } else { array_multisort($tab_dates, SORT_ASC, SORT_NUMERIC, $tab_dates2, SORT_DESC, SORT_NUMERIC); } return array($tab_dates, $tab_notices, $tab_dev); }
function get_tab_remplacements_eleve($login_eleve, $mode = "") { global $gepiPath; $tab = array(); $sql_ajout = ""; if ($mode == "") { $sql_ajout = " AND date_fin_r>='" . strftime('%Y-%m-%d %H:%M:%S') . "'"; } $sql = "SELECT DISTINCT apr.* FROM abs_prof_remplacement apr, \n\t\t\t\t\tj_eleves_groupes jeg, \n\t\t\t\t\tj_eleves_classes jec \n\t\t\t\tWHERE jeg.login='******' AND \n\t\t\t\t\tjeg.login=jec.login AND \n\t\t\t\t\tjec.id_classe=apr.id_classe AND \n\t\t\t\t\tjeg.id_groupe=apr.id_groupe AND \n\t\t\t\t\tapr.validation_remplacement='oui' AND \n\t\t\t\t\tapr.info_famille='oui'" . $sql_ajout . ";"; //echo "$sql<br />"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res) > 0) { $cpt = 0; $tab_infos_absence = array(); $nom_prof = array(); while ($lig = mysqli_fetch_object($res)) { // Il faudrait tester plus finement les dates dans le cas d'élèves qui changent de classe en cours d'année. $tab[$cpt]['id'] = $lig->id; $tab[$cpt]['id_absence'] = $lig->id_absence; if (!isset($tab_infos_absence[$lig->id_absence])) { $sql = "SELECT * FROM abs_prof WHERE id='{$lig->id_absence}';"; $res_abs = mysqli_query($GLOBALS["mysqli"], $sql); $lig_abs = mysqli_fetch_object($res_abs); $tab_infos_absence[$lig->id_absence]['login_prof_abs'] = $lig_abs->login_user; } $tab[$cpt]['login_prof_abs'] = $tab_infos_absence[$lig->id_absence]['login_prof_abs']; if (!isset($nom_prof[$tab[$cpt]['login_prof_abs']])) { $nom_prof[$tab[$cpt]['login_prof_abs']] = affiche_utilisateur($tab[$cpt]['login_prof_abs'], $lig->id_classe); } $tab[$cpt]['id_groupe'] = $lig->id_groupe; $tab[$cpt]['id_classe'] = $lig->id_classe; $tab[$cpt]['jour'] = $lig->jour; $tab[$cpt]['id_creneau'] = $lig->id_creneau; $tab[$cpt]['date_debut_r'] = $lig->date_debut_r; $tab[$cpt]['date_fin_r'] = $lig->date_fin_r; $tab[$cpt]['login_user'] = $lig->login_user; if (!isset($nom_prof[$tab[$cpt]['login_user']])) { $nom_prof[$tab[$cpt]['login_user']] = affiche_utilisateur($tab[$cpt]['login_user'], $lig->id_classe); } $tab[$cpt]['commentaire_prof'] = $lig->commentaire_prof; $tab[$cpt]['reponse'] = $lig->reponse; $tab[$cpt]['date_reponse'] = $lig->date_reponse; $tab[$cpt]['validation_remplacement'] = $lig->validation_remplacement; $tab[$cpt]['commentaire_validation'] = $lig->commentaire_validation; $tab[$cpt]['salle'] = $lig->salle; $tab[$cpt]['info_famille'] = $lig->info_famille; $tab[$cpt]['texte_famille'] = $lig->texte_famille; // Effectuer des preg_replace() sur des chaines //__PROF_ABSENT__, __COURS__, __DATE_HEURE__, __PROF_REMPLACANT__ et __SALLE__ $chaine_a_traduire = $lig->texte_famille; $chaine_a_traduire = preg_replace("/__SALLE__/", $lig->salle, $chaine_a_traduire); $chaine_a_traduire = preg_replace("/__PROF_ABSENT__/", $nom_prof[$tab[$cpt]['login_prof_abs']], $chaine_a_traduire); $chaine_a_traduire = preg_replace("/__PROF_REMPLACANT__/", $nom_prof[$tab[$cpt]['login_user']], $chaine_a_traduire); $ts1 = mysql_date_to_unix_timestamp($tab[$cpt]['date_debut_r']); $date_heure = strftime("%A %d/%m/%Y de %H:%M", $ts1); $ts2 = mysql_date_to_unix_timestamp($tab[$cpt]['date_fin_r']); $date_heure .= strftime(" à %H:%M", $ts2); $chaine_a_traduire = preg_replace("/__DATE_HEURE__/", $date_heure, $chaine_a_traduire); $info_grp = get_info_grp($lig->id_groupe, array('description', 'matieres')); $chaine_a_traduire = preg_replace("/__COURS__/", $info_grp, $chaine_a_traduire); // A FAIRE : PRENDRE EN COMPTE AUSSI UNE CHAINE __LIEN_EDT_ICAL__ if (getSettingAOui('active_edt_ical') && (getSettingAOui('EdtIcalEleve') || getSettingAOui('EdtIcalResponsable'))) { if (preg_match("/__LIEN_EDT_ICAL__/", $chaine_a_traduire)) { $num_semaine_annee = sprintf("%02d", strftime("%V", $ts1)) . "|" . strftime("%Y", $ts1); //$num_semaine_annee=strftime("%V", $ts1)."|".strftime("%Y", $ts1); $chaine_a_traduire = preg_replace("/__LIEN_EDT_ICAL__/", "<a href='{$gepiPath}/edt/index.php?mode=afficher_edt&type_edt=classe&id_classe=" . $lig->id_classe . "&num_semaine_annee=" . $num_semaine_annee . "'>Emploi du temps</a>", $chaine_a_traduire); } } $tab[$cpt]['texte_famille_traduit'] = $chaine_a_traduire; $cpt++; } } return $tab; }
echo '<form method="post" action="enregistrement_modif_notification.php">'; echo '<input type="hidden" name="menu" value="' . $menu . '"/>'; echo '<p>'; echo '<input type="hidden" name="id_notification" value="' . $notification->getPrimaryKey() . '"/>'; echo '<input type="hidden" name="modif" value="tel"/>'; echo '<input type="text" size="20" name="tel" id="tel_saisi" value=""/>'; echo '<button type="submit">Valider</button>'; if (count($tab_ele) > 0) { $chaine_tel_ele = ""; for ($loop = 0; $loop < count($tab_ele); $loop++) { $sql = "SELECT * FROM eleves WHERE login='******' AND (tel_pers!='' OR tel_port!='' OR tel_prof!='');"; $res_tel_ele = mysqli_query($GLOBALS['mysqli'], $sql); if (mysqli_num_rows($res_tel_ele) > 0) { $lig_tel_ele = mysqli_fetch_object($res_tel_ele); $chaine_tel_ele .= "<p>" . $lig_tel_ele->nom . " " . $lig_tel_ele->prenom . " (<em>" . formate_date($lig_tel_ele->naissance); if (time() - mysql_date_to_unix_timestamp($lig_tel_ele->naissance . " 00:00:00") > 18 * 3600 * 24 * 365.25) { //$chaine_tel_ele.=time()."-".mysql_date_to_unix_timestamp($lig_tel_ele->naissance." 00:00:00")."=".(time()-mysql_date_to_unix_timestamp($lig_tel_ele->naissance))." et 18*3600*24*365.25=".(18*3600*24*365.25); $chaine_tel_ele .= " (majeur)"; } $chaine_tel_ele .= "</em>)</p><table class='boireaus boireaus_alt'>"; if ($lig_tel_ele->tel_pers != "") { $chaine_tel_ele .= "<tr><th>Tel.pers</th><td><a href=\"#\" onclick=\"document.getElementById('tel_saisi').value='{$lig_tel_ele->tel_pers}';return false;\" title=\"Choisir ce numéro\">" . $lig_tel_ele->tel_pers . "</a></td></tr>"; } if ($lig_tel_ele->tel_port != "") { $chaine_tel_ele .= "<tr><th>Tel.port</th><td><a href=\"#\" onclick=\"document.getElementById('tel_saisi').value='{$lig_tel_ele->tel_port}';return false;\" title=\"Choisir ce numéro\">" . $lig_tel_ele->tel_port . "</a></td></tr>"; } if ($lig_tel_ele->tel_prof != "") { $chaine_tel_ele .= "<tr><th>Tel.prof</th><td><a href=\"#\" onclick=\"document.getElementById('tel_saisi').value='{$lig_tel_ele->tel_prof}';return false;\" title=\"Choisir ce numéro\">" . $lig_tel_ele->tel_prof . "</a></td></tr>"; } $chaine_tel_ele .= "</table>"; }
} elseif ($_SESSION['statut'] == 'scolarite') { $sql = "SELECT * FROM d_dates_evenements_classes WHERE id_ev='{$id_ev}' AND id_classe IN (SELECT DISTINCT jsc.id_classe FROM j_scol_classes jsc WHERE jsc.login='******'login'] . "');"; } elseif ($_SESSION['statut'] == 'cpe') { $sql = "SELECT * FROM d_dates_evenements_classes WHERE id_ev='{$id_ev}' 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'] . "');"; } elseif ($_SESSION['statut'] == 'responsable') { $sql = "SELECT * FROM d_dates_evenements_classes WHERE id_ev='{$id_ev}' 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\tresponsables2 r, \n\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\tj_eleves_classes jec \n\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\trp.pers_id=r.pers_id AND \n\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\te.login=jec.login AND \n\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);"; } elseif ($_SESSION['statut'] == 'eleve') { $sql = "SELECT * FROM d_dates_evenements_classes WHERE id_ev='{$id_ev}' AND id_classe IN (SELECT DISTINCT jec.id_classe FROM j_eleves_classes jec WHERE jec.login='******'login'] . "');"; } else { $sql = "SELECT * FROM d_dates_evenements_classes WHERE id_ev='{$id_ev}';"; } $res2 = mysqli_query($GLOBALS["mysqli"], $sql); while ($lig2 = mysqli_fetch_object($res2)) { $nom_classe = get_nom_classe($lig2->id_classe); $uid_ev = "..."; $timestamp1 = mysql_date_to_unix_timestamp($lig2->date_evenement); $timestamp2 = $timestamp1 + $duree; // On n'enregistre pas la date de modif... // On va mettre, il y a 5min... ou alors peut-être la date de début d'année... $timestamp_creation = time() - 5 * 60; // Est-ce que CREATED est un champ indispensable $export_ical .= "\nBEGIN:VEVENT\nDTSTART:" . dateToCal2($timestamp1) . "\nDTEND:" . dateToCal2($timestamp2) . "\nDTSTAMP:" . dateToCal2($timestamp1) . "\nUID:ev_" . $id_ev . "_id_classe_" . $lig2->id_classe . "@gepi.{$_etab}\nCREATED:" . dateToCal2($timestamp_creation) . "\nDESCRIPTION:" . nettoyage_et_formatage_chaine_description_ics($description) . "\nLOCATION:" . $gepiSchoolCity . "\nSEQUENCE:0\nSTATUS:CONFIRMED\nSUMMARY:" . $prefixe_sujet . " " . $nom_classe . "\nTRANSP:OPAQUE\nEND:VEVENT"; } $export_ical .= "\nEND:VCALENDAR"; $nom_fic = "gepi_cal_" . $id_ev . "_" . date('Y.m.d_H.i.s_') . preg_replace("/ /", "_", microtime()) . ".ics"; send_file_download_headers('text/calendar', $nom_fic); echo $export_ical; die; /* J'ai un décalage de 2h sur les horaires... 18h45 au lieu de 16h45 Pas bon: Généré par mon ical.php
echo "\n\t\t<p class='bold'>Classe de " . get_nom_classe($id_classe[$i]) . "</p>\n\t\t<input type='hidden' name='id_classe[]' value='" . $id_classe[$i] . "' />\n\t\t<div style='margin-left:3em; margin-bottom:0.5em; padding:0.5em;' class='fieldset_opacite50'>\n\n\t\t<p>Prochain conseil de classe :<br />"; if (count($dates_conseils[$id_classe[$i]]) == 0) { echo "<span style='style='color:red'>Aucune date de conseil de classe n'est définie.</span>"; if (acces("/classes/dates_classes.php", $_SESSION['statut'])) { echo "<br /><a href='../classes/dates_classes.php'>Définir les dates de conseils de classe</a>"; } else { echo "<br />Un utilisateur autorisé à saisir les événements classe doit définir la date des conseils de classe."; } } else { // On ne devrait avoir qu'un conseil de classe programmé précisément dans le futur pour chaque classe for ($j = 0; $j < count($dates_conseils[$id_classe[$i]]); $j++) { $checked = ""; if ($j == 0) { $checked = " checked"; } $ts = mysql_date_to_unix_timestamp($dates_conseils[$id_classe[$i]][$j]); echo "\n\t\t<input type='radio' name='date_conseil[" . $id_classe[$i] . "]' id='date_conseil_" . $id_classe[$i] . "_" . $ts . "' value='" . $dates_conseils[$id_classe[$i]][$j] . "'{$checked} /><label for='date_conseil_" . $id_classe[$i] . "_" . $ts . "' id='texte_date_conseil_" . $id_classe[$i] . "_" . $ts . "'>" . formate_date($dates_conseils[$id_classe[$i]][$j], "y", "complet") . "</label><br />"; } } echo "</p>"; for ($j = 0; $j < count($tab_engagements['indice']); $j++) { if ($tab_engagements['indice'][$j]['conseil_de_classe'] == 'yes') { $current_id_engagement = $tab_engagements['indice'][$j]['id']; if (!isset($tab_engagements_classe['id_engagement_user'][$current_id_engagement]) || count($tab_engagements_classe['id_engagement_user'][$current_id_engagement]) == 0) { echo "\n\t\t<p><strong>" . $tab_engagements['indice'][$j]['nom'] . " :</strong> Aucun n'est choisi.<br />"; } else { echo "\n\t\t<table class='boireaus boireaus_alt'>\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>" . $tab_engagements['indice'][$j]['nom'] . "</th>\n\t\t\t\t\t<th>Convocation</th>\n\t\t\t\t\t<th>Mail</th>\n\t\t\t\t\t<th>Listes élèves pour prise de notes</th>\n\t\t\t\t\t<th>Informations</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>"; foreach ($tab_engagements_classe['id_engagement_user'][$current_id_engagement] as $key => $value) { $current_user = get_info_user($value); echo "\n\t\t\t\t<tr>\n\t\t\t\t\t<td>" . $current_user['civ_denomination'] . "</td>\n\t\t\t\t\t<td>"; if (count($dates_conseils[$id_classe[$i]]) > 0) {
function affiche_abs2_sur_edt2() { global $login_eleve; global $jours; global $largeur_jour; global $hauteur_jour; global $x_jour; global $premiere_heure; global $marge_secu; global $hauteur_titre; global $debug_edt; global $tabdiv_infobulle, $tabid_infobulle; global $x0, $y0, $largeur_edt, $hauteur_une_heure; global $hauteur_entete; $html = ""; if (isset($login_eleve)) { foreach ($jours['num_jour'] as $num_jour => $current_jour) { if (!isset($ts_1er_jour)) { $ts_1er_jour = mktime(0, 0, 0, $current_jour['mm'], $current_jour['jj'], $current_jour['aaaa']); $mysqldate_1er_jour = $current_jour['aaaa'] . "-" . $current_jour['mm'] . "-" . $current_jour['jj'] . " 00:00:00"; } $ts_dernier_jour = mktime(23, 59, 59, $current_jour['mm'], $current_jour['jj'], $current_jour['aaaa']); $mysqldate_dernier_jour = $current_jour['aaaa'] . "-" . $current_jour['mm'] . "-" . $current_jour['jj'] . " 23:59:59"; } $tab_abs = array(); $sql = "SELECT * FROM a_saisies a, eleves e \n\t\t\t\t\tWHERE e.id_eleve=a.eleve_id AND \n\t\t\t\t\t\te.login='******' AND \n\t\t\t\t\t\t((a.debut_abs>='" . $mysqldate_1er_jour . "' AND a.debut_abs<='" . $mysqldate_dernier_jour . "') OR \n\t\t\t\t\t\t(a.fin_abs>='" . $mysqldate_1er_jour . "' AND a.fin_abs<='" . $mysqldate_dernier_jour . "') OR \n\t\t\t\t\t\t(a.debut_abs<='" . $mysqldate_1er_jour . "' AND a.fin_abs>='" . $mysqldate_dernier_jour . "'));"; //$html.="$sql<br />"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res) == 0) { $html .= "<p style='color:red'>Aucune saisie d'absence trouvée.</p>"; } else { $cpt = 0; while ($lig = mysqli_fetch_assoc($res)) { // ******************************************************* // ******************************************************* // A FAIRE : Il faudrait récupérer l'info englobée ou non. // ******************************************************* // ******************************************************* $tab_abs[$cpt] = $lig; $id_saisie = $lig['id']; $tab_abs[$cpt]['englobee'] = "n"; $saisie = AbsenceEleveSaisieQuery::create()->includeDeleted()->findPk($id_saisie); if ($saisie == null) { $tab_abs[$cpt]['trouvee'] = "n"; } else { $tab_abs[$cpt]['trouvee'] = "y"; $saisies_englobante_col = $saisie->getAbsenceEleveSaisiesEnglobantes(); if (!$saisies_englobante_col->isEmpty()) { $tab_abs[$cpt]['englobee'] = "y"; } } $cpt++; } } /* echo "tab_abs<pre>"; print_r($tab_abs); echo "</pre>"; */ // Afficher ou non les saisies englobées. $afficher_englobee = "y"; //$y_div_conteneur=$y1; $y_div_conteneur = $y0; //$y_div_conteneur=$y_decalage_2_js; //$html.="\$y_div_conteneur=$y_div_conteneur<br />"; $cpt_abs = 0; foreach ($tab_abs as $cpt => $current_abs) { $ts_debut_abs = mysql_date_to_unix_timestamp($current_abs['debut_abs']); $ts_fin_abs = mysql_date_to_unix_timestamp($current_abs['fin_abs']); //$aaaammjj_debut_abs=strftime("%Y%m%d", $ts_debut_abs); // Il faut boucler sur les jours inclus dans l'absence // ERREUR : Si l'absence dure plus d'une semaine... SAUF QU'ON N'AFFICHE QU'UNE SEMAINE A LA FOIS SUR L'EDT foreach ($jours['num_jour'] as $num_jour => $current_jour) { if ($ts_fin_abs > $current_jour['timestamp'] && $ts_debut_abs <= $current_jour['timestamp'] + 3600 * 24 - 1) { //$x=$x1+$x0+($num_jour-1)*$largeur_jour+$marge_secu/2; $x = $x0 + ($num_jour - 1) * $largeur_jour + $marge_secu / 2; //$ts_debut_1er_jour_absence=mktime(0,0,0,strftime("%m", $ts_debut_abs),strftime("%d", $ts_debut_abs),strftime("%Y", $ts_debut_abs)); $ts_debut_jour = mktime(0, 0, 0, strftime("%m", $current_jour['timestamp']), strftime("%d", $current_jour['timestamp']), strftime("%Y", $current_jour['timestamp'])); if ($ts_debut_abs < $current_jour['timestamp']) { // L'absence débute avant ce jour // On va prendre l'heure de début de journée //$y=$y_div_conteneur+$hauteur_entete+$hauteur_titre; $y = $y_div_conteneur + $hauteur_entete; } elseif ($ts_debut_abs < $current_jour['timestamp'] + 3600 * 24 - 1) { // L'absence débute dans la journée $delta = ($ts_debut_abs - $ts_debut_jour - 3600 * $premiere_heure) / 3600; //$y=$y_div_conteneur+$hauteur_entete+$hauteur_titre+$delta*$hauteur_une_heure; $y = $y_div_conteneur + $hauteur_entete + $delta * $hauteur_une_heure; } // Fin du div if ($ts_fin_abs > $current_jour['timestamp'] + 3600 * 24 - 1) { //$y_fin=$y_div_conteneur+$hauteur_entete+$hauteur_titre+$hauteur_jour; $y_fin = $y_div_conteneur + $hauteur_entete + $hauteur_jour; if (isset($tab_jour[$num_jour - 1]) && isset($tab_horaire_jour[$tab_jour[$num_jour - 1]])) { $tmp_tab = explode(":", $tab_horaire_jour[$tab_jour[$num_jour - 1]]['fermeture_horaire_etablissement']); $heure = $tmp_tab[0]; $minute = $tmp_tab[1]; $seconde = $tmp_tab[2]; $ts_fin_journee_cours = mktime($heure, $minute, $seconde, strftime("%m", $ts_debut_jour), strftime("%d", $ts_debut_jour), strftime("%Y", $ts_debut_jour)); $delta = ($ts_fin_journee_cours - $ts_debut_jour - 3600 * $premiere_heure) / 3600; //$y_fin=$y_div_conteneur+$hauteur_entete+$hauteur_titre+$delta*$hauteur_une_heure; $y_fin = $y_div_conteneur + $hauteur_entete + $delta * $hauteur_une_heure; } } else { // L'absence finit dans la journée $delta = ($ts_fin_abs - $ts_debut_jour - 3600 * $premiere_heure) / 3600; //$y_fin=$y_div_conteneur+$hauteur_entete+$hauteur_titre+$delta*$hauteur_une_heure; $y_fin = $y_div_conteneur + $hauteur_entete + $delta * $hauteur_une_heure; } // Pour éviter des collisions d'affichage lors du debug $decalage_x = 0; $chaine_debug = ""; //$decalage_x=$largeur_jour/2; //$chaine_debug="<span style='font-size:xx-small; color:red'>".ceil($y)."</span>"; // Pour les saisies englobées, il faudrait juste afficher un texte avec un lien/action ouvrant la saisie. if ($current_abs['englobee'] == 'n') { $bgcolor = "background-color:red; "; // Défaut: pour une absence courant sur plusieurs jours, on n'entoure que le div de la journée de début de la saisie englobante $chaine_mise_en_exergue = ""; $chaine_mise_en_exergue = "onmouseover=\"document.getElementById('div_fond_abs_" . $cpt_abs . "').style.border='2px solid lime'\" onmouseout=\"document.getElementById('div_fond_abs_" . $cpt_abs . "').style.border='0px solid red'\" "; // Fond : Opacité 50 $html .= "<div id='div_fond_abs_" . $cpt_abs . "' style='position:absolute; top:" . ceil($y) . "px; left:" . ceil($x) . "px; width:" . ($largeur_jour - $marge_secu) . "px; height:" . floor($y_fin - $y) . "px; opacity:0.5; " . $bgcolor . " border:1px solid red; z-index:3000;' " . $chaine_mise_en_exergue . " title=\"Saisie n°" . $current_abs['id'] . "\n\tDu " . formate_date($current_abs['debut_abs'], "y", "court") . " au " . formate_date($current_abs['fin_abs'], "y", "court") . "\"></div>"; //<a href='../mod_abs2/visu_saisie.php?id_saisie=".$current_abs['id']."' target='_blank'>".$current_abs['id']."</a> // Texte $html .= "<div id='div_saisie_abs_" . $cpt_abs . "' style='position:absolute; top:" . ceil($y) . "px; left:" . ceil($x + $decalage_x) . "px; width:16px; height:16px; z-index:3001;'><a href='../mod_abs2/visu_saisie.php?id_saisie=" . $current_abs['id'] . "' onclick=\"visu_saisie_abs_en_infobulle(" . $current_abs['id'] . ");return false;\" target='_blank' title=\"Voir la saisie n°" . $current_abs['id'] . "\n\tDu " . formate_date($current_abs['debut_abs'], "y", "court") . " au " . formate_date($current_abs['fin_abs'], "y", "court") . "\"><img src='../images/icons/saisie_1.png' class='icone16' alt='Saisie' /></a>" . $chaine_debug . "</div>"; } else { $bgcolor = ""; if ($afficher_englobee == "y") { // Texte $html .= "<div id='div_saisie_abs_" . $cpt_abs . "' style='position:absolute; top:" . ceil($y) . "px; left:" . ceil($x + $decalage_x) . "px; width:" . ($largeur_jour - $marge_secu) . "px; height:" . floor($y_fin - $y) . "px; " . $bgcolor . "z-index:3001;'><a href='../mod_abs2/visu_saisie.php?id_saisie=" . $current_abs['id'] . "' onclick=\"visu_saisie_abs_en_infobulle(" . $current_abs['id'] . ");return false;\" target='_blank' title=\"Voir la saisie (englobée) n°" . $current_abs['id'] . "\n\tDu " . formate_date($current_abs['debut_abs'], "y", "court") . " au " . formate_date($current_abs['fin_abs'], "y", "court") . "\"><img src='../images/icons/saisie.png' class='icone16' alt='Saisie' /></a>" . $chaine_debug . "</div>"; } } $cpt_abs++; } } } /* echo "<div style='clear:both;'></div>"; echo "<pre>"; print_r($jours); echo "</pre>"; */ $titre_infobulle = "Saisie Absence"; $texte_infobulle = "<div id='div_visu_saisie_abs'></div>"; $tabdiv_infobulle[] = creer_div_infobulle('infobulle_visu_saisie_abs', $titre_infobulle, "", $texte_infobulle, "", 40, 0, 'y', 'y', 'n', 'n', 4000); $html .= "<script type='text/javascript'>\n\t\tfunction visu_saisie_abs_en_infobulle(id_saisie) {\n\t\t\t//alert('plop');\n\t\t\tnew Ajax.Updater(\$('div_visu_saisie_abs'),'../lib/ajax_action.php?mode=visu_abs&id_saisie='+id_saisie,{method: 'get'});\n\t\t\tafficher_div('infobulle_visu_saisie_abs', 'y', 10,10);\n\t\t}\n\n\t\tfunction permuter_display_div_abs(mode) {\n\t\t\tif(mode=='') {\n\t\t\t\tif(document.getElementById('lien_permuter_display_abs_visible')) {\n\t\t\t\t\tdocument.getElementById('lien_permuter_display_abs_visible').style.display='none';\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdocument.getElementById('lien_permuter_display_abs_visible').style.display='';\n\t\t\t\t}\n\n\t\t\t\tif(document.getElementById('lien_permuter_display_abs_invisible')) {\n\t\t\t\t\tdocument.getElementById('lien_permuter_display_abs_invisible').style.display='';\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdocument.getElementById('lien_permuter_display_abs_invisible').style.display='none';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif(document.getElementById('lien_permuter_display_abs_visible')) {\n\t\t\t\t\tdocument.getElementById('lien_permuter_display_abs_visible').style.display='';\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdocument.getElementById('lien_permuter_display_abs_visible').style.display='none';\n\t\t\t\t}\n\n\t\t\t\tif(document.getElementById('lien_permuter_display_abs_invisible')) {\n\t\t\t\t\tdocument.getElementById('lien_permuter_display_abs_invisible').style.display='none';\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdocument.getElementById('lien_permuter_display_abs_invisible').style.display='';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor(i=0;i<{$cpt_abs};i++) {\n\t\t\t\tif(document.getElementById('div_fond_abs_'+i)) {\n\t\t\t\t\tdocument.getElementById('div_fond_abs_'+i).style.display=mode;\n\t\t\t\t}\n\t\t\t\tif(document.getElementById('div_saisie_abs_'+i)) {\n\t\t\t\t\tdocument.getElementById('div_saisie_abs_'+i).style.display=mode;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tpermuter_display_div_abs('');\n\t</script>"; } return $html; }
?> "> <img src='../images/icons/quit_16.png' width='16' height='16' alt="" title="Déconnecter en changeant le mot de passe" /> </a> <?php } ?> </td> <td> <?php echo strftime("%d/%m/%Y à %H:%M", mysql_date_to_unix_timestamp($row[5])); ?> </td> </tr> <?php } } ?> </table> <hr /> <?php // // Activation/désactivation des connexions // ?>