Contexte : ne pas afficher les blocs d’une page non autorisée (403) ou non trouvée (404)

En étudiant un peu les fonctionnalités d’aperçu de contenu, j’ai découvert un module très intéressant si vous utilisez le module « context » pour entourer vos contenus de divers blocs.

Le problème était que si le contenu n’était pas publié, il n’était donc visible que par son auteur dans mon cas. En revanche, les internautes non authentifiés tombaient sur une page 403, mais tous les blocs associés au contenu, eux, s’affichaient toujours, comme si de rien n’était…

 

C’est là qu’intervient le module context_error, qui permet d’ajouter une condition à votre contexte, pour dire : « ce contexte ne s’applique que si la page n’est pas une erreur 403 ou 404 ».

Le module permet également de faire l’inverse, à savoir d’appliquer un contexte à une page 403 et/ou 404.

 

Le module est très basique, il se contente de récupérer les headers HTTP définis par Drupal en amont, et regarder le statut « 404 Not found » ou « 403 Forbidden », pour en déduire que c’est une page d’erreur ou non, et de quel type.