194  /  359

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

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

Как изменить стандартный вид компонента

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




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

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