Afficher toutes les rubriques d’un site SPIP en utilisant le pipeline pre_boucle

mardi 18 octobre 2011

astuce / critères / boucles / pipeline

Il peut être utile d’afficher toutes les rubriques d’un site sous SPIP sans tenir compte de leur statut (pendant la période de développement par exemple). Par défaut, SPIP n’affiche pas les rubriques qui ne contiennent pas d’élément publié. Heureusement il est possible de contourner ce comportement à l’aide du critère {tout} (lire la documentation du critère tout sur spip.net).

Par contre, cela peut vite devenir fastidieux d’ajouter ce critère à toutes les boucles RUBRIQUES de vos squelettes (avec le risque d’en oublier involontairement par la suite). C’est là que la magie des pipelines de SPIP va nous sauver ;)

Pour régler le problème d’un coup pour toutes les boucles rubriques du site, on va utiliser le pipeline pre_boucle qui permet de modifier les requêtes SQL servant à générer les boucles (source programmer.spip.org).

Pour cela il suffit d’ajouter le code suivant dans le fichier config/mes_options.php de votre site (fichier à créer s’il n’existe pas).

<?php

if (!defined('_ECRIRE_INC_VERSION')) return;

$GLOBALS['spip_pipeline']['pre_boucle'] .= "|tout_partout";
// ajouter le critère {tout} aux boucles rubriques si pas de présence d'un critère {statut}
function tout_partout($boucle){
        if ($boucle->type_requete == 'rubriques' AND !isset($boucle->modificateur['criteres']['statut']))
                $boucle->modificateur['criteres']['statut'] = true;
        return $boucle;
}

?>

Vos commentaires

  • Alexandra

    Merci b_b pour cette astuce génial.
    Je t’adore :-)

    3 novembre 2011, 14:26

  • yffic

    J’suis pas une gonzesse, alors j’vais pas dire que j’t’adore, mais c’est tout comme

    23 novembre 2011, 18:40

  • Pat

    Et hop, pour les utilisateurs du Couteau Suisse, une nouvelle lame !
    Je profite pour étendre aux auteurs cette très bonne idée sur les rubriques ;-)

    => http://zone.spip.org/trac/spip-zone/changeset/54832

    Nom : Affichage public > Affiche tout
    Auteur : b_b (Merci !)
    Description : Il parfois utile d’afficher toutes les rubriques ou tous les auteurs de votre site sans tenir compte de leur statut (pendant la période de développement par exemple). Par défaut, SPIP n’affiche en public que les auteurs et les rubriques ayant au moins un élément publié.
    Bien qu’il soit possible de contourner ce comportement à l’aide du critère {tout}, cet outil automatise le processus et vous évite d’ajouter ce critère à toutes les boucles RUBRIQUES et/ou AUTEURS de vos squelettes.
    => Afficher en public tous les objets suivants : Rubriques / Auteurs

    24 novembre 2011, 01:59

  • Gaelle

    SYmpa ce site

    14 mars 2013, 10:31

  • Vincent

    Et moi je suis un mec, et je t’adore quand même !
    Merci pour cette super astuce !!

    1er octobre 2013, 22:31

Répondre à cet article

Qui êtes-vous ?
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.