예제 #1
0
        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}&amp;mode=ajouter_user&amp;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&amp;id_grp_groupe={$id_grp_groupe}&amp;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}&nbsp;: " . $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&amp;id_grp_groupe={$id_grp_groupe}&amp;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}&nbsp;: " . $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;
예제 #2
0
$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,...&nbsp;:</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&nbsp;:</p>\n\t<ul>";
예제 #3
0
<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&nbsp;:</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>

<!-- ================================================ -->
예제 #4
0
	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&nbsp;:</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&nbsp;? ";
			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)) {
예제 #5
0
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&nbsp;:</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&nbsp;:</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;
예제 #6
0
// 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&nbsp;: 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&nbsp;:</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&nbsp;:</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&nbsp;:</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) {