Cómo imprimir la taxonomía nodo en un bloque?
-
10-10-2019 - |
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?
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.