guiderdoni.net

Bloc notes : spip, css, xhtml, web, standards, mac ...

Accueil du site > Spip > Afficher directement l’article si la rubrique n’en a qu’un

Articles de cette rubrique

Articles

publie le mardi 9 août 2005 par Alexandra

Afficher directement l’article si la rubrique n’en a qu’un

http://www.3studio.org/blog.php ?id_blog=36&id_article=295
et
http://www.spip-contrib.net/Afficher-directement-l-article-si

Si les rubriques n’ont un seul article, faire que le lien mène directement à l’article au lieu de la rubrique comme habituellement.


<BOUCLE_menurub(RUBRIQUES){racine}{par num titre}>

   <BOUCLE_articles_plusdun(ARTICLES) {id_rubrique} {1,1}>
    <a href="[(#URL_RUBRIQUE)]">#_menurub:TITRE</a>
    </BOUCLE_articles_plusdun>

          <BOUCLE_articles_unseul(ARTICLES) {id_rubrique} {0,1}>
          <a href="[(#URL_ARTICLE)]">#_menurub:TITRE</a>
          </BOUCLE_articles_unseul>

    <//B_articles_plusdun>

</BOUCLE_menurub>

La première boucle fabrique le lien vers la rubrique si il y a plus d’un article (puisque 1,1 veut dire qu’on prend le 2e résultat retourné par la Boucle).

La deuxième boucle fabrique le lien vers l’unique article de la rubrique, étant dans la partie conditionnelle de la boucle on sait qu’il y a 0 ou 1 article dans cette rubrique.

La notation #_menurub:TITRE permet d’afficher le nom de la rubrique alors que nous sommes dans une boucle articles.


Forum

Répondre à cet article

5 commentaires

Afficher directement l’article si la rubrique n’en a qu’un

Mortimer propose aussi une boucle interresante, avec un squelette en inclure pour chacun des cas, 1 article, ou plusieurs dans la rubrique.

http://article.gmane.org/gmane.comp...

<BOUCLE_rubrique_principale(RUBRIQUES) {id_rubrique}>
<BOUCLE_compte_article(ARTICLES) {id_rubrique}></BOUCLE_compte_article>
[(#TOTAL_BOUCLE|=={1}|?{' ',''}) <INCLURE(article.php3) {id_rubrique}>]
[(#TOTAL_BOUCLE|>{1}|?{' ',''}) <INCLURE(vraie_rubrique.php3)  
{id_rubrique}>]
<//B_compte_article>
</BOUCLE_rubrique_principale>

maitenant tu fais un squelette vraie_rubrique.html/php3 qui contient  
l'affichage normal de la rubrique s'il y a plus d'un article
et tu modifies le code de article.html pour que la boucle principale  
soit qq chose comme ça:

<BOUCLE_article_principal(ARTICLES) {id_article?} {id_rubrique?} {0,1}>
21 mai 2006, par Alexandra - Répondre à ce message

Je vous invite à utiliser la noisette inc-triurlrubrique.html du squelette de spip-contrib "http://www.spip-contrib.net/squelettes/"

A inclure à la place de URL_RUBRIQUE dans une boucle construisant un menu ou dans un fil d’ariane... Elle permet d’avoir soit URL_RUBRIQUE si y’a du monde dans la rub et URL_ARTICLE s’il n’y a qu’un seul article dans la rub.

C’est absolument épatant car il n’y a de cette manière aucune bidouille compliquée sur les squelettes article et rubrique... que du bonheur... :-)

14 février 2007, par Stanislas - Répondre à ce message
bonjour cette solution fonctionne t-elle dans le cas d’un traitement récursif des rubriques ( plusieurs niveaux de rubriques ) merci par vance pour vos lumières Laurent girardeau
A priori oui je viens de tester avec :
Racine du site
Rubrique 1 (pas d’article)
sous rubrique a(deux article)-> liste articles de la sous rubrique
sous rubrique b(1 article)-> S’affiche directement
sous rubrique c(3 article)-> liste articles de la sous rubrique
4 mars 2007, par Alexandra - Répondre à ce message
Voici le code proposé sur le squelette de contrib, avec en option la possibilité d’exclure certaines rubrques

[(#REM) inclusion pour tri url rubrique
pour faciliter la navigation, SPIP-Contrib ayant beaucoup de rubrique-dossier avec un seul article
si seul article de premier niveau
et pas de sous-rubrique autre qu'archives
alors url rubrique = url article
sinon (tout autre cas, par exemple rubrique vide) alors url rubrique = url rubrique
nota : cas des articles issus de la syndication non pris en compte car en cartouche dans l'article
INCLURE toujours places dans une boucle rubrique ]

<BOUCLE_contexte_rubrique(RUBRIQUES){id_rubrique}>
        [(#REM) test sur nombre d'articles]
        <BOUCLE_articles_plusdun(ARTICLES){id_rubrique}{1,1}>
                  [(#_contexte_rubrique:URL_RUBRIQUE)]
        </BOUCLE_articles_plusdun></B_articles_plusdun>
                <BOUCLE_articles_unseul(ARTICLES){id_rubrique}{0,1}>
                        [(#REM) test sur presence sous-rubriques autres qu'archives]
                        [(#REM) boucle d'exclusion rubriques sur mot clef "Archives, id=154"]
                        <BOUCLE_exclu_rubriques(RUBRIQUES){id_mot=154}{id_parent}{doublons archives}></BOUCLE_exclu_rubriques>
                        <BOUCLE_test_sousrubrique(RUBRIQUES){id_parent}{doublons archives}>
                        </BOUCLE_test_sousrubrique>

                                [(#_contexte_rubrique:URL_RUBRIQUE)]
                        </B_test_sousrubrique>
                                [(#_articles_unseul:URL_ARTICLE)]
                        <//B_test_sousrubrique>
                </BOUCLE_articles_unseul></B_articles_unseul>
                          [(#_contexte_rubrique:URL_RUBRIQUE)]
                <//B_articles_unseul>
        <//B_articles_plusdun>
</BOUCLE_contexte_rubrique>
2005-2008 - Contenu en GPL http://www.guiderdoni.net - Site réalisé avec SPIP  1.9.2c
rechercher - plan du site - prive - webmaster@guiderdoni.net
CSS - XHTML - squelette