Des brèves dans les sous-rubriques grâce à un mot-clé

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>

Notes

[1En fait d’une rubrique, il s’agit plus exactement d’un secteur, c’est-à-dire une rubrique dont id_parent=0.

Il y a beaucoup de variations possibles : ne vous restreignez pas strictement à l’exemple !

Discussion

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"
    "
    >
    [

    (#TITRE)


    ]

    — -

    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

  • 1
    madrilene

    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

    • « 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 ».

      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 :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom