$ node est-il toujours disponible dans page.tpl.php


12

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 pourrais vouloir signaler cela comme une réponse afin que d'autres puissent utiliser cette question :)
Bart

Réponses:


12

$ 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).


8

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


$ node peut être une variable définie sur page.tpl.php
Bart

1
par défaut, oui, si c'est un NODE. Si ce n'est pas le cas, alors ce n'est pas défini. Obtenez vos faits directement et ne votez pas pour une réponse valide.
iStryker

Instruction "La variable $ node définit uniquement la page $ node." n'est pas valide.
Bart
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.