170  /  330

Кастомизация шаблона

Просмотров: 4879 (Статистика ведётся с 06.02.2017)

Цитатник веб-разработчиков.

Рамиль Юналиев: По себе знаю, что не хватало примеров работы именно с шаблонами, потому что с них начинал. Если программисты "въедут" в эти шаблоны, то там уже пойдет...

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

Разработчики, впервые видящие код шаблона любого компонента, например списка новостей, ужасаются циклу, каше из php и HTML (и js изредка можно встретить). Это шаблон, он для вывода. Все данные уже собраны, запросы отработали, понятно что и куда мы выводим, даже отлов угроз уже прошел. Шаблон - последнее звено в цепочке кода и данных. Тут логика вывода действительно смешана с оформлением, и это правильно.

Начинающему разработчику часто очень непросто разобраться в том, где в шаблоне данные, где представление. В шаблоне можно писать любой php-код, можно написать прямое, не API, обращение к базе данных, можно написать десяток строк на API и решить задачу. Битрикс этим очень "развращает" разработчика: не запрещено писать бизнес-логику в шаблонах и HTML в компонентах, слишком много свободы. В собственном коде и по идеологии Bitrix Framework задача разделения данных решена нормально, а вот написание в шаблоне ерунды, не рекомендованной по идеологии, система не контролирует.

Приступая к кастомизации шаблона нужно помнить:

Внимание! вся логика должна быть в компоненте, в шаблоне - только представление вывода полученных данных!

Кастомизация шаблона компонента, как правило, преследует две цели:

  1. Приведение формы вывода данных компонента в соответствие с дизайном сайта;
  2. Организация вывода данных компонента в виде, недоступном в стандартном варианте.

Пользовательские шаблоны компонента - шаблоны, которые изменены под нужды конкретного проекта. Они должны лежать в папках шаблонов портала (т.е. в /bitrix/templates/шаблон_сайта/). При копировании шаблона компонента средствами системы, они будут расположены по следующему пути: /bitrix/templates/шаблон_сайта/components/namespace/название_компонента/название_шаблона.

Примечание: Теоретически шаблон можно расположить каталоге /bitrix/templates/текущий_шаблон_сайта/components/, но в этом случае будут свои особености. Предположим, что в этой папке оказались шаблоны двух компонентов с общей начальной частью в названии (Например: catalog (комплексный, к котором есть еще простой catalog.section) и собственно catalog.section (простой)). Если при этом необходимо для двух вхождений catalog.section использовать один-единственный шаблон, то этот шаблон должен иметь имя, отличное от .default, иначе он не будет подхвачен.

Копировать шаблон можно следующими способами:

  • В рамках файловой системы копированием папки /bitrix/components/bitrix/_нужный_компонент_/templates/ в папку /bitrix/templates/шаблон_сайта/components/namespace/название_компонента/_название_шаблона.
  • Средствами интерфейса системы с помощью команды Копировать шаблон компонента (при включённом режиме Правка):

После копирования шаблон можно изменять и, после изменения, применить его к компоненту в настройках компонента.

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

При кастомизации шаблонов можно использовать буферизацию.

В главе приведены некоторые примеры кастомизации шаблонов.

Примечание: Еще один пример редактирования шаблона (шаблона меню) представлен на странице Кастомизация шаблонов компонентов главы Как создать простой сайт.

В главе приводятся примеры кастомизации шаблонов. Кроме этих материалов рекомендуем познакомится ещё с сообщениями в блогах разработчиков:




7
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии