Рейтинг: 0.6191  
На голосовании
Предложил Пользователь 3089 25.07.2017 00:53:13

Поддержка отложенного выбора шаблона сайта

В настоящий момент есть всего один штатный способ определить шаблон сайта - настройки сайта.

Также можно поиграть с предикатами для шаблонов на основе констант, определяемых до подключения Битрикс (наиболее прямой путь здесь вообще SITE_TEMPLATE_ID, но тогда настройки сайта не требуются вовсе).

Главным образом идея возникла из-за страницы ошибки 404. Да, по ней уже сломано немало копий (1, 2). Не так давно и Битрикс предложила "решение" и даже отчиталась о внедрении соответствующей идеи.

Увы, при таком подходе буфер вывода частично (как в \Bitrix\Iblock\Component\Tools::process404) или полностью очищается, делая ненужной работу части страницы. А Битрикс итак тяжел из-за обилия функционала. Стоит ли делать лишнюю работу?

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

Альтернативы "для старта":
  • Программная установка шаблона сайта на d7 до вывода визуального пролога (API для этого).
  • Событие (старое или новое на d7) для участия в выборе шаблона сайта.

Но их есть смысл делать только если планировать завершить дело отложенным выбором шаблона сайта. Тогда не придется городить огород с описанными выше решениями. Да и красиво упакованный в process404 костыль от Битрикс тоже будет не очень то и нужен.

По мотивам обращения в поддержку 1562681.
Рейтинг: -1.5948  
На голосовании
Предложил Пользователь 95084 11.07.2014 10:10:32

Разделить шаблон сайта в два разных поля для ввода

В принципе, ничего кардинально менять не надо, просто вместо использования #WORK_AREA# посердине, между двумя склеенными файлами header.php и footer.php, выводить их в отдельных тектсовых полях. Так будет гораздо нагладнее, где шапка, где подвал, точнее отражена файловая структура шаблона и отпадет наобходимость в этой надписи, типа "обязательно вставьте #WORK_AREA# ", не надо будет проверять, не забыл ли пользователь ее вставить.

p.s. ну и подключить туда подсветку синтаксиса в конце концов, она, конечно, оставляет желать лучшего, но почему ее там нет - не могу понять, чем редактирование шаблона сайта хуже редактирования шаблона компонента, что его так обделили.