SPIP ecureuil




Thème de ce forum :

Dommage : tous les squelettes d’un même type doivent être dans le même répertoire



Alain C.
Dommage : tous les squelettes d’un même type doivent être dans le même répertoire
26 septembre 2005 23:35

Bonjour. Pour avoir galéré quelques heures avant de me plonger dans le code pour comprendre, voici le problème que j’avais et la solution, au cas où ça pourrait servir à qq ou au cas où un developpeur voudrais changer ce comportement :

J’utilisait les squelettes de la distrib, et je voulais juste modifier le squelette d’une rubrique. Je crée donc un rubrique-xx.html, le mets dans un répertoire "squelettes", et ... rien. Après avoir pas mal galéré, je me suis rendu compte qu’il fallait également recopier "rubrique.html" dans le répertoire squelettes pour que ça marche ! Avis aux amateurs.

Le pb vient de ce que le "path" n’est utilisé que dans la fonction "find_in_path()", qui n’est appelée qu’avec "rubrique". On recherche ensuite rubrique-xx.html uniquement à l’endroit où on a trouvé rubrique.html.

Je trouve ça un peut dommage. Ne pourrait-on pas faire la recherche directement sur "rubrique-xx" ou "article-xx", ce qui éviterait d’avoir à dupliquer tous les fichiers squelettes à chaque fois qu’on veut essayer qq chose ?

Bon, pas bien grave ni important, je reconnais.

Rechercher dans les forums:
 

Mortimer
27 septembre 2005 11:35
Dommage : tous les squelettes d’un même type doivent être dans le même répertoire

Je crois que c’est un comportement documenté de la 1.8, c’est vrai que c’est un peu étrange :D

Si tu as la solution, tu es le bienvenu pour proposer un patch sur la mailling liste spip-dev@rezo.net

Alain C
27 septembre 2005 15:50
Dommage : tous les squelettes d’un même type doivent être dans le même répertoire

Fait. Mais c’était tellement évident que je soupçonne qu’il y avait de bonnes raisons pour que ce ne soit pas fait comme ça ;-) A suivre.

30 septembre 2005 11:38
Dommage : tous les squelettes d’un même type doivent être dans le même répertoire

Salut Mortimer.

Aucun retour de spip-dev. Es-tu abonné ? Sais-tu si le message est passé ?

En fait, ça m’interesse d’autant plus que le site sur lequel je travaille est passé en bio-spip (tout se fait en même temps ;-) ), qui prend donc la main, avec le fonctionnement actuel, sur le dossier "squelettes".

Donc, si ma modif était valable, on pourrait continuer à chercher les squelettes de rubrique dans "squelettes", sans avoir à modifier la "distrib" des bio-squelettes.

morimer
30 septembre 2005 12:19
Dommage : tous les squelettes d’un même type doivent être dans le même répertoire

g pas vu passer ton message sur la liste et je le vois pas dans les archives. Tu as posté comment ?

tout le monde peut envoyer un mail normalement je pense, ou même passer par gmane pour le faire.

Alain C
21 octobre 2005 10:07
Dommage : tous les squelettes d’un même type doivent être dans le même répertoire

Salut Mortimer (et les autres). Mes messsages vers spip-dev se perdent toujours, j’abandonne. Je vous livre donc mon astuce, qui marche maintenant sur mon site depuis un moment. Cette modif est faite sur le fichier inc_chercher_squelettes de la version 1.8.1. Elle permet de ne mettre dans son dossier squelette perso que les fichiers que l’on a réellement modifiés, les autres restant dans l’arborescence "normale". Avantage : maintenance plus simple, plus de prise de tête sur le choix des fichiers à recopier. Ca peut peut-être également résoudre les problèmes de celui qui voulait mettre des squelettes "applicatifs" en dehors de la structure SPIP tout en gardantses squelettes "de publication" dans l’arborescence normale. Si quelqu’un peut faire suivre aux développeurs pour avis et éventuellement intégration...

diff -u inc-chercher-squelettes :

--- inc-chercher-squelette.php3.org     2005-09-30 11:52:36.000000000 +0200
+++ inc-chercher-squelette.php3 2005-09-30 16:02:44.000000000 +0200
@@ -35,15 +35,15 @@

       // On selectionne, dans l'ordre :
       // fond=10
-       $f = "$squelette=$id_rubrique";
-       if (($id_rubrique > 0) AND (@file_exists("$f.$ext")))
-               $squelette = $f;
+       $f = "$fond=$id_rubrique";
+       if (($id_rubrique > 0) AND ($squel=find_in_path("$f.$ext")))
+               $squelette = substr($squel, 0, - strlen(".$ext"));
       else {
               // fond-10 fond-<rubriques parentes>
               while ($id_rubrique > 0) {
-                       $f = "$squelette-$id_rubrique";
-                       if (@file_exists("$f.$ext")) {
-                               $squelette = $f;
+                       $f = "$fond-$id_rubrique";
+                       if ($squel=find_in_path("$f.$ext")) {
+                               $squelette = substr($squel, 0, - strlen(".$ext")
);
                               break;
21 octobre 2005 11:39
Dommage : tous les squelettes d’un même type doivent être dans le même répertoire

Mes messsages vers spip-dev se perdent toujours, j’abandonne

C’est malheureux, mais ça s’explique : on essaie de se structurer pour gérer des « tickets », mais on manque de bras.

21 octobre 2005 23:14
Dommage : tous les squelettes d’un même type doivent être dans le même répertoire

OK c’est intégré ; désolé pour le retard

Krangy
25 février 2009 16:35
Dommage : tous les squelettes d’un même type doivent être dans le même répertoire

Ah ben je ne comprenais pas pourquoi mon squelette marchait très bien en local et que lorsque j’ai voulu le mettre en ligne mon squelette article-xx.html ne marchait pas mais c’était simplement parcequ’il m’avait semblé inutile de copier article.html dans le dossier de squelettes perso...

En tout cas merci pour ce post qui m’a bien servi :D

RSS






squelette