#!/usr/bin/php \$servertype=$servertype

"); //my_echo("

\$debug_import_comptes=$debug_import_comptes

"); // Récupération du type des groupes Equipe_* et Matiere_* $sql="SELECT value FROM params WHERE name='type_Equipe_Matiere'"; $res1=mysql_query($sql); if(mysql_num_rows($res1)==0) { $type_Equipe_Matiere="groupOfNames"; } else{ $lig_type=mysql_fetch_object($res1); $type_Equipe_Matiere=$lig_type->value; if(($type_Equipe_Matiere!="groupOfNames")&&($type_Equipe_Matiere!="posixGroup")) { $type_Equipe_Matiere="groupOfNames"; } } // Pour ne pas faire de betises en cours d'annee scolaire et se retrouver avec un nom de classe qui change en cours d'annee parce qu'on se serait mis a virer les accents dans les noms de classes: $sql="SELECT value FROM params WHERE name='clean_caract_classe';"; $res_clean=mysql_query($sql); if(mysql_num_rows($res_clean)==0) { // On ne passera a 'y' que lors d'un import annuel. $clean_caract_classe="n"; } else { $lig_clean=mysql_fetch_object($res_clean); $clean_caract_classe=$lig_clean->value; } $nouveaux_comptes=0; $comptes_avec_employeeNumber_mis_a_jour=0; $nb_echecs=0; $tab_nouveaux_comptes=array(); $tab_comptes_avec_employeeNumber_mis_a_jour=array(); // listing pour l'impression des comptes $listing = array(array()); // une ligne par compte ; le deuxième parametre est, dans l'ordre nom, prenom, classe (ou 'prof'), uid, password if(file_exists($pathscripts."/creation_branche_Trash.sh")) { exec("/bin/bash ".$pathscripts."/creation_branche_Trash.sh > /dev/null",$retour); } //my_echo("\$creer_equipes_vides=$creer_equipes_vides
"); my_echo("\n"); my_echo(""); my_echo("

Menu

"); my_echo("
\n"); my_echo("

Aller à la section

\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); if($simulation!="y") { my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); // =========================================================== // AJOUTS: 20070914 boireaus if($creer_matieres=='y') { my_echo("\n"); } else{ my_echo("\n"); } // =========================================================== my_echo("\n"); my_echo("\n"); my_echo("\n"); // =========================================================== // AJOUTS: 20070914 boireaus if($creer_cours=='y') { my_echo("\n"); } else{ my_echo("\n"); } // =========================================================== my_echo("\n"); } my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("
- création des comptes professeurs:
- création des comptes élèves:
- création des classes et des équipes:
- création des matières: création des matières: non demandée
- création des cours: création des cours: non demandée
- compte rendu final de "); if($simulation=="y") {my_echo("simulation");} else {my_echo("création");} my_echo(":
\n"); my_echo("
\n"); //exit; if($temoin_creation_fichiers=="oui") { my_echo("

Fichiers CSV

"); my_echo("
\n"); my_echo("

Récupérer le fichier:

\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); //my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); //my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); //my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); //my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("
- F_ele.txt: F_ele.txt:
- F_div.txt: F_div.txt:
- F_men.txt: F_men.txt:
- F_wind.txt: F_wind.txt:
\n"); //my_echo("

Supprimer les fichiers générés:

\n"); my_echo("

Supprimer les fichiers générés:

\n"); my_echo("
\n"); } // Nom du groupe professeurs principaux $nom_groupe_pp="Groupe_".$prefix."Professeurs_Principaux"; // Vérification de l'existence de la branche Trash: test_creation_trash(); $tab_no_Trash_prof=array(); $tab_no_Trash_eleve=array(); // Suppression des anciens groupes si l'importation est annuelle: //if(isset($_POST['annuelle'])) { if($annuelle=="y") { //ldap_get_right("no_Trash_user",$login)=="Y" $tmp_tab_no_Trash_user=gof_members("no_Trash_user","rights",1); if(count($tmp_tab_no_Trash_user)>0) { $attribut=array("cn"); $cpt_trash_ele=0; $cpt_trash_prof=0; my_echo("

Quelques comptes doivent être préservés de la Corbeille (dispositif no_Trash_user) :
\n"); for($loop=0;$loop"); if($loop>0) {my_echo(", ");} my_echo("$tmp_tab_no_Trash_user[$loop]"); $tabtmp=get_tab_attribut("groups", "(&(cn=Profs)(memberuid=$tmp_tab_no_Trash_user[$loop]))", $attribut); if(count($tabtmp)>0) { my_echo("(prof)"); $tab_no_Trash_prof[$cpt_trash_prof]=$tmp_tab_no_Trash_user[$loop]; $cpt_trash_prof++; } else { $tabtmp=get_tab_attribut("groups", "(&(cn=Eleves)(memberuid=$tmp_tab_no_Trash_user[$loop]))", $attribut); if(count($tabtmp)>0) { my_echo("(élève)"); $tab_no_Trash_eleve[$cpt_trash_ele]=$tmp_tab_no_Trash_user[$loop]; $cpt_trash_ele++; } } } } for($loop=0;$loop"); } for($loop=0;$loop"); } if($simulation!="y") { // A FAIRE... //if(del_entry ($entree, $branche)) {}else{} my_echo("

Importation annuelle"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); // ========================================================== // On profite d'une mise a jour annuelle pour passer en mode sans accents sur les caractères dans les noms de classes (pour eviter des blagues dans la creation de dossiers de classes,...) $sql="DELETE FROM params WHERE name='clean_caract_classe';"; $res_clean=mysql_query($sql); $sql="INSERT INTO params SET name='clean_caract_classe', value='y';"; $res_clean=mysql_query($sql); $clean_caract_classe="y"; // ========================================================== if(file_exists($sts_xml_file)) { unset($attribut); $attribut=array("memberuid"); $tab=get_tab_attribut("groups","cn=Profs",$attribut); if(count($tab)>0) { my_echo("

On vide le groupe Profs.
\n"); my_echo("Suppression de l'appartenance au groupe de: \n"); for($i=0;$i".$tab[$i].""); } } my_echo("

\n"); } else{ my_echo("

Le groupe Profs est déjà vide.

\n"); } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} } if(file_exists($eleves_file)) { unset($attribut); $attribut=array("memberuid"); $tab=get_tab_attribut("groups","cn=Eleves",$attribut); if(count($tab)>0) { my_echo("

On vide le groupe Eleves.
\n"); my_echo("Suppression de l'appartenance au groupe de: \n"); for($i=0;$i".$tab[$i].""); } } my_echo("

\n"); } else{ my_echo("

Le groupe Eleves est déjà vide.

\n"); } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} } my_echo("

Suppression des groupes Classes, Equipes, Cours et Matieres.

\n"); // Recherche des classes,... unset($attribut); $attribut=array("cn"); $tab=get_tab_attribut("groups","(|(cn=Classe_*)(cn=Equipe_*)(cn=Cours_*)(cn=Matiere_*))",$attribut); if(count($tab)>0) { my_echo("\n"); for($i=0;$i"); my_echo(""); my_echo(""); my_echo(""); } //my_echo("

\n"); my_echo("
"); my_echo("Suppression de $tab[$i]: "); my_echo(""); if(del_entry("cn=$tab[$i]", "groups")) { my_echo("SUCCES"); } else{ my_echo("ECHEC"); } //my_echo("
\n"); my_echo("
\n"); } // Groupe Professeurs_Principaux $attribut=array("cn"); $tabtmp=get_tab_attribut("groups", "cn=$nom_groupe_pp", $attribut); if(count($tabtmp)>0) { unset($attribut); $attribut=array("memberuid"); $tab_mem_pp=get_tab_attribut("groups","cn=$nom_groupe_pp",$attribut); if(count($tab_mem_pp)>0) { my_echo("

On vide le groupe $nom_groupe_pp
\n"); my_echo("Suppression de l'appartenance au groupe de: \n"); for($i=0;$i".$tab_mem_pp[$i].""); } } my_echo("

\n"); } else { my_echo("

Le groupe $nom_groupe_pp est vide.

\n"); } } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); //exit(); } else { my_echo("

Importation annuelle"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); my_echo("

Simulation de la suppression des groupes Classes, Equipes, Cours et Matieres.

\n"); my_echo("

Les groupes suivants seraient supprimés: "); // Recherche des classes,... unset($attribut); $attribut=array("cn"); $tab=get_tab_attribut("groups","(|(cn=Classe_*)(cn=Equipe_*)(cn=Cours_*)(cn=Matiere_*))",$attribut); if(count($tab)>0) { my_echo("$tab[0]"); for($i=1;$i"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} } if($servertype!="LCS") { // Vider les fonds d'écran pour que les élèves ne restent pas avec les noms de classes de l'année précédente my_echo("

On vide les fonds d'écran pour que les élèves ne restent pas avec les noms de classes de l'année précédente.

\n"); exec("/usr/bin/sudo $pathscripts/genere_fond.sh variable_bidon supprimer"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} } } //exit; // 20130115 // Initialisation: $uaj=""; $uaj_tronque=""; $tab_eleve_autre_etab=array(); // Partie ELEVES: //$type_fichier_eleves=isset($_POST['type_fichier_eleves']) ? $_POST['type_fichier_eleves'] : "csv"; if($type_fichier_eleves=="csv") { //$eleves_csv_file = isset($_FILES["eleves_csv_file"]) ? $_FILES["eleves_csv_file"] : NULL; //$eleves_csv_file = isset($_FILES["eleves_file"]) ? $_FILES["eleves_file"] : NULL; //$fp=fopen($eleves_csv_file['tmp_name'],"r"); $fp=fopen($eleves_file,"r"); if($fp) { //my_echo("

Section élèves

\n"); //my_echo("

Section élèves

\n"); my_echo("

Section élèves"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); //my_echo("

Lecture du fichier...

\n"); my_echo("

Lecture du fichier élèves...

\n"); my_echo("
\n"); unset($ligne); $ligne=array(); while(!feof($fp)) { //$ligne[]=fgets($fp,4096); // Suppression des guillemets s'il jamais il y en a dans le CSV //$ligne[]=ereg_replace('"','',fgets($fp,4096)); $ligne[]=preg_replace('/"/','',fgets($fp,4096)); } fclose($fp); my_echo("

Terminé.

\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); // Contrôle du contenu du fichier: if(stristr($ligne[0],"ERREUR: Le fichier élèves fourni a l'air d'être de type XML et non CSV.

\n"); my_echo("\n"); my_echo("
ERREUR: Le fichier élèves fourni a l'air d'être de type XML et non CSV.
"); my_echo("\n\n"); // Renseignement du témoin de mise à jour terminée. $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'"; $res1=mysql_query($sql); if(mysql_num_rows($res1)==0) { $sql="INSERT INTO params SET name='imprt_cmpts_en_cours',value='n'"; $res0=mysql_query($sql); } else{ $sql="UPDATE params SET value='n' WHERE name='imprt_cmpts_en_cours'"; $res0=mysql_query($sql); } exit(); } //my_echo("

Affichage...

\n"); //my_echo("

Affichage...

\n"); my_echo("

Affichage..."); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); my_echo("

Les lignes qui suivent sont le contenu du fichier fourni.
Ces lignes ne sont là qu'à des fins de débuggage.

\n"); my_echo("\n"); $cpt=0; while($cpt\n"); my_echo("\n"); my_echo("\n"); $cpt++; } my_echo("
$cpt".htmlentities($ligne[$cpt])."
\n"); my_echo("

Terminé.

\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); my_echo("
\n"); my_echo("\n"); //my_echo("

Analyse

\n"); //my_echo("

Analyse

\n"); my_echo("

Analyse"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); //my_echo("

Repérage des champs

\n"); //my_echo("

Repérage des champs

\n"); my_echo("

Repérage des champs"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); $champ=array("Nom", "Prénom 1", "Date de naissance", "N° Interne", "Sexe", "Division"); // Analyse: // Repérage des champs souhaités: //$tabtmp=explode(";",$ligne[0]); $tabtmp=explode(";",trim($ligne[0])); for($j=0;$j$champ[$j]' repéré en colonne/position $i
\n"); $index[$j]=$i; } } if($index[$j]=="-1") { my_echo("

ERREUR: Le champ '$champ[$j]' n'a pas été trouvé.

\n"); my_echo("
"); //my_echo("

Retour.

\n"); my_echo("

Retour.

\n"); my_echo("\n"); my_echo("
"); exit(); } } my_echo("

Terminé.

\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); //my_echo("

Remplissage des tableaux pour SambaEdu3

\n"); my_echo("

Remplissage des tableaux"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); $cpt=1; $tabnumero=array(); $eleve=array(); $temoin_format_num_interne=""; while($cptTerminé.

\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); // A CE STADE, LE TABLEAU $eleves N'EST REMPLI QUE POUR DES DIVISIONS NON VIDES (seuls les élèves affecté dans des classes sont retenus). my_echo("\n"); my_echo("

Affichage d'un CSV des élèves"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); if($temoin_format_num_interne!="") { my_echo("

ATTENTION: Le format des numéros internes des élèves n'a pas l'air standard.
Un préfixe 0 a dû être ajouté pour corriger.
Veillez à contrôler que vos numéros internes ont bien été analysés malgré tout.

