Comment vérifier, en D7, si la page en cours renvoie une erreur 404 à partir d'un module / modèle?
http-status-codes
Andrey Rudenko
la source
la source
Réponses:
Dans Drupal 7, vous pouvez utiliser
drupal_get_http_header()
.Dans le fichier template.php, utilisez ce code.
Dans Drupal 8, vous pouvez utiliser le code suivant dans un hook.
la source
if ($status == '403 Forbidden') { /* ... do stuff ... */ }
system.404
itinéraire ne fonctionne pas si vous avez spécifié une page de noeud comme page 404 dans Configuration> Système> Paramètres de site de base . Voir la réponse de @Gervase pour une solution qui fonctionne lorsque vous avez ou non une page 404 personnalisée spécifiée.Drupal 8.2.x:
Malheureusement, drupal_get_http_header ("status") ne fonctionne plus.
Essayer:
Il y a une discussion à ce sujet ici: https://www.drupal.org/node/1969270
la source
getStatusCode
fonction.C'est le moyen le plus simple de détecter l'accès refusé (403) et la page non trouvée (404) dans Drupal 7.
la source
$router_item
ne sera pas vide si lasite_404
variable est définie sur un chemin de nœud, donc des vérifications supplémentaires seraient nécessaires.