it-swarm.it

è $ node sempre disponibile in page.tpl.php

Ricevo periodicamente un errore per cui $ node non è definito in uno dei miei file modello. Ho una semplice condizione if che controlla il tipo di nodo visualizzato. Presumo che $ node sia sempre disponibile o sbaglio?

12
marksward

$ node non è necessariamente definito, da page.tpl.php Drupal 7 API :

$ node: l'oggetto nodo, se esiste un nodo caricato automaticamente associato alla pagina, e l'ID nodo è il secondo argomento nel percorso della pagina (ad esempio nodo/12345 e nodo/12345/revisioni, ma non commento/risposta/12345).

12
Bart

Per impostazione predefinita, solo nelle pagine del nodo è definita la variabile $ node. Per la prima pagina (un feed), visualizzare pagine, commenti, ecc., Non lo sono.

Se vuoi che una variabile $ node sia definita in una pagina che non sia un nodo, dovrai modificare/creare la funzione MYTHEME_preprocess_page (& $ variabili) nel tuo file template.php tema.

Per evitare il tuo errore, nel file modello avvolgi la variabile $ node in un file

if (isset($node)) {
  // do something with $node
}

O rimuoverlo completamente

8
iStryker