Wie in Drupal 7-Vorlagenvorschlägen angegeben , lautet der von Drupal 7 standardmäßig für Seiten verwendete Vorlagenvorschlag page - [front | internal / path] .tpl.php.
Für eine Seite, die unter http://www.example.com/node/1/edit angezeigt wird, sucht Drupal nach den folgenden Vorlagendateien:
- page - node - edit.tpl.php
- Seite - Knoten - 1.tpl.php
- page - node.tpl.php
- page.tpl.php
Um zusätzliche Vorschläge hinzuzufügen, sollte Ihr Design template_preprocess_page () implementieren und neue Vorschläge hinzufügen $variables['theme_hook_suggestions']
( $variables
ist die Variable, die als Verweis auf die Funktion übergeben wird).
Wenn Sie dies getan haben, liegt der einzige Grund dafür, dass die vorgeschlagene Vorlagendatei nicht verwendet wird, darin, dass die Datei nicht korrekt benannt ist: Wenn die Seite eine Buchseite enthält, sollte die Vorlagendatei beispielsweise page - book.tpl sein .php. Sie können den Code für Ihr Thema ändern und die Vorlage page - node-type.tpl.php verwenden, wenn keine Vorlage wie page - book.tpl.php gefunden wird.
Zu beachten ist auch, dass in theme_get_suggestions () (das ist die Funktion, die von template_preprocess_page () aufgerufen wird ) Bindestriche durch _
und nicht umgekehrt ersetzt werden. Der Grund dafür wird in einem im Funktionscode angegebenen Kommentar erläutert.
// When we discover templates in drupal_find_theme_templates(),
// hyphens (-) are converted to underscores (_) before the theme hook
// is registered. We do this because the hyphens used for delimiters
// in hook suggestions cannot be used in the function names of the
// associated preprocess functions. Any page templates designed to be used
// on paths that contain a hyphen are also registered with these hyphens
// converted to underscores so here we must convert any hyphens in path
// arguments to underscores here before fetching theme hook suggestions
// to ensure the templates are appropriately recognized.
$arg = str_replace(array("/", "\\", "\0", '-'), array('', '', '', '_'), $arg);