1) { header("Location: ../index.php");}; require_once('../inc/functions_inc.php'); //besoin des fonctions premier()+prepare_login() et plus si envole if(isset($_SESSION['cdt_envole'])) {require_once('../inc/functions_envole.inc.php');} ?> Administration
Le fichier avec l'emploi du temps est manquant, un certain nombre d'informations ne sera pas intégré à la base cdt.
"; } if(!isset($_SESSION['cdt_envole'])) echo "
Les mots de passe par défaut des comptes créés sont les dates de naissance sous la forme jjmmaaaa (exemple : 21051978).
Si une date de naissance est incorrectement renseignée dans le fichier, elle prendra la valeur 00000000.
"; $xml_sts_emp = simplexml_load_file('../fichiers_joints/sts_emp_xml_file.xml'); if (empty($emp_manquant)) $xml_emp_sts = simplexml_load_file('../fichiers_joints/emp_sts_xml_file.xml'); if ($xml_sts_emp) { //export des données de l etablissement $accents = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüýÿÑñ"; $noaccents = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyyNn"; $ar_prof=array(); $ar_prof_inscrit=array(); $ar_classe_inscrit=array(); $ar_etab=array(); $ar_matiere=array(); $ar_matiere_cdt=array(); $ar_matiere_temp=array(); $ar_classe=array(); $ar_alternance_temp=array(); $ar_alternance=array(); $ar_type_alternance=array(); $ar_matiere_cdt_code=array(); $ar_groupe_inscrit=array(); $ar_groupe_choisi=array(); $ar_civil = array(0=>"M./Mme",1=>"M.",2=>"Mme",3=>"Mme","."=>"M.","M"=>"Mme","L"=>"Mme"); $ar_fonctions = array("ENS"=>array("professeur",2), "EDU"=>array("CPE",3), "DIR"=>array("personnel de direction",4)); //fonctions importées (nom et droits) $ar_homonymes = array(); $ar_lundis = array(); $ar_vacances = array(); $ar_classe_choisi = array(); //definition des jours $ar_jour=array('Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'); if (!empty($_POST['nombre_choix_groupes'])) { $nombre_groupe = (int)$_POST['nombre_choix_groupes']; $nombre_groupes = 0; for ($i=1;$i<=$nombre_groupe;$i++) { if ($_POST["choixgroupe".$i]) { $nombre_groupes++; if (get_magic_quotes_gpc()) $nom_groupe = stripslashes($_POST["choixgroupe".$i]); else $nom_groupe = $_POST["choixgroupe".$i]; $ar_groupe_choisi[$nom_groupe]['NOM'] = $nom_groupe; if ($_POST["$nom_groupe"]=="GRA") $ar_groupe_choisi[$nom_groupe]['GR'] = 'Groupe A'; else if ($_POST["$nom_groupe"]=="GRB") $ar_groupe_choisi[$nom_groupe]['GR'] = 'Groupe B'; else if ($_POST["$nom_groupe"]=="GRR") $ar_groupe_choisi[$nom_groupe]['GR'] = 'Groupe R'; else $ar_groupe_choisi[$nom_groupe]['GR']='AUTRE'; } } } if (isset($_SESSION['cdt_envole']) && !empty($_POST['nombre_choix_classes'])) { $nombre_classes = (int)$_POST['nombre_choix_classes']; for ($i=1;$i<=$nombre_classes;$i++) { if (isset($_POST["classe".$i]) && !empty($_POST["classe".$i])) { if (get_magic_quotes_gpc()) $nom_classe = stripslashes($_POST["classe".$i]); else $nom_classe = $_POST["classe".$i]; if (isset($_POST["classe_ead".$i]) && !empty($_POST["classe_ead".$i])) $ar_classe_choisi[$nom_classe] = trim($_POST["classe_ead".$i]); } } } if ($_SESSION['detail']==true) echo "

Vous allez voir tous les ajouts effectués dans la base.

"; //message pour l'insertion dans WebCalendar pour les utilisateurs du cartable en ligne uniquement if(isset($_SESSION['cdt_envole']) && $_SESSION['webcal']==true && $_SESSION['detail']==true) echo "
Remarque :

un conflit est signalé pour toute présence détectée dans WebCalendar de plus d'un cours sur un même créneau horaire dans l'emploi du temps d'une classe ou d'un enseignant.
Dans le traitement des groupes, il est donc normal que des conflits surviennent puisqu'une même classe peut être dans plusieurs cours différents et qu'un enseignant peut faire cours à des élèves de plusieurs classes.
"; echo "

Insertion des nouvelles matières

"; //export des matieres $query_matiere="SELECT `nom_matiere` FROM `cdt_matiere`;"; $result_matiere = mysql_query($query_matiere, $conn_cahier_de_texte) or die(mysql_error()); if (mysql_num_rows($result_matiere)>0) { //construction du tableau des matieres déjà présentes dans l'emploi du temps while ($ar_matiere_temp = mysql_fetch_array($result_matiere, MYSQL_NUM)) array_push($ar_matiere_cdt,$ar_matiere_temp[0]); } //construction du tableau des matieres a partir de sts_emp foreach ($xml_sts_emp->xpath('//MATIERE') as $o_matiere) { $i_CODE_MATIERE=(integer)$o_matiere["CODE"]; $s_NOM_matiere= trim(utf8_decode((string)$o_matiere->LIBELLE_COURT)); $s_NOM_matiere_long=trim(utf8_decode((string)$o_matiere->LIBELLE_LONG)); $ar_matiere_cdt_code[$i_CODE_MATIERE]=$s_NOM_matiere; //integration eventuelle des matieres dans l'emploi du temps if (in_array("$s_NOM_matiere",$ar_matiere_cdt)) { if ($_SESSION['detail']==true) echo "
La matière $s_NOM_matiere est déjà présente dans la base de données
"; } else { //$ar_matiere_cdt[$i_CODE_MATIERE]=$s_NOM_matiere; $insert="INSERT INTO `cdt_matiere` (`nom_matiere`) VALUES ('".mysql_escape_string($s_NOM_matiere)."');"; $result_insert=mysql_query($insert, $conn_cahier_de_texte) or die($insert.mysql_error()); if ($_SESSION['detail']==true) echo "
Insertion de la matière $s_NOM_matiere dans la base de données
"; $ajout_matieres++; } } if (empty($ajout_matieres)) echo "
---------------------------------------- Aucune nouvelle matière ajoutée ----------------------------------------
"; //construction du tableau des matieres avec leur id $query_matiere="SELECT * FROM cdt_matiere;"; $result_matiere=mysql_query($query_matiere,$conn_cahier_de_texte) or die(mysql_error()); if (mysql_num_rows($result_matiere)>0) { while ($row_matiere=mysql_fetch_row($result_matiere)) { $nom_matiere=$row_matiere[1]; $ar_matiere_inscrit[$nom_matiere]["ID"]=$row_matiere[0]; } } //print_r($ar_matiere_cdt); //print_r($ar_matiere_inscrit);die; //export des données des classes echo "