\n"); } //my_echo(""); //if($temoin_creation_fichiers!="non") {$fich=fopen("$dossiercsv/se3/f_ele.txt","w+");} if($temoin_creation_fichiers!="non") {$fich=fopen("$dossiercsv/f_ele.txt","w+");}else{$fich=FALSE;} $tab_classe=array(); $cpt_classe=-1; for($k=0;$k\n"); } if($fich) { fclose($fich); } //my_echo("disk_total_space($dossiercsv)=".disk_total_space($dossiercsv)."
"); if($temoin_creation_fichiers!="non") { my_echo(""); } my_echo("
\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("\n"); } else{ //my_echo("

ERREUR lors de l'ouverture du fichier ".$eleves_csv_file['name']." (".$eleves_csv_file['tmp_name'].").

\n"); my_echo("

ERREUR lors de l'ouverture du fichier '$eleves_file'.

\n"); } } else{ // ***************************** // C'est un fichier Eleves...XML // ***************************** // Pour avoir accès aux erreurs XML: libxml_use_internal_errors(true); $ele_xml=simplexml_load_file($eleves_file); if($ele_xml) { $nom_racine=$ele_xml->getName(); if(strtoupper($nom_racine)!='BEE_ELEVES') { my_echo("

ERREUR: Le fichier XML fourni n'a pas l'air d'être un fichier XML Elèves.
Sa racine devrait être 'BEE_ELEVES'.

\n"); my_echo("\n"); my_echo("
ERREUR: Le fichier XML fourni n'a pas l'air d'être un fichier XML Elèves.
Sa racine devrait être 'BEE_ELEVES'.
"); my_echo("\n\n"); // Renseignement du témoin de mise à jour terminée. $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'"; $res1=mysql_query($sql); if(mysql_num_rows($res1)==0) { $sql="INSERT INTO params SET name='imprt_cmpts_en_cours',value='n'"; $res0=mysql_query($sql); } else{ $sql="UPDATE params SET value='n' WHERE name='imprt_cmpts_en_cours'"; $res0=mysql_query($sql); } // On a fourni un fichier, mais invalide, donc ABANDON die(); } else { my_echo("

Section élèves"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); // 20130115 $uaj=""; $uaj_tronque=""; $annee_scolaire=""; $date_export=""; $objet_parametres=($ele_xml->PARAMETRES); foreach ($objet_parametres->children() as $key => $value) { if(strtoupper($key)=='UAJ') { $uaj=trim($value); $uaj_tronque=substr(substr($uaj,0,strlen($uaj)-1), 1); } elseif(strtoupper($key)=='ANNEE_SCOLAIRE') { $annee_scolaire=trim($value)."-".(trim($value)+1); } elseif(strtoupper($key)=='HORODATAGE') { $date_export=trim($value); } } my_echo("

"); if($uaj!="") { my_echo("Fichier XML Élèves de l'établissement $uaj ($uaj_tronque) "); } if($annee_scolaire!="") { my_echo("pour l'année scolaire $annee_scolaire "); } if($date_export!="") { my_echo("exporté le $date_export"); crob_setParam('xml_ele_last_import',$date_export,"Date du dernier export XML Eleves importé"); } my_echo("

"); my_echo("

Analyse du fichier pour extraire les informations élèves..."); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); $eleves=array(); //$indice_from_eleve_id[ELEVE_ID]=INDICE_$i_DANS_LE_TABLEAU_$eleves $indice_from_eleve_id=array(); $indice_from_elenoet=array(); //Compteur élève: $i=-1; $tab_champs_eleve=array("ID_NATIONAL", "ELENOET", "ID_ELEVE_ETAB", "NOM", "PRENOM", "DATE_NAISS", "DOUBLEMENT", "DATE_SORTIE", "CODE_REGIME", "DATE_ENTREE", "CODE_MOTIF_SORTIE", "CODE_SEXE", ); // Inutile pour SE3 $avec_scolarite_an_dernier="n"; $tab_champs_scol_an_dernier=array("CODE_STRUCTURE", "CODE_RNE", "SIGLE", "DENOM_PRINC", "DENOM_COMPL", "LIGNE1_ADRESSE", "LIGNE2_ADRESSE", "LIGNE3_ADRESSE", "LIGNE4_ADRESSE", "BOITE_POSTALE", "MEL", "TELEPHONE", "LL_COMMUNE_INSEE" ); // PARTIE my_echo("

Parcours de la section ELEVES
\n"); $objet_eleves=($ele_xml->DONNEES->ELEVES); foreach ($objet_eleves->children() as $eleve) { $i++; //my_echo("

Elève $i
"); $eleves[$i]=array(); foreach($eleve->attributes() as $key => $value) { //my_echo("$key=".$value."
"); $eleves[$i][strtolower($key)]=trim(traite_utf8($value)); if(strtoupper($key)=='ELEVE_ID') { $indice_from_eleve_id["$value"]=$i; } elseif(strtoupper($key)=='ELENOET') { $indice_from_elenoet["$value"]=$i; } } foreach($eleve->children() as $key => $value) { if(in_array(strtoupper($key),$tab_champs_eleve)) { $eleves[$i][strtolower($key)]=trim(traite_utf8($value)); //my_echo("\$eleve->$key=".$value."
"); } if(($avec_scolarite_an_dernier=='y')&&(strtoupper($key)=='SCOLARITE_AN_DERNIER')) { $eleves[$i]["scolarite_an_dernier"]=array(); foreach($eleve->SCOLARITE_AN_DERNIER->children() as $key2 => $value2) { //my_echo("\$eleve->SCOLARITE_AN_DERNIER->$key2=$value2
"); if(in_array(strtoupper($key2),$tab_champs_scol_an_dernier)) { $eleves[$i]["scolarite_an_dernier"][strtolower($key2)]=trim(traite_utf8($value2)); } } } } //20130115 // Est-ce que l'elenoet enregistré est bien un elenoet de l'établissement ou un élève importé d'un autre établissement? if(($uaj_tronque!="")&&(isset($eleves[$i]['elenoet']))&&(isset($eleves[$i]['id_eleve_etab']))&&(!preg_match("/".$elenoet.$uaj_tronque."/", $eleves[$i]['id_eleve_etab']))) { my_echo("

L'élève ".$eleves[$i]['nom']." ".$eleves[$i]['prenom']." a été importé d'un autre établissement (".$eleves[$i]['id_eleve_etab']."->".preg_replace("/[0]*".$eleves[$i]['elenoet']."/","",$eleves[$i]['id_eleve_etab']).").
Son elenoet (".$eleves[$i]['elenoet'].") est celui qu'il avait dans son ancien établissement.
Cet elenoet n'est pas encore valide
Vous devrez créer le compte à la main en attendant que Sconet/Siècle soit nettoyé/mis à jour.

\n"); $tab_eleve_autre_etab[]=$eleves[$i]['nom']."|".$eleves[$i]['prenom']."|".$eleves[$i]['code_sexe']."|".$eleves[$i]['date_naiss']; unset($eleves[$i]['elenoet']); } if($debug_import_comptes=='y') { my_echo("
Tableau \$eleves[$i] :");
						my_print_r($eleves[$i]);
						my_echo("
"); } } my_echo("Fin de la section ELEVES
\n"); //++++++++++++++++++++++++++++++++++++++ $tab_champs_opt=array("NUM_OPTION","CODE_MODALITE_ELECT","CODE_MATIERE"); my_echo("

Parcours de la section OPTIONS
\n"); // PARTIE $objet_options=($ele_xml->DONNEES->OPTIONS); foreach ($objet_options->children() as $option) { // $option est un

Option
"); // $i est l'indice de l'élève dans le tableau $eleves unset($i); $chaine_option="OPTION"; foreach($option->attributes() as $key => $value) { //my_echo("$key=".$value."
"); $chaine_option.=" $key='$value'"; // Recherche de la valeur de $i dans $eleves[$i] d'après l'ELEVE_ID ou l'ELENOET if((strtoupper($key)=='ELEVE_ID')&&(isset($indice_from_eleve_id["$value"]))) { $i=$indice_from_eleve_id["$value"]; break; } elseif((strtoupper($key)=='ELENOET')&&(isset($indice_from_elenoet["$value"]))) { $i=$indice_from_elenoet["$value"]; break; } } if(!isset($i)) { my_echo("ERREUR : Echec de l'association de l'option <$chaine_option> avec un élève.
"); } else { $eleves[$i]["options"]=array(); $j=0; //foreach($option->OPTIONS_ELEVE->children() as $key => $value) { // $option fait référence à un élève // Les enfants sont des OPTIONS_ELEVE foreach($option->children() as $options_eleve) { foreach($options_eleve->children() as $key => $value) { // Les enfants indiquent NUM_OPTION, CODE_MODALITE_ELECT, CODE_MATIERE if(in_array(strtoupper($key),$tab_champs_opt)) { $eleves[$i]["options"][$j][strtolower($key)]=trim(traite_utf8($value)); //my_echo("\$eleve->$key=".$value."
"; //my_echo("\$eleves[$i][\"options\"][$j][".strtolower($key)."]=".$value."
"); } } $j++; } if($debug_import_comptes=='y') { my_echo("

Tableau \$eleves[$i] :");
							my_print_r($eleves[$i]);
							my_echo("
"); } } } my_echo("Fin de la section OPTIONS
\n"); //++++++++++++++++++++++++++++++++++++++ // TYPE_STRUCTURE vaut D pour la classe et G pour un groupe $tab_champs_struct=array("CODE_STRUCTURE","TYPE_STRUCTURE"); my_echo("

Parcours de la section STRUCTURES
\n"); // PARTIE $objet_structures=($ele_xml->DONNEES->STRUCTURES); foreach ($objet_structures->children() as $structures_eleve) { //my_echo("

Structure
"); // $i est l'indice de l'élève dans le tableau $eleves unset($i); $chaine_structures_eleve="STRUCTURES_ELEVE"; foreach($structures_eleve->attributes() as $key => $value) { //my_echo("$key=".$value."
"); $chaine_structures_eleve.=" $key='$value'"; // Recherche de la valeur de $i dans $eleves[$i] d'après l'ELEVE_ID ou l'ELENOET if((strtoupper($key)=='ELEVE_ID')&&(isset($indice_from_eleve_id["$value"]))) { $i=$indice_from_eleve_id["$value"]; break; } elseif((strtoupper($key)=='ELENOET')&&(isset($indice_from_elenoet["$value"]))) { $i=$indice_from_elenoet["$value"]; break; } } if(!isset($i)) { my_echo("ERREUR : Echec de l'association de <$chaine_structures_eleve> avec un élève.
"); } else { $eleves[$i]["structures"]=array(); $j=0; //foreach($objet_structures->STRUCTURES_ELEVE->children() as $structure) { foreach($structures_eleve->children() as $structure) { $eleves[$i]["structures"][$j]=array(); foreach($structure->children() as $key => $value) { if(in_array(strtoupper($key),$tab_champs_struct)) { //my_echo("\$structure->$key=".$value."
"); $eleves[$i]["structures"][$j][strtolower($key)]=strtr(trim(traite_utf8($value)),"/","_"); if($clean_caract_classe=="y") { $eleves[$i]["structures"][$j][strtolower($key)]=preg_replace("/[^a-zA-Z0-9_ -]/", "",remplace_accents($eleves[$i]["structures"][$j][strtolower($key)])); } } } $j++; } if($debug_import_comptes=='y') { my_echo("

Tableau \$eleves[$i] :)");
							my_print_r($eleves[$i]);
							my_echo("
"); } } } my_echo("Fin de la section STRUCTURES

\n"); //++++++++++++++++++++++++++++++++++++++ // Générer un tableau des membres des groupes: // $structure[$i]["nom"] -> 5LATIN-, 3 A2DEC3,... // $structure[$i]["eleve"][] -> ELENOET my_echo("

Terminé.

\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); //=================================================================== $tab_groups=array(); $tab_groups_member=array(); my_echo("

Affichage (d'une partie) des données ELEVES extraites:"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); my_echo(count($eleves)." élèves dans le fichier."); my_echo("\n"); my_echo("\n"); //my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); $i=0; while($i\n"); //my_echo("\n"); //my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); // ============================================= // On ne retient que le premier prénom: 20071101 $tab_tmp_prenom=explode(" ",$eleves[$i]["prenom"]); $eleves[$i]["prenom"]=$tab_tmp_prenom[0]; // ============================================= my_echo("\n"); my_echo("\n"); my_echo("\n"); /* if(isset($eleves[$i]["structures"])) { my_echo("\n"); } else{ my_echo("\n"); } */ $temoin_div_trouvee=""; if(isset($eleves[$i]["structures"])) { if(count($eleves[$i]["structures"])>0) { for($j=0;$j".$eleves[$i]["structures"][$j]["code_structure"].""); $eleves[$i]["classe"]=$eleves[$i]["structures"][$j]["code_structure"]; } $temoin_div_trouvee="oui"; //break; } elseif($eleves[$i]["structures"][$j]["type_structure"]=="G") { if(!in_array($eleves[$i]["structures"][$j]["code_structure"], $tab_groups)) { $tab_groups[]=$eleves[$i]["structures"][$j]["code_structure"]; $tab_groups_member[$eleves[$i]["structures"][$j]["code_structure"]]=array(); } // 20130115 //if(!in_array($eleves[$i]['eleve_id'], $tab_groups_member[$eleves[$i]["structures"][$j]["code_structure"]])) { if((!in_array($eleves[$i]['eleve_id'], $tab_groups_member[$eleves[$i]["structures"][$j]["code_structure"]]))&&($eleves[$i]['elenoet'])) { //$tab_groups_member[$eleves[$i]["structures"][$j]["code_structure"]][]=$eleves[$i]['eleve_id']; $tab_groups_member[$eleves[$i]["structures"][$j]["code_structure"]][]=$eleves[$i]['elenoet']; } } } /* if($temoin_div_trouvee=="") { echo " "; } else{ my_echo(""); $eleves[$i]["classe"]=$eleves[$i]["structures"][$j]["code_structure"]; } */ } else{ my_echo("\n"); } } else{ my_echo("\n"); } my_echo("\n"); //flush(); $i++; } my_echo("
  ElenoetNomPrénomSexeDate de naissanceDivision
$cpt $i".$eleves[$i]["elenoet"]."".$eleves[$i]["nom"]."".$eleves[$i]["prenom"]."".$eleves[$i]["code_sexe"]."".$eleves[$i]["date_naiss"]."".$eleves[$i]["structures"][0]["code_structure"]." ".$eleves[$i]["structures"][$j]["code_structure"]."  
\n"); if($debug_import_comptes=='y') { my_echo("DEBUG_ELEVES_1
eleves
\n"); my_print_r($eleves); my_echo("

DEBUG_ELEVES_2
\n"); my_echo("DEBUG_TAB_GROUPS_1
tab_groups
\n"); my_print_r($tab_groups); my_echo("

DEBUG_TAB_GROUPS_2
\n"); my_echo("DEBUG_TAB_GROUPS_MEMBER_1
tab_groups_member
\n"); my_print_r($tab_groups_member); my_echo("

DEBUG_TAB_GROUPS_MEMBER_2
\n"); } //my_echo("___ ... ___"); my_echo("
\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); // Avec le fichier XML, on a rempli un tableau $eleves (au pluriel) // Remplissage du tableau $eleve (au singulier) calqué sur celui du fichier CSV. if($temoin_creation_fichiers!="non") {$fich=fopen("$dossiercsv/f_ele.txt","w+");}else{$fich=FALSE;} $eleve=array(); $tabnumero=array(); $tab_division=array(); $i=0; while($i\n"); //my_echo("

\$eleve[$numero][\"nom\"]=".$eleve[$numero]["nom"]." "); $eleve[$numero]["prenom"]=$eleves[$i]["prenom"]; //my_echo("\$eleve[$numero][\"prenom\"]=".$eleve[$numero]["prenom"]." "); $tmpdate=explode("/",$eleves[$i]["date_naiss"]); $eleve[$numero]["date"]=$tmpdate[2].$tmpdate[1].$tmpdate[0]; if($eleves[$i]["code_sexe"]==1) {$eleve[$numero]["sexe"]="M";}else{$eleve[$numero]["sexe"]="F";} //$eleve[$numero]["division"]=$eleves[$i]["structures"][0]["code_structure"]; $eleve[$numero]["division"]=$eleves[$i]["classe"]; //my_echo(" en ".$eleve[$numero]["division"]."
"); //my_echo("\$eleve[$numero][\"division\"]=".$eleve[$numero]["division"]."
"); $chaine=""; $chaine.=$eleve[$numero]["numero"]; $chaine.="|"; $chaine.=remplace_accents($eleve[$numero]["nom"]); $chaine.="|"; $chaine.=remplace_accents($eleve[$numero]["prenom"]); $chaine.="|"; $chaine.=$eleve[$numero]["date"]; $chaine.="|"; $chaine.=$eleve[$numero]["sexe"]; $chaine.="|"; $chaine.=$eleve[$numero]["division"]; if($fich) { //fwrite($fich,$chaine."\n"); fwrite($fich,html_entity_decode($chaine)."\n"); } //my_echo("Parcours des divisions existantes: "); $temoin_new_div="oui"; for($k=0;$k$k) "); if($eleve[$numero]["division"]==$tab_division[$k]["nom"]) { $temoin_new_div="non"; //my_echo(" (BINGO) "); break; } } if($temoin_new_div=="oui") { //$k++; $tab_division[$k]=array(); //$tab_division[$k]["nom"]=ereg_replace("'","_",ereg_replace(" ","_",remplace_accents($eleve[$numero]["division"]))); $tab_division[$k]["nom"]=$eleve[$numero]["division"]; $tab_division[$k]["option"]=array(); //my_echo("
Nouvelle classe: \$tab_division[$k][\"nom\"]=".$tab_division[$k]["nom"]."
"); } // Et pour les options, on conserve $eleves? NON //$eleves[$i]["options"][$j] if(isset($eleves[$i]["options"])) { $eleve[$numero]["options"]=array(); for($j=0;$j"); // TESTER SI L'OPTION EST DEJA DANS LA LISTE DES OPTIONS DE LA CLASSE. //my_echo("Options existantes: "); $temoin_nouvelle_option="oui"; for($n=0;$n$k - $n)"); if($tab_division[$k]["option"][$n]["code_matiere"]==$eleve[$numero]["options"][$j]["code_matiere"]) { $temoin_nouvelle_option="non"; //my_echo(" (BINGO) "); break; } } //my_echo("
"); if($temoin_nouvelle_option=="oui") { //$n++; $tab_division[$k]["option"][$n]=array(); $tab_division[$k]["option"][$n]["code_matiere"]=$eleve[$numero]["options"][$j]["code_matiere"]; $tab_division[$k]["option"][$n]["eleve"]=array(); //my_echo("Nouvelle option: \$tab_division[$k][\"option\"][$n][\"code_matiere\"]=".$tab_division[$k]["option"][$n]["code_matiere"]."
"); } //my_echo("
"); $tab_division[$k]["option"][$n]["eleve"][]=$eleve[$numero]["numero"]; // my_echo("

Membres actuels de l'option ".$tab_division[$k]["option"][$n]["code_matiere"]." de ".$tab_division[$k]["nom"].": "); // for($m=0;$m"); } } } } $i++; } if($fich) { fclose($fich); } if($temoin_creation_fichiers!="non") { my_echo(""); } //my_echo("disk_total_space($dossiercsv)=".disk_total_space($dossiercsv)."
"); // // Affichage pour debug: // for($k=0;$k\$tab_division[$k][\"nom\"]=".$tab_division[$k]["nom"]."

"); // for($n=0;$n\$tab_division[$k][\"option\"][$n][\"code_matiere\"]=".$tab_division[$k]["option"][$n]["code_matiere"]."
"); // //my_echo(""); // my_echo("

"); // } // my_echo("
"); // } if($debug_import_comptes=='y') { my_echo("DEBUG_ELEVE_1
eleve
\n"); my_print_r($eleve); my_echo("

DEBUG_ELEVE_2
\n"); } } } else{ //$eleves_xml_file //my_echo("

ERREUR lors de l'ouverture du fichier ".$eleves_xml_file['name']." (".$eleves_xml_file['tmp_name'].").

\n"); my_echo("\n"); my_echo("

ERREUR lors de l'ouverture du fichier '$eleves_file'

\n"); my_echo("
"); foreach(libxml_get_errors() as $xml_error) { my_echo($xml_error->message."
"); } my_echo("
"); libxml_clear_errors(); } } //my_echo("

Fin provisoire...

"); //exit; //========================================================================= //========================================================================= // On passe au fichier STS_EDT //========================================================================= //========================================================================= // ******************************************************************* // ******************************************************************* // A FAIRE: METTRE UN if(file_exists($sts_xml_file)) // ******************************************************************* // ******************************************************************* // Lecture du XML de STS... $temoin_au_moins_un_prof_princ=""; // Pour avoir accès aux erreurs XML: libxml_use_internal_errors(true); $sts_xml=simplexml_load_file($sts_xml_file); if($sts_xml) { my_echo("

Section professeurs, matières, groupes,..."); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); $nom_racine=$sts_xml->getName(); if(strtoupper($nom_racine)!='STS_EDT') { //echo "

ABANDON : Le fichier n'est pas de type STS_EDT.

\n"; my_echo("

ERREUR: Le fichier STS/Emploi-du-temps fourni n'a pas l'air d'être de type STS_EDT.

\n"); my_echo("\n"); my_echo("
ERREUR: Le fichier STS/Emploi-du-temps fourni n'a pas l'air d'être de type STS_EDT.
"); my_echo("\n\n"); // Renseignement du témoin de mise à jour terminée. $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'"; $res1=mysql_query($sql); if(mysql_num_rows($res1)==0) { $sql="INSERT INTO params SET name='imprt_cmpts_en_cours',value='n'"; $res0=mysql_query($sql); } else{ $sql="UPDATE params SET value='n' WHERE name='imprt_cmpts_en_cours'"; $res0=mysql_query($sql); } // On a fourni un fichier, mais invalide, donc ABANDON die(); } else { if($debug_import_comptes=='y') { my_echo("

"); my_print_r($sts_xml); my_echo(""); } my_echo("

Analyse du fichier pour extraire les informations de l'établissement\n"); $tab_champs_uaj=array("SIGLE", "DENOM_PRINC", "DENOM_COMPL", "CODE_NATURE", "CODE_CATEGORIE", "ADRESSE", "COMMUNE", "CODE_POSTAL", "BOITE_POSTALE", "CEDEX", "TELEPHONE", "STATUT", "ETABLISSEMENT_SENSIBLE" ); // PARTIE my_echo("

Parcours de la section PARAMETRES
\n"); // RNE $etablissement=array(); foreach($sts_xml->PARAMETRES->UAJ->attributes() as $key => $value) { if(strtoupper($key)=='CODE') { $etablissement["code"]=trim(traite_utf8($value)); break; } } // Académie $etablissement["academie"]=array(); foreach($sts_xml->PARAMETRES->UAJ->ACADEMIE->children() as $key => $value) { $etablissement["academie"][strtolower($key)]=trim(traite_utf8($value)); } // Champs de l'établissement (sigle, denom_princ, adresse,...) foreach($sts_xml->PARAMETRES->UAJ->children() as $key => $value) { if(in_array(strtoupper($key),$tab_champs_uaj)) { $etablissement[strtolower($key)]=trim(traite_utf8($value)); } } // Année foreach($sts_xml->PARAMETRES->ANNEE_SCOLAIRE->attributes() as $key => $value) { if(strtoupper($key)=='ANNEE') { $etablissement["annee"]=array(); $etablissement["annee"]["annee"]=trim(traite_utf8($value)); break; } } // Dates de début et fin d'année foreach($sts_xml->PARAMETRES->ANNEE_SCOLAIRE->children() as $key => $value) { $etablissement["annee"][strtolower($key)]=trim(traite_utf8($value)); } my_echo("Fin de la section PARAMETRES
\n"); my_echo("

Terminé.

\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("

\n"); //============================================================================== my_echo("
Affichage des données PARAMETRES établissement extraites:"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("
\n"); my_echo("
\n"); my_echo("\n"); my_echo("\n"); //my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); //$cpt=0; //while($cpt\n"); //my_echo("\n"); //my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); //$cpt++; //} my_echo("
 CodeCode académieLibelle académieSigleDenom_princDenom_complCode_natureCode_categorieAdresseCode_postalBoite_postaleCedexTelephoneStatutEtablissement_sensibleAnneeDate_debutDate_fin
$cpt ".$etablissement["code"]."".$etablissement["academie"]["code"]."".$etablissement["academie"]["libelle"]."".$etablissement["sigle"]."".$etablissement["denom_princ"]."".$etablissement["denom_compl"]."".$etablissement["code_nature"]."".$etablissement["code_categorie"]."".$etablissement["adresse"]."".$etablissement["code_postal"]."".$etablissement["boite_postale"]."".$etablissement["cedex"]."".$etablissement["telephone"]."".$etablissement["statut"]."".$etablissement["etablissement_sensible"]."".$etablissement["annee"]["annee"]."".$etablissement["annee"]["date_debut"]."".$etablissement["annee"]["date_fin"]."
\n"); my_echo("
\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("\n"); if($debug_import_comptes=='y') { my_echo("DEBUG_ETAB_1
etablissement
\n"); my_print_r($etablissement); my_echo("

\nDEBUG_ETAB_2
\n"); } //============================================================================== $tab_champs_matiere=array("CODE_GESTION", "LIBELLE_COURT", "LIBELLE_LONG", "LIBELLE_EDITION"); my_echo("

Matières"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); //my_echo("

Analyse du fichier pour extraire les matières...

\n"); //my_echo("

Analyse du fichier pour extraire les matières...

\n"); //my_echo("
Analyse du fichier pour extraire les matières...
\n"); my_echo("
Analyse du fichier pour extraire les matières..."); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("
\n"); my_echo("
\n"); $matiere=array(); $i=0; foreach($sts_xml->NOMENCLATURES->MATIERES->children() as $objet_matiere) { foreach($objet_matiere->attributes() as $key => $value) { if(strtoupper($key)=='CODE') { $matiere[$i]["code"]=trim(traite_utf8($value)); break; } } // Champs de la matière foreach($objet_matiere->children() as $key => $value) { if(in_array(strtoupper($key),$tab_champs_matiere)) { if(strtoupper($key)=='CODE_GESTION') { //$matiere[$i][strtolower($key)]=trim(ereg_replace("[^a-zA-Z0-9&_. -]","",html_entity_decode($value))); $matiere[$i][strtolower($key)]=trim(preg_replace("/[^a-zA-Z0-9&_. -]/","",html_entity_decode(traite_utf8($value)))); } elseif(strtoupper($key)=='LIBELLE_COURT') { //$matiere[$i][strtolower($key)]=trim(ereg_replace("[^A-Za-zÆæ¼½".$liste_caracteres_accentues."0-9&_. -]","",html_entity_decode($value))); $matiere[$i][strtolower($key)]=trim(preg_replace("/[^A-Za-zÆæ¼½".$liste_caracteres_accentues."0-9&_. -]/","",html_entity_decode(traite_utf8($value)))); } else { $matiere[$i][strtolower($key)]=trim(traite_utf8($value)); } } } $i++; } my_echo("

Terminé.

\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); my_echo("
Affichage des données MATIERES extraites:"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("
\n"); my_echo("
\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); $cpt=0; while($cpt\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); $cpt++; } my_echo("
 CodeCode_gestionLibelle_courtLibelle_longLibelle_edition
$cpt".$matiere[$cpt]["code"]."".htmlentities($matiere[$cpt]["code_gestion"])."".htmlentities($matiere[$cpt]["libelle_court"])."".htmlentities($matiere[$cpt]["libelle_long"])."".htmlentities($matiere[$cpt]["libelle_edition"])."
\n"); my_echo("
\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); if($debug_import_comptes=='y') { my_echo("DEBUG_MATIERE_1
matiere
\n"); my_print_r($matiere); my_echo("

\nDEBUG_MATIERE_2
\n"); } function get_nom_matiere($code) { global $matiere; $retour=$code; for($i=0;$iPersonnels"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("\n"); my_echo("
\n"); my_echo("
Analyse du fichier pour extraire les professeurs,..."); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("
\n"); my_echo("
\n"); $tab_champs_personnels=array("NOM_USAGE", "NOM_PATRONYMIQUE", "PRENOM", "SEXE", "CIVILITE", "DATE_NAISSANCE", "GRADE", "FONCTION"); $prof=array(); $i=0; foreach($sts_xml->DONNEES->INDIVIDUS->children() as $individu) { $prof[$i]=array(); //my_echo("\$individu->NOM_USAGE=".$individu->NOM_USAGE."
"); foreach($individu->attributes() as $key => $value) { $prof[$i][strtolower($key)]=trim(traite_utf8($value)); } // Champs de l'individu //$temoin_prof_princ=0; //$temoin_discipline=0; foreach($individu->children() as $key => $value) { if(in_array(strtoupper($key),$tab_champs_personnels)) { if(strtoupper($key)=='SEXE') { //$prof[$i]["sexe"]=trim(ereg_replace("[^1-2]","",$value)); $prof[$i]["sexe"]=trim(preg_replace("/[^1-2]/","",$value)); } elseif(strtoupper($key)=='CIVILITE') { //$prof[$i]["civilite"]=trim(ereg_replace("[^1-3]","",$value)); $prof[$i]["civilite"]=trim(preg_replace("/[^1-3]/","",$value)); } elseif((strtoupper($key)=='NOM_USAGE')|| (strtoupper($key)=='NOM_PATRONYMIQUE')|| (strtoupper($key)=='PRENOM')|| (strtoupper($key)=='NOM_USAGE')){ //$prof[$i][strtolower($key)]=trim(ereg_replace("[^A-Za-zÆæ¼½".$liste_caracteres_accentues." -]","",$value)); $prof[$i][strtolower($key)]=trim(preg_replace("/[^A-Za-zÆæ¼½".$liste_caracteres_accentues." -]/","",traite_utf8($value))); //my_echo("\$prof[$i][".strtolower($key)."]=".$prof[$i][strtolower($key)]."
"; } else { $prof[$i][strtolower($key)]=trim(traite_utf8($value)); } } /* //my_echo("$key
"; if(strtoupper($key)=='PROFS_PRINC') { //if($key=='PROFS_PRINC') { $temoin_prof_princ++; //my_echo("\$temoin_prof_princ=$temoin_prof_princ
"; } if(strtoupper($key)=='DISCIPLINES') { $temoin_discipline++; //my_echo("\$temoin_discipline=$temoin_discipline
"; } */ } if(isset($individu->PROFS_PRINC)) { //if($temoin_prof_princ>0) { $j=0; foreach($individu->PROFS_PRINC->children() as $prof_princ) { //$prof[$i]["prof_princ"]=array(); foreach($prof_princ->children() as $key => $value) { //$prof[$i]["prof_princ"][$j][strtolower($key)]=trim(traite_utf8($value)); // Traitement des accents et slashes dans les noms de divisions //$prof[$i]["prof_princ"][$j][strtolower($key)]=preg_replace("/[^a-zA-Z0-9_ -]/", "",strtr(remplace_accents(trim(traite_utf8($value))),"/","_")); $prof[$i]["prof_princ"][$j][strtolower($key)]=strtr(trim(traite_utf8($value)),"/","_"); if($clean_caract_classe=="y") { $prof[$i]["prof_princ"][$j][strtolower($key)]=preg_replace("/[^a-zA-Z0-9_ -]/", "",remplace_accents($prof[$i]["prof_princ"][$j][strtolower($key)])); } $temoin_au_moins_un_prof_princ="oui"; } $j++; } } //if($temoin_discipline>0) { if(isset($individu->DISCIPLINES)) { $j=0; foreach($individu->DISCIPLINES->children() as $discipline) { foreach($discipline->attributes() as $key => $value) { if(strtoupper($key)=='CODE') { $prof[$i]["disciplines"][$j]["code"]=trim(traite_utf8($value)); break; } } foreach($discipline->children() as $key => $value) { $prof[$i]["disciplines"][$j][strtolower($key)]=trim(traite_utf8($value)); } $j++; } } $i++; } my_echo("

$i personnels.

"); if($debug_import_comptes=='y') { my_echo("DEBUG_PROF_1
prof
\n"); my_print_r($prof); my_echo("

DEBUG_PROF_2
\n"); } my_echo("
\n"); my_echo("
\n"); my_echo("

Structures"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); my_echo("
Analyse du fichier pour extraire les divisions et associations profs/matières,..."); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("
\n"); my_echo("
\n"); $divisions=array(); $i=0; foreach($sts_xml->DONNEES->STRUCTURE->DIVISIONS->children() as $objet_division) { $divisions[$i]=array(); foreach($objet_division->attributes() as $key => $value) { if(strtoupper($key)=='CODE') { //$divisions[$i]['code']=trim(traite_utf8($value)); //$divisions[$i]['code']=trim(remplace_accents(traite_utf8($value))); // Traitement des accents et slashes dans les noms de divisions //$divisions[$i]['code']=preg_replace("/[^a-zA-Z0-9_ -]/", "",strtr(remplace_accents(trim(traite_utf8($value))),"/","_")); $divisions[$i]['code']=strtr(trim(traite_utf8($value)),"/","_"); if($clean_caract_classe=="y") { $divisions[$i]['code']=preg_replace("/[^a-zA-Z0-9_ -]/", "",remplace_accents($divisions[$i]['code'])); } //my_echo("

\$divisions[$i]['code']=".$divisions[$i]['code']."
"); break; } } // Champs de la division $j=0; foreach($objet_division->SERVICES->children() as $service) { foreach($service->attributes() as $key => $value) { $divisions[$i]["services"][$j][strtolower($key)]=trim(traite_utf8($value)); //my_echo("\$divisions[$i][\"services\"][$j][".strtolower($key)."]=trim(traite_utf8($value))
"); } $k=0; foreach($service->ENSEIGNANTS->children() as $enseignant) { foreach($enseignant->attributes() as $key => $value) { // //$divisions[$i]["services"][$j]["enseignants"][$k][strtolower($key)]=trim(traite_utf8($value)); if(strtoupper($key)=="ID") { $divisions[$i]["services"][$j]["enseignants"][$k]["id"]=trim(traite_utf8($value)); break; } } $k++; } $j++; } $i++; } my_echo("$i divisions.
\n"); my_echo("

\n"); if($debug_import_comptes=='y') { my_echo("DEBUG_DIV_1
divisions
\n"); my_print_r($divisions); my_echo("

DEBUG_DIV_2
\n"); } my_echo("
\n"); //==================================================== $tab_champs_groupe=array("LIBELLE_LONG"); my_echo("

Groupes"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); my_echo("
Analyse du fichier pour extraire les groupes..."); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("
\n"); my_echo("
\n"); $groupes=array(); $i=0; foreach($sts_xml->DONNEES->STRUCTURE->GROUPES->children() as $objet_groupe) { $groupes[$i]=array(); foreach($objet_groupe->attributes() as $key => $value) { if(strtoupper($key)=='CODE') { $groupes[$i]['code']=trim(traite_utf8($value)); //my_echo("

\$groupes[$i]['code']=".$groupes[$i]['code']."
"); break; } } // Champs enfants du groupe foreach($objet_groupe->children() as $key => $value) { if(in_array(strtoupper($key),$tab_champs_groupe)) { $groupes[$i][strtolower($key)]=trim(traite_utf8($value)); } } if((!isset($groupes[$i]['libelle_long']))||($groupes[$i]['libelle_long']=='')) { $groupes[$i]['libelle_long']=$groupes[$i]['code']; } $j=0; foreach($objet_groupe->DIVISIONS_APPARTENANCE->children() as $objet_division_apartenance) { foreach($objet_division_apartenance->attributes() as $key => $value) { $groupes[$i]["divisions"][$j][strtolower($key)]=strtr(trim(traite_utf8($value)),"/","_"); if($clean_caract_classe=="y") { $groupes[$i]["divisions"][$j][strtolower($key)]=preg_replace("/[^a-zA-Z0-9_ -]/", "",remplace_accents($groupes[$i]["divisions"][$j][strtolower($key)])); } } $j++; } $j=0; foreach($objet_groupe->SERVICES->children() as $service) { foreach($service->attributes() as $key => $value) { $groupes[$i]["service"][$j][strtolower($key)]=trim(traite_utf8($value)); // Remarque: Pour les divisions, c'est ["services"] au lieu de ["service"] // $divisions[$i]["services"][$j][strtolower($key)]=trim(traite_utf8($value)); } $k=0; foreach($service->ENSEIGNANTS->children() as $enseignant) { foreach($enseignant->attributes() as $key => $value) { // //$divisions[$i]["services"][$j]["enseignants"][$k][strtolower($key)]=trim(traite_utf8($value)); if(strtoupper($key)=="ID") { $groupes[$i]["service"][$j]["enseignant"][$k]["id"]=trim(traite_utf8($value)); break; } } $k++; } $j++; } $i++; } my_echo("$i groupes.
\n"); my_echo("

Terminé.

\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); if($debug_import_comptes=='y') { my_echo("DEBUG_GRP_1
groupes
\n"); my_print_r($groupes); my_echo("

DEBUG_GRP_2
\n"); } my_echo("
\n"); /* my_echo("DEBUG_PROF_1
prof
\n"); my_print_r($prof); my_echo("

DEBUG_PROF_2
\n"); my_echo("DEBUG_DIV_1
divisions
\n"); my_print_r($divisions); my_echo("

DEBUG_DIV_2
\n"); my_echo("DEBUG_GRP_1
groupes
\n"); my_print_r($groupes); my_echo("

DEBUG_GRP_2
\n"); */ my_echo("
Affichage des données PROFS,... extraites:"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("
\n"); my_echo("
\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); $cpt=0; while($cpt\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); // ============================================= // On ne retient que le premier prénom: 20071101 $tab_tmp_prenom=explode(" ",$prof[$cpt]["prenom"]); $prof[$cpt]["prenom"]=$tab_tmp_prenom[0]; // ============================================= my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); $cpt++; } my_echo("
 IdTypeSexeCiviliteNom_usageNom_patronymiquePrenomDate_naissanceGradeFonctionDisciplines
$cpt".$prof[$cpt]["id"]."".$prof[$cpt]["type"]."".$prof[$cpt]["sexe"]."".$prof[$cpt]["civilite"]."".$prof[$cpt]["nom_usage"]."".$prof[$cpt]["nom_patronymique"]."".$prof[$cpt]["prenom"]."".$prof[$cpt]["date_naissance"]."".$prof[$cpt]["grade"]."".$prof[$cpt]["fonction"]."\n"); if($prof[$cpt]["fonction"]=="ENS") { my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); for($j=0;$j\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); my_echo("\n"); } my_echo("
CodeLibelle_courtNb_heures
".$prof[$cpt]["disciplines"][$j]["code"]."".$prof[$cpt]["disciplines"][$j]["libelle_court"]."".$prof[$cpt]["disciplines"][$j]["nb_heures"]."
\n"); } my_echo("
\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); if($debug_import_comptes=='y') { my_echo("DEBUG_PROFbis_1
prof
\n"); my_print_r($prof); my_echo("

DEBUG_PROFbis_2
\n"); } $temoin_au_moins_une_matiere=""; $temoin_au_moins_un_prof=""; // Affichage des infos Enseignements et divisions: //my_echo("

Affichage des divisions

\n"); //my_echo("
Affichage des divisions
\n"); my_echo("
Affichage des divisions"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("
\n"); my_echo("
\n"); for($i=0;$i\$divisions[$i][\"code\"]=".$divisions[$i]["code"]."
\n"); //my_echo("

Classe de ".$divisions[$i]["code"]."

\n"); //my_echo("
Classe de ".$divisions[$i]["code"]."
\n"); my_echo("
Classe de ".$divisions[$i]["code"]); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("
\n"); my_echo("
    \n"); for($j=0;$j\n"); my_echo("
  • \n"); for($m=0;$m\n"); my_echo("Matière: ".$matiere[$m]["code_gestion"]."
    \n"); $temoin_au_moins_une_matiere="oui"; } } my_echo("
      \n"); for($k=0;$k\n"); my_echo("Enseignant: ".$prof[$m]["nom_usage"]." ".$prof[$m]["prenom"]); my_echo("\n"); $temoin_au_moins_un_prof="oui"; } } } my_echo("
    \n"); //my_echo("
    \n"); my_echo("
  • \n"); } my_echo("
\n"); //my_echo("

\n"); } my_echo("
\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("\n"); my_echo("\n"); my_echo("

Génération des CSV"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); my_echo("

Génération du CSV (F_WIND.txt) des profs"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); $cpt=0; //if($temoin_creation_fichiers!="non") {$fich=fopen("$dossiercsv/se3/f_wind.txt","w+");} if($temoin_creation_fichiers!="non") {$fich=fopen("$dossiercsv/f_wind.txt","w+");}else{$fich=FALSE;} while($cpt\n"); } $cpt++; } if($temoin_creation_fichiers!="non") { fclose($fich); } //my_echo("disk_total_space($dossiercsv)=".disk_total_space($dossiercsv)."
"); if($temoin_creation_fichiers!="non") { my_echo(""); } my_echo("

Vous pouvez copier/coller ces lignes dans un fichier texte pour effectuer l'import des comptes profs.

\n"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); //my_echo("

Génération d'un CSV du F_DIV pour SambaEdu3

\n"); //my_echo("

Génération d'un CSV du F_DIV pour SambaEdu3

\n"); //my_echo("

Génération d'un CSV du F_DIV pour SambaEdu3

\n"); my_echo("

Génération d'un CSV du F_DIV"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); //if($temoin_creation_fichiers!="non") {$fich=fopen("$dossiercsv/se3/f_div.txt","w+");} if($temoin_creation_fichiers!="non") {$fich=fopen("$dossiercsv/f_div.txt","w+");}else{$fich=FALSE;} for($i=0;$i\n"); } if($temoin_creation_fichiers!="non") { fclose($fich); } //my_echo("disk_total_space($dossiercsv)=".disk_total_space($dossiercsv)."
"); if($temoin_creation_fichiers!="non") { my_echo(""); } if($temoin_au_moins_un_prof_princ!="oui") { my_echo("

Il semble que votre fichier ne comporte pas l'information suivante:
Qui sont les profs principaux?
Cela n'empêche cependant pas l'import du CSV.

\n"); } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); //my_echo("

Génération d'un CSV du F_MEN pour SambaEdu3

\n"); //my_echo("

Génération d'un CSV du F_MEN pour SambaEdu3

\n"); //my_echo("

Génération d'un CSV du F_MEN pour SambaEdu3

\n"); my_echo("

Génération d'un CSV du F_MEN"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); if(($temoin_au_moins_une_matiere=="")||($temoin_au_moins_un_prof=="")) { my_echo("

Votre fichier ne comporte pas suffisamment d'informations pour générer ce CSV.
Il faut que les emplois du temps soient remontés vers STS pour que le fichier XML permette de générer ce CSV.

\n"); } else{ unset($tab_chaine); $tab_chaine=array(); //if($temoin_creation_fichiers!="non") {$fich=fopen("$dossiercsv/se3/f_men.txt","w+");} if($temoin_creation_fichiers!="non") {$fich=fopen("$dossiercsv/f_men.txt","w+");}else{$fich=FALSE;} for($i=0;$i\n"); $tab_chaine[]=$chaine; } } } } //if($_POST['se3_groupes']=='yes') { // PROBLEME: On crée des groupes avec tous les membres de la classe... //my_echo("
\n"); for($i=0;$iGroupe $i: \$grocod=$grocod
\n"); for($m=0;$m\n"); //my_echo("\$matiere[$m][\"code\"]=".$matiere[$m]["code"]." et \$groupes[$i][\"service\"][0][\"code_matiere\"]=".$groupes[$i]["service"][0]["code_matiere"]."
\n"); //+++++++++++++++++++++++++ //+++++++++++++++++++++++++ // PB: si on a un même groupe/regroupement pour plusieurs matières, on ne récupère que le premier // A FAIRE: Revoir le dispositif pour créer dans ce cas des groupes _ ou _ //+++++++++++++++++++++++++ //+++++++++++++++++++++++++ //if(isset($groupes[$i]["code_matiere"])) { // if($matiere[$m]["code"]==$groupes[$i]["code_matiere"]) { if(isset($groupes[$i]["service"][0]["code_matiere"])) { if($matiere[$m]["code"]==$groupes[$i]["service"][0]["code_matiere"]) { //$matimn=$programme[$k]["code_matiere"]; $matimn=$matiere[$m]["code_gestion"]; //my_echo("Trouvé: matière n°$m: \$matimn=$matimn
\n"); } } } //$groupes[$i]["enseignant"][$m]["id"] //$groupes[$i]["divisions"][$j]["code"] if((isset($matimn))&&($matimn!="")) { for($j=0;$j\n"); if(!isset($groupes[$i]["enseignant"])) { $chaine=$matimn."|".$elstco."|"; $tab_chaine[]=$chaine; } else{ if(count($groupes[$i]["enseignant"])==0) { //$chaine="$matimn;;$elstco"); $chaine=$matimn."|".$elstco."|"; /* if($fich) { fwrite($fich,html_entity_decode($chaine)."\n"); } my_echo($chaine."
\n"); */ $tab_chaine[]=$chaine; } else{ for($m=0;$m\n"); //$chaine="$matimn;P$numind;$elstco"; $chaine=$matimn."|".$elstco."|P".$numind; /* if($fich) { fwrite($fich,html_entity_decode($chaine)."\n"); } my_echo($chaine."
\n"); */ $tab_chaine[]=$chaine; } } } //my_echo($grocod.";".$groupes[$i]["divisions"][$j]["code"]."
\n"); } } } //} $tab2_chaine=array_unique($tab_chaine); //for($i=0;$i\n"); } } } if($fich) { fclose($fich); } if($temoin_creation_fichiers!="non") { //my_echo("disk_total_space($dossiercsv)=".disk_total_space($dossiercsv)."
"); my_echo(""); } } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); } } else { //my_echo("

ERREUR lors de l'ouverture du fichier ".$sts_xml_file['name']." (".$sts_xml_file['tmp_name'].").

\n"); my_echo("\n"); my_echo("

ERREUR lors de l'ouverture du fichier '$sts_xml_file'.

\n"); my_echo("
"); foreach(libxml_get_errors() as $xml_error) { my_echo($xml_error->message."
"); } my_echo("
"); libxml_clear_errors(); } if($temoin_creation_fichiers!="non") { my_echo(""); } // ========================================================= // Création d'une sauvegarde: // Problème avec l'emplacement dans lequel www-se3 peut écrire... //if($fich=fopen("/var/se3/save/sauvegarde_ldap.sh","w+")) { /* if($fich=fopen("/var/remote_adm/sauvegarde_ldap.sh","w+")) { fwrite($fich,'#!/bin/bash date=$(date +%Y%m%d-%H%M%S) #dossier_svg="/var/se3/save/sauvegarde_ldap_avant_import" dossier_svg="/var/remote_adm/sauvegarde_ldap_avant_import" mkdir -p $dossier_svg BASEDN=$(cat /etc/ldap/ldap.conf | grep "^BASE" | tr "\t" " " | sed -e "s/ \{2,\}/ /g" | cut -d" " -f2) ROOTDN=$(cat /etc/ldap/slapd.conf | grep "^rootdn" | tr "\t" " " | cut -d\'"\' -f2) PASSDN=$(cat /etc/ldap.secret) #source /etc/ssmtp/ssmtp.conf echo "Erreur lors de la sauvegarde de précaution effectuée avant import. Le $date" > /tmp/erreur_svg_prealable_ldap_${date}.txt # Le fichier d erreur est généré quoi qu il arrive, mais il n est expédié qu en cas de problème de sauvegarde /usr/bin/ldapsearch -xLLL -D $ROOTDN -w $PASSDN > $dossier_svg/ldap_${date}.ldif || mail root -s "Erreur sauvegarde LDAP" < /tmp/erreur_svg_prealable_ldap_${date}.txt rm -f /tmp/erreur_svg_prealable_ldap_${date}.txt '); fclose($fich); exec("/bin/bash /var/se3/save/sauvegarde_ldap.sh",$retour); } */ exec("/usr/bin/sudo $pathscripts/sauvegarde_ldap_avant_import.sh",$retour); // ========================================================= if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); my_echo("

