it-swarm-es.com

Detectar los términos de taxonomía de un nodo desde dentro de un archivo de plantilla

Tengo un sitio Drupal 7 con un tipo de contenido de evento.

Tengo una taxonomía llamada "tipos de eventos" que tiene 5 opciones (Fiesta, Conferencia, Reunión, etc.)

Tengo una plantilla llamada node - event.tpl.php para diseñar los nodos de eventos independientes.

¿Cómo puedo detectar qué términos de taxonomía se aplican a un nodo de evento determinado desde el archivo de plantilla? Necesito cambiar parte de la lógica de presentación según el término de taxonomía asociado con el evento.

No estoy usando la taxonomía en la URL, así que necesito encontrar otro método para detectar el tipo de evento. Devel no parece mostrarme ningún valor de términos de taxonomía con los que trabajar.

2
Randy Burgess

Como se mencionó en la primera respuesta, debe usar una función de preproceso, pero probablemente para la plantilla de nodo.

Para la plantilla node.tpl.php (Y todas las derivadas) la función se define como

MYTHEME_preprocess_node(&$vars) {
}

y debería aparecer el archivo template.php de su tema.

Debe borrar la caché de Drupal para restablecer el registro del tema de modo que Drupal reconozca y ejecute esta función.

El argumento $vars De la función es una matriz que contiene todas las variables de plantilla que posteriormente aparecen en el archivo tpl ($vars['foo'] Se aprovechará como <?php print $foo; ?> En el archivo tpl).

Esto también incluye el objeto nativo $node, Que le permitirá inspeccionar $node->taxonomy Y crear las variables subsiguientes en consecuencia. Puede aprovecharlos en el archivo tpl.

La mejor manera de inspeccionar y descubrir los componentes de $vars Es usar la función dpm() del módulo Devel, que imprime muy bien cualquier variable en el cuadro de mensajes del tema.

Entonces, habilite devel, cree lo siguiente en template.php, Borre la caché, actualice la visualización de un nodo y trabaje desde allí.

MYTHEME_preprocess_node(&$vars) {
  dpm($vars);
}

También puede estar interesado en mi sesión en Drupal funciones de preproceso de Drupalcon Copenhagen o la página del manual de Drupal .

2
c4rl