Insertion des nouvelles classes

"; $nombre_classes=0; foreach ($xml_sts_emp->xpath('//DIVISION') as $o_div) { $nombre_classes++; $code_classe=strtolower(str_replace(" ","",trim(utf8_decode((string)$o_div["CODE"])))); //envole : pour une gestion similaire au ldap, un nom de classe est vérifiée if(isset($_SESSION['cdt_envole']) && array_key_exists($code_classe,$ar_classe_choisi)) $code_classe = $ar_classe_choisi[$code_classe]; //insertion dans la base des classes $query_classe="select nom_classe from cdt_classe where nom_classe='".mysql_escape_string($code_classe)."' "; $result_classe=mysql_query($query_classe,$conn_cahier_de_texte) or die(mysql_error()); if (mysql_num_rows($result_classe)<1) { $query_insert_classe="INSERT INTO cdt_classe(nom_classe) VALUES ('".mysql_escape_string($code_classe)."')"; $result_insert_classe=mysql_query($query_insert_classe,$conn_cahier_de_texte) or die(mysql_error()); if ($_SESSION['detail']==true) echo "
Insertion de la classe $code_classe dans la base de données
"; $ajout_classes++; } else { if ($_SESSION['detail']==true) echo "
La classe $code_classe est déjà présente dans la base de données
"; } //insertion de la méta_classe dans WebCalendar if(isset($_SESSION['cdt_envole'])) { $output = add_metaclasse($code_classe); if ($_SESSION['detail']==true) echo "
Création de l'utilisateur Meta_classe_".strtolower($code_classe)." dans l'annuaire (mot de passe : $output)
"; } } if (empty($ajout_classes)) echo "
---------------------------------------- Aucune nouvelle classe ajoutée ----------------------------------------
"; //construction du tableau des classes avec leur id $query_classe="SELECT * FROM cdt_classe;"; $result_classe=mysql_query($query_classe,$conn_cahier_de_texte) or die(mysql_error()); if (mysql_num_rows($result_classe)>0) { while ($row_classe=mysql_fetch_row($result_classe)) { $nom_classe=strtolower($row_classe[1]); $ar_classe_inscrit[$nom_classe]["NOM"]=$row_classe[1]; $ar_classe_inscrit[$nom_classe]["ID"]=$row_classe[0]; } } //export des données des profs et autres echo "

Insertion des nouveaux professeurs, des personnels de direction et de vie scolaire

"; foreach ($xml_sts_emp->xpath('//INDIVIDU') as $o_nom) { $s_fonction=(string)$o_nom->FONCTION; $ID=(integer)$o_nom["ID"]; if (array_key_exists($s_fonction,$ar_fonctions)) { $fonction_name = $ar_fonctions[$s_fonction][0]; $fonction_droits = $ar_fonctions[$s_fonction][1]; $ar_prof["$ID"]["NOM"]=strtr(trim(utf8_decode((string)$o_nom->NOM_USAGE)),$accents,$noaccents); $ar_prof["$ID"]["PRENOM"]=strtr(trim(utf8_decode((string)$o_nom->PRENOM)),$accents,$noaccents); $civil_prof=trim($o_nom->CIVILITE); $ar_prof["$ID"]["CIVILITE"]=$ar_civil[$civil_prof]; $nom=strtoupper($ar_prof["$ID"]["NOM"]); $prenom=strtoupper($ar_prof["$ID"]["PRENOM"]); $identite=$ar_prof["$ID"]["CIVILITE"]." ".$nom; list($a,$m,$j) = explode("-",trim($o_nom->DATE_NAISSANCE)); $date_naissance = $j.$m.$a; $date_naissance_ldap = $a.$m.$j; if(!preg_match("/^[0-9]{8}$/",$date_naissance)) $date_naissance="00000000"; if(!preg_match("/^[0-9]{8}$/",$date_naissance_ldap)) $date_naissance_ldap="00000000"; if(isset($_SESSION['cdt_envole'])) //envole - unicité des logins déjà réalisée dans l'annuaire { //utilisation de la date de naissance seulement pour départager les homonymes //si même nom, prénom et date de naissance, ils devront remplir leur emploi du temps à la main, désolé... :-) $login=search_login($ar_prof["$ID"]["NOM"],$ar_prof["$ID"]["PRENOM"],$date_naissance_ldap); } else //non envole - unicité des logins à réaliser { $nom_key = premier($nom); $prenom_key = premier($prenom); $login_key = $prenom_key.".".$nom_key; $login_key = prepare_login($login_key); if (array_key_exists($login_key,$ar_homonymes)) $ar_homonymes[$login_key]++; else $ar_homonymes[$login_key]=0; $login = $login_key; $suffix = $ar_homonymes[$login_key]; if ($suffix!=0) $login = $login.$suffix; } if ($login) { $ar_prof["$ID"]["cdt_login"] = $login; //insertion dans la base des professeurs $query_prof="SELECT nom_prof,ID_prof FROM cdt_prof where nom_prof='$login' "; $result_prof=mysql_query($query_prof,$conn_cahier_de_texte) or die(mysql_error()); if (mysql_num_rows($result_prof)<1) { $query_insert_prof="INSERT INTO cdt_prof(nom_prof,passe,identite,droits) VALUES ('$login','".md5($date_naissance)."','".mysql_escape_string($identite)."',$fonction_droits)"; $result_insert_prof=mysql_query($query_insert_prof,$conn_cahier_de_texte) or die(mysql_error()); // insertion obligatoire de l'activité "cours" pour chaque nouvel enseignant $id_new_prof = mysql_insert_id($conn_cahier_de_texte); $query_insert_activ = "INSERT INTO cdt_type_activite (ID_prof,activite,pos_typ) VALUES ($id_new_prof,'Cours',1)"; $result_insert_activ=mysql_query($query_insert_activ,$conn_cahier_de_texte) or die(mysql_error()); $ar_prof["$ID"]["cdt_id"] = $id_new_prof; if ($_SESSION['detail']==true) echo "
Insertion du $fonction_name $nom $prenom dans la base de données
"; $ajout_profs++; } else { $row_prof = mysql_fetch_assoc($result_prof); $ar_prof["$ID"]["cdt_id"] = $row_prof["ID_prof"]; if ($_SESSION['detail']==true) echo "
Le $fonction_name $nom $prenom est déjà présent dans la base de données
"; } } else echo "
Le $fonction_name $nom $prenom n'a pas été ajouté à la base de données du cahier de textes.
"; } } if (empty($ajout_profs)) echo "
---------------------------------------- Aucun nouveau personnel ajouté ----------------------------------------
"; //construction du tableau des profs avec leur id $query_prof="SELECT * FROM cdt_prof "; $result_prof=mysql_query($query_prof,$conn_cahier_de_texte) or die(mysql_error()); if (mysql_num_rows($result_prof)>0) { while ($row_prof=mysql_fetch_row($result_prof)) { $id_prof=$row_prof[0]; $ar_prof_inscrit[$id_prof]["NOM"]=$row_prof[1]; $ar_prof_inscrit[$id_prof]["IDENTITE"]=$row_prof[3]; $ar_prof_inscrit[$id_prof]["ID"]=$row_prof[0]; } } //pour continuer,le fichier d'emploi du temps doit avoir été fourni if (empty($emp_manquant)) { //construction du tableau des vacances qui sert pour les utilisateurs envole if(isset($_SESSION['cdt_envole'])) $ar_vacances = jours_vacances(); //la table emploi du temps doit-elle être effacée ? if ($_SESSION['reinit']==true) { if(isset($_SESSION['cdt_envole'])) { echo "