Retour au menu.

\n"); $infos_corrections_gecos=""; my_echo("\n"); my_echo("\n"); my_echo("

Création des comptes professeurs"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo(""); my_echo("
\n"); if((!isset($prof))||(count($prof)==0)) { } else { $cpt=0; while($cptUid existant pour employeeNumber=$employeeNumber: $tab[0]
\n"); $uid=$tab[0]; if($tab[-1]=="people") { // ================================ // Vérification/correction du GECOS if($corriger_gecos_si_diff=='y') { $nom=remplace_accents(traite_espaces($prof[$cpt]["nom_usage"])); $prenom=remplace_accents(traite_espaces($prof[$cpt]["prenom"])); if($prof[$cpt]["sexe"]==1) {$sexe="M";}else{$sexe="F";} $naissance=$date; verif_et_corrige_gecos($uid,$nom,$prenom,$naissance,$sexe); } // ================================ // ================================ // Vérification/correction du givenName if($corriger_givenname_si_diff=='y') { $prenom=strtolower(remplace_accents(traite_espaces($prof[$cpt]["prenom"]))); //my_echo("Test de la correction du givenName: verif_et_corrige_givenname($uid,$prenom)
\n"); verif_et_corrige_givenname($uid,$prenom); } // ================================ // ================================ // Vérification/correction du pseudo //if($annuelle=="y") { if($controler_pseudo=='y') { $nom=remplace_accents(traite_espaces($prof[$cpt]["nom_usage"])); $prenom=strtolower(remplace_accents(traite_espaces($prof[$cpt]["prenom"]))); verif_et_corrige_pseudo($uid,$nom,$prenom); } //} // ================================ } elseif($tab[-1]=="trash") { // On restaure le compte de Trash puisqu'il y est avec le même employeeNumber my_echo("Restauration du compte depuis la branche Trash: \n"); if(recup_from_trash($uid)) { my_echo("SUCCES"); } else { my_echo("ECHEC"); $nb_echecs++; } my_echo(".
\n"); } } else{ my_echo("

