Changeset 90098 in spip-zone


Ignore:
Timestamp:
Jun 10, 2015, 11:58:29 PM (6 years ago)
Author:
teddy.spip@…
Message:

De l'indentation uniquement.
On est en 2015

Location:
_plugins_/mutualisation/trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mutualisation/trunk/base/abstract_mutu.php

    r87598 r90098  
    11<?php
    22
    3 if (!defined("_ECRIRE_INC_VERSION"))
    4         return;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4    return;
     5}
    56
    67/*
    78 * Sauvegarder la connexion apres le spip_connect_db
    8  */
    9 function mutu_connect_db($host, $port, $login, $pass, $db='', $type='mysql', $prefixe='', $ldap=''){
    10         $args = func_get_args();
    11        
    12         // sinon plantages 1.9.3
    13         // le fichier SERVEUR_out dans spip_connect_db
    14         // empeche une nouvelle connexion ?
    15         define('_ECRIRE_INSTALL', true);
    16        
    17         $link = call_user_func_array('spip_connect_db', $args);
    18         if($link){
    19                 $GLOBALS['connexions'][_INSTALL_SERVER_DB] = $link;
    20                 $GLOBALS['connexions'][_INSTALL_SERVER_DB][$GLOBALS['spip_sql_version']]
    21                         = $GLOBALS['spip_' . _INSTALL_SERVER_DB .'_functions_' . $GLOBALS['spip_sql_version']];
    22         }
    23         return $link;   
     9 */
     10function mutu_connect_db($host, $port, $login, $pass, $db = '', $type = 'mysql', $prefixe = '', $ldap = '')
     11{
     12    $args = func_get_args();
     13
     14    // sinon plantages 1.9.3
     15    // le fichier SERVEUR_out dans spip_connect_db
     16    // empeche une nouvelle connexion ?
     17    define('_ECRIRE_INSTALL', true);
     18
     19    $link = call_user_func_array('spip_connect_db', $args);
     20    if ($link) {
     21        $GLOBALS['connexions'][_INSTALL_SERVER_DB] = $link;
     22        $GLOBALS['connexions'][_INSTALL_SERVER_DB][$GLOBALS['spip_sql_version']]
     23            = $GLOBALS['spip_'._INSTALL_SERVER_DB.'_functions_'.$GLOBALS['spip_sql_version']];
     24    }
     25
     26    return $link;
    2427}
    25 
    2628
    2729// 1 occurrence (lorsque creer_user_base = true)
    2830// utile reellement ?
    29 function mutu_close(){
    30         $f = _INSTALL_SERVER_DB . '_close';
    31         $f($GLOBALS['connexions'][_INSTALL_SERVER_DB]['link']);
     31function mutu_close()
     32{
     33    $f = _INSTALL_SERVER_DB.'_close';
     34    $f($GLOBALS['connexions'][_INSTALL_SERVER_DB]['link']);
    3235}
    33 
    34 ?>
  • _plugins_/mutualisation/trunk/inc/dirliste.php

    r87596 r90098  
    66// Param dir : répertoire à explorer
    77
    8 if (!defined("_ECRIRE_INC_VERSION"))
    9         return;
     8if (!defined('_ECRIRE_INC_VERSION')) {
     9    return;
     10}
    1011
    1112echo dirliste($_GET['dir']);
     
    1314function dirliste($path)
    1415{
    15         $liste = "";
    16         $size = 0;
     16    $liste = '';
     17    $size = 0;
    1718
    18         // Trailing slash
    19         if (substr($path, -1, 1) !== DIRECTORY_SEPARATOR) {
    20                 $path .= DIRECTORY_SEPARATOR;
    21         }
     19    // Trailing slash
     20    if (substr($path, -1, 1) !== DIRECTORY_SEPARATOR) {
     21        $path .= DIRECTORY_SEPARATOR;
     22    }
    2223
    23         if (!is_dir($path))
    24                 return -1;
     24    if (!is_dir($path)) {
     25        return -1;
     26    }
    2527
    26         $handle=opendir($path) ;
    27         while (($file = readdir($handle)) !== false) {
    28                 // Skip pointers
    29                 if ($file == '.' || $file == '..')
    30                         continue;
     28    $handle = opendir($path);
     29    while (($file = readdir($handle)) !== false) {
     30        // Skip pointers
     31        if ($file == '.' || $file == '..') {
     32            continue;
     33        }
    3134
    32                 if (is_dir($path.$file)) {
    33                         $liste .= '##'.$file;
    34                 } elseif (is_file($path.$file)) {
    35                         $size += filesize($path.$file);
    36                 } else {
    37                         echo $file;
    38                 }
    39         }
    40         closedir($handle) ;
     35        if (is_dir($path.$file)) {
     36            $liste .= '##'.$file;
     37        } elseif (is_file($path.$file)) {
     38            $size += filesize($path.$file);
     39        } else {
     40            echo $file;
     41        }
     42    }
     43    closedir($handle);
    4144
    42         return round($size/1024/1024,2).$liste;
     45    return round($size / 1024 / 1024, 2).$liste;
    4346}
    44 
    45 ?>
  • _plugins_/mutualisation/trunk/inc/dirsize.php

    r87596 r90098  
    11<?php
     2
    23// Ce programme appelé en ajax renvoie une chaine de la forme XXX##erreur
    34//                      où XXX vaut -1 si erreur, -2 si taille max atteinte et sinon la taille du répertoire en Mo
     
    67//       taille_max : taille max au delà de laquelle la recherche s'arrête et renvoie -2
    78
    8 if (!defined("_ECRIRE_INC_VERSION"))
    9         return;
     9if (!defined('_ECRIRE_INC_VERSION')) {
     10    return;
     11}
    1012
    11 $retour = dirsize($_GET['dir'],$_GET['taille_max']) ;
    12 if ( is_numeric($retour) )
    13         echo round($retour/1024/1024,2);
    14 else
    15         echo $retour;
     13$retour = dirsize($_GET['dir'], $_GET['taille_max']);
     14if (is_numeric($retour)) {
     15    echo round($retour / 1024 / 1024, 2);
     16} else {
     17    echo $retour;
     18}
    1619
    1720/**
    18  * Calculate the size of a directory by iterating its contents
     21 * Calculate the size of a directory by iterating its contents.
    1922 *
    2023 * @author      Aidan Lister <aidan@php.net>, modifié par Yffic pour SPIP
     24 *
    2125 * @version     1.2.0
     26 *
    2227 * @link        http://aidanlister.com/2004/04/calculating-a-directories-size-in-php/
     28 *
    2329 * @param       string   $directory    Path to directory
    2430 *              integer  $taille_max   Taille_max d'exploration
    2531 */
    26 function dirsize($path,$taille_max=0) {
    27         // Init
    28         $size = 0;
     32function dirsize($path, $taille_max = 0)
     33{
     34    // Init
     35    $size = 0;
    2936
    30         // Trailing slash
    31         if (substr($path, -1, 1) !== DIRECTORY_SEPARATOR) {
    32                 $path .= DIRECTORY_SEPARATOR;
    33         }
     37    // Trailing slash
     38    if (substr($path, -1, 1) !== DIRECTORY_SEPARATOR) {
     39        $path .= DIRECTORY_SEPARATOR;
     40    }
    3441
    35         // Sanity check
    36         if (is_file($path)) {
    37                 return filesize($path);
    38         } elseif (!is_dir($path)) {
    39                 return ("-1##".$path);
    40         }
    41         // Iterate queue
    42         $queue = array($path);
    43         for ($i = 0, $j = count($queue); $i < $j; ++$i){
    44                 // Open directory
    45                 $parent = $i;
    46                 if (is_dir($queue[$i]) && $dir = @dir($queue[$i])) {
    47                         $subdirs = array();
    48                         while (false !== ($entry = $dir->read())) {
    49                                 // Skip pointers
    50                                 if ($entry == '.' || $entry == '..') {
    51                                         continue;
    52                                 }
    53  
    54                                 // Get list of directories or filesizes
    55                                 $path = $queue[$i] . $entry;
    56                                 if (is_dir($path)) {
    57                                         $path .= DIRECTORY_SEPARATOR;
    58                                         $subdirs[] = $path;
    59                                 } elseif (is_file($path)) {
    60                                         $size += filesize($path);
    61                                 }
    62                                 if($taille_max>0 && $size>$taille_max*1024*1024)
    63                                         return ("-2##".$queue[$i]);
    64                         }
    65                         // Add subdirectories to start of queue
    66                         unset($queue[0]);
    67                         $queue = array_merge($subdirs, $queue);
    68                         // Recalculate stack size
    69                         $i = -1;
    70                         $j = count($queue);
     42    // Sanity check
     43    if (is_file($path)) {
     44        return filesize($path);
     45    } elseif (!is_dir($path)) {
     46        return ('-1##'.$path);
     47    }
     48    // Iterate queue
     49    $queue = array($path);
     50    for ($i = 0, $j = count($queue); $i < $j; ++$i) {
     51        // Open directory
     52        $parent = $i;
     53        if (is_dir($queue[$i]) && $dir = @dir($queue[$i])) {
     54            $subdirs = array();
     55            while (false !== ($entry = $dir->read())) {
     56                // Skip pointers
     57                if ($entry == '.' || $entry == '..') {
     58                    continue;
     59                }
    7160
    72                         // Clean up
    73                         $dir->close();
    74                         unset($dir);
    75                 }
    76         }
    77         return $size;
     61                // Get list of directories or filesizes
     62                $path = $queue[$i].$entry;
     63                if (is_dir($path)) {
     64                    $path .= DIRECTORY_SEPARATOR;
     65                    $subdirs[] = $path;
     66                } elseif (is_file($path)) {
     67                    $size += filesize($path);
     68                }
     69                if ($taille_max > 0 && $size > $taille_max * 1024 * 1024) {
     70                    return ('-2##'.$queue[$i]);
     71                }
     72            }
     73            // Add subdirectories to start of queue
     74            unset($queue[0]);
     75            $queue = array_merge($subdirs, $queue);
     76            // Recalculate stack size
     77            $i = -1;
     78            $j = count($queue);
     79
     80            // Clean up
     81            $dir->close();
     82            unset($dir);
     83        }
     84    }
     85
     86    return $size;
    7887}
    79 
    80 ?>
  • _plugins_/mutualisation/trunk/mes_options.php.txt

    r86225 r90098  
    1818        require _DIR_RACINE.'mutualisation/mutualiser.php';
    1919
    20         /* placer dans ce tableau les sites ou l'on ne veut pas la redirection canonique */ 
     20        /* placer dans ce tableau les sites ou l'on ne veut pas la redirection canonique */
    2121        $www = array();
    22        
     22
    2323        $site = str_replace('www.', '', $_SERVER['HTTP_HOST']);
    2424        if ($site != $_SERVER['HTTP_HOST'] AND !in_array($site, $www)) {
    2525                include_spip('inc/headers');
    2626                $req = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/';
    27                 if (isset($_SERVER['HTTPS']) 
     27                if (isset($_SERVER['HTTPS'])
    2828                AND test_valeur_serveur($_SERVER['HTTPS']))
    2929                        $protocole = 'https';
     
    5353        define ('_INSTALL_NAME_DB', _INSTALL_PREFIX_DB. _INSTALL_SITE_PREF);
    5454
    55         define ('_INSTALL_SERVER_DB', 'mysql'); 
    56         define ('_INSTALL_HOST_DB', 'localhost'); 
    57         define ('_INSTALL_USER_DB', 'loginsql'); 
    58         define ('_INSTALL_PASS_DB', '123456HDJ'); 
    59        
    60         /* mettre en commentaire la ligne suivante si vous utilisez l'option table_prefixe plus bas dans la config */ 
     55        define ('_INSTALL_SERVER_DB', 'mysql');
     56        define ('_INSTALL_HOST_DB', 'localhost');
     57        define ('_INSTALL_USER_DB', 'loginsql');
     58        define ('_INSTALL_PASS_DB', '123456HDJ');
     59
     60        /* mettre en commentaire la ligne suivante si vous utilisez l'option table_prefixe plus bas dans la config */
    6161        define ('_INSTALL_TABLE_PREFIX', 'spip');
    6262
    6363        /*
    64          * Si le nom du serveur est different du nom dns, 
     64         * Si le nom du serveur est different du nom dns,
    6565         * ca peut parfois poser probleme
    6666         * il faut alors le definir ici
    6767         */
    6868        # define ('_INSTALL_HOST_DB_LOCALNAME', 'nom_serveur');
    69        
    70         /* 
     69
     70        /*
    7171         * Si le serveur n'est pas mysql, il faut le preciser obligatoirement.
    7272         * # define ('_INSTALL_SERVER_DB', 'pg'); // mysql|pg|sqlite2|sqlite3
    73          * 
     73         *
    7474         * /!\ En PG, il est conseille d'utiliser la creation d'utilisateur SQL
    7575         */
    76        
     76
    7777        /*
    7878         * Creer automatiquement les users SQL (pg|mysql)
    79          * 
    80          * Cela permet 
    81          * - d'avoir un utilisateur root possedant les droits 
    82          * de creation de bases (cet utilisateur possedant obligatoirement 
     79         *
     80         * Cela permet
     81         * - d'avoir un utilisateur root possedant les droits
     82         * de creation de bases (cet utilisateur possedant obligatoirement
    8383         * une base a son nom en PG - PG ne se connecte pas sans donner un nom de bdd)
    84          * - de creer des utilisateurs sql automatiquement 
    85          * ne possedant que les droits d'administation 
     84         * - de creer des utilisateurs sql automatiquement
     85         * ne possedant que les droits d'administation
    8686         * de leur base de donnee qui sera creee
    87          * 
    88          * Il faut remplacer alors 
     87         *
     88         * Il faut remplacer alors
    8989         * _INSTALL_(USER|PASS)_DB par _INSTALL_(USER|PASS)_DB_ROOT
    90          * 
     90         *
    9191         * et ajouter dans demarrer_site l'option
    9292         * 'creer_user_base' => true
    93          */ 
     93         */
    9494        # define ('_INSTALL_USER_DB_ROOT', 'mon_root');
    9595        # define ('_INSTALL_PASS_DB_ROOT', '********');
    96  
     96
    9797        /*
    9898         * Creer les bases de donnees via un ping sur une URL (methode AlternC)
     
    101101         * 'url_creer_base' => 'https://bureau.tld/admin/sql_doadd.php?username=USER&password=PASS&dbn='.prefixe_mutualisation($site)
    102102         */
    103          
    104          
     103
     104
    105105        /*
    106106         * Transformer sur les pages publiques les url des images
    107107         * /sites/mon_site/IMG/* -> /IMG/*
    108108         * /sites/mon_site/local/* -> /local/*
    109          * 
     109         *
    110110         * - Necessite le mod_rewrite (reecriture d'url) d'apache
    111          * - Ne fonctionne qu'avec des mutualisations de nom de domaine 
     111         * - Ne fonctionne qu'avec des mutualisations de nom de domaine
    112112         * ('http_host' : http://mon_site_mutu.tld)
    113113         * (donc pas avec une mutualisation de repertoire - http://site/mon_spip_mutu/)
    114          * 
     114         *
    115115         * et ajouter dans demarrer_site l'option
    116116         * 'url_img_courtes' => true
    117          * 
    118          * Il est possible de regenerer les fichiers .htaccess 
     117         *
     118         * Il est possible de regenerer les fichiers .htaccess
    119119         * crees automatiquement dans /IMG et /local
    120120         * grace a ?var_mode=creer_htaccess_img
    121          * 
     121         *
    122122         */
    123        
     123
    124124        demarrer_site($site,
    125125                array(
    126                         'creer_site' => true,        // Creer ou non le site s'il n'existe pas (defaut: false) 
    127                         'creer_base' => true,        // Creer ou non la base de donnee si elle n'existe pas (false) 
     126                        'creer_site' => true,        // Creer ou non le site s'il n'existe pas (defaut: false)
     127                        'creer_base' => true,        // Creer ou non la base de donnee si elle n'existe pas (false)
    128128                        'creer_user_base' => false,  // Creer ou non un utilisateur pour la nouvelle base de donnee (false)
    129                         'mail' => '',                // Adresse mail pour recevoir un mail lors d'une creation de site mutualise ('') 
    130                         'code' => 'ecureuil',        // Code d'activation ('ecureuil') 
    131                         'table_prefix' => false,     // Definir automatiquement le prefixe de table (false) ... mettre true si tous les sites dans la meme base 
     129                        'mail' => '',                // Adresse mail pour recevoir un mail lors d'une creation de site mutualise ('')
     130                        'code' => 'ecureuil',        // Code d'activation ('ecureuil')
     131                        'table_prefix' => false,     // Definir automatiquement le prefixe de table (false) ... mettre true si tous les sites dans la meme base
    132132                        'cookie_prefix' => true,     // Definir automatiquement le prefixe de cookie (false)
    133133                        'repertoire' => 'sites',     // Nom du repertoire contenant les sites mutualises ('sites')
     
    135135                                                                                 // /!\ il faut qu'apache ait le droit d'ecrire dans les dossiers IMG/ et local/ a la racine du site !
    136136                                                                                 // C'est la que la mutualisation va ecrire les regles de redirection automatiques pour les images de chaque site
    137                         # 'utiliser_panel' => false, // Utiliser une table externe pour recuperer des identifiants ... (code, user, pass) permettant a un utilisateur d'installer le site (false) 
     137                        # 'utiliser_panel' => false, // Utiliser une table externe pour recuperer des identifiants ... (code, user, pass) permettant a un utilisateur d'installer le site (false)
    138138                        # 'annonce' => '<p>Un service propos&eacute; par <a href="http://www.spip.net/">la communaut&eacute; SPIP</a></p>', // Texte a afficher en bas du formulaire d'activation de la mutualisation
    139139                        'url_creer_base' => ''       // Creer la base de donnees via une URL (methode AlternC)
     
    143143        /*
    144144         * Notes concernant SQLite
    145          * 
     145         *
    146146         * 1) creer_base = false
    147147         *      Avec SQLite, il est inutile de mettre creer_base a true.
    148148         *      Si creer_base est true, une base sera cree (par l'outil de mutualisation)
    149149         *      dans le repertoire defini par la constante _DIR_DB.
    150          * 
     150         *
    151151         *      Si cette constante n'est pas renseignee, elle vaudra
    152152         *      _DIR_ETC/bases/ soit : config/bases/, ce qui ne correspond pas
    153153         *      a l'emplacement du futur site : sites/X/config/bases.
    154          * 
     154         *
    155155         *      En laissant l'option a false, SPIP creera la base de donnee
    156156         *      au moment de l'installation (exec=install) et a ce moment
    157157         *      la, _DIR_ETC vaudra 'sites/X/config' donc la base sera stockee
    158158         *      ou il faut si _DIR_DB n'est pas defini.
    159          * 
     159         *
    160160         * 2) creer_user_base = false
    161161         *      SQLite ne gerant pas de droits d'utilisateurs,
    162162         *      (les droits sont ceux du fichier .sqlite)
    163163         *      mettre true provoquera des erreurs (je suppose)
    164          * 
     164         *
    165165         * 3) constantes a definir :
    166166         *  define ('_INSTALL_SERVER_DB', 'sqlite3'); //  sqlite2 ou sqlite3
    167167         *  define ('_INSTALL_NAME_DB', 'mu_'.prefixe_mutualisation($site));  // 'mu_' ou autre chose mais PAS PLUS DE 3 CARACTERES !!!
    168          * 
     168         *
    169169         *      les constantes _INSTALL_(HOST|PASS|USER)_DB sont inutiles.
    170170         */
    171        
     171
    172172        /*
    173173         * Notes concernant MySQL
    174          * 
     174         *
    175175         * - Pour la creation d'utilisateurs MYSQL
    176176         * (creer_base+creer_user_base)
    177          * il est possible de definir les droits de ces utilisateurs avec la constante 
     177         * il est possible de definir les droits de ces utilisateurs avec la constante
    178178         * _PRIVILEGES_MYSQL_USER_BASE (ici avec les valeurs utilisees par defaut) :
    179          * 
     179         *
    180180         *  define('_PRIVILEGES_MYSQL_USER_BASE','Alter, Select, Insert, Update, Delete, Create, Drop');
    181181         *
  • _plugins_/mutualisation/trunk/mutualiser.php

    r87597 r90098  
    44 *  SPIP, Systeme de publication pour l'internet                           *
    55 *                                                                         *
    6  *  Copyright (c) 2001-2013                                                *
     6 *  Copyright (c) 2001-2015                                                *
    77 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
    88 *                                                                         *
     
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION')) {
     14    return;
     15}
    1416
    1517// Demarrer un site dans le sous-repertoire des sites
     
    1820// cookie_prefix, table_prefix => regler les prefixes (defaut: true)
    1921// http://doc.spip.org/@demarrer_site
    20 function demarrer_site($site = '', $options = array()) {
    21 
    22         if (!$site) return;
    23 
    24         $options = array_merge(
    25                 array(
    26                         'creer_site' => false,
    27                         'creer_base' => false,
    28                         'creer_user_base' => false,
    29                         'mail' => '',
    30                         'code' => 'ecureuil', // code d'activation par defaut
    31                         'table_prefix' => false,
    32                         'cookie_prefix' => false,
    33                         'repertoire' => 'sites',
    34                         'utiliser_panel' => false,
    35                         'url_img_courtes' => false
    36                 ),
    37                 $options
    38         );
    39 
    40         $GLOBALS['mutualisation_dir'] = $options['repertoire'];
    41 
    42         // definir une constante qui contient l'adresse du repertoire du site mutualise
    43         // peut servir dans les fichiers mes_options des sites inclus
    44         // par exemple avec  $GLOBALS['dossier_squelettes'] = _DIR_SITE . 'squelettes:' . _DIR_SITE . 'cheznous:dist';
    45         define('_DIR_SITE', _DIR_RACINE . $GLOBALS['mutualisation_dir'] .'/' . $site . '/');
    46 
    47         if ($options['cookie_prefix'])
    48                 $GLOBALS['cookie_prefix'] = _INSTALL_SITE_PREF;
    49         if ($options['table_prefix'])
    50                 $GLOBALS['table_prefix'] = _INSTALL_SITE_PREF;
    51 
    52         /*
    53          * Si le dossier du site n'existe pas
    54          * ou si le fichier de connexion a la bdd est absent,
    55          * le site n'est pas totalement installe.
    56          *
    57          * Il faut lancer la creation de mutualisation
    58          */
    59         if($a_installer = (!is_dir(_DIR_SITE) OR !(defined('_DIR_CONNECT')?
    60                         (defined('_FILE_CONNECT_INS')?
    61                                 file_exists(_DIR_CONNECT . _FILE_CONNECT_INS . '.php'):
    62                                 file_exists(_DIR_CONNECT . 'connect.php')):
    63                         (defined('_FILE_CONNECT_INS')?
    64                                 file_exists(_DIR_SITE . _NOM_PERMANENTS_INACCESSIBLES . _FILE_CONNECT_INS . '.php'):
    65                                 file_exists(_DIR_SITE . _NOM_PERMANENTS_INACCESSIBLES . 'connect.php'))
    66                         ))){
    67                 /*
    68                  * - Recuperer les identifiants manquants
    69                  *
    70                  * Nota :
    71                  * Il faut que _INSTALL_(NAME|USER|PASS) soient definis ici
    72                  * et non dans le fichier mutualiser_creer() car
    73                  * ces constantes sont necessaires a l'installation de SPIP
    74                  * (ecrire/?exec=install). Dans le cas contraire, le formulaire
    75                  * d'installation n'est pas prerempli.
    76                  *
    77                  *
    78                  * > Cas de la gestion d'un pannel
    79                  * Recuperer les mots de passes du futur compte dans une table speciale
    80                  * Voir http://www.spip-contrib.net/Service-d-hebergement-mutualise
    81                  */
    82                 if ($options['utiliser_panel']) {
    83                         if(defined(_INSTALL_PANEL_HOST_DB)){
    84                                 include_spip('inc/minipres');
    85                                 include_spip('base/abstract_sql');
    86                                 include_once(dirname(__FILE__).'/base/abstract_mutu.php');
    87 
    88                                 // On cherche en BD si le site est enregistre et on recupere
    89                                 // password et code d'activation
    90                                 $link = @mutu_connect_db(_INSTALL_PANEL_HOST_DB, 0, _INSTALL_PANEL_USER_DB, _INSTALL_PANEL_PASS_DB, '', _INSTALL_SERVER_DB);
    91                                 @sql_selectdb(_INSTALL_PANEL_NAME_DB, _INSTALL_SERVER_DB);
    92                                 $result=@sql_query("SELECT "
    93                                                         . _INSTALL_PANEL_FIELD_CODE . " AS code,"
    94                                                         . _INSTALL_PANEL_FIELD_PASS . " AS pass,"
    95                                                         . _INSTALL_PANEL_FIELD_SITE . " AS site"
    96                                                         . " FROM " . _INSTALL_PANEL_NAME_TABLE
    97                                                         . " WHERE "._INSTALL_PANEL_FIELD_SITE . " = '$site'"
    98                                                         , _INSTALL_SERVER_DB);
    99                                 if (sql_count($result)>0) {
    100                                         $data = sql_fetch($result);
    101                                         $options['code'] = $data['code'];
    102                                         define ('_INSTALL_NAME_DB', _INSTALL_NAME_DB);
    103                                         define ('_INSTALL_USER_DB', _INSTALL_NAME_DB);
    104                                         define ('_INSTALL_PASS_DB', $data['pass']);
    105                                 }
    106                                 else {
    107                                         echo minipres(
    108                                                 _L('<h2>Erreur 404 : page inexistante</h2>')
    109                                         );
    110                                         exit;
    111                                 }
    112                         }else{
    113                                 if(is_dir($options['repertoire'].'/'._SITES_ADMIN_MUTUALISATION)){
    114                                         include_spip('base/abstract_sql');
    115                                         define(_FILE_CONNECT,$options['repertoire'].'/'._SITES_ADMIN_MUTUALISATION.'/config/connect.php');
    116                                         $mutu = sql_fetsel('id_admin,id_mutu,statut','spip_mutus','url='.sql_quote($site));
    117                                         $options['id_mutu'] = $mutu['id_mutu'];
    118                                         $options['statut'] = $mutu['statut'];
    119                                         $options['login'] = sql_getfetsel('login','spip_auteurs','id_auteur='.intval($mutu['id_admin']));
    120                                         define(_FILE_CONNECT,'');
    121                                 }
    122                         }
    123                 /**
    124                  * > Cas de creation d'utilisateur de la base SQL
    125                  * (nom et pass non attribuees par un panel)
    126                  */             
    127                 } elseif ($options['creer_user_base']) {
    128                         // nom d'utilisateur et mot de passe
    129                         define('_INSTALL_USER_DB', _INSTALL_NAME_DB);
    130                         define('_INSTALL_PASS_DB',
    131                                 substr(md5(
    132                                         _INSTALL_PASS_DB_ROOT   # secret du site
    133                                         . $_SERVER['HTTP_HOST'] # un truc variable, mais reutilisable site par site
    134                                         . _INSTALL_USER_DB # un autre truc variable
    135                                 ), 0, 8)
    136                         );
    137                 }
    138                
    139                 /*
    140                  * Si l'installation n'est pas faite,
    141                  * il faut soit creer le site mutualise
    142                  * soit lancer la procedure d'installation de SPIP
    143                  * si le site a deja ete cree
    144                  */
    145                 if ($a_installer) {
    146                         /*
    147                          * Pour savoir si l'installation de la mutu est terminee,
    148                          * on verifie que le fichier d'installation a bien ete supprime
    149                          * sinon, c'est qu'il reste quelque chose a faire.
    150                          */
    151                         define('_MUTU_INSTALLATION_FILE','mutu_tmp_install.txt');
    152                        
    153                         if (!is_dir(_DIR_SITE) || is_file(_DIR_SITE . _NOM_TEMPORAIRES_INACCESSIBLES . _MUTU_INSTALLATION_FILE)){
    154                                 spip_initialisation(
    155                                         (_DIR_RACINE  . _NOM_PERMANENTS_INACCESSIBLES),
    156                                         (_DIR_RACINE  . _NOM_PERMANENTS_ACCESSIBLES),
    157                                         (_DIR_RACINE  . _NOM_TEMPORAIRES_INACCESSIBLES),
    158                                         (_DIR_RACINE  . _NOM_TEMPORAIRES_ACCESSIBLES)
    159                                 );
    160                                 include_once dirname(__FILE__).'/mutualiser_creer.php';
    161                                 mutualiser_creer(_DIR_SITE, $options);
    162                                 exit;
    163                         }
    164                 }
    165         }
    166 
    167         /*
    168          * Tout est pret, on execute la mutualisation.
    169          */
    170         define('_SPIP_PATH',
    171                 _DIR_SITE . ':' .
    172                 _DIR_RACINE .':' .
    173                 _DIR_RACINE .'squelettes-dist/:' .
    174                 _DIR_RACINE .'prive/:' .
    175                 _DIR_RESTREINT);
    176 
    177         if (is_dir(_DIR_SITE.'squelettes'))
    178                 $GLOBALS['dossier_squelettes'] = $options['repertoire'].'/' . $site . '/squelettes';
    179 
    180         if (is_readable($f = _DIR_SITE._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php'))
    181                 include($f); // attention cet include n'est pas en globals
    182 
    183         $init = function_exists('spip_initialisation_core')
    184                 ?'spip_initialisation_core' // mieux pour la 2.0, mais absente avant...
    185                 :'spip_initialisation';
    186         $init(
    187                 (_DIR_SITE . _NOM_PERMANENTS_INACCESSIBLES),
    188                 (_DIR_SITE . _NOM_PERMANENTS_ACCESSIBLES),
    189                 (_DIR_SITE . _NOM_TEMPORAIRES_INACCESSIBLES),
    190                 (_DIR_SITE . _NOM_TEMPORAIRES_ACCESSIBLES)
    191         );
    192 
    193         /*
    194          *Traiter l'exec=mutualisation
    195          */
    196         mutualisation_traiter_exec($site);
    197 
    198         /*
    199          * Gestion des url d'images courtes
    200          * sites/nom/IMG/image.jpg -> IMG/image.jpg
    201          *
    202          * Ne fonctionne que pour de la mutualisation
    203          * sur des noms de domaines.
    204          *
    205          * Une mutualisation de repertoire
    206          * ne pourra fonctionner car les fichiers
    207          * .htaccess de /IMG et /local n'ont pas
    208          * connaissance du nom du repertoire.
    209          *
    210          * A mettre au debut du pipe pour compatibilite avec fastcache
    211          */
    212         if ($options['url_img_courtes']) {
    213                 $pre_affichage_final = isset($GLOBALS['spip_pipeline']['affichage_final']) ? $GLOBALS['spip_pipeline']['affichage_final'] : '';
    214                 $GLOBALS['spip_pipeline']['affichage_final']
    215                         = '|mutualisation_url_img_courtes'
    216                         . $pre_affichage_final;
    217         }
    218 }
    219 
     22function demarrer_site($site = '', $options = array())
     23{
     24    if (!$site) {
     25        return;
     26    }
     27
     28    $options = array_merge(
     29        array(
     30            'creer_site' => false,
     31            'creer_base' => false,
     32            'creer_user_base' => false,
     33            'mail' => '',
     34            'code' => 'ecureuil', // code d'activation par defaut
     35            'table_prefix' => false,
     36            'cookie_prefix' => false,
     37            'repertoire' => 'sites',
     38            'utiliser_panel' => false,
     39            'url_img_courtes' => false,
     40        ),
     41        $options
     42    );
     43
     44    $GLOBALS['mutualisation_dir'] = $options['repertoire'];
     45
     46    // definir une constante qui contient l'adresse du repertoire du site mutualise
     47    // peut servir dans les fichiers mes_options des sites inclus
     48    // par exemple avec  $GLOBALS['dossier_squelettes'] = _DIR_SITE . 'squelettes:' . _DIR_SITE . 'cheznous:dist';
     49    define('_DIR_SITE', _DIR_RACINE.$GLOBALS['mutualisation_dir'].'/'.$site.'/');
     50
     51    if ($options['cookie_prefix']) {
     52        $GLOBALS['cookie_prefix'] = _INSTALL_SITE_PREF;
     53    }
     54    if ($options['table_prefix']) {
     55        $GLOBALS['table_prefix'] = _INSTALL_SITE_PREF;
     56    }
     57
     58    /*
     59     * Si le dossier du site n'existe pas
     60     * ou si le fichier de connexion a la bdd est absent,
     61     * le site n'est pas totalement installe.
     62     *
     63     * Il faut lancer la creation de mutualisation
     64     */
     65    if ($a_installer = (!is_dir(_DIR_SITE) or !(defined('_DIR_CONNECT') ?
     66            (defined('_FILE_CONNECT_INS') ?
     67                file_exists(_DIR_CONNECT._FILE_CONNECT_INS.'.php') :
     68                file_exists(_DIR_CONNECT.'connect.php')) :
     69            (defined('_FILE_CONNECT_INS') ?
     70                file_exists(_DIR_SITE._NOM_PERMANENTS_INACCESSIBLES._FILE_CONNECT_INS.'.php') :
     71                file_exists(_DIR_SITE._NOM_PERMANENTS_INACCESSIBLES.'connect.php'))
     72            ))) {
     73        /*
     74         * - Recuperer les identifiants manquants
     75         *
     76         * Nota :
     77         * Il faut que _INSTALL_(NAME|USER|PASS) soient definis ici
     78         * et non dans le fichier mutualiser_creer() car
     79         * ces constantes sont necessaires a l'installation de SPIP
     80         * (ecrire/?exec=install). Dans le cas contraire, le formulaire
     81         * d'installation n'est pas prerempli.
     82         *
     83         *
     84         * > Cas de la gestion d'un pannel
     85         * Recuperer les mots de passes du futur compte dans une table speciale
     86         * Voir http://www.spip-contrib.net/Service-d-hebergement-mutualise
     87         */
     88        if ($options['utiliser_panel']) {
     89            if (defined(_INSTALL_PANEL_HOST_DB)) {
     90                include_spip('inc/minipres');
     91                include_spip('base/abstract_sql');
     92                include_once dirname(__FILE__).'/base/abstract_mutu.php';
     93
     94                // On cherche en BD si le site est enregistre et on recupere
     95                // password et code d'activation
     96                $link = @mutu_connect_db(_INSTALL_PANEL_HOST_DB, 0, _INSTALL_PANEL_USER_DB, _INSTALL_PANEL_PASS_DB, '', _INSTALL_SERVER_DB);
     97                @sql_selectdb(_INSTALL_PANEL_NAME_DB, _INSTALL_SERVER_DB);
     98                $result = @sql_query('SELECT '
     99                            ._INSTALL_PANEL_FIELD_CODE.' AS code,'
     100                            ._INSTALL_PANEL_FIELD_PASS.' AS pass,'
     101                            ._INSTALL_PANEL_FIELD_SITE.' AS site'
     102                            .' FROM '._INSTALL_PANEL_NAME_TABLE
     103                            .' WHERE '._INSTALL_PANEL_FIELD_SITE." = '$site'", _INSTALL_SERVER_DB);
     104                if (sql_count($result) > 0) {
     105                    $data = sql_fetch($result);
     106                    $options['code'] = $data['code'];
     107                    define('_INSTALL_NAME_DB', _INSTALL_NAME_DB);
     108                    define('_INSTALL_USER_DB', _INSTALL_NAME_DB);
     109                    define('_INSTALL_PASS_DB', $data['pass']);
     110                } else {
     111                    echo minipres(
     112                        _L('<h2>Erreur 404 : page inexistante</h2>')
     113                    );
     114                    exit;
     115                }
     116            } else {
     117                if (is_dir($options['repertoire'].'/'._SITES_ADMIN_MUTUALISATION)) {
     118                    include_spip('base/abstract_sql');
     119                    define(_FILE_CONNECT, $options['repertoire'].'/'._SITES_ADMIN_MUTUALISATION.'/config/connect.php');
     120                    $mutu = sql_fetsel('id_admin,id_mutu,statut', 'spip_mutus', 'url='.sql_quote($site));
     121                    $options['id_mutu'] = $mutu['id_mutu'];
     122                    $options['statut'] = $mutu['statut'];
     123                    $options['login'] = sql_getfetsel('login', 'spip_auteurs', 'id_auteur='.intval($mutu['id_admin']));
     124                    define(_FILE_CONNECT, '');
     125                }
     126            }
     127        /*
     128         * > Cas de creation d'utilisateur de la base SQL
     129         * (nom et pass non attribuees par un panel)
     130         */
     131        } elseif ($options['creer_user_base']) {
     132            // nom d'utilisateur et mot de passe
     133            define('_INSTALL_USER_DB', _INSTALL_NAME_DB);
     134            define('_INSTALL_PASS_DB',
     135                substr(md5(
     136                    _INSTALL_PASS_DB_ROOT   # secret du site
     137.$_SERVER['HTTP_HOST'] # un truc variable, mais reutilisable site par site
     138._INSTALL_USER_DB # un autre truc variable
     139                ), 0, 8)
     140            );
     141        }
     142
     143        /*
     144         * Si l'installation n'est pas faite,
     145         * il faut soit creer le site mutualise
     146         * soit lancer la procedure d'installation de SPIP
     147         * si le site a deja ete cree
     148         */
     149        if ($a_installer) {
     150            /*
     151             * Pour savoir si l'installation de la mutu est terminee,
     152             * on verifie que le fichier d'installation a bien ete supprime
     153             * sinon, c'est qu'il reste quelque chose a faire.
     154             */
     155            define('_MUTU_INSTALLATION_FILE', 'mutu_tmp_install.txt');
     156
     157            if (!is_dir(_DIR_SITE) || is_file(_DIR_SITE._NOM_TEMPORAIRES_INACCESSIBLES._MUTU_INSTALLATION_FILE)) {
     158                spip_initialisation(
     159                    (_DIR_RACINE._NOM_PERMANENTS_INACCESSIBLES),
     160                    (_DIR_RACINE._NOM_PERMANENTS_ACCESSIBLES),
     161                    (_DIR_RACINE._NOM_TEMPORAIRES_INACCESSIBLES),
     162                    (_DIR_RACINE._NOM_TEMPORAIRES_ACCESSIBLES)
     163                );
     164                include_once dirname(__FILE__).'/mutualiser_creer.php';
     165                mutualiser_creer(_DIR_SITE, $options);
     166                exit;
     167            }
     168        }
     169    }
     170
     171    /*
     172     * Tout est pret, on execute la mutualisation.
     173     */
     174    define('_SPIP_PATH',
     175        _DIR_SITE.':'.
     176        _DIR_RACINE.':'.
     177        _DIR_RACINE.'squelettes-dist/:'.
     178        _DIR_RACINE.'prive/:'.
     179        _DIR_RESTREINT);
     180
     181    if (is_dir(_DIR_SITE.'squelettes')) {
     182        $GLOBALS['dossier_squelettes'] = $options['repertoire'].'/'.$site.'/squelettes';
     183    }
     184
     185    if (is_readable($f = _DIR_SITE._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php')) {
     186        include $f;
     187    } // attention cet include n'est pas en globals
     188
     189    $init = function_exists('spip_initialisation_core')
     190        ? 'spip_initialisation_core' // mieux pour la 2.0, mais absente avant...
     191        : 'spip_initialisation';
     192    $init(
     193        (_DIR_SITE._NOM_PERMANENTS_INACCESSIBLES),
     194        (_DIR_SITE._NOM_PERMANENTS_ACCESSIBLES),
     195        (_DIR_SITE._NOM_TEMPORAIRES_INACCESSIBLES),
     196        (_DIR_SITE._NOM_TEMPORAIRES_ACCESSIBLES)
     197    );
     198
     199    /*
     200     *Traiter l'exec=mutualisation
     201     */
     202    mutualisation_traiter_exec($site);
     203
     204    /*
     205     * Gestion des url d'images courtes
     206     * sites/nom/IMG/image.jpg -> IMG/image.jpg
     207     *
     208     * Ne fonctionne que pour de la mutualisation
     209     * sur des noms de domaines.
     210     *
     211     * Une mutualisation de repertoire
     212     * ne pourra fonctionner car les fichiers
     213     * .htaccess de /IMG et /local n'ont pas
     214     * connaissance du nom du repertoire.
     215     *
     216     * A mettre au debut du pipe pour compatibilite avec fastcache
     217     */
     218    if ($options['url_img_courtes']) {
     219        $pre_affichage_final = isset($GLOBALS['spip_pipeline']['affichage_final']) ? $GLOBALS['spip_pipeline']['affichage_final'] : '';
     220        $GLOBALS['spip_pipeline']['affichage_final']
     221            = '|mutualisation_url_img_courtes'
     222            .$pre_affichage_final;
     223    }
     224}
    220225
    221226// Ajouter le chemin vers l'exec=mutualisation pour le site maitre
    222227// et seulement pour lui (pour en mettre plusieurs, les separer par
    223228// des virgules) Voit le fichier mes_options.php
    224 function mutualisation_traiter_exec($site) {
    225         if (_request('exec') === 'mutualisation') {
    226                 if (!defined('_SITES_ADMIN_MUTUALISATION')
    227                 OR in_array($site, explode(',',_SITES_ADMIN_MUTUALISATION)))
    228                         require_once dirname(__FILE__).'/exec/mutualisation.php';
    229 
    230                 // Si un upgrade est demande dans le site fils, et securise par md5
    231                 // depuis le panneau de controle, le faire directement
    232                 if (_request('upgrade') == 'oui') {
    233                         require_once dirname(__FILE__).'/mutualiser_upgrade.php';
    234                         mutualiser_upgrade();
    235                 }
    236                 // Si un upgrade des plugins est demande dans le site fils, et securise par md5
    237                 // depuis le panneau de controle, le faire directement
    238                 if (_request('upgradeplugins') == 'oui') {
    239                         require_once dirname(__FILE__).'/mutualiser_upgradeplugins.php';
    240                         mutualiser_upgradeplugins();
    241                 }
    242                 if (_request('renouvelle_alea') == 'yo') {
    243                         include_spip('inc/headers');
    244                         http_status(204); // No Content
    245                         header("Connection: close");
    246                         include_spip('inc/acces');
    247                         renouvelle_alea();
    248                         die;
    249                 }
    250         }
     229function mutualisation_traiter_exec($site)
     230{
     231    if (_request('exec') === 'mutualisation') {
     232        if (!defined('_SITES_ADMIN_MUTUALISATION')
     233        or in_array($site, explode(',', _SITES_ADMIN_MUTUALISATION))) {
     234            require_once dirname(__FILE__).'/exec/mutualisation.php';
     235        }
     236
     237        // Si un upgrade est demande dans le site fils, et securise par md5
     238        // depuis le panneau de controle, le faire directement
     239        if (_request('upgrade') == 'oui') {
     240            require_once dirname(__FILE__).'/mutualiser_upgrade.php';
     241            mutualiser_upgrade();
     242        }
     243        // Si un upgrade des plugins est demande dans le site fils, et securise par md5
     244        // depuis le panneau de controle, le faire directement
     245        if (_request('upgradeplugins') == 'oui') {
     246            require_once dirname(__FILE__).'/mutualiser_upgradeplugins.php';
     247            mutualiser_upgradeplugins();
     248        }
     249        if (_request('renouvelle_alea') == 'yo') {
     250            include_spip('inc/headers');
     251            http_status(204); // No Content
     252            header('Connection: close');
     253            include_spip('inc/acces');
     254            renouvelle_alea();
     255            die;
     256        }
     257    }
    251258}
    252259
    253260/**
    254261 * Transformer les sites/truc/IMG/rtf/chose.rtf en /IMG/...
    255  * 
     262 *
    256263 * @param string $flux
    257264 *              L'URL à réécrire
    258265 */
    259 function mutualisation_url_img_courtes($flux) {
    260         if (strpos($flux, _DIR_IMG)
    261                 OR strpos($flux, _DIR_VAR)) {
    262                 require_once dirname(__FILE__).'/mutualiser_gerer_img.php';
    263                 return mutualisation_traiter_url_img_courtes($flux);
    264         }
    265         return $flux;
     266function mutualisation_url_img_courtes($flux)
     267{
     268    if (strpos($flux, _DIR_IMG)
     269        or strpos($flux, _DIR_VAR)) {
     270        require_once dirname(__FILE__).'/mutualiser_gerer_img.php';
     271
     272        return mutualisation_traiter_url_img_courtes($flux);
     273    }
     274
     275    return $flux;
    266276}
    267277
     
    272282 * ou comme prefixe des cookies... unicite quasi garantie
    273283 * Max 12 caracteres a-z0-9, qui ressemblent au domaine et ne commencent
    274  * pas par un chiffre
    275  * 
     284 * pas par un chiffre.
     285 *
    276286 * Pour rappel :
    277  * - Les noms d'utilisateurs MySQL peuvent avoir jusqu'à 16 caractères 
     287 * - Les noms d'utilisateurs MySQL peuvent avoir jusqu'à 16 caractères
    278288 * (cf. http://dev.mysql.com/doc/refman/5.0/fr/user-names.html)
    279289 * - Les noms de bases de données MySQL peuvent avoir jusqu'à 64 caractères
    280290 * (cf. http://dev.mysql.com/doc/refman/5.0/fr/legal-names.html)
    281  * 
     291 *
    282292 * @param string $site
    283293 *              Le nom du site
    284294 */
    285 function prefixe_mutualisation($site) {
    286         static $prefix = array();
    287         $max = 12;
    288         if(defined('_INSTALL_PREFIX_DB') && strlen(_INSTALL_PREFIX_DB) > 0){
    289                 $max = 15-strlen(_INSTALL_PREFIX_DB);
    290         }
    291         if (!isset($prefix[$site])) {
    292                 $p = preg_replace(',^www\.|[^a-z0-9],', '', strtolower($site));
    293                 // si c'est plus long que $max on coupe et on pose un md5 d'unicite
    294                 // meme chose si ca contenait un caractere autre que [a-z0-9],
    295                 // afin d'eviter de se faire chiper c.a.domaine.tld par ca.domaine.tld
    296                 if (strlen($p) > $max OR $p != $site)
    297                         $p = substr($p, 0, ($max-4)) . substr(md5($site),-4);
    298                 // si ca commence par un chiffre on ajoute a
    299                 if (ord($p) < 58)
    300                         $p = 'a'.$p;
    301                 $prefix[$site] = $p;
    302         }
    303         return $prefix[$site];
    304 }
    305 
    306 ?>
     295function prefixe_mutualisation($site)
     296{
     297    static $prefix = array();
     298    $max = 12;
     299    if (defined('_INSTALL_PREFIX_DB') && strlen(_INSTALL_PREFIX_DB) > 0) {
     300        $max = 15 - strlen(_INSTALL_PREFIX_DB);
     301    }
     302    if (!isset($prefix[$site])) {
     303        $p = preg_replace(',^www\.|[^a-z0-9],', '', strtolower($site));
     304        // si c'est plus long que $max on coupe et on pose un md5 d'unicite
     305        // meme chose si ca contenait un caractere autre que [a-z0-9],
     306        // afin d'eviter de se faire chiper c.a.domaine.tld par ca.domaine.tld
     307        if (strlen($p) > $max or $p != $site) {
     308            $p = substr($p, 0, ($max - 4)).substr(md5($site), -4);
     309        }
     310        // si ca commence par un chiffre on ajoute a
     311        if (ord($p) < 58) {
     312            $p = 'a'.$p;
     313        }
     314        $prefix[$site] = $p;
     315    }
     316
     317    return $prefix[$site];
     318}
  • _plugins_/mutualisation/trunk/mutualiser_creer.php

    r87597 r90098  
    44 *  SPIP, Systeme de publication pour l'internet                           *
    55 *                                                                         *
    6  *  Copyright (c) 2001-2007                                                *
     6 *  Copyright (c) 2001-2015                                                *
    77 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
    88 *                                                                         *
     
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
    14 
    15 define('_PRIVILEGES_MYSQL_USER_BASE','Alter, Select, Insert, Update, Delete, Create, Drop');
     13if (!defined('_ECRIRE_INC_VERSION')) {
     14    return;
     15}
     16
     17define('_PRIVILEGES_MYSQL_USER_BASE', 'Alter, Select, Insert, Update, Delete, Create, Drop');
    1618#define('_DIRMUT','mutualisation/');
    17 define('_DIRMUT', str_replace(str_replace('\\', '/', _ROOT_RACINE), '', str_replace('\\', '/', dirname(__FILE__))) . '/');
     19define('_DIRMUT', str_replace(str_replace('\\', '/', _ROOT_RACINE), '', str_replace('\\', '/', dirname(__FILE__))).'/');
    1820_chemin(_DIR_RACINE._DIRMUT);
    1921
     
    2628
    2729/* centrage...  */
    28 function mutu_minipres($titre="",$contenu="",$onload=""){
    29         return minipres($titre,"<div class='petit-centre'>" . $contenu . "</div>",$onload);
     30function mutu_minipres($titre = '', $contenu = '', $onload = '')
     31{
     32    return minipres($titre, "<div class='petit-centre'>".$contenu.'</div>', $onload);
    3033}
    3134
    3235// http://doc.spip.org/@mutualiser_creer
    33 function mutualiser_creer($e, $options) {
    34         include_spip('base/abstract_sql');
    35         include_once(dirname(__FILE__).'/base/abstract_mutu.php');
    36 
    37         $GLOBALS['meta']["charset"] = 'utf-8'; // pour que le mail fonctionne
    38 
    39         //$GLOBALS['spip_connect_version'] = 0.7;
    40 
    41         if (!defined('_INSTALL_SERVER_DB'))
    42                 define('_INSTALL_SERVER_DB','mysql');
    43 
    44         header("Cache-Control: no-store, no-cache, must-revalidate");
    45         header("Pragma: no-cache");
    46 
    47         mutu_etape_code_activation($e, $options);
    48         mutu_etape_creer_repertoires($e, $options);
    49         mutu_etape_creer_base($e, $options);
    50         mutu_etape_fin($e, $options);
    51 }
    52 
     36function mutualiser_creer($e, $options)
     37{
     38    include_spip('base/abstract_sql');
     39    include_once dirname(__FILE__).'/base/abstract_mutu.php';
     40
     41    $GLOBALS['meta']['charset'] = 'utf-8'; // pour que le mail fonctionne
     42
     43    //$GLOBALS['spip_connect_version'] = 0.7;
     44
     45    if (!defined('_INSTALL_SERVER_DB')) {
     46        define('_INSTALL_SERVER_DB', 'mysql');
     47    }
     48
     49    header('Cache-Control: no-store, no-cache, must-revalidate');
     50    header('Pragma: no-cache');
     51
     52    mutu_etape_code_activation($e, $options);
     53    mutu_etape_creer_repertoires($e, $options);
     54    mutu_etape_creer_base($e, $options);
     55    mutu_etape_fin($e, $options);
     56}
    5357
    5458/*
     
    5963 *
    6064 */
    61 function mutu_etape_code_activation($e, $options){
    62         /**
    63          * Cas de la mutu par identification sur site maitre
    64          * Verifie en premier lieu si le code donne par l'utilisateur est son mot de passe valide
    65          * Sinon on teste si c'est le code d'activation
    66          */
    67         $panel_nok = true;
    68         if ($options['utiliser_panel'] && !defined(_INSTALL_PANEL_HOST_DB)) {
    69                 if(is_dir(_DIR_RACINE.$options['repertoire'].'/'.$_SERVER['HTTP_HOST'].'_disable')){
    70                         $lien = $options['url_contact_hebergeur'] ? $options['url_contact_hebergeur'] : ($options['url_hebergeur'] ? $options['url_hebergeur'] : _SITES_ADMIN_MUTUALISATION);
    71                         echo mutu_minipres(
    72                                 _T('mutu:site_suspendu'),
    73                                 "<div>" .$menu_langues ."<br /></div>\n" .
    74                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n" .
    75                                 "<h3>"._T('mutu:message_site_desactive',array('lien' => $lien))."</h3>",
    76                                 " id='mutu'"
    77                         );
    78                         exit;
    79                 }
    80                 else if(is_dir(_DIR_RACINE.$options['repertoire'].'/'.$_SERVER['HTTP_HOST'].'_deleted')){
    81                         $lien = $options['url_contact_hebergeur'] ? $options['url_contact_hebergeur'] : ($options['url_hebergeur'] ? $options['url_hebergeur'] : _SITES_ADMIN_MUTUALISATION);
    82                         echo mutu_minipres(
    83                                 _T('mutu:site_supprime'),
    84                                 "<div>" .$menu_langues ."<br /></div>\n" .
    85                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n" .
    86                                 "<h3>"._T('mutu:message_site_desactive',array('lien' => $lien))."</h3>",
    87                                 " id='mutu'"
    88                         );
    89                         exit;
    90                 }
    91                 else if (!$options['statut']){
    92                         $lien = $options['url_contact_hebergeur'] ? $options['url_contact_hebergeur'] : ($options['url_hebergeur'] ? $options['url_hebergeur'] : _SITES_ADMIN_MUTUALISATION);
    93                         echo mutu_minipres(
    94                                 _T('mutu:site_non_demande'),
    95                                 "<div>" .$menu_langues ."<br /></div>\n" .
    96                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n" .
    97                                 "<h3>"._T('mutu:message_site_desactive',array('lien' => $lien))."</h3>",
    98                                 " id='mutu'"
    99                         );
    100                         exit;
    101                 }
    102                 else if($options['statut'] != 'publie'){
    103                         $lien = $options['url_contact_hebergeur'] ? $options['url_contact_hebergeur'] : ($options['url_hebergeur'] ? $options['url_hebergeur'] : _SITES_ADMIN_MUTUALISATION);
    104                         echo mutu_minipres(
    105                                 _T('mutu:site_non_active'),
    106                                 "<div>" .$menu_langues ."<br /></div>\n" .
    107                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n" .
    108                                 "<h3>"._T('mutu:message_site_desactive',array('lien' => $lien))."</h3>",
    109                                 " id='mutu'"
    110                         );
    111                         exit;
    112                 }
    113                 include_spip('base/abstract_sql');
    114                 $old_connect = _FILE_CONNECT;
    115                 define(_FILE_CONNECT,$options['repertoire'].'/'._SITES_ADMIN_MUTUALISATION.'/config/connect.php');
    116                 define(_FILE_CONNECT_OLD,$options['repertoire'].'/'._SITES_ADMIN_MUTUALISATION.'/config/connect.php');
    117                 include_spip('auth/spip');
    118                 $admin = auth_spip_dist($options['login'],$_REQUEST['code_activation']);
    119                 if(!empty($admin)){
    120                         setcookie('mutu_methode_activation', $panel);
    121                         $panel_nok = false;
    122                 }
    123                 define(_FILE_CONNECT,$old_connect);
    124         }
    125         if ($options['code']) {
    126                 $secret = md5($options['code']);
    127 
    128                 if ($panel_nok AND ($options['code'] != $_REQUEST['code_activation']
    129                 AND $_COOKIE['mutu_code_activation'] != $secret)) {
    130                         echo mutu_minipres(
    131                                 _T('mutu:install_site'),
    132                                 "<div>" .$menu_langues ."<br /></div>\n" .
    133                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
    134 
    135                                 (isset($_REQUEST['code_activation'])
    136                                         ? _T('mutu:install_err')
    137                                         : ''
    138                                 ) .
    139 
    140                                 '<h3>'.
    141                                 ($options['utiliser_panel'] ? _T('mutu:install_code_panel') : _T('mutu:install_code')).
    142                                 '</h3>'.
    143 
    144                                 "<form method='post' action='".self()."'><div>
     65function mutu_etape_code_activation($e, $options)
     66{
     67    /*
     68     * Cas de la mutu par identification sur site maitre
     69     * Verifie en premier lieu si le code donne par l'utilisateur est son mot de passe valide
     70     * Sinon on teste si c'est le code d'activation
     71     */
     72    $panel_nok = true;
     73    if ($options['utiliser_panel'] && !defined(_INSTALL_PANEL_HOST_DB)) {
     74        if (is_dir(_DIR_RACINE.$options['repertoire'].'/'.$_SERVER['HTTP_HOST'].'_disable')) {
     75            $lien = $options['url_contact_hebergeur'] ? $options['url_contact_hebergeur'] : ($options['url_hebergeur'] ? $options['url_hebergeur'] : _SITES_ADMIN_MUTUALISATION);
     76            echo mutu_minipres(
     77                _T('mutu:site_suspendu'),
     78                '<div>'.$menu_langues."<br /></div>\n".
     79                "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
     80                '<h3>'._T('mutu:message_site_desactive', array('lien' => $lien)).'</h3>',
     81                " id='mutu'"
     82            );
     83            exit;
     84        } elseif (is_dir(_DIR_RACINE.$options['repertoire'].'/'.$_SERVER['HTTP_HOST'].'_deleted')) {
     85            $lien = $options['url_contact_hebergeur'] ? $options['url_contact_hebergeur'] : ($options['url_hebergeur'] ? $options['url_hebergeur'] : _SITES_ADMIN_MUTUALISATION);
     86            echo mutu_minipres(
     87                _T('mutu:site_supprime'),
     88                '<div>'.$menu_langues."<br /></div>\n".
     89                "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
     90                '<h3>'._T('mutu:message_site_desactive', array('lien' => $lien)).'</h3>',
     91                " id='mutu'"
     92            );
     93            exit;
     94        } elseif (!$options['statut']) {
     95            $lien = $options['url_contact_hebergeur'] ? $options['url_contact_hebergeur'] : ($options['url_hebergeur'] ? $options['url_hebergeur'] : _SITES_ADMIN_MUTUALISATION);
     96            echo mutu_minipres(
     97                _T('mutu:site_non_demande'),
     98                '<div>'.$menu_langues."<br /></div>\n".
     99                "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
     100                '<h3>'._T('mutu:message_site_desactive', array('lien' => $lien)).'</h3>',
     101                " id='mutu'"
     102            );
     103            exit;
     104        } elseif ($options['statut'] != 'publie') {
     105            $lien = $options['url_contact_hebergeur'] ? $options['url_contact_hebergeur'] : ($options['url_hebergeur'] ? $options['url_hebergeur'] : _SITES_ADMIN_MUTUALISATION);
     106            echo mutu_minipres(
     107                _T('mutu:site_non_active'),
     108                '<div>'.$menu_langues."<br /></div>\n".
     109                "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
     110                '<h3>'._T('mutu:message_site_desactive', array('lien' => $lien)).'</h3>',
     111                " id='mutu'"
     112            );
     113            exit;
     114        }
     115        include_spip('base/abstract_sql');
     116        $old_connect = _FILE_CONNECT;
     117        define(_FILE_CONNECT, $options['repertoire'].'/'._SITES_ADMIN_MUTUALISATION.'/config/connect.php');
     118        define(_FILE_CONNECT_OLD, $options['repertoire'].'/'._SITES_ADMIN_MUTUALISATION.'/config/connect.php');
     119        include_spip('auth/spip');
     120        $admin = auth_spip_dist($options['login'], $_REQUEST['code_activation']);
     121        if (!empty($admin)) {
     122            setcookie('mutu_methode_activation', $panel);
     123            $panel_nok = false;
     124        }
     125        define(_FILE_CONNECT, $old_connect);
     126    }
     127    if ($options['code']) {
     128        $secret = md5($options['code']);
     129
     130        if ($panel_nok and ($options['code'] != $_REQUEST['code_activation']
     131        and $_COOKIE['mutu_code_activation'] != $secret)) {
     132            echo mutu_minipres(
     133                _T('mutu:install_site'),
     134                '<div>'.$menu_langues."<br /></div>\n".
     135                "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
     136
     137                (isset($_REQUEST['code_activation'])
     138                    ? _T('mutu:install_err')
     139                    : ''
     140                ).
     141
     142                '<h3>'.
     143                ($options['utiliser_panel'] ? _T('mutu:install_code_panel') : _T('mutu:install_code')).
     144                '</h3>'.
     145
     146                "<form method='post' action='".self()."'><div>
    145147                                <input type='password' name='code_activation' size='10' />
    146148                                <input type='submit' value='ok' />"
    147                                 .$options['annonce']
    148                                 ."</div></form>
    149                                 ",
    150                                 " id='mutu'"
    151                         );
    152                         exit;
    153                 } else {
    154                         setcookie('mutu_code_activation', $secret);
    155                 }
    156         }
    157 }
    158 
     149                .$options['annonce']
     150                .'</div></form>
     151                                ',
     152                " id='mutu'"
     153            );
     154            exit;
     155        } else {
     156            setcookie('mutu_code_activation', $secret);
     157        }
     158    }
     159}
    159160
    160161/*
     
    165166 *
    166167 */
    167 function mutu_etape_creer_base($e, $options){
    168         if ($options['creer_base']) {
    169 
    170                 if (defined('_INSTALL_SERVER_DB')
    171                         AND defined('_INSTALL_NAME_DB')) {
    172 
    173                         if (defined('_INSTALL_USER_DB_ROOT')) {
    174                                 $link = mutu_connect_db(_INSTALL_HOST_DB, 0,  _INSTALL_USER_DB_ROOT, _INSTALL_PASS_DB_ROOT, '', _INSTALL_SERVER_DB);
    175                         } else {
    176                                 $link = mutu_connect_db(_INSTALL_HOST_DB, 0,  _INSTALL_USER_DB, _INSTALL_PASS_DB, '', _INSTALL_SERVER_DB);
    177                         }
    178 
    179                         // si la base n'existe pas, on va travailler
    180 
    181                         if (!sql_selectdb(_INSTALL_NAME_DB, _INSTALL_SERVER_DB)) {
    182                                 if (_request('creerbase') == 'oui') {
    183 
    184                                         // mode de creation par un ping sur une URL (AlternC)
    185                                         // on le fait en local et en POST, donc pas de trou de secu
    186                                         // curl indispensable pour le https... devrait aller dans inc/distant
    187                                         if ($options['url_creer_base']
    188                                         AND defined('_INSTALL_NAME_DB')) {
    189                                                 $url = str_replace('%x', _INSTALL_NAME_DB, $options['url_creer_base']);
    190                                                 $ch = curl_init($url);
    191                                                 curl_setopt($ch, CURLOPT_HEADER, 0);
    192                                                 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    193                                                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    194                                                 curl_setopt($ch, CURLOPT_POST, 1);
    195                                                 $page = curl_exec($ch);
    196                                                 curl_close($ch);
    197                                                 if (!sql_selectdb(_INSTALL_NAME_DB, _INSTALL_SERVER_DB)) {
    198                                                         echo mutu_minipres(
    199                                                                 _T('mutu:install_bd_echec',array('nombase' => '<tt>'._INSTALL_NAME_DB.'</tt>')),
    200                                                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
    201                                                                 '<h3>'
    202                                                                 .'<a href="'.parametre_url(self(), 'creerbase', 'oui').'">'._T('mutu:install_bd_reessayer').'</a>'
    203                                                                 .'</h3>',
    204                                                                 "id='mutu"
    205                                                         );
    206                                                         exit;
    207                                                 }
    208                                         }
    209 
    210                                         else if (sql_query('CREATE DATABASE '._INSTALL_NAME_DB, _INSTALL_SERVER_DB)
    211                                         AND sql_selectdb(_INSTALL_NAME_DB, _INSTALL_SERVER_DB)) {
    212                                                         $GLOBALS['connexions'][_INSTALL_SERVER_DB]['prefixe'] = $GLOBALS['table_prefix'];
    213                                                         $GLOBALS['connexions'][_INSTALL_SERVER_DB]['db'] = _INSTALL_NAME_DB;
    214 
    215                                                 /*
    216                                                  * Creation d'un utilisateur pour la base nouvellement cree
    217                                                  *
    218                                                  * Pour chaque base creee on cree aussi un user
    219                                                  * MYSQL specifique qui aura les droits sur la base
    220                                                  */
    221                                                 if ($options['creer_user_base']) {
    222 
    223                                                         // le nom de la machine MySQL peut etre different
    224                                                         // du nom de la connexion via DNS
    225                                                         define ('_INSTALL_HOST_DB_LOCALNAME', _INSTALL_HOST_DB);
    226 
    227                                                         // requete differente entre pg et mysql...
    228                                                         $req = $err = array();
    229                                                         switch (strtolower(_INSTALL_SERVER_DB)){
    230                                                                 case 'pg':
    231                                                                         // d'abord creer l'utilisateur
    232                                                                         $req[] = "CREATE USER " . _INSTALL_USER_DB . " WITH PASSWORD '" . _INSTALL_PASS_DB . "'";
    233                                                                         $err[] = "CREATE USER " . _INSTALL_USER_DB . " WITH PASSWORD 'xxx'";
    234                                                                         // l'affecter a sa base de donnee
    235                                                                         $req[] = $r = "GRANT ALL PRIVILEGES ON DATABASE "
    236                                                                                 . _INSTALL_NAME_DB . " TO ". _INSTALL_USER_DB;
    237                                                                         $err[] = $r;
    238                                                                         break;
    239 
    240                                                                 case 'mysql':
    241                                                                 default:
    242                                                                         // creer user
    243                                                                         $req[] = "CREATE user '" . _INSTALL_USER_DB. "'@'" . _INSTALL_HOST_DB_LOCALNAME . "' IDENTIFIED BY '" . _INSTALL_PASS_DB . "'";
    244                                                                         $err[] = "CREATE user '" . _INSTALL_USER_DB. "'@'" . _INSTALL_HOST_DB_LOCALNAME . "' IDENTIFIED BY 'xxx'";
    245                                                                         // affecter a sa base
    246                                                                         $req[] = "GRANT " . _PRIVILEGES_MYSQL_USER_BASE . " ON "
    247                                                                                 . _INSTALL_NAME_DB.".* TO '"
    248                                                                                 . _INSTALL_USER_DB."'@'"._INSTALL_HOST_DB_LOCALNAME
    249                                                                                 . "' IDENTIFIED BY '" . _INSTALL_PASS_DB . "'";
    250                                                                         $err[] = "GRANT " . _PRIVILEGES_MYSQL_USER_BASE . " ON "
    251                                                                                 . _INSTALL_NAME_DB.".* TO '"
    252                                                                                 . _INSTALL_USER_DB."'@'"._INSTALL_HOST_DB_LOCALNAME
    253                                                                                 . "' IDENTIFIED BY 'xxx'";
    254                                                                         break;
    255                                                         }
    256                                                         foreach ($req as $n=>$sql){
    257                                                                 if (!sql_query($sql, _INSTALL_SERVER_DB)) {
    258                                                                         die (__FILE__." " . __LINE__ . ": Erreur (" ._INSTALL_SERVER_DB . ") sur  :" . $err[$n]);
    259                                                                 }
    260                                                         }
    261                                                         mutu_close();
    262                                                         $link = mutu_connect_db(_INSTALL_HOST_DB,'',  _INSTALL_USER_DB, _INSTALL_PASS_DB, '', _INSTALL_SERVER_DB);
    263                                                 }
    264 
    265                                                 // creation ok
    266                                                 // supprimer le fichier d'installation
    267                                                 include_spip('inc/flock');
    268                                                 @supprimer_fichier($e . _NOM_TEMPORAIRES_INACCESSIBLES . _MUTU_INSTALLATION_FILE);
    269 
    270                                                 echo mutu_minipres(
    271                                                         _T('mutu:install_bd_cree', array( 'nombase' => '<tt>'._INSTALL_NAME_DB.'</tt>')),
    272                                                         "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
    273                                                         '<h3>'
    274                                                         ._T('mutu:install_spip_1')
    275                                                         .'<a href="'.generer_url_ecrire('install').'">'
    276                                                         ._T('mutu:install_spip_2')
    277                                                         .'</a>.</h3>',
    278                                                         " id='mutu'"
    279                                                 );
    280 
    281                                                 if ($options['mail']) {
    282                                                         $mail = charger_fonction('envoyer_mail', 'inc');
    283                                                         $mail($options['mail'],
    284                                                                 _T('mutu:install_creation_bd', array('nombase' => _INSTALL_NAME_DB)),
    285                                                                 _T('mutu:install_creation_bd_site_2', array('base' => _INSTALL_NAME_DB.'@'._INSTALL_HOST_DB.' ('._INSTALL_USER_DB.')', 'site' => $e)),
    286                                                                 $options['mail']
    287                                                         );
    288                                                 }
    289                                                 exit;
    290                                         } else {
    291                                                 echo mutu_minipres(
    292                                                         _T('mutu:install_creation_bd', array('nombase' => '<tt>'._INSTALL_NAME_DB.'</tt>')),
    293                                                         "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
    294                                                         '<h3>'
    295                                                         ._T('mutu:install_err')
    296                                                         .'</h3>',
    297                                                         " id='mutu'"
    298                                                 );
    299                                                 exit;
    300                                         }
    301                                 }
    302                                 else {
    303                                         echo mutu_minipres(
    304                                                 _T('mutu:install_creation_bd', array('nombase' => '<tt>'._INSTALL_NAME_DB.'</tt>')),
    305                                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
    306                                                 '<h3>'
    307                                                 ._T('mutu:install_creer_bd_1')
    308                                                 .'<a href="'.parametre_url(self(), 'creerbase', 'oui').'">'
    309                                                 ._T('mutu:install_creer_bd_2')
    310                                                 .'</a></h3>',
    311                                                 " id='mutu'"
    312                                         );
    313                                         exit;
    314                                 }
    315                         }
    316 
    317                         // ici la base existe, on passe aux repertoires
    318                 }
    319 
    320                 else {
    321                         echo mutu_minipres(
    322                                 _T('mutu:install_creation_bd_site'). '(<tt>'.joli_repertoire($e).'</tt>)',
    323                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n"
    324                                 .'<h3>'. _T('mutu:install_err') .'</h3>'
    325                                 . _T('mutu:install_no_data_connexion', array( 'connexion' => strtoupper(_INSTALL_SERVER_DB))),
    326                                 " id='mutu'"
    327                         );
    328                         exit;
    329                 }
    330         }
    331 }
    332 
     168function mutu_etape_creer_base($e, $options)
     169{
     170    if ($options['creer_base']) {
     171        if (defined('_INSTALL_SERVER_DB')
     172            and defined('_INSTALL_NAME_DB')) {
     173            if (defined('_INSTALL_USER_DB_ROOT')) {
     174                $link = mutu_connect_db(_INSTALL_HOST_DB, 0,  _INSTALL_USER_DB_ROOT, _INSTALL_PASS_DB_ROOT, '', _INSTALL_SERVER_DB);
     175            } else {
     176                $link = mutu_connect_db(_INSTALL_HOST_DB, 0,  _INSTALL_USER_DB, _INSTALL_PASS_DB, '', _INSTALL_SERVER_DB);
     177            }
     178
     179            // si la base n'existe pas, on va travailler
     180
     181            if (!sql_selectdb(_INSTALL_NAME_DB, _INSTALL_SERVER_DB)) {
     182                if (_request('creerbase') == 'oui') {
     183
     184                    // mode de creation par un ping sur une URL (AlternC)
     185                    // on le fait en local et en POST, donc pas de trou de secu
     186                    // curl indispensable pour le https... devrait aller dans inc/distant
     187                    if ($options['url_creer_base']
     188                    and defined('_INSTALL_NAME_DB')) {
     189                        $url = str_replace('%x', _INSTALL_NAME_DB, $options['url_creer_base']);
     190                        $ch = curl_init($url);
     191                        curl_setopt($ch, CURLOPT_HEADER, 0);
     192                        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
     193                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     194                        curl_setopt($ch, CURLOPT_POST, 1);
     195                        $page = curl_exec($ch);
     196                        curl_close($ch);
     197                        if (!sql_selectdb(_INSTALL_NAME_DB, _INSTALL_SERVER_DB)) {
     198                            echo mutu_minipres(
     199                                _T('mutu:install_bd_echec', array('nombase' => '<tt>'._INSTALL_NAME_DB.'</tt>')),
     200                                "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
     201                                '<h3>'
     202                                .'<a href="'.parametre_url(self(), 'creerbase', 'oui').'">'._T('mutu:install_bd_reessayer').'</a>'
     203                                .'</h3>',
     204                                "id='mutu"
     205                            );
     206                            exit;
     207                        }
     208                    } elseif (sql_query('CREATE DATABASE '._INSTALL_NAME_DB, _INSTALL_SERVER_DB)
     209                    and sql_selectdb(_INSTALL_NAME_DB, _INSTALL_SERVER_DB)) {
     210                        $GLOBALS['connexions'][_INSTALL_SERVER_DB]['prefixe'] = $GLOBALS['table_prefix'];
     211                        $GLOBALS['connexions'][_INSTALL_SERVER_DB]['db'] = _INSTALL_NAME_DB;
     212
     213                        /*
     214                         * Creation d'un utilisateur pour la base nouvellement cree
     215                         *
     216                         * Pour chaque base creee on cree aussi un user
     217                         * MYSQL specifique qui aura les droits sur la base
     218                         */
     219                        if ($options['creer_user_base']) {
     220
     221                            // le nom de la machine MySQL peut etre different
     222                            // du nom de la connexion via DNS
     223                            define('_INSTALL_HOST_DB_LOCALNAME', _INSTALL_HOST_DB);
     224
     225                            // requete differente entre pg et mysql...
     226                            $req = $err = array();
     227                            switch (strtolower(_INSTALL_SERVER_DB)) {
     228                                case 'pg':
     229                                    // d'abord creer l'utilisateur
     230                                    $req[] = 'CREATE USER '._INSTALL_USER_DB." WITH PASSWORD '"._INSTALL_PASS_DB."'";
     231                                    $err[] = 'CREATE USER '._INSTALL_USER_DB." WITH PASSWORD 'xxx'";
     232                                    // l'affecter a sa base de donnee
     233                                    $req[] = $r = 'GRANT ALL PRIVILEGES ON DATABASE '
     234                                        ._INSTALL_NAME_DB.' TO '._INSTALL_USER_DB;
     235                                    $err[] = $r;
     236                                    break;
     237
     238                                case 'mysql':
     239                                default:
     240                                    // creer user
     241                                    $req[] = "CREATE user '"._INSTALL_USER_DB."'@'"._INSTALL_HOST_DB_LOCALNAME."' IDENTIFIED BY '"._INSTALL_PASS_DB."'";
     242                                    $err[] = "CREATE user '"._INSTALL_USER_DB."'@'"._INSTALL_HOST_DB_LOCALNAME."' IDENTIFIED BY 'xxx'";
     243                                    // affecter a sa base
     244                                    $req[] = 'GRANT '._PRIVILEGES_MYSQL_USER_BASE.' ON '
     245                                        ._INSTALL_NAME_DB.".* TO '"
     246                                        ._INSTALL_USER_DB."'@'"._INSTALL_HOST_DB_LOCALNAME
     247                                        ."' IDENTIFIED BY '"._INSTALL_PASS_DB."'";
     248                                    $err[] = 'GRANT '._PRIVILEGES_MYSQL_USER_BASE.' ON '
     249                                        ._INSTALL_NAME_DB.".* TO '"
     250                                        ._INSTALL_USER_DB."'@'"._INSTALL_HOST_DB_LOCALNAME
     251                                        ."' IDENTIFIED BY 'xxx'";
     252                                    break;
     253                            }
     254                            foreach ($req as $n => $sql) {
     255                                if (!sql_query($sql, _INSTALL_SERVER_DB)) {
     256                                    die(__FILE__.' '.__LINE__.': Erreur ('._INSTALL_SERVER_DB.') sur  :'.$err[$n]);
     257                                }
     258                            }
     259                            mutu_close();
     260                            $link = mutu_connect_db(_INSTALL_HOST_DB, '',  _INSTALL_USER_DB, _INSTALL_PASS_DB, '', _INSTALL_SERVER_DB);
     261                        }
     262
     263                        // creation ok
     264                        // supprimer le fichier d'installation
     265                        include_spip('inc/flock');
     266                        @supprimer_fichier($e._NOM_TEMPORAIRES_INACCESSIBLES._MUTU_INSTALLATION_FILE);
     267
     268                        echo mutu_minipres(
     269                            _T('mutu:install_bd_cree', array('nombase' => '<tt>'._INSTALL_NAME_DB.'</tt>')),
     270                            "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
     271                            '<h3>'
     272                            ._T('mutu:install_spip_1')
     273                            .'<a href="'.generer_url_ecrire('install').'">'
     274                            ._T('mutu:install_spip_2')
     275                            .'</a>.</h3>',
     276                            " id='mutu'"
     277                        );
     278
     279                        if ($options['mail']) {
     280                            $mail = charger_fonction('envoyer_mail', 'inc');
     281                            $mail($options['mail'],
     282                                _T('mutu:install_creation_bd', array('nombase' => _INSTALL_NAME_DB)),
     283                                _T('mutu:install_creation_bd_site_2', array('base' => _INSTALL_NAME_DB.'@'._INSTALL_HOST_DB.' ('._INSTALL_USER_DB.')', 'site' => $e)),
     284                                $options['mail']
     285                            );
     286                        }
     287                        exit;
     288                    } else {
     289                        echo mutu_minipres(
     290                            _T('mutu:install_creation_bd', array('nombase' => '<tt>'._INSTALL_NAME_DB.'</tt>')),
     291                            "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
     292                            '<h3>'
     293                            ._T('mutu:install_err')
     294                            .'</h3>',
     295                            " id='mutu'"
     296                        );
     297                        exit;
     298                    }
     299                } else {
     300                    echo mutu_minipres(
     301                        _T('mutu:install_creation_bd', array('nombase' => '<tt>'._INSTALL_NAME_DB.'</tt>')),
     302                        "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
     303                        '<h3>'
     304                        ._T('mutu:install_creer_bd_1')
     305                        .'<a href="'.parametre_url(self(), 'creerbase', 'oui').'">'
     306                        ._T('mutu:install_creer_bd_2')
     307                        .'</a></h3>',
     308                        " id='mutu'"
     309                    );
     310                    exit;
     311                }
     312            }
     313
     314            // ici la base existe, on passe aux repertoires
     315        } else {
     316            echo mutu_minipres(
     317                _T('mutu:install_creation_bd_site').'(<tt>'.joli_repertoire($e).'</tt>)',
     318                "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n"
     319                .'<h3>'._T('mutu:install_err').'</h3>'
     320                ._T('mutu:install_no_data_connexion', array('connexion' => strtoupper(_INSTALL_SERVER_DB))),
     321                " id='mutu'"
     322            );
     323            exit;
     324        }
     325    }
     326}
    333327
    334328/*
    335329 * Cree les dossiers necessaires au site mutualise
    336330 */
    337 function mutu_etape_creer_repertoires($e, $options){
    338         if ($options['creer_site']) {
    339                 $ok_dir =
    340                 is_dir(_DIR_RACINE . $options['repertoire'])
    341                 AND is_writable(_DIR_RACINE . $options['repertoire']);
    342 
    343                 if (!$ok_dir) {
    344                         echo mutu_minipres(
    345                                 _T('mutu:install_creation_repertoire', array ('repertoire' => '<tt>'.joli_repertoire($e).'</tt>')),
    346                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n"
    347                                 .'<h3>'. _T('mutu:install_err') .'</h3>'
    348                                 . _T('mutu:install_repertoire_inaccessible', array( 'repertoire' => '<tt>'.$options['repertoire'].'/</tt>')),
    349                                 " id='mutu'"
    350                         );
    351                         exit;
    352                 }
    353 
    354                 if (_request('creerrepertoire') && _request('creerrepertoire')=='oui') {
    355                         $ok =
    356                         mkdir($e, _SPIP_CHMOD)
    357                         AND chmod($e, _SPIP_CHMOD)
    358                         AND mkdir($e._NOM_PERMANENTS_INACCESSIBLES, _SPIP_CHMOD)
    359                         AND mkdir($e._NOM_PERMANENTS_ACCESSIBLES, _SPIP_CHMOD)
    360                         AND mkdir($e._NOM_TEMPORAIRES_INACCESSIBLES, _SPIP_CHMOD)
    361                         AND mkdir($e._NOM_TEMPORAIRES_ACCESSIBLES, _SPIP_CHMOD)
    362                         AND chmod($e._NOM_PERMANENTS_INACCESSIBLES, _SPIP_CHMOD)
    363                         AND chmod($e._NOM_PERMANENTS_ACCESSIBLES, _SPIP_CHMOD)
    364                         AND chmod($e._NOM_TEMPORAIRES_INACCESSIBLES, _SPIP_CHMOD)
    365                         AND chmod($e._NOM_TEMPORAIRES_ACCESSIBLES, _SPIP_CHMOD);
    366 
    367                         // pour signaler qu'il reste des etapes a realises,
    368                         // malgre la presence des repertoires
    369                         if ($ok){
    370                                 include_spip('inc/flock');
    371                                 ecrire_fichier($e . _NOM_TEMPORAIRES_INACCESSIBLES . _MUTU_INSTALLATION_FILE, 'ok');
    372                         }
    373 
    374                         echo mutu_minipres(
    375                                 _T('mutu:install_creation_repertoire', array ('repertoire' => '<tt>'.joli_repertoire($e).'</tt>')),
    376                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n"
    377                                 .'<h3>'
    378                                 . ($ok
    379                                         ? _T('mutu:install_creation_rep_ok_1').'<a href="'.parametre_url(self(), 'creerrepertoire', '').'">'._T('mutu:install_creation_rep_ok_2').'</a>.'
    380                                         : _T('mutu:install_err')
    381                                 ).'</h3>',
    382                                 " id='mutu'"
    383                         );
    384 
    385                         if ($options['mail']) {
    386                                 $mail = charger_fonction('envoyer_mail', 'inc');
    387                                 $mail($options['mail'],
    388                                         _T('mutu:install_creation_site', array('site' => joli_repertoire($e))),
    389                                         _T('mutu:install_creation_site', array('site' => $e)),
    390                                         $options['mail']
    391                                 );
    392                         }
    393                         exit;
    394                 } elseif (
    395                         !is_dir($e._NOM_PERMANENTS_INACCESSIBLES)
    396                         || !is_dir($e._NOM_PERMANENTS_ACCESSIBLES)
    397                         || !is_dir($e._NOM_TEMPORAIRES_INACCESSIBLES)
    398                         || !is_dir($e._NOM_TEMPORAIRES_ACCESSIBLES)
    399                 ) {
    400                         echo mutu_minipres(
    401                                 _T('mutu:install_creation_repertoire', array('repertoire' => '<tt>'.joli_repertoire($e).'</tt>')),
    402                                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n"
    403                                 .'<h3>'.
    404                                 _T('mutu:install_creer_rep_1')
    405                                 .'<a href="'.parametre_url(self(), 'creerrepertoire', 'oui').'">'
    406                                 ._T('mutu:install_creer_rep_2')
    407                                 .'</a></h3>'
    408                                 . (!$ok_dir ? _T('mutu:install_repertoire_inaccessible', array('repertoire' => '<tt>'.$options['repertoire'].'/</tt>' )) : ''),
    409                                 " id='mutu'"
    410                         );
    411                         exit;
    412                 }
    413         } else {
    414                 echo mutu_minipres(
    415                         _T('mutu:install_repertoire_noexist', array('repertoire' => '<tt>'.joli_repertoire($e).'</tt>')),
    416                         "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
    417                         '<h3>'
    418                         ._T('mutu:install_repertoire_noexist', array( 'repertoire' => joli_repertoire($e)))
    419                         .'</h3>'
    420                         .'<ul>'
    421                         .'<li>'.joli_repertoire($e)._NOM_PERMANENTS_INACCESSIBLES.'</li>'
    422                         .'<li>'.joli_repertoire($e)._NOM_PERMANENTS_ACCESSIBLES.'</li>'
    423                         .'<li>'.joli_repertoire($e)._NOM_TEMPORAIRES_INACCESSIBLES.'</li>'
    424                         .'<li>'.joli_repertoire($e)._NOM_TEMPORAIRES_ACCESSIBLES.'</li>'
    425                         .'</ul>',
    426                         " id='mutu'"
    427                 );
    428                 exit;
    429         }
    430 }
    431 
     331function mutu_etape_creer_repertoires($e, $options)
     332{
     333    if ($options['creer_site']) {
     334        $ok_dir =
     335        is_dir(_DIR_RACINE.$options['repertoire'])
     336        and is_writable(_DIR_RACINE.$options['repertoire']);
     337
     338        if (!$ok_dir) {
     339            echo mutu_minipres(
     340                _T('mutu:install_creation_repertoire', array('repertoire' => '<tt>'.joli_repertoire($e).'</tt>')),
     341                "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n"
     342                .'<h3>'._T('mutu:install_err').'</h3>'
     343                ._T('mutu:install_repertoire_inaccessible', array('repertoire' => '<tt>'.$options['repertoire'].'/</tt>')),
     344                " id='mutu'"
     345            );
     346            exit;
     347        }
     348
     349        if (_request('creerrepertoire') && _request('creerrepertoire') == 'oui') {
     350            $ok =
     351            mkdir($e, _SPIP_CHMOD)
     352            and chmod($e, _SPIP_CHMOD)
     353            and mkdir($e._NOM_PERMANENTS_INACCESSIBLES, _SPIP_CHMOD)
     354            and mkdir($e._NOM_PERMANENTS_ACCESSIBLES, _SPIP_CHMOD)
     355            and mkdir($e._NOM_TEMPORAIRES_INACCESSIBLES, _SPIP_CHMOD)
     356            and mkdir($e._NOM_TEMPORAIRES_ACCESSIBLES, _SPIP_CHMOD)
     357            and chmod($e._NOM_PERMANENTS_INACCESSIBLES, _SPIP_CHMOD)
     358            and chmod($e._NOM_PERMANENTS_ACCESSIBLES, _SPIP_CHMOD)
     359            and chmod($e._NOM_TEMPORAIRES_INACCESSIBLES, _SPIP_CHMOD)
     360            and chmod($e._NOM_TEMPORAIRES_ACCESSIBLES, _SPIP_CHMOD);
     361
     362            // pour signaler qu'il reste des etapes a realises,
     363            // malgre la presence des repertoires
     364            if ($ok) {
     365                include_spip('inc/flock');
     366                ecrire_fichier($e._NOM_TEMPORAIRES_INACCESSIBLES._MUTU_INSTALLATION_FILE, 'ok');
     367            }
     368
     369            echo mutu_minipres(
     370                _T('mutu:install_creation_repertoire', array('repertoire' => '<tt>'.joli_repertoire($e).'</tt>')),
     371                "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n"
     372                .'<h3>'
     373                .($ok
     374                    ? _T('mutu:install_creation_rep_ok_1').'<a href="'.parametre_url(self(), 'creerrepertoire', '').'">'._T('mutu:install_creation_rep_ok_2').'</a>.'
     375                    : _T('mutu:install_err')
     376                ).'</h3>',
     377                " id='mutu'"
     378            );
     379
     380            if ($options['mail']) {
     381                $mail = charger_fonction('envoyer_mail', 'inc');
     382                $mail($options['mail'],
     383                    _T('mutu:install_creation_site', array('site' => joli_repertoire($e))),
     384                    _T('mutu:install_creation_site', array('site' => $e)),
     385                    $options['mail']
     386                );
     387            }
     388            exit;
     389        } elseif (
     390            !is_dir($e._NOM_PERMANENTS_INACCESSIBLES)
     391            || !is_dir($e._NOM_PERMANENTS_ACCESSIBLES)
     392            || !is_dir($e._NOM_TEMPORAIRES_INACCESSIBLES)
     393            || !is_dir($e._NOM_TEMPORAIRES_ACCESSIBLES)
     394        ) {
     395            echo mutu_minipres(
     396                _T('mutu:install_creation_repertoire', array('repertoire' => '<tt>'.joli_repertoire($e).'</tt>')),
     397                "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n"
     398                .'<h3>'.
     399                _T('mutu:install_creer_rep_1')
     400                .'<a href="'.parametre_url(self(), 'creerrepertoire', 'oui').'">'
     401                ._T('mutu:install_creer_rep_2')
     402                .'</a></h3>'
     403                .(!$ok_dir ? _T('mutu:install_repertoire_inaccessible', array('repertoire' => '<tt>'.$options['repertoire'].'/</tt>')) : ''),
     404                " id='mutu'"
     405            );
     406            exit;
     407        }
     408    } else {
     409        echo mutu_minipres(
     410            _T('mutu:install_repertoire_noexist', array('repertoire' => '<tt>'.joli_repertoire($e).'</tt>')),
     411            "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n".
     412            '<h3>'
     413            ._T('mutu:install_repertoire_noexist', array('repertoire' => joli_repertoire($e)))
     414            .'</h3>'
     415            .'<ul>'
     416            .'<li>'.joli_repertoire($e)._NOM_PERMANENTS_INACCESSIBLES.'</li>'
     417            .'<li>'.joli_repertoire($e)._NOM_PERMANENTS_ACCESSIBLES.'</li>'
     418            .'<li>'.joli_repertoire($e)._NOM_TEMPORAIRES_INACCESSIBLES.'</li>'
     419            .'<li>'.joli_repertoire($e)._NOM_TEMPORAIRES_ACCESSIBLES.'</li>'
     420            .'</ul>',
     421            " id='mutu'"
     422        );
     423        exit;
     424    }
     425}
    432426
    433427/*
    434428 * Fin de la procedure, proposer l'installation de SPIP
    435429 */
    436 function mutu_etape_fin($e, $options){
    437         // supprimer le fichier d'installation
    438         include_spip('inc/flock');
    439         @supprimer_fichier($e . _NOM_TEMPORAIRES_INACCESSIBLES . _MUTU_INSTALLATION_FILE);
    440         $GLOBALS['profondeur_url'] = 0;
    441         echo mutu_minipres(
    442                 _T('mutu:install_rep_bd_ok'),
    443 
    444                 "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n"
    445                 .'<h3>'.
    446                         _T('mutu:install_spip_3',array('url' => generer_url_ecrire('install')))
    447                 .'</h3>',
    448                 " id='mutu'"
    449         );
    450         exit;
    451 }
    452 ?>
     430function mutu_etape_fin($e, $options)
     431{
     432    // supprimer le fichier d'installation
     433    include_spip('inc/flock');
     434    @supprimer_fichier($e._NOM_TEMPORAIRES_INACCESSIBLES._MUTU_INSTALLATION_FILE);
     435    $GLOBALS['profondeur_url'] = 0;
     436    echo mutu_minipres(
     437        _T('mutu:install_rep_bd_ok'),
     438
     439        "<div><img alt='SPIP' src='".find_in_path('images/logo-spip.gif')."' /></div>\n"
     440        .'<h3>'.
     441            _T('mutu:install_spip_3', array('url' => generer_url_ecrire('install')))
     442        .'</h3>',
     443        " id='mutu'"
     444    );
     445    exit;
     446}
  • _plugins_/mutualisation/trunk/mutualiser_gerer_img.php

    r87597 r90098  
    11<?php
    22
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4    return;
     5}
    46
    57/*
     
    1315 */
    1416// sur le repertoire $dir (sites/truc/local/)
    15 function mutualisation_verifier_htaccess($url, $dir) {
    16         // lire le .htaccess existant
    17         lire_fichier($url._ACCESS_FILE_NAME, $htaccess);
    18         $source = $htaccess;
     17function mutualisation_verifier_htaccess($url, $dir)
     18{
     19    // lire le .htaccess existant
     20    lire_fichier($url._ACCESS_FILE_NAME, $htaccess);
     21    $source = $htaccess;
    1922
    20         // verifier notre bloc init
    21         $bloc = '####
     23    // verifier notre bloc init
     24    $bloc = '####
    2225## ce fichier .htaccess est gere par le plugin *mutualisation*
    2326##
     
    3033';
    3134
    32         if (strpos($htaccess, $bloc) === false)
    33                 $htaccess = $bloc;
     35    if (strpos($htaccess, $bloc) === false) {
     36        $htaccess = $bloc;
     37    }
    3438
    35         $host = $_SERVER['HTTP_HOST'];
    36         $racine = dirname($_SERVER['SCRIPT_NAME']); // profondeur_url();
    37         if ($racine == '/') $racine='';
    38         $site = basename(dirname($dir));
    39         $bloc = "
     39    $host = $_SERVER['HTTP_HOST'];
     40    $racine = dirname($_SERVER['SCRIPT_NAME']); // profondeur_url();
     41    if ($racine == '/') {
     42        $racine = '';
     43    }
     44    $site = basename(dirname($dir));
     45    $bloc = "
    4046
    4147#### 'http://$host$racine/' = 'sites/$site/'
    42 RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^".preg_quote("$host$racine/",',')."
     48RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^".preg_quote("$host$racine/", ',')."
    4349RewriteRule .* $racine/$dir\$0 [L]
    4450";
    4551
    46         if (strpos($htaccess, $bloc) === false)
    47                 $htaccess .= $bloc;
     52    if (strpos($htaccess, $bloc) === false) {
     53        $htaccess .= $bloc;
     54    }
    4855
    49         return ($htaccess === $source
    50                                 OR ecrire_fichier($url._ACCESS_FILE_NAME, $htaccess));
     56    return ($htaccess === $source
     57                or ecrire_fichier($url._ACCESS_FILE_NAME, $htaccess));
    5158}
    52 
    5359
    5460/**
    5561 * Transformer les liens
    56  * sites/nom_site/(IMG|local).* en (IMG|local).*
    57  * 
     62 * sites/nom_site/(IMG|local).* en (IMG|local).*.
     63 *
    5864 * @param string $flux
    5965 */
    60 function mutualisation_traiter_url_img_courtes($flux) {
    61         // IMG
    62         if (!defined('_URL_IMG'))
    63                 define('_URL_IMG', _DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES);
    64         // local
    65         if (!defined('_URL_VAR'))
    66                 define('_URL_VAR', _DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES);
     66function mutualisation_traiter_url_img_courtes($flux)
     67{
     68    // IMG
     69    if (!defined('_URL_IMG')) {
     70        define('_URL_IMG', _DIR_RACINE._NOM_PERMANENTS_ACCESSIBLES);
     71    }
     72    // local
     73    if (!defined('_URL_VAR')) {
     74        define('_URL_VAR', _DIR_RACINE._NOM_TEMPORAIRES_ACCESSIBLES);
     75    }
    6776
    68         if (mutualisation_verifier_htaccess(_URL_VAR, _DIR_VAR)
    69         AND mutualisation_verifier_htaccess(_URL_IMG, _DIR_IMG)) {
    70                 return str_replace(
    71                         array(_DIR_VAR, _DIR_IMG),
    72                         array(_URL_VAR, _URL_IMG),
    73                 $flux);
    74         } else
    75                 return $flux;
     77    if (mutualisation_verifier_htaccess(_URL_VAR, _DIR_VAR)
     78    and mutualisation_verifier_htaccess(_URL_IMG, _DIR_IMG)) {
     79        return str_replace(
     80            array(_DIR_VAR, _DIR_IMG),
     81            array(_URL_VAR, _URL_IMG),
     82        $flux);
     83    } else {
     84        return $flux;
     85    }
    7686}
    77 
    78 ?>
  • _plugins_/mutualisation/trunk/mutualiser_upgrade.php

    r87597 r90098  
    11<?php
    22
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
    4 
    5 function mutualiser_upgrade() {
    6         define('_DOCTYPE_ECRIRE', ''); # on n'a pas lance spip_initialisation_suite() donc cette constante n'est pas definie
    7         include_spip('inc/minipres');
    8 
    9         // verif securite
    10         if (_request('secret')
    11                 != md5(
    12                         $GLOBALS['meta']['version_installee'].'-'.$GLOBALS['meta']['popularite_total']
    13                 )) {
    14                 include_spip('inc/headers');
    15                 redirige_par_entete($GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS);
    16                 exit;
    17         }
    18 
    19         if ($GLOBALS['spip_version_base'] == str_replace(',','.',$GLOBALS['meta']['version_installee'])) {
    20                 include_spip('inc/headers');
    21                 redirige_par_entete($GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS);
    22                 exit;
    23         }
    24 
    25         // faire l'upgrade
    26         $old = $GLOBALS['meta']['version_installee'];
    27         $base = charger_fonction('upgrade', 'base');
    28         $base('upgrade',false);
    29         lire_metas();
    30         $new = $GLOBALS['meta']['version_installee'];
    31         if ($old == $new
    32         OR $new != $GLOBALS['spip_version_base']) {
    33                 echo minipres(_T('titre_page_upgrade'),
    34                         _L('Erreur de mise &#224; jour de @old@ vers @new@',
    35                                 array('old' => $old, 'new' => $new))
    36                 );
    37         } else {
    38                 echo minipres(_T('titre_page_upgrade'),
    39                         _L('La base de donn&#233;es a &#233;t&#233; mise &#224; jour de @old@ vers @new@',
    40                                 array('old' => $old, 'new' => $new))
    41                 );
    42                 // Installer les plugins
    43                 include_spip('inc/plugin');
    44                 actualise_plugins_actifs();
    45                 effacer_meta('plugin_erreur_activation');
    46                 ecrire_metas();
    47                 installe_plugins();
    48                 // vider tmp et recreer tmp/meta_cache.php
    49                 include_spip('inc/invalideur');
    50                 purger_repertoire(_DIR_TMP);
    51                 ecrire_metas();
    52                 echo minipres(_T('titre_page_upgrade'),
    53                         _L('Aller dans <a href="@ecrire@">ecrire/</a>',
    54                                 array('ecrire' => $GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS))
    55                 );
    56         }
    57         exit;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4    return;
    585}
    596
    60 ?>
     7function mutualiser_upgrade()
     8{
     9    define('_DOCTYPE_ECRIRE', ''); # on n'a pas lance spip_initialisation_suite() donc cette constante n'est pas definie
     10    include_spip('inc/minipres');
     11
     12    // verif securite
     13    if (_request('secret')
     14        != md5(
     15            $GLOBALS['meta']['version_installee'].'-'.$GLOBALS['meta']['popularite_total']
     16        )) {
     17        include_spip('inc/headers');
     18        redirige_par_entete($GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS);
     19        exit;
     20    }
     21
     22    if ($GLOBALS['spip_version_base'] == str_replace(',', '.', $GLOBALS['meta']['version_installee'])) {
     23        include_spip('inc/headers');
     24        redirige_par_entete($GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS);
     25        exit;
     26    }
     27
     28    // faire l'upgrade
     29    $old = $GLOBALS['meta']['version_installee'];
     30    $base = charger_fonction('upgrade', 'base');
     31    $base('upgrade', false);
     32    lire_metas();
     33    $new = $GLOBALS['meta']['version_installee'];
     34    if ($old == $new
     35    or $new != $GLOBALS['spip_version_base']) {
     36        echo minipres(_T('titre_page_upgrade'),
     37            _L('Erreur de mise &#224; jour de @old@ vers @new@',
     38                array('old' => $old, 'new' => $new))
     39        );
     40    } else {
     41        echo minipres(_T('titre_page_upgrade'),
     42            _L('La base de donn&#233;es a &#233;t&#233; mise &#224; jour de @old@ vers @new@',
     43                array('old' => $old, 'new' => $new))
     44        );
     45        // Installer les plugins
     46        include_spip('inc/plugin');
     47        actualise_plugins_actifs();
     48        effacer_meta('plugin_erreur_activation');
     49        ecrire_metas();
     50        installe_plugins();
     51        // vider tmp et recreer tmp/meta_cache.php
     52        include_spip('inc/invalideur');
     53        purger_repertoire(_DIR_TMP);
     54        ecrire_metas();
     55        echo minipres(_T('titre_page_upgrade'),
     56            _L('Aller dans <a href="@ecrire@">ecrire/</a>',
     57                array('ecrire' => $GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS))
     58        );
     59    }
     60    exit;
     61}
  • _plugins_/mutualisation/trunk/mutualiser_upgradeplugins.php

    r38054 r90098  
    11<?php
    22
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
    4 
    5 function mutualiser_upgradeplugins() {
    6         define('_DOCTYPE_ECRIRE', ''); # on n'a pas lance spip_initialisation_suite() donc cette constante n'est pas definie
    7         include_spip('inc/minipres');
    8 
    9         // verif securite
    10         if (_request('secret')
    11         != md5(
    12         $GLOBALS['meta']['version_installee'].'-'.$GLOBALS['meta']['popularite_total']
    13         )) {
    14                 include_spip('inc/headers');
    15                 redirige_par_entete($GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS);
    16                 exit;
    17         }
    18 
    19         // faire l'upgrade
    20         lire_metas();
    21         echo minipres(_T('titre_page_upgrade'),
    22                 _L('Mise &agrave; jour des plugins')
    23         );
    24         // Installer les plugins
    25         include_spip('inc/plugin');
    26         actualise_plugins_actifs();
    27         effacer_meta('plugin_erreur_activation');
    28         ecrire_metas();
    29         installe_plugins();
    30         // vider tmp et recreer tmp/meta_cache.php
    31         include_spip('inc/invalideur');
    32         purger_repertoire(_DIR_TMP);
    33         ecrire_metas();
    34         echo minipres(_T('titre_page_upgrade'),
    35                 _L('Aller dans <a href="@ecrire@">ecrire/</a>',
    36                         array('ecrire' => $GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS))
    37         );
    38         exit;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4    return;
    395}
    406
    41 ?>
     7function mutualiser_upgradeplugins()
     8{
     9    define('_DOCTYPE_ECRIRE', ''); # on n'a pas lance spip_initialisation_suite() donc cette constante n'est pas definie
     10    include_spip('inc/minipres');
     11
     12    // verif securite
     13    if (_request('secret')
     14    != md5(
     15    $GLOBALS['meta']['version_installee'].'-'.$GLOBALS['meta']['popularite_total']
     16    )) {
     17        include_spip('inc/headers');
     18        redirige_par_entete($GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS);
     19        exit;
     20    }
     21
     22    // faire l'upgrade
     23    lire_metas();
     24    echo minipres(_T('titre_page_upgrade'),
     25        _L('Mise &agrave; jour des plugins')
     26    );
     27    // Installer les plugins
     28    include_spip('inc/plugin');
     29    actualise_plugins_actifs();
     30    effacer_meta('plugin_erreur_activation');
     31    ecrire_metas();
     32    installe_plugins();
     33    // vider tmp et recreer tmp/meta_cache.php
     34    include_spip('inc/invalideur');
     35    purger_repertoire(_DIR_TMP);
     36    ecrire_metas();
     37    echo minipres(_T('titre_page_upgrade'),
     38        _L('Aller dans <a href="@ecrire@">ecrire/</a>',
     39            array('ecrire' => $GLOBALS['meta']['adresse_site'].'/'._DIR_RESTREINT_ABS))
     40    );
     41    exit;
     42}
  • _plugins_/mutualisation/trunk/outils/supprimer_site_grmleu_mensuel.sh.txt

    r88596 r90098  
    1 #!/bin/bash 
     1#!/bin/bash
    22DIR="/home/grml/public_html"
    33
    44echo "-------------------------"
    5 echo "Liste de tous les sites" 
     5echo "Liste de tous les sites"
    66echo "-------------------------"
    77for i in ` find ${DIR}/sites -name "*grml.eu" -type d -mtime +25  `
    88do
    99  echo "   -------------------------"
    10   echo "   on traite $i " 
     10  echo "   on traite $i "
    1111  echo "   -------------------------"
    12  
    13   ############################################# 
    14   #Recherche du plugin fictif onnemeffacepas 
    15   ############################################# 
    16   onSupprime=`grep 'etat";s:6:"stable";s:3:"dir";s:12:"nemeffacepas";s:7:"version";s:1:"1"' -l $i/tmp/meta* | wc -l` 
     12
     13  #############################################
     14  #Recherche du plugin fictif onnemeffacepas
     15  #############################################
     16  onSupprime=`grep 'etat";s:6:"stable";s:3:"dir";s:12:"nemeffacepas";s:7:"version";s:1:"1"' -l $i/tmp/meta* | wc -l`
    1717  if (test ${onSupprime} -ne 0)
    1818  then
    19    echo "     on ne supprime pas car le plugin est active " 
     19   echo "     on ne supprime pas car le plugin est active "
    2020  else
    21     echo "    on supprime " 
     21    echo "    on supprime "
    2222
    2323    site=`echo $i | sed -e"s/.grml.eu//" | sed -e "s/\/home\/grml\/public_html\/sites\///"`
    2424    echo "    $site"
    25  
    26     ############################################# 
    27     # informations sur la base 
    28     ############################################# 
     25
     26    #############################################
     27    # informations sur la base
     28    #############################################
    2929    SQL_USER=`cat  ${i}/config/connect.php  | grep db | cut -d"," -f3| cut -d"'" -f2`
    3030    SQL_PWD=`cat ${i}/config/connect.php  | grep db | cut -d"," -f4| cut -d"'" -f2`
     
    3333    echo "    Login / pwd : $SQL_USER $SQL_PWD"
    3434
    35     ############################################# 
     35    #############################################
    3636    # backup ... todo : sauvegarder que les tables et pas toute la base
    37     ############################################# 
     37    #############################################
    3838    mkdir ${DIR}/sites_backup
    39     mysqldump -u${SQL_USER} -p${SQL_PWD} $BASE >$i/tmp/${BASE}.sql 
     39    mysqldump -u${SQL_USER} -p${SQL_PWD} $BASE >$i/tmp/${BASE}.sql
    4040    tar -cvf ${DIR}/sites_backup/$site.tar $i
    41     echo "  - sauvegarde effectuee dans ${DIR}/sites_backup/$site.tar" 
     41    echo "  - sauvegarde effectuee dans ${DIR}/sites_backup/$site.tar"
    4242
    4343
    44     ############################################# 
    45     # liste des tables (avec le prefixe $site 
    46     ############################################# 
     44    #############################################
     45    # liste des tables (avec le prefixe $site
     46    #############################################
    4747mysql -u${SQL_USER} -p${SQL_PWD}<<EOF2 >${DIR}/tmp/${site}_showtable.sql
    4848show TABLES from  $BASE LIKE '${PREFIX}_%'
     
    5151
    5252
    53     ############################################# 
    54     # suppression des tables 
    55     ############################################# 
    56     for j in `cat ${DIR}/tmp/${site}_showtable.sql| grep -v Tables ` 
     53    #############################################
     54    # suppression des tables
     55    #############################################
     56    for j in `cat ${DIR}/tmp/${site}_showtable.sql| grep -v Tables `
    5757    do
    58 mysql -u${SQL_USER} -p${SQL_PWD} $BASE <<EOF3 
    59 drop TABLE $j 
     58mysql -u${SQL_USER} -p${SQL_PWD} $BASE <<EOF3
     59drop TABLE $j
    6060EOF3
    61     done 
     61    done
    6262
    6363
    64     ############################################# 
    65     # suppression du repertoire 
    66     ############################################# 
     64    #############################################
     65    # suppression du repertoire
     66    #############################################
    6767    rm -rf $i
    6868    echo "  - repertoire $i supprime "
     
    7070  fi
    7171
    72 done 
     72done
    7373
    74 exit 
     74exit
    7575
  • _plugins_/mutualisation/trunk/paquet.xml

    r86566 r90098  
    22        prefix="Mutualisation"
    33        categorie="maintenance"
    4         version="1.2.3"
     4        version="1.2.4"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.0.*]"
     
    1313
    1414        <auteur>Fil</auteur>
    15         <auteur mail="teddy.spip@gmail.com">Teddy (portage pour SPIP 3)</auteur>
     15        <auteur mail="teddy.spip@gmail.com">Teddy</auteur>
    1616
    17         <copyright>2007-2014</copyright>
     17        <copyright>2007-2015</copyright>
    1818
    1919        <licence lien="http://www.gnu.org/licenses/lgpl-3.0.html">LGPL 3</licence>
Note: See TracChangeset for help on using the changeset viewer.