Здравствуйте!
Задача такая - создать отдельный шаблон для разных типов страниц.
Делаю как здесь 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){...
Без обид, но женская логика и программирование это супер))
А откуда Вы эти переменные откопали? если не секрет
Да, действительно, вы правы, без нее лучше
Да... не стоит, однако, поздно ночью работать
Достаточно всего лишь создать шаблон для определенной ноды
page--project.tpl.php
это шаблон для ноды типа проектЭтого точно достаточно? Больше ничего нигде прописывать не надо?
Что-то пока эффекта не вижу.
И опять проблема с созданием шаблона.
На другом сайте сделала все то же самое (с учетом полученного опыта) - вообще никакого эффекта.
Тема danland
В этой теме есть еще подтема - danblog. И внутренние страницы выводятся по этой подтеме. Может, там что-то надо изменить.
Помогите, кто в курсе, как это делается.
Готова оплатить консультацию.
Только переделать логику вывода классов для body
А можно расшифровать - для тех, кто в танке?
В функции ваша_тема_preprocess_page в файле template.php обрабатываются\добавляются переменные, которые будут передаваться в шаблон страницы, т.е. вам нужно найти там переменную, которая отвечает за класс для body, и внести изменения в код, который её формирует.