Effacement des emplois du temps dans WebCalendar : 0

"; //construction du tableau des éventuelles anciennes semaines A et B $query_lundis = "SELECT * FROM `cdt_semaine_ab` ORDER BY `num_semaine`;"; $result_lundis = mysql_query($query_lundis, $conn_cahier_de_texte) or die(mysql_error()); while ($row_lundis=mysql_fetch_assoc($result_lundis)) { $type_semaine = $row_lundis["semaine"]; $ar_lundis[$type_semaine][] = $row_lundis["date_lundi"]; $ar_lundis["A et B"][] = $row_lundis["date_lundi"]; } //lecture de l'emploi du temps à réinitialiser et effacement des correspondances trouvées dans WebCalendar $query_edt = "SELECT * FROM `cdt_emploi_du_temps` AS `edt`,`cdt_classe` AS `c`,`cdt_matiere` AS `m`,`cdt_prof` AS `p` WHERE `edt`.`classe_ID`=`c`.`ID_classe` AND `edt`.`matiere_ID`=`m`.`ID_matiere` AND `edt`.`prof_ID`=`p`.`ID_prof` ORDER BY `ID_emploi`;"; $result_edt = mysql_query($query_edt, $conn_cahier_de_texte) or die(mysql_error()); $nombre_edt = mysql_num_rows($result_edt); $i=0; while ($row_edt=mysql_fetch_assoc($result_edt)) { //allonge le temps d'exécution du script qui s'arrête par défaut au bout de 30 secondes (max_execution_time dans php.ini) set_time_limit(120); flush(); $i++; //il faut récupérer le nom tel qu'enregistrer dans webcal car dans edt, celui-ci est modifiable par l'utilisateur $uid_prof = trim($row_edt['nom_prof']); $nom_prof_webcal = search_nom($uid_prof); //suppression possible uniquement si l'heure fournie est au format attendue if ($nom_prof_webcal && preg_match("/^[0-9]{1,2}h[0-9]{0,2}$/",trim($row_edt['heure_debut'])) && preg_match("/^[0-9]{1,2}h[0-9]{0,2}$/",trim($row_edt['duree']))) { $nom_classe = mysql_escape_string(trim($row_edt['nom_classe'])); $nom_matiere = mysql_escape_string(trim($row_edt['nom_matiere'])); $heure = GetSQLValueString(webcal_heure(trim($row_edt['heure_debut'])),"int"); $duree = GetSQLValueString(webcal_duree(trim($row_edt['duree'])),"int"); $prefix = webcal_prefix(trim($row_edt['groupe'])); $user_prof = GetSQLValueString($uid_prof,"text"); $titre_prof = GetSQLValueString("C - ".$nom_classe,"text"); $texte_prof = GetSQLValueString($prefix.$nom_matiere,"text"); $user_classe = GetSQLValueString(strtolower("Meta_classe_".trim($row_edt['nom_classe'])),"text"); $titre_classe = GetSQLValueString("C - ".$nom_matiere,"text"); $texte_classe = GetSQLValueString($prefix.$nom_prof_webcal,"text"); $type_semaine = trim($row_edt['semaine']); $numero_jour = array_search($row_edt['jour_semaine'],$ar_jour); foreach ($ar_lundis[$type_semaine] as $lundi) { list($day,$month,$year) = explode('-',$lundi); $date = date('Ymd',mktime(0,0,0,$month,$day+$numero_jour,$year)); // suppression pour l'enseignant supprime_calendar($user_prof,$titre_prof,$texte_prof,$date,$heure,$duree,"cours"); // suppression pour la classe supprime_calendar($user_classe,$titre_classe,$texte_classe,$date,$heure,$duree,"cours"); } } $text = "var div = document.getElementById('compteur_1');div.innerHTML='".$i." sur ".$nombre_edt."';"; echo ""; } echo ""; }//fin du if envole $query_delete="TRUNCATE TABLE `cdt_emploi_du_temps` ;"; $result_delete = mysql_query($query_delete, $conn_cahier_de_texte) or die(mysql_error()); if ($result_delete) echo "

Effacement des emplois du temps dans le cahier de textes : OK

"; } //lecture du choix des alternances de l'administrateur echo "

Prise en compte des alternances

