Neuen Kommentar schreiben

Drupal 6 - verschiedene Hintergrundbilder für Seiten

Dieser Artikel beschreibt die einfache Möglichkeit in Drupal 6 über das Backend jeder Seite einen unterschiedlichen Hintergrund zuzuweisen. Nach gleichem Prinzip kann man auch andere Layout-Bilder je Seite über das Backend verwalten. So bietet sich zum Beispiel die Möglichkeit neben dem Hintergrund-Bild auch einen Banner bzw. ein Header-Bild zu ändern.

Benötigte Module

Folgende Module müssen installiert werden. Eine Installations-Beschreibung sowie einen Download-Link findet man auf den verlinkten Seiten.

Nach der Installation die Module Content, FileField und ImageField aktivieren.

Feld zur Inhaltsverwaltung hinzufügen

Nun kann ein Bildupload-Feld zur Inhaltsverwaltung hinzugefügt werden. Dazu geht man im Backend auf Verwalten->Inhaltsverwaltung->Inhaltstypen und wählt den gewünschten Typ aus.

Die Felder werden wie folgt befüllt:

drupal add field

Nach einem Klick auf "speichern" kann man noch einige Einstellungen vornehmen. Der Hilfetext kann zum Beispiel einen Hinweis auf die gewollte Größe des Hintergrundbildes angeben.
Unter Pfadeinstellungen kann man im Feld Dateipfad einen Unterordner angeben, in den die Bilder gespeichert werden. Hier gibt man zum Beispiel background-images ein.
Im Punkt Globale Einstellungen sollte man dann noch den Hacken für Erforderlich setzen und die Anzahl der Werte auf 1 setzen, da dies bei Hintergrundbildern sinnvoll erscheint.

Nach dem Speichern der vorgenommenen Einstellungen kann man nun Unter Inhalt erstellen und dem bearbeiteten Inhalts-Typ ein Hintergrundbild einfügen:

drupal add bg image

 

Theme-Dateien bearbeiten

Anschließend müssen auch im Theme noch Einstellungen getroffen werden, um das gewünschte Hintergrundbild anzuzeigen. Dazu die Datei template.php bearbeiten (oder anlegen):

  1. function mytheme_preprocess_page(&$variables) {
  2.  
  3.   // background image
  4.   $node = $variables['node'];
  5.   $variables['backgroundimage'] = $node->field_background_image[0]['filepath'];
  6.   unset($node->content['field_background_image']); // do not show background image in content
  7. }
Der Name der Funktion muss natürlich entsprechend angepasst werden: mytheme mit dem entsprechenden Theme-Namen ersetzen.

Zuletzt muss das Background-Image auch noch ins Seiten-Template in der Datei page.tpl.php eingefügt werden. Der Pfad zum Bild wird durch folgenden code gebildet:

  1. print $base_path.$backgroundimage;

Blog: