Drupal 7: field in page.tpl.php
am 18.03.2011 - 13:28 Uhr in
Hallo zusammen,
ich bin neu in Drupal und natürlich auch hier. Ich baue gerade meine erste richtige Drupal Seite. Folgendes Problem:
Ich möchte ein von mir angelegtes Field (field_background_image) in der page.tpl.php ausgeben.
Hintergrund: Mein Chef will, dass die Seite ein Bild als Fullscreen-Hintergrund bekommt. Dieses Bild soll sich je nach Artikel ändern, bzw. auch über die den jeweiligen Eintrag gepflegt werden.
Also hab ich ein neues Field mit namen field_background_image angelegt und zum Inhaltstyp Basic page hinzugefügt. Funktioniert auch alles.
Damit dieses Bild auch das Hintergrundbild der Seite wird, müsste ich ein
<img src="hier Pfad zum Bild des Nodes" class="bg" />
direkt nach dem Body-Tag einfügen. Die Seiten bestehen immer nur aus einem Node.
Ich hab schon diverse Seiten und Foren gewälzt, aber immer nur Lösungen für Drupal 6 gefunden, die bei mir nicht funktionieren. z.B.:
<img src="<?php if ($node->field_background_image[0]): print $node->field_background_image['und'][0]["filepath"]; endif; ?>" class="bg" />
Vielleicht kann mir ja einer von Euch helfen. Vielen Dank für die Hilfe!
- Anmelden oder Registrieren um Kommentare zu schreiben
$node
am 19.03.2011 - 15:20 Uhr
Hallo.
Damit Du die Variable
$node
in der page.tpl.php nutzen kannst, musst Du sie dort ersteinmal bekannt machen, bzw. das Node-Objekt laden.Am Besten machst Du das in einer Implementierung von [api:template_preprocess_page:7] in Deiner template.php.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
uri von field_background_image
am 20.03.2011 - 11:19 Uhr
Hallo,
vielen Dank für die Antwort. Funktioniert. Bzw. ich hab auch rausgefunden, dass die Variable $node mit sogar auch so zur Verfügung steht, wenn die Seite nur aus einem Node besteht. Das funktioniert also.
Was mir jetzt noch zu schaffen macht ist der Pfad zu dem Bild, das ich über das Field einbinden will. Komme ich an den irgendwie ran?
Danke
Node
am 20.03.2011 - 12:04 Uhr
Bzw. ich hab auch rausgefunden, dass die Variable $node mit sogar auch so zur Verfügung steht, wenn die Seite nur aus einem Node besteht.
Ja, dort wird die Variable schon direkt von Drupal zur Verfügung gestellt.
In anderen Template-Typen (Page, Block, etc.) musst Du das Node-Objekt jedoch selbst laden (falls es überhaupt exakt ein gerade angezeigtes Objekt gibt).
Was mir jetzt noch zu schaffen macht ist der Pfad zu dem Bild, das ich über das Field einbinden will. Komme ich an den irgendwie ran?
Installiere Dir mal das Modul [do:devel Devel] und füge dann im Template
<?php dsm($node) ?>
ein.Dann siehst Du die Struktur des Node-Objekts und wie Du an den Feldwert herankommst.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Danke!
am 22.03.2011 - 16:59 Uhr
Vielen Dank für die Hilfe!!