[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/annu/ -> import_sconet.php (source)

   1  <?php
   2  
   3  
   4     /**
   5  
   6     * Page d'import des comptes depuis les fichiers CSV/XML de Sconet
   7     * @Version $Id: import_sconet.php 8600 2015-03-16 20:12:30Z plouf $
   8  
   9     * @Projet LCS / SambaEdu
  10  
  11     * @auteurs Stephane Boireau (Animateur de Secteur pour les TICE sur Bernay/Pont-Audemer (27))
  12     * @auteurs jLCF jean-luc.chretien@tice.ac-caen.fr Portage LCSorSE3
  13  
  14     * @Licence Distribue selon les termes de la licence GPL
  15  
  16     * @note
  17     * @sudo /usr/share/se3/script/import_comptes.php
  18     * @sudo /usr/share/se3/script/run_import_comptes.sh
  19     */
  20  
  21     /**
  22  
  23     * @Repertoire: annu
  24     * file: import_sconet.php
  25     */
  26  
  27  
  28  
  29      include "se3orlcs_import_sconet.php";
  30          
  31          // HTMLPurifier
  32          require_once  ("traitement_data.inc.php");
  33  
  34      if (is_admin("Annu_is_admin",$login)=="Y") {
  35                  require ( $pathlcsorse3."config.inc.php");
  36          require ( $path_crob_ldap_functions."crob_ldap_functions.php");
  37  
  38          // echo "<h2>Import des comptes, groupes,...</h2>\n";
  39  
  40  
  41          if((isset($_GET['nettoyage']))&&(isset($_GET['dossier']))){
  42              //nettoyage=oui&amp;dossier=".$timestamp."_".$randval."
  43  
  44              echo "<h2>Suppression des fichiers CSV g&#233;n&#233;r&#233;s</h2>\n";
  45              echo "<blockquote>\n";
  46              // Filtrer le $_GET['dossier']... A FAIRE
  47              if(file_exists($racine_www.$chemin_csv."/".$_GET['dossier'])){
  48  
  49                  if(is_dir($racine_www.$chemin_csv."/".$_GET['dossier'])){
  50                      echo "<p>Suppression de:</p>\n";
  51                      echo "<ul>\n";
  52                      if(file_exists($racine_www.$chemin_csv."/".$_GET['dossier']."/f_ele.txt")){
  53                          echo "<li>f_ele.txt: ";
  54                          if(unlink($racine_www.$chemin_csv."/".$_GET['dossier']."/f_ele.txt")){
  55                              echo "<font color='green'>SUCCES</font>";
  56                          }
  57                          else{
  58                              echo "<font color='red'>ECHEC</font>";
  59                          }
  60                          echo "</li>\n";
  61                      }
  62                      if(file_exists($racine_www.$chemin_csv."/".$_GET['dossier']."/f_div.txt")){
  63                          echo "<li>f_div.txt: ";
  64                          if(unlink($racine_www.$chemin_csv."/".$_GET['dossier']."/f_div.txt")){
  65                              echo "<font color='green'>SUCCES</font>";
  66                          }
  67                          else{
  68                              echo "<font color='red'>ECHEC</font>";
  69                          }
  70                          echo "</li>\n";
  71                      }
  72                      if(file_exists($racine_www.$chemin_csv."/".$_GET['dossier']."/f_men.txt")){
  73                          echo "<li>f_men.txt: ";
  74                          if(unlink($racine_www.$chemin_csv."/".$_GET['dossier']."/f_men.txt")){
  75                              echo "<font color='green'>SUCCES</font>";
  76                          }
  77                          else{
  78                              echo "<font color='red'>ECHEC</font>";
  79                          }
  80                          echo "</li>\n";
  81                      }
  82                      if(file_exists($racine_www.$chemin_csv."/".$_GET['dossier']."/f_wind.txt")){
  83                          echo "<li>f_wind.txt: ";
  84                          if(unlink($racine_www.$chemin_csv."/".$_GET['dossier']."/f_wind.txt")){
  85                              echo "<font color='green'>SUCCES</font>";
  86                          }
  87                          else{
  88                              echo "<font color='red'>ECHEC</font>";
  89                          }
  90                          echo "</li>\n";
  91                      }
  92                      //if(disk_total_space($racine_www."/Admin/csv/".$_GET['dossier'])==0){
  93                          echo "<li>Dossier ".$racine_www.$chemin_csv."/".$_GET['dossier'].": ";
  94                          if(rmdir($racine_www.$chemin_csv."/".$_GET['dossier'])){
  95                              echo "<font color='green'>SUCCES</font>";
  96                          }
  97                          else{
  98                              echo "<font color='red'>ECHEC</font>";
  99                          }
 100                          echo "</li>\n";
 101                      //}
 102                      echo "</ul>\n";
 103                      echo "<p>Termin&#233;.</p>\n";
 104                  }
 105                  else{
 106                      echo "<p style='color:red;'>Le dossier propos&#233; n'a pas l'air d'&#234;tre un dossier!?</p>\n";
 107                  }
 108              }
 109              else{
 110                  echo "<p style='color:red;'>Le dossier propos&#233; n'existe pas.</p>\n";
 111              }
 112              echo "</blockquote>\n";
 113  
 114              include $pathlcsorse3."pdp.inc.php";
 115              exit();
 116          }
 117  
 118          if(!isset($_POST['is_posted'])){
 119              $deverrouiller=isset($_GET['deverrouiller']) ? $_GET['deverrouiller'] : 'n';
 120  
 121              // Deverrouillage si un import etait annonce deja en cours:
 122              if($deverrouiller=='y'){
 123                  $sql="UPDATE params SET value='n' WHERE name='imprt_cmpts_en_cours'";
 124                  $res0=mysql_query($sql);
 125  
 126                  if($res0){
 127                      echo "<p>D&#233;verrouillage r&#233;ussi!</p>\n";
 128                  }
 129                  else{
 130                      echo "<p style='color:red;'>Echec du d&#233;verrouillage!</p>\n";
 131                  }
 132              }
 133  
 134              // Un import est-il deja en cours?
 135              $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'";
 136              $res1=mysql_query($sql);
 137              if(mysql_num_rows($res1)==0){
 138                  $imprt_cmpts_en_cours="n";
 139              }
 140              else{
 141                  $ligtmp=mysql_fetch_object($res1);
 142                  $imprt_cmpts_en_cours=$ligtmp->value;
 143              }
 144  
 145              if($imprt_cmpts_en_cours=="y"){
 146                  echo "<p><b>ATTENTION:</b> Il semble qu'un import soit d&#233;j&#224; en cours";
 147  
 148                  $sql="SELECT value FROM params WHERE name='dernier_import'";
 149                  $res2=mysql_query($sql);
 150                  if(mysql_num_rows($res1)>0){
 151                      $ligtmp=mysql_fetch_object($res2);
 152                      echo ":<br />\n<a href='$urlse3/Admin/result.".$ligtmp->value.".html' target='_blank'>$urlse3/Admin/result.".$ligtmp->value.".html</a>";
 153                  }
 154  
 155      echo "<br />\n";
 156                  echo "Si vous &#234;tes certain que ce n'est pas le cas, vous pouvez faire sauter le verrou.<br />Sinon, il vaut mieux patienter quelques minutes.</p>\n";
 157  
 158                  echo "<p><a href='".$_SERVER['PHP_SELF']."?deverrouiller=y'>Faire sauter le verrou</a>.</p>\n";
 159              }
 160              else{
 161                  echo "<h3>Choix des fichiers source</h3>\n";
 162  
 163                  // ===========================================================
 164                  // AJOUTS: 20070914 boireaus
 165  
 166                  exec("ldapsearch -xLLL ou=Trash",$retour_recherche_branche_Trash);
 167                  if(count($retour_recherche_branche_Trash)>0){
 168                      $attribut=array("uid");
 169                      $test_tab=get_tab_attribut("trash", "uid=*", $attribut);
 170                      if(count($test_tab)){
 171                          echo "<p><span style='color:red; font-weight:bold;'>ATTENTION:</span> Il semble que la Corbeille contienne des comptes.<br />Conserver des comptes avant un import peut &#234;tre g&#234;nant:</p>\n";
 172                          echo "<ul>\n";
 173                          echo "<li>Cela peut causer une p&#233;nurie d'uidNumber libres pour les nouveaux comptes &#224; cr&#233;er.</li>\n";
 174                          echo "<li>Cela rallonge le temps de traitement.</li>\n";
 175                          echo "</ul>\n";
 176                          echo "<p>Il est donc recommand&#233; de proc&#233;der au Nettoyage des comptes (<i>dans le menu Annuaire</i>) avant d'effectuer l'import de nouveaux comptes.</p>\n";
 177                      }
 178                  }
 179                  // ===========================================================
 180  
 181  
 182                  echo "<h4>Fichier &#233;l&#232;ves</h4>\n";
 183  
 184                  echo "<form enctype='multipart/form-data' name='formulaire1' action='".$_SERVER['PHP_SELF']."' method='post'>\n";
 185                  echo "<table border='0' width='100%'>\n";
 186  
 187                  echo "<tr>\n";
 188                  echo "<td width='45%'><input type='radio' id='type_csv' name='type_fichier_eleves' value='csv' onchange=\"document.getElementById('id_csv').style.display='';document.getElementById('id_xml').style.display='none';\" /> Export CSV de Sconet";
 189                  echo "&nbsp;&nbsp;";
 190                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<b>Le cheminement pour r&#233;aliser cette extraction depuis Sconet est:</b><br />Application Sconet/Acc&#232;s Base Eleves.<br />Choisir l\'ann&#233;e \(<i>en cours ou en pr&#233;paration selon que la bascule est ou non effectu&#233;e</i>\) Exploitation-Extraction et choisir personnalis&#233;e.<br />Les champs requis sont:<ul><li>Nom</li><li>Pr&#233;nom 1</li><li>Date de naissance</li><li>N� Interne</li><li>Sexe</li><li>Division</li>')")."\"><img name=\"action_image1\"  src=\"$helpinfo\"></u>\n";
 191  
 192                  echo "</td>\n";
 193                  echo "<td width='10%' align='center'>ou</td>\n";
 194                  echo "<td width='45%'><input type='radio' id='type_xml' name='type_fichier_eleves' value='xml' checked onchange=\"document.getElementById('id_csv').style.display='none';document.getElementById('id_xml').style.display='';\" /> Export XML de Sconet";
 195                  echo "&nbsp;&nbsp;";
 196                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<b>Le cheminement pour r&#233;aliser cette extraction depuis Sconet est:</b><br />Application Sconet/Acc&#232;s Base Eleves/Extractions/Exports standard/Exports XML g&#233;n&#233;riques/<b>El&#232;ves sans adresses</b><br /><br /><b>Attention:</b> Ces exports XML ne sont actuellement possibles qu\'avant 9H le matin et apr&#232;s 17H le soir.</p><p>Ce fichier permet une meilleure g&#233;n&#233;ration des groupes Cours pour les groupes correspondant &#224; des options.')")."\"><img name=\"action_image2\"  src=\"$helpinfo\"></u>\n";
 197                  echo "</td>\n";
 198                  echo "</tr>\n";
 199  
 200  
 201                  echo "<tr>\n";
 202                  /*
 203                  echo "<td>\n";
 204                  echo "<p>Les champs requis sont:</p>\n";
 205                  echo "<ul>\n";
 206                  echo "<li>Nom</li>\n";
 207                  echo "<li>Pr&#233;nom 1</li>\n";
 208                  echo "<li>Date de naissance</li>\n";
 209                  echo "<li>N� Interne</li>\n";
 210                  echo "<li>Sexe</li>\n";
 211                  echo "<li>Division</li>\n";
 212                  echo "</ul>\n";
 213  
 214                  echo "<p>Veuillez fournir le fichier CSV:<br />\n";
 215                  echo "<input type=\"file\" size=\"30\" name=\"eleves_csv_file\">\n";
 216                  echo "</p>\n";
 217  
 218                  echo "</td>\n";
 219  
 220                  echo "<td>&nbsp;</td>\n";
 221  
 222                  echo "<td>\n";
 223                  */
 224                  echo "<td colspan='3' align='center'>\n";
 225                  //echo "<p>Veuillez fournir le fichier XML: ElevesSansAdresses.xml<br />\n";
 226                  echo "<p>Veuillez fournir le fichier &#233;l&#232;ves (<i>CSV ou XML selon le choix effectu&#233; ci-dessus</i>).<br />\n";
 227                  echo "<span id='id_csv' style='display:none; background-color: lightgreen; border: 1px solid black;'>CSV:</span> ";
 228                  echo "<span id='id_xml' style='display:none; background-color: lightblue; border: 1px solid black;'>XML:</span> ";
 229                  echo "<input type=\"file\" size=\"30\" name=\"eleves_file\" />\n";
 230                  //echo "<input type=\"file\" size=\"30\" name=\"eleves_xml_file\">\n";
 231                  //echo "<input type=\"file\" size=\"30\" name=\"nomenclature_xml_file\">\n";
 232                  echo "</p>\n";
 233                  echo "<script type='text/javascript'>
 234      if(document.getElementById('type_csv').checked){
 235          document.getElementById('id_csv').style.display=\"\";
 236          document.getElementById('id_xml').style.display=\"none\";
 237      }
 238      if(document.getElementById('type_xml').checked){
 239          document.getElementById('id_csv').style.display=\"none\";
 240          document.getElementById('id_xml').style.display=\"\";
 241      }
 242  </script>";
 243                  echo "</td>\n";
 244  
 245                  echo "</tr>\n";
 246                  echo "</table>\n";
 247  
 248                  $date_export_xml_precedent=crob_getParam('xml_ele_last_import');
 249                  if($date_export_xml_precedent!="") {
 250                      echo "<p>Le pr�c�dent export XML �l�ve import� datait du <strong>$date_export_xml_precedent</strong>.</p>\n";
 251                  }
 252  
 253                  echo "<h4>Fichier professeurs et emploi du temps</h4>\n";
 254  
 255                  echo "<p>Veuillez fournir le fichier XML <i>(STS_emp_RNE_ANNEE.xml)</i>:<br />\n";
 256                  echo "<span style='background-color: lightblue; border: 1px solid black;'>XML:</span> ";
 257                  echo "<input type=\"file\" size=\"80\" name=\"sts_xml_file\" id=\"sts_xml_file\" />\n";
 258                  echo "&nbsp;&nbsp;";
 259                      echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<b>Le cheminement pour effectuer cet export depuis Sconet est:</b><br />STS-web/Mise &#224; jour/Exports/Emplois du temps')")."\"><img name=\"action_image1\"  src=\"$helpinfo\"></u>\n";
 260  
 261                  echo "</p>\n";
 262  
 263                  /*
 264                  $date_export_xml_precedent=crob_getParam('xml_sts_last_import');
 265                  if($date_export_xml_precedent!="") {
 266                      echo "<p>Le pr�c�dent export XML de STS import� datait du <strong>$date_export_xml_precedent</strong>.</p>\n";
 267                  }
 268                  */
 269  
 270                  echo "<br />\n";
 271  
 272                  echo "<h4>Fichier optionnel de logins</h4>\n";
 273  
 274                  echo "<p>Vous pouvez fournir, si vous le souhaitez, un fichier de correspondances 'employeeNumber;login' pour imposer des logins aux nouveaux utilisateurs <i>(f_uid.txt)</i>:<br />\n";
 275                  echo "<span id='id_csv' style='background-color: lightgreen; border: 1px solid black;'>CSV:</span> ";
 276                  echo "<input type=\"file\" size=\"80\" name=\"f_uid_file\" id=\"f_uid_file\" />\n";
 277                  echo "&nbsp;&nbsp;";
 278                      echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<b>Le fichier doit &#234;tre format&#233; ainsi:</b><br />P1234;zebest<br />P2345;zeone<br />3456;toto<br />Avec le pr&#233;fixe P sur les employeeNumber des Profs et pas de pr&#233;fixe pour les Eleves.')")."\"><img name=\"action_image1\"  src=\"$helpinfo\"></u>\n";
 279                  echo "</p>\n";
 280                  echo "<br />\n";
 281  
 282                  echo "<h3>Configuration de l'import</h3>";
 283  
 284                  echo "<h4>Pr&#233;fixe &#233;ventuel : <input type='text' name='prefix' size='5' maxlength='5' value='' />\n";
 285                  echo "&nbsp;&nbsp;";
 286                                 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<b>Ex : LEP</b><br />Ce pr&#233;fixe est utilis&#233; dans les noms de groupes \(ex.: Classe_<b>LEP</b>_3D, Equipe_<b>LEP</b>_3D, Cours_<b>LEP</b>_AGL1_3D, Matiere_<b>LEP</b>_MATHS\)<br />Cela est utile dans les &#233;tablissements mixtes, avec un lyc&#233;e et un LP par exemple.')")."\"><img name=\"action_image3\"  src=\"$helpinfo\"></u>\n";
 287                  echo "</h4>";
 288                  echo "<h4><label for='annuelle' style='cursor: pointer;'>Importation de d&#233;but d'ann&#233;e ? </label><input name='annuelle' id='annuelle' type='checkbox' value='y' />\n";
 289                  echo "&nbsp;&nbsp;";
 290                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Vous devez cocher cette case pour la premi&#232;re importation de l\'ann&#233;e. Cela va d&#233;truire les classes existantes.')")."\"><img name=\"action_image4\"  src=\"$helpinfo\"></u>\n";
 291  
 292                  echo "</h4>";
 293  
 294                  echo "<h4><label for='simulation' style='cursor: pointer;'>Simulation ? </label><input name='simulation' id='simulation' type='checkbox' value='y' />\n";
 295  
 296                  echo "&nbsp;&nbsp;";
 297                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Dans le mode simulation, les nouveaux comptes et comptes retrouv&#233;s (cr&#233;&#233;s auparavant &#224; la main et pour lesquels l\'employeeNumber n\'est pas renseign&#233;) sont affich&#233;s sans &#234;tre pour autant cr&#233;&#233;s.')")."\"><img name=\"action_image5\"  src=\"$helpinfo\"></u>\n";
 298                  echo "</h4>";
 299  
 300  
 301                  echo "<h4><label for='temoin_creation_fichiers' style='cursor: pointer;'>G&#233;n&#233;rer des fichiers CSV ? </label><input name='temoin_creation_fichiers' id='temoin_creation_fichiers' type='checkbox' value='oui' />\n";
 302  
 303                  echo "&nbsp;&nbsp;";
 304                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('L\'import fonctionne tr&#232;s bien automatiquement (sans eux), mais si vous y tenez.')")."\"><img name=\"action_image5\"  src=\"$helpinfo\"></u>\n";
 305                  echo "</h4>";
 306  
 307                  echo "<h4><label for='chrono' style='cursor: pointer;'>Afficher les dates et heures dans l'import? </label><input name='chrono' id='chrono' type='checkbox' value='y' />\n";
 308  
 309                  echo "&nbsp;&nbsp;";
 310                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Pour estimer la dur&#233;e de l\'importation.')")."\"><img name=\"action_image5\"  src=\"$helpinfo\"></u>\n";
 311                  echo "</h4>";
 312  
 313  
 314                  // ===========================================================
 315                  // AJOUTS: 20070914 boireaus
 316                  echo "<h4>Param&#232;tres de l'import</h4>\n";
 317                  echo "<ul>\n";
 318                  echo "<li>\n";
 319                  echo "<label for='creer_equipes_vides' style='cursor: pointer;'>Cr&#233;er les Equipes sans les peupler ? </label><input name='creer_equipes_vides' id='creer_equipes_vides' type='checkbox' value='y' />\n";
 320                  echo "&nbsp;&nbsp;";
 321                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('En d&#233;but d\'ann&#233;e, le fichier XML STS_emp peut contenir des informations erron&#233;es (<i>ne prenant pas encore en compte les nouvelles associations professeurs/mati&#232;res/classes</i>).<br />La remont&#233;e de l\'emploi du temps vers STS r&#232;glera ce probl&#232;me.<br />En attendant, pour cr&#233;er les &#233;quipes sans y mettre les professeur de l\'ann&#233;e pr&#233;c&#233;dente, vous pouvez cocher cette case.<br />Les &#233;quipes cr&#233;&#233;es, vous pourrez y affecter manuellement les professeurs pour lesquels l\'acc&#232;s aux dossiers de Classes est urgent.')")."\"><img name=\"action_image5\"  src=\"$helpinfo\"></u>\n";
 322                  echo "</li>\n";
 323  
 324                  echo "<li>\n";
 325                  echo "<label for='creer_cours' style='cursor: pointer;'>Ne pas cr&#233;er les groupes Cours ? </label><input name='creer_cours' id='creer_cours' type='checkbox' value='n' checked />\n";
 326                  echo "&nbsp;&nbsp;";
 327                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('La plupart du temps, les groupes Cours sont inutiles. Il vaut mieux ne pas les cr&#233;er pour ne pas alourdir l\'annuaire.')")."\"><img name=\"action_image5\"  src=\"$helpinfo\"></u>\n";
 328                  echo "</li>\n";
 329  
 330                  echo "<li>\n";
 331                  echo "<label for='creer_matieres' style='cursor: pointer;'>Ne pas cr&#233;er les groupes Mati&#232;res ? </label><input name='creer_matieres' id='creer_matieres' type='checkbox' value='n' />\n";
 332                  echo "&nbsp;&nbsp;";
 333                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('En d&#233;but d\'ann&#233;e, le fichier XML STS_emp peut contenir des informations erron&#233;es (<i>ne prenant pas encore en compte les nouvelles associations professeurs/mati&#232;res/classes</i>).<br />La remont&#233;e de l\'emploi du temps vers STS r&#232;glera ce probl&#232;me.<br />Vous pouvez ne pas cr&#233;er les groupes Mati&#232;res en attendant.<br />Cependant, les Mati&#232;res changent assez peu d\'une ann&#233;e sur l\'autre  et les professeurs changent assez peu de mati&#232;re d\'une ann&#233;e sur l\'autre.')")."\"><img name=\"action_image5\"  src=\"$helpinfo\"></u>\n";
 334                  echo "</li>\n";
 335                  // ===========================================================
 336  
 337                  echo "<li>\n";
 338                  echo "<label for='corriger_gecos_si_diff' style='cursor: pointer;'>Corriger les nom, pr&#233;nom, sexe, date de naissance des comptes existants ? </label><input name='corriger_gecos_si_diff' id='corriger_gecos_si_diff' type='checkbox' value='y' />\n";
 339                  echo "&nbsp;&nbsp;";
 340                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Il peut arriver que les comptes existants comportent des informations erron&#233;es<br />(<i>Sconet mal rempli, changement de nom d\'un professeur qui se marie,...</i>)<br />En cochant la case, vous autorisez les corrections des attributs cn, sn, givenName et gecos si des changements sont rep&#233;r&#233;s.<br />Le login/uid n\'est en revanche pas modifi&#233;.')")."\"><img name=\"action_image5\"  src=\"$helpinfo\"></u>\n";
 341                  echo "</li>\n";
 342  
 343                  // ===========================================================
 344  
 345                  echo "<li>\n";
 346                  echo "<label for='alimenter_groupe_pp' style='cursor: pointer;'>Cr&#233;er et alimenter le groupe Professeurs Principaux ? </label><input name='alimenter_groupe_pp' id='alimenter_groupe_pp' type='checkbox' value='y' />\n";
 347                  echo "&nbsp;&nbsp;";
 348                  echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Le groupe des Professeurs Principaux...')")."\"><img name=\"action_image5\"  src=\"$helpinfo\"></u>\n";
 349                  echo "</li>\n";
 350  
 351                  echo "</ul>\n";
 352                  // ===========================================================
 353  
 354  
 355                  echo "<input type='hidden' name='is_posted' value='yes'>\n";
 356  
 357                  //echo "<p><input type='submit' value='Valider'></p>\n";
 358                  echo "<p><input type='button' value='Valider' onClick='verif_et_valide()' /></p>\n";
 359  
 360                  echo "</form>\n";
 361  
 362      // Fonction javascript
 363  
 364      /**
 365      * Verifie et valide un from
 366      * @language Javascript
 367      * @Parametres
 368      * @return true ou false
 369      */
 370  
 371      echo "<script type='text/javascript'>
 372  	function verif_et_valide(){
 373          temoin_pb='n';
 374          if(document.getElementById('annuelle').checked==true){
 375              if(document.getElementById('sts_xml_file').value==''){
 376                  temoin_pb='o';
 377              }
 378          }
 379          confirmation=true;
 380          if(temoin_pb=='o'){
 381              confirmation=confirm(\"Vous avez choisi une importations annuelle sans fournir de fichier de STS. Si vous confirmez ce choix les professeurs existants ne seront plus membres du groupe Profs en fin d'import. Voulez-vous confirmer ce choix inhabituel?\");
 382          }
 383  
 384          if(confirmation==true){document.forms['formulaire1'].submit();}else{return false;}
 385      }
 386      </script>\n";
 387  
 388      // Fin de fonction javascript
 389  
 390  
 391              }
 392              include $pathlcsorse3."pdp.inc.php";
 393          }
 394          else{
 395  
 396  
 397              // Un import est-il deja en cours?
 398              $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'";
 399              $res1=mysql_query($sql);
 400              if(mysql_num_rows($res1)==0){
 401                  $imprt_cmpts_en_cours="n";
 402              }
 403              else{
 404                  $ligtmp=mysql_fetch_object($res1);
 405                  $imprt_cmpts_en_cours=$ligtmp->value;
 406              }
 407  
 408              if($imprt_cmpts_en_cours=="y"){
 409                  echo "<p><b>ATTENTION:</b> Il semble qu'un import soit d&#233;j&#224; en cours";
 410  
 411                  $sql="SELECT value FROM params WHERE name='dernier_import'";
 412                  $res2=mysql_query($sql);
 413                  if(mysql_num_rows($res1)>0){
 414                      $ligtmp=mysql_fetch_object($res2);
 415                      echo ":<br />\n<a href='$urlse3/Admin/result.".$ligtmp->value.".html' target='_blank'>$urlse3/Admin/result.".$ligtmp->value.".html</a>";
 416                  }
 417  
 418                  echo "<br />\n";
 419                  echo "Si vous &#234;tes certain que ce n'est pas le cas, vous pouvez faire sauter le verrou.<br />Sinon, il vaut mieux patienter quelques minutes.</p>\n";
 420  
 421                  echo "<p><a href='".$_SERVER['PHP_SELF']."?deverrouiller=y'>Faire sauter le verrou</a>.</p>\n";
 422                  include $pathlcsorse3."pdp.inc.php";
 423                  exit();
 424              }
 425  
 426  
 427              $nouveaux_comptes=0;
 428              $comptes_avec_employeeNumber_mis_a_jour=0;
 429              $nb_echecs=0;
 430  
 431              $tab_nouveaux_comptes=array();
 432              $tab_comptes_avec_employeeNumber_mis_a_jour=array();
 433  
 434              // Creation d'un temoin de mise a jour en cours.
 435              $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'";
 436              $res1=mysql_query($sql);
 437              if(mysql_num_rows($res1)==0){
 438                  $sql="INSERT INTO params SET name='imprt_cmpts_en_cours',value='y'";
 439                  $res0=mysql_query($sql);
 440              }
 441              else{
 442                  // Si la valeur est deja a y, c'est qu'on a fait F5... un import est deja en cours.
 443                  $ligtmp=mysql_fetch_object($res1);
 444                  if($ligtmp->value=="y"){
 445                      echo("<p>Un import est d&#233;j en cours");
 446  
 447                      $sql="SELECT value FROM params WHERE name='dernier_import'";
 448                      $res2=mysql_query($sql);
 449                      if(mysql_num_rows($res1)>0){
 450                          $ligtmp=mysql_fetch_object($res2);
 451                          echo ": <a href='$urlse3/Admin/result.".$ligtmp->value.".html' target='_blank'>$urlse3/Admin/result.".$ligtmp->value.".html</a>";
 452                      }
 453                      else{
 454                          echo ".";
 455                      }
 456  
 457                      echo("<br />Veuillez patienter.</p>\n");
 458                      echo("<p><a href='".$_SERVER['PHP_SELF']."'>Retour</a>.</p>\n");
 459                      echo("</body>\n</html>\n");
 460                      exit();
 461                  }
 462  
 463                  $sql="UPDATE params SET value='y' WHERE name='imprt_cmpts_en_cours'";
 464                  $res0=mysql_query($sql);
 465              }
 466  
 467              $timestamp=preg_replace("/ /","_",microtime());
 468  
 469              $sql="SELECT value FROM params WHERE name='dernier_import'";
 470              $res1=mysql_query($sql);
 471              if(mysql_num_rows($res1)==0){
 472                  $sql="INSERT INTO params SET name='dernier_import',value='$timestamp'";
 473                  $res0=mysql_query($sql);
 474              }
 475              else{
 476                  $sql="UPDATE params SET value='$timestamp' WHERE name='dernier_import'";
 477                  $res0=mysql_query($sql);
 478              }
 479  
 480  
 481  
 482  
 483              if(($_FILES["eleves_file"]["name"]=="")&&($_FILES["sts_xml_file"]["name"]=="")){
 484                  echo "<p style='color:red;'><b>ERREUR:</b> Aucun fichier n'a &#233;t&#233; fourni!</p>\n";
 485                  echo "<p><a href='".$_SERVER['PHP_SELF']."'>Retour</a>.</p>\n";
 486                  echo "</body>\n</html>\n";
 487                  exit();
 488              }
 489  
 490  
 491  
 492  
 493  
 494  
 495  
 496  
 497              $type_fichier_eleves=$_POST['type_fichier_eleves'];
 498  
 499              $tmp_eleves_file=$_FILES['eleves_file']['tmp_name'];
 500              $eleves_file=$_FILES['eleves_file']['name'];
 501              $size_eleves_file=$_FILES['eleves_file']['size'];
 502  
 503              /*
 504              //===============================================
 505              echo "\$tmp_eleves_file=$tmp_eleves_file<br />";
 506              echo "\$eleves_file=$eleves_file<br />";
 507              echo "\$size_eleves_file=$size_eleves_file<br />";
 508              //===============================================
 509              */
 510  
 511              if(($eleves_file!='')&&($tmp_eleves_file=='')) {
 512                  echo "<p>L'upload du fichier <span style='color:red;'>$eleves_file</span> a semble-t-il &eacute;chou&eacute;.</p>";
 513  
 514                  $upload_max_filesize=ini_get('upload_max_filesize');
 515                  $post_max_size=ini_get('post_max_size');
 516  
 517                  echo "<p>Il se peut que le fichier fourni ait &eacute;t&eacute; trop volumineux.<br />PHP est actuellement param&eacute;tr&eacute; avec:<br />\n";
 518                  echo "</p>\n";
 519                  echo "<blockquote>\n";
 520                  echo "<span style='color:blue;'>upload_max_filesize</span>=<span style='color:green;'>".$upload_max_filesize."</span><br />\n";
 521                  echo "<span style='color:blue;'>post_max_size</span>=<span style='color:green;'>".$post_max_size."</span><br />\n";
 522                  echo "</blockquote>\n";
 523                  echo "<p>\n";
 524                  echo "Si ces valeurs sont insuffisantes pour vos fichiers XML, il est possible de modifier les valeurs limites dans <span style='color:green;'>/etc/php5/apache2/php.ini</span>\n";
 525                  echo "</p>\n";
 526  
 527                  die();
 528              }
 529  
 530  
 531              $dest_file="$dossier_tmp_import_comptes/fichier_eleves";
 532              // SUR CA, IL VAUDRAIT SANS DOUTE MIEUX FORCER LE NOM DESTINATION POUR EVITER DES SALES BLAGUES
 533              if(file_exists($dest_file)){
 534                  unlink($dest_file);
 535              }
 536  
 537              if(is_uploaded_file($tmp_eleves_file)){
 538                  $source_file=stripslashes("$tmp_eleves_file");
 539                  $res_copy=copy("$source_file" , "$dest_file");
 540  
 541                  // Si jamais un XML non d�zipp� a �t� fourni
 542                  $extension_fichier_emis=strtolower(strrchr($eleves_file,"."));
 543                  if (($extension_fichier_emis==".zip")||($_FILES['eleves_file']['type']=="application/zip")) {
 544  
 545                      //if(!file_exists($racine_www."/includes/pclzip.lib.php")) {
 546                      if(!file_exists($chemin_www_includes."/pclzip.lib.php")) {
 547                          echo "<p style='color:red;'>Erreur : Un fichier ZIP a �t� fourni, mais la biblioth�que de d�zippage est absente.</p>\n";
 548                          require($pathlcsorse3."pdp.inc.php");
 549                          die();
 550                      }
 551                      else {
 552                          //$unzipped_max_filesize=getSettingValue('unzipped_max_filesize')*1024*1024;
 553  
 554                          // On consid�re un XML �l�ve de 20Mo maxi
 555                          $unzipped_max_filesize=20*1024*1024;
 556  
 557                          // $unzipped_max_filesize = 0    pas de limite de taille pour les fichiers extraits
 558                          // $unzipped_max_filesize < 0    extraction zip d�sactiv�e
 559                          if($unzipped_max_filesize>=0) {
 560                              //require_once('../lib/pclzip.lib.php');
 561                              require_once('pclzip.lib.php');
 562                              $archive = new PclZip($dest_file);
 563  
 564                              if (($list_file_zip = $archive->listContent()) == 0) {
 565                                  echo "<p style='color:red;'>Erreur : ".$archive->errorInfo(true)."</p>\n";
 566                                  require($pathlcsorse3."pdp.inc.php");
 567                                  die();
 568                              }
 569  
 570                              if(sizeof($list_file_zip)!=1) {
 571                                  echo "<p style='color:red;'>Erreur : L'archive contient plus d'un fichier.</p>\n";
 572                                  require($pathlcsorse3."pdp.inc.php");
 573                                  die();
 574                              }
 575  
 576                              /*
 577                              echo "<p>\$list_file_zip[0]['filename']=".$list_file_zip[0]['filename']."<br />\n";
 578                              echo "\$list_file_zip[0]['size']=".$list_file_zip[0]['size']."<br />\n";
 579                              echo "\$list_file_zip[0]['compressed_size']=".$list_file_zip[0]['compressed_size']."</p>\n";
 580                              */
 581                              //echo "<p>\$unzipped_max_filesize=".$unzipped_max_filesize."</p>\n";
 582  
 583                              if(($list_file_zip[0]['size']>$unzipped_max_filesize)&&($unzipped_max_filesize>0)) {
 584                                  echo "<p style='color:red;'>Erreur : La taille du fichier extrait (<i>".$list_file_zip[0]['size']." octets</i>) d�passe la limite param�tr�e (<i>$unzipped_max_filesize octets</i>).</p>\n";
 585                                  require($pathlcsorse3."pdp.inc.php");
 586                                  die();
 587                              }
 588  
 589                              $res_extract=$archive->extract(PCLZIP_OPT_PATH, "$dossier_tmp_import_comptes/");
 590                              if ($res_extract != 0) {
 591                                  echo "<p>Le fichier upload� a �t� d�zipp�.</p>\n";
 592                                  $fichier_extrait=$res_extract[0]['filename'];
 593                                  $res_copy=rename("$fichier_extrait" , "$dest_file");
 594                              }
 595                              else {
 596                                  echo "<p style='color:red'>Echec de l'extraction de l'archive ZIP.</p>\n";
 597                                  require($pathlcsorse3."pdp.inc.php");
 598                                  die();
 599                              }
 600                          }
 601                      }
 602  
 603                  }
 604  
 605              }
 606  
 607              //====================================================
 608  
 609              $tmp_sts_file=$_FILES['sts_xml_file']['tmp_name'];
 610              $sts_file=$_FILES['sts_xml_file']['name'];
 611              $size_sts_file=$_FILES['sts_xml_file']['size'];
 612  
 613  
 614              if(($sts_file!='')&&($tmp_sts_file=='')) {
 615                  echo "<p>L'upload du fichier <span style='color:red;'>$eleves_file</span> a semble-t-il &eacute;chou&eacute;.</p>";
 616  
 617                  $upload_max_filesize=ini_get('upload_max_filesize');
 618                  $post_max_size=ini_get('post_max_size');
 619  
 620                  echo "<p>Il se peut que le fichier fourni ait &eacute;t&eacute; trop volumineux.<br />PHP est actuellement param&eacute;tr&eacute; avec:\n";
 621                  echo "</p>\n";
 622                  echo "<blockquote>\n";
 623                  echo "<span style='color:blue;'>upload_max_filesize</span>=<span style='color:green;'>".$upload_max_filesize."</span><br />\n";
 624                  echo "<span style='color:blue;'>post_max_size</span>=<span style='color:green;'>".$post_max_size."</span><br />\n";
 625                  echo "</blockquote>\n";
 626                  echo "<p>\n";
 627                  echo "Si ces valeurs sont insuffisantes pour vos fichiers XML, il est possible de modifier les valeurs limites dans <span style='color:green;'>/etc/php5/apache2/php.ini</span>\n";
 628                  echo "</p>\n";
 629  
 630                  die();
 631              }
 632  
 633  
 634              $dest_file="$dossier_tmp_import_comptes/fichier_sts";
 635              // SUR CA, IL VAUDRAIT SANS DOUTE MIEUX FORCER LE NOM DESTINATION POUR EVITER DES SALES BLAGUES
 636              if(file_exists($dest_file)){
 637                  unlink($dest_file);
 638              }
 639  
 640              if(is_uploaded_file($tmp_sts_file)){
 641                  $source_file=stripslashes("$tmp_sts_file");
 642                  $res_copy=copy("$source_file" , "$dest_file");
 643              }
 644  
 645              //==========================================
 646  
 647              // Fichier optionnel f_uid_file
 648              $tmp_f_uid_file=$_FILES['f_uid_file']['tmp_name'];
 649              $f_uid_file=$_FILES['f_uid_file']['name'];
 650              $size_f_uid_file=$_FILES['f_uid_file']['size'];
 651  
 652              $dest_file="$dossier_tmp_import_comptes/f_uid.txt";
 653              if(file_exists($dest_file)){
 654                  unlink($dest_file);
 655              }
 656  
 657              $temoin_f_uid="n";
 658              if(is_uploaded_file($tmp_f_uid_file)){
 659                  $source_file=stripslashes("$tmp_f_uid_file");
 660                  $res_copy=copy("$source_file" , "$dest_file");
 661  
 662                  $temoin_f_uid="y";
 663              }
 664  
 665  
 666              //$timestamp=preg_replace("/ /","_",microtime());
 667              $echo_file="$racine_www/Admin/result.$timestamp.html";
 668              $dest_mode="file";
 669              $fich=fopen("$echo_file","w+");
 670              fwrite($fich,"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
 671  <html>
 672  <head>
 673  <style type='text/css'>
 674  body{
 675      background: url($background) ghostwhite bottom right no-repeat fixed;
 676  }
 677  </style>
 678  <!--head-->
 679  <title>Import de comptes</title>
 680  <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
 681  <!--meta http-equiv='Refresh' CONTENT='120;URL=result.$timestamp.html#menu' /-->
 682  <link type='text/css' rel='stylesheet' href='$stylecss' />
 683  <body>
 684  <h1 style='text-align:center;'>Import de comptes</h1>
 685  
 686  <div id='decompte' style='float: right; border: 1px solid black;'></div>
 687  
 688  <script type='text/javascript'>
 689  cpt=120;
 690  compte_a_rebours='y';
 691  
 692  
 693  /**
 694  * Decompte le temps mis pour l'import sconet
 695  * @language Javascript
 696  * @Parametres
 697  * @return le decompte qui s'affiche
 698  */
 699  
 700  
 701  function decompte(cpt){
 702      if(compte_a_rebours=='y'){
 703          document.getElementById('decompte').innerHTML=cpt;
 704          if(cpt>0){
 705              cpt--;
 706          }
 707          else{
 708              document.location='result.$timestamp.html';
 709          }
 710  
 711          setTimeout(\"decompte(\"+cpt+\")\",1000);
 712      }
 713      else{
 714          document.getElementById('decompte').style.display='none';
 715      }
 716  }
 717  
 718  decompte(cpt);
 719  </script>\n");
 720              fclose($fich);
 721  
 722  
 723  
 724  
 725  
 726              $chrono=isset($_POST['chrono']) ? $_POST['chrono'] : "n";
 727  
 728  
 729  
 730              // ===========================================================
 731              // AJOUTS: 20070914 boireaus
 732              $creer_equipes_vides=isset($_POST['creer_equipes_vides']) ? $_POST['creer_equipes_vides'] : 'n';
 733              $creer_cours=isset($_POST['creer_cours']) ? $_POST['creer_cours'] : 'y';
 734              $creer_matieres=isset($_POST['creer_matieres']) ? $_POST['creer_matieres'] : 'y';
 735              // ===========================================================
 736              $corriger_gecos_si_diff=isset($_POST['corriger_gecos_si_diff']) ? $_POST['corriger_gecos_si_diff'] : 'n';
 737              $alimenter_groupe_pp=isset($_POST['alimenter_groupe_pp']) ? $_POST['alimenter_groupe_pp'] : 'n';
 738  
 739  
 740              // Dossier pour les CSV
 741  
 742              //$temoin_creation_fichiers="non";
 743              //$temoin_creation_fichiers="oui";
 744              mt_srand((float) microtime()*1000000);
 745              $randval = mt_rand();
 746              $temoin_creation_fichiers=isset($_POST['temoin_creation_fichiers']) ? $_POST['temoin_creation_fichiers'] : "non";
 747              if($temoin_creation_fichiers!="non"){
 748                  if(!file_exists($racine_www.$chemin_csv)){
 749                      mkdir($racine_www.$chemin_csv);
 750                  }
 751                  //mt_srand((float) microtime()*1000000);
 752                  //$randval = mt_rand();
 753                  $chemin_http_csv=$chemin_csv."/".$timestamp."_".$randval;
 754                  $dossiercsv=$racine_www."/".$chemin_http_csv;
 755                  if(!mkdir($dossiercsv)){$temoin_creation_fichiers="non";}
 756              }
 757  
 758              //my_echo("disk_total_space($dossiercsv)=".disk_total_space($dossiercsv)."<br />");
 759  
 760  
 761              // Date et heure...
 762              $aujourdhui = getdate();
 763              $annee_aujourdhui = $aujourdhui['year'];
 764              $mois_aujourdhui = sprintf("%02d",$aujourdhui['mon']);
 765              $jour_aujourdhui = sprintf("%02d",$aujourdhui['mday']);
 766              $heure_aujourdhui = sprintf("%02d",$aujourdhui['hours']);
 767              $minute_aujourdhui = sprintf("%02d",$aujourdhui['minutes']);
 768              $seconde_aujourdhui = sprintf("%02d",$aujourdhui['seconds']);
 769  
 770              my_echo("<p>Import du $jour_aujourdhui/$mois_aujourdhui/$annee_aujourdhui &#224; $heure_aujourdhui:$minute_aujourdhui:$seconde_aujourdhui<br />\n(<i>l'op&#233;ration d&#233;marre 2min apr&#232;s; vous pouvez alors commencer &#224; jouer avec la touche F5 pour suivre le traitement</i>)</p>\n");
 771  
 772  
 773              // Importation annuelle
 774              $annuelle=isset($_POST['annuelle']) ? $_POST['annuelle'] : "n";
 775  
 776              // Mode simulation
 777              $simulation=isset($_POST['simulation']) ? $_POST['simulation'] : "n";
 778  
 779              // Prefixe LP/LEGT,...
 780              $prefix=isset($_POST['prefix']) ? $_POST['prefix'] : "";
 781              //$prefix=strtoupper(preg_replace("/[^A-Za-z0-9_]/", "", strtr(remplace_accents($prefix)," ","_")));
 782              $prefix=strtoupper(preg_replace("/[^A-Za-z0-9]/", "", remplace_accents($prefix)));
 783              if(strlen(preg_replace("/_/","",$prefix))==0) {$prefix="";}
 784              if (strlen($prefix)>0) {$prefix=$prefix."_";}
 785  
 786  /*
 787              echo "\$resultat=exec(\"/usr/bin/sudo $php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp'\",$retour);";
 788  
 789              $resultat=exec("/usr/bin/sudo $php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp'",$retour);
 790  
 791  */
 792  
 793  /*
 794              echo "\$resultat=exec(\"/usr/bin/sudo $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp'\",$retour);";
 795  
 796              $resultat=exec("/usr/bin/sudo $chemin/import_comptes.php '$type_fichier_eleves' '$chemin/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp'",$retour);
 797  */
 798  
 799              $fich=fopen("$dossier_tmp_import_comptes/import_comptes.sh","w+");
 800              //fwrite($fich,"#!/bin/bash\n/usr/bin/sudo $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers'\n");
 801  
 802              // ===========================================================
 803              // AJOUTS: 20070914 boireaus
 804              //fwrite($fich,"#!/bin/bash\n/usr/bin/php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers' '$chrono'\n");
 805  
 806              //fwrite($fich,"#!/bin/bash\n/usr/bin/php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers' '$chrono' '$creer_equipes_vides' '$creer_cours' '$creer_matieres'\n");
 807  
 808              //fwrite($fich,"#!/bin/bash\n/usr/bin/php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers' '$chrono' '$creer_equipes_vides' '$creer_cours' '$creer_matieres' '$corriger_gecos_si_diff'\n");
 809  
 810              fwrite($fich,"#!/bin/bash\n/usr/bin/php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers' '$chrono' '$creer_equipes_vides' '$creer_cours' '$creer_matieres' '$corriger_gecos_si_diff' '$temoin_f_uid' '$alimenter_groupe_pp'\n");
 811  
 812              //echo "<p>#!/bin/bash<br />\n/usr/bin/php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers' '$chrono' '$creer_equipes_vides' '$creer_cours' '$creer_matieres' '$corriger_gecos_si_diff'</p>\n";
 813              // ===========================================================
 814  
 815  
 816  
 817              fclose($fich);
 818              //chmod("/var/remote_adm/import_comptes.sh",750);
 819              chmod("$dossier_tmp_import_comptes/import_comptes.sh",0750);
 820  
 821              $d_minute_aujourdhui=sprintf("%02d",$minute_aujourdhui+2);
 822  
 823              //echo "\$resultat=exec(\"/usr/bin/at -f /var/remote_adm/import_comptes.sh $heure_aujourdhui:$d_minute_aujourdhui\",$retour);";
 824              //$resultat=exec("/usr/bin/at -f $dossier_tmp_import_comptes/import_comptes.sh $heure_aujourdhui:$d_minute_aujourdhui",$retour);
 825                          // sudo
 826                          //echo "DBG >>/usr/bin/sudo $chemin/run_import_comptes.sh $dossier_tmp_import_comptes<br />";
 827                          $resultat=exec("/usr/bin/sudo $chemin/run_import_comptes.sh $dossier_tmp_import_comptes", $retour);
 828  
 829              if(count($retour)>0){
 830                  echo "<p>Il semble que la programmation ait &#233;chou&#233;...";
 831                  for($i=0;$i<count($retour);$i++){
 832                      echo "\$retour[$i]=$retour[$i]<br />\n";
 833                  }
 834                  echo "</p>\n";
 835              }
 836  
 837  
 838  
 839  
 840              echo "<p>Lancement de l'import de comptes,... en mode <b>";
 841              if($simulation=="y"){echo "simulation";}else{echo "cr&#233;ation";}
 842              echo "</b>";
 843              if($prefix!=""){echo " avec le pr&#233;fixe <b>$prefix</b>";}
 844              echo ".</p>\n";
 845  
 846              echo "<p>Patientez un peu, puis suivez ce lien: <a href='../Admin/result.$timestamp.html' target='_blank'>R&#233;sultat</a></p>\n";
 847  
 848              echo("<p><i>NOTES:</i></p>\n");
 849              echo("<ul>\n");
 850              //echo("<li>Pour le moment la variable \$prefix='$prefix' n'est pas geree... A FAIRE</li>\n");
 851              echo("<li><p>Les changements de classe, suppressions de membres de groupes, en dehors de l'import annuel, ne sont pas g&#233;r&#233;s.<br />Dans le cas de changement de classe d'un &#233;l&#232;ve, il risque d'apparaitre membre de plusieurs classes...<br />Il faut faire le m&#233;nage &#224; la main.<br />On pourrait par contre ajouter un test pour lister les comptes membres de plusieurs classes<br />... contr&#244;ler aussi qu'aucun compte n'est &#224; la fois dans plusieurs parmi les groupes Profs, Eleves, Administratifs.</p></li>\n");
 852              echo("<li><p>Le mode simulation ne simule que la cr&#233;ation/r&#233;cup&#233;ration d'utilisateurs.<br />Cela permet d&#233;j&#224; de rep&#233;rer si les cr&#233;ations annonc&#233;es sont conformes &#224; ce que l'on attendait.<br />Les uid g&#233;n&#233;r&#233;s/simul&#233;s peuvent par contre &#234;tre erron&#233;s si jamais deux nouveaux utilisateurs correspondent &#224; des uid en doublon, il se peut qu'ils obtiennent en simulation le m&#234;me uid.<br /><i>Exemple:</i> Deux nouveaux arrivants Alex T&#233;rieur et Alain T&#233;rieur donneront tous deux l'uid 'terieura' en simulation alors qu'en mode cr&#233;ation, le premier obtiendrait l'uid 'terieura' et le deuxi&#232;me 'terieur2'.<br />Et si l'annuaire contenait d&#233;j&#224; un compte 'terieura' (<i>pour Anabelle Terieur</i>), les deux nouveaux comptes paraitraient recevoir en mode simultation l'uid 'terieur2' alors qu'en mode cr&#233;ation, le premier obtiendrait l'uid 'terieur2' et le deuxi&#232;me 'terieur3'.</p><p><i>Remarque:</i> Le mode simulation permet tout de m&#234;me la g&#233;n&#233;ration de fichiers f_ele.txt, f_div.txt, f_men.txt et f_wind.txt</p></li>\n");
 853  
 854              echo("</ul>\n");
 855  
 856              include $pathlcsorse3."pdp.inc.php";
 857              flush();
 858  
 859  
 860  
 861  
 862  
 863  
 864  /*
 865              //echo "On va lancer le script PHP.";
 866  
 867              $type_fichier_eleves=$_POST['type_fichier_eleves'];
 868  
 869              $tmp_eleves_file=$HTTP_POST_FILES['eleves_file']['tmp_name'];
 870              $eleves_file=$HTTP_POST_FILES['eleves_file']['name'];
 871              $size_eleves_file=$HTTP_POST_FILES['eleves_file']['size'];
 872  
 873              if(is_uploaded_file($tmp_eleves_file)){
 874                  $dest_file="tmp/$eleves_file";
 875                  // SUR CA, IL VAUDRAIT SANS DOUTE MIEUX FORCER LE NOM DESTINATION POUR EVITER DES SALES BLAGUES
 876  
 877                  $source_file=stripslashes("$tmp_eleves_file");
 878                  $res_copy=copy("$source_file" , "$dest_file");
 879  
 880                  $php="/usr/bin/php";
 881                  $chemin="/home/www/html/steph/test_php-cli";
 882                  $resultat=exec("$php $chemin/traitement.php $type_fichier_eleves $chemin/$dest_file",$retour);
 883                  for($i=0;$i<count($retour);$i++){
 884                      echo "\$retour[$i]=$retour[$i]<br />";
 885                  }
 886  
 887      //mer fev 28 12:53:29 steph@fuji:~/2007_02_21/se3
 888      //$ cat /tmp/rapport_test.txt
 889      //$type_fichier_eleves=csv
 890      //$eleves_file=/home/www/html/steph/test_php-cli/tmp/exportCSVExtraction_20061018.csv
 891      //mer fev 28 12:53:33 steph@fuji:~/2007_02_21/se3
 892      //$
 893  
 894  
 895      //On va lancer le script PHP.$retour[0]=
 896  
 897  
 898  
 899              }
 900  */
 901  
 902          }
 903  
 904          // Dans la version PHP4-CLI, envoyer le rapport par mail.
 905          // Envoyer le contenu de la page aussi?
 906  
 907          // Peut-etre forcer une sauvegarde de l'annuaire avant de proceder a une oepration qui n'est pas une simulation.
 908          // Ou placer le fichier de sauvegarde?
 909          // Probleme de l'encombrement a terme.
 910      }
 911      //include $pathlcsorse3."pdp.inc.php";
 912  ?>


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1