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(); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } //**************** EN-TETE ***************** $titre_page = "Outil d'initialisation de l'année : Importation des matières"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** // Utilisation de la classe LDAP chargee et configuree $ldap = new LDAPServerScribe(); echo "

Retour Retour

"; if ($_POST['step'] == "6") { check_token(false); /* * Vidage des tables necessaires */ if (!is_table_vide("groupes")) { vider_table_seule("groupes"); } if (!is_table_vide("j_groupes_classes")) { vider_table_seule("j_groupes_classes"); } if (!is_table_vide("j_groupes_professeurs")) { vider_table_seule("j_groupes_professeurs"); } if (!is_table_vide("j_eleves_groupes")) { vider_table_seule("j_eleves_groupes"); } if (!is_table_vide("j_groupes_matieres")) { vider_table_seule("j_groupes_matieres"); } if (!is_table_vide("j_signalement")) { vider_table_seule("j_signalement"); } if (!is_table_vide("edt_classes")) { vider_table_seule("edt_classes"); } if (!is_table_vide("edt_cours")) { vider_table_seule("edt_cours"); } // On se connecte au LDAP $ldap->connect(); $equipes = $ldap->get_all_equipes(); $nb_equipes = $equipes['count']; $nombre_enseignements = 0; # On initialise un tableau avec juste les données nécessaires $donnees_equipes = array(); for($cpt=0; $cpt<$equipes['count']; $cpt++) { $code_classe = str_replace('profs-','',$equipes[$cpt]['cn'][0]); $donnees_equipes[$code_classe] = array(); for($i=0;$i<$equipes[$cpt]['memberuid']['count'];$i++) { $donnees_equipes[$code_classe][] = $equipes[$cpt]['memberuid'][$i]; } } $classes = ClasseQuery::create() ->setFormatter(ModelCriteria::FORMAT_ON_DEMAND) ->find(); // On boucle sur chaque équipe, ce qui revient à boucler sur les classes foreach($classes as $classe_courante) { # On a une classe, on poursuit if (array_key_exists($classe_courante->getNom(), $donnees_equipes)) { # On initialisation la liste des élèves de la classe $students_query = mysqli_query($GLOBALS["mysqli"], "SELECT login FROM j_eleves_classes WHERE id_classe = '".$classe_courante->getId()."' AND periode = '1'"); unset($students); $students = array(); while ($row = mysqli_fetch_object($students_query)) { $students[] = $row->login; } # On passe tous les profs de l'équipe foreach($donnees_equipes[$classe_courante->getNom()] as $login_prof) { $prof = UtilisateurProfessionnelPeer::retrieveByPK($login_prof); if ($prof) { # On a un prof. On créé un enseignement pour chacune des matières qui lui sont associées. $matieres = $prof->getMatieres(); foreach($matieres as $matiere) { $rec_groupe = mysqli_query($GLOBALS["mysqli"], "INSERT INTO groupes SET name = '".$matiere->getNomComplet()."', description = '".$matiere->getNomComplet()."'"); $id_groupe = ((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res); $rec_mat = mysqli_query($GLOBALS["mysqli"], "INSERT INTO j_groupes_matieres SET id_matiere = '".$matiere->getMatiere()."', id_groupe = '".$id_groupe."'"); $rec_prof = mysqli_query($GLOBALS["mysqli"], "INSERT INTO j_groupes_professeurs SET login = '".$prof->getLogin()."', id_groupe = '".$id_groupe."'"); # Maintenant il faut mettre les élèves foreach ($students as $student) { foreach ($classe_courante->getPeriodeNotes() as $periode) { $rec = mysqli_query($GLOBALS["mysqli"], "INSERT INTO j_eleves_groupes SET login = '".$student."', id_groupe = '".$id_groupe."', periode = '".$periode->getNumPeriode()."'"); } # Fin boucle périodes } # Fin boucle élèves # Association à la classe $rec = mysqli_query($GLOBALS["mysqli"], "INSERT INTO j_groupes_classes SET id_groupe = '".$id_groupe."', id_classe = '".$classe_courante->getId()."'"); $nombre_enseignements++; #} # Fin test si enseignement existe déjà } # Fin boucle matières du prof } # Fin test prof existant } # Fin boucle profs } else { # Pas de classe, on renvoie un message d'erreur. echo "

La classe $code_classe n'a pas été trouvée. Les cours ne seront pas créés.

"; } } // fin parcours des classes echo "

Groupes créés : $nombre_enseignements"."

"; echo "
"; echo "
"; echo "
"; //echo add_token_field(); echo ""; echo ""; echo "

Passer à l'étape 7 :

"; echo ""; echo "
"; } else { // Affichage de la page des explications de l'etape 6 (aucune donnee postee) echo "

L'étape 6 vous permet de créer les enseignements dans les classes.

"; echo "

Attention ! En raison de l'absence de données détaillées dans l'annuaire LDAP, la procédure va extrapoler les enseignements à partir des équipes pédagogiques uniquement. En conséquences seront créés des enseignements pour toutes les matières associées à tous les enseignants de l'équipe pédagogique d'une classe donnée. Ensuite, tous les élèves de la classe seront associés à ces enseignements, pour toutes les périodes. Il sera donc indispensable de refaire une vérification complète des enseignements ainsi créés. Notez en outre que les enseignements multi-classes (groupes de langue, par exemple) seront créés pour chaque classe séparémment, et qu'il vous faudra donc les 'fusionner' manuellement.

"; echo "

Cette étape reste facultative, si vous préférez créer à la main les enseignements à travers les interfaces dédiées de Gepi.

"; echo "

Tous les groupes existants dans la base actuelle seront supprimés !

"; echo "
"; echo add_token_field(); echo ""; echo ""; echo "
"; echo "
"; } require("../lib/footer.inc.php"); ?>