it-swarm-es.com

Variables utilizadas en plantilla.php

¿Cómo debo saber qué variables y objetos se pueden usar directamente en el archivo template.php? Esto es lo que un archivo de plantilla.php creado por alguien más contiene:

function garland_separate_terms($node_taxonomy) {
  if ($node_taxonomy) {
    foreach ($node_taxonomy as $term) { 
      $links[$term->vid]['taxonomy_term_'. $term->tid] // …
      // …
    }
    // …
  }
}

¿Por qué puede usar el objeto de $ término directamente?

1
enjoylife

Bueno, primero mira lo que es esta función. ¿Es una función temática? Tiene un prefijo temático, pero no puedo encontrarlo en http://drupalcontrib.org/api/search/6/SEPARATE_TERMS , así que probablemente no sea.

Usted obtiene $node_taxonomy En argumento, lo que parece ser una lista de términos de taxonomía, por lo que tiene acceso a aquellos.

Todo lo demás no está disponible para usted, ya que no recibe esas variables, solo la que está en el argumento. (Bueno, bueno, puedes acceder a las variables globales, pero no quiero confundirte)

¡Puede usar $term ¡Porque él sabe que $node_taxonomy Es una matriz de términos, y los bucean con ellos con foreach.

Si en duda la próxima vez use el módulo Devel y agregue una línea dsm($node_taxonomy) para ver cómo se acumula esa variable.

0
snufkin

Respuesta simple: la línea foreach ($node_taxonomy AS $term) es de donde proviene la variable de $ término. Ese es un phpism básico que trata a $ node_taxonomio como una matriz, y pone el elemento actual de esa matriz en la variable de $ término, ya que itera sobre la matriz.

Como señaló SNUFKIN, $ Node_taxonomy es la única variable que está recibiendo acceso automáticamente.

2
Eaton

Como ya está reportado por Eaton, el archivo template.php contiene funciones que se llaman de los archivos de plantilla utilizados por los temas.
garland_separate_terms() es, entonces, no es una función presente en el archivo utilizado por Garland Drupal viene con.

página.tpl.php tiene acceso a la variable $node, que contiene el objeto de nodo cuando se visualiza la página es una página de nodo; también node.tpl.php tiene acceso a la variable $node. Esos son algunos de los archivos de plantillas que pueden invocar esa función, y que tienen acceso a un objeto de nodo, desde el cual es posible acceder a la lista de términos de taxonomía asociados con el nodo.

1
kiamlaluno