Как темизировать главную страницу без использования page--front.tpl.php? Если использовать page--front.tpl.php, то получается, нужно прописывать все включая шапки-подвалы. А мне просто требуется спецефически определить содержимое главной, а шапки-подвалы используются из page.tpl.php.
Комментарии
Ну, берем page.tpl.php, копируем, переименовываем в page--front.tpl.php и меняем то, что надо.
Или panels, но я бы выбрал первый вариант.
То есть будет тупо два параллельных кода?
Вы думаете, что при прописанной page--front.tpl.php на главной будет загружаться и page.tpl.php? Ок, сделайте так и посмотрите какой код у вас на главной.
Можно хоть для каждой страницы сайта сделать свой шаблон. Единственное неудобство - много файликов в папке с темой оформления.
В том-то и дело, что при прописанной page--front.tpl.php на главной page.tpl.php не задействуется. А надо бы. Т.к. дизайн главной у меня не отличается от дизайна других страниц сайта.
Я однажды не стал использовать шаблон для главной, прописывать спец. регионы и т. д., поленился. Вместо этого использовал panels. А потом понял, что решение с panels намного менее гибкое, чем с шаблоном.
Я в первом комменте написал про копирование page.tpl.php и переименовывание его в page--front.tpl.php. Все тоже самое будет. А потом поменяете, что там для главной нужно особенного.
Можно и в самой page.tpl прописать
<?php if ($is_front)?>
Да вот не хотелось завязываться на panels, поэтому решил спросить.
Просто два одинаковых куска кода не есть хорошо, в принципе. Да и с практической стороны - помнить, что их нужно синхронизировать, напряжно.
Наверное, это будет самый оптимальный вариант.
P.S. Ситуация для меня прояснилась. Всем спасибо за обсуждение!
решено в топик
Спасибо, возьму на заметку.
Странно, что это явилось новостью. Применяется давно и многими. В том числе и во многих темах с Д.орг
В D6 я этого не замечал, а в D7 только вникаю.
D D6 я решал это просто с помощью копирования/изменения шаблонов.
А если надо, например, чтобы на Главной не выводилась надпись "Содержание главной страницы еще не создано", если не один материал не выведен на главную, то вместо
<?php
print render($page['content']);
?>
Пишем
<?php if ( isset($node) && isset($node->nid)){
print render($page['content']);
}?>
UPD: Нет, лучше так:
<?php
if (!($is_front)):
print render($page['content']);
endif;
?>
чтобы действительно только для главной исключить вывод.
Типа, если не ( ! ) главная.
а почему-бы просто в блоках не убрать отображение блока Main page content на ?
Да, а если надо было, как в моем случае, убрать вывод $page['content'] только для главной?
опс - парсер съел <front>
/admin/structure/block/manage/system/main/configure
Show block on specific pages
[*] All pages except those listed
<front>
Ну да, в семерке это не изменилось вроде.