Je reçois périodiquement une erreur à propos de $ node non défini dans l'un de mes fichiers de modèle. J'ai une condition if simple qui vérifie le type de noeud affiché. J'ai supposé que $ node était toujours disponible, ou je me trompe?
Je reçois périodiquement une erreur à propos de $ node non défini dans l'un de mes fichiers de modèle. J'ai une condition if simple qui vérifie le type de noeud affiché. J'ai supposé que $ node était toujours disponible, ou je me trompe?
Réponses:
$ node n'est pas nécessairement défini, à partir de l' API page.tpl.php Drupal 7 :
$ node: l'objet nœud, s'il existe un nœud chargé automatiquement associé à la page, et l'ID de nœud est le deuxième argument du chemin de la page (par exemple, nœud / 12345 et nœud / 12345 / révisions, mais pas commentaire / réponse / 12345).
Par défaut, seule la variable $ node est définie sur les pages de nœuds. Pour la première page (un flux), les pages de visualisation, les commentaires, etc., elles ne le sont pas.
Si vous voulez qu'une variable $ node soit définie sur une page qui n'est pas un nœud, alors vous devrez éditer / créer la fonction MYTHEME_preprocess_page (& $ variables) dans votre fichier theme template.php.
Pour éviter votre erreur, enveloppez la variable $ node dans un fichier modèle
if (isset($node)) {
// do something with $node
}
Ou supprimez-le complètement