3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2011 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
15 include_spip('inc/headers');
16 include_spip('base/abstract_sql');
18 // http://doc.spip.org/@install_bases_sup
19 function install_bases_sup($adresse_db, $login_db, $pass_db, $server_db, $sup_db){
21 if (!($GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, 0, $login_db, $pass_db, '', $server_db)))
23 return "<!-- connection perdue -->";
25 $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']]
26 = $GLOBALS['spip_' . $server_db .'_functions_' . $GLOBALS['spip_sql_version']];
28 if (!sql_selectdb($sup_db, $server_db))
29 return "<!-- base inaccessible -->";
31 $tables = sql_alltable('%', $server_db);
34 $res = _T('install_pas_table');
36 $res = _T('install_tables_base')
37 . "<ol style='text-align: left'>\n<li>"
38 . join("</li>\n<li>", $tables)
42 if (preg_match(',(.*):(.*),', $adresse_db, $r))
43 list(,$adresse_db, $port) = $r;
47 $adresse_db = addcslashes($adresse_db,"'\\");
48 $port = addcslashes($port,"'\\");
49 $login_db = addcslashes($login_db,"'\\");
50 $pass_db = addcslashes($pass_db,"'\\");
51 $sup_db = addcslashes($sup_db,"'\\");
52 $server_db = addcslashes($server_db,"'\\");
54 $conn = install_mode_appel($server_db)
56 . "'$adresse_db','$port','$login_db',"
57 . "'$pass_db','$sup_db'"
58 . ",'$server_db', '');\n";
60 install_fichier_connexion(_DIR_CONNECT
. $sup_db . '.php', $conn);
62 return '<div style="background-color: #eeeeee">' . $res . '</div>';
65 // http://doc.spip.org/@install_etape_sup2_dist
66 function install_etape_sup2_dist()
68 $adresse_db = _request('adresse_db');
69 if (!$adresse_db AND defined('_INSTALL_HOST_DB'))
70 $adresse_db =_INSTALL_HOST_DB
;
72 $login_db = _request('login_db');
73 if (!$login_db AND defined('_INSTALL_USER_DB'))
74 $login_db = _INSTALL_USER_DB
;
76 $pass_db = _request('pass_db');
77 if (!$pass_db AND defined('_INSTALL_PASS_DB'))
78 $pass_db = _INSTALL_PASS_DB
;
80 $server_db =_request('server_db');
81 if (!$server_db AND defined('_INSTALL_SERVER_DB'))
82 $server_db = _INSTALL_SERVER_DB
;
84 // Ceci indique la base principale (passe en hidden)
85 // pour qu'on la refuse comme choix de base secondaire a chaque tour.
87 $sel_db =_request('sel_db');
88 if (!$sel_db AND defined('_INSTALL_NAME_DB'))
89 $sel_db = _INSTALL_NAME_DB
;
92 $choix_db = _request('choix_db');
93 if (is_numeric($choix_db))
94 $choix_db = _request('table_new');
97 $res = "<!-- il ne sait pas ce qu'il veut -->";
99 $res = install_bases_sup($adresse_db, $login_db, $pass_db, $server_db, $choix_db);
102 $res .= "<p class='resultat'><b>"._T('avis_operation_echec')."</b></p>";
105 $res = "<p class='resultat'><b>"
106 . _T('install_base_ok',
107 array('base' => $choix_db))
113 $res .= generer_form_ecrire('admin_declarer',
114 (defined('_INSTALL_NAME_DB') ?
''
115 : ("\n<input type='hidden' name='sel_db' value='"
118 . predef_ou_cache($adresse_db,$login_db,$pass_db, $server_db)
121 echo install_debut_html(_T('config_titre_base_sup'));
123 echo install_fin_html();