Domanda

Mi piacerebbe stampare termini di tassonomia (dal campo field_tags) in un blocco su una pagina di visualizzazione nodo (in un sottotema Zen).

Quindi quello che ho fatto è stato.

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'];
 }
}

Tuttavia, quando provo a stampare in block.tpl.php, nessuno di questi 2 variabili uscite termini di tassonomia dal campo.

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

Sai una funzione di Drupal per rendere un campo termini di tassonomia?


EDIT 13.01.2011, 00:21

Per quanto ho capito (da questo , questo e che ) il processo il codice dovrebbe guardare più / meno così

 $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;

e poi in block.tpl.php:

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

Il $ node-> contenuto è nullo, però.

Sai cosa mi manca?

È stato utile?

Soluzione 4

ho incontrato la soluzione che cercavo:

mytheme_preprocess_block () in template.php *

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

.

block.tpl.php

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

Altri suggerimenti

In realtà ciò che può essere più facile è il seguente codice nel tuo preprocess:

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

E poi utilizzare il seguente nel modello:

print render($node_field_tags);

Prima di tutto, si dovrebbe verificare che la funzione di pre-elaborazione viene eseguito e che la cache non sta giocando con te. Poi si potrebbe tentare di controllare le variabili. Non credo che si può usare render() sul $node->field_tags e io non sono troppo sicuro di $node->content['field_tags'] sia.

Controllo delle variabili vi aiuterà a capirlo, devel funziona bene per Drupal 7 e può aiutare a lì.

Si potrebbe anche controllare le CCK blocchi modulo . Si crea un blocco sidebar che mostra accanto a ogni nodo (se ha contenuto), e aggiunge che blocco alla lista delle destinazioni di rendering per ogni campo, proprio come 'occhiolino' e 'piena' e 'RSS'.

Esso non può avere tutto il controllo che stai cercando, ma potrebbe essere un buon posto per cominciare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top