Skip to content
Extraits de code Groupes Projets
Bifurcation depuis spip / spip
Le projet source a une visibilité limitée.
  • esj's avatar
    5b1b73ff
    Fusion des fonctions spip_initialisation et spip_intialisation_parametree. · 5b1b73ff
    esj a rédigé
    Suite à quelques essais (pas toujours réussis il est vrai) et échanges divers, l'installation de Spip, notamment en mutualisé, repose à présent sur les symboles suivants:
    
    - plusieurs constantes _DIR_* au début de inc_version définissent les répertoires où se trouvent les sources, considérées comme inaccessibles en écriture car partageable par plusieurs sites.
    
    - ensuite, plusieurs constantes _NOM_* définissent le nom (relatif) des fichiers et répertoires propres et indispensables à chaque site utilisant Spip, savoir 
    
    	define('_NOM_CONFIG', 'mes_options');	
    	define('_NOM_TEMPORAIRES_INACCESSIBLES', "tmp/"); 
    	define('_NOM_TEMPORAIRES_ACCESSIBLES', "var/");
    	define('_NOM_PERMANENTS_INACCESSIBLES', "etc/");
    	define('_NOM_PERMANENTS_ACCESSIBLES', "IMG/");
    
    	var/ comportant les images réduites créé dynamiquement
    	tmp/ jouant le role d'ecrire/data  et comportant egalement CACHE/
    	etc/ jouant le role de ecrire/ en tant que repertoire accessible en écriture.
    
    - inc_version ne définit plus de fontions, mais charge immédiatement inc/utils qui à l'inverse ne fait que définir des fonctions.
    
    - inc_version charge ensuite le fichier ecrire/mes_options.php (pour compatibilité) ou etc/mes_options (préférable aujourd'hui);
    
    - enfin, il appelle la fonction d'initialisation ainsi:
    
    	@spip_initialisation(
    	       (_DIR_RACINE  . _NOM_PERMANENTS_INACCESSIBLES),
    	       (_DIR_RACINE  . _NOM_PERMANENTS_ACCESSIBLES),
    	       (_DIR_RACINE  . _NOM_TEMPORAIRES_INACCESSIBLES),
    	       (_DIR_RACINE  . _NOM_TEMPORAIRES_ACCESSIBLES)
    	       );
    
    ce qui va définir les 4 répertoires accessibles en écriture à la racine du site, et initialiser toutes les autres constantes (notamment _SPIP_CHMOD).
    
    - toutefois l'inclusion de mes_options peut neutraliser cet appel soit partiellement (en définissant quelques unes des constantes normalement définies par spip_initialisation qui ne pourra plus agir dessus) soit totalement (en appelant lui-meme spip_initialisation avec d'autres arguments que ceux ci-dessus).
    
    Une application typique est de mettre dans ecrire/mes_options.php (ou etc/mes_otpions.php) les lignes suivantes:
    
    define('_SPIP_CHMOD', 0770);
    
    if ( preg_match(',/([a-zA-Z0-9_-]*)[/?],',$_SERVER['REQUEST_URI'],$r)) {
    	if (is_dir($e = _DIR_RACINE . 'Ajouts/' . $r[1]. '/')) {
    		$cookie_prefix = $table_prefix = $r[1];
    		define('_SPIP_PATH', 
    			_DIR_RACINE . 'Ajouts/' . $table_prefix  . '/:' .
    			_DIR_RACINE.':'.
    			_DIR_RACINE .'dist/:' .
    			_DIR_RESTREINT);
    
    		spip_initialisation(
    		       ($e . _NOM_PERMANENTS_INACCESSIBLES),
    		       ($e . _NOM_PERMANENTS_ACCESSIBLES),
    		       ($e . _NOM_TEMPORAIRES_INACCESSIBLES),
    		       ($e . _NOM_TEMPORAIRES_ACCESSIBLES)
    		       );
    
    		if (is_readable($e .=  _NOM_CONFIG . '.php')) include($e);
    	}
     }
    
    La première ligne réduit l'accès aux répertoires et fichiers créés par le serveur http à ce seul serveur. 
    
    A partir de l'URL du script appelé, les lignes suivantes déduisent un nom qui doit etre le nom d'un sous-répertoire Ajouts dans l'installation de Spip. L'exécution de ce script commence donc par déclarer les 4 sous-répertoires spécifiques au site, ainsi que le préfixe de ses table SQL. Au cas où existerait un fichier etc/mes_options pour ce site spécifique, celui est également chargé.
    
    L'utilisation des constantes _NOM_* permet donc de disposer d'un ensemble de répertoires et fichiers qui n'ont meme pas à savoir s'ils utilisent une installation mutualisée ou non de Spip.
    
    ATTENTION: il faut bien voir que les fonctions de inc/utils ne seront vraiment utilisables qu'après appel de spip_initialisation, car les constantes qu'elles utilisent (_DIR_TMP, _DIR_IMG etc) ne sont pas encore définies à l'entrée de mes_options (c'est justement ce qui permet de les personnaliser).
    5b1b73ff
    Historique
    Fusion des fonctions spip_initialisation et spip_intialisation_parametree.
    esj a rédigé
    Suite à quelques essais (pas toujours réussis il est vrai) et échanges divers, l'installation de Spip, notamment en mutualisé, repose à présent sur les symboles suivants:
    
    - plusieurs constantes _DIR_* au début de inc_version définissent les répertoires où se trouvent les sources, considérées comme inaccessibles en écriture car partageable par plusieurs sites.
    
    - ensuite, plusieurs constantes _NOM_* définissent le nom (relatif) des fichiers et répertoires propres et indispensables à chaque site utilisant Spip, savoir 
    
    	define('_NOM_CONFIG', 'mes_options');	
    	define('_NOM_TEMPORAIRES_INACCESSIBLES', "tmp/"); 
    	define('_NOM_TEMPORAIRES_ACCESSIBLES', "var/");
    	define('_NOM_PERMANENTS_INACCESSIBLES', "etc/");
    	define('_NOM_PERMANENTS_ACCESSIBLES', "IMG/");
    
    	var/ comportant les images réduites créé dynamiquement
    	tmp/ jouant le role d'ecrire/data  et comportant egalement CACHE/
    	etc/ jouant le role de ecrire/ en tant que repertoire accessible en écriture.
    
    - inc_version ne définit plus de fontions, mais charge immédiatement inc/utils qui à l'inverse ne fait que définir des fonctions.
    
    - inc_version charge ensuite le fichier ecrire/mes_options.php (pour compatibilité) ou etc/mes_options (préférable aujourd'hui);
    
    - enfin, il appelle la fonction d'initialisation ainsi:
    
    	@spip_initialisation(
    	       (_DIR_RACINE  . _NOM_PERMANENTS_INACCESSIBLES),
    	       (_DIR_RACINE  . _NOM_PERMANENTS_ACCESSIBLES),
    	       (_DIR_RACINE  . _NOM_TEMPORAIRES_INACCESSIBLES),
    	       (_DIR_RACINE  . _NOM_TEMPORAIRES_ACCESSIBLES)
    	       );
    
    ce qui va définir les 4 répertoires accessibles en écriture à la racine du site, et initialiser toutes les autres constantes (notamment _SPIP_CHMOD).
    
    - toutefois l'inclusion de mes_options peut neutraliser cet appel soit partiellement (en définissant quelques unes des constantes normalement définies par spip_initialisation qui ne pourra plus agir dessus) soit totalement (en appelant lui-meme spip_initialisation avec d'autres arguments que ceux ci-dessus).
    
    Une application typique est de mettre dans ecrire/mes_options.php (ou etc/mes_otpions.php) les lignes suivantes:
    
    define('_SPIP_CHMOD', 0770);
    
    if ( preg_match(',/([a-zA-Z0-9_-]*)[/?],',$_SERVER['REQUEST_URI'],$r)) {
    	if (is_dir($e = _DIR_RACINE . 'Ajouts/' . $r[1]. '/')) {
    		$cookie_prefix = $table_prefix = $r[1];
    		define('_SPIP_PATH', 
    			_DIR_RACINE . 'Ajouts/' . $table_prefix  . '/:' .
    			_DIR_RACINE.':'.
    			_DIR_RACINE .'dist/:' .
    			_DIR_RESTREINT);
    
    		spip_initialisation(
    		       ($e . _NOM_PERMANENTS_INACCESSIBLES),
    		       ($e . _NOM_PERMANENTS_ACCESSIBLES),
    		       ($e . _NOM_TEMPORAIRES_INACCESSIBLES),
    		       ($e . _NOM_TEMPORAIRES_ACCESSIBLES)
    		       );
    
    		if (is_readable($e .=  _NOM_CONFIG . '.php')) include($e);
    	}
     }
    
    La première ligne réduit l'accès aux répertoires et fichiers créés par le serveur http à ce seul serveur. 
    
    A partir de l'URL du script appelé, les lignes suivantes déduisent un nom qui doit etre le nom d'un sous-répertoire Ajouts dans l'installation de Spip. L'exécution de ce script commence donc par déclarer les 4 sous-répertoires spécifiques au site, ainsi que le préfixe de ses table SQL. Au cas où existerait un fichier etc/mes_options pour ce site spécifique, celui est également chargé.
    
    L'utilisation des constantes _NOM_* permet donc de disposer d'un ensemble de répertoires et fichiers qui n'ont meme pas à savoir s'ils utilisent une installation mutualisée ou non de Spip.
    
    ATTENTION: il faut bien voir que les fonctions de inc/utils ne seront vraiment utilisables qu'après appel de spip_initialisation, car les constantes qu'elles utilisent (_DIR_TMP, _DIR_IMG etc) ne sont pas encore définies à l'entrée de mes_options (c'est justement ce qui permet de les personnaliser).