Как сообщалось в шаблонных предложениях Drupal 7 , шаблонным предложением, используемым по умолчанию из Drupal 7 для страниц, является страница - [front | internal / path] .tpl.php.
Для страницы, видимой по адресу http://www.example.com/node/1/edit , Drupal будет искать следующие файлы шаблонов:
- страница - узел - edit.tpl.php
- страница - узел - 1.tpl.php
- страница - node.tpl.php
- page.tpl.php
Чтобы добавить дополнительные предложения, ваша тема должна реализовать template_preprocess_page () и добавить новые предложения в $variables['theme_hook_suggestions']
( $variables
это переменная, переданная по ссылке в функцию).
Если вы это сделали, то единственная причина, по которой предложенный файл шаблона не используется, заключается в том, что файл имеет неправильное имя: например, в случае, когда на странице отображается страница книги, файл шаблона должен быть page - book.tpl .php. Вы можете изменить код вашей темы и позволить ему использовать шаблон page - type-type.tpl.php, если он не находит такой шаблон, как page - book.tpl.php.
Отметим также, что в theme_get_suggestions () (которая является функцией, вызываемой template_preprocess_page () ) дефисы заменяются _
, а не наоборот. Причина, по которой это делается, объясняется в комментарии, приведенном в коде функции.
// 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);