Темизация главной страницы без использования page--front.tpl.php

Аватар пользователя Waldos Waldos 2 декабря 2012 в 19:39

Как темизировать главную страницу без использования page--front.tpl.php? Если использовать page--front.tpl.php, то получается, нужно прописывать все включая шапки-подвалы. А мне просто требуется спецефически определить содержимое главной, а шапки-подвалы используются из page.tpl.php.

0 Thanks

Комментарии

Аватар пользователя Antoniy Antoniy 2 декабря 2012 в 20:20

Ну, берем page.tpl.php, копируем, переименовываем в page--front.tpl.php и меняем то, что надо.

Или panels, но я бы выбрал первый вариант.

Аватар пользователя Antoniy Antoniy 2 декабря 2012 в 20:44
"Waldos" wrote:

два параллельных кода

Вы думаете, что при прописанной page--front.tpl.php на главной будет загружаться и page.tpl.php? Ок, сделайте так и посмотрите какой код у вас на главной.

Аватар пользователя Antoniy Antoniy 2 декабря 2012 в 20:46
"Waldos" wrote:

два параллельных кода

Можно хоть для каждой страницы сайта сделать свой шаблон. Единственное неудобство - много файликов в папке с темой оформления.

Аватар пользователя Waldos Waldos 2 декабря 2012 в 20:49

В том-то и дело, что при прописанной page--front.tpl.php на главной page.tpl.php не задействуется. А надо бы. Т.к. дизайн главной у меня не отличается от дизайна других страниц сайта.

Аватар пользователя Antoniy Antoniy 2 декабря 2012 в 20:50

Я однажды не стал использовать шаблон для главной, прописывать спец. регионы и т. д., поленился. Вместо этого использовал panels. А потом понял, что решение с panels намного менее гибкое, чем с шаблоном.

Аватар пользователя Antoniy Antoniy 2 декабря 2012 в 20:52
"Waldos" wrote:

при прописанной page--front.tpl.php на главной page.tpl.php не задействуется.

Я в первом комменте написал про копирование page.tpl.php и переименовывание его в page--front.tpl.php. Все тоже самое будет. А потом поменяете, что там для главной нужно особенного.

Аватар пользователя Waldos Waldos 2 декабря 2012 в 22:13
Kremenetskiy wrote:

Я однажды не стал использовать шаблон для главной, прописывать спец. регионы и т. д., поленился. Вместо этого использовал panels. А потом понял, что решение с panels намного менее гибкое, чем с шаблоном.

Да вот не хотелось завязываться на panels, поэтому решил спросить.

Kremenetskiy wrote:

Я в первом комменте написал про копирование page.tpl.php и переименовывание его в page--front.tpl.php. Все тоже самое будет. А потом поменяете, что там для главной нужно особенного.

Просто два одинаковых куска кода не есть хорошо, в принципе. Да и с практической стороны - помнить, что их нужно синхронизировать, напряжно.

Serge66 wrote:

Можно и в самой page.tpl прописать <?php if ($is_front)?>

Наверное, это будет самый оптимальный вариант.

P.S. Ситуация для меня прояснилась. Всем спасибо за обсуждение!

Аватар пользователя Antoniy Antoniy 3 декабря 2012 в 12:28
"Serge66" wrote:

в самой page.tpl прописать <?php if ($is_front)?>

Спасибо, возьму на заметку.

Аватар пользователя Serge66 Serge66 4 декабря 2012 в 4:03
"Kremenetskiy" wrote:

Спасибо, возьму на заметку

Странно, что это явилось новостью. Применяется давно и многими. В том числе и во многих темах с Д.орг

Аватар пользователя Antoniy Antoniy 4 декабря 2012 в 4:14
"Serge66" wrote:

Странно, что это явилось новостью

В D6 я этого не замечал, а в D7 только вникаю.
D D6 я решал это просто с помощью копирования/изменения шаблонов.

Аватар пользователя Antoniy Antoniy 4 декабря 2012 в 23:24

А если надо, например, чтобы на Главной не выводилась надпись "Содержание главной страницы еще не создано", если не один материал не выведен на главную, то вместо
<?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;
?>
чтобы действительно только для главной исключить вывод.
Типа, если не ( ! ) главная.

Аватар пользователя Antoniy Antoniy 4 декабря 2012 в 23:29
"varvashenia" wrote:

а почему-бы просто в блоках не убрать отображение

Да, а если надо было, как в моем случае, убрать вывод $page['content'] только для главной?

Аватар пользователя varvashenia varvashenia 4 декабря 2012 в 23:36

опс - парсер съел <front>
/admin/structure/block/manage/system/main/configure
Show block on specific pages
[*] All pages except those listed
<front>