Битрикс комплексный компонент каталог

Битрикс комплексный компонент каталог

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

Приветствую! Продолжаем разрабатывать наш собственный интернет-магазин на Битрикс с нуля и изучать при этом Битрикс. В прошлом уроке мы познакомились с ключевой сущностью Битрикса Инфоблоками и импортировали каталог с учебными данными. Пришло время воспользоваться всем этим и вывести каталог на сайт. В этом уроке мы выведем каталог товаров на страницу /catalog/ и подробно познакомимся с работой компонентов Битрикс. В частности с комплексным компонентом bitrix:news.
Вот, что у нас должно будет получится в итоге.

Без меню разделов пока, его мы выведем чуть позже.

Вывод каталога товаров через компонент bitrix:news

В Уроке 4 — Вывод меню Битрикс мы уже познакомились с компонентами и я показал, как их выводить на страницу, копировать и изменять шаблон. Там все более подробно со скриншотами описано.
Начнем. Откроем сайт и перейдем в раздел Каталог, через главное меню, которое уже должно работать на вашем сайте. Убедимся, что мы находимся в разделе каталог — в адресной строке должен быть адрес заканчивающийся на /catalog/. Далее в панели администрирования нажимаем кнопку Изменить страницу и открываем страницу на изменение. В разделе компонентов КонтентНовости выбираем компонент Новости (комплексные компоненты выделены зеленым цветом).

Что такое простые и комплексные компоненты я покажу чуть позже не примере кода, сразу станет понятно отличия.
Сразу настроем параметры компонента. Нас будут интересовать сейчас только основные параметры. Здесь для всех компонентов, которые работают с инфоблоками основными параметрами является Тип инфоблока и сам Инфоблок их нужно выбрать.

Читайте также:  Audition не видит vst

И еще необходимо указать свойства, которые нужно выводить в карточках товара. Мы будем выводить пока только цену.

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

Кастомизация компонента bitrix:news

Прежде всего нужно скопировать типовой шаблон компонента в наш шаблон сайта, чтобы можно было его изменять и не потерять изменения при очередном обновлении Битрикс. Включим режим редактирования и скопируем шаблон компонента.

Новый шаблон назовем catalog и скопируем в наш шаблон startshop.

Теперь нужно найти файлы нового шаблона. Перейдем по пути wwwlocal emplatesstartshopcomponentsitrix
ewscatalog
и увидим файлы комплексного компонента.

Особенность комплексного компонента в том, что он в себе содержит простые компоненты. Это видно по тому, что внутри комплексного компонента содержится папка bitrix, в которой будут расположены шаблоны простых компонентов.

И вот именно простые компоненты уже выводят информацию на страницу. Из этого списка прежде всего нам будут интересовать папки (компоненты) news.list и news.detail для страницы списка и детальной страницы товара соответственно.

news.list

Начнем мы со списка новостей. За вывод новости отвечает файл wwwlocal emplatesstartshopcomponentsitrix
ewscatalogitrix
ews.list.default emplate.php
. Все остальное давайте удалим, чтобы нам не мешались.


Обращу внимание на файл style.css . В нем можно располагать CSS стили верстки компонента. Особенность в том, что они подключаются только при вызове компонента. Т.е. это несколько сокращает объем погрузки стилей. Но мы им пользоваться не будем все наши стили лежат в template_styles.css . Вобщем без страха удаляем все лишнее и открываем в редакторе файл template.php . В котором сразу заменяем имеющийся код на следующий:
Код:

Читайте также:  Poe урон ловушек и мин

AddEditAction($item[‘ID’], $item[‘EDIT_LINK’], CIBlock::GetArrayByID($item["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($item[‘ID’], $item[‘DELETE_LINK’], CIBlock::GetArrayByID($item["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage(‘Подтверждаете удаление?’)));
?>

Комплексный компонент служит для организации целого раздела сайта (форум, каталог). Для вывода данных он подключает простые компоненты. По сути, является контроллером простых компонентов. Комплексный компонент определяет на основании HTTP запроса страницу, которую требуется показать, и подключает шаблон этой страницы.

Давайте создадим три простых компонента и объединим их в комплексный. Этот комплексный компонент будет уметь показывать содержимое инфоблока. Инфоблок включает в себя элементы и разделы. Значит, наш комплексный компонент должен уметь:

  • показывать элемент инфоблока, простой компонент tokmakov:iblock.element
  • показывать раздел инфоблока, простой компонент tokmakov:iblock.section
  • показывать главную страницу инфоблока, простой компонент tokmakov:iblock.popular

Создадим внути папки /local/ такую структуру:

Красным цветом выделено все, что относится к комплексному компоненту, а зеленым выделены три простых компонента.

Простой компонент tokmakov:iblock.element

Выводит детальную информацию об элементе инфоблока: заголовок, детальную картинку, количество просмотров, детальное описание. В браузере это выглядит примерно так:

Метод поддержки внутреннего кеширования компонента. Возвращает true в случае, если кеш недействителен, или false в противном случае.

Если кеш действителен, метод отправляет на экран его содержимое, заполняет $arResult и возвращает false . Если кеш недействителен, метод возвращает true , кеширование завершается и кеш сохраняется при вызове методов

  • CBitrixComponent::IncludeComponentTemplate()
  • или
  • CBitrixComponent::ShowComponentTemplate()

сразу после подключения шаблона компонента.

  • cacheTime — Время кеширования в секундах. Если этот параметр равен false , то время кеширования берется из входного параметра $arParams[‘CACHE_TIME’] . Необязательный.
  • additionalCacheID — Кеш зависит от текущего сайта ( SITE_ID ), имени компонента, имени шаблона, входных параметров $arParams . Если кеш должен зависеть от каких-либо дополнительных параметров, то их необходимо передать сюда в виде строки. По умолчанию параметр равен false , т.е. кеш зависит только от текущего сайта SITE_ID , имени компонента, имени шаблона и входных параметров $arParams . Необязательный.
  • cachePath — Путь к файлу кеша относительно папки кешей. Необязательный.
Ссылка на основную публикацию
Adblock detector