Bandeau

Site de démonstration du jeu de squelettes ESCAL fonctionnant sous SPIP3 et mis à la disposition des Etablissements SColaires de l’Académie de Lyon... et de qui veut.

Boite et réglages affichage des rubriques

Pascal Rougier
le 2 juillet 2012
à 16:08
Rappel du sujet :

Bonjour, je travaille sur la mise à jour du site de la circonscription.

Bravo pour votre squelette qui correspond à une présentation très ramassée et fonctionnelle.

Pour le moment dans les rubriques j’ai cela :

http://www.ac-grenoble.fr/iennyons/neosite/spip.php?rubrique17&lang=fr

J’aimerais pouvoir afficher les sous-rubriques de la rubrique dans un boite à droite (extra) ainsi que les sites de la rubrique ; il ne resterait ainsi que les articles de la rubrique courante en liste et s’il n’y a qu’un article il apparaîtrait déployé.

Noisette sur le gâteau : s’il n’y avait pas d’article dans la rubrique courante, le comportement classique serait maintenu.

Ca c’est les idées, mais je ne vois pas comment le mettre en place.

Boite et réglages affichage des rubriques

Il va te falloir
 créer un fichier inc-sous_rub.html dans /squelettes/inclusions avec dedans

  
  <h1 class="cadre">
      Sous-rubriques
  </h1>

  <div class="texte">
<B_SsRubriques>
+ le code entres ces 2 lignes (à copier à partir de inc-rubrique_normal)
</BOUCLE_SsRubriques>
  </div>

 créer un fichier inc-sites_rub.html dans /squelettes/inclusions avec dedans

  
  <h1 class="cadre">
      Sites
  </h1>

  <div class="texte">
<B_derniers_sites>
+ le code entres ces 2 lignes (à copier à partir de inc-rubrique_normal)
</B_derniers_sites>
  </div>

 copier inc-rubrique_normal de /escal/inclusions vers /squelettes/inclusions et supprimer le code copié auparavant

 copier rubrique.html de /escal vers /squelettes et rajouter dans la partie "extra"

<INCLURE {fond=inclusions/inc-sous_rub}{env}>
<INCLURE {fond=inclusions/inc-sites_rub}{env}>

A tester ...

Boite et réglages affichage des rubriques

Merci pour ton aide, grâce à tes conseils j’ai avancé sur la question.

Pour les sites de la rubrique courante, j’ai le comportement attendu.

Par contre pour les sous-rubriques de la rubrique courante, elles correspondent à toutes les rubriques du site et donc ne changent pas lorsque l’on change de rubrique/secteur.

Exemple :http://www.ac-grenoble.fr/iennyons/neosite/spip.php?rubrique29&lang=fr

Boite et réglages affichage des rubriques

Oui je vois que j’avaisoublié de mettre les INCLURE dans des div mais tu l’as fait, c’est ok.

Pour les rubriques, il faut en effet préciser le contexte. Donc au début de inc-sous_rub.html tu mets
<BOUCLE_contexte(RUBRIQUES){id_rubrique}>
et à la fin tu mets
</BOUCLE_contexte>
et hop !

Boite et réglages affichage des rubriques

Je prends l’exemple de cette rubrique racine dans laquelle il n’y a pas d’article publié :

http://www.ac-grenoble.fr/iennyons/neosite/spip.php?rubrique62&lang=fr

On a le comportement prévu par les modifications apportées mais du coup , on a un grand blanc en dessous, ne serait-il pas possible de faire un test du genre : s’il n’y a pas d’articles dans la rubrique courante alors place les sous-rubriques de la rubrique et les sites de la rubrique comme avant ! (il est pas un peu pénible le gars ??  😉)

Autre question , subsidiaire, je travaille aussi avec des squelettes Eva, et il y a un mot-clé nommé article1, qui permet de déployer un ou des articles en une de rubrique en quelque sorte. Sous Escal ce serait possible ??

et dernière question : pour la noisette edito, est-ce normal que l’on ne puisse y mettre qu’un seul article ? Peut-on changer ce fonctionnement ?

Merci encore pour ton aide.

Boite et réglages affichage des rubriques

Que de questions ... et mes réponses, à tester, bien sûr.

1- les boucles tests :
Dans inc-rubrique_normal.html, mettre

<BOUCLE_test(ARTICLES){id_rubrique}{0,1}>
</BOUCLE_test>

