Template für View

am 22.04.2008 - 17:49 Uhr in
Hallo!
Ich habe da ein paar Fragen zu den Views. Ich habe einige Views erstellt und möchte diese nun mittels Templates formatieren. Wo muss ich Drupal sagen, dass er für View A das Template A verwenden soll, ... usw. ?
Wie kann ich auf die einzelnen Elemente meiner View zugreifen wenn ich das Template für die View erstelle? Meine View besteht aus Name, Titel, Inhalt, ... wie kann ich diese Elemente bei der Template-Erstellung ansprechen?
Danke schon mal für die Hilfe :)
- Anmelden oder Registrieren um Kommentare zu schreiben
<?phpfunction
am 22.04.2008 - 17:55 Uhr
<?php
function $themename_views_view_$viewtype_$viewname($view, $nodes, $typ) {
dsm($nodes);
}
?>
$themename : z.B: garland
$viewtype: list, teasers // bei dir wohl list
dsm ist eine Funktion des Devels Modules, das für eine schöne Ausgabe der Variable sortz
--------------
Mein Blog: www.freeblogger.org: May the source be with you
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dwehner@im.calug.de Warum Jabb
Das ist ein recht komplexes
am 22.04.2008 - 18:12 Uhr
Das ist ein recht komplexes Thema zu dem es auch einige Infos vornehmlich auf drupal.org gibt.
Wie du den, bzw deine View themest hängt davon ab was es für ein View ist. Wenn du eine Seite bereit stellst, dann must du auch die Seite als solches themen. Nehmen wir mal an die erstellte Seite deines views ist der node mit der Nummer 47. In diesem Fall müsstest du zunächst einmal den Inhalt deiner page.tpl.php kopieren und eine neue Templatedatei mit namen page-node-47.tpl.php ertsellen. In diesem Fall hast du der einen Seite ein neues Template zu gewiesen, und kannst es so anpassen wie du willst.
Um einen Block View selbst zu themen würde ich dir zunächst den mitgelieferten Wizard empfehlen. Dieser gibt alle erforderlichen Codes aus, zum einen jener der in die template.php kommt, und ein weiterer für die View-Datei. Die View-Dateien heissen in aller Regel so ähnlich: views-list-name.tpl.php. In dieser View-Datei wiederum kannst du die Felder entsprechend positionieren.
Jetzt gehts weiter. Wenn du die Felder einzeln ausgeben willst (in z.B. einer Node), dann musst du sie direkt ansprechen. Nehmen wir mal an ich habe mit CCK ein Feld (Text, Dropdown, egal) namens testfeld erstellt, dann wird dieses in deiner Node, bzw Seite so ausgegeben:
<?php
print $node->content['field_testfeld']['#value']
?>
Damit das Ganze aber ausgegeben wird musst du für jedes Feld eine weitere Datei erstellen, die zu dieser passt. Für unsere müsstest du eine Datei mit namen: field-field_testfeld.tpl.php, und mit folgendem Inhalt erstellen, wobei der Inhalt bei jedem Feld gleich bleibt:
<?php if (!$field_empty) : ?>
<?php if ($label_display == 'hidden') : ?>
<?php print $label ?>:
<?php endif;?>
<?php foreach ($items as $delta => $item) :
if (!empty($item['view']) || $item['view'] === "0") : ?>
<?php if ($label_display == 'hidden') { ?>
<?php print $label ?>:
<?php } ?>
<?php print $item['view'] ?>
<?php endif;
endforeach;?>
<?php endif; ?>
Ich weiß das ganze ist komplex, und ich habs sicherlich auch nicht schlüssig dargestellt. Das Thema ist wirklich umfangreich, und ich kann nur empfehlen sich da langsam ran zu tasten, und zu probieren, irgendwann klappts dann, und dann ist es auch lang nicht mehr so komplex, bzw undurchsichtig. Was bleibt ist eine Menge Code, und ebenso viele Dateien, ich habe z.B. eine so gestaltete Seite, wo ich an die 40 Templatedateien im Hintergrund habe. Ich weiß nicht ob man es besser machen kann, ich bin sicherlich kein sonderliches Ass, aber immerhin funktioniert es. :)
Ich hoffe das es dir zumindest im Ansatz helfen konnte!
Grüße vom,
Genesis
Hallo, gilt das auch für
am 09.07.2008 - 11:42 Uhr
Hallo, gilt das auch für Views 2??
Active Template
am 22.07.2008 - 09:22 Uhr
Hallo
ich formatiere meine Views mit dem Modul Active Template. Vielleicht hilft dir das Modul ja auch....
Freundliche Grüsse
Wäre perfekt
am 24.07.2008 - 16:05 Uhr
... aber leider gibt es das wohl nicht für Drupal 6 mit Views2, oder gibt es da noch eine versteckte Version?
Gruß
Nein leider (noch) nicht...
am 24.07.2008 - 20:32 Uhr
Nein leider (noch) nicht... Panels und Active Template sind für mich die ausschlaggebenden Module noch Drupal 5.x einzusetzen.
Freundliche Grüsse