Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Несколько шаблонов на один сайт

00 голосов
7
Здравствуйте, умные люди.

Подскажите пожалуйста верстальщику как лучше минимизировать трудозатраты при создании сайтов на битриксе с очень разными макетами страниц, но одинаковым общим дизайном?

К примеру на сайте имеются страницы с разным количеством колонок, которые ничем другим как абсолютно иным html макетом не сверстать (с помощью включаемых областей тоже нельзя)

В битриксе выход есть, задавать каждой странице или разделу свой шаблон.
Но в этом случае есть один нюанс, как добиться того, чтобы при каких-то мелких изменениях не проводить их в каждом шаблоне?

Для CSS выход вроде бы есть, подключить соответствующим образом один внешний файл для всех шаблонов, положив его в определенную папку.

Но вот что делать с шаблонами компонентов, которые одинаковы в этих шаблонах, ведь если возникнет необходимость что-то подправить, особенно на этапе разработки и интеграции, то придется вносить изменения в каждый общий шаблон?

Может быть есть какой-то способ задавать в вызове шаблонов компонентов общую директорию подобно подключению CSS, чтобы для каждого шаблона подключались шаблоны компонентов одни и те же, без их дублирования?
спросил 14 Окт, 13 от Traxexx (900 баллов)

7 Ответы

00 голосов
Цитата
Евгений Бескровный пишет:
Подскажите пожалуйста верстальщику как лучше минимизировать трудозатраты при создании сайтов на битриксе с очень разными макетами страниц, но одинаковым общим дизайном?

выучить конструкцию if из языка php и API функции GetCurPage,

Цитата
Евгений Бескровный пишет:
Но вот что делать с шаблонами компонентов, которые одинаковы в этих шаблонах, ведь если возникнет необходимость что-то подправить, особенно на этапе разработки и интеграции, то придется вносить изменения в каждый общий шаблон?

шаблоны компонент из шаблона сайта .default доступны везде
ответил 03 Ноя, 13 от Biks (460 баллов)
00 голосов
Цитата
Иван пишет:
выучить конструкцию if из языка php и API функции GetCurPage,


Некрасиво, лучше уж несколько шаблонов с различными включаемыми областями. Трудно себе представить дизайн сайта, где число неоходимых шаблонов привысило бы 5 штук.
ответил 09 Фев, 14 от ZakonD3D (600 баллов)
00 голосов
Цитата
Виталий Соков пишет:
Некрасиво, лучше уж несколько шаблонов с различными включаемыми областями. Трудно себе представить дизайн сайта, где число неоходимых шаблонов привысило бы 5 штук.


Включаемая область - это элемент для управления содержимым в админке, например слоган. Или для подстановки разных контентов для разных страниц/разделов в одно место. А если нужно одинаковый html включить для разных разделов - то это уже одинаковый файлики хранить надо.

А вот если необходимо менять блок в шапке/футере несколько раз в, то проще сделать условия, чем хранить 2 разных шаблона сайта или кучу одинаковых включаемых областей.

Вообще нужно стремиться чтобы один и тот же html код был сведен к минимуму, в идеале не было совсем. Такой проект на порядок проще поддерживать и дорабатывать.
ответил 30 Май, 14 от Biks (460 баллов)
00 голосов
Т.е. вся загвоздка в количестве колонок? Не обязательно использовать несколько шаблонов.

Если я правильно понял, то могу подсказать такой ход: при разделении на колонки использовать таблицу.
В первую ячейку вставить нужную включаемую область (для страницы или раздела, как нужно) а во вторую - основную область. На страницах, где включаемая область есть - будет 2 колонки. Где нет - одна. Можно сделать и 3 и т.д. Используется всего 1 шаблон.
ответил 26 Сен, 14 от Gair (220 баллов)
00 голосов

$curPage = $APPLICATION->GetCurPage(true);

вернёт на какой странице вы сейчас находитесь. вот например решение задачи вывода баннера только на главной

$curPage = $APPLICATION->GetCurPage(true);

...

f($curPage=="/index.php"){ 
                <?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"slider",
Array(
....
)
);
}

 

ответил 26 Сен, 14 от Сергей (680 баллов)
00 голосов
да блин.
чем больше шаблонов - тем хуже.
шаблон на то и шаблон, чтобы применять его к похожим страницам.

и ЛУЧШЕЕ решение - проверять какая страница в данный момент отображается для показа той или иной области. а для компонентов использовать .default. короче, все как и сказал Иван.

потому что вносить возможные ОДИНАКОВЫЕ правки в несколько шаблонов чревато потерей времени и настроения.
ответил 30 Янв, 15 от ashkmn (700 баллов)
00 голосов
по большому счету когда мы в настройках сайта указываем применение того или иного шаблона, мы ставим условие:
Код
если страница=главная шаблон=главный
если страница=внутрення шаблон=внутренний


главный шаблон:
Цитата
хедер
контент+колонка_1
футер


внутренний шаблон:
Цитата
хедер
контент+колонка_2
футер


Теперь представим что нужно изменить в хедере альт у какой нибудь картинки. А еще представим, что шаблонов не 2, а 5. Страшно же.

А теперь просто то самое условие выносим в один общий шаблон
Цитата
хедер
контент+ {
если страница=главная колонка_1
если страница=внутрення колонка_2
}
футер


И все, решено.
ответил 13 Май, 15 от ashkmn (700 баллов)