Version complète: sur le forum Webmaster Hub : Un squelette pour plusieurs rubriques du même niveau
Webmaster Hub > Création et exploitation de Sites Internet > Systèmes de publication
Anne100
Bonjour à tous,

je cherche depuis des heures comment faire pour afficher plusieurs rubriques (qui ne sont pas du même niveau, il y en a quelques-uns du niveau -1 et d'autres qui sont du -2 et -3) pareil entre eux mais sans devoir faire autant de squelettes. Dans l'idéal, on pourrait faire qc comme rubrique=2=3=4=5.html pour les rubriques 2, 3, 4 et 5... mais ce n'est pas possible... C'est juste parce que certaines pages doivent être plus longues que d'autres alors que la hauteur est fixée (oui, je sais, bête).

Est-ce que quelqu'un saurait ?

Merci
pluriels
bonjour,

je crois qu'il faudrait commencer par préciser quel CMS tu utilises.
Pourrais-tu aussi donner un exemple de ce que tu veux faire ?

l'idéal serait d'avoir un lien vers les pages exemple

Anne100
Euh..oui.. effectivement j'ai oublié de dire qu'il s'agit de spip de la version 1.9.2...
pluriels
Le plus simple :
avec de la chance les rubriques 2-3-4-5 sont dans la même branche
par exemple
CODE
- 2 - 3
     - 4 - 5

dans ce cas, tu peux appeler ton fichier rubrique-2.html

Autre méthode, pas forcément optimisée :
- les filtres de test
http://www.spip.net/fr_article901.html

La rubrique 2 a une hauteur de 400px, la rubrique 3 a une hauteur de 350px
CODE
<style>
body{
[(id_rubrique=={2}|?{'height:400px;',''})]
[(id_rubrique=={3}|?{'height:350px;',''})]
}
</style>
Anne100
Merci Pluriels ! Mes rubriques sont dans la même branche, mais alors comment la rubrique5 va comprendre chercher le fichier "rubrique-2.html qui elle, ne gère que le secteur id=2 ? Il cherche surtout pour savoir si rubrique-5.html existe ou pas ? Sinon il prend rubrique.html tout court ?

Merci de ton aide.
pluriels
tu peux effectivement te placer dans rubrique.html.
Dans ce cas, tu vas devoir tester tous tes numéros de rubriques, ce qui n'est pas génial comme solution.
(que se passera-t-il si tu rajoute une rubrique ?)
Anne100
Merci encore Pluriel mais je ne sais pas si ajouter une rubrique ne mettrait que la pagaille encore partout. J'essaie avec ça dans le header :
CODE
<BOUCLE_css(RUBRIQUES){id_rubrique=84}>
<link rel="stylesheet" href="[(#CHEMIN{styles/style_autres.css}|direction_css)]" type="text/css" />
</BOUCLE_css>


donc régler les problèmes en changeant chaque fois la feuille de style. Si ça marche je fais pareil pour les autres rubriques.

Merci de ton aide et bon courage !
pluriels
je ne suis pas sûr de bien comprendre ta boucle...

Qu'est-elle censée faire ?
Anne100
Censé de changer la feuille de style selon la rubrique... mais j'ai bien dit "censé" puisque ça ne marche pas. J'ai ajouté le deuxième boucle dans le header puisque les autres rubriques prenaient aussi en compte le css qui est prévu que pour la rubrique 84 :

CODE
<BOUCLE_css(RUBRIQUES){id_rubrique=84}>
                <link rel="stylesheet" href="[(#CHEMIN{styles/style_autres.css}|direction_css)]" type="text/css" />
</BOUCLE_css>
<BOUCLE_c(RUBRIQUES){id_rubrique!=84}>
                <link rel="stylesheet" href="[(#CHEMIN{styles/style.css}|direction_css)]" type="text/css" />
</BOUCLE_c>


Mais bon...
Anne100
Donc dans spip, il y n'y pas un truc qui permettrait d'afficher les sous-rubriques des rubriques principales différentes d'une même manière ? Qu'on peut pas dire que sous-rubriques x et y qui doivent utiliser la squelette blabla.html lorsqu'elles ne sont pas du même secteur ? ....grrrr...
pluriels
pas vraiment.

Les écritures possibles de manière native :
rubrique-xxx.html -> toutes les rubriques enfants de xxx s'affichent avec ce squelette
rubrique=xxx.html -> la rubrique xxx s'affichent avec ce squelette

Tu peux aussi jeter un coup d'oeil aux inclusions au sens SPIP du terme.

CODE
<BOUCLE_css(RUBRIQUES){id_rubrique=84}>
                <link rel="stylesheet" href="[(#CHEMIN{styles/style_autres.css}|direction_css)]" type="text/css" />
</BOUCLE_css>
<BOUCLE_c(RUBRIQUES){id_rubrique!=84}>
                <link rel="stylesheet" href="[(#CHEMIN{styles/style.css}|direction_css)]" type="text/css" />
</BOUCLE_c>


devrait équivaloir à (je l'ai pas testé)

CODE
<link rel="stylesheet" href="[(id_rubrique=={84}|?{#CHEMIN{styles/style.css},#CHEMIN{styles/style_autres.css}})]" type="text/css" />


Anne100
merci encore, ça n'a pas l'air de marcher. J'essaie de voir avec inclusions alors. Ce n'est donc pas la peine de chercher, ce dont j'aurais besoin n'existe pas et il faudra bidouiller - ou sinon créer les squelettes correspondantes...
captain_torche
Pour plus de simplicité (et pour ne pas avoir à modifier tous tes squelettes quand tu changes un élément), tu crées un squelette de base, et tu l'inclus dans les autres squelettes de rubriques.
Anne100
Merci ! une bonne idée ! Comme ça au moins, il peut y avoir bcp de squelettes qui correspondent chacun à une rubrique mais à l'intérieur ils ont tous la même structure via le squelette de base comme tu dis, pas bête je vais faire ça alors.
pluriels
C'est ce que je voulais dire par :
CITATION
Tu peux aussi jeter un coup d'oeil aux inclusions au sens SPIP du terme.


Je vais faire un effort pour m'exprimer correctement
Anne100
Super ! merci ! Bon courage !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.