spip_nursit/ecrire/install/etape_fin.php
2023-06-01 17:30:12 +02:00

84 lines
2.5 KiB
PHP

<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2019 *
* 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
// http://code.spip.net/@install_etape_fin_dist
function install_etape_fin_dist() {
ecrire_acces();
$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);
}
}
}
// creer le repertoire cache, qui sert partout !
// deja fait en etape 4 en principe, on garde au cas ou
if (!@file_exists(_DIR_CACHE)) {
$rep = preg_replace(',' . _DIR_TMP . ',', '', _DIR_CACHE);
$rep = sous_repertoire(_DIR_TMP, $rep, true, true);
}
// Verifier la securite des htaccess
// Si elle ne fonctionne pas, prevenir
$msg = install_verifier_htaccess();
if ($msg) {
$cible = _T('public:accueil_site');
$cible = generer_form_ecrire('accueil', '', '', $cible);
echo minipres('AUTO', $msg . $cible);
// ok, deboucher dans l'espace prive
} else {
redirige_url_ecrire('accueil');
}
}
function install_verifier_htaccess() {
if (verifier_htaccess(_DIR_TMP, true)
and verifier_htaccess(_DIR_CONNECT, true)
) {
return '';
}
$titre = _T('htaccess_inoperant');
$averti = _T(
'htaccess_a_simuler',
array(
'htaccess' => '<tt>' . _ACCESS_FILE_NAME . '</tt>',
'constantes' => '<tt>_DIR_TMP &amp; _DIR_CONNECT</tt>',
'document_root' => '<tt>' . $_SERVER['DOCUMENT_ROOT'] . '</tt>'
)
);
return "<div class='error'><h3>$titre</h3><p>$averti</p></div>";
}