"; //lecture des alternances du xml $ar_semaines = array(); foreach ($xml_emp_sts->xpath('//ALTERNANCE') as $ar_alternance_temp) { $s_code=(string)$ar_alternance_temp["CODE"]; if ($_SESSION['H']==$s_code) $ar_alternance[$s_code]["TIT"]='A et B'; elseif ($_SESSION['A']==$s_code) $ar_alternance[$s_code]["TIT"]='A'; elseif ($_SESSION['B']==$s_code) $ar_alternance[$s_code]["TIT"]='B'; else continue; $ar_alternance[$s_code]["CODE"]=$s_code; $ar_alternance[$s_code]["LIBELLE_COURT"]=(string)$ar_alternance_temp->LIBELLE_COURT; $ar_alternance[$s_code]["LIBELLE_LONG"]=(string)$ar_alternance_temp->LIBELLE_LONG; array_push($ar_type_alternance,$s_code); echo "Alternance retenue : "; if ($ar_alternance[$s_code]["LIBELLE_LONG"]) echo $ar_alternance[$s_code]["LIBELLE_LONG"]."
"; else echo $s_code."
"; //ajout des semaines des alternancs choisies $i=0; foreach ($ar_alternance_temp->SEMAINES->DATE_DEBUT_SEMAINE as $o_jour_semaine) { $i++; list($annee,$mois,$jour)=explode('-',trim((string)$o_jour_semaine)); //correctif de certains fichiers qui commencent le dimanche if(!isset($jour_zero)) { $jour_zero = date('w',mktime(0,0,0,$mois,$jour,$annee)); if($jour_zero>1) exit("Les dates de début de semaine ne semblent être ni des lundis, ni des dimanches. Abandon."); } if($jour_zero==0) $jour++; //le dimanche devient lundi ! $date_semaine = date('Ymd',mktime(0,0,0,$mois,$jour,$annee)); $date_lundi = date('d-m-Y',mktime(0,0,0,$mois,$jour,$annee)); //préparation pour cdt_semaine_ab de l'alternance choisie if ($_SESSION['sem_ab']==true) { if ($s_code==$_SESSION['A']) { $ar_semaines[$date_semaine]["TYPE"] = "A"; $ar_semaines[$date_semaine]["LUNDI"] = $date_lundi; $ar_semaines[$date_semaine]["DIMANCHE"] = date('d-m-Y',mktime(0,0,0,$mois,$jour+6,$annee)); } elseif ($s_code==$_SESSION['B']) { $ar_semaines[$date_semaine]["TYPE"] = "B"; $ar_semaines[$date_semaine]["LUNDI"] = $date_lundi; $ar_semaines[$date_semaine]["DIMANCHE"] = date('d-m-Y',mktime(0,0,0,$mois,$jour+6,$annee)); } } //lecture des jours de semaine //on assume que le jour 0 est le lundi for ($j=0;$j<6;$j++) $ar_alternance[$s_code][$i][$j]=date('Ymd',mktime(0,0,0,$mois,$jour+$j,$annee)); $ar_alternance[$s_code]["NOMBRE_SEMAINES"]=$i; } } // effacement puis insertion dans cdt_semaine_ab de l'alternance choisie if ($_SESSION['sem_ab']==true) { $s_a = 0; $s_b = 0; $i = 0; ksort($ar_semaines); $query_trunc_ab ='TRUNCATE `cdt_semaine_ab`'; $result_trunc_ab = mysql_query($query_trunc_ab, $conn_cahier_de_texte) or die(mysql_error()); foreach($ar_semaines as $date_semaine=>$donnees) { $i++; $query_insert = "INSERT INTO cdt_semaine_ab (semaine,num_semaine,s_code_date,date_lundi,date_dimanche) VALUES ( '".$donnees["TYPE"]."', '$i', '$date_semaine', '".$donnees["LUNDI"]."', '".$donnees["DIMANCHE"]."')"; $result_insert = mysql_query($query_insert, $conn_cahier_de_texte) or die(mysql_error()); if($donnees["TYPE"]=="A") $s_a++; elseif($donnees["TYPE"]=="B") $s_b++; } echo "Insertion effectuée dans le planning des semaines A et B ($s_a semaines A et $s_b semaines B)"; } //construction des groupes et des services echo "

Création des groupes sélectionnés comme \"Autre\"

"; foreach ($xml_emp_sts->xpath('//GROUPE') as $o_groupe) { $s_nom_groupe=str_replace(' ','_',trim(utf8_decode((string)$o_groupe["CODE"]))); if ((!empty($ar_groupe_choisi[$s_nom_groupe]['NOM'])) and ($ar_groupe_choisi[$s_nom_groupe]['GR']=='AUTRE')) { //insertion dans la base des groupes $query_groupe="select groupe from cdt_groupe where groupe='".mysql_escape_string($s_nom_groupe)."' "; $result_groupe=mysql_query($query_groupe,$conn_cahier_de_texte) or die(mysql_error()); if (mysql_num_rows($result_groupe)<1) { $query_insert_groupe="insert into cdt_groupe(groupe) values ('".mysql_escape_string($s_nom_groupe)."')"; $result_insert_groupe=mysql_query($query_insert_groupe,$conn_cahier_de_texte) or die(mysql_error()); if ($_SESSION['detail']==true) echo "
Insertion du groupe $s_nom_groupe dans la base de données
"; $ajout_groupes++; } else { if ($_SESSION['detail']==true) echo "
Le groupe $s_nom_groupe est déjà présent dans la base de données
"; } } else { // echo "Ce groupe n'a pas été choisi pour figurer dans la base"; } } if (empty($ajout_groupes)) echo "
---------------------------------------- Aucun nouveau groupe ajouté ----------------------------------------
"; //construction du tableau des groupes avec leur id $query_groupe="SELECT * FROM cdt_groupe;"; $result_groupe=mysql_query($query_groupe,$conn_cahier_de_texte) or die(mysql_error()); if (mysql_num_rows($result_groupe)>0) { while ($row_groupe=mysql_fetch_row($result_groupe)) { $nom_groupe=$row_groupe[1]; $ar_groupe_inscrit[$s_nom_groupe]["NOM"]=$row_groupe[1]; $ar_groupe_inscrit[$s_nom_groupe]["ID"]=$row_groupe[0]; } } //export des divisions et des services echo "

Traitement des classes entières : 0 sur ".$nombre_classes."

"; $i=0; foreach ($xml_emp_sts->xpath('//DIVISION') as $o_classe) { $i++; //allonge le temps d'exécution du script qui s'arrête par défaut au bout de 30 secondes (max_execution_time dans php.ini) set_time_limit(120); $s_nom_classe=strtolower(str_replace(" ","",trim(utf8_decode((string)$o_classe["CODE"])))); //envole : pour une gestion similaire au ldap, un nom de classe est vérifiée if(isset($_SESSION['cdt_envole']) && array_key_exists($s_nom_classe,$ar_classe_choisi)) $s_nom_classe = $ar_classe_choisi[$s_nom_classe]; if ($_SESSION['detail']==true) echo "

Traitement de la classe de ".$s_nom_classe."

