Celles et ceux qui ont déjà mis le nez dans la structure de Spip se sont rendus compte qu’on ne pouvait pas attribuer des brèves à une sous-rubrique comme on le ferait avec un article. On peut néanmoins « contourner » cette caractéristique de Spip avec l’astuce ci-dessous.
Le principe est d’attribuer à chaque sous-rubrique qui doit accueillir des brèves, un mot-clé identique à son titre.
Utilisation ponctuelle
Exemple d’une rubrique « Presse » [1] :
- sous-rubrique « Presse quotidienne »
- sous-rubrique « Presse hebdomadaire »
- sous-rubrique « Presse mensuelle »
On créé le groupe de mots-clés « arborescence ». Puis on créé dans ce groupe trois mot-clés : presse quotidienne, presse hebdomadaire, presse mensuelle.
Dans le squelette de la sous-rubrique « Presse quotidienne », on appelle les brèves ad hoc par la boucle :
<B_breves_sous_rubrique>
Les brèves de la presse quotidienne :<br>
<BOUCLE_breves_sous_rubrique(BREVES){id_secteur}{titre_mot=presse quotidienne}{par date}{inverse}{"<br>"}>
[<div>(#TITRE)</div><br>]
[<div>(#TEXTE)</div>]
</BOUCLE_breves_sous_rubrique>
</B_breves_sous_rubrique>
Absence de brève dans cette sous-rubrique
<//B_breves_sous_rubrique>
Toutes les brèves sont éditées dans l’interface de rédaction dans le même secteur. On créé autant de mots-clés que de sous-rubriques.
Utilisation systématique
Pour ne pas multiplier inutilement les squelettes, on peut systématiser la recherche des brèves liées à une sous-rubrique par mot-clé, en utilisant une boucle supplémentaire MOTS.
<!-- La boucle MOTS recherche le mot-clé [unique] du groupe arborescence -->
<BOUCLE_mot_sous_rubrique(MOTS){id_rubrique}{type=arborescence}>
<!-- id_mot correspondant à une sous-rubrique et à une seule, sont recherchées les brèves qui lui sont affectées -->
<B_breves_sous_rubrique>
<BOUCLE_breves_sous_rubrique(BREVES){id_mot}{par date}{inverse}{"<br>"}>
[<div>(#TITRE)</div><br>]
[<div>(#TEXTE)</div>]
</BOUCLE_breves_sous_rubrique>
</B_breves_sous_rubrique>
<!-- Si la sous-rubrique n'a pas de mot-clé du groupe « arborescence », elle n'a donc pas de brèves spécifiques : sont alors recherchées les brèves du secteur -->
<BOUCLE_breves_par_defaut(BREVES){id_secteur}{par date}{inverse}{"<br>"}>
[<div>(#TITRE)</div><br>]
[<div>(#TEXTE)</div>]
</BOUCLE_breves_par_defaut>
<//B_breves_sous_rubrique>
</BOUCLE_mot_sous_rubrique>
Discussions par date d’activité
4 discussions
EXCELLENT ! Voilà un code qui fonctionne parfaitement sous spip 2.1.10 et qui nous libère de ce boulet lié à la gestion des brèves !!! Merci !!
Répondre à ce message
Bonjour.
Je cherchais désespérément un moyen pour associer des brèves à une sous-rubrique et c’est avec bonheur que je suis tombé sur cette contribution.
J’ai tout suivi à la lettre, copié précisément le titre des sous-rubriques pour créer les mots-clés, intégré exactement le code (à part que j’ai intitulé le groupe de mots-clés « Dossiers » pour faciliter la vie des rédacteurs, et j’ai bien entendu modifié le type). Mais rien à faire : Spip n’affiche rien dans les sous-rubriques.
J’ai des accents dans les titres de sous-rubriques, cela peut-il interférer ?
Voici le code adapté. J’ai plusieurs brèves de test en local. Quelqu’un a-t-il une idée ?
— -
#TITRE
<BOUCLE_breves_sous_rubrique(BREVES)id_motpar dateinverse"
">
[
]
— -
Merci d’avance pour le coup de pouce.
Répondre à ce message
A quand les modifs pour pouvoir signer les breves ?!
arthur
Répondre à ce message
Bonjour,
merci pour cette judicieuse contribution, en attendant que SPIP nous permettent d’insérer des brèves à n’importe quel niveau de l’arborescence ;))
Ce qui suit est peut etre un peu "brumeux" car je ne fais que verbaliser une intuition, et que je n’ai rien mis en oeuvre concrètement, mais je me demande dans quelle mesure pour garder au maximum une programmation ouverte avec des boucles récursives, il ne serait pas plus judicieux d’attribuer le numéro d’id de la rubrique qui la contient à la breve, via un mot clef dont le titre est donc ce numéro d’id.
En effet si on prend le cas, d’une page appelée par un lien qui fixe soit manuellement soit automatiquement un id_rubrique=x, on peut ainsi afficher tout de même le titre de la rubrique contenante (puisque la table alloue un et un seul id_rubrique à un titre de rub dans la table) et on peut avoir des boucles récurcives qui appelleront les eventuelles breves contenues dans des sous ou sous sous ....etc... rubriques apparues au fil du temps, sans avoir besoin de connaitre leur titre exact à l’avance ?
Bon ben je sais pas si j’ai été très claire, je vais essayer d mettre ca en oeuvre, mais si y en a qui ont suivi et qui on des remarques critiques à faire, hésitez pas :)))
Dernière remarque enfin, il faut selon moi corriger le texte de la contribution, :
il est écrit :
« Le principe est d’attribuer à chaque sous-rubrique qui doit accueillir des brèves, un mot-clé identique à son titre. »
à corriger en :
""Le principe est "de faire correspondre" à chaque sous-rubrique qui devrait normalement accueillir des brèves, un mot-clé identique à son titre et de continuer à les stocker dans un secteur"
car les breves ne sont pas stockées dans les sous rubriques comme le texte peut le laisser penser
Je comprends d’autant mieux ton intuition que je me suis égaré dans cette voie là initialement. Comme le système repose sur l’attribution d’un mot-clé, les rédacteurs doivent avoir un choix simple à faire. En reprenant le titre exact de la rubrique, le rédacteur a le sentiment d’une organisation « physique » : j’attribue le mot-clé « dossier bleu » à une brève qui apparaîtra effectivement dans le « dossier bleu ». C’est un peu moins abscons que « id_rubrique=5 » ou « 5 » tout court.
J’utilises ici les critères titre_mot= et type= pour être plus explicite. Je conseillerais dans la pratique l’utilisation des critères id_groupe et id_mot.
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 : |