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'] == "5") { check_token(false); // Ménage sur l'ordre des groupes dans l'affichage simplifié prof: // Sinon, on peut se retrouver avec des rangs aberrants liés à des groupes qui n'existent plus dans la table groupes. $sql="DELETE FROM preferences WHERE name LIKE 'accueil_simpl_id_groupe_order_%';"; $del=mysqli_query($GLOBALS["mysqli"], $sql); // On se connecte au LDAP $ldap->connect(); // Si on a bien les donnees dans la session, on peut continuer /* * Recherche de tous les profs de l'établissement (pour ce RNE) */ $matieres = $ldap->get_all_matieres(); $nb_matieres = $matieres['count']; /* * Ajout des matières */ for($cpt=0; $cpt<$matieres['count']; $cpt++) { $code_matiere = $matieres[$cpt]['cn'][0]; $nom_matiere = $matieres[$cpt]['description'][0]; // On test si on a déjà cette matière $nouvelle_matiere = MatierePeer::retrieveByPK($code_matiere); if ($nouvelle_matiere != null) { echo "La matière " .$nouvelle_matiere->getMatiere()." (" .$nouvelle_matiere->getNomComplet() .") existe déjà
"; } else { $nouvelle_matiere = new Matiere(); $nouvelle_matiere->setMatiere($code_matiere); $nouvelle_matiere->setNomComplet($nom_matiere); $nouvelle_matiere->save(); } // Maintenant on associe les profs à cette matiere $nb_profs = $matieres[$cpt]['memberuid']['count']; $matiere_profs = $nouvelle_matiere->getProfesseurs(); if ($nb_profs > 0) { for ($i=0;$i<$nb_profs;$i++){ // On vérifie que le prof existe, quand même... $prof = UtilisateurProfessionnelPeer::retrieveByPK($matieres[$cpt]['memberuid'][$i]); // Le prof existe, on créer l'association, si elle n'existe pas encore if ($prof != null) { // L'association n'existe pas, on la créé // Pour ça, on doit déterminer l'ordre if (!$matiere_profs->contains($prof)) { $assoc = JProfesseursMatieresQuery::create() ->filterByProfesseur($prof) ->orderByOrdreMatieres('desc') ->findOne(); $nouvel_ordre = $assoc == null ? 1 : $assoc->getOrdreMatieres()+1; $new_assoc = new JProfesseursMatieres(); $new_assoc->setProfesseur($prof); $new_assoc->setMatiere($nouvelle_matiere); $new_assoc->setOrdreMatieres($nouvel_ordre); $new_assoc->save(); } } else { echo "Le prof associé (".$matieres[$cpt]['memberuid'][$i].") n'existe pas dans la base !
"; } } } } // fin parcours des matières /* * Résumé des matières trouvées : */ echo "

Matières trouvées : $nb_matieres"."

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

Passer à l'étape 6 :

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

L'étape 5 vous permet d'importer les matières et de les associés aux professeurs qui vont avoir la charge de les enseigner. Les matières déjà présentes ne seront pas supprimées.

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