2016-05-30 5 views
0

Wie extrahiere ich ein bestimmtes Feld für die Anzeige auf einer Taxonomieseite?Drupal 7: Wie extrahiere ich ein spezifisches Feld in einer Taxonomieseite?

Ich habe einen benutzerdefinierten Inhaltstyp namens "Film" und jeder Film hat ein Term Reference-Feld namens "Casting". Wie erwartet kann ich auf ein "Casting" (Tag) klicken, es bringt mir eine Seite, auf der alle Filme aufgelistet sind, wo auch immer dieses Tag steht. Zum Beispiel, wenn ich auf "Kate Winslet" aus dem Film Titanic klicke, lande ich auf einer Seite http://localhost/mysite/tags/kate-winslet, wo andere Filme von Kate Winslet aufgeführt sind. Bis zu diesem Punkt ist alles in Ordnung.

Ich will nicht Drupal wie Format in einem eigenen Display nur Titel und Körper in und zeigen Standardfelder ziehen. Eher will ich es, damit ich aus jedem Film, Jahr der Veröffentlichung und natürlich dem Titel und der getrimmten Version des Körpers ein Foto zeigen kann. Ich möchte nur den Inhalt dieser Seite anpassen, so dass ich die Kontrolle über Was anzeigen und wo einen bestimmten Feldwert zeigen kann.

Das ist, was ich versucht:

I kloniert und setzen page.tpl.php in Vorlagenordner meines Themas. Umbenannt es als page--vocabulary--tags.tpl.php. Dann nahm ich die folgende Codezeile (<?php print render($page['content']);?>) aus meiner page--vocabulary--tags.tpl.php heraus. Es sollte geprüft werden, ob auf die überschriebene Vorlage tatsächlich von Drupal zugegriffen wird oder nicht. Es tut!

Aber ich bin nicht in der Lage, Felder wie field_photo oder field_release_date von $page['content] zu extrahieren. Um eine Vorstellung über definierte Variablen und ihre Platzierung zu bekommen, habe ich die folgende Codezeile verwendet: <pre><?php /*print var_export(get_defined_vars(), TRUE);*/ ?></pre>. Aber auch von dort konnte ich kein bestimmtes Feld wie oben erwähnt herausziehen. Die Felder sehen irgendwo innerhalb von $page['content']['system_main']['nodes'] aus, aber ich weiß nicht, wie ich direkt zu einem bestimmten Feld komme.

Ich habe auch ein template.php mit folgenden Vorprozess Hookfunktion:

<?php 
 
function introduction_preprocess_page(&$vars) { 
 
    if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) { 
 
    $term = taxonomy_term_load(arg(2)); 
 
    $vars['theme_hook_suggestions'][] = 'page__vocabulary__' . $term->vocabulary_machine_name; 
 
    $vars['content'] = $vars['page']['content']['system_main']['nodes']; 
 
    } 
 
} 
 
?>

Sowohl <?php print render($content) ?> und <?php print render($page['content']) ?> Druck des gleiche Ergebnis, aber ich mag so etwas wie <?php render($content['photo_field'])?>, die ich nicht in der Lage bin zu .

Es tut mir leid, dass ich das zu lange gemacht habe. Ich bin gerade in Drupal getreten. Ich wollte also sicherstellen, dass das, was ich zu erklären versuche, exakt dem entspricht, was ich erreichen möchte.

Antwort

Verwandte Themen