Afficher toutes les rubriques d’un site SPIP en utilisant le pipeline pre_boucle
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
24 novembre 2011, 01:59
# Gaelle
SYmpa ce site
14 mars, 10:31