Drupal 7 Шаблонные предложения - Почему это не работает? - PullRequest
0 голосов
/ 20 апреля 2011

Я создал свою собственную тему.В файле template.php у меня есть следующий код:

function mytheme_preprocess_page(&$variables) {
    if(isset($variables['node'])){
        if($variables['node']->type === 'sports'){
            $variables['theme_hook_suggestions'][] = 'page__node__sports';
        }
    }
}

И у меня есть файл page_ node _sports.tpl.php в каталоге шаблонов моей темы, и я очистилкеш.Однако шаблон page_ node _sports.tpl.php не используется.Выполняя некоторую отладку, я вставил оператор echo в начале функции preprocess_page, и она появилась на экране, так что я знаю, что функция запущена.Но предложение шаблона просто не работает.Я даже удалил операторы if внутри функции, оставив только строку $ variable ['theme_hook_suggestions'] = ..., но все же nada.

Есть идеи, что не так?

Ответы [ 2 ]

2 голосов
/ 20 апреля 2011

Вы также добавили page.tpl.php в папку вашей темы?Предложения работают только при наличии оригинального шаблона.

См. Также http://adaptivethemes.com/page-template-suggestions-per-node-type

1 голос
/ 20 апреля 2011

Разобрался. Хотя название шаблона в строке:

$variables['theme_hook_suggestions'][] = 'page__node__sports';

должен иметь подчеркивания, вместо фактического файла .tpl.php должны быть дефисы.

...