Motivation
Cette contribution fait suite à la demande d’un utilisateur :
Auriez-vous une idée sur la manière de constituer des archives. Il faudrait que celui qui le souhaite puisse consulter les archives dans une rubrique spéciale qui ne ferait pas apparaître les articles stockés dans la page d’accueil.
Objectif
Cette contribution permet aux rédacteurs de marquer certains articles pour qu’ils ne s’affichent pas sur la page d’accueil. Un article ainsi marqué pourra être identifié, dans la zone publique, via l’affichage d’une "étiquette" visible dans la colonne de gauche.
Mise en oeuvre du point de vue squelette
Modification de \squelettes\sommaire.html
Le fichier sommaire.html doit être modifier pour ne pas afficher les articles contenus dans la rubrique marquée par un mot-clé appartenant au groupe squelette_no-sommaire.
Pour cela, nous travaillons sur la boucle ARTICLES, lignes 101 à 131, qui se présente initialement sous la forme suivante :
<!-- Une : derniers articles publies -->
<div class="derniers-articles">
<div id="articles_recents" class="en-tete"><:articles_recents:></div>
<BOUCLE_article(ARTICLES) {doublons} {id_rubrique!=#RUBRIQUE_AGENDA}{id_rubrique!=#RUBRIQUE_GALERIE}{par date} {inverse} {0,5}>
<div class="annonce">
[<div class="image">(#LOGO_ARTICLE||image_reduire{150})</div>]
<div class="detail">
[(#DATE|nom_jour)] [(#DATE|affdate)]<br>
<B_auteurs-article>
<:par_auteur:>
<BOUCLE_auteurs-article(AUTEURS) {id_article} {", "}>
<a href="#URL_AUTEUR">#NOM</a>
</BOUCLE_auteurs-article>
</B_auteurs-article>
</div>
<div class="chemin">
<BOUCLE_rubrique-mere(RUBRIQUES){id_rubrique}>
[<a HREF="#URL_RUBRIQUE">(#TITRE|supprimer_numero)</a>]
</BOUCLE_rubrique-mere>
</div>
[<div class="surtitre">(#SURTITRE)</div>]
[<a class="titre" href="#URL_ARTICLE" title="<:lire_suite_article:>">(#TITRE|supprimer_numero)</a>]
[<div class="soustitre">(#SOUSTITRE)</div>]
<div class="introduction">
[(#INTRODUCTION|typo_couleur)]
<br><br>
<a class="suite" href="#URL_ARTICLE"><:lire_suite_article:></a>
</div>
</div>
</BOUCLE_article>
</div>
</div>
Au-dessus de cette boucle, nous ajoutons une boucle ARTICLES filtrée pour "passer en revue" l’ensemble des articles associés à un mot clé contenu dans le groupe squelettes_no-sommaire. Étant donné que la boucle article principale comprend le critère doublon, les articles précédemment "passé en revue" dans notre petite boucle ne s’afficheront pas :
<BOUCLE_article-no-sommaire(ARTICLES) {type_mot=squelette_no-sommaire}>
<!-- Cette boucle "passe en revue" les articles à ne pas afficher en page d'accueil, grâce au critère {doublon} de la boucle suivante -->
</BOUCLE_article-no-sommaire>
<div class="derniers-articles">
<div id="articles_recents" class="en-tete"><:articles_recents:></div>
<BOUCLE_article(ARTICLES) {doublons} {id_rubrique!=#RUBRIQUE_AGENDA}{id_rubrique!=#RUBRIQUE_GALERIE}{par date} {inverse} {0,5}>
<div class="annonce">
[<div class="image">(#LOGO_ARTICLE||image_reduire{150})</div>]
<div class="detail">
[(#DATE|nom_jour)] [(#DATE|affdate)]<br>
<B_auteurs-article>
<:par_auteur:>
<BOUCLE_auteurs-article(AUTEURS) {id_article} {", "}>
<a href="#URL_AUTEUR">#NOM</a>
</BOUCLE_auteurs-article>
</B_auteurs-article>
</div>
<div class="chemin">
<BOUCLE_rubrique-mere(RUBRIQUES){id_rubrique}>
[<a HREF="#URL_RUBRIQUE">(#TITRE|supprimer_numero)</a>]
</BOUCLE_rubrique-mere>
</div>
[<div class="surtitre">(#SURTITRE)</div>]
[<a class="titre" href="#URL_ARTICLE" title="<:lire_suite_article:>">(#TITRE|supprimer_numero)</a>]
[<div class="soustitre">(#SOUSTITRE)</div>]
<div class="introduction">
[(#INTRODUCTION|typo_couleur)]
<br><br>
<a class="suite" href="#URL_ARTICLE"><:lire_suite_article:></a>
</div>
</div>
</BOUCLE_article>
</div>
</div>
Modification de \squelettes\inclusions\bloc-gauche.html
Pour afficher l’"étiquette" de l’article dans la colonne de gauche, nous allons ajouter quelques lignes au fichier bloc-gauche.html. par "étiquette", nous entendons le mot-clé du groupe squelette-no-sommaire utilisé par le rédacteur pour marquer l’article.
Ligne 4 du fichier, ajoutons les lignes :
<B_etiquette-no-sommaire>
<div class="stats">
<BOUCLE_etiquette-no-sommaire(MOTS) {id_article}{type=squelette_no-sommaire}>
[<div class="titre">(#TITRE)</div>]
</BOUCLE_etiquette-no-sommaire>
</div>
</B_etiquette-no-sommaire>
Les classes de bloc utilisés ici constituent un détournement des classes destinées à l’affichage des statistiques. Cette solution présente le mérite d’éviter une modification de la feuille de style, mais le résultat est graphiquement très contestable. Il est recommandé de créer dans le fichier styles.css une nouvelle classe spécifique à cette étiquette.
Retour sur le fichier article.html pour contextualiser l’inclusion du bloc de gauche
En l’état, cette modification est inopérante. En effet, nous utilisons dans la boucle MOT le critère id_article pour sélectionner le mot clé associé à l’article affiché. Or, comme nous travaillons sur un fichier inclus dans la page article.html, il faut passer id_article comme critère lors de l’inclusion.
Dans le fichier article.html, la ligne 50 devient :
<INCLURE{fond=bloc-gauche}{id_rubrique}{id_article}>
Mise en oeuvre du point de vue rédacteur
Une fois ces modifications apportées au squelette, il faut créer un nouveau groupe de mots-clés, nommé squelette_no-sommaire, et ajouter un ou plusieurs mot(s)-clé(s) dans ce groupe (par exemple : archive).
Pour masquer certains articles du sommaire, il suffira alors de leur associer un des mots-clés de ce groupe, auquel cas le mot-clé utilisé s’affichera dans la colonne de gauche lors de la visualisation de l’article par un visiteur.
Commentaires Forum fermé