Pas encore d'uid pour employeeNumber=$employeeNumber
\n"); //$prenom=remplace_accents($prof[$cpt]["prenom"]); //$nom=remplace_accents($prof[$cpt]["nom_usage"]); //$prenom=remplace_accents(traite_espaces($prof[$cpt]["prenom"])); //$nom=remplace_accents(traite_espaces($prof[$cpt]["nom_usage"])); $prenom=traite_espaces($prof[$cpt]["prenom"]); $nom=traite_espaces($prof[$cpt]["nom_usage"]); if($uid=verif_nom_prenom_sans_employeeNumber($nom,$prenom)) { my_echo("$nom $prenom est dans l'annuaire sans employeeNumber: $uid
\n"); my_echo("Mise à jour avec l'employeeNumber $employeeNumber: \n"); //$comptes_avec_employeeNumber_mis_a_jour++; if($simulation!="y") { $attributs=array(); $attributs["employeeNumber"]=$employeeNumber; if(modify_attribut ("uid=$uid", "people", $attributs, "add")) { my_echo("SUCCES"); $comptes_avec_employeeNumber_mis_a_jour++; $tab_comptes_avec_employeeNumber_mis_a_jour[]=$uid; } else{ my_echo("ECHEC"); $nb_echecs++; } my_echo(".
\n"); } else{ my_echo("SIMULATION"); $comptes_avec_employeeNumber_mis_a_jour++; $tab_comptes_avec_employeeNumber_mis_a_jour[]=$uid; } } else{ my_echo("Il n'y a pas de $nom $prenom dans l'annuaire sans employeeNumber
\n"); my_echo("C'est donc un nouveau compte.
\n"); //$nouveaux_comptes++; if($temoin_f_uid=='y') { // On cherche une ligne correspondant à l'employeeNumber dans le F_UID.TXT if($uid=get_uid_from_f_uid_file($employeeNumber)) { // On controle si ce login est deja employe $attribut=array("uid"); $verif1=get_tab_attribut("people", "uid=$uid", $attribut); $verif2=get_tab_attribut("trash", "uid=$uid", $attribut); //if((count($verif1)>0)||(count($verif2)>0)) { if(count($verif1)>0) { // Le login proposé est déjà dans l'annuaire my_echo("Le login proposé $uid est déjà dans l'annuaire (branche People).
\n"); $uid=""; } elseif(count($verif2)>0) { // Le login proposé est déjà dans l'annuaire my_echo("Le login proposé $uid est déjà dans l'annuaire (branche Trash).
\n"); $uid=""; } else { my_echo("Ajout du professeur $prenom $nom ($uid): "); } } if($uid=='') { // Création d'un uid: if(!$uid=creer_uid($nom,$prenom)) { $temoin_erreur_prof="o"; my_echo("ECHEC: Problème lors de la création de l'uid...
\n"); if("$error"!="") { my_echo("$error
\n"); } $nb_echecs++; } else { my_echo("Ajout du professeur $prenom $nom ($uid): "); } } if(($uid!='')&&($temoin_erreur_prof!="o")) { if($prof[$cpt]["sexe"]==1) {$sexe="M";} else {$sexe="F";} $naissance=$date; switch ($pwdPolicy) { case 0: // date de naissance $password=$naissance; break; case 1: // semi-aleatoire $out=array(); exec("/usr/share/se3/sbin/gen_pwd.sh -s", $out); $password=$out[0]; break; case 2: // aleatoire $out=array(); exec("/usr/share/se3/sbin/gen_pwd.sh -a", $out); $password=$out[0]; break; } if($simulation!="y") { if(add_user($uid,$nom,$prenom,$sexe,$naissance,$password,$employeeNumber)) { my_echo("SUCCES"); $tab_nouveaux_comptes[]=$uid; $listing[$nouveaux_comptes]['nom']="$nom"; $listing[$nouveaux_comptes]['pre']="$prenom"; $listing[$nouveaux_comptes]['cla']="prof"; $listing[$nouveaux_comptes]['uid']="$uid"; $listing[$nouveaux_comptes]['pwd']="$password"; $nouveaux_comptes++; } else{ my_echo("ECHEC"); $nb_echecs++; $temoin_erreur_prof="o"; } } else{ my_echo("SIMULATION"); $nouveaux_comptes++; $tab_nouveaux_comptes[]=$uid; } my_echo("
\n"); } } else { // On n'a pas de F_UID.TXT pour imposer des logins // Création d'un uid: if(!$uid=creer_uid($nom,$prenom)) { $temoin_erreur_prof="o"; my_echo("ECHEC: Problème lors de la création de l'uid...
\n"); if("$error"!="") { my_echo("$error
\n"); } $nb_echecs++; } else{ //$sexe=$prof[$cpt]["sexe"]; if($prof[$cpt]["sexe"]==1) {$sexe="M";}else{$sexe="F";} $naissance=$date; switch ($pwdPolicy) { case 0: // date de naissance $password=$naissance; break; case 1: // semi-aleatoire $out=array(); exec("/usr/share/se3/sbin/gen_pwd.sh -s", $out); $password=$out[0]; break; case 2: // aleatoire $out=array(); exec("/usr/share/se3/sbin/gen_pwd.sh -a", $out); $password=$out[0]; break; } my_echo("Ajout du professeur $prenom $nom ($uid): "); if($simulation!="y") { if(add_user($uid,$nom,$prenom,$sexe,$naissance,$password,$employeeNumber)) { my_echo("SUCCES"); $tab_nouveaux_comptes[]=$uid; $listing[$nouveaux_comptes]['nom']="$nom"; $listing[$nouveaux_comptes]['pre']="$prenom"; $listing[$nouveaux_comptes]['cla']="prof"; $listing[$nouveaux_comptes]['uid']="$uid"; $listing[$nouveaux_comptes]['pwd']="$password"; $nouveaux_comptes++; } else{ my_echo("ECHEC"); $nb_echecs++; $temoin_erreur_prof="o"; } } else{ my_echo("SIMULATION"); $nouveaux_comptes++; $tab_nouveaux_comptes[]=$uid; } my_echo("
\n"); } } } } if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} if($temoin_erreur_prof!="o") { // Ajout au groupe Profs: $attribut=array("memberuid"); $memberUid=get_tab_attribut("groups", "(&(cn=Profs)(memberuid=$uid))", $attribut); if(count($memberUid)>0) { my_echo("$uid est déjà membre du groupe Profs.
\n"); } else{ my_echo("Ajout de $uid au groupe Profs: "); if($simulation!="y") { $attributs=array(); $attributs["memberuid"]=$uid; if(modify_attribut ("cn=Profs", "groups", $attributs, "add")) { my_echo("SUCCES"); } else{ my_echo("ECHEC"); $nb_echecs++; } } else{ my_echo("SIMULATION"); } my_echo(".
\n"); } } //$chaine="P".$prof[$cpt]["id"]."|".$prof[$cpt]["nom_usage"]."|".$prof[$cpt]["prenom"]."|".$date."|".$prof[$cpt]["sexe"]; } $cpt++; } } //if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} //my_echo("
\n"); // Récupération des comptes de no_Trash_Profs /* $attribut=array("memberuid"); $membre_no_Trash_Profs=get_tab_attribut("groups", "cn=no_Trash_Profs", $attribut); if(count($membre_no_Trash_Profs)>0) { my_echo("

