echo "<p style='margin-top:1em;'>Aucun utilisateur n'administre encore le {$groupe_de_groupes}.</p>"; } // Proposer d'associer de nouveaux utilisateurs echo "\n<p><a href='" . $_SERVER['PHP_SELF'] . "?id_classe={$id_classe}&mode=ajouter_user&id_grp_groupe={$id_grp_groupe}' title=\"Ajouter des groupes au {$groupe_de_groupes}.\">Ajouter des utilisateurs autorisés à modifier la liste des élèves des groupes de ce {$groupe_de_groupes}.</a></p>"; echo "<p style='color:red; margin-top:1em;'>ATTENTION à ne pas modifier simultanément plusieurs formulaires.</p>"; } elseif ($mode == "ajouter_user" && isset($id_grp_groupe)) { // Récupérer les infos sur le groupe de groupes courant $tab_grp_groupes = get_tab_grp_groupes($id_grp_groupe, array('classes', 'matieres', 'profs')); echo " | <a href='" . $_SERVER['PHP_SELF'] . "?id_classe={$id_classe}'>Index {$groupes_de_groupes}</a> | <a href='" . $_SERVER['PHP_SELF'] . "?mode=modifier_grp_groupes&id_grp_groupe={$id_grp_groupe}&id_classe={$id_classe}'>" . $tab_grp_groupes['nom_court'] . "</a>\n\t</p>\n</form>"; $tab_user_preselectionnes = array(); if (count($tab_grp_groupes['admin']) > 0) { foreach ($tab_grp_groupes['admin'] as $cpt => $current_user) { $tab_user_preselectionnes[] = $current_user['login']; } } echo "\n<form action='" . $_SERVER['PHP_SELF'] . "' name='form_ajout_user' method='post'>\n\t<fieldset class='fieldset_opacite50'>\n\t\t" . add_token_field() . "\n\t\t<input type='hidden' name='mode' value='valider_ajout_user' />\n\t\t<input type='hidden' name='id_grp_groupe' value='{$id_grp_groupe}' />\n\t\t<input type='hidden' name='id_classe' value='{$id_classe}' />\n\n\t\t<p class='bold'>Ajouter des administrateurs du {$groupe_de_groupes} n°{$id_grp_groupe} : " . $tab_grp_groupes['nom_court'] . "</p>\n\n\t\t" . liste_checkbox_utilisateurs(array("scolarite", "cpe", "professeur"), $tab_user_preselectionnes) . "\n\n\t\t<p><input type='submit' value='Valider' /></p>\n\n\t\t" . js_checkbox_change_style('checkbox_change', 'texte_', "y") . "\n\t</fieldset>\n</form>"; } elseif ($mode == "ajouter_groupes" && isset($id_grp_groupe)) { // Récupérer les infos sur le groupe de groupes courant $tab_grp_groupes = get_tab_grp_groupes($id_grp_groupe, array('classes', 'matieres', 'profs')); echo " | <a href='" . $_SERVER['PHP_SELF'] . "?id_classe={$id_classe}'>Index {$groupes_de_groupes}</a> | <a href='" . $_SERVER['PHP_SELF'] . "?mode=modifier_grp_groupes&id_grp_groupe={$id_grp_groupe}&id_classe={$id_classe}'>" . $tab_grp_groupes['nom_court'] . "</a>"; // Choix des classes dans lesquelles sélectionner des groupes if (!isset($tab_id_classe)) { echo "\n\t</p>\n</form>\n\n\t<p class='bold'>Ajout de groupes au {$groupe_de_groupes} n°{$id_grp_groupe} : " . $tab_grp_groupes['nom_court'] . "</p>\n\t<p>Choisissez les classes dans lesquelles sélectionner les groupes/enseignements.</p>\n\n<form action='" . $_SERVER['PHP_SELF'] . "' name='form_ajout_groupe' method='post'>\n\t<fieldset class='fieldset_opacite50'>\n\t\t" . add_token_field() . "\n\t\t<input type='hidden' name='mode' value='ajouter_groupes' />\n\t\t<input type='hidden' name='id_grp_groupe' value='{$id_grp_groupe}' />\n\t\t<input type='hidden' name='id_classe' value='{$id_classe}' />"; $tmp_tab_classe = array(); $sql = "SELECT DISTINCT p.id_classe, c.classe FROM periodes p, classes c WHERE p.id_classe=c.id ORDER BY c.classe"; $res = mysqli_query($GLOBALS["mysqli"], $sql); $cpt = 0; while ($lig = mysqli_fetch_object($res)) { $tmp_tab_classe['texte'][$cpt] = $lig->classe; $tmp_tab_classe['nom_champ'][$cpt] = "tab_id_classe[]"; $tmp_tab_classe['id_champ'][$cpt] = "tab_id_classe_" . $lig->id_classe;
$message_suppression = "Confirmation de suppression"; //**************** EN-TETE ***************** $titre_page = "Saisie abs.prof"; require_once "../lib/header.inc.php"; //**************** FIN EN-TETE ************* //debug_var(); /* A FAIRE Si un remplacement a été accepté et que l'on change des dates, il faut supprimer le remplacement accepté et/ou avertir le prof. */ //================================================================== echo "<a name=\"debut_de_page\"></a>\n<p class='bold'>\n\t<a href='index.php'><img src='../images/icons/back.png' alt='Retour' class='back_link'/> Retour</a>"; if (!isset($login_user)) { echo "</p>\n\n<h2>Saisie d'une absence de professeur(s)</h2>"; echo js_checkbox_change_style("checkbox_change", 'texte_', "y"); echo "\n<form action=\"" . $_SERVER['PHP_SELF'] . "#debut_de_page\" method=\"post\" style=\"width: 100%;\" name=\"formulaire_saisie_login_user\">\n\t<fieldset class='fieldset_opacite50'>\n\t\t" . add_token_field() . "\n\t\t" . (isset($id_absence) ? "<input type='hidden' name='id_absence' value='" . $id_absence . "' />" : "") . "\n\n\t\t<p>Sélectionnez la liste des professeur(s) absent(s) sur qui un créneau, qui quelques créneaux, qui un jour,... :</p>\n\t\t" . liste_checkbox_utilisateurs(array('professeur')) . "\n\n\t\t<p><input type='submit' value='Valider' /></p>\n\n\t\t<p><a href='javascript:cocher_decocher(true)'>Tout cocher</a> / <a href='javascript:cocher_decocher(false)'>Tout décocher</a></p>\n\n\t</fieldset>\n</form>\n\n"; require "../lib/footer.inc.php"; die; } //================================================================== echo " | <a href='" . $_SERVER['PHP_SELF'] . "'>Saisir une absence pour d'autres professeurs</a></p>\n\n<h2>Saisie d'une absence de professeur(s)</h2>\n"; // Problème: Si on a saisi d'un coup plusieurs absences sur un même créneau, on va avoir plusieurs id_absence... // Il faut juste afficher les saisies effectuées à l'instant et proposer de les modifier ou de saisir une proposition de remplacement // Remplir un... /* echo "DEBUG:<br /> count(\$tab_id_absence)=".count($tab_id_absence)."<br />"; echo "\$id_absence=".$id_absence."<br />"; */ if (isset($tab_id_absence) && count($tab_id_absence) > 1) { echo "<p>Faire une proposition de remplacement ou un appel à remplacement pour l'absence de :</p>\n\t<ul>";
<h2>Comptes exclus des propositions de remplacements</h2> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" id='form3'> <fieldset class='fieldset_opacite50'> <?php echo add_token_field(); ?> <legend class="invisible">Comptes_exclus</legend> <?php $tab_statuts=array('professeur'); $tab_user_preselectionnes=array(); $tab_user_preselectionnes=get_tab_profs_exclus_des_propositions_de_remplacement(); echo liste_checkbox_utilisateurs($tab_statuts, $tab_user_preselectionnes); ?> <input type='hidden' name='is_posted' value='3' /> <p class="center"> <input type='submit' name='valider' value='Valider' /> </p> <p style='text-indent:-4em;margin-left:4em;'><em>NOTE :</em> Si vous disposez de comptes génériques (<em style='font-size:x-small'>par exemple pour l'équipe d'EPS qui fait les saisies d'absences en début d'heure sur un seul poste et qui a autre chose à faire que de se connecter, saisir les absences, se déconnecter pour que le collègue suivant fasse ses saisies</em>), vous pouvez souhaiter exclure certains comptes des propositions de remplacements.</p> </fieldset> </form> <!-- ================================================ -->
elseif(($_SESSION['statut']=='scolarite')&&(getSettingValue('OOoUploadScol')=='yes')) {$upload_modele_ooo_autorise="y";} elseif(($_SESSION['statut']=='cpe')&&(getSettingValue('OOoUploadCpe')=='yes')) {$upload_modele_ooo_autorise="y";} elseif(($_SESSION['statut']=='professeur')&&(getSettingValue('OOoUploadProf')=='yes')) {$upload_modele_ooo_autorise="y";} if($upload_modele_ooo_autorise=='y') { echo "<form method='post' ENCTYPE='multipart/form-data' action='".$_SERVER['PHP_SELF']."'>\n"; echo add_token_field(); echo "<p>Mettre en place un nouveau modèle :</p>\n"; echo "<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"512000\">"; if($_SESSION['statut']=='administrateur') { echo "<p>Pour quel(s) utilisateur(s) souhaitez-vous mettre en place le modèle ? "; echo "<a href='javascript:cocher_decocher(true)'>Tout cocher</a> / <a href='javascript:cocher_decocher(false)'>Tout décocher</a>\n"; echo "</p>\n"; echo liste_checkbox_utilisateurs(array('administrateur', 'scolarite', 'cpe', 'professeur'), array($_SESSION['login'])); /* $sql="SELECT login, civilite, nom, prenom, statut FROM utilisateurs WHERE statut='administrateur' OR statut='scolarite' OR statut='cpe' OR statut='professeur' AND etat='actif' ORDER BY statut, login, nom, prenom;"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $nombreligne=mysql_num_rows($res); $nbcol=3; $nb_par_colonne=round($nombreligne/$nbcol); echo "<table width='100%' summary=\"Tableau de choix des utilisateurs auxquels distribuer le modèle\">\n"; echo "<tr valign='top' align='center'>\n"; echo "<td align='left'>\n"; $cpt=0; $statut_prec=""; while($lig=mysql_fetch_object($res)) {
if (!isset($mode)) { echo "</p>\n\n<p style='margin-top:1em;margin-bottom:1em;'>La <strong>possibilité</strong> d'utiliser des fichiers de signature est actuellement <strong>" . (getSettingValue('active_fichiers_signature') != 'y' ? "in" : "") . "active</strong>.</p>\n\n<p class='bold'>Choisissez :</p>\n\n<form enctype=\"multipart/form-data\" action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"post\" id=\"form1\" style=\"width: 100%;\">\n\n\t<fieldset id='activation' style='border: 1px solid grey; background-image: url(\"../images/background/opacite50.png\");'>\n\t\t<legend style='border: 1px solid grey; background-color: white;'>Activation</legend>\n\n\t\t<input type='radio' \n\t\t\t\tname='activer' \n\t\t\t\tid='activer_y' \n\t\t\t\tvalue='y' \n\t\t\t\t" . (getSettingValue('active_fichiers_signature') == 'y' ? " checked='checked'" : "") . "\n\t\t\t\tonchange='changement();' />\n\t\t<label for='activer_y' style='cursor: pointer;'>\n\t\t\tActiver la possibilité d'utiliser des fichiers de signature\n\t\t</label>\n\n\t\t<br />\n\n\t\t<input type='radio' \n\t\t\t\tname='activer' \n\t\t\t\tid='activer_n' \n\t\t\t\tvalue='n' \n\t\t\t\t" . (getSettingValue('active_fichiers_signature') != 'y' ? " checked='checked'" : "") . "\n\t\t\t\tonchange='changement();' />\n\t\t<label for='activer_n' style='cursor: pointer;'>\n\t\t\tDésactiver la possibilité d'utiliser des fichiers de signature\n\t\t</label>\n\n\t\t" . add_token_field() . "\n\n\t\t<input type='hidden' name='activation_desactivation' value='y' />\n\t\t<input type='submit' value='Valider' />\n\n\t</fieldset>\n</form>\n\n<p style='margin-top:1em;'>Ou</p>\n\n<ol>\n\t<li><a href='" . $_SERVER['PHP_SELF'] . "?mode=choix_utilisateurs'>Choisir les personnes autorisées à mettre en place et utiliser un fichier de signature pour telle ou telle classe</a></li>\n\t<li><a href='" . $_SERVER['PHP_SELF'] . "?mode=choix_fichier'>Associer des fichiers de signature à tel ou tel compte</a><br />\n\tVous pouvez cependant laisser les utilisateurs choisis à l'étape précédente téléverser eux-même leurs fichiers de signature.</li>\n\t<li><a href='" . $_SERVER['PHP_SELF'] . "?mode=choix_assoc_fichier_user_classe'>Définir les associations classe/utilisateur<br />\n\tet éventuellement associer des fichiers de signature aux classes pour tel ou tel compte</a><br />\n\tCette étape est indispensable ne serait-ce que pour indiquer pour quelle(s) classe(s) tel utilisateur peut utiliser un fichier de signature (<em>même si vous laissez l'utilisateur téléverser lui-même son fichier</em>).</li>\n</ol>\n\n<p style='margin-top:1em;'><em>NOTES :</em></p>\n<ul>\n\t<li>\n\t\t<p>Les fichiers mis en place ne sont pas protégés contre un téléchargement abusif.<br />\n\t\tToute personne connaissant le chemin (<em>aléatoire tout de même</em>) et le nom du fichier signature pourrait le récupérer.</p>\n\t</li>\n\t<li>\n\t\t<p>Le chemin d'un fichier mis en place peut se trouver après affichage dans une page web,... dans le cache de votre navigateur ou dans les fichiers temporaires du navigateur.<br />\n\t\tPensez à effacer vos traces.</p>\n\t</li>\n\t<li>\n\t\t<p>On peut aussi se demander quelle garantie d'authenticité apporte une image insérée.<br />\n\t\tUn document peut être scanné et l'image réinsérée ailleurs.<br />\n\t\tConserver un tamponnage classique des bulletins peut être une bonne chose.</p>\n\t</li>\n</ul>\n"; require "../lib/footer.inc.php"; die; } //============================================================================== if ($mode == 'choix_utilisateurs') { $tab_user_preselectionnes = array(); $sql = "SELECT * FROM signature_droits;"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res) > 0) { while ($lig = mysqli_fetch_object($res)) { $tab_user_preselectionnes[] = $lig->login; } } echo " | <a href='" . $_SERVER['PHP_SELF'] . "'>Index signature</a></p>\n\n<form enctype=\"multipart/form-data\" action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"post\" id=\"form1\" style=\"width: 100%;\">\n\n\t<fieldset id='choix_user' style='border: 1px solid grey; background-image: url(\"../images/background/opacite50.png\");'>\n\t\t<legend style='border: 1px solid grey; background-color: white;'>Choix des utilisateurs</legend>\n\n\t\t<p class='bold' style='margin-top:1em;margin-bottom:1em;'>Choisissez les utilisateurs autorisés à utiliser des fichiers de signature.</p>\n\n\t\t" . liste_checkbox_utilisateurs(array('administrateur', 'scolarite', 'cpe', 'professeur'), $tab_user_preselectionnes) . "\n\n\t\t" . add_token_field() . "\n\n\t\t<input type='hidden' name='mode' value='choix_utilisateurs' />\n\t\t<input type='hidden' name='enregistrer_choix_utilisateurs' value='y' />\n\t\t<input type='submit' value='Valider' />\n\n\t</fieldset>\n</form>\n"; require "../lib/footer.inc.php"; die; } //============================================================================== if ($mode == 'choix_fichier') { // Tableau des chemins user_temp_directory $tab_user_temp_dir = array(); // Tableau des utilisateurs autorisés à utiliser un fichier de signature $cpt = 0; $tab_user = array(); $sql = "SELECT * FROM signature_droits;"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res) > 0) { while ($lig = mysqli_fetch_object($res)) { $tab_user[$cpt]['login'] = $lig->login;
// onclick=\"return confirm_abandon (this, change, '$themessage')\" $message_suppression = "Confirmation de suppression"; //**************** EN-TETE ***************** $titre_page = "Consulter remplacements"; require_once "../lib/header.inc.php"; //**************** FIN EN-TETE ************* //debug_var(); //=================================================================== // Récupérer la liste des créneaux $tab_creneau = get_heures_debut_fin_creneaux(); //=================================================================== echo "<a name=\"debut_de_page\"></a>\n<p class='bold'>\n\t<a href='index.php' onclick=\"return confirm_abandon (this, change, '{$themessage}')\"><img src='../images/icons/back.png' alt='Retour' class='back_link'/> Retour</a>" . $liens_alt . "\n</p>"; // Proposer d'extraire les remplacements entre telle et telle date, pour tous les profs ou pour une sélection de profs // Afficher ensuite deux tableaux, l'un de totaux, l'autre du détail des remplacements avec date et heure. if ($mode == "") { echo "<form enctype='multipart/form-data' action='" . $_SERVER['PHP_SELF'] . "' method='post' name='form1'>\n\t<fieldset class='fieldset_opacite50'>\n\t\t" . add_token_field() . "\n\t\t<h3>Extraction des remplacements validés</h3>\n\n\t\t<p>Intervalle de dates : du \n\t\t<input type='text' name = 'date_debut_remplac' id='date_debut_remplac' size='10' value = \"" . $date_debut_remplac . "\" onKeyDown=\"clavier_date(this.id,event);\" AutoComplete=\"off\" />" . img_calendrier_js("date_debut_remplac", "img_bouton_date_debut_remplac") . " au <input type='text' name = 'date_fin_remplac' id='date_fin_remplac' size='10' value = \"" . $date_fin_remplac . "\" onKeyDown=\"clavier_date(this.id,event);\" AutoComplete=\"off\" />" . img_calendrier_js("date_fin_remplac", "img_bouton_date_fin_remplac") . "</p>\n\n\t\t<p>Extraire les remplacements pour le ou les professeurs cochés ci-dessous :</p>\n\t\t" . liste_checkbox_utilisateurs(array('professeur'), array(), 'login_prof', 'cocher_decocher', "n", "SELECT DISTINCT u.login, \n\t\t\t\t\t\t\t\tu.civilite, \n\t\t\t\t\t\t\t\tu.nom, \n\t\t\t\t\t\t\t\tu.prenom, \n\t\t\t\t\t\t\t\tu.statut \n\t\t\t\t\t\t\tFROM utilisateurs u, \n\t\t\t\t\t\t\t\tabs_prof_remplacement apr \n\t\t\t\t\t\t\tWHERE u.statut='professeur' AND \n\t\t\t\t\t\t\t\tu.etat='actif' AND \n\t\t\t\t\t\t\t\tu.login=apr.login_user AND \n\t\t\t\t\t\t\t\tapr.validation_remplacement='oui' \n\t\t\t\t\t\t\tORDER BY statut, nom, prenom, login;") . "\n\t\t<p><a href='#' onclick='cocher_decocher(true);return false;'>Cocher</a>/<a href='#' onclick='cocher_decocher(false);return false;'>décocher</a> tous les professeurs</p>\n\n\t\t<p><input type='hidden' name='mode' value='extraction' />\n\t\t<p><input type='submit' value='Extraire' /></p>\n\t</fieldset>\n<form>\n\n<script type='text/javascript'>\n\t" . js_checkbox_change_style('checkbox_change', 'texte_', 'n') . "\n</script>\n\n<p style='color:red'><em>A FAIRE :</em></p>\n<ul>\n\t<li>Liste des cours non remplacés et cours remplacés par jour.<br />\n\tAvec indication de l'effectif susceptible de se retrouver en permanence.</li>\n\t<li>Liste des remplacements effectués, pour une éventuelle(?) rémunaration.</li>\n</ul>"; } elseif ($mode == 'extraction') { //=================================================================== // Récupérer la liste des créneaux $tab_creneau = get_heures_debut_fin_creneaux(); //=================================================================== echo "\n\t<h3>Extraction des remplacements validés</h3>\n\t<p>Remplacements effectués entre le " . $date_debut_remplac . " et le " . $date_fin_remplac . " pour le ou les professeurs choisis :</p>\n\t<table class='boireaus boireaus_alt resizable sortable'>\n\t\t<tr>\n\t\t\t<th class='text' title=\"Cliquez pour trier\">Date</th>\n\t\t\t<th class='text' title=\"Cliquez pour trier\">Classe</th>\n\t\t\t<th class='text' title=\"Cliquez pour trier\">Professeur remplaçant</th>\n\t\t\t<th class='text' title=\"Cliquez pour trier\">Commentaire prof</th>\n\t\t\t<th class='text' title=\"Cliquez pour trier\">Commentaire validation</th>\n\t\t\t<th class='text' title=\"Cliquez pour trier\">Salle</th>\n\t\t\t<th class='text' title=\"Cliquez pour trier\">Cours remplacé</th>\n\t\t</tr>"; $mysql_date_debut_remplac = get_mysql_date_from_slash_date($date_debut_remplac); $mysql_date_fin_remplac = get_mysql_date_from_slash_date($date_fin_remplac); $nom_classe = array(); $civ_nom_prenom = array(); $info_grp = array(); for ($loop = 0; $loop < count($login_prof); $loop++) { $sql = "SELECT * FROM abs_prof_remplacement WHERE validation_remplacement='oui' AND date_debut_r>='{$mysql_date_debut_remplac}' AND date_fin_r<='{$mysql_date_fin_remplac}' AND login_user='******' ORDER BY date_debut_r;"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res) > 0) {