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

Смена шаблона

00 голосов
6
В общем ситуация такова: Есть шаблона в разделе магазина (e-store) на нем разположен компонент каталог товаров, и выводятся разделы инфоблока товаров, при выборе при выборе нужнен другой шаблон. Как настроить параметр для смены
e-store/ID раздела/ и соответствено другой шаблон для элемента.
спросил 14 Сен, 13 от Ellez (120 баллов)

6 Ответы

00 голосов
Можно сделать например в месте вызова:
Код
if ($APPLICATION->GetCurUri()==<...>) $template = 't1'; 
else $template = '$t2';
$APPLICATION->IncludeComponent("bitrix:catalog", $template, ...

Можно также создать отдельный шаблон компонента "каталог", который будет по похожему условию выбирать разный шаблон для подкомпонента просмотра раздела в зависимости от секции.
ответил 17 Сен, 13 от Eddie (2,060 баллов)
00 голосов
В настройках сайта указываете свой шаблон и выражение php типа
Код
ereg("^/e-store/[0-9]+/[0-9]+",$_SERVER['REQUEST_URI'])
Ну или что-то около того :)

Ну и хорошо было бы воспользоваться поиском: аналогичные вопросы уже не раз поднимались....
ответил 15 Дек, 13 от sickmind (4,660 баллов)
00 голосов
Александр Черкасов,
Поставил выражение установил для него шаблон но почему то при смене не переключается. Может я что то делаю не так?! и еще один вопрос как таковой физически ID разделов и элементов генерируются логически и вопрос такой как может произойти смена шаблона если в области #WORK_AREA# не указан компонент с другим дизайном
ответил 30 Март, 14 от Ellez (120 баллов)
00 голосов
Можно ведь проще :)
if (substr($APPLICATION->GetCurUri(),0,9)=='/e-store/')

Однако, это для элемента (каталога), потому что вы писали "шаблон для элемента".
Если же вам надо менять дизайн не компонента, а всего сайта, то делается это в настройках сайта (в админке), применив соответствующий фильтр.
ответил 22 Июль, 14 от Eddie (2,060 баллов)
00 голосов
Цитата
Дмитрий Якинцев пишет:
Можно ведь проще
if (substr($APPLICATION->GetCurUri(),0,9)=='/e-store/')

Тогда уж СSite::InDir()
ответил 24 Ноя, 14 от smileplz (8,020 баллов)
00 голосов
К сожалению, метод СSite::InDir() не документирован. Было бы неплохо иметь описание подобных методов.
ответил 19 Март, 15 от Eddie (2,060 баллов)

Похожие вопросы

0 голосов
3 ответов
спросил 23 Март, 14 от Tifany (100 баллов)
0 голосов
4 ответов
+1 голос
1 ответ
спросил 16 Март, 18 от аноним
0 голосов
1 ответ
0 голосов
3 ответов
спросил 25 Март, 14 от ZiGaN (100 баллов)