[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / prive / formulaires / declarer_bases.php
index 11683dc..d4f6796 100644 (file)
@@ -3,40 +3,42 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2016                                                *
+ *  Copyright (c) 2001-2017                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-if (!defined('_ECRIRE_INC_VERSION')) return;
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
 include_spip('inc/install');
 
-function formulaires_declarer_bases_charger_dist(){
+function formulaires_declarer_bases_charger_dist() {
        list($adresse_db, $login_db, $pass_db, $sel, $server_db) = analyse_fichier_connection(_FILE_CONNECT);
 
        $deja = bases_referencees(_FILE_CONNECT);
        // proposer un nom de connect si pas encore saisi
-       $nom_connect = "";
-       if (defined('_DECLARER_choix_db')){
-               $nom_connect = _DECLARER_choix_db;
-               $n="";
-               while (in_array($nom_connect.$n,$deja)){
-                       $n = ($n?$n+1:1);
+       $nom_connect = '';
+       if (defined('_DECLARER_CHOIX_DB')) {
+               $nom_connect = _DECLARER_CHOIX_DB;
+               $n = '';
+               while (in_array($nom_connect . $n, $deja)) {
+                       $n = ($n ? $n + 1 : 1);
                }
-               $nom_connect = $nom_connect.$n;
+               $nom_connect = $nom_connect . $n;
        }
 
        $valeurs = array(
                '_etapes' => 3,
                '_bases_deja' => $deja,
-               '_bases_prop' => defined('_DECLARER_serveur_db')?liste_bases(_DECLARER_serveur_db):'',
-               '_tables' => (defined('_DECLARER_serveur_db') AND defined('_DECLARER_choix_db'))?
-                               $tables = sql_alltable('%', _DECLARER_serveur_db)
-                               :
-                               array(),
+               '_bases_prop' => defined('_DECLARER_SERVEUR_DB') ? liste_bases(_DECLARER_SERVEUR_DB) : '',
+               '_tables' => (defined('_DECLARER_SERVEUR_DB') and defined('_DECLARER_CHOIX_DB')) ?
+                       $tables = sql_alltable('%', _DECLARER_SERVEUR_DB)
+                       :
+                       array(),
                'main_db' => '',
                '_serveurs' => liste_serveurs(),
                'sql_serveur_db' => 'sqlite3', // valeur par defaut
@@ -47,161 +49,183 @@ function formulaires_declarer_bases_charger_dist(){
                'table_new' => '',
                'nom_connect' => $nom_connect,
        );
+
        return $valeurs;
 }
 
 function liste_serveurs() {
        $options = array();
        $dir = _DIR_RESTREINT . 'req/';
-       $d = @opendir($dir);
-       if (!$d) return array();
+       $d = opendir($dir);
+       if (!$d) {
+               return array();
+       }
        while ($f = readdir($d)) {
                if ((preg_match('/^(.*)[.]php$/', $f, $s))
-               AND is_readable($f = $dir . $f)) {
+                       and is_readable($f = $dir . $f)
+               ) {
                        require_once($f);
                        $s = $s[1];
                        $v = 'spip_versions_' . $s;
-                       if (function_exists($v) AND $v()) {
-                         $options[$s] = "install_select_type_$s";
+                       if (function_exists($v) and $v()) {
+                               $options[$s] = "install_select_type_$s";
+                       } else {
+                               spip_log("$s: portage indisponible");
                        }
-                       else spip_log("$s: portage indisponible");
                }
        }
        ksort($options);
+
        return $options;
 }
 
-function liste_bases($server_db){
+function liste_bases($server_db) {
        if (is_null($server_db)
-         OR !$result = sql_listdbs($server_db))
+               or !$result = sql_listdbs($server_db)
+       ) {
                return '';
+       }
 
        $noms = array();
 
        // si sqlite : result est deja un tableau
-       if (is_array($result)){
+       if (is_array($result)) {
                $noms = $result;
        } else {
                while ($row = sql_fetch($result, $server_db)) {
                        $noms[] = reset($row);
                }
        }
+
        return $noms;
 }
 
-function formulaires_declarer_bases_verifier_1_dist(){
+function formulaires_declarer_bases_verifier_1_dist() {
        $erreurs = array();
        list($def_adresse_db, $def_login_db, $def_pass_db, $sel_db, $def_serveur_db) = analyse_fichier_connection(_FILE_CONNECT);
 
-
-       if (!$adresse_db = _request('adresse_db')){
-               if (defined('_INSTALL_HOST_DB'))
-                       $adresse_db =_INSTALL_HOST_DB;
-               else
+       if (!$adresse_db = _request('adresse_db')) {
+               if (defined('_INSTALL_HOST_DB')) {
+                       $adresse_db = _INSTALL_HOST_DB;
+               } else {
                        $adresse_db = $def_adresse_db;
+               }
        }
-       if (!$serveur_db =_request('sql_serveur_db')){
-               if (defined('_INSTALL_SERVER_DB'))
+       if (!$serveur_db = _request('sql_serveur_db')) {
+               if (defined('_INSTALL_SERVER_DB')) {
                        $serveur_db = _INSTALL_SERVER_DB;
-               else
+               } else {
                        $serveur_db = $def_serveur_db;
+               }
        }
 
-       $login_db = $pass_db = "";
-       if (!preg_match(',^sqlite,i',$serveur_db)){
-               if (!$login_db = _request('login_db')){
-                       if (defined('_INSTALL_USER_DB'))
+       $login_db = $pass_db = '';
+       if (!preg_match(',^sqlite,i', $serveur_db)) {
+               if (!$login_db = _request('login_db')) {
+                       if (defined('_INSTALL_USER_DB')) {
                                $login_db = _INSTALL_USER_DB;
-                       else
+                       } else {
                                $login_db = $def_login_db;
+                       }
                }
-               if (!$pass_db = _request('pass_db')){
-                       if (defined('_INSTALL_PASS_DB'))
-                               $pass_db  = _INSTALL_PASS_DB;
-                       else
+               if (!$pass_db = _request('pass_db')) {
+                       if (defined('_INSTALL_PASS_DB')) {
+                               $pass_db = _INSTALL_PASS_DB;
+                       } else {
                                $pass_db = $def_pass_db;
+                       }
                }
        }
 
        $link = spip_connect_db($adresse_db, '', $login_db, $pass_db, '@test@', $serveur_db);
        if ($link) {
-               $GLOBALS['connexions'][$serveur_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $serveur_db .'_functions_' . $GLOBALS['spip_sql_version']];
+               $GLOBALS['connexions'][$serveur_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $serveur_db . '_functions_' . $GLOBALS['spip_sql_version']];
                $GLOBALS['connexions'][$serveur_db] = $link;
-               define('_DECLARER_serveur_db',$serveur_db);
-               define('_DECLARER_adresse_db',$adresse_db);
-               define('_DECLARER_login_db',$login_db);
-               define('_DECLARER_pass_db',$pass_db);
+               define('_DECLARER_SERVEUR_DB', $serveur_db);
+               define('_DECLARER_ADRESSE_DB', $adresse_db);
+               define('_DECLARER_LOGIN_DB', $login_db);
+               define('_DECLARER_PASS_DB', $pass_db);
                // si on est sur le meme serveur que connect.php
                // indiquer quelle est la db utilisee pour l'exclure des choix possibles
-               if ($serveur_db==$def_serveur_db AND $adresse_db==$def_adresse_db)
-                       set_request('main_db',$sel_db);
-               else
-                       set_request('main_db','');
-       }
-       else  {
+               if ($serveur_db == $def_serveur_db and $adresse_db == $def_adresse_db) {
+                       set_request('main_db', $sel_db);
+               } else {
+                       set_request('main_db', '');
+               }
+       } else {
                $erreurs['message_erreur'] = _T('avis_connexion_echec_1');
        }
+
        return $erreurs;
 }
 
-function formulaires_declarer_bases_verifier_2_dist(){
+function formulaires_declarer_bases_verifier_2_dist() {
        $erreurs = array();
        $choix_db = _request('choix_db');
-       if ($choix_db=='-1')
+       if ($choix_db == '-1') {
                $choix_db = _request('table_new');
-       if (!$choix_db)
-               $erreurs['choix_db']=_T('info_obligatoire');
-       else {
-               define('_ECRIRE_INSTALL',1); // hackons sqlite
-               if (!sql_selectdb($choix_db, _DECLARER_serveur_db))
-                       $erreurs['choix_db']=_T('avis_base_inaccessible',array('base'=>$choix_db));
-               else
-                       define('_DECLARER_choix_db',$choix_db);
+       }
+       if (!$choix_db) {
+               $erreurs['choix_db'] = _T('info_obligatoire');
+       } else {
+               define('_ECRIRE_INSTALL', 1); // hackons sqlite
+               if (!sql_selectdb($choix_db, _DECLARER_SERVEUR_DB)) {
+                       $erreurs['choix_db'] = _T('avis_base_inaccessible', array('base' => $choix_db));
+               } else {
+                       define('_DECLARER_CHOIX_DB', $choix_db);
+               }
        }
 
        return $erreurs;
 }
 
-function formulaires_declarer_bases_verifier_3_dist(){
+function formulaires_declarer_bases_verifier_3_dist() {
        $erreurs = array();
        $nom_connect = _request('nom_connect');
-       if (!$nom_connect)
-               $erreurs['nom_connect']=_T('info_obligatoire');
-       else {
+       if (!$nom_connect) {
+               $erreurs['nom_connect'] = _T('info_obligatoire');
+       else {
                // securite : le nom doit etre un mot sans caracteres speciaux
-               $f = preg_replace(',[^\w],','',$nom_connect);
-               if ($f!==$nom_connect)
-                       $erreurs['nom_connect']=_T('erreur_nom_connect_incorrect');
-               elseif(file_exists(_DIR_CONNECT . $nom_connect. '.php'))
-                       $erreurs['nom_connect']=_T('erreur_connect_deja_existant');
-               else
-                       define('_DECLARER_nom_connect',$nom_connect);
+               $f = preg_replace(',[^\w],', '', $nom_connect);
+               if ($f !== $nom_connect) {
+                       $erreurs['nom_connect'] = _T('erreur_nom_connect_incorrect');
+               } elseif (file_exists(_DIR_CONNECT . $nom_connect . '.php')) {
+                       $erreurs['nom_connect'] = _T('erreur_connect_deja_existant');
+               } else {
+                       define('_DECLARER_NOM_CONNECT', $nom_connect);
+               }
        }
 
        return $erreurs;
 }
 
-function formulaires_declarer_bases_traiter_dist(){
+function formulaires_declarer_bases_traiter_dist() {
 
-       $adresse_db = _DECLARER_adresse_db;
-       if (preg_match(',(.*):(.*),', $adresse_db, $r))
-               list(,$adresse_db, $port) = $r;
-       else
+       $adresse_db = _DECLARER_ADRESSE_DB;
+       if (preg_match(',(.*):(.*),', $adresse_db, $r)) {
+               list(, $adresse_db, $port) = $r;
+       } else {
                $port = '';
+       }
 
-       $adresse_db = addcslashes($adresse_db,"'\\");
-       $port = addcslashes($port,"'\\");
-       $login_db = addcslashes(_DECLARER_login_db,"'\\");
-       $pass_db = addcslashes(_DECLARER_pass_db,"'\\");
-       $sup_db = addcslashes(_DECLARER_choix_db,"'\\");
-       $server_db = addcslashes(_DECLARER_serveur_db,"'\\");
+       $server_db = addcslashes(_DECLARER_SERVEUR_DB, "'\\");
 
        $conn = install_mode_appel($server_db)
-       . "spip_connect_db("
-       . "'$adresse_db','$port','$login_db',"
-       . "'$pass_db','$sup_db'"
-       . ",'$server_db', '');\n";
-
-       install_fichier_connexion(_DIR_CONNECT . _DECLARER_nom_connect . '.php', $conn);
-       return array('message_ok'=>_T('install_connect_ok',array('connect' => "<strong>"._DECLARER_nom_connect."</strong>")));
-}
\ No newline at end of file
+               . install_connexion(
+                       $adresse_db,
+                       $port,
+                       _DECLARER_LOGIN_DB,
+                       _DECLARER_PASS_DB,
+                       _DECLARER_CHOIX_DB,
+                       _DECLARER_SERVEUR_DB,
+                       '',
+                       '',
+                       ''
+               );
+
+       install_fichier_connexion(_DIR_CONNECT . _DECLARER_NOM_CONNECT . '.php', $conn);
+
+       return array(
+               'message_ok' => _T('install_connect_ok', array('connect' => '<strong>' . _DECLARER_NOM_CONNECT . '</strong>'))
+       );
+}