diff --git a/.gitattributes b/.gitattributes index 9ad6384844707475f8f9a0843d317ec2c46cf0e1..0e38cd036bb3de34cef237dabe6862aeee53b495 100644 --- a/.gitattributes +++ b/.gitattributes @@ -648,11 +648,14 @@ ecrire/install/etape_2.php -text ecrire/install/etape_3.php -text ecrire/install/etape_4.php -text ecrire/install/etape_chmod.php -text +ecrire/install/etape_fin.php -text ecrire/install/etape_ldap1.php -text ecrire/install/etape_ldap2.php -text ecrire/install/etape_ldap3.php -text ecrire/install/etape_ldap4.php -text ecrire/install/etape_ldap5.php -text +ecrire/install/etape_sup1.php -text +ecrire/install/etape_sup2.php -text ecrire/install/index.php -text ecrire/lang/ecrire_br.php -text ecrire/lang/ecrire_bs.php -text diff --git a/ecrire/install/etape_fin.php b/ecrire/install/etape_fin.php new file mode 100644 index 0000000000000000000000000000000000000000..cb146df31a8b3280f16a6f33033b4c9263d6b5d6 --- /dev/null +++ b/ecrire/install/etape_fin.php @@ -0,0 +1,47 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2007 * + * 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; + +include_spip('inc/headers'); +include_spip('inc/acces'); + +// Mise en place des fichiers de configuration si ce n'est fait + +function install_etape_fin_dist() +{ + $f = str_replace( _FILE_TMP_SUFFIX, '.php', _FILE_CHMOD_TMP); + if (file_exists(_FILE_CHMOD_TMP)) { + if (!@rename(_FILE_CHMOD_TMP, $f)) { + if (@copy(_FILE_CHMOD_TMP, $f)) + spip_unlink(_FILE_CHMOD_TMP); + } + } + + $f = str_replace( _FILE_TMP_SUFFIX, '.php', _FILE_CONNECT_TMP); + if (file_exists(_FILE_CONNECT_TMP)) { + spip_log("renomme $f"); + if (!@rename(_FILE_CONNECT_TMP, $f)) { + if (@copy(_FILE_CONNECT_TMP, $f)) + @spip_unlink(_FILE_CONNECT_TMP); + } + $htpasswd = _DIR_TMP . _AUTH_USER_FILE; + spip_unlink($htpasswd); + spip_unlink($htpasswd."-admin"); + ecrire_acces(); + } + + // on l'envoie dans l'espace prive + + redirige_par_entete(generer_url_ecrire('accueil')); +} +?> diff --git a/ecrire/install/etape_sup1.php b/ecrire/install/etape_sup1.php new file mode 100644 index 0000000000000000000000000000000000000000..4491c436d937b8c50c898fe3a5f55dab2538dadc --- /dev/null +++ b/ecrire/install/etape_sup1.php @@ -0,0 +1,95 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2007 * + * 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; + +include_spip('inc/headers'); +include_spip('inc/acces'); +include_spip('install/etape_2'); + +// Mise en place d'un fichier de configuration supplementaire + +function install_etape_sup1_dist() +{ + $adresse_db = defined('_INSTALL_HOST_DB') + ? _INSTALL_HOST_DB + : _request('adresse_db'); + + $login_db = defined('_INSTALL_USER_DB') + ? _INSTALL_USER_DB + : _request('login_db'); + + $pass_db = defined('_INSTALL_PASS_DB') + ? _INSTALL_PASS_DB + : _request('pass_db'); + + $server_db = defined('_INSTALL_SERVER_DB') + ? _INSTALL_SERVER_DB + : _request('server_db'); + + $sel_db = defined('_INSTALL_NAME_DB') + ? _INSTALL_NAME_DB + : _request('sel_db'); + + $link = spip_connect_db($adresse_db, 0, $login_db, $pass_db, '', $server_db); + + $GLOBALS['connexions'][$server_db] = $link; + + echo install_debut_html(); + + echo "\n<!--\n", join(', ', $link), " $login_db "; + $db_connect = 0; // revoirfunction_exists($ferrno) ? $ferrno() : 0; + echo join(', ', $GLOBALS['connexions'][$server_db]); + echo "\n-->\n"; + + if (($db_connect=="0") && $link) { + echo "<p class='resultat'><b>"._T('info_connexion_ok')."</b></p>\n"; + spip_connect_db($adresse_db, 0, $login_db, $pass_db, '',$server_db); + + echo "\n", '<!-- ', sql_version($server_db), ' -->' ; + $l = bases_referencees(); + array_push($l, $sel_db); + list(, $res) = install_etape_liste_bases($server_db, $l); + + $hidden = predef_ou_cache($adresse_db,$login_db,$pass_db, $server_db) + . (defined('_INSTALL_NAME_DB') + ? '' + : ("\n<input type='hidden' name='sel_db' value='" . _request('sel_db') . "' />\n")); + + + + echo install_etape_sup1_form($hidden, $checked, $res, 'sup2'); + } else { + echo info_etape(_T('info_connexion_base')); + echo "<p class='resultat'><b>", +# _T('avis_connexion_echec_1'), + _L('La connexion à la base de données a échoué.'), + "</b></p>"; + } + + echo install_fin_html(); +} + +function install_etape_sup1_form($hidden, $checked, $bases, $etape) + { + return generer_form_ecrire('install', ( + "\n<input type='hidden' name='etape' value='$etape' />" + . $hidden + . "\n<fieldset><legend>" + . _L('Choisissez une base supplémentaire') + . "</legend>\n" + . "<ul>\n<li>" + . join("</li>\n<li>",$bases) + . "</li>\n</ul>" + . bouton_suivant())); +} +?> diff --git a/ecrire/install/etape_sup2.php b/ecrire/install/etape_sup2.php new file mode 100644 index 0000000000000000000000000000000000000000..4efc90fbc31abdf144582875a47a83cc625d92ae --- /dev/null +++ b/ecrire/install/etape_sup2.php @@ -0,0 +1,117 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2007 * + * 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; #securite + +include_spip('inc/headers'); +include_spip('base/abstract_sql'); + +function install_bases_sup($adresse_db, $login_db, $pass_db, $server_db, $sup_db){ + + if (!($GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, 0, $login_db, $pass_db, '', $server_db))) + + return "<!-- connection perdue -->"; + + if (!sql_selectdb($sup_db, $server_db)) + return "<!-- base inaccessible -->"; + + + $q = sql_showbase('%', $server_db); + + $tables = ''; + while($r = sql_fetch($q)) { + $tables .= "<li>" . array_shift($r) . "</li>\n"; + } + + $res = _L('Tables de la base') . "<ol>" . $tables . "</ol>\n"; + + if (preg_match(',(.*):(.*),', $adresse_db, $r)) + list(,$adresse_db, $port) = $r; + else + $port = ''; + + $conn = "spip_connect_db(" + . "'$adresse_db','$port','$login_db','" + . addcslashes($pass_db, "'\\") . "','$sup_db'" + . ",'$server_db', '');\n"; + + install_fichier_connexion(_DIR_CONNECT . $sup_db . '.php', $conn); + + return $res; +} + +function install_etape_sup2_dist() +{ + if (file_exists(_FILE_CONNECT_TMP)) + include(_FILE_CONNECT_TMP); + else + redirige_par_entete(generer_url_ecrire('install')); + + if (file_exists(_FILE_CHMOD_TMP)) + include(_FILE_CHMOD_TMP); + else + redirige_par_entete(generer_url_ecrire('install')); + + $adresse_db = defined('_INSTALL_HOST_DB') + ? _INSTALL_HOST_DB + : _request('adresse_db'); + + $login_db = defined('_INSTALL_USER_DB') + ? _INSTALL_USER_DB + : _request('login_db'); + + $pass_db = defined('_INSTALL_PASS_DB') + ? _INSTALL_PASS_DB + : _request('pass_db'); + + $server_db = defined('_INSTALL_SERVER_DB') + ? _INSTALL_SERVER_DB + : _request('server_db'); + + $sel_db = defined('_INSTALL_NAME_DB') + ? _INSTALL_NAME_DB + : _request('sel_db'); + + $choix_db = _request('choix_db'); + + if (!$choix_db) + $res = "<!-- il ne sait pas ce qu'il veut -->"; + else { + $res = install_bases_sup($adresse_db, $login_db, $pass_db, $server_db, $choix_db); + + if ($res[1]=='!') + $res .= "<p class='resultat'><b>"._T('avis_operation_echec')."</b></p>"; + + else { + $res = "<p class='resultat'><b>" + . _L('base @base@ reconnue', + array('base' => $choix_db)) + . "</b></p>" + . $res; + } + } + + $res .= generer_form_ecrire('install', + "\n<input type='hidden' name='etape' value='4' />" + . (defined('_INSTALL_NAME_DB') ? '' + : ("\n<input type='hidden' name='sel_db' value='" + . $sel_db + . "' />")) + . predef_ou_cache($adresse_db,$login_db,$pass_db, $server_db) + . bouton_suivant()); + + echo install_debut_html(); + echo $res; + echo install_fin_html(); +} + +?>