[Gelöst] Vollansicht abhängig von einem Taxonomy Term machen
Eingetragen von Taranis (137)
am 24.02.2013 - 21:26 Uhr in
am 24.02.2013 - 21:26 Uhr in
Hallo,
Ich muss die Vollansicht-Ausgabe (node.tpl.php) abhängig vom jeweiligen Begriff eines Vokabulars gestalten.
Das heisst:
Wenn Node mit Term X erstellt wurde dann muss die Vollansicht anders gestaltet werden, als bei der Node mit Term Y.
Ich hoffe das war einigermassen verständlich.
Gibt es eine Möglichkeit mit Template-Suggestions?
Oder eine andere Möglichkeit?
Danke im Voraus
- Anmelden oder Registrieren um Kommentare zu schreiben
Du könntest das Ganze einfach
am 25.02.2013 - 07:49 Uhr
Du könntest das Ganze einfach über das [do:panels] Modul "zurecht klicken" - Panels bietet dir die Möglichkeit Bedingungen für die Anzeige von Seiten zu setzen. In deinem Falle würdest du pro Term-Id eine Panel-Variante erstellen und die Inhalte entsprechend ausrichten.
Ein anderer Weg geht dann doch schon eher in Richtung PHP und das Überschreiben / Erweitern des node.tpl.php über den template_preprocess_node. Hier würdest du dann je nach Term-Id die gewünschten Änderungen vornehmen.
Wie umfangreich sehen denn deine Änderung pro Term-Id aus ?
SteffenR
Es geht um ca. 40 verschiedene Term Ids
am 25.02.2013 - 09:28 Uhr
Hallo Steffen,
Erstmal vielen Dank für deine schnelle Antwort.
Das Szenario:
Drupal7 Verwaltung von Regionen. Jede Region hat eine eigene Term Id.
Mir ist grundsätzlich alles klar.
Nur muss ich an die Vollansicht für jede einzelne Term Id ran, damit jedesmal wenn der Nutzer einen Artikel aus einer bestimmten Region zur Vollansicht anklickt, müssen spezielle Inhalte oder Informationen erscheinen.
Über die Node.tpl.php hatte ich es bereits versucht, doch da bin ich nicht weiter gekommen.
Wobei ich diese Variante, der Panels-Variante vorziehen würde.
Wenn es nicht mit php klappt, dann teste ich diesen Weg.
Da man ja dieselbe Taxonomie
am 25.02.2013 - 08:48 Uhr
Da man ja dieselbe Taxonomie in verschiedenen Inhaltstypen verwenden kann, könntest Du vielleicht auch den Aufwand zusätzlich reduzieren,
indem Du die Inhalte auf mehr als einen Inhaltstyp verteiltest?
Da würde letztlich zu einer Vielzahl Content-Typen führen
am 25.02.2013 - 09:31 Uhr
Und das würde alles unübersichtlicher machen.
Trotzdem danke für diese Anregung.
Wäre als ultima ratio in Erwägung zu ziehen.
Template
am 25.02.2013 - 09:45 Uhr
Hallo.
In Deiner template.php fügst Du einfach diesen Code hinzu (oder erweiterst die eventuell bestehende preprocess-Funktion):
<?php
function mytheme_preprocess_node(&$variables) {
if (($items = field_get_items('node', $variables['node'], 'NAME_DEINES_TERM_FELDS')) !== FALSE) {
// dpm($items);
foreach ($items as $item) {
$tid = $item['tid'];
$variables['theme_hook_suggestions'][] = 'node__term_' . $tid;
}
}
}
?>
Das sollte eigentlich funktionieren.
Template.php angepasst - Trotzdem keine Ausgabe
am 25.02.2013 - 10:51 Uhr
In die Template habe ich alles eingetragen.
Die Beispiel Datei: node--term-100.tpl.php angelegt
Text mit h2-Tag in die Datei eingesetzt
Cache geleert.
Text ist nicht zu sehen.
Was mache ich falsch?
Hast Du in Deinem Theme auch
am 25.02.2013 - 11:12 Uhr
Hast Du in Deinem Theme auch den "normalen" node.tpl.php? Der ist auch erforderlich, damit die speziellen greifen. Dann immer auch den Cache löschen.
Beste Grüße
Werner
Ja das habe ich
am 25.02.2013 - 11:33 Uhr
In meinem Themefolder gibt es eine node.tpl.php.
Und Cache leere ich immer via Drush/Konsole komplett.
Das Snippet leuchtet mir codetechnisch ein. Nur wird die gewünschte Ausgabe nicht gezeigt.
Mal ein herzliches Danke an Euch Alle und die Versuche mir zu helfen
Feld
am 25.02.2013 - 11:35 Uhr
NAME_DEINES_TERM_FELDS --> Termname eingesetzt
Da muss der Name des Term-Reference-Feldes aus dem Inhaltstypen rein, also "field_article_category" oder so ähnlich.
Langsam sehe ich Land
am 25.02.2013 - 13:12 Uhr
Jetzt habe ich den Maschinennamen des Termfields eingesetzt und nun sehe ich die Testmessage sowohl in der Termübersicht/Teaseransicht als auch in der Vollansicht des jeweiligen Terms.
Wenn jetzt noch die Teaseransicht wegfällt, ist es perfekt.
Nun habe ich es
am 25.02.2013 - 13:37 Uhr
Ich habe in der node--term-$tid.tpl.php den folgenden Schnippsel eingesetzt.
if($view_mode == 'teaser') {
// keine Ausgabe
}
else {
// Ausgabe
}
Nun funktioniert es.
Ich bedanke mich bei Allen, die mir geholfen haben.