Comptes à préserver de la corbeille (Profs)"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); for($loop=0;$loopContrôle du membre $uid du groupe no_Trash_Profs:
"); // Le membre de no_Trash_Profs existe-t-il encore dans People: // Si oui, on contrôle s'il est dans Profs... si nécessaire on l'y met // Sinon, on le supprime de no_Trash_Profs $attribut=array("uid"); $compte_existe=get_tab_attribut("people", "uid=$uid", $attribut); if(count($compte_existe)==0) { // Le compte n'existe plus... et on a oublié de nettoyer no_Trash_Profs // Normalement, cela n'arrive pas: Lors de la suppression d'un compte, le ménage est normalement fait dans les groupes my_echo("Le compte $uid n'existe plus.
Suppression de l'appartenance au groupe no_Trash_Profs: "); if($simulation!="y") { $attributs=array(); $attributs["memberuid"]=$uid; if(modify_attribut ("cn=Profs", "groups", $attributs, "del")) { my_echo("SUCCES"); } else{ my_echo("ECHEC"); $nb_echecs++; } } else{ my_echo("SIMULATION"); } my_echo(".
\n"); } else { // On contrôle si le compte est membre du groupe Profs $attribut=array("memberuid"); $memberUid=get_tab_attribut("groups", "(&(cn=Profs)(memberuid=$uid))", $attribut); if(count($memberUid)>0) { my_echo("$uid est déjà membre du groupe Profs.
\n"); } else{ my_echo("Ajout de $uid au groupe Profs: "); if($simulation!="y") { $attributs=array(); $attributs["memberuid"]=$uid; if(modify_attribut ("cn=Profs", "groups", $attributs, "add")) { my_echo("SUCCES"); } else{ my_echo("ECHEC"); $nb_echecs++; } } else{ my_echo("SIMULATION"); } my_echo(".
\n"); } } } my_echo("
\n"); } */ if(count($tab_no_Trash_prof)>0) { my_echo("

Comptes à préserver de la corbeille (Profs)"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); for($loop=0;$loop"); if($uid!="") { my_echo("

Contrôle du membre $uid titulaire du droit no_Trash_user:
"); // Le membre de no_Trash_user existe-t-il encore dans People: // Si oui, on contrôle s'il est dans Profs... si nécessaire on l'y met // Sinon, on le supprime de no_Trash_user $attribut=array("uid"); $compte_existe=get_tab_attribut("people", "uid=$uid", $attribut); if(count($compte_existe)==0) { // Le compte n'existe plus... et on a oublié de nettoyer no_Trash_user my_echo("Le compte $uid n'existe plus.
Suppression de l'appartenance au droit no_Trash_user: "); if($simulation!="y") { $attributs=array(); $attributs["member"]="uid=$uid,".$dn["people"]; if(modify_attribut("cn=no_Trash_user", "rights", $attributs, "del")) { my_echo("SUCCES"); } else{ my_echo("ECHEC"); $nb_echecs++; } } else{ my_echo("SIMULATION"); } my_echo(".
\n"); } else { // On contrôle si le compte est membre du groupe Profs $attribut=array("memberuid"); $memberUid=get_tab_attribut("groups", "(&(cn=Profs)(memberuid=$uid))", $attribut); if(count($memberUid)>0) { my_echo("$uid est déjà membre du groupe Profs.
\n"); } else{ my_echo("$uid n'est plus membre du groupe Profs.
Retablissement de l'appartenance de $uid au groupe Profs: "); if($simulation!="y") { $attributs=array(); $attributs["memberuid"]=$uid; if(modify_attribut ("cn=Profs", "groups", $attributs, "add")) { my_echo("SUCCES"); } else{ my_echo("ECHEC"); $nb_echecs++; } } else{ my_echo("SIMULATION"); } my_echo(".
\n"); } } } } my_echo("

\n"); } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("\n"); my_echo("

Retour au menu.

\n"); my_echo("\n"); my_echo("\n"); //my_echo("

Création des comptes élèves

\n"); //my_echo("

Création des comptes élèves

\n"); my_echo("

Création des comptes élèves"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo(""); my_echo("
\n"); $tab_classe=array(); $cpt_classe=-1; for($k=0;$kNouvelle classe: $div

\n"); $tab_classe[$cpt_classe]=array(); $tab_classe[$cpt_classe]["nom"]=$div; $tab_classe[$cpt_classe]["creer_classe"]="y"; $tab_classe[$cpt_classe]["eleves"]=array(); } } else{ // La classe existe déjà dans l'annuaire. $temoin_classe=""; for($i=0;$iClasse existante: $div

\n"); $tab_classe[$cpt_classe]=array(); $tab_classe[$cpt_classe]["nom"]=$div; $tab_classe[$cpt_classe]["creer_classe"]="n"; $tab_classe[$cpt_classe]["eleves"]=array(); } } // Pour chaque élève: $employeeNumber=$eleve[$numero]["numero"]; if($tab=verif_employeeNumber($employeeNumber)) { my_echo("

Uid existant pour employeeNumber=$employeeNumber: $tab[0]
\n"); $uid=$tab[0]; if($tab[-1]=="people") { // ================================ // Vérification/correction du GECOS if($corriger_gecos_si_diff=='y') { $nom=remplace_accents(traite_espaces($eleve[$numero]["nom"])); $prenom=remplace_accents(traite_espaces($eleve[$numero]["prenom"])); $sexe=$eleve[$numero]["sexe"]; $naissance=$eleve[$numero]["date"]; verif_et_corrige_gecos($uid,$nom,$prenom,$naissance,$sexe); } // ================================ // ================================ // Vérification/correction du givenName if($corriger_givenname_si_diff=='y') { $prenom=strtolower(remplace_accents(traite_espaces($eleve[$numero]["prenom"]))); //my_echo("Test de la correction du givenName: verif_et_corrige_givenname($uid,$prenom)
\n"); verif_et_corrige_givenname($uid,$prenom); } // ================================ // ================================ // Vérification/correction du pseudo //if($annuelle=="y") { if($controler_pseudo=='y') { $nom=remplace_accents(traite_espaces($eleve[$numero]["nom"])); $prenom=strtolower(remplace_accents(traite_espaces($eleve[$numero]["prenom"]))); verif_et_corrige_pseudo($uid,$nom,$prenom); } //} // ================================ } elseif($tab[-1]=="trash") { // On restaure le compte de Trash puisqu'il y est avec le même employeeNumber my_echo("Restauration du compte depuis la branche Trash: \n"); if(recup_from_trash($uid)) { my_echo("SUCCES"); } else { my_echo("ECHEC"); $nb_echecs++; } my_echo(".
\n"); } } else{ my_echo("

Pas encore d'uid pour employeeNumber=$employeeNumber
\n"); //$prenom=remplace_accents($eleve[$numero]["prenom"]); //$nom=remplace_accents($eleve[$numero]["nom"]); //$prenom=remplace_accents(traite_espaces($eleve[$numero]["prenom"])); //$nom=remplace_accents(traite_espaces($eleve[$numero]["nom"])); $prenom=traite_espaces($eleve[$numero]["prenom"]); $nom=traite_espaces($eleve[$numero]["nom"]); if($uid=verif_nom_prenom_sans_employeeNumber($nom,$prenom)) { my_echo("$nom $prenom est dans l'annuaire sans employeeNumber: $uid
\n"); my_echo("Mise à jour avec l'employeeNumber $employeeNumber: \n"); //$comptes_avec_employeeNumber_mis_a_jour++; if($simulation!="y") { $attributs=array(); $attributs["employeeNumber"]=$employeeNumber; if(modify_attribut ("uid=$uid", "people", $attributs, "add")) { my_echo("SUCCES"); $comptes_avec_employeeNumber_mis_a_jour++; $tab_comptes_avec_employeeNumber_mis_a_jour[]=$uid; } else{ my_echo("ECHEC"); $nb_echecs++; } } else{ my_echo("SIMULATION"); $comptes_avec_employeeNumber_mis_a_jour++; $tab_comptes_avec_employeeNumber_mis_a_jour[]=$uid; } my_echo(".
\n"); } else{ my_echo("Il n'y a pas de $nom $prenom dans l'annuaire sans employeeNumber
\n"); my_echo("C'est donc un nouveau compte.
\n"); //$nouveaux_comptes++; $uid=""; if($temoin_f_uid=='y') { // On cherche une ligne correspondant à l'employeeNumber dans le F_UID.TXT if($uid=get_uid_from_f_uid_file($employeeNumber)) { // On controle si ce login est deja employe $attribut=array("uid"); $verif1=get_tab_attribut("people", "uid=$uid", $attribut); $verif2=get_tab_attribut("trash", "uid=$uid", $attribut); //if((count($verif1)>0)||(count($verif2)>0)) { if(count($verif1)>0) { // Le login proposé est déjà dans l'annuaire my_echo("Le login proposé $uid est déjà dans l'annuaire (branche People).
\n"); $uid=""; } elseif(count($verif2)>0) { // Le login proposé est déjà dans l'annuaire my_echo("Le login proposé $uid est déjà dans l'annuaire (branche Trash).
\n"); $uid=""; } else { my_echo("Ajout de l'élève $prenom $nom ($uid): "); } } if($uid=='') { // Création d'un uid: if(!$uid=creer_uid($nom,$prenom)) { $temoin_erreur_eleve="o"; my_echo("ECHEC: Problème lors de la création de l'uid...
\n"); if("$error"!="") { my_echo("$error
\n"); } $nb_echecs++; } else { my_echo("Ajout de l'élève $prenom $nom ($uid): "); } } if(($uid!='')&&($temoin_erreur_eleve!="o")) { $sexe=$eleve[$numero]["sexe"]; $naissance=$eleve[$numero]["date"]; $ele_div=$eleve[$numero]['division']; switch ($pwdPolicy) { case 0: // date de naissance $password=$naissance; break; case 1: // semi-aleatoire $out=array(); exec("/usr/share/se3/sbin/gen_pwd.sh -s", $out); $password=$out[0]; break; case 2: // aleatoire $out=array(); exec("/usr/share/se3/sbin/gen_pwd.sh -a", $out); $password=$out[0]; break; } if($simulation!="y") { # DBG system ("echo 'add_suser : $uid,$nom,$prenom,$sexe,$naissance,$password,$employeeNumber' >> /tmp/comptes.log"); if(add_user($uid,$nom,$prenom,$sexe,$naissance,$password,$employeeNumber)) { my_echo("SUCCES"); $tab_nouveaux_comptes[]=$uid; $listing[$nouveaux_comptes]['nom']="$nom"; $listing[$nouveaux_comptes]['pre']="$prenom"; $listing[$nouveaux_comptes]['cla']="$ele_div"; $listing[$nouveaux_comptes]['uid']="$uid"; $listing[$nouveaux_comptes]['pwd']="$password"; $nouveaux_comptes++; } else{ my_echo("ECHEC"); $temoin_erreur_eleve="o"; $nb_echecs++; } } else{ my_echo("SIMULATION"); $nouveaux_comptes++; $tab_nouveaux_comptes[]=$uid; } my_echo("
\n"); } } else { // Pas de F_UID.TXT fourni pour imposer des logins. /* if(strtolower($nom)=="andro") { $f_tmp=fopen("/tmp/debug_accents.txt","a+"); fwrite($f_tmp,"creer_uid($nom,$prenom)\n"); fclose($f_tmp); } */ // Création d'un uid: if(!$uid=creer_uid($nom,$prenom)) { $temoin_erreur_eleve="o"; my_echo("ECHEC: Problème lors de la création de l'uid...
\n"); if("$error"!="") { my_echo("$error
\n"); } $nb_echecs++; } else{ /* // Récupération du premier uidNumber libre: C'EST FAIT DANS add_user() $uidNumber=get_first_free_uidNumber(); // AJOUTER DES TESTS SUR LE FAIT QU'IL RESTE OU NON DES uidNumber dispo... */ $sexe=$eleve[$numero]["sexe"]; $naissance=$eleve[$numero]["date"]; $ele_div=$eleve[$numero]["division"]; switch ($pwdPolicy) { case 0: // date de naissance $password=$naissance; break; case 1: // semi-aleatoire $out=array(); exec("/usr/share/se3/sbin/gen_pwd.sh -s", $out); $password=$out[0]; break; case 2: // aleatoire $out=array(); exec("/usr/share/se3/sbin/gen_pwd.sh -a", $out); $password=$out[0]; break; } my_echo("Ajout de l'élève $prenom $nom ($uid): "); if($simulation!="y") { # DBG system ("echo 'add_suser : $uid,$nom,$prenom,$sexe,$naissance,$password,$employeeNumber' >> /tmp/comptes.log"); /* if(strtolower($nom)=="andro") { $f_tmp=fopen("/tmp/debug_accents.txt","a+"); fwrite($f_tmp,"add_user($uid,$nom,$prenom,$sexe,$naissance,$password,$employeeNumber)\n"); fclose($f_tmp); } */ if(add_user($uid,$nom,$prenom,$sexe,$naissance,$password,$employeeNumber)) { my_echo("SUCCES"); $tab_nouveaux_comptes[]=$uid; $listing[$nouveaux_comptes]['nom']="$nom"; $listing[$nouveaux_comptes]['pre']="$prenom"; $listing[$nouveaux_comptes]['cla']="$ele_div"; $listing[$nouveaux_comptes]['uid']="$uid"; $listing[$nouveaux_comptes]['pwd']="$password"; $nouveaux_comptes++; } else{ my_echo("ECHEC"); $temoin_erreur_eleve="o"; $nb_echecs++; } } else{ my_echo("SIMULATION"); $nouveaux_comptes++; $tab_nouveaux_comptes[]=$uid; } my_echo("
\n"); } } } } if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} if($temoin_erreur_eleve!="o") { // Ajout au groupe Eleves: $attribut=array("memberuid"); $memberUid=get_tab_attribut("groups", "(&(cn=Eleves)(memberuid=$uid))", $attribut); if(count($memberUid)>0) { my_echo("$uid est déjà membre du groupe Eleves.
\n"); } else{ my_echo("Ajout de $uid au groupe Eleves: "); $attributs=array(); $attributs["memberuid"]=$uid; if($simulation!="y") { if(modify_attribut ("cn=Eleves", "groups", $attributs, "add")) { my_echo("SUCCES"); } else{ my_echo("ECHEC"); $nb_echecs++; } } else{ my_echo("SIMULATION"); } my_echo(".
\n"); } // Témoin pour repérer les appartenances à plusieurs classes $temoin_plusieurs_classes="n"; // Ajout de l'élève au tableau de la classe: $attribut=array("memberuid"); $memberUid=get_tab_attribut("groups", "(&(cn=Classe_".$prefix."$div)(memberuid=$uid))", $attribut); if(count($memberUid)>0) { my_echo("$uid est déjà membre de la classe $div.
\n"); // Ajout d'un test: // L'élève est-il membre d'autres classes. $attribut=array("memberuid"); $test_memberUid=get_tab_attribut("groups", "(&(cn=Classe_*)(memberuid=$uid))", $attribut); if(count($test_memberUid)>1) { $temoin_plusieurs_classes="y"; } } else{ my_echo("Ajout de $uid au tableau de la classe $div.
\n"); //$tab_classe[$cpt_classe]["eleves"][]=$uid; // PROBLEME: Avec l'import XML, les élèves ne sont jamais triés par classes... et ce n'est le cas dans l'import CSV que si on a fait le tri dans ce sens // Recherche de l'indice dans tab_classe $ind_classe=-1; for($i=0;$i0) { $temoin_plusieurs_classes="y"; } } // Ajout d'un test: // L'élève est-il membre d'autres classes. if($temoin_plusieurs_classes=="y") { $attribut=array("cn"); $cn_classes_de_l_eleve=get_tab_attribut("groups", "(&(cn=Classe_*)(memberuid=$uid))", $attribut); if(count($cn_classes_de_l_eleve)>0) { for($loop=0;$loopSUCCES"); } else{ my_echo("ECHEC"); $nb_echecs++; } } else{ my_echo("SIMULATION"); } my_echo(".
\n"); } } } } } //my_echo("".$chaine."
\n"); my_echo("

\n"); } if(count($tab_no_Trash_eleve)>0) { my_echo("

Comptes à préserver de la corbeille (Eleves)"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); for($loop=0;$loop"); if($uid!="") { my_echo("

Contrôle du membre $uid titulaire du droit no_Trash_user:
"); // Le membre de no_Trash_user existe-t-il encore dans People: // Si oui, on contrôle s'il est dans Eleves... si nécessaire on l'y met // Sinon, on le supprime de no_Trash_user $attribut=array("uid"); $compte_existe=get_tab_attribut("people", "uid=$uid", $attribut); if(count($compte_existe)==0) { // Le compte n'existe plus... et on a oublié de nettoyer no_Trash_user my_echo("Le compte $uid n'existe plus.
Suppression de l'association au droit no_Trash_user: "); if($simulation!="y") { $attributs=array(); $attributs["member"]="uid=$uid,".$dn["people"]; if(modify_attribut("cn=no_Trash_user", "rights", $attributs, "del")) { my_echo("SUCCES"); } else{ my_echo("ECHEC"); $nb_echecs++; } } else{ my_echo("SIMULATION"); } my_echo(".
\n"); } else { // On contrôle si le compte est membre du groupe Eleves $attribut=array("memberuid"); $memberUid=get_tab_attribut("groups", "(&(cn=Eleves)(memberuid=$uid))", $attribut); if(count($memberUid)>0) { my_echo("$uid est déjà membre du groupe Eleves.
\n"); } else{ //my_echo("Ajout de $uid au groupe Eleves: "); my_echo("$uid n'est plus membre du groupe Eleves.
Retablissement de l'appartenance de $uid au groupe Eleves: "); if($simulation!="y") { $attributs=array(); $attributs["memberuid"]=$uid; if(modify_attribut ("cn=Eleves", "groups", $attributs, "add")) { my_echo("SUCCES"); } else{ my_echo("ECHEC"); $nb_echecs++; } } else{ my_echo("SIMULATION"); } my_echo(".
\n"); } } } } my_echo("

\n"); } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); if($simulation=="y") { my_echo("

Retour au menu.

\n"); my_echo("\n"); //my_echo("

Rapport final de simulation

"); my_echo("

Rapport final de simulation"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); my_echo(""); my_echo("

Fin de la simulation!

\n"); $chaine=""; if($nouveaux_comptes==0) { //my_echo("

Aucun nouveau compte ne serait créé.

\n"); $chaine.="

Aucun nouveau compte ne serait créé.

\n"; } elseif($nouveaux_comptes==1) { //my_echo("

$nouveaux_comptes nouveau compte serait créé: $tab_nouveaux_comptes[0]

\n"); $chaine.="

$nouveaux_comptes nouveau compte serait créé: $tab_nouveaux_comptes[0]

\n"; } else{ /* my_echo("

$nouveaux_comptes nouveaux comptes seraient créés: "); my_echo($tab_nouveaux_comptes[0]); for($i=1;$i\n"); my_echo("

Attention: Si un nom de compte est en doublon dans les nouveaux comptes, c'est un bug de la simulation.
Le problème ne se produira pas en mode création.

\n"); */ $chaine.=$tab_nouveaux_comptes[0]; for($i=1;$iAucun compte existant sans employeeNumber n'aurait été récupéré/corrigé.

\n"); $chaine.="

Aucun compte existant sans employeeNumber n'aurait été récupéré/corrigé.

\n"; } elseif($comptes_avec_employeeNumber_mis_a_jour==1) { //my_echo("

$comptes_avec_employeeNumber_mis_a_jour compte existant sans employeeNumber aurait été récupéré/corrigé (son employeeNumber serait maintenant renseigné): $tab_comptes_avec_employeeNumber_mis_a_jour[0]

\n"); $chaine.="

$comptes_avec_employeeNumber_mis_a_jour compte existant sans employeeNumber aurait été récupéré/corrigé (son employeeNumber serait maintenant renseigné): $tab_comptes_avec_employeeNumber_mis_a_jour[0]

\n"; } else{ /* my_echo("

$comptes_avec_employeeNumber_mis_a_jour comptes existants sans employeeNumber auraient été récupérés/corrigés (leur employeeNumber serait maintenant renseigné): "); my_echo("$tab_comptes_avec_employeeNumber_mis_a_jour[0]"); for($i=1;$i\n"); */ $chaine.="

$comptes_avec_employeeNumber_mis_a_jour comptes existants sans employeeNumber auraient été récupérés/corrigés (leur employeeNumber serait maintenant renseigné): "; $chaine.="$tab_comptes_avec_employeeNumber_mis_a_jour[0]"; for($i=1;$iERREUR lors de l'envoi du rapport par mail.

\n"); } else { my_echo("

MAIL: La configuration mail ne permet pas d'expédier le rapport.
Consultez/renseignez le menu Informations système/Actions sur le serveur/Configurer l'expédition des mails.

\n"); } } else { // Cas du LCS $adressedestination="admin@$domain"; $sujet="[$domain] Rapport de "; if($simulation=="y") {$sujet.="simulation de ";} $sujet.="création de comptes"; $message="Import du $debut_import\n"; $message.="$chaine\n"; $message.="\n"; $message.="Vous pouvez consulter le rapport détaillé à l'adresse $echo_http_file\n"; $entete="From: root@$domain"; mail("$adressedestination", "$sujet", "$message", "$entete") or my_echo("

ERREUR lors de l'envoi du rapport par mail.

\n"); } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("

Retour.

\n"); my_echo("\n"); my_echo("
\n"); my_echo("\n\n"); // Renseignement du témoin de mise à jour terminée. $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'"; $res1=mysql_query($sql); if(mysql_num_rows($res1)==0) { $sql="INSERT INTO params SET name='imprt_cmpts_en_cours',value='n'"; $res0=mysql_query($sql); } else{ $sql="UPDATE params SET value='n' WHERE name='imprt_cmpts_en_cours'"; $res0=mysql_query($sql); } exit(); } // Création des groupes my_echo("

Retour au menu.

\n"); my_echo("\n"); my_echo("\n"); //my_echo("

Création des groupes Classes et Equipes

\n"); //my_echo("

Création des groupes Classes et Equipes

\n"); my_echo("

Création des groupes Classes et Equipes"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo(""); my_echo("
\n"); // Les groupes classes pour commencer: for($i=0;$i"); if($tab_classe[$i]["creer_classe"]=="y") { $attributs=array(); $attributs["cn"]="Classe_".$prefix."$div"; //$attributs["objectClass"]="top"; // MODIF: boireaus 20070728 $attributs["objectClass"][0]="top"; $attributs["objectClass"][1]="posixGroup"; //$attributs["objectClass"][2]="sambaGroupMapping"; //$attributs["objectClass"]="posixGroup"; $gidNumber=get_first_free_gidNumber(); if($gidNumber!=false) { $attributs["gidNumber"]="$gidNumber"; // Ou récupérer un nom long du fichier de STS... $attributs["description"]="$div"; //my_echo("

Création du groupe classe Classe_".$prefix."$div: "); my_echo("Création du groupe classe Classe_".$prefix."$div: "); if(add_entry ("cn=Classe_".$prefix."$div", "groups", $attributs)) { /* unset($attributs); $attributs=array(); $attributs["objectClass"]="posixGroup"; if(modify_attribut("cn=Classe_".$prefix."$div","groups", $attributs, "add")) { */ my_echo("SUCCES"); //"cn=Classe_".$prefix."$div" if ($servertype=="SE3") { //my_echo("
/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Classe_".$prefix."$div Classe_".$prefix."$div \"$div\""); $resultat=exec("/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Classe_".$prefix."$div Classe_".$prefix."$div \"$div\"", $retour); //for($s=0;$s\n"); //} } /* } else{ my_echo("ECHEC"); $temoin_classe="PROBLEME"; $nb_echecs++; } */ } else{ my_echo("ECHEC"); $temoin_classe="PROBLEME"; $nb_echecs++; } my_echo("
\n"); } else{ my_echo("ECHEC Il n'y a plus de gidNumber disponible.
\n"); $temoin_classe="PROBLEME"; $nb_echecs++; } if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } if("$temoin_classe"=="") { my_echo("Ajout de membres au groupe Classe_".$prefix."$div: "); /* $attribut=array("memberUid"); $tabtmp=get_tab_attribut("groups", "cn=Classe_".$prefix."$div", $attribut); */ for($j=0;$j$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } my_echo(" (".count($tab_classe[$i]["eleves"]).")\n"); if($chrono=='y') {my_echo("
Fin: ".date_et_heure()."
\n");} } my_echo("

