Bifurcation depuis
spip / spip
Le projet source a une visibilité limitée.
-
esj a rédigé
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.
esj a rédigé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.