avant
<B_SsRubriques>
et mettre
<//B_test>
après
</B_derniers_sites>

Dans inc-sous_rub.html et inc-sites_rub.html, mettre
<BOUCLE_test(ARTICLES){id_rubrique}{0,1}>
au début des fichiers et
</BOUCLE_test>
à la fin

2- un article en exergue
Dans inc-rubrique_normal.html, juste avant
<B_articles_rubs>
rajouter

<BOUCLE_exergue(ARTICLES){titre_mot="article1"}{doublons}>
ce que tu veux afficher de l'article (tu peux t'inspirer de ce qui existe)
</BOUCLE_exergue>

et rajouter le critère {doublons} dans la BOUCLE_articles_rubs

3- noisette edito
Oui, c’est normal puisqu’il y a le critère {0,1} dans inc-edito.html
En supprimant ce critère, tu auras tous les articles avec le mot-clé "edito".

Boite et réglages affichage des rubriques

Je ne peux placer cette boucle à l’endroit que tu désignes, puisque j’avais déplacé sur tes conseils dans inc-sous_rub et dans inc-sites_rub

Dans inc-sous_rub.html et inc-sites_rub.html, mettre
au début des fichiers et
à la fin

Ca j’ai fait mais ça marche pas.

Boite et réglages affichage des rubriques

Ah oui, en effet, il faut repartir du inc-rubrique_normal.html d’origine et y placer les boucles de test comme indiqué.

Dans inc-sous_rub.html, il faut en effet placer la boucle de test dans la boucle de contexte :

<BOUCLE_contexte(RUBRIQUES){id_rubrique}>
<BOUCLE_test(ARTICLES){id_rubrique}{0,1}>
</BOUCLE_test>
<B_SsRubriques> 
...
</BOUCLE_SsRubriques>
<//B_test> 
</BOUCLE_contexte>

et dans inc-sites_rub.html, on fait pareil

<BOUCLE_contexte(RUBRIQUES){id_rubrique}>
<BOUCLE_test(ARTICLES){id_rubrique}{0,1}>
</BOUCLE_test>
<B_derniers_sites> 
...
</B_derniers_sites>
<//B_test> 
</BOUCLE_contexte>

et ça devrait être bon

Boite et réglages affichage des rubriques

Apparemment maintenant un rubrique contient des articles : elle les affiche mais n’affiche plus ses sous-rubriques :

TUIC : http://www.ac-grenoble.fr/iennyons/neosite/spip.php?rubrique12&lang=fr&var_mode=calcul

ou une rubrique contient des articles à sa racine et des sous rubriques et elle n’affiche plus que ses articles.

Le problème vient je pense du fichier rubrique dans lequel j’ai mis dans

<div id="page">
              <div id="contenu">
<div class="cadre-bleu"><INCLURE {fond=inclusions/inc-sous_rub}{env}></div>
<div class="cadre-bleu"><INCLURE {fond=inclusions/inc-sites_rub}{env}></div>

ça ça gère l’affichage central et donc empeche l’affichage latéral et inversement si on place ces inclusions dans <div id="extra">, on ne les aura plus en central quand il n’ y a pas d’articles dans la rubrique courante.

Boite et réglages affichage des rubriques

Non,il ne faut pas toucher à la partie "contenu" de rubrique.html, juste à
 inc-rubrique_normal où tu reprends l’original et tu rajoutes la boucle de test (avec un 2 car il y a déjà une boucle de test sur les auteurs dans ce fichier, à propos) qui n’affichera les sous-rub et les sites que si la rubrique courante ne contient pas d’article car cet affichage est dans la partie alternative de la boucle

Ensuite, les noisettes inc-sous_rub et inc-sites_rub, faites comme indiqué, ne doivent s’afficher sur les côtés que si la rubrique courante contient des articles grâce à la boucle de test mais je me suis trompé. Il faut utiliser la partie principale de la boucle :

<BOUCLE_contexte(RUBRIQUES){id_rubrique}>
<BOUCLE_test(ARTICLES){id_rubrique}{0,1}>
<B_SsRubriques>
...
</BOUCLE_SsRubriques>
</BOUCLE_test>
</BOUCLE_contexte>

Enfin, tout ça si je ne me goure pas ...

Boite et réglages affichage des rubriques

Ouaip, j’y suis presque !!

Mais cette rubrique

