Pregunta

Me gustaría imprimir términos de la taxonomía (de field_tags campo) en un bloque en una página de vista de nodo (en un subtema Zen).

Así que lo que hice fue.

template.php

function michal_preprocess_block(&$vars, $hook) {
 if ( arg(0) == 'node' && is_numeric(arg(1)) ) {
   $node = node_load(arg(1));
   $vars['node'] = $node;
   $vars['node_field_tags'] = $node->field_tags;
   $vars['node_content_field_tags'] = $node->content['field_tags'];
 }
}

Sin embargo, cuando se intenta imprimir en block.tpl.php, ninguna de estas 2 variables salidas términos de la taxonomía del campo.

print render($node_content_field_tags);
print render($node_field_tags);

¿Sabes una función de Drupal para hacer un campo términos de la taxonomía?


EDITAR 13.01.2011, doce y veintiuno

Por lo que comprendía (de este , este y que ) del proceso, el código debería ser más / menos así

 $node = node_load(arg(1));
 $node_view($node) // Generates an array for rendering a node, see http://api.drupal.org/api/drupal/modules--node--node.module/function/node_view/7
 $vars['node'] = $node;

y luego en la block.tpl.php:

render($node->content['field_tags']);

El node- $> contenido es nula, sin embargo.

¿Sabes lo que me falta?

¿Fue útil?

Solución 4

Me he encontrado la solución que estaba buscando:

mytheme_preprocess_block () en template.php *

$node_content = node_view(node_load(arg(1)));
$vars['node_content'] = $node_content;

.

block.tpl.php

print render($node_content['field_tags']);

Otros consejos

En realidad, lo que puede ser más fácil es el siguiente código en su preproceso:

if ($node = menu_get_object()) {
  $vars['node_field_tags'] = field_view_field('node', $node, 'field_tags', 'full');
}

Y a continuación, haga lo siguiente en su plantilla:

print render($node_field_tags);

En primer lugar, debe comprobar que la función de preproceso se está ejecutando y que la memoria caché no está jugando con usted. Posteriormente, se podría tratar de inspeccionar las variables. No creo que se puede utilizar en la render() $node->field_tags y no estoy muy seguro de $node->content['field_tags'] tampoco.

La inspección de las variables ayudará a descubrirlo, devel funciona bien para Drupal 7 y se puede ayudar allí.

También puede revisar la CCK Bloques módulo . Se crea un bloque de barra lateral que muestra junto a cada nodo (si tiene contenido), y añade que el bloque de la lista de destinos de representación para cada campo, al igual que 'reclamo' y 'completa' y 'RSS'.

No puede tener todo el control que está buscando, pero podría ser un lugar bueno para comenzar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top