Skip to content
Extraits de code Groupes Projets
Valider 976a3bc4 rédigé par esj's avatar esj
Parcourir les fichiers

Multi-base: suite au problème posé dans [10460] sur la possibilité depuis...

Multi-base: suite au problème posé dans [10460] sur la possibilité depuis [10457] d'avoir dans un unique répertoire tous les fichiers de connexions de sites partageant les mes sources, la spécification de ces fichiers, telle que décrite dans [10113] (et reprise dans [10183] et http://www.spip-contrib.net/MultiBase) subit une modification. Sont introduites deux constantes _DIR_CONNECT et _DIR_CHMOD, indiquant les répertoires où figureront le fichier décrivant la connexion et celui décrivant les droits des fichiers, en plus des constantes FILE_CONNECT_INS et FILE_CHMOD_INS. Par défaut, ces valeurs conservent le nommage habituel en {{{config/connect.php}}} et {{{config/chmod.php}}}. Lorsqu'on le référence une base externe ''A'', SPIP va à présent chercher le fichier nommé par l'expression {{{ _DIR_CONNECT . }}} ''A'' {{{ . '.php' }}}, autrement dit {{{config/}}}A{{{.php}}}. Par rapport à la spécification précédente, le préfixe {{{connect}}} a donc disparu, ce qui résoud le problème posé dans [10460].

Pour avoir dans un même répertoire tous les fichiers de connexion de sites mutualisés (et un autre pour les sauvegardes, un autre pour les Logs et un autre pour les droits), sans oublier de provoquer la vérification des droits sur les répertoires lors des installations, on peut utiliser le schéma de mutualisation suivant:

{{{
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  . '/dist/:' .
			_DIR_RACINE .'Ajouts/' . $table_prefix  . '/:' .
			_DIR_RACINE .'dist/:' .
			_DIR_RACINE .'dist/javascript/:' .
			_DIR_RESTREINT);

		$pi = $e . _NOM_PERMANENTS_INACCESSIBLES;
		$pa = $e . _NOM_PERMANENTS_ACCESSIBLES;
		$ti = $e . _NOM_TEMPORAIRES_INACCESSIBLES;
		$ta = $e . _NOM_TEMPORAIRES_ACCESSIBLES;

		$pig = _DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES;
		$tig = _DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES;

		define('_DIR_DUMP', $tig . 'dump/');
		define('_DIR_LOG', $tig . 'log/');
		define('_DIR_CONNECT', $pig . 'connect/');
		define('_DIR_CHMOD', $pig . 'chmod/');
		define('_FILE_CONNECT_INS', $table_prefix);
		define('_FILE_CHMOD_INS', $table_prefix);
		define('_FILE_LOG_SUFFIX', '_' . $table_prefix . '.log');

		$GLOBALS['test_dirs'] =
		  array($pa, $ta, $ti, $pig, $tig,
			_DIR_DUMP, _DIR_LOG, _DIR_CONNECT, _DIR_CHMOD);

		spip_initialisation($pi, $pa, $ti, $ta);
}}}

Seront donc créés à la racine {{{config/connect, config/chmod, tmp/log, tmp/dump}}}, le premier contenant ''A''.php pour la connexion à la base ''A'' etc.
parent 03f9a4b4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Chargement en cours
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter