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?
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?
Risposte:
$ node non è necessariamente definito, dall'API Drupal 7 di page.tpl.php :
$ 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).
Per impostazione predefinita, solo nelle pagine del nodo è definita la variabile $ node. Per la prima pagina (un feed), visualizzare le pagine, i 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