Wenn bei Drupal 7 das Template page--contenttype.tpl.php nicht will

Beitrag von Andreas am/um 25. April 2011 - 17:32

WerkstattTags 

Tipps Drupal 7 Theming

In Drupal kann man recht einfach das Layout mit Seiten-Templates für verschiedene Inhaltstypen verändern, indem man eine Template-Datei mit einem Dateinamen nach folgendem Muster im Theme-Ordner ablegt: page--inhaltstyp.tpl.php. Wer also das Seitenlayout für den selbst angelegten Inhaltstyp 'Rezept' anpassen will, braucht also eine Datei mit Namen page--rezept.tpl.php. Wird diese Datei aber nicht von Drupal angewendet, könnte es daran liegen, dass im Theme eine entsprechende Funktion noch nicht definiert wurde. Um das festzustellen, untersucht man die Datei template.php im Theme-Ordner. Suchen Sie eine Zeile mit dieser Funktionsdefinition: function themename_preprocess_page(&$variables) (themename steht dabei für den Namen Ihres Themes). Ist darin eine Zeile wie

$variables['theme_hook_suggestions'][] = 'page__' . $nodetype;

enthalten? Wenn nicht, dann müssen in der Funktion themename_preprocess_page folgende Zeilen ergänzt werden:

    if (isset($variables['node']->type)) {
        $nodetype = $variables['node']->type;
        $variables['theme_hook_suggestions'][] = 'page__' . $nodetype;
    }

Und schon sollte die Datei page--themename.tpl.php funktionieren. (Mit Dank an DutchCoder)

Neuen Kommentar schreiben

You must have Javascript enabled to use this form.