Frage

Ich mag Taxonomie-Begriffe drucken (von Feld field_tags) in einem Block auf einer Knoten Ansichtsseite (in einem Zen subtheme).

Also, was ich tat, war.

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

Allerdings, wenn ich versuche, es in block.tpl.php zu drucken, keiner dieser zwei Variablen gibt Taxonomie Begriffe aus dem Feld.

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

Haben Sie eine Drupal-Funktion kennen eine Taxonomie Begriffe Feld zu machen?


EDIT 13.01.2011, 00.21

Soweit ich verstanden (von diese , diese und dass ) der Prozess der Code aussehen sollte / weniger wie folgt aus

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

und dann im block.tpl.php:

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

Das $ node-> Inhalt ist null, aber.

Sie wissen, was ich bin fehlt?

War es hilfreich?

Lösung 4

Ich habe über die Lösung komme ich suchte:

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

Andere Tipps

Eigentlich, was einfacher sein kann, ist der folgende Code in Ihren Vorprozess:

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

Und dann die folgende in Ihrer Vorlage verwenden:

print render($node_field_tags);

Zunächst einmal sollten Sie prüfen, ob die Vorprozess Funktion ausgeführt wird und dass Cache spielt nicht mit. Dann könnten Sie versuchen, die Variablen zu inspizieren. Ich glaube nicht, Sie render() auf dem $node->field_tags verwenden können, und ich bin nicht sicher, ob $node->content['field_tags'] auch nicht.

die Variablen Inspizieren wird Ihnen helfen, herauszufinden, arbeitet Entwick gut für Drupal 7 und kann dort helfen.

Sie können beachten Sie auch die CCK Blocks Modul . Es schafft einen Sidebar-Block, dass Anzeigen neben jedem Knoten (wenn es hat Inhalt), und fügt hinzu, dass Block in der Liste der Rendering-Ziele für jedes Feld, genau wie ‚Teaser‘ und ‚voll‘ und ‚rss‘.

Es kann nicht die ganze Kontrolle haben Sie suchen, aber es könnte ein guter Anfang sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top