A des fins de test, j’aimerais indiquer à SPIP d’utiliser un répertoire différent de «squelettes».
Dans mon cas, j’ai installé un plugin « forty » qui s’appuie sur zcore.
Dans mes_options.php, j’ai indiqué $dossier_squelettes = 'squelettes_forty'; J’ai également essayé $GLOBALS['dossier_squelettes']= 'squelettes_forty';
j’ai créé un dossier squelettes_forty, dans lequel j’ai installé un fichier content/rubrique.hml.
Quand j’appelle une rubrique, c’est le fichier content/rubrique.html du plugin qui est utilisé, pas celui de squelettes_forty/content/rubrique.html
si je renomme squelettes_forty en squelettes, alors le fichier squelettes/content/rubrique.html est utilisé !
=> tout se passe comme si le répertoire indiqué dans config.php n’était pas pris en compte
Je ne dois donc pas bien faire les choses… Est-ce que la logique zcore a queqlue chose à voir là-dedans ?
Si quelqu’un(e) peut m’éclairer, je suis preneur. Merci +++ d’avance
(SPIP 4.4.8 - MAMP en local)
(PS : derrière cette question, c’est la possibilité d’avoir différents répertoires squelettes_forty, squelettes_astra, squelettes_massively (etc) qui permettent de faire des tests sans se prendre la tête sur « quels squelettes » avec tel plugin)
Comme le souhait est de surcharger un plugins, le plugins simple est de faire un plugins et non un squelettes je pense avec dedans pourquoi pas des squelettes pour tester ?
Ah, effectivement, tu as raison : c’est une solution solide ! Merci.
Ceci dit j’aimerais tout de même comprendre pourquoi ça ne fonctionne pas ces déclarations dans config.php ?
Bah, si, la surcharge d’un plugin fonctionne quand on fait les surcharges dans squelettes/ (en respectant l’arborescence des fichiers du plugin). Je le fais régulièrement.
Dans le cas présent, cette surcharge ne fonctionne pas avec un autre dossier squelettes, malgré la déclaration de cet autre dossier dans mes_options.php
Oui, oui. Pour bien vérifier sa prise en compte, erreur de syntaxe dans config.php, genre $GLOBALS['dossier_squelettes']= 'squelettes_forty; provoque bien une page blanche.
ALors je viens de faire des essasi non plus en local mais sur un espace d’hébergement. Je tombe sur le même os :peut-être que je passe à côté de quelque chose… mais, franchement, j’ai l’impression qu’il y a quelque chose qui ne tourne pas rond ?
la situation : un site 4.4.9. Aucun plugin.
j’appelle l’url : monstite.tld/?article 1
cas 1 : rien dans mes_options.php. Un dossier squelettes qui contient un fichier article.html qui contient : « hello »
=> reponse : « hello ». OK, jusque là ça va bien.
cas 2 : je suis taquin :
2-1 je renomme le dossier squelettes en squelettes-bis
2-2 : j’écris dans config/mes_options.php la déclaration $GLOBALS['dossier_squelettes']='squelettes-bis';
-2-3 : le résultat attendu n’est pas du tout « hello » mais le résultat d’une page générée identifiée via un ?var_mode=inclure par squelettes-dist/article.html
Il ya a peut-être (ou… sans doute !!) quelque chose qui m’échappe, mais ça me donne l’impression que la déclaration du chemin qu’en principe $dossier_squelettes doit faire n’est pas prise en compte.
Quelque chose que je fais mal / pas de la bonne façon / que j’écris mal (…) ?
Personne ne reproduit ?
je ne pense pas que ce soit utile. j’ai toutefois fait l’essai et le résultat est le même : le squelette squelettes-bis/article.html n’est pas pris en compte…
Dans Déclarer des options - Programmer avec SPIP 4 il y a un exemple qui semble correspondre à ce que tu veux faire avec des squelettes 2008, 2007 et l’utilisation d’un paramètre var_skel dans l’url.
Serait-ce ça la solution ?
ben, je ne pense pas : le code fourni sert à qualifier le dossier destiné à renseigner "ce qu’il y a après : $dossier_squelettes =’
Or le souci que je rencontre c’est que «le flêchage / la redirection » vers un autre répertoire indiqué pour le « nouveau dossier squelettes » invitant SPIP à y aller chercher le fichier qui va bien ne semble pas fonctionner…
Le dossier squelettes/ est toujours pris en compte en comme un dossier pouvant contenir des surcharges.
$GLOBALS['dossier_squelettes'] ne remplace pas, mais ajoute un ou plusieurs dossiers supplémentaires à la définition.
L’ordre de priorité peut être constaté avec :
[<pre>(#REM|_chemin|print_r{1})</pre>]
Et dans votre cas, le problème vient probablement du fait qu’il est nécessaire de recalculer le fichier tmp/cache/charger_plugins_chemins.php en se rendant sur ecrire/?exec=admin_plugin&actualise=1 (ou bine en vidant le cache depuis l’adresse ecrire/?exec=admin_vider)
À partir de ce moment-là, SPIP ira chercher en priorité les squelettes présents dans le dossier design/ (que vous aurez créé à la racine du site). Si, de plus, vous utilisez <INCLURE{fond=xxx}>, SPIP ira chercher le fichier xxx.html d’abord dans design/, puis, s’il n’y figure pas, à la racine du site.
Et si on souhaite qu’effectivement cela cherche dans plusieurs dossiers de squelettes:
Mais je ne vois rien qui dise que Spip va continuer à explorer « squelettes » si on déclare un autre dossier … sauf à utiliser la seconde syntaxe.
@Emmanuel_GUILLEMONT vous avez essayé de supprimer le dossier « squelettes » pour ne conserver que le votre ? caches vidés ? votre nouveau dossier est bien à la racine, pas dans « squelettes » ?
Mais oui, j’ai bien en-tête cette histoire de respect de l’arborescence, pas de souci.
Pour tenter d’y voir plus clair, je relatais dans un post un peu plus haut que j’ai voulu voir ce qu’il se passait dans une situation la plus simple possible.
J’ai donc mis en place un site dans lequel il y a :
aucun plugin d’activé
un fichier mes_options.php qui contient uniquement <? php $GLOBALS['dossier_squelettes'] = 'squelettesbis';
un dossier squelettesbis qui ne contient qu’un seul fichier : « article.html » qui contient seulement « hello »
=> Résultat : c’est le fichier squelettes-dist/article.html qui est pris en compte… ce qui n’est pas le résultat attendu !
Si je supprime le fichier mes_options.php, et que je renomme squelettesbis en squelettes, j’ai bien droit au « hello » attendu.
(…) perplexité et grattage de cheveux
Un effet rebond de la mutualisation ?
Constatant que tous les essais que j’ai faits portaient sur des sites en mutualisation, je viens de faire les mêmes essais sur un site « en propre » (=pas en mutualisation), et là, la déclaration d’un autre répertoire est bien prise en compte.
J’ai l’impression que le plugin mutualisation « casse » donc quelque chose. Est-ce que vous reproduisez de votre côté ?