Dans le squelette mot par défaut, le menu de navigation affiche tous les mots-clés du même groupe. Cela peut poser deux problèmes. Le premier, une énumération trop longue, qu’on peut résoudre par un critère limitant le nombre d’occurences affichées. Le deuxième est l’affichage de mots-clés auquels aucun article (ou rubrique, site, etc.) n’est lié. Celà arrive lorsque l’on saisit toute une liste de mots-clés au début de la construction d’un site. Donc voici le principe qui permet de n’afficher que les mots-clés ayant au moins un article lié.
la boucle expliquée :
Menu de navigation mots-clés : les autres mots-clés du meme groupe : rajout : exclusion des mots non attribues
Le squelette débute une boucle pour placer du « code HTML optionnel avant » :
<B_mots_freres>
<h2 class="structure"><:mots_clefs_meme_groupe:></h2>
<div class="menu">
<div class="divers">
<div class="menu-titre">
Le squelette affiche le nom du groupe de mots-clés comme titre du menu dans le « code HTML optionnel avant » :
<BOUCLE_groupe(GROUPES_MOTS) {id_groupe} {doublons}>
#TITRE
</BOUCLE_groupe>
</div>
<ul class="menu-liste">
Le squelette débute une boucle (MOTS) : la liste triée des mots du groupe :
<BOUCLE_mots_freres(MOTS) {type} {doublons} {par titre}>
Rajout_1 : je sélectionne les articles auquels des mots du groupe [{type}
ci-dessus] sont attribués, mais je n’affiche rien :
<BOUCLE_existe(ARTICLES) {id_mot}>
</BOUCLE_existe>
Retour à l’affichage des données par défaut pour la boucle (MOTS) ici en « code HTML optionnel après » de ma boucle (ARTICLES), donc pour les mots ayant au moins un article attribué :
<li class="menu-item">
<a href="#URL_MOT" title="[(#DESCRIPTIF|textebrut|entites_html)]">
#DESCRIPTIF
</a></li>
Rajout_2 : je termine ma boucle (ARTICLES) d’après le « code HTML optionnel » :
</B_existe>
Le squelette clos enfin la boucle « (MOTS) dans ce groupe » :
</BOUCLE_mots_freres>
La totale qui peut remplacer la boucle « Menu de navigation mots-cles » de mot-dist.html :
<!-- Menu de navigation mots-cles : les autres mots cles du meme groupe (avec rajout d'exclusion des mots non attribues -->
<B_mots_freres>
<h2 class="structure"><:mots_clefs_meme_groupe:></h2>
<div class="menu">
<div class="divers">
<div class="menu-titre">
<BOUCLE_groupe(GROUPES_MOTS) {id_groupe} {doublons}>[(#TITRE|supprimer_numero)]
</BOUCLE_groupe>
</div>
<ul class="menu-liste">
<BOUCLE_mots_freres(MOTS) {type} {doublons} {par titre}>
<BOUCLE_existe(ARTICLES) {id_mot}>
</BOUCLE_existe>
<li class="menu-item">
<a href="#URL_MOT" title="[(#DESCRIPTIF|textebrut|entites_html)]">#DESCRIPTIF</a></li>
</B_existe>
</BOUCLE_mots_freres>
</ul>
</div>
</div>
Maintenant que le principe est connu on peut le décliner
Voici un cas avec des rubriques :
Vous avez des succursales dont vous voulez une présentation par départements (provinces, cantons, comtés, régions, districts...). Chaque succursale bénéficie d’un rubrique mais un département peut avoir plusieurs succursales et un autre aucune. Votre structure est bougeante, donc vous avez saisi un groupe de mots-clés recensant tous vos territoires potentiels. Seulement vous ne voulez pas afficher la liste des territoires vides, ça fait mauvais genre si ce n’est « pauvre ». La boucle expliquée ; n’hésitez pas à la nettoyer pour l’utiliser. Celà évitera l’affichage de caractères inutiles dans votre page.
<dt>
<B_departements>#PUCE groupes par départements
<BOUCLE_departements(RUBRIQUES) {racine} {id_groupe=1}>
<dd><B_liste_departements><br>
<BOUCLE_liste_departements(MOTS) {id_groupe=1} {par titre} {unique}>
<!--rajout debut-->
<BOUCLE_existe_departements(RUBRIQUES) {id_mot}>
</BOUCLE_existe_departements>
<!--suite boucle normale-->
[<br>(#TITRE)<br>]
<!--suite et fin rajout-->
</B_existe_departements>
<!--retour boucle normale-->
<B_groupes_departements>
<BOUCLE_groupes_departements(RUBRIQUES) {id_mot}>
<a href=#URL_RUBRIQUE>
<div class ="chapo">#TITRE</div>
[<div class="texte">(#DESCRIPTIF)</div>]
</a>
</BOUCLE_groupes_departements>
</BOUCLE_liste_departements>
</BOUCLE_departements>
<dt>
Un autre cas légèrement modifié, toujours avec des rubriques :
Vous avez une radio. Vous avez divisé arbitrairement votre semaine en 7 jours pour en faire autant de groupes de mots-clés. Chacun est divisé de 1/2 h en 1/2 h (8 h 30, 9 h 00, 9 h 30... 23 h 30 etc. [1]). Malheureusement, une émission qui démarre à 18 h 00 ne se remplace pas systématiquement par une autre à 18 h 30 et certaines émissions peuvent se partager le même créneau à des semaines différentes. Voici une adaptation — à habiller— de la boucle précédente ; ici pour le dimanche (id_groupe=7) qui termine cette semaine (mais elle peut terminer le mercredi ou le mardi à votre choix) :
<B_dimanche>
#PUCE dimanche
<BOUCLE_dimanche(RUBRIQUES) {racine} {id_groupe=7}>
<BOUCLE_liste_dimanche(MOTS) {id_groupe=7} {par titre} {unique}>
<BOUCLE_groupes_dimanche(RUBRIQUES) {id_mot}>
<a href=#URL_RUBRIQUE><div>#TITRE</div></a>
</BOUCLE_groupes_dimanche>
</BOUCLE_liste_dimanche><br></B_liste_dimanche>
</BOUCLE_dimanche>
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |