Drupal 6: Header image Modul einrichten

Autor: Sven am Fri, 09.07.2010 - 00:16

Folgende Module werden benötigt:

  1. Header image
  2. Content Construction Kit
  3. Filefield
  4. Imagefield

Installation / Einrichtung:

  1. Installation der Module unter "admin/build/modules"
  2. Unter "admin/user/permissions" die entsprechenden Berechtigungen für die Module setzen
  3. Unter Inhaltstypen "admin/content/types" einen neuen Inhaltstypen mit Namen "Header image" als Typ "headerimage" anlegen. Danach wird der neue Inhaltstyp in der Übersicht angezeigt.
  4. Hier nun hinter dem Inhaltstypen "Header image" auf "Felder verwalten" klicken.
  5. Im unteren Bereich bei "Neues Feld" folgende Daten eingeben / auswählen:
    • Bezeichnung: Header image
    • Feldname: headerimage
    • Feldtyp: File
    • Steuerelement: Bild
  6. Unter den folgenden Einstellungen können diverse Optionen aktiviert werden, die selbsterklärend sein dürften.
    Unten den Pfadeinstellungen würde ich noch "headerimage" eingeben, dieses bewirkt, dass die hochgeladenen Datei im Datei-Verzeichnis im Unterordner "headerimage" abgelegt werden.
  7. Unter den "Globalen Einstellungen" sollte nun "Erforderlich" markiert werden und die "Anzahl der Werte" auf "1" gestellt werden.
  8. Nun zu den Einstellungen des Header image Moduls, die unter "admin/settings/headerimage" gefunden werden können.
  9. Zum Tab "Einstellungen" wechseln und hier unter "Node type" den gerade angelegten Inhaltstypen "Header image" markieren
  10. Unter "Condition types" können nun die Kriterien ausgewählt werden, mit denen die Anzeige der Header images bestimmt werden soll. Hier sollte "URL" und "Node ID" markiert werden.
    • URL: Der Pfad zur Node, Taxonomy, View, ...
    • Node ID: Die entsprechende ID des Beitrags
  11. Nun wieder zurück zur Übersichtsseite "admin/settings/headerimage" (Klick auf "Alle anzeigen")
  12. Unter "Add Header Image block" einen neuen Block mit dem Blocktitel "Header image" anlegen
  13. Nun auf "Einstellen" klicken und auf "Block speichern" klicken, danach gelangt man in die Drupal Block Ansicht.
    Hier den Block "Header image" in den entsprechenden Bereich verschieben und das Ganze erneut speichern
  14. Nun muss noch der entsprechende Inhalt angelegt werden, der nachher im Block zu sehen ist.
    Dazu legt man einen neuen Inhalt vom Typ "Header image" an und vergibt einen Titel und uploaded das entsprechende Bild.
  15. Unter "Display conditions" kann nun eingestellt werden, wo der Inhalt mit welcher Gewichtung angezeigt werden soll.
    Hinweis: Hier sollten WYSIWYG Editoren deaktiviert werden!
    • Bei "Node ID Conditions" können alle Node IDs durch Komma getrennt eingegeben werden.
    • Das "URL Condition" Feld funktioniert genauso wie die Drupal Block Verwaltung zum Anzeigen der Blöcke
  16. Möchte man, dass dieses Header image als Standard hinterlegt ist und keinem speziellen Bereich zugewiesen ist vergibt man folgende Werte:
    • Condition weight: -10
    • Node ID condition: leer lassen
    • URL Condition: *
    • Anhand der "Condition weight" ist es nun möglich das Standard Bild zu überschreiben.
  17. Nach Speichern der Node wird das Bild im entsprechenden Block angezeigt.
  18. Da hier die Standard CCK Darstellung verwendet wird, muss die "headerimage-block.tpl.php" aus dem Modul "Header image" in den Themes Ordner kopiert werden. Danach die "template.php" im Theme Verzeichnis öffnen (sollte sie nicht bestehen einfach die Datei anlegen) und folgenden Code einfügen ("themename" muss hier durch den verwendeten Themenamen ersetzt werden, z.B. "garland"):
    /**
     * Process variables to format the headerimage block.
     *
     * $variables contains:
     * - $node
     * - $teaser: TRUE = display node as teaser; FALSE = display full node
     *
     * @see headerimage-block.tpl.php
     */
    function themename_preprocess_headerimage_block(&$variables) {
      $node = $variables['node'];
      $teaser = $variables['teaser'];
    
      $variables['unpublished'] = !$node->status;
      if ($teaser && isset($node->teaser)) {
        $variables['content'] = $node->teaser;
      }
      else {
        $variables['content'] = $node->body;
      }
    
      $variables['headerimage'] = theme('image', $node->field_headerimage[0]['filepath']);
    }
  19. Anschließend die kopierte "headerimage-block.tpl.php" öffnen und die Variable "$content" durch "$headerimage" ersetzen.
  20. Zum Abschluss unter "admin/settings/performance" noch den "Cache leeren"

Dieses Tutorial ist auch im Handbuch auf www.drupalcenter.de veröffentlicht.