security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } $sql="SELECT 1=1 FROM droits WHERE id='/classes/ajouter_periode.php';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { $sql="INSERT INTO droits SET id='/classes/ajouter_periode.php', administrateur='V', professeur='F', cpe='F', scolarite='F', eleve='F', responsable='F', secours='F', autre='F', description='Classes: Ajouter des périodes', statut='';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } $id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); $nb_ajout_periodes=isset($_POST['nb_ajout_periodes']) ? $_POST['nb_ajout_periodes'] : NULL; $nb_periodes_initial=isset($_POST['nb_periodes_initial']) ? $_POST['nb_periodes_initial'] : NULL; if(!isset($id_classe)) { header("Location: index.php?msg=Aucun identifiant de classe n'a été proposé"); die(); } if((isset($nb_ajout_periodes))&&(!preg_match('/^[1-9]$/',$nb_ajout_periodes))) { unset($nb_ajout_periodes); $msg="Nombre de périodes à ajouter invalide."; } if((isset($nb_periodes_initial))&&(!preg_match('/^[1-9]$/',$nb_periodes_initial))) { unset($nb_periodes_initial); $msg="Nombre initial de périodes invalide."; } $call_data = mysqli_query($GLOBALS["mysqli"], "SELECT classe FROM classes WHERE id = '$id_classe'"); $classe = old_mysql_result($call_data, 0, "classe"); $periode_query = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM periodes WHERE id_classe = '$id_classe'"); $test_periode = mysqli_num_rows($periode_query) ; include "../lib/periodes.inc.php"; // ================================= // AJOUT: boireaus $chaine_options_classes=""; $sql="SELECT id, classe FROM classes ORDER BY classe"; $res_class_tmp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_class_tmp)>0){ $id_class_prec=0; $id_class_suiv=0; $temoin_tmp=0; $cpt_classe=0; $num_classe=-1; while($lig_class_tmp=mysqli_fetch_object($res_class_tmp)){ if($lig_class_tmp->id==$id_classe){ // Index de la classe dans les \n"; $temoin_tmp=1; if($lig_class_tmp=mysqli_fetch_object($res_class_tmp)){ $chaine_options_classes.="\n"; $id_class_suiv=$lig_class_tmp->id; } else{ $id_class_suiv=0; } } else { $chaine_options_classes.="\n"; } if($temoin_tmp==0){ $id_class_prec=$lig_class_tmp->id; } $cpt_classe++; } } // ================================= $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ***************** $titre_page = "Gestion des classes - Ajout de périodes"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** echo "
\n"; //========================================================================= function search_liaisons_classes_via_groupes($id_classe) { global $tab_liaisons_classes; $sql="SELECT jgc.id_groupe FROM j_groupes_classes jgc WHERE jgc.id_classe='$id_classe';"; //echo "$sqlANOMALIE : La classe ".$classe." n'a actuellement aucune période.
\n"; require("../lib/footer.inc.php"); die(); } else { $lig=mysqli_fetch_object($res); $max_per=$lig->num_periode; } echo "Recherche des liaisons directes :
\n"; echo "\n"; echo "\n"; search_liaisons_classes_via_groupes($id_classe); if(count($tab_liaisons_classes)>0) { echo ""; $tab_liaisons_classes=array(); $tab_liaisons_classes[]=$id_classe; $sql="SELECT jgc.id_groupe FROM j_groupes_classes jgc WHERE jgc.id_classe='$id_classe';"; //echo "$sql
\n"; } else { while($lig=mysqli_fetch_object($res)) { $sql="SELECT c.classe, jgc.id_classe, g.* FROM j_groupes_classes jgc, groupes g, classes c WHERE jgc.id_classe!='$id_classe' AND g.id=jgc.id_groupe AND c.id=jgc.id_classe AND jgc.id_groupe='$lig->id_groupe' ORDER BY c.classe;"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "Aucune liaison n'a été trouvée.
L'ajout de période ne présente donc pas de difficulté.
\n"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { $cpt=0; while($lig2=mysqli_fetch_object($test)) { if($cpt==0) { echo "$lig2->name ($lig2->description): "; } echo " $lig2->classe"; $cpt++; } echo "
\n"; } } } echo "
La classe $classe est liée (de façon directe ou indirecte (via une autre classe)) aux classes suivantes : ";
$cpt=0;
for($i=0;$i La classe de $classe a actuellement $max_per périodes. Combien de périodes voulez-vous ajouter pour $classe et la ou les classes liées? La classe de $classe a actuellement $max_per périodes. Combien de périodes voulez-vous ajouter pour $classe? Remarques : L'ajout de période présente une difficulté lorsqu'il y a des enseignements/groupes à cheval sur plusieurs classes.
Deux classes partageant un enseignement doivent avoir le même nombre de périodes.
Si vous ajoutez des périodes à la classe ".$classe.", il faudra :\n";
echo "
\n";
echo "
Cela signifierait que vous auriez alors deux enseignements distincts pour $classe et une classe partageant l'enseignement.
Pour le professeur les conséquences sont les suivantes :
\n";
echo "\n";
echo "
\n";
echo "La deuxième solution n'est pas implémentée pour le moment\n";
echo "
Même chose pour les moyennes min et max.
Les saisies de cahier de textes, d'emploi du temps doivent être dupliquées, les saisies antérieures d'absences peuvent-elles être perturbées (?) ou l'association n'est-elle que élève/jour_heures_absence (?),...
\n"; $sql="SELECT num_periode FROM periodes WHERE id_classe='".$id_classe_courant."' ORDER BY num_periode DESC LIMIT 1;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "\n"; } echo "ANOMALIE : La classe ".$classe_courante." n'a actuellement aucune période.
\n"; } else { //$lig=mysql_fetch_object($res); //$num_periode=$lig->num_periode; $num_periode=$nb_periodes_initial; // Récupération de la liste des élèves de la classe pour la dernière période $tab_ele=array(); $sql="SELECT DISTINCT login FROM j_eleves_classes WHERE id_classe='".$id_classe_courant."' AND periode='$num_periode';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "Aucun élève n'est inscrit dans la classe ".$classe_courante." sur la période $num_periode.
\n"; } else { while($lig=mysqli_fetch_object($res)) { $tab_ele[]=$lig->login; } } $tab_group=array(); $sql="SELECT id_groupe FROM j_groupes_classes WHERE id_classe='$id_classe_courant'"; $res_liste_grp_classe=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_liste_grp_classe)>0){ while($lig_tmp=mysqli_fetch_object($res_liste_grp_classe)){ $tab_group[$lig_tmp->id_groupe]=array(); $sql="SELECT DISTINCT login FROM j_eleves_groupes WHERE id_groupe='$lig_tmp->id_groupe' AND periode='$num_periode'"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0){ while($lig_tmp2=mysqli_fetch_object($test)) { $tab_group[$lig_tmp->id_groupe][]=$lig_tmp2->login; } } } } // Boucle sur le nombre de périodes à ajouter for($loop=0;$loop<$nb_ajout_periodes;$loop++) { $num_periode++; echo "Création de la période $num_periode : "; $sql="INSERT INTO periodes SET nom_periode='Période $num_periode', num_periode='$num_periode', verouiller='O', id_classe='".$id_classe_courant."', date_verrouillage='0000-00-00 00:00:00';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { echo "ECHEC"; echo "
\n"; } else { echo "SUCCES"; echo "
\n"; echo "\n"; if(count($tab_ele)>0) { echo "Ajout des élèves dans la classe :"; for($j=0;$j\n"; } } } echo "0) {echo ", ";} $sql="INSERT INTO j_eleves_classes SET login='$tab_ele[$j]', id_classe='$id_classe_courant', periode='$num_periode';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { echo "$tab_ele[$j] "; } else { echo "$tab_ele[$j] "; } } echo "
\n"; } foreach($tab_group as $id_groupe => $tab_ele_groupe) { $tab_champs=array(); $tmp_group=get_group($id_groupe,$tab_champs); echo "Inscription dans l'enseignement ".$tmp_group['name']." (".$tmp_group['description'].") (n°$id_groupe) : "; $kk=0; for($k=0;$k\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { echo "$tab_ele_groupe[$k] "; } else { if($kk>0) {echo ", ";} $sql="INSERT INTO j_eleves_groupes SET login='$tab_ele_groupe[$k]', id_groupe='$id_groupe', periode='$num_periode';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { echo "$tab_ele_groupe[$k] "; } else { echo "$tab_ele_groupe[$k] "; } $kk++; } } echo "
\n"; } echo "
Terminé.
\n"; if((mb_substr(getSettingValue('autorise_edt_tous'),0,1)=='y')||(mb_substr(getSettingValue('autorise_edt_admin'),0,1)=='y')||(mb_substr(getSettingValue('autorise_edt_eleve'),0,1)=='y')) { echo "Pensez à contrôler que vous avez bien défini les dates de périodes dans le calendrier.
\n"; echo "