Здравствуйте!
Задача такая - создать отдельный шаблон для разных типов страниц.
Делаю как здесь http://www.drupal.ru/node/58386. Но, поскольку знание php нулевое, получается... плохо
Сначала создала файл page--type--mytype.tpl.php вставила в файл template.php
function mytheme_preprocess_page(&$variables, $hook) {
//some other stuff
if (isset($variables['node'])) {
$variables['theme_hook_suggestions'][] = 'page__type__'. $variables['node']->type;
$variables['theme_hook_suggestions'][] = "page__node__" . $variables['node']->nid;
}
}
Получила такое сообщение
Fatal error: Cannot redeclare business_preprocess_page() (previously declared in /pub/home/academhost10/lifeswheel/sites/all/themes/business/template.php:51) in /pub/home/academhost10/lifeswheel/sites/all/themes/business/template.php on line 130
Смотрю на строку 51 и действительно нахожу там
function business_preprocess_page(&$vars) {
...
...
}
Вставляю код туда
function business_preprocess_page(&$vars) {
if (isset($variables['node'])) {
$variables['theme_hook_suggestions'][] = 'page__type__'. $variables['node']->type;
$variables['theme_hook_suggestions'][] = "page__node__" . $variables['node']->nid;
}
...
}
Ничего не происходит. Обращаю внимание, что у меня function business_preprocess_page(&$vars), а надо
function mytheme_preprocess_page(&$variables, $hook)
Скомбинировала таким образом
function business_preprocess_page(&$variables, $hook, $vars) {
if (isset($variables['node'])) {
$variables['theme_hook_suggestions'][] = 'page__type__'. $variables['node']->type;
$variables['theme_hook_suggestions'][] = "page__node__" . $variables['node']->nid;
}
...
}
Получила то, что хотела, но при этом появляется такое сообщение
Warning: Missing argument 3 for business_preprocess_page(), called in /pub/home/academhost10/lifeswheel/includes/theme.inc on line 1106 and defined in business_preprocess_page() (line 51 of /pub/home/academhost10/lifeswheel/sites/all/themes/business/template.php).
Скажите, пожалуйста, что и где еще нужно исправить?
PS Понимаю, что надо мной, наверное, сейчас все будут ржать. Смейтесь, пожалуйста, только подскажите - как сделать
Комментарии
Омфг...
...function business_preprocess_page(&$variables){...
Без обид, но женская логика и программирование это супер))
А откуда Вы эти переменные откопали? если не секрет
Да, действительно, вы правы, без нее лучше![Biggrin](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/biggrin.gif)
Да... не стоит, однако, поздно ночью работать
Достаточно всего лишь создать шаблон для определенной ноды
page--project.tpl.php
это шаблон для ноды типа проектЭтого точно достаточно? Больше ничего нигде прописывать не надо?
Что-то пока эффекта не вижу.
И опять проблема с созданием шаблона.
На другом сайте сделала все то же самое (с учетом полученного опыта) - вообще никакого эффекта.
Тема danland
В этой теме есть еще подтема - danblog. И внутренние страницы выводятся по этой подтеме. Может, там что-то надо изменить.
Помогите, кто в курсе, как это делается.
Готова оплатить консультацию.
Только переделать логику вывода классов для body
А можно расшифровать - для тех, кто в танке?
В функции ваша_тема_preprocess_page в файле template.php обрабатываются\добавляются переменные, которые будут передаваться в шаблон страницы, т.е. вам нужно найти там переменную, которая отвечает за класс для body, и внести изменения в код, который её формирует.