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;
}

?>