Afficher une brève selon les articles

vendredi 23 juin 2006
par  marsu15
popularité : 3%

Les brèves avec SPIP, c’est vraiment pratique. Le seul hic, c’est qu’on ne peut les afficher qu’en fonction d’une rubrique. Je cherchais une solution pour que deux articles de la même rubrique aient des brèves différentes affichées dans la colonne de droite. Et bien, j’ai trouvé et en plus, c’est ça le pire, dans ma tête.

Allez, je vais pas vous faire une intro de 15 pages, et je vais donc vous expliquez comment faire.

Je commence par le plus dur à assimiler : votre brève sera en fait un article !! (plus loin je parlerai d’"article-breve" pour qu’on tout le monde comprenne)

Fichiers touchés par la modification :
- article.html
- inclusions/bloc-gauche.html

Affichage d’une brève selon l’article

L’astuce consiste à donner un mot-clé à votre brève l’id de l’article avec laquelle elle va. Or #ID_ARTICLE ne peut être un critère de brèves. On va donc utiliser un article. Donc votre "article-brève" doit avoir comme mot-clé, le numéro de l’article avec lequel vous voulez l’afficher.

Dans le fichier article.html, il faut modifier le bloc de droite.

Dans la partie bloc-droite, il faut supprimer

<INCLURE(bloc-droite-secteur-news.php3){id_secteur}>

et le remplacer par :

<B_breves>
        <div id="breves" class="breves">
                <a class="en-tete" href="#URL_SITE_SPIP/breve.php3"><:breves:></a>
                <BOUCLE_breves(ARTICLES){par date}{inverse}{0,5}{titre_mot=#ID_ARTICLE}>
                        <div class="contenu">
                                <a class="nom-breve" href="#URL_SITE_SPIP/#URL_BREVE">#TITRE</a>
                                <div class="date">[(#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)]</div>
                                <div class="texte">[(#TEXTE|reduire_image{120,0})]</div>
                                [<div class="notes">(#NOTES)</div>]
                                [<div class="notes">sur le web : <a href="#URL_SITE">(#NOM_SITE)</a></div>]
                        </div>
                </BOUCLE_breves>
        </div>
</B_breves>

Vous pouvez aussi créer un fichier bloc-droite-article-news.html associé à un fichier bloc-droite-article-news.php3, ces deux fichiers seront construits selon le même modèle que les deux autres fichiers bloc-droite-article-***.html et
bloc-droite-article-***.php3 en remplaçant la boucle brèves par celle que je viens de proposer.

Le seul problème c’est qu’en fait comme votre brève est un article, elle va s’afficher aussi dans votre liste d’articles de la rubrique.
Pour régler ce problème, il faut créer une rubrique de premier niveau dans laquelle on va mettre tous nos "articles-brèves". Ensuite, on va exclure l’affichage de cette rubrique dans le menu de navigation de gauche.

Dans le fichier inclusions/bloc-gauche.html, trouvez la ligne (normalement ligne 8)

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

et y rajouter

{id_rubrique!=XX}

où XX est votre numéro de rubrique.