Bonjour,
nous avons pas mal galéré pour faire fonctionner l'éditeur de squelettes (skeleditor) sur une installation mutualisée.
Rien ne s'affichait dans l'Espace Privé, le répertoire squelettes/ était introuvable, les téléversements, éditions, tout était cassé.
Comme expliqué ici :
Nos sites sont sous repertoire_spip/sites/mon_instance/ où chez nous, mon_instance/ est un lien symbolique, mais ça ne change rien.
À force de chercher, on a mis ça dans le fichier mes_options.php de l'instance où nous voulions faire fonctionner skeleditor :
$dir_site = sprintf("sites/%s/", $_SERVER['SERVER_NAME']);
if (test_espace_prive()) {
define('_DIR_SITE', "../$dir_site");
} else {
define('_DIR_SITE', $dir_site);
}
Moyennant quoi, la constante '_DIR_SITE' continent toujours le répertoire de l'instance (repertoire_spip/sites/mon_instance/), mais relatif au répertoire courant (sites/mon_instance). Et ça fait tomber le tout en marche...
...m'enfin ça ferait tomber le tout en marche si on n'avait pas patché un peu le plugin (sinon ça ne serait pas drôle).
J'ai joint le diff. Et je l'explique ici. La fonction "skeleditor_path_editable()" renvoie un $path == '' si jamais l'appel à la fonction de l'API sous_repertoire() renvoie "". Du coup, "" est évalué à true le le path est mauvais jusqu'au bout.
La modification fait en sorte que si sous_repertoire() renvoie "", skeleditor_path_editable() renvoie null et soit évalué comme faux.
Si la modification vous va, je peux :
* contribuer la modif des mes_options.php ici :
* commit la modif de skeleditor via SVN (je dois encore avoir des accès).
Qu'en dites-vous ?
--
Camille
skeleditor.diff (796 Bytes)