"; foreach ($o_classe->SERVICES->SERVICE as $o_service) { $s_code_matiere=(integer)$o_service["CODE_MATIERE"]; $nom_matiere=trim($ar_matiere_cdt_code[$s_code_matiere]); foreach ($o_service->ENSEIGNANTS->ENSEIGNANT as $o_prof) { //Recherche de l'id_groupe correspondant a ce cours $ID_prof=(integer)$o_prof["ID"]; $s_nom_prof=$ar_prof["$ID_prof"]["NOM"]; $s_prenom_prof=$ar_prof["$ID_prof"]["PRENOM"]; $s_civil_prof=$ar_prof["$ID_prof"]["CIVILITE"]; //$ident_prof=$s_nom_prof." ".$s_prenom_prof; $ident_prof=$s_civil_prof." ".strtoupper($s_nom_prof); //$login=search_login($s_nom_prof,$s_prenom_prof); $login = $ar_prof["$ID_prof"]["cdt_login"]; $query="select id_prof,nom_prof from cdt_prof where nom_prof='$login';"; $result_recherche_prof=mysql_query($query,$conn_cahier_de_texte); if (mysql_num_rows($result_recherche_prof)==0) { echo "
Un professeur n'a pas été trouvé dans la base, vérifiez sa présence et relancez le script
Nom : $s_nom_prof - Prénom : $s_prenom_prof - Login : $login
"; continue; } $ID_prof_cdt = $ar_prof["$ID_prof"]["cdt_id"]; foreach ($o_prof->COURS_RATTACHES->COURS as $o_cours) { flush(); $code_repetition_cours=(string)$o_cours->CODE_ALTERNANCE; //recherche du champ jour_semaine $s_day_cours=(string)$o_cours->JOUR; $s_day_cours=intval($s_day_cours)-1; //recherche des champs duree,heuredeb_dec $s_heure_debut=(string)$o_cours->HEURE_DEBUT; $s_heure=intval(substr($s_heure_debut,0,2)); $s_minute=intval(substr($s_heure_debut,2,2)); if($s_heure<10) $s_heure = "0".$s_heure; if($s_minute<10) $s_minute = "0".$s_minute; $heure_debut = $s_heure."h".$s_minute; $s_duree_cours_brut=(string)$o_cours->DUREE; $s_duree_h=intval(substr($s_duree_cours_brut,0,2)); $s_duree_min=intval(substr($s_duree_cours_brut,2,2)); $s_duree_format=date('H',mktime($s_duree_h,$s_duree_min,0,0,0,0))."h".date('i',mktime($s_duree_h,$s_duree_min,0,0,0,0)); //(string)(((integer)$s_duree_h."h".(integer)$s_duree_min)); $s_temps_cours=((integer)$s_duree_h*60+(integer)$s_duree_min)*60; $heure_fin=date('H',mktime($s_heure,$s_minute,0,0,0,0)+$s_temps_cours)."h".date('i',mktime($s_heure,$s_minute,0,0,0,0)+$s_temps_cours); //on prévoit une position par demi-heure, en commançant par 1 pour tout cours avant 8h $pos = ($s_heure-7)*2; if($s_minute>=30) $pos++; if($pos<1) $pos=1; //validation des données if (!in_array($code_repetition_cours,$ar_type_alternance)) continue; if(isset($ar_classe_inscrit[$s_nom_classe]["ID"]) && !empty($ar_classe_inscrit[$s_nom_classe]["ID"])) $classe_id = $ar_classe_inscrit[$s_nom_classe]["ID"]; else { echo "
Insertion impossible d’un cours en ".$s_nom_classe." pour le professeur ".$ident_prof." : classe sans identifiant.
"; continue; } if(isset($ar_matiere_inscrit[$nom_matiere]["ID"]) && !empty($ar_matiere_inscrit[$nom_matiere]["ID"])) $matiere_id = $ar_matiere_inscrit[$nom_matiere]["ID"]; else { echo "
Insertion impossible d’un cours de ".$nom_matiere." pour le professeur ".$ident_prof." : matière sans identifiant.
"; continue; } if(isset($ar_jour[$s_day_cours]) && !empty($ar_jour[$s_day_cours])) $jour_name = $ar_jour[$s_day_cours]; else { echo "
Insertion impossible d’un cours de ".$nom_matiere." pour le professeur ".$ident_prof." : jour semaine invalide.
"; continue; } if(isset($ar_alternance[$code_repetition_cours]["TIT"]) && !empty($ar_alternance[$code_repetition_cours]["TIT"])) $semaine_type = $ar_alternance[$code_repetition_cours]["TIT"]; else { echo "
Insertion impossible d’un cours de ".$nom_matiere." le ".$jour_name." pour le professeur ".$ident_prof." : alternance invalide.
"; continue; } if($s_heure<=0) { echo "
Insertion impossible d’un cours de ".$nom_matiere." le ".$jour_name." pour le professeur ".$ident_prof." : heure début invalide.
"; continue; } if($s_duree_h<=0) { echo "
Insertion impossible d’un cours de ".$nom_matiere." le ".$jour_name." pour le professeur ".$ident_prof." : durée invalide.
"; continue; } //insertion du cours $query_verif_edt="select * from cdt_emploi_du_temps where classe_ID='$classe_id' and matiere_ID='".$matiere_id."' and prof_ID='".$ID_prof_cdt."' and jour_semaine='".$jour_name."' and semaine='".$semaine_type."' and groupe='Classe entière' and heure_debut='".$heure_debut."';"; $result_search_edt=mysql_query($query_verif_edt,$conn_cahier_de_texte) or die(mysql_error()); if (!$result_search_edt) continue; if (mysql_num_rows($result_search_edt)>0) { if ($_SESSION['detail']==true) echo "
Le cours de $nom_matiere, professeur $ident_prof, semaine ".$semaine_type.", jour ".$jour_name.", heure ".$heure_debut." existe déjà
"; } else { //insertion du cours qui n'est pas encore défini $query_insert_edt="insert into cdt_emploi_du_temps(prof_ID,jour_semaine,semaine,heure,classe_ID,groupe,matiere_ID,heure_debut,heure_fin,duree) values ('".$ID_prof_cdt."','".$jour_name."','".$semaine_type."',$pos,'$classe_id','Classe entière','".$matiere_id."','$heure_debut','$heure_fin','$s_duree_format')"; $result_insert_edt=mysql_query($query_insert_edt,$conn_cahier_de_texte) or die(mysql_error()); if ($_SESSION['detail']==true) echo "
Insertion du cours de $nom_matiere, professeur $ident_prof, semaine ".$semaine_type.", jour ".$jour_name.", heure ".$heure_debut."
"; } // insertion des cours dans WebCalendar pour les utilisateurs du cartable en ligne uniquement if(isset($_SESSION['cdt_envole'])) { if ($_SESSION['webcal']==true) { $classe_webcal = GetSQLValueString(mysql_escape_string(strtolower("Meta_classe_".$s_nom_classe)),"text"); $login_prof_webcal = GetSQLValueString($login,"text"); $matiere_webcal = GetSQLValueString(mysql_escape_string($nom_matiere),"text"); //l'identité du prof pour WebCalendar doit correspondre au nom présent dans l'annuaire, donc pas forcément le nom complet $ident_prof_webcal = $s_civil_prof." ".strtoupper(premier($s_nom_prof)); $ident_prof_webcal = GetSQLValueString($ident_prof_webcal,"text"); $C_classe = GetSQLValueString("C - ".mysql_escape_string($s_nom_classe),"text"); $C_matiere = GetSQLValueString("C - ".mysql_escape_string($nom_matiere),"text"); $modifdate = GetSQLValueString(date('Ymd'),"int"); $modifheure = GetSQLValueString(date('His'),"int"); $heure_webcal = GetSQLValueString($s_heure.$s_minute."00","int"); $duree_webcal = GetSQLValueString((integer)$s_duree_h*60+(integer)$s_duree_min,"int"); $n_week = $ar_alternance[$code_repetition_cours]["NOMBRE_SEMAINES"]; $n_prof=0; $m_prof=0; $conflit_prof = array(); $n_classe=0; $m_classe=0; $conflit_classe = array(); for($loop=1;$loop<=$n_week;$loop++) { $date_webcal = GetSQLValueString($ar_alternance[$code_repetition_cours][$loop][$s_day_cours],"int"); if(!in_array($date_webcal,$ar_vacances)) { $rapport = ajout_calendar($login_prof_webcal,$C_classe,$matiere_webcal,$date_webcal,$heure_webcal,$duree_webcal,$modifdate,$modifheure,"cours"); if ($rapport['entry']) $n_prof++; else $m_prof++; if ($rapport['conflit']) { foreach($rapport['conflit'] as $value) { if (array_key_exists($value,$conflit_prof)) $conflit_prof[$value]++; else $conflit_prof[$value]=1; } } $rapport = ajout_calendar($classe_webcal,$C_matiere,$ident_prof_webcal,$date_webcal,$heure_webcal,$duree_webcal,$modifdate,$modifheure,"cours"); if ($rapport['entry']) $n_classe++; else $m_classe++; if ($rapport['conflit']) { foreach($rapport['conflit'] as $value) { if (array_key_exists($value,$conflit_classe)) $conflit_classe[$value]++; else $conflit_classe[$value]=1; } } } } if ($_SESSION['detail']==true) { echo "
Insertion WebCalendar pour l'enseignant : $n_prof nouvelles entrées et $m_prof entrées déjà présentes
"; foreach($conflit_prof as $key=>$value) echo "
---- conflit edt prof : cours au même horaire détecté, inséré par $key ($value fois sur l'année scolaire) ----
"; echo "
Insertion WebCalendar pour la classe : $n_classe nouvelles entrées et $m_classe entrées déjà présentes
"; foreach($conflit_classe as $key=>$value) echo "
---- conflit edt classe : cours au même horaire détecté, inséré par $key ($value fois sur l'année scolaire) ----
"; } } } //fin insertion WebCalendar } //cours } //enseignant } //service $text = "var div = document.getElementById('compteur_2');"; if ($i < $nombre_classes) $text .= "div.innerHTML='".$i." sur ".$nombre_classes."';"; else $text = "div.innerHTML='OK';div.style.color='green';"; echo ""; } //classe echo "

Traitement des groupes sélectionnés : 0 sur ".$nombre_groupes."

"; $i=0; foreach ($xml_emp_sts->xpath('//GROUPE') as $o_groupe) { //allonge le temps d'exécution du script qui s'arrête par défaut au bout de 30 secondes (max_execution_time dans php.ini) set_time_limit(120); $s_nom_groupe=str_replace(' ','_',trim(utf8_decode((string)$o_groupe["CODE"]))); //ne traiter que les groupes demandés if (!empty($ar_groupe_choisi[$s_nom_groupe]['NOM'])) { $i++; if ($_SESSION['detail']==true) echo "

Groupe $s_nom_groupe

"; foreach ($o_groupe->DIVISIONS_APPARTENANCE->DIVISION_APPARTENANCE as $o_groupe_division) { $s_nom_classe=strtolower(str_replace(" ","",trim(utf8_decode((string)$o_groupe_division["CODE"])))); //envole : pour une gestion similaire au ldap, un nom de classe est vérifiée if(isset($_SESSION['cdt_envole']) && array_key_exists($s_nom_classe,$ar_classe_choisi)) $s_nom_classe = $ar_classe_choisi[$s_nom_classe]; //echo "Ce groupe a des éléments dans la classe ".$s_nom_classe."
"; foreach ($o_groupe->SERVICES->SERVICE as $o_service_groupe) { $s_code_matiere_groupe=(integer)$o_service_groupe["CODE_MATIERE"]; $nom_matiere=trim($ar_matiere_cdt_code[$s_code_matiere_groupe]); foreach ($o_service_groupe->ENSEIGNANTS->ENSEIGNANT as $o_prof_groupe) { //Recherche de l'id_groupe correspondant a ce cours $ID_prof=(string)$o_prof_groupe["ID"]; $s_nom_prof=$ar_prof["$ID_prof"]["NOM"]; $s_prenom_prof=$ar_prof["$ID_prof"]["PRENOM"]; $s_civil_prof=$ar_prof["$ID_prof"]["CIVILITE"]; //$ident_prof=$s_nom_prof." ".$s_prenom_prof; $ident_prof=$s_civil_prof." ".strtoupper($s_nom_prof); //$login=search_login($s_nom_prof,$s_prenom_prof);
$login = $ar_prof["$ID_prof"]["cdt_login"]; $query="select id_prof,nom_prof from cdt_prof where nom_prof='$login';"; $result_recherche_prof=mysql_query($query,$conn_cahier_de_texte); if (mysql_num_rows($result_recherche_prof)==0) { echo "
Un professeur n'a pas été trouvé dans la base, vérifiez sa présence et relancez le script
Nom : $s_nom_prof - Prénom : $s_prenom_prof - Login : $login
"; continue; } $ID_prof_cdt = trim($ar_prof["$ID_prof"]["cdt_id"]); foreach ($o_prof_groupe->COURS_RATTACHES->COURS as $o_cours_groupe) { flush(); $code_repetition_cours=(string)$o_cours_groupe->CODE_ALTERNANCE; if (!in_array($code_repetition_cours,$ar_type_alternance)) continue; $groupe_id=$ar_groupe_inscrit["$s_nom_groupe"]["ID"]; $classe_id=$ar_classe_inscrit["$s_nom_classe"]["ID"]; //recherche du champ jour_semaine $s_day_cours=(string)$o_cours_groupe->JOUR; $s_day_cours=intval($s_day_cours)-1; //recherche des champs duree,heure_debut $s_heure_debut=(string)$o_cours_groupe->HEURE_DEBUT; $s_heure=intval(substr($s_heure_debut,0,2)); $s_minute=intval(substr($s_heure_debut,2,2)); if($s_heure<10) $s_heure = "0".$s_heure; if($s_minute<10) $s_minute = "0".$s_minute; $heure_debut = $s_heure."h".$s_minute; $s_duree_cours_brut=(string)$o_cours_groupe->DUREE; $s_duree_h=intval(substr($s_duree_cours_brut,0,2)); $s_duree_min=intval(substr($s_duree_cours_brut,2,2)); $s_duree_format=date('H',mktime($s_duree_h,$s_duree_min,0,0,0,0))."h".date('i',mktime($s_duree_h,$s_duree_min,0,0,0,0)); //(string)(((integer)$s_duree_h."h".(integer)$s_duree_min)); $s_temps_cours=((integer)$s_duree_h*60+(integer)$s_duree_min)*60; $heure_fin=date('H',mktime($s_heure,$s_minute,0,0,0,0)+$s_temps_cours)."h".date('i',mktime($s_heure,$s_minute,0,0,0,0)+$s_temps_cours); //on prévoit une position par demi-heure, en commançant par 1 pour tout cours avant 8h $pos = ($s_heure-7)*2; if($s_minute>=30) $pos++; if($pos<1) $pos=1; //validation des données if (!in_array($code_repetition_cours,$ar_type_alternance)) continue; if(isset($ar_classe_inscrit[$s_nom_classe]["ID"]) && !empty($ar_classe_inscrit[$s_nom_classe]["ID"])) $classe_id = $ar_classe_inscrit[$s_nom_classe]["ID"]; else { echo "
Insertion impossible d’un cours en ".$s_nom_classe." pour le professeur ".$ident_prof." : classe sans identifiant.
"; continue; } if(isset($ar_matiere_inscrit[$nom_matiere]["ID"]) && !empty($ar_matiere_inscrit[$nom_matiere]["ID"])) $matiere_id = $ar_matiere_inscrit[$nom_matiere]["ID"]; else { echo "
Insertion impossible d’un cours de ".$nom_matiere." pour le professeur ".$ident_prof." : matière sans identifiant.
"; continue; } if(isset($ar_jour[$s_day_cours]) && !empty($ar_jour[$s_day_cours])) $jour_name = $ar_jour[$s_day_cours]; else { echo "
Insertion impossible d’un cours de ".$nom_matiere." pour le professeur ".$ident_prof." : jour semaine invalide.
"; continue; } if(isset($ar_alternance[$code_repetition_cours]["TIT"]) && !empty($ar_alternance[$code_repetition_cours]["TIT"])) $semaine_type = $ar_alternance[$code_repetition_cours]["TIT"]; else { echo "
Insertion impossible d’un cours de ".$nom_matiere." le ".$jour_name." pour le professeur ".$ident_prof." : alternance invalide.
"; continue; } if($s_heure<=0) { echo "
Insertion impossible d’un cours de ".$nom_matiere." le ".$jour_name." pour le professeur ".$ident_prof." : heure début invalide.
"; continue; } if($s_duree_h<=0) { echo "
Insertion impossible d’un cours de ".$nom_matiere." le ".$jour_name." pour le professeur ".$ident_prof." : durée invalide.
"; continue; } //insertion du cours if ($ar_groupe_choisi[$s_nom_groupe]['GR']=='Groupe A') { $query_verif_edt="select * from cdt_emploi_du_temps where classe_ID='$classe_id' and matiere_ID='".$ar_matiere_inscrit[$nom_matiere]["ID"]."' and prof_ID='".$ID_prof_cdt."' and jour_semaine='".$ar_jour["$s_day_cours"]."' and semaine='".$ar_alternance["$code_repetition_cours"]["TIT"]."' and groupe='Groupe A' and heure_debut='".$heure_debut."';"; } elseif ($ar_groupe_choisi[$s_nom_groupe]['GR']=='Groupe B') { $query_verif_edt="select * from cdt_emploi_du_temps where classe_ID='$classe_id' and matiere_ID='".$ar_matiere_inscrit[$nom_matiere]["ID"]."' and prof_ID='".$ID_prof_cdt."' and jour_semaine='".$ar_jour["$s_day_cours"]."' and semaine='".$ar_alternance["$code_repetition_cours"]["TIT"]."' and groupe='Groupe B' and heure_debut='".$heure_debut."';"; } elseif ($ar_groupe_choisi[$s_nom_groupe]['GR']=='Groupe R') { $query_verif_edt="select * from cdt_emploi_du_temps where classe_ID='$classe_id' and matiere_ID='".$ar_matiere_inscrit[$nom_matiere]["ID"]."' and prof_ID='".$ID_prof_cdt."' and jour_semaine='".$ar_jour["$s_day_cours"]."' and semaine='".$ar_alternance["$code_repetition_cours"]["TIT"]."' and groupe='Groupe Réduit' and heure_debut='".$heure_debut."';"; } else { $query_verif_edt="select * from cdt_emploi_du_temps where classe_ID='$classe_id' and matiere_ID='".$ar_matiere_inscrit[$nom_matiere]["ID"]."' and prof_ID='".$ID_prof_cdt."' and jour_semaine='".$ar_jour["$s_day_cours"]."' and semaine='".$ar_alternance["$code_repetition_cours"]["TIT"]."' and groupe='".mysql_escape_string($s_nom_groupe)."' and heure_debut='".$heure_debut."';"; } $result_search_edt=mysql_query($query_verif_edt,$conn_cahier_de_texte) or die(mysql_error()); if (!$result_search_edt) continue; if (mysql_num_rows($result_search_edt)>0) { if ($_SESSION['detail']==true) echo "
Le cours de $nom_matiere, professeur $ident_prof, semaine ".$ar_alternance["$code_repetition_cours"]["TIT"].", jour ".$ar_jour["$s_day_cours"].", heure $heure_debut existe déjà
"; } else { //insertion du cours qui n'est pas encore défini if ($ar_groupe_choisi[$s_nom_groupe]['GR']=='Groupe A') { $query_insert_edt="insert into cdt_emploi_du_temps(prof_ID,jour_semaine,semaine,heure,classe_ID,groupe,matiere_ID,heure_debut,heure_fin,duree) values ('".$ID_prof_cdt."','".$ar_jour["$s_day_cours"]."','".$ar_alternance["$code_repetition_cours"]["TIT"]."',$pos,'$classe_id','Groupe A','".$ar_matiere_inscrit[$nom_matiere]["ID"]."','$heure_debut','$heure_fin','$s_duree_format')"; $result_insert_edt=mysql_query($query_insert_edt,$conn_cahier_de_texte) or die(mysql_error()); if ($_SESSION['detail']==true) echo "
Insertion en $s_nom_classe du cours de $nom_matiere, professeur $ident_prof, semaine ".$ar_alternance["$code_repetition_cours"]["TIT"].", jour ".$ar_jour["$s_day_cours"].", heure $heure_debut, Groupe A
"; } elseif ($ar_groupe_choisi[$s_nom_groupe]['GR']=='Groupe B') { $query_insert_edt="insert into cdt_emploi_du_temps(prof_ID,jour_semaine,semaine,heure,classe_ID,groupe,matiere_ID,heure_debut,heure_fin,duree) values ('".$ID_prof_cdt."','".$ar_jour["$s_day_cours"]."','".$ar_alternance["$code_repetition_cours"]["TIT"]."',$pos,'$classe_id','Groupe B','".$ar_matiere_inscrit[$nom_matiere]["ID"]."','$heure_debut','$heure_fin','$s_duree_format')"; $result_insert_edt=mysql_query($query_insert_edt,$conn_cahier_de_texte) or die(mysql_error()); if ($_SESSION['detail']==true) echo "
Insertion en $s_nom_classe du cours de $nom_matiere, professeur $ident_prof, semaine ".$ar_alternance["$code_repetition_cours"]["TIT"].", jour ".$ar_jour["$s_day_cours"].", heure $heure_debut, Groupe B
"; } elseif ($ar_groupe_choisi[$s_nom_groupe]['GR']=='Groupe R') { $query_insert_edt="insert into cdt_emploi_du_temps(prof_ID,jour_semaine,semaine,heure,classe_ID,groupe,matiere_ID,heure_debut,heure_fin,duree) values ('".$ID_prof_cdt."','".$ar_jour["$s_day_cours"]."','".$ar_alternance["$code_repetition_cours"]["TIT"]."',$pos,'$classe_id','Groupe Réduit','".$ar_matiere_inscrit[$nom_matiere]["ID"]."','$heure_debut','$heure_fin','$s_duree_format')"; $result_insert_edt=mysql_query($query_insert_edt,$conn_cahier_de_texte) or die(mysql_error()); if ($_SESSION['detail']==true) echo "
Insertion en $s_nom_classe du cours de $nom_matiere, professeur $ident_prof, semaine ".$ar_alternance["$code_repetition_cours"]["TIT"].", jour ".$ar_jour["$s_day_cours"].", heure $heure_debut, Groupe Réduit
"; } else { $query_insert_edt="insert into cdt_emploi_du_temps(prof_ID,jour_semaine,semaine,heure,classe_ID,groupe,matiere_ID,heure_debut,heure_fin,duree) values ('".$ID_prof_cdt."','".$ar_jour["$s_day_cours"]."','".$ar_alternance["$code_repetition_cours"]["TIT"]."',$pos,'$classe_id','".mysql_escape_string($s_nom_groupe)."','".$ar_matiere_inscrit[$nom_matiere]["ID"]."','$heure_debut','$heure_fin','$s_duree_format')"; $result_insert_edt=mysql_query($query_insert_edt,$conn_cahier_de_texte) or die(mysql_error()); if ($_SESSION['detail']==true) echo "
Insertion en $s_nom_classe du cours de $nom_matiere, professeur $ident_prof, semaine ".$ar_alternance["$code_repetition_cours"]["TIT"].", jour ".$ar_jour["$s_day_cours"].", heure $heure_debut, groupe $s_nom_groupe
"; } } // insertion des cours en groupe dans webcalendar pour les utilisateurs du cartable en ligne uniquement if(isset($_SESSION['cdt_envole'])) { if ($_SESSION['webcal']==true) { $prefix = webcal_prefix($ar_groupe_choisi[$s_nom_groupe]['GR']); $classe_webcal = GetSQLValueString(mysql_escape_string(strtolower("Meta_classe_".$s_nom_classe)),"text"); $login_prof_webcal = GetSQLValueString($login,"text"); $matiere_webcal = GetSQLValueString(mysql_escape_string($prefix.$nom_matiere),"text"); //l'identité du prof pour WebCalendar doit correspondre au nom présent dans l'annuaire, d'où la fonction premier() $ident_prof_webcal = $prefix.$s_civil_prof." ".strtoupper(premier($s_nom_prof)); $ident_prof_webcal = GetSQLValueString($ident_prof_webcal,"text"); $C_classe = GetSQLValueString("C - ".mysql_escape_string($s_nom_classe),"text"); $C_matiere = GetSQLValueString("C - ".mysql_escape_string($nom_matiere),"text"); $modifdate = GetSQLValueString(date('Ymd'),"int"); $modifheure = GetSQLValueString(date('His'),"int"); $heure_webcal = GetSQLValueString($s_heure.$s_minute."00","int"); $duree_webcal = GetSQLValueString((integer)$s_duree_h*60+(integer)$s_duree_min,"int"); $n_week = $ar_alternance[$code_repetition_cours]["NOMBRE_SEMAINES"]; $n_prof=0; $m_prof=0; $conflit_prof = array(); $n_classe=0; $m_classe=0; $conflit_classe = array(); for($loop=1;$loop<=$n_week;$loop++) { $date_webcal = GetSQLValueString($ar_alternance[$code_repetition_cours][$loop][$s_day_cours],"int"); if(!in_array($date_webcal,$ar_vacances)) { $rapport = ajout_calendar($login_prof_webcal,$C_classe,$matiere_webcal,$date_webcal,$heure_webcal,$duree_webcal,$modifdate,$modifheure,"cours"); if ($rapport['entry']) $n_prof++; else $m_prof++; if ($rapport['conflit']) { foreach($rapport['conflit'] as $value) { if (array_key_exists($value,$conflit_prof)) $conflit_prof[$value]++; else $conflit_prof[$value]=1; } } $rapport = ajout_calendar($classe_webcal,$C_matiere,$ident_prof_webcal,$date_webcal,$heure_webcal,$duree_webcal,$modifdate,$modifheure,"cours"); if ($rapport['entry']) $n_classe++; else $m_classe++; if ($rapport['conflit']) { foreach($rapport['conflit'] as $value) { if (array_key_exists($value,$conflit_classe)) $conflit_classe[$value]++; else $conflit_classe[$value]=1; } } } } if ($_SESSION['detail']==true) { echo "
Insertion WebCalendar pour l'enseignant : $n_prof nouvelles entrées et $m_prof entrées déjà présentes
"; foreach($conflit_prof as $key=>$value) echo "
---- conflit edt prof : cours au même horaire détecté, inséré par $key ($value fois sur l'année scolaire) ----
"; echo "
Insertion WebCalendar pour la classe : $n_classe nouvelles entrées et $m_classe entrées déjà présentes
"; foreach($conflit_classe as $key=>$value) echo "
---- conflit edt classe : cours au même horaire détecté, inséré par $key ($value fois sur l'année scolaire) ----
"; } } } //fin insertion WebCalendar } //cours } //enseignant } //service } //division $text = "var div = document.getElementById('compteur_3');"; if ($i < $nombre_groupes) $text .= "div.innerHTML='".$i." sur ".$nombre_groupes."';"; else $text .= "div.innerHTML='OK';div.style.color='green';"; echo ""; } //fin du if testant les groupes sélectionnés } //groupe } // fin du if pour le traitement du fichier facultatif d'emploi du temps emp_sts_xml_file.xml echo "

Fin du traitement : Retour à l'accueil

"; //supprime les deux fichier unlink('../fichiers_joints/sts_emp_xml_file.xml'); if (empty($emp_manquant)) unlink('../fichiers_joints/emp_sts_xml_file.xml'); } // fin du if pour le traitement du fichier obligatoire sts_emp_xml_file.xml else echo "

Les fichiers d'import ont été effacés, reprenez l'importation.

Retour"; unset($_SESSION['emp']); unset($_SESSION['detail']); unset($_SESSION['reinit']); unset($_SESSION['webcal']); unset($_SESSION['A']); unset($_SESSION['B']); unset($_SESSION['sem_ab']); //envole : enregistrement de la date d'importation dans un fichier XML pour la gestion des données if(isset($_SESSION['cdt_envole'])) addDateXML("cdt","importer"); ?>