[ Index ]
 

Code source de SPIP Agora 1.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/Agora1-4/ecrire/ -> install.php (source)

   1  <?php
   2  /*****************************************************
   3  * This file is part of Agora, web based content management system.
   4  *
   5  * Agora is free software; you can redistribute it and/or modify
   6  * it under the terms of the GNU General Public License as published by
   7  * the Free Software Foundation; version 2 of the License.
   8  *
   9  * Agora is distributed in the hope that it will be useful,
  10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  * GNU General Public License for more details (file "COPYING").
  13  *
  14  * Copyright © Arnaud Martin, Antoine Pitrou et Philippe Rivière.
  15  * List of authors detailed in "copyright_fr.html" file.
  16  * E-mail : agora@sig.premier-ministre.gouv.fr
  17  * Web site : http://www.agora.gouv.fr
  18  *****************************************************/
  19  include ("inc_version.php");
  20  
  21  require_once(dirname(__FILE__)."/include/bd/inc_profil_factory.php");
  22  include_ecrire ("inc_presentation.php");
  23  $fichier_ouvert = array();
  24  
  25  gerer_menu_langues();
  26  
  27  if (file_exists("include/bd/inc_config_metier.php")) {
  28      install_debut_html();
  29      echo "<P><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=4>" . _T('avis_espace_interdit'). "</FONT>";
  30  
  31      install_fin_html();
  32      exit;
  33  }
  34  
  35  include_ecrire ("inc_base.php");
  36  
  37  // Etapes de l'installation standard
  38  if ($etape == 5) {
  39      // Etape finale : creation du premier profil admin, 
  40      // option du jeu de donnees par defaut 
  41      install_debut_html();
  42  
  43      echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>" . _T('info_derniere_etape'). "</B></FONT>";
  44      echo "<P>";
  45      echo "<B>" . _T('info_code_acces'). "</B>";
  46      echo "<P>" . _T('info_utilisation_spip');
  47  
  48      include_ecrire ("inc_meta.php");
  49      require_once(dirname(__FILE__). '/include/bd/inc_auteur_factory.php');
  50  
  51      if ($login) {
  52          $nom = addslashes($nom);
  53          $auteurMetier = &recuperer_instance_auteur();
  54          $allAuteurs = $auteurMetier->getAllForLogin($login);
  55  
  56          if (PEAR::isError($allAuteurs)) {
  57              die($allAuteurs->getMessage());
  58          }
  59          unset($id_auteur);
  60  
  61          while (list(, $monAuteur) = each($allAuteurs)) {
  62              $id_auteur = $monAuteur->getAuteurId();
  63          }
  64          $mdpass = md5($pass);
  65          $htpass = generer_htpass($pass);
  66  
  67          if ($id_auteur) {
  68              $auteurMetier = &recuperer_instance_auteur();
  69              $loadOK = $auteurMetier->load($id_auteur);
  70              if (PEAR::isError($loadOK)) {
  71                  die($loadOK->getMessage());
  72              }
  73              else {
  74                  $auteurMetier->setNom($nom);
  75                  $auteurMetier->setEmail($email);
  76                  $auteurMetier->setLogin($login);
  77                  $auteurMetier->setPass($mdpass);
  78                  $auteurMetier->setAleaActuel('');
  79                  $auteurMetier->setAleaFutur(3272); //TEMPORAIRE
  80                  $auteurMetier->setHtpass($htpass);
  81                  $profilMetier = &recuperer_instance_profil();
  82                  $monProfil = $profilMetier->getProfilForIntitule('item_webmestre');
  83                  $auteurMetier->setProfil($monProfil->getPoids());
  84                  $auteurMetier->setStatut('minirezo');
  85                  $updateOK = $auteurMetier->update();
  86                  if (PEAR::isError($updateOK)) {
  87                      die($updateOK->getMessage());
  88                  }
  89              }
  90          }
  91          else {
  92              $auteurMetier = &recuperer_instance_auteur();
  93              $auteurMetier->setNom($nom);
  94              $auteurMetier->setEmail($email);
  95              $auteurMetier->setLogin($login);
  96              $auteurMetier->setPass($mdpass);
  97              $auteurMetier->setHtpass($htpass);
  98              $auteurMetier->setAleaActuel('');  //TEMPORAIRE
  99              $auteurMetier->setAleaFutur(3272); //TEMPORAIRE
 100              $auteurMetier->setSource('spip');
 101              $profilMetier = &recuperer_instance_profil();
 102              $monProfil = $profilMetier->getProfilForIntitule('item_administrateur');
 103              $auteurMetier->setProfil($monProfil->getPoids());
 104              $auteurMetier->setStatut('minirezo');
 105              $createOK = $auteurMetier->create();
 106              if (PEAR::isError($createOK)) {
 107                  die($createOK->getMessage());
 108              }
 109          }
 110      }
 111  
 112      // Email de l'administrateur copié dans les metas
 113      ecrire_meta('email_webmaster', $email);
 114      include_ecrire ("inc_config.php");
 115      init_config();
 116      init_langues();
 117  
 118      // est-ce encore utilise dans Agora ?
 119      if ($hebergeur == 'nexenservices') {
 120          echo "<p><B>"._T('info_nexen_1')."</B><br />";
 121          echo "<p>"._T('info_nexen_2');
 122          echo "<a href=\"http://www.nexenservices.com/webmestres/htlocal.php\" target=\"_blank\">".
 123                  _T('info_nexen_3')."</a>.";
 124          echo "<p>"._T('info_nexen_4');
 125      }
 126      else {
 127          include_ecrire ("inc_acces.php");
 128          ecrire_acces();
 129          $protec = "deny from all\n";
 130          $myFile = fopen("data/.htaccess", "w");
 131          fputs($myFile, $protec);
 132          fclose($myFile);
 133      }
 134      @unlink("data/inc_meta_cache.php");
 135      
 136      // Finalisation du fichier de connexion BD
 137      if (!@rename(dirname(__FILE__). "/include/bd/inc_config_metier_install.php",
 138                   dirname(__FILE__). "/include/bd/inc_config_metier.php")) {
 139          copy(dirname(__FILE__). "/include/bd/inc_config_metier_install.php",
 140               dirname(__FILE__). "/include/bd/inc_config_metier.php");
 141          @unlink(dirname(__FILE__). "/include/bd/inc_config_metier_install.php");
 142      }
 143  
 144      // Jeu de donnees pour les squelettes par defaut
 145      echo "<FORM ACTION='index.php' METHOD='post'>";
 146      echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' " .
 147              "VALUE='" . _T('bouton_suivant'). " >>'>";
 148      echo "</FORM></DIV>";
 149      echo "<BR><font face='Verdana,Arial,Sans,sans-serif' size='4' color='#970038'><B>" . 
 150          _T('info_install_data_supplementaires'). "</b></font>";
 151      echo "<P>" . _T('detail_install_data_supplementaires');
 152      echo "<FORM ACTION='install_data.php' METHOD='post'>";
 153      echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' " .
 154              "VALUE='" . _T('bouton_installer_data'). " >>'>";
 155      echo "</FORM>";
 156  
 157      ecrire_metas();
 158      $adresse_site = "http://$HTTP_HOST" . substr($REQUEST_URI, 0, strpos($REQUEST_URI, "/ecrire"));
 159      ecrire_meta("adresse_site", $adresse_site);
 160      install_fin_html();
 161  }
 162  else if ($etape == 4) {
 163      // Formulaire des informations personnelles de l'administrateur
 164      install_debut_html();
 165  
 166      echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>" . 
 167          _T('info_informations_personnelles'). "</FONT>";
 168      echo "<P>";
 169      echo "<b>"._T('texte_informations_personnelles_1')."</b>";
 170      echo aide("install5");
 171      echo "<p>"._T('texte_informations_personnelles_2')." ";
 172      echo _T('info_laisser_champs_vides');
 173  
 174      echo "<FORM ACTION='install.php' METHOD='post'>";
 175      echo "<INPUT TYPE='hidden' NAME='etape' VALUE='5'>";
 176  
 177      echo "<fieldset><label><B>"._T('info_identification_publique')."</B><BR></label>";
 178      echo "<B>"._T('entree_signature')."</B><BR>";
 179      echo _T('entree_nom_pseudo_1')."<BR>";
 180      echo "<INPUT TYPE='text' NAME='nom' CLASS='formo' VALUE=\"$nom\" SIZE='40'><P>";
 181  
 182      echo "<B>"._T('entree_adresse_email')."</B><BR>";
 183      echo "<INPUT TYPE='text' NAME='email' CLASS='formo' VALUE=\"$email\" SIZE='40'></fieldset><P>\n";
 184  
 185      echo "<fieldset><label><B>"._T('entree_identifiants_connexion')."</B><BR></label>";
 186      echo "<B>"._T('entree_login')."</B><BR>";
 187      echo _T('info_plus_trois_car')."<BR>";
 188      echo "<INPUT TYPE='text' NAME='login' CLASS='formo' VALUE=\"$login\" SIZE='40'><P>\n";
 189  
 190      echo "<B>"._T('entree_mot_passe')."</B> <BR>";
 191      echo _T('info_plus_cinq_car_2')."<BR>";
 192      echo "<INPUT TYPE='password' NAME='pass' CLASS='formo' VALUE=\"$pass\" SIZE='40'></fieldset><P>\n";
 193  
 194      echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' "
 195              ."VALUE='"._T('bouton_suivant')." >>'>";
 196      echo "</FORM>";
 197      echo "<p>";
 198  
 199      if ($flag_ldap AND !$ldap_present) {
 200          echo "<div style='border: 1px solid #404040; padding: 10px; text-align: left;'>";
 201          echo "<b>"._T('info_authentification_externe')."</b>";
 202          echo "<p>"._T('texte_annuaire_ldap_1');
 203          echo "<FORM ACTION='install.php' METHOD='post'>";
 204          echo "<INPUT TYPE='hidden' NAME='etape' VALUE='ldap1'>";
 205          echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' ".
 206                  "VALUE=\"" . _T('bouton_acces_ldap'). "\">";
 207          echo "</FORM>";
 208      }
 209      install_fin_html();
 210  }
 211  else if ($etape == 3) {
 212      // Creation des tables et de leur contenu par defaut
 213      install_debut_html();
 214  
 215      require_once("DB.php");
 216      require_once(dirname(__FILE__).'/include/bd/parameters.php');
 217  
 218      // Cette classe permet d'executer des requetes SQL depuis des fichiers
 219      // SQL convenablement formattes
 220      require_once(dirname(__FILE__).'/install/SQLScript/spipagora.php');
 221  
 222      $bd_params = new BD_parameters($type_bd, $login_db, $pass_db, $adresse_db, $nom_instance_db);
 223      $db = &DB::connect($bd_params->getDSN(), null);
 224  
 225      $sqlScript = new SQLScript_spipagora(dirname(__FILE__)."/install/sql/$type_bd/agora_install.sql", BLOCKMODE);
 226      $result_ok = $sqlScript->executeScript($db);
 227  
 228      if (!$result_ok) {
 229          echo "<B>"._T('avis_operation_echec')."</B> "._T('texte_operation_echec');
 230          exit;
 231      }
 232  
 233      $sqlScript->setSqlFile(dirname(__FILE__)."/install/sql/$type_bd/agora_data_install.sql");
 234      $sqlScript->setFileType(LINEMODE);
 235      $result_ok = $sqlScript->executeScript($db);
 236  
 237      // Preparation du fichier de connexion BD
 238      if ($result_ok) {
 239          $conn = "<"."?php\n";
 240          $conn .= "require_once(dirname(__FILE__).\"/parameters.php\");\n";
 241          $conn .= "global \$bd_params;\nglobal \$bd_params_ldap;\nglobal \$bd_options;\n";
 242          $conn .= "\$dbType = '$type_bd';\n";
 243          $conn .= "\$dbLogin = '$login_db';\n";
 244          $conn .= "\$dbPassword = '$pass_db';\n";
 245          $conn .= "\$dbHost = '$adresse_db';\n";
 246          $conn .= "\$dbName = '$nom_instance_db';\n";
 247          $conn .= "\$bd_options = array();\n\$bd_options['optimize'] = 'portability';\n";
 248          $conn .= "\$bd_options['persistent'] = true;\n\$bd_options['autofree'] = true;\n";
 249          $conn .= "\$bd_params = new BD_parameters(\$dbType, \$dbLogin, \$dbPassword, \$dbHost, \$dbName);\n";
 250          $conn .= "\$GLOBALS['db_ok'] = 1;\n";
 251          $conn .= "?".">";
 252          $myFile = fopen(dirname(__FILE__)."/include/bd/inc_config_metier_install.php", "wb");
 253          fputs($myFile, $conn);
 254          fclose($myFile);
 255  
 256          echo "<B>"._T('info_base_installee')."</B><P>"._T('info_etape_suivante_1');
 257          echo "<FORM ACTION='install.php' METHOD='post'>";
 258          echo "<INPUT TYPE='hidden' NAME='etape' VALUE='4'>";
 259          echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' VALUE='".
 260                  _T('bouton_suivant')." >>'>";
 261          echo "</FORM>";
 262      }
 263      else {
 264          echo "<B>"._T('avis_operation_echec')."</B> "._T('texte_operation_echec');
 265      }
 266      install_fin_html();
 267  }
 268  else if ($etape == 2) {
 269      // Test et diagnostic sur la connexion BD
 270      install_debut_html();
 271      
 272      require_once(dirname(__FILE__).'/include/bd/testConnection.php');
 273      echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>"._T('info_connexion_base')."</FONT>";
 274  
 275      // Rajouter traitement des DB_Options defini en focntion de $type_bd
 276      $bd_params = new BD_parameters($type_bd, $login_db, $pass_db, $adresse_db, $nom_instance_db);
 277      $testConnection = new BD_testConnection();
 278      $db_connect = $testConnection->testDB($bd_params);
 279  
 280      echo "<p>";
 281      if ($db_connect == 0) {
 282          $flag = $testConnection->isSpip($bd_params, '1.727');
 283          if (DB::isError($flag)) {
 284              die ($flag->getMessage());
 285          }
 286  
 287          switch ($flag) {
 288              case 'SPIP OK':
 289                  // La BDD est installee, creation de mes_options.php
 290                  $opts = "<"."?php\n";
 291                  $opts.= "\$GLOBALS['table_prefix'] = \"$prefix_table\";\n";
 292                  $opts.= "\$GLOBALS['cookie_prefix'] = \"$prefix_cookie\";\n";
 293                  $opts.= "\$GLOBALS['dossier_squelettes']= \"afficher\";\n";
 294                  $opts.= "?".">\n";
 295                  $myFile = fopen(dirname(__FILE__)."/mes_options.php", "wb");
 296                  fputs($myFile, $opts);
 297                  fclose($myFile);
 298  
 299                  echo "<B>"._T('info_connexion_ok')."</B><P> "._T('info_etape_suivante_migration');
 300                  echo "<FORM ACTION='install.php' METHOD='post'>";
 301                  echo "<INPUT TYPE='hidden' NAME='etape' VALUE='migration1'>";
 302                  echo "<INPUT TYPE='hidden' NAME='type_bd' VALUE=\"$type_bd\" SIZE='40'>";
 303                  echo "<INPUT TYPE='hidden' NAME='nom_instance_db' VALUE=\"$nom_instance_db\" SIZE='40'>";
 304                  echo "<INPUT TYPE='hidden' NAME='adresse_db' VALUE=\"$adresse_db\" SIZE='40'>";
 305                  echo "<INPUT TYPE='hidden' NAME='login_db' VALUE=\"$login_db\">";
 306                  echo "<INPUT TYPE='hidden' NAME='pass_db' VALUE=\"$pass_db\"><P>";
 307                  echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' VALUE='"
 308                          ._T('bouton_suivant')." >>'>";
 309                  echo "</FORM>";
 310              break;
 311  
 312              case 'SPIP NOT OK':
 313                  // Connexion BDD ok, mais une autre version d'Agora
 314                  // existe deja sur cette base
 315                  echo _T('info_spip_not_ok');
 316              break;
 317  
 318              case 'NEW INSTALL':
 319                  // Creation de mes_options.php
 320                  $opts = "<"."?php\n";
 321                  $opts.= "\$GLOBALS['table_prefix'] = \"$prefix_table\";\n";
 322                  $opts.= "\$GLOBALS['cookie_prefix'] = \"$prefix_cookie\";\n";
 323                  $opts.= "\$GLOBALS['dossier_squelettes'] = \"afficher\";\n";
 324                  $opts.= "?".">\n";
 325                  $myFile = fopen(dirname(__FILE__)."/mes_options.php", "wb");
 326                  fputs($myFile, $opts);
 327                  fclose($myFile);
 328  
 329                  echo "<B>"._T('info_connexion_ok')."</B><P> "._T('info_etape_suivante_2');
 330                  echo "<FORM ACTION='install.php' METHOD='post'>";
 331                  echo "<INPUT TYPE='hidden' NAME='etape' VALUE='3'>";
 332                  echo "<INPUT TYPE='hidden' NAME='type_bd'  VALUE=\"$type_bd\" SIZE='40'>";
 333                  echo "<INPUT TYPE='hidden' NAME='nom_instance_db'  VALUE=\"$nom_instance_db\" SIZE='40'>";
 334                  echo "<INPUT TYPE='hidden' NAME='adresse_db'  VALUE=\"$adresse_db\" SIZE='40'>";
 335                  echo "<INPUT TYPE='hidden' NAME='login_db' VALUE=\"$login_db\">";
 336                  echo "<INPUT TYPE='hidden' NAME='pass_db' VALUE=\"$pass_db\"><P>";
 337                  echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' VALUE='".
 338                          _T('bouton_suivant')." >>'>";
 339                  echo "</FORM>";
 340              break;
 341          }
 342      }
 343      else {
 344          echo "<B>"._T('avis_connexion_echec_1')."</B>";
 345          echo "<P>"._T('avis_connexion_echec_2');
 346          echo "<P><FONT SIZE=2>"._T('avis_connexion_echec_3')."</FONT>";
 347      }
 348      install_fin_html();
 349  }
 350  else if ($etape == 1) {
 351      // Vérification de certains fichiers PEAR prerequis       
 352      // date.php, db.php, mail.php, log.php
 353  
 354      //L'étape deux est activée
 355      $etape2 = true;
 356      //Liste des fichiers du package PEAR nécessaires à l'installation d'AGORA
 357      $liste_fichier_pear = array('Date.php', 'DB.php', 'Mail.php','Log.php', 'DB/NestedSet.php',
 358                              'DB/NestedSet/DB.php');
 359  
 360      //Pour l'instant il ne manque aucun fichier     
 361      $liste_fichier_manquant = NULL;
 362  
 363      //utilisation des chemins déclarés dans les options : les include_path        
 364      // gestion du PATH_SEPARATOR 
 365      if (!defined("PATH_SEPARATOR")) {
 366             if (eregi('Win', getenv('SERVER_SOFTWARE'))) {
 367                  define ("PATH_SEPARATOR", ";");
 368             } else {
 369                  define ("PATH_SEPARATOR", ':');
 370             }
 371      }
 372  
 373      //On crée la liste des chemins d'accés des fichiers
 374      $path_package = ini_get('include_path');
 375      $tableau_chemin = explode(PATH_SEPARATOR, $path_package);
 376      // Pour chaque fichier pear nécessaire, on regarde dans tous les chemins si on peut les ouvrir
 377      //On place les fichiers ouvert avec succées dans le tableau des fichier_ouvert
 378      foreach($liste_fichier_pear as $fichier){
 379          foreach ($tableau_chemin as $chemin) {
 380                  if (substr ($chemin, strlen($chemin)-1, 1) != '/') $chemin .= '/';
 381                  if($handler=file_exists($chemin.$fichier)){
 382                      $fichier_ouvert[] = $fichier;
 383                  }
 384            }
 385      }
 386  
 387      //On parcourt à nouveau la liste des fichiers nécessaire 
 388      //et on fait la différence avec ceux qui sont stockés dans $fichier_vouert
 389      foreach($liste_fichier_pear as $fichier){
 390          if(!in_array($fichier, $fichier_ouvert))
 391              $liste_fichier_manquant[] = $fichier;
 392      }
 393  
 394      // On vérifie la faisabilité en affichant la liste des fichiers manquant tout en stoppant la procédure d'installation    
 395      if($liste_fichier_manquant!=""){
 396          install_debut_html();
 397          echo "<p>"._T('liste_fichier')."</p>";
 398          echo "<ul>";
 399          foreach ($liste_fichier_manquant as $value) {
 400              echo ("<li><a href='http://pear.php.net/package/PEAR'> $value </a></li>");
 401          }
 402          echo "</ul>";
 403          echo "<p>"._T('conseil_installation')."</p>";
 404          $etape2 = false;
 405          install_fin_html();
 406  
 407      }
 408      else{
 409          // Test de la version de NestedSet
 410          require_once("DB/NestedSet.php");
 411          $obj = new DB_NestedSet('');
 412          if (method_exists($obj, 'apiVersion')) { // verification de l'existance de cette methode
 413              $api = $obj->apiVersion();
 414              $version = str_replace('.', '', $api['version']);
 415              if ($version < 13) { // au moins version 1.3 pour NestedSet
 416                  install_debut_html();
 417                  $etape2 = false;
 418                  echo '<p>'._T('maj_nestedset').'</p';
 419                  install_fin_html();
 420              }
 421  
 422              //On continue l'installation, la variable étape 2 reste à true...
 423              if ($etape2) {
 424                  install_debut_html();
 425                  echo "<p>"._T('configuration_ok')."</p>";
 426              }
 427          } else { // très vielle version de Nestedset 
 428              install_debut_html();
 429              $etape2 = false;
 430              echo '<p>'._T('maj_nestedset').'</p';
 431              install_fin_html();
 432          }
 433      }
 434  
 435      if ($etape2 == true) {
 436          // Formulaire pour la connexion BDD
 437          echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>"._T('info_connexion_base')."</FONT>";
 438          echo "<P>"._T('texte_connexion_base');
 439          echo aide("install1");
 440  
 441          $type_bd = 'mysql';
 442          $adresse_db = 'localhost';
 443          $nom_instance_db = '';
 444          $login_db = $login_hebergeur;
 445          $pass_db = '';
 446          $prefix_table = 'ago';
 447          $prefix_cookie = 'ago';
 448  
 449          //$bd_types = array('mysql' => 'MySQL', 'mssql' => 'SQL Server', 'oci8' => 'Oracle 8i', 'pgsql' => 'PostgreSQL');
 450          $bd_types = array('mysql' => 'MySQL', 'pgsql' => 'PostgreSQL', 'sqlite' => 'SQLite',
 451                      'mssql' => 'SQL Server');
 452          echo "<p><FORM ACTION='install.php' METHOD='post'>";
 453          echo "<INPUT TYPE='hidden' NAME='etape' VALUE='2'>";
 454          echo '<P>'._T('install_type_base');
 455          echo '<br><select name="type_bd">';
 456  
 457          while (list($bd_type_index, $bd_type_text) = each($bd_types)) {
 458              if ($type_bd == $bd_type_index)
 459                  $add_select = ' selected';
 460              else
 461                  $add_select = '';
 462              echo '<option value="'.$bd_type_index.'"'.$add_select.'>'.$bd_type_text;
 463          }
 464  
 465          echo '</select>';
 466          echo "<P><fieldset><label><B>"._T('nom_base_donnee_1')."</B><BR></label>";
 467          echo _T('nom_base_donnee_2')."<BR>";
 468          echo "<INPUT TYPE='text' NAME='nom_instance_db' CLASS='formo' VALUE=\"$nom_instance_db\"
 469                      SIZE='40'></fieldset><P>";
 470          echo "<fieldset><label><B>"._T('entree_base_donnee_1')."</B><BR></label>";
 471          echo _T('entree_base_donnee_2')."<BR>";
 472          echo "<INPUT TYPE='text' NAME='adresse_db' CLASS='formo' VALUE=\"$adresse_db\" SIZE='40'>
 473                      </fieldset><P>";
 474          echo "<fieldset><label><B>"._T('entree_login_connexion_1')."</B><BR></label>";
 475          echo _T('entree_login_connexion_2')."<BR>";
 476          echo "<INPUT TYPE='text' NAME='login_db' CLASS='formo' VALUE=\"$login_db\" SIZE='40'></fieldset><P>";
 477          echo "<fieldset><label><B>"._T('entree_mot_passe_1')."</B><BR></label>";
 478          echo _T('entree_mot_passe_2')."<BR>";
 479          echo "<INPUT TYPE='password' NAME='pass_db' CLASS='formo' VALUE=\"$pass_db\" SIZE='40'></fieldset><P>";
 480          echo "<fieldset><label><B>"._T('install_choix_prefix_table')."</B><BR></label>";
 481          echo "<B>"._T('avertissement_avancee_prefix')."</B><BR>";
 482          echo _T('entree_prefix_table')."<BR>";
 483          echo "<INPUT TYPE='text' NAME='prefix_table' CLASS='formo' ".
 484                  "VALUE=\"$prefix_table\" SIZE='40'></fieldset><P>";
 485          echo "<fieldset><label><B>"._T('install_choix_prefix_cookie')."</B><BR></label>";
 486          echo "<B>"._T('avertissement_avancee_prefix')."</B><BR>";
 487          echo _T('entree_prefix_cookie')."<BR>";
 488          echo "<INPUT TYPE='text' NAME='prefix_cookie' CLASS='formo' ".
 489                  "VALUE=\"$prefix_cookie\" SIZE='40'></fieldset><P>";
 490          echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' "
 491                  ."VALUE='"._T('bouton_suivant')." >>'>";
 492          echo "</FORM>";
 493  
 494          install_fin_html();
 495      }
 496  }
 497  else if ($etape == 'dirs') {
 498      header("Location: ../spip_test_dirs.php");
 499  }
 500  else if (!$etape) {
 501      // Accueil de l'install Agora
 502      $menu_langues = menu_langues();
 503      if (!$menu_langues)
 504          header("Location: ../spip_test_dirs.php");
 505      else {
 506          install_debut_html();
 507  
 508          echo "<p>&nbsp;</p><p align='center'><img src='img_pack/agora_install.gif'></p>";
 509          echo "<p>&nbsp;</p><p>"._T('install_select_langue');
 510          echo "<p><div align='center'>".$menu_langues."</div>";
 511          echo "<p><FORM ACTION='install.php' METHOD='get'>";
 512          echo "<INPUT TYPE='hidden' NAME='etape' VALUE='dirs'>";
 513          echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' ".
 514                  "VALUE='"._T('bouton_suivant')." >>'>";
 515          echo "</FORM>";
 516          
 517          install_fin_html();
 518      }
 519  }
 520  
 521  
 522  // Etapes de l'installation LDAP, cinq parties
 523  else if ($etape == 'ldap5') {
 524      // Config LDAP Cinquieme etape
 525      install_debut_html();
 526  
 527      include_ecrire ('inc_meta.php');
 528      ecrire_meta("ldap_statut_import", $statut_ldap);
 529      ecrire_metas();
 530  
 531      echo "<B>"._T('info_ldap_ok')."</B>";
 532      echo "<P>"._T('info_terminer_installation');
 533      echo "<FORM ACTION='install.php' METHOD='post'>";
 534      echo "<INPUT TYPE='hidden' NAME='etape' VALUE='4'>";
 535      echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' ".
 536              "VALUE='"._T('bouton_suivant')." >>'>";
 537      echo "</FORM>";
 538  }
 539  else if ($etape == 'ldap4') {
 540      // Config LDAP quatrieme etape
 541      install_debut_html();
 542  
 543      if (!$base_ldap)
 544          $base_ldap = $base_ldap_text;
 545  
 546      $ldap_link = @ldap_connect("$adresse_ldap", "$port_ldap");
 547      @ldap_bind($ldap_link, "$login_ldap", "$pass_ldap");
 548  
 549      // Essayer de verifier le chemin fourni
 550      $r = @ldap_compare($ldap_link, $base_ldap, "objectClass", "");
 551      $fail = (ldap_errno($ldap_link) == 32);
 552  
 553      if ($fail) {
 554          echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>".
 555                  _T('info_chemin_acces_annuaire'). "</B></FONT>";
 556          echo "<P>";
 557  
 558          echo "<B>"._T('avis_operation_echec')."</B> "._T('avis_chemin_invalide_1')." (<tt>".
 559                  htmlspecialchars($base_ldap);
 560          echo "</tt>) "._T('avis_chemin_invalide_2');
 561      }
 562      else {
 563          echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>"._T('info_reglage_ldap')."</FONT>";
 564          echo "<P>";
 565  
 566          $conn = join('', file(dirname(__FILE__).'/include/bd/inc_config_metier_install.php'));
 567  
 568          if ($p = strpos($conn, '?'.'>'))
 569              $conn = substr($conn, 0, $p);
 570  
 571          $conn .= "\$bd_params_ldap = new BD_parameters('ldap3', '$login_ldap',
 572                  '$pass_ldap', '$adresse_ldap', '$base_ldap');\n";
 573          $conn .= "//Set here if you want to get authorization on a LDAP server\n";
 574          $conn .= "\$GLOBALS['ldap_present'] = true;\n";
 575          $conn .= "//Set here which attribute is use for the ldap authorization 'uid', 'login',
 576                  'userid', 'cn', 'sn',... \n";
 577          $conn .= "\$GLOBALS['ldap_login_attribute'] = 'cn';\n";
 578          $conn .= "?".">";
 579          $myFile = fopen(dirname(__FILE__).'/include/bd/inc_config_metier_install.php', "wb");
 580          fputs($myFile, $conn);
 581          fclose($myFile);
 582  
 583          echo "<p><FORM ACTION='install.php' METHOD='post'>";
 584          echo "<INPUT TYPE='hidden' NAME='etape' VALUE='ldap5'>";
 585          echo "<fieldset><label><B>"._T('info_statut_utilisateurs_1')."</B></label><BR>";
 586          echo _T('info_statut_utilisateurs_2')." ";
 587          echo "<p>";
 588          echo "<INPUT TYPE='Radio' NAME='statut_ldap' VALUE=\"forum\" id='visit'>";
 589          echo "<label for='visit'><b>"._T('info_visiteur_1')."</b></label> "._T('info_visiteur_2')."<br>";
 590          echo "<INPUT TYPE='Radio' NAME='statut_ldap' VALUE=\"comite\" id='redac' CHECKED>";
 591          echo "<label for='redac'><b>"._T('info_redacteur_1')."</b></label> "._T('info_redacteur_2')."<br>";
 592          echo "<INPUT TYPE='Radio' NAME='statut_ldap' VALUE=\"minirezo\" id='admin'>";
 593          echo "<label for='admin'><b>"._T('info_administrateur_1')."</b></label> ".
 594                  _T('info_administrateur_2'). "<br>";
 595          echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' VALUE='".
 596                  _T('bouton_suivant')." >>'>";
 597          echo "</FORM>";
 598      }
 599      
 600      install_fin_html();
 601  }
 602  else if ($etape == 'ldap3') {
 603      // Config LDAP troisieme etape
 604      install_debut_html();
 605  
 606      echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>"._T('info_chemin_acces_1')."</FONT>";
 607      echo "<P>"._T('info_chemin_acces_2');
 608  
 609      $ldap_link = @ldap_connect("$adresse_ldap", "$port_ldap");
 610      @ldap_bind($ldap_link, "$login_ldap", "$pass_ldap");
 611  
 612      $result = @ldap_read($ldap_link, "", "objectclass=*", array("namingContexts"));
 613      $info = @ldap_get_entries($ldap_link, $result);
 614  
 615      echo "<FORM ACTION='install.php' METHOD='post'>";
 616      echo "<INPUT TYPE='hidden' NAME='etape' VALUE='ldap4'>";
 617      echo "<INPUT TYPE='hidden' NAME='adresse_ldap' VALUE=\"$adresse_ldap\">";
 618      echo "<INPUT TYPE='hidden' NAME='port_ldap' VALUE=\"$port_ldap\">";
 619      echo "<INPUT TYPE='hidden' NAME='login_ldap' VALUE=\"$login_ldap\">";
 620      echo "<INPUT TYPE='hidden' NAME='pass_ldap' VALUE=\"$pass_ldap\">";
 621      echo "<fieldset>";
 622  
 623      $checked = false;
 624  
 625      if (is_array($info) && $info["count"] > 0) {
 626          echo "<P>"._T('info_selection_chemin_acces');
 627          echo "<UL>";
 628          $n = 0;
 629  
 630          for ($i = 0; $i < $info["count"]; $i++) {
 631              $names = $info[$i]["namingcontexts"];
 632              if (is_array($names)) {
 633                  for ($j = 0; $j < $names["count"]; $j++) {
 634                      $n++;
 635                      echo "<INPUT NAME=\"base_ldap\" VALUE=\"" . 
 636                          htmlspecialchars($names[$j])."\" TYPE='Radio' id='tab$n'";
 637  
 638                      if (!$checked) {
 639                          echo " CHECKED";
 640                          $checked = true;
 641                      }
 642                      echo ">";
 643                      echo "<label for='tab$n'>".htmlspecialchars($names[$j])."</label><BR>\n";
 644                  }
 645              }
 646          }
 647          echo "</UL>";
 648          echo _T('info_ou')." ";
 649      }
 650  
 651      echo "<INPUT NAME=\"base_ldap\" VALUE=\"\" TYPE='Radio' id='manuel'";
 652  
 653      if (!$checked) {
 654          echo " CHECKED";
 655          $checked = true;
 656      }
 657  
 658      echo ">";
 659      echo "<label for='manuel'>"._T('entree_chemin_acces')."</label> ";
 660      echo "<INPUT TYPE='text' NAME='base_ldap_text' CLASS='formo' ".
 661              "VALUE=\"ou=users, dc=mon-domaine, dc=com\" SIZE='40'></fieldset><P>";
 662      echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' ".
 663              "VALUE='"._T('bouton_suivant')." >>'>";
 664      echo "</FORM>";
 665  
 666      install_fin_html();
 667      
 668  }
 669  else if ($etape == 'ldap2') {
 670      // Config LDAP deuxieme etape
 671      install_debut_html();
 672  
 673      echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>"._T('titre_connexion_ldap')."</FONT>";
 674      echo "<P>";
 675  
 676      $ldap_link = @ldap_connect("$adresse_ldap", "$port_ldap");
 677      $r = @ldap_bind($ldap_link, "$login_ldap", "$pass_ldap");
 678  
 679      if ($ldap_link && ($r || !$login_ldap)) {
 680          echo "<B>" . _T('info_connexion_ldap_ok');
 681          echo "<FORM ACTION='install.php' METHOD='post'>";
 682          echo "<INPUT TYPE='hidden' NAME='etape' VALUE='ldap3'>";
 683          echo "<INPUT TYPE='hidden' NAME='adresse_ldap' VALUE=\"$adresse_ldap\">";
 684          echo "<INPUT TYPE='hidden' NAME='port_ldap' VALUE=\"$port_ldap\">";
 685          echo "<INPUT TYPE='hidden' NAME='login_ldap' VALUE=\"$login_ldap\">";
 686          echo "<INPUT TYPE='hidden' NAME='pass_ldap' VALUE=\"$pass_ldap\">";
 687  
 688          echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' ".
 689                  "VALUE='"._T('bouton_suivant')." >>'>";
 690          echo "</FORM>";
 691      }
 692      else {
 693          echo "<B>"._T('avis_connexion_ldap_echec_1')."</B>";
 694          echo "<P>"._T('avis_connexion_ldap_echec_2');
 695          echo "<br>"._T('avis_connexion_ldap_echec_3');
 696      }
 697      
 698      install_fin_html();
 699  }
 700  else if ($etape == 'ldap1') {
 701      // Config LDAP premiere etape
 702      install_debut_html();
 703  
 704      echo "<BR><FONT FACE='Verdana,Arial,Helvetica,sans-serif' SIZE=3>"._T('titre_connexion_ldap')."</FONT>";
 705      echo "<P>"._T('entree_informations_connexion_ldap');
 706  
 707      $adresse_ldap = 'localhost';
 708      $port_ldap = 389;
 709  
 710      echo "<p><FORM ACTION='install.php' METHOD='post'>";
 711      echo "<INPUT TYPE='hidden' NAME='etape' VALUE='ldap2'>";
 712      echo "<fieldset><label><B>"._T('entree_adresse_annuaire')."</B><BR></label>";
 713      echo _T('texte_adresse_annuaire_1')."<BR>";
 714      echo "<INPUT TYPE='text' NAME='adresse_ldap' CLASS='formo' VALUE=\"$adresse_ldap\" SIZE='20'><P>";
 715  
 716      echo "<label><B>"._T('entree_port_annuaire')."</B><BR></label>";
 717      echo _T('texte_port_annuaire')."<BR>";
 718      echo "<INPUT TYPE='text' NAME='port_ldap' CLASS='formo' VALUE=\"$port_ldap\" SIZE='20'><P></fieldset>";
 719  
 720      echo "<p><fieldset>";
 721      echo _T('texte_acces_ldap_anonyme_1')." ";
 722      echo "<label><B>"._T('entree_login_ldap')."</B><BR></label>";
 723      echo _T('texte_login_ldap_1')."<br>";
 724      echo "<INPUT TYPE='text' NAME='login_ldap' CLASS='formo' VALUE=\"\" SIZE='40'><P>";
 725  
 726      echo "<label><B>"._T('entree_passe_ldap')."</B><BR></label>";
 727      echo "<INPUT TYPE='password' NAME='pass_ldap' CLASS='formo' VALUE=\"\" SIZE='40'></fieldset>";
 728  
 729      echo "<p><DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' ".
 730              "VALUE='"._T('bouton_suivant')." >>'>";
 731      echo "</FORM>";
 732  
 733      install_fin_html();
 734  }
 735  else if ($etape == 'migration1') {
 736      // Cas d'une migration de BDD, premiere etape
 737      install_debut_html();
 738  
 739      require_once("DB.php");
 740      require_once(dirname(__FILE__).'/include/bd/parameters.php');
 741  
 742      // Cette classe permet d'executer des requetes SQL depuis des fichiers
 743      // SQL convenablement formattes
 744      require_once(dirname(__FILE__).'/install/SQLScript/spipagora.php');
 745  
 746      $bd_params = new BD_parameters($type_bd, $login_db, $pass_db, $adresse_db, $nom_instance_db);
 747      $db = &DB::connect($bd_params->getDSN(), null);
 748  
 749      $sqlScript = new SQLScript_spipagora(dirname(__FILE__). "/install/sql/$type_bd/migration/agora_install.sql",
 750                                          BLOCKMODE);
 751      $result_ok = $sqlScript->executeScript($db);
 752  
 753      if (!$result_ok) {
 754          echo "<B>"._T('avis_operation_echec')."</B> "._T('texte_operation_echec');
 755          exit;
 756      }
 757  
 758      $sqlScript->setSqlFile(dirname(__FILE__)."/install/sql/$type_bd/migration/agora_data_install.sql");
 759      $sqlScript->setFileType(LINEMODE);
 760      $result_ok = $sqlScript->executeScript($db);
 761  
 762      // MAJ des sequence PEAR
 763      $query = "SELECT MAX(id_article) AS max FROM ".$GLOBALS['table_prefix']."_articles";
 764      $max = $db->getOne($query);
 765  
 766      if ($max != null) {
 767          $db->createSequence('spip_articles', true);
 768          $query = "UPDATE ".$GLOBALS['table_prefix']."_articles_seq SET id=$max";
 769          $result = $db->query($query);
 770          if (DB::isError($result)) {
 771              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 772          }
 773      }
 774  
 775      $query = "SELECT MAX(id_auteur) AS max FROM ".$GLOBALS['table_prefix']."_auteurs";
 776      $max = $db->getOne($query);
 777  
 778      if ($max != null) {
 779          $db->createSequence('spip_auteurs', true);
 780          $query = "UPDATE ".$GLOBALS['table_prefix']."_auteurs_seq SET id=$max";
 781          $result = $db->query($query);
 782          if (DB::isError($result)) {
 783              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 784          }
 785      }
 786  
 787      $query = "SELECT MAX(id_breve) AS max FROM ".$GLOBALS['table_prefix']."_breves";
 788      $max = $db->getOne($query);
 789  
 790      if ($max != null) {
 791          $db->createSequence('spip_breves', true);
 792          $query = "UPDATE ".$GLOBALS['table_prefix']."_breves_seq SET id=$max";
 793          $result = $db->query($query);
 794          if (DB::isError($result)) {
 795              echo '<font color=red>'.$query .'<br>'.$result->getMessage().'</font><br><br>';
 796          }
 797      }
 798  
 799      $query = "SELECT MAX(id_document) AS max FROM ".$GLOBALS['table_prefix']."_documents";
 800      $max = $db->getOne($query);
 801  
 802      if ($max != null) {
 803          $db->createSequence('spip_documents', true);
 804          $query = "UPDATE ".$GLOBALS['table_prefix']."_documents_seq SET id=$max";
 805          $result = $db->query($query);
 806          if (DB::isError($result)) {
 807              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 808          }
 809      }
 810  
 811      $query = "SELECT MAX(id_forum) AS max FROM ".$GLOBALS['table_prefix']."_forum";
 812      $max = $db->getOne($query);
 813  
 814      if ($max != null) {
 815          $db->createSequence('spip_forum', true);
 816          $query = "UPDATE ".$GLOBALS['table_prefix']."_forum_seq SET id=$max";
 817          $result = $db->query($query);
 818          if (DB::isError($result)) {
 819              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 820          }
 821      }
 822  
 823      $query = "SELECT MAX(id_groupe) AS max FROM ".$GLOBALS['table_prefix']."_groupes_mots";
 824      $max = $db->getOne($query);
 825  
 826      if ($max != null) {
 827          $db->createSequence('spip_groupes_mots', true);
 828          $query = "UPDATE ".$GLOBALS['table_prefix']."_groupes_mots_seq SET id=$max";
 829          $result = $db->query($query);
 830          if (DB::isError($result)) {
 831              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 832          }
 833      }
 834  
 835      $query = "SELECT MAX(id_message) AS max FROM ".$GLOBALS['table_prefix']."_messages";
 836      $max = $db->getOne($query);
 837  
 838      if ($max != null) {
 839          $db->createSequence('spip_messages', true);
 840          $query = "UPDATE ".$GLOBALS['table_prefix']."_messages_seq SET id=$max";
 841          $result = $db->query($query);
 842          if (DB::isError($result)) {
 843              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 844          }
 845      }
 846  
 847      $query = "SELECT MAX(id_mot) AS max FROM ".$GLOBALS['table_prefix']."_mots";
 848      $max = $db->getOne($query);
 849  
 850      if ($max != null) {
 851          $db->createSequence('tb_nodes_id_mot', true);
 852          $query = "UPDATE tb_nodes_id_mot_seq SET id=$max";
 853          $result = $db->query($query);
 854          if (DB::isError($result)) {
 855              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 856          }
 857      }
 858  
 859      $query = "SELECT MAX(id_article) AS max FROM ".$GLOBALS['table_prefix']."_petitions";
 860      $max = $db->getOne($query);
 861  
 862      if ($max != null) {
 863          $string_prefix = $GLOBALS['table_prefix']."_petitions";
 864          $db->createSequence($string_prefix, true);
 865          $query = "UPDATE ".$GLOBALS['table_prefix']."_petitions_seq SET id=$max";
 866          $result = $db->query($query);
 867          if (DB::isError($result)) {
 868              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 869          }
 870      }
 871  
 872      $query = "SELECT MAX(id_rubrique) AS max FROM ".$GLOBALS['table_prefix']."_rubriques";
 873      $max = $db->getOne($query);
 874  
 875      if ($max != null) {
 876          $db->createSequence('spip_rubriques', true);
 877          $query = "UPDATE ".$GLOBALS['table_prefix']."_rubriques_seq SET id=$max";
 878          $result = $db->query($query);
 879          if (DB::isError($result)) {
 880              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 881          }
 882      }
 883  
 884      $query = "SELECT MAX(id_syndic) AS max FROM ".$GLOBALS['table_prefix']."_syndic";
 885      $max = $db->getOne($query);
 886  
 887      if ($max != null) {
 888          $db->createSequence('spip_syndic', true);
 889          $query = "UPDATE ".$GLOBALS['table_prefix']."_syndic_seq SET id=$max";
 890          $result = $db->query($query);
 891          if (DB::isError($result)) {
 892              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 893          }
 894      }
 895  
 896      $query = "SELECT MAX(id_syndic_article) AS max FROM ".$GLOBALS['table_prefix']."_syndic_articles";
 897      $max = $db->getOne($query);
 898  
 899      if ($max != null) {
 900          $db->createSequence('spip_syndic_articles', true);
 901          $query = "UPDATE ".$GLOBALS['table_prefix']."_syndic_articles_seq SET id=$max";
 902          $result = $db->query($query);
 903          if (DB::isError($result)) {
 904              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 905          }
 906      }
 907  
 908      $query = "SELECT MAX(id_type) AS max FROM ".$GLOBALS['table_prefix']."_types_documents";
 909      $max = $db->getOne($query);
 910  
 911      if ($max != null) {
 912          $db->createSequence('spip_types_documents', true);
 913          $query = "UPDATE ".$GLOBALS['table_prefix']."_types_documents_seq SET id=$max";
 914          $result = $db->query($query);
 915          if (DB::isError($result)) {
 916              echo '<font color=red>'.$query.'<br>'.$result->getMessage().'</font><br><br>';
 917          }
 918      }
 919  
 920      $query = "SELECT MAX(id_signature) AS max FROM ".$GLOBALS['table_prefix']."_signatures";
 921      $max = $db->getOne($query);
 922  
 923      if ($max != null) {
 924          $db->createSequence('spip_signatures', true);
 925          $query = "UPDATE ".$GLOBALS['table_prefix']."_signatures_seq SET id=$max";
 926          $result = $db->query($query);
 927          if (DB::isError($result)) {
 928              echo '<font color=red>'.$query .'<br>'.$result->getMessage().'</font><br><br>';
 929          }
 930      }
 931  
 932      // Cree le fichier de connexion bdd (migration)
 933      if ($result_ok) {
 934          $conn = "<"."?php\n";
 935          $conn .= "require_once(dirname(__FILE__).\"/parameters.php\");\n";
 936          $conn .= "global \$bd_params;\nglobal \$bd_params_ldap;\nglobal \$bd_options;\n";
 937          $conn .= "\$dbType = '$type_bd';\n";
 938          $conn .= "\$dbLogin = '$login_db';\n";
 939          $conn .= "\$dbPassword = '$pass_db';\n";
 940          $conn .= "\$dbHost = '$adresse_db';\n";
 941          $conn .= "\$dbName = '$nom_instance_db';\n";
 942          $conn .= "\$bd_options = array();\n\$bd_options = array();\n\$bd_options['optimize'] = 'portability';\n";
 943          $conn .= "\$bd_options['persistent'] = 'false';\n//\$bd_options['autofree'] = true;\n";
 944          $conn .= "\$bd_params = new BD_parameters(\$dbType, \$dbLogin, \$dbPassword, \$dbHost, \$dbName);\n";
 945          $conn .= "\$GLOBALS['db_ok'] = 1;\n";
 946          $conn .= "?".">";
 947  
 948          $myFile = fopen(dirname(__FILE__)."/include/bd/inc_config_metier_install.php", "wb");
 949          fputs($myFile, $conn);
 950          fclose($myFile);
 951  
 952          echo "<B>"._T('info_base_migree')."</B><P>"._T('info_etape_suivante_1');
 953  
 954          echo "<FORM ACTION='install.php' METHOD='post'>";
 955          echo "<INPUT TYPE='hidden' NAME='etape' VALUE='migration2'>";
 956          echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' VALUE='".
 957                  _T('bouton_suivant')." >>'>";
 958          echo "</FORM>";
 959      }
 960      else {
 961          echo "<B>"._T('avis_operation_echec')."</B> "._T('texte_operation_echec');
 962      }
 963      install_fin_html();
 964  }
 965  else if ($etape == 'migration2') {
 966      // Cas d'une migration BDD, deuxieme etape
 967      // finalise le fichier de connexion inc_config_metier.php
 968      install_debut_html();
 969      include_ecrire  ("inc_meta.php");
 970      @unlink("data/inc_meta_cache.php");
 971      if (!@rename(dirname(__FILE__)."/include/bd/inc_config_metier_install.php", dirname(__FILE__).
 972              "/include/bd/inc_config_metier.php")) {
 973          copy(dirname(__FILE__)."/include/bd/inc_config_metier_install.php", dirname(__FILE__)
 974                  ."/include/bd/inc_config_metier.php");
 975          @unlink(dirname(__FILE__)."/include/bd/inc_config_metier_install.php");
 976      }
 977  
 978      echo "<FORM ACTION='index.php' METHOD='post'>";
 979      echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' ".
 980              "VALUE='"._T('bouton_suivant')." >>'>";
 981      echo "</FORM></DIV>";
 982      echo "<BR><font face='Verdana,Arial,Sans,sans-serif' size='4' color='#970038'><B>".
 983              _T('info_install_data_supplementaires')."</b></font>";
 984      echo "<P>"._T('detail_install_data_supplementaires');
 985      echo "<FORM ACTION='install_data.php' METHOD='post'>";
 986      echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl' NAME='Valider' ".
 987              "VALUE='"._T('bouton_installer_data')." >>'>";
 988      echo "</FORM>";
 989  
 990      ecrire_metas();
 991  
 992      $adresse_site = "http://$HTTP_HOST".substr($REQUEST_URI, 0, strpos($REQUEST_URI, "/ecrire"));
 993      ecrire_meta("adresse_site", $adresse_site);
 994  
 995      install_fin_html();
 996  }
 997  ?>


Généré le : Sat Feb 24 14:40:03 2007 par Balluche grâce à PHPXref 0.7