[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / install / etape_chmod.php
index 9d07b3e..83bc25c 100644 (file)
@@ -3,17 +3,21 @@
 /***************************************************************************\
  *  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;
+}
 
-if (defined('_TEST_DIRS')) return;
-define('_TEST_DIRS', "1");
+if (defined('_TEST_DIRS')) {
+       return;
+}
+define('_TEST_DIRS', '1');
 
 include_spip('inc/minipres');
 utiliser_langue_visiteur();
@@ -21,10 +25,10 @@ utiliser_langue_visiteur();
 //
 // Tente d'ecrire
 //
-// http://doc.spip.org/@test_ecrire
+// http://code.spip.net/@test_ecrire
 function test_ecrire($my_dir) {
        static $chmod = 0;
-       
+
        $ok = false;
        $script = @file_exists('spip_loader.php') ? 'spip_loader.php' : $_SERVER['PHP_SELF'];
        $self = basename($script);
@@ -36,16 +40,19 @@ function test_ecrire($my_dir) {
 
        // Comparer l'appartenance d'un fichier cree par PHP
        // avec celle du script et du repertoire courant
-       if(!$chmod) {
+       if (!$chmod) {
                @rmdir('test');
                spip_unlink('test'); // effacer au cas ou
                @touch('test');
-               if ($uid > 0 && $uid == $uid2 && @fileowner('test') == $uid)
+               if ($uid > 0 && $uid == $uid2 && @fileowner('test') == $uid) {
                        $chmod = 0700;
-               else if ($gid > 0 && $gid == $gid2 && @filegroup('test') == $gid)
-                       $chmod = 0770;
-               else
-                       $chmod = 0777;
+               } else {
+                       if ($gid > 0 && $gid == $gid2 && @filegroup('test') == $gid) {
+                               $chmod = 0770;
+                       } else {
+                               $chmod = 0777;
+                       }
+               }
                // Appliquer de plus les droits d'acces du script
                if ($perms > 0) {
                        $perms = ($perms & 0777) | (($perms & 0444) >> 2);
@@ -63,76 +70,86 @@ function test_ecrire($my_dir) {
 // rajouter celui passe dans l'url ou celui du source (a l'installation)
 //
 
-// http://doc.spip.org/@install_etape_chmod_dist
-function install_etape_chmod_dist()
-{
-       global $test_dirs;
-       $test_dir =  _request('test_dir');
+// http://code.spip.net/@install_etape_chmod_dist
+function install_etape_chmod_dist() {
+
+       $test_dir = _request('test_dir');
        $chmod = 0;
 
        if ($test_dir) {
-               if (substr($test_dir,-1)!=='/') $test_dir .= '/';
-               if (!in_array($test_dir, $test_dirs)) $test_dirs[] = _DIR_RACINE  . $test_dir;
+               if (substr($test_dir, -1) !== '/') {
+                       $test_dir .= '/';
+               }
+               if (!in_array($test_dir, $GLOBALS['test_dirs'])) {
+                       $GLOBALS['test_dirs'][] = _DIR_RACINE . $test_dir;
+               }
        } else {
                if (!_FILE_CONNECT) {
-                       $test_dirs[] = _DIR_CONNECT;
-                       $test_dirs[] = _DIR_CHMOD;
+                       $GLOBALS['test_dirs'][] = _DIR_CONNECT;
+                       $GLOBALS['test_dirs'][] = _DIR_CHMOD;
                }
        }
 
        $bad_dirs = array();
-       $absent_dirs  = array();;
+       $absent_dirs = array();
 
-       while (list(, $my_dir) = each($test_dirs)) {
+       while (list(, $my_dir) = each($GLOBALS['test_dirs'])) {
                $test = test_ecrire($my_dir);
                if (!$test) {
-                       $m = preg_replace(',^' . _DIR_RACINE . ',', '',$my_dir);
+                       $m = preg_replace(',^' . _DIR_RACINE . ',', '', $my_dir);
                        if (@file_exists($my_dir)) {
-                               $bad_dirs["<li>".$m."</li>"] = 1;
-                       } else
-                               $absent_dirs["<li>".$m."</li>"] = 1;
-               } else $chmod = max($chmod, $test);
+                               $bad_dirs['<li>' . $m . '</li>'] = 1;
+                       } else {
+                               $absent_dirs['<li>' . $m . '</li>'] = 1;
+                       }
+               } else {
+                       $chmod = max($chmod, $test);
+               }
        }
 
-       if ($bad_dirs OR $absent_dirs) {
-
-       if (!_FILE_CONNECT) {
-               $titre = _T('dirs_preliminaire');
-               $continuer = ' '._T('dirs_commencer') . '.';
-       } else
-               $titre = _T('dirs_probleme_droits');
-
+       if ($bad_dirs or $absent_dirs) {
+               if (!_FILE_CONNECT) {
+                       $titre = _T('dirs_preliminaire');
+                       $continuer = ' ' . _T('dirs_commencer') . '.';
+               } else {
+                       $titre = _T('dirs_probleme_droits');
+               }
 
-       $res = "<div align='right'>". menu_langues('var_lang_ecrire')."</div>\n";
 
-       if ($bad_dirs) {
-               $res .=
-                 _T('dirs_repertoires_suivants',
-                    array('bad_dirs' => join("\n", array_keys($bad_dirs)))) .
-                       "<b>". _T('login_recharger')."</b>.";
-       }
+               $res = "<div align='right'>" . menu_langues('var_lang_ecrire') . "</div>\n";
 
-       if ($absent_dirs) {
-               $res .=
-                       _T('dirs_repertoires_absents',
-                          array('bad_dirs' => join("\n", array_keys($absent_dirs)))) .
-                       "<b>". _T('login_recharger')."</b>.";
-       }
-       $res = "<p>" . $continuer  . $res . aide ("install0", true) . "</p>";
+               if ($bad_dirs) {
+                       $res .=
+                               _T(
+                                       'dirs_repertoires_suivants',
+                                       array('bad_dirs' => join("\n", array_keys($bad_dirs)))
+                               ) .
+                               '<b>' . _T('login_recharger') . '</b>.';
+               }
 
-       $t = _T('login_recharger');
-       $t = (!$test_dir ? "" : 
-                "<input type='hidden' name='test_dir' value='$test_dir' />")
-       . "<input type='hidden' name='etape' value='chmod' />"
-       . "<div style='text-align: right'><input type='submit' value='$t' /></div>"; 
+               if ($absent_dirs) {
+                       $res .=
+                               _T(
+                                       'dirs_repertoires_absents',
+                                       array('bad_dirs' => join("\n", array_keys($absent_dirs)))
+                               ) .
+                               '<b>' . _T('login_recharger') . '</b>.';
+               }
+               $res = '<p>' . $continuer . $res . aider('install0', true) . '</p>';
 
-       echo minipres($titre, $res . generer_form_ecrire('install',  $t));
+               $t = _T('login_recharger');
+               $t = (!$test_dir ? '' :
+                               "<input type='hidden' name='test_dir' value='" . spip_htmlspecialchars($test_dir, ENT_QUOTES) . "' />")
+                       . "<input type='hidden' name='etape' value='chmod' />"
+                       . "<div style='text-align: right'><input type='submit' value='" . attribut_html($t) . "' /></div>";
 
+               echo minipres($titre, $res . generer_form_ecrire('install', $t));
        } else {
-               $deja = (_FILE_CONNECT AND analyse_fichier_connection(_FILE_CONNECT));
-               if (!$deja)
-                       redirige_url_ecrire("install", "etape=1&chmod=".$chmod);
-               else    redirige_url_ecrire();
+               $deja = (_FILE_CONNECT and analyse_fichier_connection(_FILE_CONNECT));
+               if (!$deja) {
+                       redirige_url_ecrire('install', 'etape=1&chmod=' . $chmod);
+               } else {
+                       redirige_url_ecrire();
+               }
        }
 }
-?>