Пусть у нас на сайте есть страница (или раздел), которая сильно отличается от всех остальных. Чтобы разговор был более предметным, это будет страница блога. Мы уже создали шаблон voguis_index , применили его ко всем страницам, а теперь надо придумать, как для страницы блога что-то скрыть или наоборот — показать.
Самый простой способ — использовать метод getCurPage (false) объекта $APPTICATION . Для главной страницы он вернет / (слэш), а для блога — /blog/ . Проверяя возвращаемое значение, можно выводить разный контент:
Но, если отличий много, таких вставок тоже будет немало. А если и верстка блога имеет большие отличия от дефолтного шаблона — будет вообще трудно что-то понять: множество проверок (выводить или нет), какие css-стили применять и т.п. Гораздо проще для блога создать отдельный шаблон. Для этого копируем уже имеющийся шаблон из папки voguis_index в папку voguis_blog , и вносим исправления в копию.
А потом для страницы блога подключаем отдельный шаблон по условию:
Список всех шаблонов расположен по пути «Настройки • Настройки продукта • Сайты • Шаблоны сайтов», а условия для применения того или иного шаблона — по пути «Настройки • Настройки продукта • Сайты • Список сайтов». Условия применения шаблона могут быть самыми разными:
Часто сайты имеют разный вид и структуру для главной и внутренних страниц, поэтому приходится делать разные шаблоны под них. Что бы сделать в 1с-битрикс два разных шаблона (учитывая что файлы шаблонов уже лежат на своих местах), нужно открыть админку и перейти в Настройки ->Настройки продукта->Сайты->Список сайтов и выбрать нужный. Когда откроете сайт для редактирования прокрутите экран до раздела "Шаблон".
Теперь нужно указать 1 шаблон для внутренних страниц, без условия. И один шаблон для главной (условие "/index.php" тип условия для "Для папки или файла")
Создан: 06.05.2013 07:58 | Отредактирован: 12.03.2015 06:39
Mожно ли в битриксе сделать разные шаблоны для главной и для внутренней страниц? — Оказывается, что можно и даже не сложно вовсе.
Сделайте 2 разных шаблона, удобно путём копирования одного и последующего изменения.
Дальше в настройках сайта (путь смотри в комментарии #152) задайте сначала шаблон для внутренних страниц (без условия), а ниже сделайте условие, что если страница главная, то она будет с другим шаблоном (/index.php). Вот рисунок
Теперь можно отдельно работать с каждым шаблоном.
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.