http://www.ac-grenoble.fr/iennyons/neosite/spip.php?rubrique62&lang=fr

n’a pas d’articles donc la sous-rubrique est centrale, il faut cliquer dessus pour voir apparaître les 7 sous-rubriques de niveau 2, comment voir directement les 7 sous rubriques puisqu’il n’y a rien dans la rubrique contenu ?

Boite et réglages affichage des rubriques

Déjà pour éviter les blocs vides sur le côté, il faudrait mettre tout le contenu de inc-sous_rub et inc-sites_rub dans les boucles de contexte et de test :

<BOUCLE_contexte(RUBRIQUES){id_rubrique}>
<BOUCLE_test(ARTICLES){id_rubrique}{0,1}>
<h1 class="cadre">
...
</div>
</BOUCLE_test>
</BOUCLE_contexte>

Ensuite, il doit y avoir </div> en trop ou en moins quelque part, je dirais dans inc-rubrique_normal, qui te fait péter la mise en page dans les rubriques qui n’ont pas d’articles comme "Formation"

Enfin, pour les sous-rubriques, il faut modifier la BOUCLE_ss_rub_rub. Voici une trame à améliorer pour avoir un affichage plus joli :

<!-- on compte et on affiche le nombre de rubriques dans cette sous-rubrique -->
<B_ss_rub_rub>
   <div class="nombre-articles-rubrique">
    <:escal:rubrique_contenu:> #TOTAL_BOUCLE
     [(#TOTAL_BOUCLE|>{1}|oui) <:escal:sous_rubriques:>]
     [(#TOTAL_BOUCLE|>{1}|non) <:escal:sous_rubrique:>]
   </div>
  <ul>
<BOUCLE_ss_rub_rub(RUBRIQUES){id_parent}>
  <li><a href="URL_RUBRIQUE" title="[(#DESCRIPTIF|textebrut)]>#TITRE</a></li>
</BOUCLE_ss_rub_rub>
  </ul>
</B_ss_rub_rub>
Boite et réglages affichage des rubriques

Les div qui contiennent les noisettesinc-sous_rub et inc-sites_rub sont-elles bien fermées avec un </div> ?

<div class="cadre-bleu"><INCLURE {fond=inclusions/inc-...}{env}></div>

Boite et réglages affichage des rubriques

Oui dans rubrique j’ai exactement ça :

<div id="extra">

              <BOUCLE_test2(RUBRIQUES){id_rubrique}{titre_mot==^(trombino)$}>
              </BOUCLE_test2>
              </B_test2>

          <!-- affichage du bloc inc-acces_direct si selectionne dans la page de configuration -->
            [(#CONFIG{escal/config/rubaccesdirect}|=={extra}|oui)<div class="cadre-bleu"><INCLURE {fond=inclusions/inc-acces_direct}{env}></div>]

          <!-- affichage du bloc inc-derniers_articles par defaut ou si selectionne dans la page de configuration -->
            [(#CONFIG{escal/config/derniersart}|non)<div class="cadre-bleu"><INCLURE {fond=inclusions/inc-derniers_articles}{env}></div>]
            [(#CONFIG{escal/config/derniersart}|=={extra}|oui)<div class="cadre-bleu"><INCLURE {fond=inclusions/inc-derniers_articles}{env}></div>]

<div class="cadre-bleu"><INCLURE {fond=inclusions/inc-sous_rub}{env}></div>
<div class="cadre-bleu"><INCLURE {fond=inclusions/inc-sites_rub}{env}></div>
Boite et réglages affichage des rubriques

Déjà pour éviter les blocs vides sur le côté, il faudrait mettre tout le contenu de inc-sous_rub et inc-sites_rub dans les boucles de contexte et de test :

J’ai inclu les contenus dans ces deux boucles, pas de répercussion visible.

Enfin, pour les sous-rubriques, il faut modifier la BOUCLE_ss_rub_rub. Voici une trame à améliorer pour avoir un affichage plus joli

je l’ai défini, mais pas d’effet non plus .

Boite et réglages affichage des rubriques

D’abord, dans inc-rubrique_normal : un guillemet qui manquait pour le title du lien de la BOUCLE_ss_rub_rub et un

en trop

Dans inc-sites_rub : il faut en effet tester la présence de sites référencés pour afficher ou non la noisette avec une
<BOUCLE_test2(SITES){id_rubrique}{0,1}>

Dans inc-sous_rub : il fallait inclure le début du fichier dans la partie "optionnelle avant" de la BOUCLE_SsRubriques

et là ça doit être bon.

Boite et réglages affichage des rubriques

Ca y est la rubrique formation s’affiche comme prévu avec les squelettes retouchés. J’ai juste rajouté un dièse à la ligne 101 de inc-rubrique _normal

Par contre les rubriques avec des sites ou des sous rubriques buggent un peu.

Boite et réglages affichage des rubriques

Oui, erreur de ma part : si on inclut le début du fichier inc-sous_rub dans la boucle, il faut aussi inclure le div de fermeture. Ton fichier doit donc se terminer par

</B_ss_rub_rub>
  </div>
  </div>
</BOUCLE_SsRubriques>
</BOUCLE_test>
</BOUCLE_contexte>

On va bien finir par y arriver !

Boite et réglages affichage des rubriques

Je refais un point :

les rubriques racines qui vont bien :

lorsqu’elles contiennent soit : articles + ss rubriques + sites = OK
soit : articles seuls = OK

Par contre lorsqu’elles contiennent : articles + sites = bug léger affichage : exemple rubriques écoles
ou bien avec : ss rubriques seules = pas OK : exemple rubrique évaluation.

Pour en arriver là j’ai pas mal joué avec les div de inc-sous_rub et inc-sites_rub.

Boite et réglages affichage des rubriques

Pour le inc-sous_rub à la fin j’ai :

</B_ss_rub_art>
<B_ss_rub_rub>
<BOUCLE_ss_rub_rub(RUBRIQUES){id_parent}>
</BOUCLE_ss_rub_rub>
<div class="nombre-articles-rubrique">
<:escal:rubrique_contenu:> #TOTAL_BOUCLE
[(#TOTAL_BOUCLE|>{1}|oui) <:escal:sous_rubriques:>]
[(#TOTAL_BOUCLE|>{1}|non) <:escal:sous_rubrique:>]
</div>
</B_ss_rub_rub>
</div>
</BOUCLE_SsRubriques>
</BOUCLE_test>
</BOUCLE_contexte>
Boite et réglages affichage des rubriques

Pour inc-sousrub, comme je te l’ai indiqué, il faut rajouter un 2e </div> entre </B_ss_rub_rub> et </BOUCLE_SsRubriques>

Pour inc-sites_rub, j’ai ce code et ça fonctionne :

<BOUCLE_contexte(RUBRIQUES){id_rubrique}>
<BOUCLE_test(ARTICLES){id_rubrique}{0,1}>
<BOUCLE_test2(SITES){id_rubrique}{0,1}>
<h1 class="cadre">
     Sites
</h1>

<div class="texte">

<B_derniers_sites>
<hr />
  <div class="texte-insert">
  <:escal:rubrique_sites_references:>
  </div>
      <BOUCLE_derniers_sites(SITES){id_rubrique} >
...
      </BOUCLE_derniers_sites>
</B_derniers_sites>
</div>

</BOUCLE_test2>
</BOUCLE_test>
</BOUCLE_contexte>
Boite et réglages affichage des rubriques
Boite et réglages affichage des rubriques

Tu as forcément un problème de </div> en trop ou en moins.

Envoie moi ton fichier en privé que je regarde.

Boite et réglages affichage des rubriques

Bon voilà après avoir galéré avec des div contradictoires entre inc-sous_rub et inc-site-rub et un petit break de 14 juillet, j’ai repris le pb autrement.

J’ai enlevé un partie du fichier inc-rubrique-normal , tout ce qui concernait les ss rubriques et les sites de la rubrique pour le mettre dans un fichier distinct nommé inc-rubrique_gauche qui gère ce qui sera en colonne gauche et j’ai laissé dans inc-rubrique-normal ce qui concerne les articles et leur pagination.

J’obtiens alors l’affichage souhaité, avec des modifications css qui restent à faire mais l’ergonomie me convient.

Merci encore pour ta patience.

Réagir au sujet
Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.
Attention ! Si votre message contient un lien, il devra être validé par le webmestre. Inutile de le poster à nouveau ;-)

Ajouter un document

Plan du site Contact Mentions légales Données personnelles et cookies Espace privé squelette RSS

2009-2025 © Escal - Tous droits réservés
Haut de page
Réalisé sous SPIP
Habillage ESCAL 5.2.14