Une contrib qui ne sert pas à grand chose, donc indispensable pour un bon teasing.
Prenez un site généalogique où des articles contiennent un nom de personne dans le sur-titre — par exemple — avec la forme « Nom, Prénom ». Je prendrais, pour ma part, un site botanique où mes espèces végétales sont aussi dénoncées — en sous-titre, pour changer — par leur nom latin sous la forme « Genre espèce » (sans virgule).
Une brève liée à des articles
Ma viorne obier (ou viorne « boule de neige ») a droit à un article :
- titre : viorne obier [nom français de l’espèce]
- sous-titre : Viburnum opulus [nom international de l’espèce]
- mot-clé du groupe « famille » : Caprifoliacées
- …
Le groupe « famille » re-groupe donc plusieurs espèces (articles). Le problème c’est que les familles comprennent plusieurs genres ou si vous préférez, les espèces sont aussi regroupées en genre. La chance, c’est que le nom international des espèces — en latin — est stable, contrairement au nom vernaculaire (en français ici).
C’est donc cet ensemble « nom prénom1 prénom2 » ou plutôt « Genre espèce » qui va me servir de lien entre article, brève et mot-clé. Plus précisément, le « nom » donc le « genre ». Celui-ci est toujours le premier terme du champ « sous-titre ».
Je construis donc un squelette breve.html (ou breve-XX.html qui va dans mon secteur qui va bien) avec cette boucle :
[(#REM) Articles dans la meme rubrique : donc plantes de meme genre ; espace apres balise, dans critere, pour eviter rosa<=rosanema (voir explication plus loin)
]
<BOUCLE_genre(ARTICLES) {id_rubrique=1} {soustitre==^#TITRE } {par soustitre} {"<br>"}>
<a href=#URL_ARTICLE title="(#SOUSTITRE|textebrut|entites_html)"]>
[(#TITRE)]
</a>
[ ((#SOUSTITRE))]
</BOUCLE_genre>
J’obtiens ainsi la liste des articles donc le sous-titre commence par le nom de ma brève. Ici, si je crée une brève Viburnum ; j’obtiens tous les articles dont le sous-titre commence par « Viburnum », en l’occurrence (et grâce à {soustitre==^#TITRE}
) :
- viorne bodnantense (Viburnum bodnantense)
- viorne mancienne (Viburnum lantana)
- viorne obier (Viburnum opulus)
Un petit plus : les brèves de même niveau
Puisqu’on a Famille —> Genre —> espèce, je peux aller plus loin en affichant la liste des autres genres de la même famille. Il s’agit d’imiter la hiérarchie des rubriques, des rubriques sœurs, etc.
Pour afficher mes Genres frères, une autre boucle :
<BOUCLE_MOT_FAMILLE(MOTS) {id_breve} {id_groupe=21}>
<B_breves_rubrique>
<h1><:meme_rubrique:></h1>
<div>#_MOT_FAMILLE:TITRE : d'autres genres
</div>
<BOUCLE_breves_rubrique(BREVES) {id_rubrique} {exclus} {id_mot} {par titre}>
<a href="#URL_BREVE">#TITRE</a>
</BOUCLE_breves_rubrique>
</B_breves_rubrique></BOUCLE_MOT_FAMILLE>
Tout les articles « végétaux » sont dans la même rubrique ; le mot-clé indiquant la famille est dans le groupe numéro 21. J’attribue aussi à ma brève, outre un nom de Genre à son champ titre, le mot-clé correspondant à sa famille (sa rubrique mère si l’on veut). Ce mot-clé est utilisé aussi par les articles. Donc, par le lien du mot-clé unique je récupère les brèves de même famille.
Un article lié à une brève
Si ma brève recense tous les articles de même « Nom » de genre, il faudrait aussi que l’article signale automatiquement l’éventuelle brève qui recense les autres végétaux de même genre. Voici :
<B_breves_rubrique>
[(#REM) recuperer le genre_breve <= alphabetiquement au genre_article
donc au nom latin de l'espece
]
<BOUCLE_breves_rubrique(BREVES) {id_rubrique=12} {titre<=#SOUSTITRE}
{par titre} {n-1,n}>
[
(#REM) verifie que le genre_breve recense bien l'article courant : le
sous-titre de l'article contient alors le titre de la breve ;
espace apres BALISE pour resoudre cas : TITRExxx = soustitre : muscari/muscaria
et ^apres == pour resoudre cas : xxTITRE = soustitre : carpinus/pinus
]
<BOUCLE_genre(ARTICLES) {id_rubrique=1} {soustitre==^#TITRE }
{id_article=#ID_ARTICLE}>
<div>dans ce genre <a
href="#URL_BREVE">#_breves_rubrique:TITRE</a></div>
[
(#REM) affiche les especes du meme genre si donc l'espece courante est
dans la liste ; espace apres balise, dans critere, pour eviter
rosa<=rosanema
]
<BOUCLE_genre_suite(ARTICLES) {id_rubrique=1}
{soustitre==^#_breves_rubrique:TITRE } {par titre} {"<br>"}>
[(#EXPOSE{<strong>,<a href='#URL_ARTICLE'
title='[(#SOUSTITRE|textebrut|entites_html)]'>})][<sub>°</sub>
(#TITRE)][(#EXPOSE{</strong>,</a>})][ ((#SOUSTITRE))]
</BOUCLE_genre_suite></BOUCLE_genre>
</BOUCLE_breves_rubrique>
</B_breves_rubrique>
Ici, je récupère la brève dont le nom (#TITRE) est immédiatement inférieur au nom en latin de ma plante (le nom international) avec :
{titre<=#SOUSTITRE} {par titre} {n-1,n}
. Ainsi, Viburnum est alphabétiquement avant Viburnum opulus ET le titre Viburnum est unique.
Malheureusement, si je ne fais pas un article pour chaque genre, ce sera la brève pour le genre Valerianelle, par exemple qui apparaitrait. Effectivement, je n’ai de fiche (brève) « genre » que lorsque plusieurs espèces en sont recensées. D’où un test supplémentaire avec <BOUCLE_genre(ARTICLES)>
qui vérifie que l’article en cours a bien un sous titre compatible avec le titre de la brève « genre ». Sinon, rien ne s’affiche. Dans le cas de test positif, je liste les articles rattachés à la même brève (les espèces de même genre).
Pour compliquer inutilement, j’ai mis les articles et les brèves de mon exemple dans des secteurs différents, mais bon.
Pourquoi faire simple quand on peut faire pire. Il y a deux astuces pour ne pas avoir des articles listés inopinément car le début de leur sous-titre correspond au titre de la brève « genre » (exemple avec Muscaria/Muscari) ou qu’inversement le titre de la brève apparaisse dans le contenu du sous-titre de l’article (exemple : Rosa/Anemone nemorosa). Ainsi, il y a un espace mis après la balise de critère : {soustitre==^#_breves_rubrique:TITRE }
de la boucle BOUCLE_genre_suite. Il y a aussi un autre espace après balise, pour #TITRE
dans {soustitre==^#TITRE }
de la boucle BOUCLE_genre.
Le mot-clé commun aux brèves et aux articles
J’ai un seul squelette mot-clé, sans <inclure>
. Je souhaite que pour le type 21 (le groupe des « familles ») un encart affiche la liste des genres si bien sûr des brèves « genres » existent. Ce qui n’est pas le cas dans toutes les familles (ici pour les caprifoliacées). Voilà donc une dernière boucle plus commune :
[(#REM)Breves liees au mot-cle ("genres" par famille (mots)]
<B_breves>
<BOUCLE_genre(BREVES) {id_mot} {id_groupe=21} {0,1}>
[(#REM)si plusieurs especes de ce genre dans la base]
Quelques genres</BOUCLE_genre></B_genre><:breves:><//B_genre>
<BOUCLE_breves(BREVES) {id_mot} {par titre}>
<a href="#URL_BREVE">#TITRE</a>
</BOUCLE_breves>
</B_breves>
Si j’ai au moins une brève à laquelle le mot-clé courant est attribué alors je crée mon encart. Puis, je liste mes genres.
Conclusion
Une méthode un peu tarabiscotée pour éviter des rubriques « familles », des sous-rubriques « genres » et des articles « espèces ». Il me semble que celà aurait été trop lourd à gérer (en terme de navigation interne) et surtout j’évite de reprendre les 700 articles d’une rubrique pour les dispatcher dans de nouvelles sous-rubriques.
Les déclinaisons peuvent être multipliées : par exemple, on peut utiliser le champ descriptif des mots-clés soit pour faire des sous-groupes, soit pour créer des intergroupes comme les « chef-lieu » trouvés dans le champ descriptif des villes classées par groupe « départements » (groupes « Ain », « Aisne », …).
On pourrait aussi utiliser des mots-clés qui recensent d’autres mots-clés, etc.
Discussions par date d’activité
2 discussions
Salut !
Il est désormais possible d’affecter des mots-clés aux mots-clés de Spip.
Voir : le plugin « Momo » (diminutif de Mots sur mots) sur plugin.spip.net.
ah ouais, ça c’est bien. J’va tester ça tantôt.
Claude
N’hésite pas à commenter (ici ou sur la Zone).
Répondre à ce message
Bonjour et meilleurs voeux pour cette nouvelle année
Ta contrib m’intéresse parce que j’ai une rubrique « en savoir plus » . je m’appuie sur des brèves pour les compléments d’infos. Ma question est la suivante : comment faire apparaître la liste du ou des compléments d’info dans mon article ?(actuellemnt je passe par le PS de l’article et je fait un lien vers la brève qui contient le complément d’info)
Par avance, merci
albo
avec la contrib tu peux remplacer le lien vers la brève par les champs de cette brève directement. Si j’ai bien compris la question ?
Sinon, maintenant tu peux utiliser la 1.9.1 et les modèles (vois la doc sur http://www.spip.net/fr_article3454.html)
claude
Répondre à ce message
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 : |