\n"); // Création de l'Equipe? //for($i=0;$i"); $attribut=array("cn"); $tabtmp=get_tab_attribut("groups", "cn=Equipe_".$prefix."$div", $attribut); if(count($tabtmp)==0) { $attributs=array(); $attributs["cn"]="Equipe_".$prefix."$div"; // MODIF: boireaus 20070728 //$attributs["objectClass"]="top"; $attributs["objectClass"][0]="top"; //$attributs["objectClass"]="posixGroup"; //$attributs["objectClass"]="groupOfNames"; // On ne peut pas avoir un tableau associatif avec plusieurs fois objectClass if($type_Equipe_Matiere=="groupOfNames") { // Ou récupérer un nom long du fichier de STS... $attributs["description"]="$div"; // MODIF: boireaus 20070728 $attributs["objectClass"][1]="groupOfNames"; my_echo("Création de l'équipe Equipe_".$prefix."$div: "); if(add_entry ("cn=Equipe_".$prefix."$div", "groups", $attributs)) { /* unset($attributs); $attributs=array(); $attributs["objectClass"]="groupOfNames"; //$attributs["objectClass"]="posixGroup"; if(modify_attribut("cn=Equipe_".$prefix."$div","groups", $attributs, "add")) { */ my_echo("SUCCES"); /* } else{ my_echo("ECHEC"); $temoin_equipe="PROBLEME"; $nb_echecs++; } */ //my_echo("SUCCES"); } else{ my_echo("ECHEC"); $temoin_equipe="PROBLEME"; $nb_echecs++; } } else{ // Les Equipes sont posix $gidNumber=get_first_free_gidNumber(); if($gidNumber!=false) { $attributs["gidNumber"]="$gidNumber"; // Ou récupérer un nom long du fichier de STS... $attributs["description"]="$div"; // MODIF: boireaus 20070728 $attributs["objectClass"][1]="posixGroup"; //$attributs["objectClass"][2]="sambaGroupMapping"; my_echo("Création de l'équipe Equipe_".$prefix."$div: "); if(add_entry ("cn=Equipe_".$prefix."$div", "groups", $attributs)) { /* unset($attributs); $attributs=array(); //$attributs["objectClass"]="groupOfNames"; $attributs["objectClass"]="posixGroup"; if(modify_attribut("cn=Equipe_".$prefix."$div","groups", $attributs, "add")) { */ my_echo("SUCCES"); if ($servertype=="SE3") { //my_echo("
/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Equipe_".$prefix."$div Equipe_".$prefix."$div \"$div\""); $resultat=exec("/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Equipe_".$prefix."$div Equipe_".$prefix."$div \"$div\"", $retour); } /* } else{ my_echo("ECHEC"); $temoin_equipe="PROBLEME"; $nb_echecs++; } */ //my_echo("SUCCES"); } else{ my_echo("ECHEC"); $temoin_equipe="PROBLEME"; $nb_echecs++; } } else{ my_echo("ECHEC Il n'y a plus de gidNumber disponible.
\n"); $temoin_equipe="PROBLEME"; $nb_echecs++; } } my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } if($creer_equipes_vides=="y") { $temoin_equipe="Remplissage des Equipes non demandé."; } //my_echo("

\$temoin_equipe=$temoin_equipe

"); if(!isset($divisions)) { my_echo("

Le tableau \$division n'est pas rempli, ni même initialisé.

"); } else { if($temoin_equipe=="") { // Recherche de l'indice de la classe dans $divisions //my_echo("$div "); for($m=0;$m$tmp_classe "); if($tmp_classe==$div) { $ind=$m; } } //my_echo("ind=$ind
"); if($type_Equipe_Matiere=="groupOfNames") { // Les profs principaux ne sont plus gérés comme attribut owner qu'en mode groupOfNames // Prof principal unset($tab_pp); $tab_pp=array(); for($m=0;$m0) { if(count($tab_pp)==1) { my_echo("Ajout du professeur principal à l'équipe Equipe_".$prefix."$div: "); } else{ my_echo("Ajout des professeurs principaux à l'équipe Equipe_".$prefix."$div: "); } for($m=0;$m$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } } // Membres de l'équipe unset($tab_equipe); $tab_equipe=array(); my_echo("Ajout de membres à l'équipe Equipe_".$prefix."$div: "); for($j=0;$j"); /* $attribut=array("uid"); $tabtmp=get_tab_attribut("people", "employeenumber=$employeeNumber", $attribut); if(count($tabtmp)!=0) { $uid=$tabtmp[0]; //my_echo("\$uid=$uid
"); // Le prof est-il déjà membre de l'équipe? $attribut=array("member"); //$tabtmp=get_tab_attribut("people", "member=uid=$uid,".$dn["people"], $attribut); $tabtmp=get_tab_attribut("groups", "(&(cn=Equipe_".$prefix."$div)(member=uid=$uid,".$dn["people"]."))", $attribut); if(count($tabtmp)==0) { $attributs=array(); $attributs["member"]="uid=$uid,".$dn["people"]; if(modify_attribut("cn=Equipe_".$prefix."$div", "groups", $attributs, "add")) { my_echo("$uid "); } else{ my_echo("$uid "); } } else{ my_echo("$uid "); } } */ } } } if(isset($groupes)) { // Rechercher les groupes associés à la classe pour affecter les collègues dans l'équipe //$groupes[$i]["divisions"][$j]["code"] -> 3 A1 //$groupes[$i]["code_matiere"] -> 070800 //$groupes[$i]["enseignant"][$m]["id"] -> 38101 for($n=0;$n"); // Le prof est-il déjà membre de l'équipe? //$attribut=array("member"); //$attribut=array("memberuid"); //$tabtmp=get_tab_attribut("people", "member=uid=$uid,".$dn["people"], $attribut); if($type_Equipe_Matiere=="groupOfNames") { // Les groupes Equipes sont groupOfNames $attribut=array("member"); $tabtmp=get_tab_attribut("groups", "(&(cn=Equipe_".$prefix."$div)(member=uid=$uid,".$dn["people"]."))", $attribut); //$tabtmp=get_tab_attribut("groups", "(&(cn=Equipe_".$prefix."$div)(memberuid=$uid))", $attribut); if(count($tabtmp)==0) { $attributs=array(); $attributs["member"]="uid=$uid,".$dn["people"]; //$attributs["memberuid"]="$uid"; if(modify_attribut("cn=Equipe_".$prefix."$div", "groups", $attributs, "add")) { my_echo("$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } else{ // Les groupes Equipes sont posix //$tabtmp=get_tab_attribut("groups", "(&(cn=Equipe_".$prefix."$div)(member=uid=$uid,".$dn["people"]."))", $attribut); $attribut=array("memberuid"); $tabtmp=get_tab_attribut("groups", "(&(cn=Equipe_".$prefix."$div)(memberuid=$uid))", $attribut); if(count($tabtmp)==0) { $attributs=array(); //$attributs["member"]="uid=$uid,".$dn["people"]; $attributs["memberuid"]="$uid"; if(modify_attribut("cn=Equipe_".$prefix."$div", "groups", $attributs, "add")) { my_echo("$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } } } my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } my_echo("

\n"); } //} } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("
\n"); my_echo("

Retour au menu.

\n"); my_echo("\n"); //my_echo("

Création des groupes Matières

\n"); //my_echo("

Création des groupes Matières

\n"); my_echo("

Création des groupes Matières"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} // =========================================================== if($creer_matieres=='y') { my_echo("

\n"); my_echo(""); my_echo("
\n"); if(!isset($matiere)) { my_echo("

Le tableau \$matiere n'est pas rempli, ni même initialisé.

\n"); } else { for($i=0;$i\n"); $temoin_matiere=""; //$matiere[$i]["code_gestion"] $id_mat=$matiere[$i]["code"]; //$code_gestion=$matiere[$i]["code_gestion"]; // En principe les caractères spéciaux ont-été filtrés: //$matiere[$i]["code_gestion"]=trim(ereg_replace("[^a-zA-Z0-9&_. -]","",html_entity_decode($tabtmp[2]))); $mat=$matiere[$i]["code_gestion"]; $description=remplace_accents($matiere[$i]["libelle_long"]); // Faudrait-il enlever d'autres caractères? // Le groupe Matiere existe-t-il? $attribut=array("cn"); $tabtmp=get_tab_attribut("groups", "cn=Matiere_".$prefix."$mat", $attribut); if(count($tabtmp)==0) { $attributs=array(); $attributs["cn"]="Matiere_".$prefix."$mat"; // MODIF: boireaus 20070728 //$attributs["objectClass"]="top"; $attributs["objectClass"][0]="top"; //$attributs["objectClass"]="posixGroup"; //$attributs["objectClass"]="groupOfNames"; // Ou récupérer un nom long du fichier de STS... $attributs["description"]="$description"; if($type_Equipe_Matiere=="groupOfNames") { // Les groupes Matieres sont groupOfNames // MODIF: boireaus 20070728 $attributs["objectClass"][1]="groupOfNames"; //my_echo("

Création de la matière Matiere_".$prefix."$mat: "); my_echo("Création de la matière Matiere_".$prefix."$mat: "); if(add_entry ("cn=Matiere_".$prefix."$mat", "groups", $attributs)) { /* unset($attributs); $attributs=array(); $attributs["objectClass"]="groupOfNames"; //$attributs["objectClass"]="posixGroup"; if(modify_attribut("cn=Matiere_".$prefix."$mat","groups", $attributs, "add")) { */ my_echo("SUCCES"); /* } else{ my_echo("ECHEC"); $temoin_matiere="PROBLEME"; $nb_echecs++; } */ //my_echo("SUCCES"); } else{ my_echo("ECHEC"); $temoin_matiere="PROBLEME"; $nb_echecs++; } } else{ // Les groupes Matieres sont posix $gidNumber=get_first_free_gidNumber(); if($gidNumber!=false) { $attributs["gidNumber"]="$gidNumber"; // MODIF: boireaus 20070728 $attributs["objectClass"][1]="posixGroup"; //$attributs["objectClass"][2]="sambaGroupMapping"; //my_echo("

Création de la matière Matiere_".$prefix."$mat: "); my_echo("Création de la matière Matiere_".$prefix."$mat: "); if(add_entry ("cn=Matiere_".$prefix."$mat", "groups", $attributs)) { /* unset($attributs); $attributs=array(); //$attributs["objectClass"]="groupOfNames"; $attributs["objectClass"]="posixGroup"; if(modify_attribut("cn=Matiere_".$prefix."$mat","groups", $attributs, "add")) { */ my_echo("SUCCES"); if ($servertype=="SE3") { //my_echo("
/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Matiere_".$prefix."$mat Matiere_".$prefix."$mat \"$description\""); $resultat=exec("/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Matiere_".$prefix."$mat Matiere_".$prefix."$mat \"$description\"", $retour); } /* } else{ my_echo("ECHEC"); $temoin_matiere="PROBLEME"; $nb_echecs++; } */ //my_echo("SUCCES"); } else{ my_echo("ECHEC"); $temoin_matiere="PROBLEME"; $nb_echecs++; } } else{ my_echo("ECHEC Il n'y a plus de gidNumber disponible.
\n"); $temoin_matiere="PROBLEME"; $nb_echecs++; } } my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } unset($tab_matiere); $tab_matiere=array(); if($temoin_matiere=="") { my_echo("Ajout de membres à la matière Matiere_".$prefix."$mat: "); for($n=0;$n"); if(!in_array($employeeNumber,$tab_matiere)) { $tab_matiere[]=$employeeNumber; /* $attribut=array("uid"); $tabtmp=get_tab_attribut("people", "employeenumber=$employeeNumber", $attribut); if(count($tabtmp)!=0) { $uid=$tabtmp[0]; //my_echo("\$uid=$uid
"); // Le prof est-il déjà membre de l'équipe? $attribut=array("member"); //$tabtmp=get_tab_attribut("people", "member=uid=$uid,".$dn["people"], $attribut); $tabtmp=get_tab_attribut("groups", "(&(cn=Matiere_".$prefix."$mat)(member=uid=$uid,".$dn["people"]."))", $attribut); if(count($tabtmp)==0) { $attributs=array(); $attributs["member"]="uid=$uid,".$dn["people"]; if(modify_attribut("cn=Matiere_".$prefix."$mat", "groups", $attributs, "add")) { my_echo("$uid "); } else{ my_echo("$uid "); } } else{ my_echo("$uid "); } } */ } } } } } // Rechercher les groupes associés à la matière pour affecter les collègues dans l'équipe //$groupes[$i]["divisions"][$j]["code"] -> 3 A1 //$groupes[$i]["code_matiere"] -> 070800 //$groupes[$i]["enseignant"][$m]["id"] -> 38101 for($n=0;$n"); // Le prof est-il déjà membre de la matière? if($type_Equipe_Matiere=="groupOfNames") { // Les groupes Matieres sont groupOfNames $attribut=array("member"); //$attribut=array("memberuid"); //$tabtmp=get_tab_attribut("people", "member=uid=$uid,".$dn["people"], $attribut); $tabtmp=get_tab_attribut("groups", "(&(cn=Matiere_".$prefix."$mat)(member=uid=$uid,".$dn["people"]."))", $attribut); //$tabtmp=get_tab_attribut("groups", "(&(cn=Matiere_".$prefix."$mat)(memberuid=$uid))", $attribut); if(count($tabtmp)==0) { $attributs=array(); $attributs["member"]="uid=$uid,".$dn["people"]; //$attributs["memberuid"]="$uid"; if(modify_attribut("cn=Matiere_".$prefix."$mat", "groups", $attributs, "add")) { my_echo("$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } else{ // Les groupes Matieres sont posix //$attribut=array("member"); $attribut=array("memberuid"); //$tabtmp=get_tab_attribut("people", "member=uid=$uid,".$dn["people"], $attribut); //$tabtmp=get_tab_attribut("groups", "(&(cn=Matiere_".$prefix."$mat)(member=uid=$uid,".$dn["people"]."))", $attribut); $tabtmp=get_tab_attribut("groups", "(&(cn=Matiere_".$prefix."$mat)(memberuid=$uid))", $attribut); if(count($tabtmp)==0) { $attributs=array(); //$attributs["member"]="uid=$uid,".$dn["people"]; $attributs["memberuid"]="$uid"; if(modify_attribut("cn=Matiere_".$prefix."$mat", "groups", $attributs, "add")) { my_echo("$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } } } my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } my_echo("

\n"); } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} } } else{ my_echo("\n"); my_echo("
\n"); my_echo("

Création des Matières non demandée.

\n"); } my_echo("
\n"); my_echo("

Retour au menu.

\n"); my_echo("\n"); //my_echo("

Création des groupes Cours

\n"); //my_echo("

Création des groupes Cours

\n"); my_echo("

Création des groupes Cours"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} // =========================================================== // AJOUTS: 20070914 boireaus if($creer_cours=='y') { my_echo("

\n"); my_echo(""); my_echo("
\n"); // Là, il faudrait faire un traitement différent selon que l'import élève se fait par CSV ou XML //$divisions[$i]["code"] 3 A2 //$divisions[$i]["services"][$j]["code_matiere"] 020700 //$divisions[$i]["services"][$j]["enseignants"][$k]["id"] 38764 for($i=0;$i"); $tabtmp=get_tab_attribut("groups", "cn=Classe_".$prefix."$div", $attribut); if(count($tabtmp)!=0) { //my_echo("count(\$tabtmp)=".count($tabtmp)."
"); for($k=0;$k"); // Normalement, chaque élève n'est inscrit qu'une fois dans la classe, mais bon... if(!in_array($tabtmp[$k],$tab_eleve_uid)) { //my_echo("Ajout à \$tab_eleve_uid
"); $tab_eleve_uid[]=$tabtmp[$k]; } } } } else{ // Faire une boucle sur $eleve[$numero]["options"][$j]["code_matiere"] après avoir identifié le numéro... en faisant une recherche sur les memberUid de "cn=Classe_".$prefix."$div" // Ou: remplir un étage de plus de $tab_division[$k]["option"] //$tab_division[$ind_div]["option"][$ind_mat]["eleve"][] //my_echo("

Matière optionnelle pour $mat en $div:
"); for($k=0;$k"); //$tabtmp=get_tab_attribut("people", "employeenumber=".$tab_division[$ind_div]["option"][$ind_mat]["eleve"][$k], $attribut); $tabtmp=get_tab_attribut("people", "(|(employeenumber=".$tab_division[$ind_div]["option"][$ind_mat]["eleve"][$k].")(employeenumber=".sprintf("%05d",$tab_division[$ind_div]["option"][$ind_mat]["eleve"][$k])."))", $attribut); if(count($tabtmp)!=0) { if(!in_array($tabtmp[0],$tab_eleve_uid)) { //my_echo("Ajout à \$tab_eleve_uid
"); $tab_eleve_uid[]=$tabtmp[0]; } } } } // Création du groupe // Le groupe Cours existe-t-il? my_echo("

\n"); $attribut=array("cn"); //my_echo("Recherche de: get_tab_attribut(\"groups\", \"cn=Cours_".$prefix."\".$mat.\"_\".$div, $attribut)
"); $tabtmp=get_tab_attribut("groups", "cn=Cours_".$prefix.$mat."_".$div, $attribut); if(count($tabtmp)==0) { $attributs=array(); $attributs["cn"]="Cours_".$prefix.$mat."_".$div; // MODIF: boireaus 20070728 //$attributs["objectClass"]="top"; $attributs["objectClass"][0]="top"; $attributs["objectClass"][1]="posixGroup"; //$attributs["objectClass"][2]="sambaGroupMapping"; //$attributs["objectClass"]="posixGroup"; //$attributs["objectClass"]="groupOfNames"; // Il faudrait ajouter un test sur le fait qu'il reste un gidNumber dispo... //$gidNumber=get_first_free_gidNumber(); $gidNumber=get_first_free_gidNumber(10000); if($gidNumber!=false) { $attributs["gidNumber"]="$gidNumber"; // Ou récupérer un nom long du fichier de STS... $attributs["description"]="$mat / $div"; //my_echo("

Création du groupe Cours_".$prefix.$mat."_".$div.": "); my_echo("Création du groupe Cours_".$prefix.$mat."_".$div.": "); if(add_entry ("cn=Cours_".$prefix.$mat."_".$div, "groups", $attributs)) { /* unset($attributs); $attributs=array(); $attributs["objectClass"]="posixGroup"; if(modify_attribut("cn=Cours_".$prefix.$mat."_".$div,"groups", $attributs, "add")) { */ my_echo("SUCCES"); if ($servertype=="SE3") { //my_echo("
/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Cours_".$prefix."$mat Cours_".$prefix."$mat \"$mat / $div\""); $resultat=exec("/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Cours_".$prefix."$mat Cours_".$prefix."$mat \"$mat / $div\"", $retour); } /* } else{ my_echo("ECHEC"); $temoin_cours="PROBLEME"; $nb_echecs++; } */ //my_echo("SUCCES"); } else{ my_echo("ECHEC"); $temoin_cours="PROBLEME"; $nb_echecs++; } my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } else{ my_echo("ECHEC Il n'y a plus de gidNumber disponible.
\n"); $temoin_cours="PROBLEME"; $nb_echecs++; } } if($temoin_cours=="") { // Ajout des membres my_echo("Ajout de membres au groupe Cours_".$prefix.$mat."_".$div.": "); // Ajout des profs for($n=0;$n"); $tabtmp=get_tab_attribut("groups", "(&(cn=Cours_".$prefix.$mat."_".$div.")(memberuid=$uid))", $attribut); if(count($tabtmp)==0) { unset($attribut); $attribut=array(); $attribut["memberUid"]=$uid; if(modify_attribut("cn=Cours_".$prefix.$mat."_".$div,"groups",$attribut,"add")) { my_echo("$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } // Ajout des élèves for($n=0;$n$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } my_echo(" (".count($tab_prof_uid)."+".count($tab_eleve_uid).")\n"); my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } my_echo("

\n"); } } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} // Dans le cas de l'import XML élèves, on a $eleve[$numero]["options"][$j]["code_matiere"] // Rechercher les groupes //$groupes[$i]["code"] -> 3 A1TEC1 ou 3AGL1-1 //$groupes[$i]["divisions"][$j]["code"] -> 3 A1 //$groupes[$i]["code_matiere"] -> 070800 //$groupes[$i]["enseignant"][$m]["id"] -> 38101 $nom_groupe_a_debugger="3 ALL2"; function my_echo_double_sortie($chaine, $balise="p") { $debug="n"; if($debug=="y") { $retour="<$balise style='color:red'>".$chaine."\n"; echo $retour; my_echo($retour); } } my_echo_double_sortie("count(\$groupes)=".count($groupes)); for($i=0;$i\$grp=\$groupes[$i][\"code\"]=".$grp."
"); if(isset($groupes[$i]["service"][$p]["code_matiere"])) { $grp_id_mat=$groupes[$i]["service"][$p]["code_matiere"]; //my_echo("\$grp_id_mat=\$groupes[$i][\"code_matiere\"]=".$grp_id_mat."
"); // Recherche du nom court de matière for($n=0;$n1) { if($grp_mat!="") { $grp=$grp."_".$grp_mat; } else{ $grp=$grp."_".$p; } } $grp=apostrophes_espaces_2_underscore(remplace_accents($grp)); //my_echo("\$grp_mat=".$grp_mat."
"); // Récupération des profs associés à ce groupe unset($tab_prof_uid); $tab_prof_uid=array(); if(isset($groupes[$i]["service"][$p]["enseignant"])) { for($m=0;$m"); //$tab_division[$ind_div]["option"][$k]["code_matiere"] // Dans le cas de l'import XML, on récupère la liste des options suivies par les élèves $ind_div=""; if($type_fichier_eleves=="xml") { // Identifier $k tel que $tab_division[$k]["nom"]==$div for($k=0;$k"); //if(ereg_replace("'","_",ereg_replace(" ","_",remplace_accents($tab_division[$k]["nom"])))==$div) { if(apostrophes_espaces_2_underscore(remplace_accents($tab_division[$k]["nom"]))==$div) { $ind_div=$k; if($groupes[$i]["code"]==$nom_groupe_a_debugger) { my_echo_double_sortie("\$ind_div=".$ind_div); } break; } } } //my_echo("\$ind_div=".$ind_div."
"); // La matière est-elle optionnelle dans la classe? $temoin_groupe_apparaissant_dans_Eleves_xml="non"; $temoin_matiere_optionnelle="non"; $ind_mat=""; if(($type_fichier_eleves=="xml")&&($ind_div!="")) { for($k=0;$k"); if($chaine_div=="") { $chaine_div=$div; } else{ $chaine_div.=" / ".$div; } if($groupes[$i]["code"]==$nom_groupe_a_debugger) { my_echo_double_sortie("\$temoin_matiere_optionnelle=".$temoin_matiere_optionnelle); } if($temoin_matiere_optionnelle!="oui") { //$attribut=array("memberUid"); $attribut=array("memberuid"); $tabtmp=get_tab_attribut("groups", "cn=Classe_".$prefix."$div", $attribut); if(count($tabtmp)!=0) { for($k=0;$kMatière optionnelle pour $grp:
"); if($temoin_groupe_apparaissant_dans_Eleves_xml!="oui") { for($k=0;$k"); $tabtmp=get_tab_attribut("people", "(|(employeenumber=".$tab_division[$ind_div]["option"][$ind_mat]["eleve"][$k].")(employeenumber=".sprintf("%05d",$tab_division[$ind_div]["option"][$ind_mat]["eleve"][$k])."))", $attribut); if(count($tabtmp)!=0) { if(!in_array($tabtmp[0],$tab_eleve_uid)) { //my_echo("Ajout à \$tab_eleve_uid
"); $tab_eleve_uid[]=$tabtmp[0]; } } } } else { for($k=0;$k\n"); $attribut=array("cn"); $tabtmp=get_tab_attribut("groups", "cn=Cours_".$prefix."$grp", $attribut); if(count($tabtmp)==0) { $attributs=array(); $attributs["cn"]="Cours_".$prefix."$grp"; // MODIF: boireaus 20070728 //$attributs["objectClass"]="top"; $attributs["objectClass"][0]="top"; $attributs["objectClass"][1]="posixGroup"; //$attributs["objectClass"][2]="sambaGroupMapping"; //$attributs["objectClass"]="posixGroup"; //$attributs["objectClass"]="groupOfNames"; // Il faudrait ajouter un test sur le fait qu'il reste un gidNumber dispo... //$gidNumber=get_first_free_gidNumber(); $gidNumber=get_first_free_gidNumber(10000); if($gidNumber!=false) { $attributs["gidNumber"]="$gidNumber"; // Ou récupérer un nom long du fichier de STS... $attributs["description"]="$grp_mat / $chaine_div"; //my_echo("

Création du groupe Cours_".$prefix."$grp: "); my_echo("Création du groupe Cours_".$prefix."$grp: "); //my_echo(" grp_mat=$grp_mat "); if(add_entry ("cn=Cours_".$prefix."$grp", "groups", $attributs)) { /* unset($attributs); $attributs=array(); $attributs["objectClass"]="posixGroup"; if(modify_attribut("cn=Cours_".$prefix."$grp","groups", $attributs, "add")) { */ my_echo("SUCCES"); if ($servertype=="SE3") { //my_echo("
/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Cours_".$prefix."$grp Cours_".$prefix."$grp \"$grp_mat / $chaine_div\""); $resultat=exec("/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Cours_".$prefix."$grp Cours_".$prefix."$grp \"$grp_mat / $chaine_div\"", $retour); } /* } else{ my_echo("ECHEC"); $temoin_cours="PROBLEME"; $nb_echecs++; } */ //my_echo("SUCCES"); } else{ my_echo("ECHEC"); $temoin_cours="PROBLEME"; $nb_echecs++; } my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } else{ my_echo("ECHEC Il n'y a plus de gidNumber disponible.
\n"); $temoin_cours="PROBLEME"; $nb_echecs++; } } if($temoin_cours=="") { // Ajout de membres au groupe my_echo("Ajout de membres au groupe Cours_".$prefix."$grp: "); // Ajout des profs for($n=0;$n$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } // Ajout des élèves for($n=0;$n$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } my_echo(" (".count($tab_prof_uid)."+".count($tab_eleve_uid).")\n"); my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } my_echo("

\n"); } } else { //============================================================================================= // Pas de section "\$grp=\$groupes[$i][\"code\"]=".$grp."
"); // Récupération des profs associés à ce groupe // Impossible faute de section SERVICE unset($tab_prof_uid); $tab_prof_uid=array(); // Récupération des élèves associés aux classes de ce groupe unset($tab_eleve_uid); $tab_eleve_uid=array(); $chaine_div=""; for($j=0;$j"); //$tab_division[$ind_div]["option"][$k]["code_matiere"] if($groupes[$i]["code"]==$nom_groupe_a_debugger) { my_echo_double_sortie("Classe associee ".$div); } // Dans le cas de l'import XML, on récupère la liste des options suivies par les élèves $ind_div=""; if($type_fichier_eleves=="xml") { // Identifier $k tel que $tab_division[$k]["nom"]==$div for($k=0;$k"); //if(ereg_replace("'","_",ereg_replace(" ","_",remplace_accents($tab_division[$k]["nom"])))==$div) { if(apostrophes_espaces_2_underscore(remplace_accents($tab_division[$k]["nom"]))==$div) { $ind_div=$k; if($groupes[$i]["code"]==$nom_groupe_a_debugger) { my_echo_double_sortie("\$ind_div=".$ind_div); } break; } } } //my_echo("\$ind_div=".$ind_div."
"); // La matière est-elle optionnelle dans la classe? $temoin_groupe_apparaissant_dans_Eleves_xml="non"; $temoin_matiere_optionnelle="non"; $ind_mat=""; //if(in_array($groupes[$i]["code"], $tab_groups)) { if(is_array($tab_groups)) { if((in_array($groupes[$i]["code"], $tab_groups))||(in_array(apostrophes_espaces_2_underscore(remplace_accents($groupes[$i]["code"])), $tab_groups))) { // Les inscriptions des eleves ont ete inscrites dans le ElevesSansAdresses.xml $temoin_groupe_apparaissant_dans_Eleves_xml="oui"; $temoin_matiere_optionnelle="oui"; $ind_mat=$k; if($groupes[$i]["code"]==$nom_groupe_a_debugger) { my_echo_double_sortie("Matiere optionnelle apparaissant dans ElevesSansAdresses avec \$ind_mat=$ind_mat"); } } } //my_echo("\$ind_mat=".$ind_mat."
"); if($chaine_div=="") { $chaine_div=$div; } else{ $chaine_div.=" / ".$div; } if($groupes[$i]["code"]==$nom_groupe_a_debugger) { my_echo_double_sortie("\$temoin_matiere_optionnelle=".$temoin_matiere_optionnelle); } if($temoin_matiere_optionnelle!="oui") { //$attribut=array("memberUid"); $attribut=array("memberuid"); $tabtmp=get_tab_attribut("groups", "cn=Classe_".$prefix."$div", $attribut); if(count($tabtmp)!=0) { for($k=0;$kMatière optionnelle pour $grp:
"); if($temoin_groupe_apparaissant_dans_Eleves_xml!="oui") { for($k=0;$k"); $tabtmp=get_tab_attribut("people", "(|(employeenumber=".$tab_division[$ind_div]["option"][$ind_mat]["eleve"][$k].")(employeenumber=".sprintf("%05d",$tab_division[$ind_div]["option"][$ind_mat]["eleve"][$k])."))", $attribut); if(count($tabtmp)!=0) { if(!in_array($tabtmp[0],$tab_eleve_uid)) { //my_echo("Ajout à \$tab_eleve_uid
"); $tab_eleve_uid[]=$tabtmp[0]; } } } } else { if($groupes[$i]["code"]==$nom_groupe_a_debugger) { my_echo_double_sortie("count(\$tab_groups_member[apostrophes_espaces_2_underscore(remplace_accents(\$groupes[$i]['code']))])=count(\$tab_groups_member[apostrophes_espaces_2_underscore(remplace_accents(".$groupes[$i]['code']."))])=count(\$tab_groups_member[".apostrophes_espaces_2_underscore(remplace_accents($groupes[$i]["code"]))."])=".count($tab_groups_member[apostrophes_espaces_2_underscore(remplace_accents($groupes[$i]["code"]))])); } for($k=0;$k\n"); $attribut=array("cn"); $tabtmp=get_tab_attribut("groups", "cn=Cours_".$prefix."$grp", $attribut); if(count($tabtmp)==0) { $attributs=array(); $attributs["cn"]="Cours_".$prefix."$grp"; // MODIF: boireaus 20070728 //$attributs["objectClass"]="top"; $attributs["objectClass"][0]="top"; $attributs["objectClass"][1]="posixGroup"; //$attributs["objectClass"][2]="sambaGroupMapping"; //$attributs["objectClass"]="posixGroup"; //$attributs["objectClass"]="groupOfNames"; // Il faudrait ajouter un test sur le fait qu'il reste un gidNumber dispo... //$gidNumber=get_first_free_gidNumber(); $gidNumber=get_first_free_gidNumber(10000); if($gidNumber!=false) { $attributs["gidNumber"]="$gidNumber"; // Ou récupérer un nom long du fichier de STS... $attributs["description"]="$grp_mat / $chaine_div"; //my_echo("

Création du groupe Cours_".$prefix."$grp: "); my_echo("Création du groupe Cours_".$prefix."$grp: "); //my_echo(" grp_mat=$grp_mat "); if(add_entry ("cn=Cours_".$prefix."$grp", "groups", $attributs)) { /* unset($attributs); $attributs=array(); $attributs["objectClass"]="posixGroup"; if(modify_attribut("cn=Cours_".$prefix."$grp","groups", $attributs, "add")) { */ my_echo("SUCCES"); if ($servertype=="SE3") { //my_echo("
/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Cours_".$prefix."$grp Cours_".$prefix."$grp \"$grp_mat / $chaine_div\""); $resultat=exec("/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh Cours_".$prefix."$grp Cours_".$prefix."$grp \"$grp_mat / $chaine_div\"", $retour); } /* } else{ my_echo("ECHEC"); $temoin_cours="PROBLEME"; $nb_echecs++; } */ //my_echo("SUCCES"); } else{ my_echo("ECHEC"); $temoin_cours="PROBLEME"; $nb_echecs++; } my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } else{ my_echo("ECHEC Il n'y a plus de gidNumber disponible.
\n"); $temoin_cours="PROBLEME"; $nb_echecs++; } } if($temoin_cours=="") { // Ajout de membres au groupe my_echo("Ajout de membres au groupe Cours_".$prefix."$grp: "); // Ajout des profs for($n=0;$n$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } // Ajout des élèves for($n=0;$n$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } my_echo(" (".count($tab_prof_uid)."+".count($tab_eleve_uid).")\n"); my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } my_echo("

\n"); } } if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} } else{ my_echo("\n"); my_echo("
\n"); my_echo("

Création des Cours non demandée.

\n"); } my_echo("
\n"); my_echo("

Retour au menu.

\n"); my_echo("\n"); //my_echo("

Création des groupes Cours

\n"); //my_echo("

Création des groupes Cours

\n"); my_echo("

Création d'un groupe Professeurs Principaux"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} if($alimenter_groupe_pp=='y') { my_echo("

\n"); // Prof principal unset($tab_pp); $tab_pp=array(); for($m=0;$mCréation du groupe $nom_groupe_pp: "); if(add_entry ("cn=$nom_groupe_pp", "groups", $attributs)) { my_echo("SUCCES"); if ($servertype=="SE3") { //my_echo("
/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh $nom_groupe_pp $nom_groupe_pp \"Professeurs Principaux\""); $resultat=exec("/usr/bin/sudo /usr/share/se3/scripts/group_mapping.sh $nom_groupe_pp $nom_groupe_pp \"Professeurs Principaux\"", $retour); } } else{ my_echo("ECHEC"); //$temoin_cours="PROBLEME"; $nb_echecs++; } my_echo("
\n"); if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } else{ my_echo("ECHEC Il n'y a plus de gidNumber disponible.
\n"); //$temoin_cours="PROBLEME"; $nb_echecs++; } } else { // Liste des comptes présents dans le Groupe_Professeurs_Principaux. unset($attribut); $attribut=array("memberuid"); $tab_mem_pp=get_tab_attribut("groups","cn=$nom_groupe_pp",$attribut); /* if(count($tab_mem_pp)>0) { my_echo("

On vide le groupe $nom_groupe_pp
\n"); my_echo("Suppression de l'appartenance au groupe de: \n"); for($i=0;$i".$tab_mem_pp[$i].""); } } my_echo("

\n"); } else { my_echo("

Le groupe $nom_groupe_pp est vide.

\n"); } */ } if(count($tab_pp)==0) { my_echo("Aucun professeur principal n'a été trouvé
\n"); } else { // Ajout de membres au groupe d'après $tab_pp my_echo("Ajout de membres au groupe $nom_groupe_pp: "); for($n=0;$n$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } else{ my_echo("$uid "); } } } my_echo(" (".count($tab_pp).")\n"); $temoin_membres_pp_a_virer="n"; for($n=0;$n\n"); my_echo("Sortie du groupe $nom_groupe_pp de: "); } unset($attribut); $attribut=array(); $attribut["memberUid"]=$uid; if(modify_attribut("cn=$nom_groupe_pp","groups",$attribut,"del")) { my_echo("$uid "); } else{ my_echo("$uid "); $nb_echecs++; } } } my_echo("
\n"); } if($chrono=='y') {my_echo("Fin: ".date_et_heure()."
\n");} } else { my_echo("\n"); my_echo("
\n"); my_echo("

Création/alimentation du groupe Profs Principaux non demandée.

\n"); } my_echo("
\n"); my_echo("

Retour au menu.

\n"); my_echo("\n"); //my_echo("

Rapport final de création

"); my_echo("

Rapport final de création"); if($chrono=='y') {my_echo(" (".date_et_heure().")");} my_echo("

\n"); my_echo("
\n"); my_echo("

Terminé!

\n"); my_echo(""); $chaine=""; if($nouveaux_comptes==0) { $chaine.="

Aucun nouveau compte n'a été créé.

\n"; //my_echo("

Aucun nouveau compte n'a été créé.

\n"); } elseif($nouveaux_comptes==1) { //my_echo("

$nouveaux_comptes nouveau compte a été créé: $tab_nouveaux_comptes[0]

\n"); $chaine.="

$nouveaux_comptes nouveau compte a été créé: $tab_nouveaux_comptes[0]

\n"; } else{ /* my_echo("

$nouveaux_comptes nouveaux comptes ont été créés: \n"); my_echo($tab_nouveaux_comptes[0]); for($i=1;$i\n"); */ $chaine.="

