Як повідомляється в пропозиціях щодо шаблонів Drupal 7 , пропозиція шаблона, використовувана за замовчуванням з Drupal 7 для сторінок, - сторінка - [передня | внутрішня / шлях] .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
є змінна, передана посиланням на функцію).
Якщо ви це зробили, то єдина причина, що запропонований файл шаблону не використовується, - це те, що файл неправильно названий: у випадку, якщо на сторінці відображається сторінка книги, наприклад, файл шаблону повинен бути сторінкою - book.tpl .php. Ви можете змінити код для своєї теми і дозволити їй використовувати сторінку - шаблон node-type.tpl.php, якщо в ній не знайдеться такий шаблон, як сторінка - book.tpl.php.
Зауважимо також, що в topic_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);