guiderdoni.net

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

Accueil > 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

6 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 - repondre 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 - repondre 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

4 mars 2007 - repondre message

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 - repondre 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>
15 mai 2007 - repondre message

super coll
merci bcp pour ce bout de code

18 novembre 2008, par nico150 - repondre message
2005-2017 - Contenu en GPL http://www.guiderdoni.net - Site réalisé avec SPIP 
rechercher - plan du site - prive - alexandra.guiderdoni@gmail.com
CSS - XHTML - squelette