$nouveaux_comptes nouveaux comptes ont été créés: \n"; $chaine.=$tab_nouveaux_comptes[0]; for($i=1;$iAucun compte existant sans employeeNumber n'a été récupéré/corrigé.

\n"); $chaine.="

Aucun compte existant sans employeeNumber n'a été récupéré/corrigé.

\n"; } elseif($comptes_avec_employeeNumber_mis_a_jour==1) { //my_echo("

$comptes_avec_employeeNumber_mis_a_jour compte existant sans employeeNumber a été récupéré/corrigé (son employeeNumber est maintenant renseigné): $tab_comptes_avec_employeeNumber_mis_a_jour[0]

\n"); $chaine.="

$comptes_avec_employeeNumber_mis_a_jour compte existant sans employeeNumber a été récupéré/corrigé (son employeeNumber est maintenant renseigné): $tab_comptes_avec_employeeNumber_mis_a_jour[0]

\n"; } else{ /* my_echo("

$comptes_avec_employeeNumber_mis_a_jour comptes existants sans employeeNumber ont été récupérés/corrigés (leur employeeNumber est maintenant renseigné): \n"); my_echo("$tab_comptes_avec_employeeNumber_mis_a_jour[0]"); for($i=1;$i\n"); */ $chaine.="

$comptes_avec_employeeNumber_mis_a_jour comptes existants sans employeeNumber ont été récupérés/corrigés (leur employeeNumber est maintenant renseigné): \n"; $chaine.="$tab_comptes_avec_employeeNumber_mis_a_jour[0]"; for($i=1;$i0) { $tmp_txt="Un ou des élèves n'ont pas été enregistrés dans l'annuaire parce qu'importés d'un autre établissement avec un identifiant non encore mis à jour.\n"; //my_echo("

".$tmp_txt."

    "); //$chaine.=$tmp_txt; $chaine.="

    ".$tmp_txt."

      "; for($loop=0;$loop".$tmp_tab[0]." ".$tmp_tab[1]." (".($tmp_tab[2]!="1" ? "fille" : "garçon") .") né".($tmp_tab[2]!="1" ? "e" : "")." le ".$tmp_tab[3].""; } else { $tmp_txt=$tmp_tab[0]." ".$tmp_tab[1]." (".($tmp_tab[2]!="1" ? "fille" : "garçon") .") né".($tmp_tab[2]!="1" ? "e" : "")." le ".$tmp_tab[3]; } //my_echo("
    • ".$tmp_txt."
    • "); //$chaine.=$tmp_txt."\n"; $chaine.="
    • ".$tmp_txt."
    • "; } $tmp_txt="Vous devrez les créer à la main en attendant que Sconet/Sts soit à jour (généralement fin septembre)."; //my_echo("

    $tmp_txt

    "); //$chaine.=$tmp_txt; $chaine.="

$tmp_txt

"; } if($nb_echecs==0) { //my_echo("

Aucune opération tentée n'a échoué.

\n"); $chaine.="

Aucune opération tentée n'a échoué.

\n"; } elseif($nb_echecs==1) { //my_echo("

$nb_echecs opération tentée a échoué.

\n"); $chaine.="

$nb_echecs opération tentée a échoué.

\n"; } else{ //my_echo("

$nb_echecs opérations tentées ont échoué.

\n"); $chaine.="

$nb_echecs opérations tentées ont échoué.

\n"; } my_echo($chaine); /* // Envoi par mail de $chaine et $echo_http_file // Récupérer les adresses,... dans le /etc/ssmtp/ssmtp.conf unset($tabssmtp); my_echo("

Avant lireSSMTP();

"); $tabssmtp=lireSSMTP(); my_echo("

Après lireSSMTP();

"); my_echo("

\$tabssmtp[\"root\"]=".$tabssmtp["root"]."

"); // Contrôler les champs affectés... if(isset($tabssmtp["root"])) { $adressedestination=$tabssmtp["root"]; $sujet="[$domain] Rapport de "; if($simulation=="y") {$sujet.="simulation de ";} $sujet.="création de comptes"; $message="Import du $debut_import\n"; $message.="$chaine\n"; $message.="\n"; $message.="Vous pouvez consulter le rapport détaillé à l'adresse $echo_http_file\n"; $entete="From: ".$tabssmtp["root"]; my_echo("

Avant mail.

"); mail("$adressedestination", "$sujet", "$message", "$entete") or my_echo("

ERREUR lors de l'envoi du rapport par mail.

\n"); my_echo("

Après mail.

"); } else{ my_echo("

\$tabssmtp[\"root\"] doit être vide.

"); my_echo("

MAIL: La configuration mail ne permet pas d'expédier le rapport.
Consultez/renseignez le menu Informations système/Actions sur le serveur/Configurer l'expédition des mails.

\n"); } */ //my_echo("

Avant màj params.

"); // Renseignement du témoin de mise à jour terminée. $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'"; $res1=mysql_query($sql); if(mysql_num_rows($res1)==0) { $sql="INSERT INTO params SET name='imprt_cmpts_en_cours',value='n'"; $res0=mysql_query($sql); } else{ $sql="UPDATE params SET value='n' WHERE name='imprt_cmpts_en_cours'"; $res0=mysql_query($sql); } //my_echo("

Après màj params.

"); if($chrono=='y') {my_echo("

Fin de l'opération: ".date_et_heure()."

\n");} my_echo("

Retour.

\n"); my_echo("
\n"); my_echo("\n"); //my_echo("\n\n"); // } // Dans la version PHP4-CLI, envoyer le rapport par mail. // Envoyer le contenu de la page aussi? // Peut-être forcer une sauvegarde de l'annuaire avant de procéder à une opération qui n'est pas une simulation. // Où placer le fichier de sauvegarde? // Problème de l'encombrement à terme. // } // SUPPRIMER LES FICHIERS CSV/XML en fin d'import. if(file_exists($eleves_file)) { unlink($eleves_file); } if(file_exists($sts_xml_file)) { unlink($sts_xml_file); } if(file_exists("$dossier_tmp_import_comptes/import_comptes.sh")) { unlink("$dossier_tmp_import_comptes/import_comptes.sh"); } if(file_exists("/tmp/debug_se3lcs.txt")) { // Il faut pouvoir écrire dans le fichier depuis /var/www/se3/annu/import_sconet.php sans sudo... donc www-se3 doit être proprio ou avoir les droits... exec("chown $user_web /tmp/debug_se3lcs.txt"); } // Lien pour la récupération du mailing if (count($listing, COUNT_RECURSIVE) > 1) { $serial_listing=rawurlencode(serialize($listing)); my_echo("

"); $lien="Télécharger le listing des utilisateurs importés..."; my_echo("
"); my_echo($lien); my_echo("
Attention, les données ne seront pas conservées en quittant cette page ! Enregistrez le fichier PDF...

"); } // Envoi par mail de $chaine et $echo_http_file if ( $servertype=="SE3" ) { // Récupérer les adresses,... dans le /etc/ssmtp/ssmtp.conf unset($tabssmtp); $tabssmtp=lireSSMTP(); // Contrôler les champs affectés... if (isset($tabssmtp["root"])) { $adressedestination=$tabssmtp["root"]; $sujet="[$domain] Rapport de "; if($simulation=="y") {$sujet.="simulation de ";} $sujet.="création de comptes"; $message="Import du $debut_import\n"; $message.="$chaine\n"; $message.="\n"; $message.="Vous pouvez consulter le rapport détaillé à l'adresse $echo_http_file\n"; $entete="From: ".$tabssmtp["root"]; mail("$adressedestination", "$sujet", "$message", "$entete") or my_echo("

ERREUR lors de l'envoi du rapport par mail.

\n"); } else my_echo("

MAIL: La configuration mail ne permet pas d'expédier le rapport.
Consultez/renseignez le menu Informations système/Actions sur le serveur/Configurer l'expédition des mails.

\n"); } elseif ( $servertype=="LCS") { $adressedestination="admin@$domain"; $sujet="[$domain] Rapport de "; if($simulation=="y") {$sujet.="simulation de ";} $sujet.="création de comptes"; $message="Import du $debut_import\n"; $message.="$chaine\n"; $message.="\n"; $message.="Vous pouvez consulter le rapport détaillé à l'adresse $echo_http_file\n"; $entete="From: root@$domain"; mail("$adressedestination", "$sujet", "$message", "$entete") or my_echo("

ERREUR lors de l'envoi du rapport par mail.

\n"); } my_echo("\n\n"); ?>