#EXPOSE

bonjour,
dans une boucle rubrique qui sélectionne les sous rubriques du secteur en cours et une boucle article qui sélectionne les articles de chaque sous rubrique
comment faire en sorte d’afficher uniquement les articles de la sous rubrique en cours ?

– secteur
---- sous rubrique 1 (en cours)
------ article 1
------ article 2
---- sous rubrique 2
---- sous rubrique 3
etc …
avec la balise #EXPOSE rien ni fait :

<BOUCLE-art(ARTICLES)…>

  • [(#EXPOSE{[(#TITRE)], ' '})]
  • ou [(#EXPOSE|oui)[(#TITRE)]]

    peu être une autre méthode ?

    cordialement

    Le 27/03/2010 01:11, bobof a écrit :

    bonjour,
    dans une boucle rubrique qui sélectionne les sous rubriques du secteur en cours et une boucle article qui sélectionne les articles de chaque sous rubrique
    comment faire en sorte d'afficher uniquement les articles de la sous rubrique en cours ?

    -- secteur
    ---- sous rubrique 1 (en cours)
    ------ article 1
    ------ article 2
    ---- sous rubrique 2
    ---- sous rubrique 3
    etc ..
    avec la balise #EXPOSE rien ni fait :

    bonjour,
    ca :
    [(#EXPOSE|?{<a href="#URL_ARTICLE">[(#TITRE)]</a>,""})]
    ca ferait pas l affaire ?
    triton

    bonjour,
    merci triton ça fait l’affaire tant qu’on navigue dans des rubriques de même niveau,
    mais je m’aperçois qu’on ne peut pas cacher les articles du niveau supérieur cela tiens certainement de la fonction expose.
    exemple sur une branche simple :

    – secteur 1
    ---- article 1
    -------- sous rubrique 10
    ------------ article 10
    -------- sous rubrique 20
    ------------ article 20

    cas 1 : si on est dans le secteur 1 on peux cacher les articles 10 et 20
    cas 2 : si on est dans la sous rubrique 10 on peut cacher l’article 20 mais pas l’article 1
    cas 3 : si on est dans la sous rubrique 20 on peut cacher l’article 10 mais pas l’article 1

    donc un pseudo effet accordéon ne semble pas être possible en spip + html + css, … sniff … cordialement triton a écrit :

    donc un pseudo effet accordéon ne semble pas être possible en spip + html + css, ... sniff .. :cry:

    pour l instant, j ai pas encore trouve de trucs pas faisables sous spip...
    Y a un plugin menu accordeon qui existe :

      il est tres bien, il permet de faire des trucs dans ce genre :
    http://www.federation-mjc-languedoc-roussillon.fr/Missions-et-role
    après je crois qu on ne peut pas forcement faire des arborescences très complexes avec, mais il assez facilement modifiable...
    triton

    bonjour,

    triton a écrit :

    donc un pseudo effet accordéon ne semble pas être possible en spip + html + css, … sniff … :cry:

    pour l instant, j ai pas encore trouve de trucs pas faisables sous spip…
    Y a un plugin menu accordeon qui existe :

    j’avais vu et je garde cette solution en ultime recourt,
    c’est plus une solution sans jquery ou javascript qui m’aurai bien séduit.
    merci bien

    -- secteur 1

    ---- article 1
    -------- sous rubrique 10
    ------------ article 10
    -------- sous rubrique 20
    ------------ article 20

    cas 1 : si on est dans le secteur 1 on peux cacher les articles 10 et 20
    cas 2 : si on est dans la sous rubrique 10 on peut cacher l'article 20 mais pas l'article 1
    cas 3 : si on est dans la sous rubrique 20 on peut cacher l'article 10 mais pas l'article 1

    Tu peux montrer ta boucle ?

    -- secteur 1
    ---- article 1
    -------- sous rubrique 10
    ------------ article 10
    -------- sous rubrique 20
    ------------ article 20

    J ai l impression qu il y a un truc qui cloche dans ce que tu veux faire, dans le cas que tu soumets, si on clique un l article 10, tu veux faire disparaitre l article 1, ca fait qu on ne peut revenir a l article 1 que si on clique a la racine du menu ? ca va faire une navigation un peu déroutante ?
    Mais, pas facile a visualiser comme ca, y a pas un site ou on peut voir ou tu en es ?
    triton

    Bonjour,

    #EXPOSE concerne en effet toute la hiérarchie dans le cas des rubriques.

    L’objet qui est « exposé » est l’article (ou la brève, la rubrique, le mot-clé ou l’auteur) qui appartient au « contexte » courant.
    Dans le cas des rubriques, la traversée de la hiérarchie est gérée, ce qui permet d’« exposer » l’arborescence des rubriques qui contient l’article affiché.

    Je n’ai jamais testé avec les articles mais avec les rubriques la doc dit vrai :slight_smile:
    Dans ton cas, tu ne veux exécuter la boucle sur les articles que si le parent direct est la rubrique exposée, pas si c’est une rubrique parente de la rubrique parente de l’article !
    La boucle permettant d’afficher article1 ne doit dont être exécutée que si la balise #EXPOSE renvoie faux (non) sur chacune des sous-rubriques …

    –Boucle sur secteurs (niveau 1)
    ----Boucle rubriques niveau 2
    ------Si #EXPOSE renvoie oui alors c’est que soit la rubrique de niveau 2 soit un de ses articles est exposé : on affiche la sous-rubrique et on boucle sur les articles pour les afficher (boucle art_niv2)
    ------Si #EXPOSE renvoie non alors on affiche la sous-rubrique mais pas ses articles
    ------Si #EXPOSE n’a jamais renvoyé oui alors c’est qu’aucune sous-rubrique n’est exposée, on peut boucler sur les articles enfants directs du secteur et les afficher (boucle art_niv1)

    Il va donc falloir utiliser une variable booléenne initialisée à faux et qui passe à vrai si #EXPOSE renvoie oui … Bingo ! Ton cas est un des plus compliqués possible :wink:
    Pourrais-tu préciser si oui ou non tu souhaites afficher article1 quand c’est sous-rubrique10 qui est la rubrique courante (quand on SUR sous-rubrique10 et pas sur un article enfant comme article10) ?

    Cordialement,
    Ph. Vayssière

    bonjour,
    merci à tous pour votre aide, à force de retourner le problème je suis arrivé à une solution pour faire un pseudo effet accordéon,
    juste avec du code spip et du html, même pas besoin de css, certainement que d’autres solutions sont possibles.
    dans le contexte de la page rubrique.html ou article.html

    Le 29/03/10 21:30, bobof a écrit :

    ......... ici on peut répéter autan de fois que nécessaire les boucles
    ssrubrique et ssart pour descendre dans la hiérarchie

    hum hum...

    j'utiliserais sans vergogne une boucle récursive (donc généraliste dans
    le sens où il n'y a plus à se préoccuper du nombre de sous-sol) ; un
    truc comme ça (et j'en profite pour corriger les imbrications
    de <ul><li>...) :

    #SET{rubrique, #ID_RUBRIQUE}
    <B_secteur>
       <div>
       <ul>
    <BOUCLE_secteur(RUBRIQUES) {racine} {id_secteur}>
       <li>#TITRE
       <B_art>
         [(#ID_SECTEUR|=={#GET{rubrique}}|oui)<ul>]
       <BOUCLE_art(ARTICLES) {id_rubrique}>
         [(#ID_SECTEUR|=={#GET{rubrique}}|oui)<li>#TITRE</li>]
       </BOUCLE_art>
         [(#ID_SECTEUR|=={#GET{rubrique}}|oui)</ul>]
       </B_art>
       <B_srubrique>
         <ul>
       <BOUCLE_srubrique(RUBRIQUES) {id_parent}>
         <li>#TITRE
         <B_sart>
           [(#ID_RUBRIQUE|=={#GET{rubrique}}|oui)<ul>]
         <BOUCLE_sart(ARTICLES) {id_rubrique}>
           [(#ID_RUBRIQUE|=={#GET{rubrique}}|oui)<li>#TITRE</li>]
         </BOUCLE_sart>
           [(#ID_RUBRIQUE|=={#GET{rubrique}}|oui)</ul>]
         </B_sart>
         <BOUCLE_recursive(BOUCLE_srubrique)></BOUCLE_recursive>
         </li>
       </BOUCLE_srubrique>
         </ul>
       </B_srubrique>
       </li>
    </BOUCLE_secteur>
       </ul>
       </div>
    </B_secteur>

    bonjour,
    Merci denisb, effectivement c’est beaucoup plus simple (boucle récursive) et plus propre (

    • ).
      cordialement

      denisb a écrit :

    bonjour,
    plus simple oui, mais du coup je ne peux plus gérer le retrait des titres avec des   ou une classe css au fur et à mesure que ça descend dans les sous rubriques.
    cordialement

    bobof a écrit :

    bonjour,
    après relecture de l'article sur la boucle récursive, y a bien une solution en css sur les <ul> et/ou <li> pour faire les retraits, à la façon threads de forum.
    désolé pour le bruit.
    cordialement

    bobof a écrit :

    bonjour,
    plus simple oui, mais du coup je ne peux plus gérer le retrait des titres avec des &nbsp; ou une classe css au fur et à mesure que ça descend dans les sous rubriques.
    cordialement

    bobof a écrit :

    bonjour,
    Merci denisb, effectivement c'est beaucoup plus simple (boucle récursive) et plus propre (<ul><li>).
    cordialement

    denisb a écrit :

    Le 29/03/10 21:30, bobof a écrit :

    ......... ici on peut répéter autan de fois que nécessaire les boucles
    ssrubrique et ssart pour descendre dans la hiérarchie

    hum hum...

    j'utiliserais sans vergogne une boucle récursive (donc généraliste dans
    le sens où il n'y a plus à se préoccuper du nombre de sous-sol) ; un
    truc comme ça (et j'en profite pour corriger les imbrications
    de <ul><li>...) :

    #SET{rubrique, #ID_RUBRIQUE}
    <B_secteur>
      <div>
      <ul>
    <BOUCLE_secteur(RUBRIQUES) {racine} {id_secteur}>
      <li>#TITRE
      <B_art>
        [(#ID_SECTEUR|=={#GET{rubrique}}|oui)<ul>]
      <BOUCLE_art(ARTICLES) {id_rubrique}>
        [(#ID_SECTEUR|=={#GET{rubrique}}|oui)<li>#TITRE</li>]
      </BOUCLE_art>
        [(#ID_SECTEUR|=={#GET{rubrique}}|oui)</ul>]
      </B_art>
      <B_srubrique>
        <ul>
      <BOUCLE_srubrique(RUBRIQUES) {id_parent}>
        <li>#TITRE
        <B_sart>
          [(#ID_RUBRIQUE|=={#GET{rubrique}}|oui)<ul>]
        <BOUCLE_sart(ARTICLES) {id_rubrique}>
          [(#ID_RUBRIQUE|=={#GET{rubrique}}|oui)<li>#TITRE</li>]
        </BOUCLE_sart>
          [(#ID_RUBRIQUE|=={#GET{rubrique}}|oui)</ul>]
        </B_sart>
        <BOUCLE_recursive(BOUCLE_srubrique)></BOUCLE_recursive>
        </li>
      </BOUCLE_srubrique>
        </ul>
      </B_srubrique>
      </li>
    </BOUCLE_secteur>
      </ul>
      </div>
    </B_secteur>

    _______________________________________________
    liste spip
    spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

    Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
    Discuter chez rezo.net

    Documentation de SPIP : http://www.spip.net/

    Irc : de l'aide à toute heure : http://spip.net/irc

    --

    Signalez vos spams d'un simple clic. www.signal-spam.fr <https://www.signal-spam.fr/&gt;

    ------------------------------------------------------------------------

    _______________________________________________
    liste spip
    spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

    Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
    Discuter chez rezo.net

    Documentation de SPIP : http://www.spip.net/

    Irc : de l'aide à toute heure : http://spip.net/irc

    --

    Signalez vos spams d'un simple clic. www.signal-spam.fr <https://www.signal-spam.fr/&gt;

    --
    Signalez vos spams d'un simple clic. www.signal-spam.fr
    <https://www.signal-spam.fr/&gt;