Битрикс структура. Битрикс

О CMS 1С-Битрикс

Система ориентирована на корпоративные сайты, информационные и справочные порталы, социальные сети, интернет-магазины, сайты СМИ, пригодна для создания других видов веб-ресурсов.

Для хранения данных сайта используется реляционная СУБД . Поддерживаются следующие СУБД: Oracle, MS SQL . Продукт работает на Microsoft Windows и UNIX‐подобных платформах , включая GNU/Linux .

«1С-Битрикс: Управление сайтом» продаётся в одной из семи составленных фирмой-разработчиком редакций (Старт, Стандарт, Эксперт, Малый бизнес, Бизнес, Портал, Большой бизнес), определяющих набор модулей и функциональность системы. На сегодняшний день в системе доступны 26 модулей: Главный модуль, Управление структурой, Информационные блоки, Поиск, Социальные сети, Проактивная защита, Компрессия, Веб-формы, Форумы, Подписка, Рассылки, Опросы, Блоги, Фотогалерея 2.0, Веб-аналитика , Реклама, Техподдержка, Почта, Обучение, Тестирование, Перевод, Валюты, Веб-сервисы, Торговый каталог, Интернет-магазин, Документооборот, AD/LDAP, Монитор производительности.

Для корректной работы с данной системой управления пользователям без знания языков HTML и PHP требуется предварительная настройка системы (создание шаблона на базе графического дизайна, создание структуры разделов и страниц, а также подключение модулей системы). Данную возможность предоставляют партнёры компании 1С-Битрикс .

Идеология системы представляет собой разделение логики на модули и компоненты. Модули в «1С-Битрикс: Управление сайтом» - это набор программных компонентов, отвечающих за работу с различными типами баз данных, а также предоставляющих унифицированный API системы. Компоненты служат для связи конечного представления информации на сайте с программным ядром системы. Они используют API, созданный модулями, для организации выборки, модификации, управления информацией в базе данных. Компоненты гораздо проще модулей, поэтому изменение логики работы сайта довольно простое. В то же время, предоставляемый функционал API довольно гибкий и каждый компонент может использовать его по-своему. Например, на базе модуля «Инфоблоки» можно организовать любые каталоги: новости, каталог товаров, каталог партнёров, фотогалерею. Для организации отдельного типа каталогов отвечает свой компонент, хотя модуль один и тот же.

Первая версия системы выпущена в 2001 году. На системе создано более 20000 сайтов. В России и СНГ сайты на «1С-Битрикс» разрабатывают более 3000 веб-студий.

На настоящий момент доступна версия 8.0.3.

О корпоративном портале 1С-Битрикс

«1С-Битрикс: Корпоративный портал» - программный продукт для создания внутрикорпоративного информационного ресурса, решающего коммуникационные, организационные и HR-задачи компании. В составе которого 23 модуля для управления информационным наполнением, структурой, форумами, рекламой и другими возможностями сайта.

Недостатки системы

Список изменений версий модулей 1С-Битрикс

Версии модулей (на 09.05.2009)

МОДУЛЬ - ВЕРСИЯ - ИЗМЕНЕНИЕ
Главный модуль - 8.0.4 - 21.04.2009
Проактивная защита - 8.0.5 - 21.04.2009
Управление структурой - 8.0.3 - 14.04.2009
Информационные блоки - 8.0.2 - 22.04.2009
Поиск - 8.0.2 - 20.04.2009
Компрессия - 8.0.0 - 07.04.2009
Веб-формы - 8.0.2 - 07.04.2009
Форум - 8.0.8 (beta) - 05.05.2009 (new)
Подписка, рассылки - 8.0.1 - 20.04.2009
Опросы, голосования - 8.0.2 - 23.04.2009
Блоги - 8.0.3 - 23.04.2009
Фотогалерея 2.0 - 8.0.0 - 07.04.2009
Социальная сеть - 8.0.3 - 23.04.2009
Статистика - 8.0.1 - 21.04.2009
Реклама, баннеры - 8.0.4 - 06.05.2009 (new)
Техподдержка - 8.0.1 - 21.04.2009
Почта - 8.0.1 - 21.04.2009
Обучение - 8.0.1 - 21.04.2009
Перевод - 8.0.1 - 21.04.2009
Валюты - 8.0.1 - 21.04.2009
Веб-сервисы - 8.0.0 - 27.03.2009
Торговый каталог - 8.0.1 - 21.04.2009
Интернет-магазин - 8.0.1 - 21.04.2009
Документооборот - 8.0.2 - 21.04.2009
AD/LDAP интеграция - 8.0.0 - 07.04.2009
Монитор производительности - 8.0.0 - 28.03.2009

См. также

Ссылки

Информация от разработчика

  • www.1c-bitrix.ru - сайт фирмы-разработчика.
  • dev.1c-bitrix.ru - центр поддержки разработчиков.

Статьи и примеры программирования для 1С-Битрикс

Мнения об 1С-Битрикс

  • «1С-Битрикс»: 6 млн хитов - Какую нагрузку выдержит сайт?

Примечания

Wikimedia Foundation . 2010 .

Книги

  • 1С-Битрикс. Корпоративный портал. Повышение эффективности компании , Роберт Басыров , В книге рассказывается о том, как повысить эффективность компании при помощи продукта «1С-Битрикс: Корпоративный портал». Новый продукт поможет вашей компании организовать командную работу,… Категория: Программы Издатель: Питер , электронная книга (fb2, fb3, epub, mobi, pdf, html, pdb, lit, doc, rtf, txt)

Вопрос: Почему допускается хранение контента в файловой системе, пусть даже статичного? Не место ли контенту в базе данных?

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

Размер системы довольно большой, так как в её состав включено множество компонентов необходимых для быстрого старта и работы административной части. Компоненты не консолидированы, потому что система модульная. Модули, компоненты и шаблоны имеют определенную структуру. Это важно и для обновлений системы и для разработки своих компонентов.

Большое количество файлов - свойство аналогичных систем. (У ZendFramework есть такая же особенность). При правильной конфигурации хостинга эту проблему возьмут на себя прекомпиляторы php. Критичным может оказаться размер выделяемого хостером места и большое число файлов системы. (Проблемой становится не штатная работа Bitrix Framework, а, например, работа систем бэкапов у хостеров. На большом количестве файлов они начинают себя чувствовать не очень хорошо.) Поэтому для выбора хостера рекомендуем пользоваться списком рекомендуемых хостингов .

Резюме . В качестве инструмента хранения структуры сайта выбрана именно файловая система, а не база данных в силу того что:

  • Файл дает больше свободы разработчику сайта. Поскольку файл в системе - это просто исполняемый файл.
  • Так понятнее для управления. В корне такого представления - структура статических страниц HTML, разложенных по папкам. Путем некоторого совершенствования (внедряя небольшое количество PHP-кода), мы из такого сайта сразу получаем работающий на Bitrix Framework проект.
  • В какой-то мере это - традиция, которая имела большое значение на заре становления CMS.
  • Такое представление соответствует опыту контент-менеджеров, которые работают с локальными файловыми системами (папки и файлы).

Структура сайта также может быть и в БД (инфоблоки), но управлять иерархией в реляционной БД не очень-то удобно.

Рассмотрим использование файлов в Bitrix Framework на примерах:

  1. Файловая система и меню . Меню в файлах позволяет не подключать БД там, где это реально не нужно. То же самое относится к свойствам страниц и разделов, а также правам доступа к файлам. Теоретически можно собрать информационный сайт, где вообще не будет ни одного обращения к БД. Будет работать быстрее, особенно на разделяемом хостинге. Есть и бонусы: при копировании раздела сразу естественным образом копируются меню, права доступа, свойства раздела.
  2. Файловая система и пользователи . Пользователям из административного раздела открыт доступ к файлам ядра и другим программным файлам. Но пользователи бывают разные. Например, техподдержка 1С-Битрикса. Если веб-разработчик не уверен в своих пользователях, то он всегда может запретить им как редактирование кода PHP, так и целых разделов (ядра). По современной концепции Bitrix Framework в публичной части не должно быть кода PHP - все должно быть инкапсулировано в компоненты. Тогда пользователь редактирует или "голую" статику, или настраивает компонент.
  3. Файловая система и языковые версии . Было бы трудно сопровождать языковую информацию в БД. Информация в языковых файлах меняется крайне редко - проще раз в год отредактировать строчку в языковом файле, чем хранить эти статические фразы в базе. И повторимся: база данных - это медленно и избыточно.

Структура файлов

Файловая структура Bitrix Framework организована таким образом, что программные компоненты ядра продукта были отделены от пользовательских файлов, а также файлов, определяющих внешнее представление сайта. Данная особенность позволяет:

  • избежать нежелательной модификации ядра продукта при работе с файлами системы;
  • исключить возможность изменения публичной части сайта при загрузке обновлений продукта.
  • настроить внешний вид сайта практически под любую вашу задачу

Вся система целиком лежит в каталоге /bitrix/ , в него входят следующие подкаталоги и файлы:

  • /admin/ - административные скрипты;
  • /cache/ - файлы кэша;
  • /activities/ - папки действий для бизнес-процессов;
  • /components/ - папка для системных и пользовательских компонентов;
  • /gadgets/ - папки гаджетов;
  • /js/ - файлы javascript модулей;
  • /stack_cache/ - файлы кеша "с вытеснением";
  • /themes/ - темы административного раздела;
  • /wizards/ - папки мастеров;
  • /images/ - изображения используемые как системой в целом, так и отдельными модулями;
  • /managed_cache/ - управляемый кеш;
  • /modules/ - каталог с модулями системы, каждый подкаталог которого имеет свою строго определённую структуру;
  • /php_interface/ - вспомогательный служебный каталог, в него входят следующие каталоги и файлы:
    • dbconn.php - параметры соединения с базой;
    • init.php - дополнительные параметры портала;
    • after_connect.php - подключается сразу же после создания соединения с базой;
    • dbconn_error.php - подключается при ошибке в момент создания соединения с базой;
    • dbquery_error.php - подключается при ошибке в момент выполнения SQL запроса;
    • / ID сайта /init.php - дополнительные параметры сайта; файл подключается сразу же после определения специальной константы c идентификатором сайта - SITE_ID ;
  • /templates/ - каталог с шаблонами сайтов и компонентов, в него входят следующие подкаталоги:
    • /.default/ - подкаталог с общими файлами, используемыми тем или иным шаблоном по умолчанию, структура данного каталога аналогична нижеописанной структуре каталога содержащего конкретный шаблон;
    • /ID шаблона сайта/ - подкаталог с шаблоном сайта, в него входят следующие подкаталоги и файлы:
      • /components/ - каталог с кастомизированными шаблонами компонентов;
      • /lang/ - принадлежащие как данному шаблону в целом, так и отдельным компонентам;
      • /images/ - каталог с изображениями данного шаблона;
      • /page_templates/ - каталог с шаблонами страниц и их описанием хранящимся в файле .content.php . Когда пользователь создает новую страницу, он может выбрать, по какому шаблону из представленных в этом каталоге это будет сделано;
      • header.php - пролог данного шаблона;
      • footer.php - эпилог данного шаблона;
      • template_styles.css - основной файл стилей для шаблона;
      • styles.css - CSS стили шаблона для визуального редактора (вкладка Стили сайта);
  • /tools/ - при инсталляции в этот каталог копируются дополнительные страницы, которые могут быть непосредственно использованы на любых страницах сайта: помощь, календарь, показ изображения и т.п.;
  • /updates/ - каталог, автоматически создаваемый системой обновлений;
  • header.php - стандартный файл, подключающий в свою очередь конкретный пролог текущего шаблона сайта; данный файл должен использоваться на всех страницах публичной части;
  • footer.php - стандартный файл, подключающий в свою очередь конкретный эпилог текущего шаблона сайта; данный файл должен использоваться на всех страницах публичной части;
  • license_key.php - файл с лицензионным ключом;
  • spread.php - файл используемый главным модулем для переноса куков посетителя на дополнительные домены различных сайтов;
  • redirect.php - файл используемый модулем Статистика для фиксации событий перехода по ссылке;
  • rk.php - файл по умолчанию используемый модулем Реклама для фиксации событий клика по баннеру;
  • stop_redirect.php - файл используемый модулем Статистика для выдачи какого либо сообщения посетителю, попавшему в стоп-лист;
  • activity_limit.php - файл используемый модулем Статистика для выдачи сообщения роботу при превышении им лимита активности;
  • и другие служебные файлы и папки.

В зависимости от используемой редакции некоторые каталоги и файлы могут отсутствовать.



Любовь

Kosta
Доступно написал,…
Сергей
Спасибо

Администратор
Конечно можно. Достаточно в журнале выбрать отбор "Текущее состояние" - "Только…
Лариса
Здравствуйте! Подскажите пожалуйста, можно ли скрыть закрытые заказы из списка Заказы…
Администратор
Видимо я хотел завязаться на сесии битрикса. Но так не сделал. В итоге эта строчка…
Андрей
Добрый день, спасибо за статью. По мере прочтения возник вопрос, для чего в коде обработки…
Администратор
Проблемным место связи 2х программ всегда является обмен. Редко когда получается настроить обмен и…
Марина
Здравствуйте!Сейчас работаем в ут 11, стоит ли перходить на связку УТ+розница? Какие подводные…
Аhn
Присоединяюсь к вопросу о актах расхождений после…
Любовь
Кассовой книги в УНФ нет (строка 159). Сформировать можно только через внешние отчеты, которых нет…
Kosta
Доступно написал,…
Сергей
Спасибо

Последние статьи

Инфоблок - это сущность объединяющая в себе несколько таблиц в базе данных. Он позволяет работать с базой данных не задумываясь о структуре таблиц и взаимосвязях между ними. Для работы с инфоблоком существует специальное API. Так же инфоблок представлен в административной части сайта и имеет весь необходимый набор визуальных команд для просмотра и редактирования информации в инфоблоке. Практически всё, что делается в системе в той или иной мере завязано на этот модуль, даже если это и не отображается явно.

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

  • Типы информационных блоков (b_iblock_type )
  • Информационные блоки (b_iblock )
  • Элементы (b_iblock_element )
  • Группы (разделы) информационных блоков (b_iblock_section )
  • Привязка элементов к разделам. Автоматическая таблица. (b_iblock_section_element )
  • Свойства разделов инфоблока (b_iblock_section_property )
  • Поля элементов инфоблока (b_iblock_fields )
  • Свойства элементов инфоблока (b_iblock_property )
  • Варианты значений свойств типа "список" (b_iblock_property_enum )
  • Значения cвойств (b_iblock_element_property )
  • SEO свойства (b_iblock_iproperty )
  • Привязка инфоблоков к сайтам (b_iblock_site )
  • Права доступа к инфоблоку в стандартном режиме прав (b_iblock_group )
  • Права доступа к инфоблоку в расширенном режиме прав (b_iblock_right )
  • Расширенные права доступа к разделам. Автоматическая таблица. (b_iblock_section_right )
  • Расширенные права доступа к элементам. Автоматическая таблица. (b_iblock_element_right )
  • Блокировка элементов. Используется модулем Бизнес-процессов (b_iblock_element_lock )
  • Таблица генераторов последовательностей для свойства типа "Счётчик". Автоматическая. (b_iblock_sequence )
  • Языкозависимые параметры типов информационных блоков (b_iblock_type_lang )
Впечатляет да? Конечно не все таблицы используются всегда, но тем не менее надо понимать, что инфоблок это универсальная сущность гибкая, но и тяжелая. Любое обращение к базе данных приводит к тяжелым и долгим запросам. Отсюда и требования к высокопроизводительному хостингу у Битрикс и необходимость использования кеширование. Это основной минус Инфоблоков Битрикс.
И давайте сразу поговорим о плюсах и минусах такого подхода.

Плюсы

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

Создание инфоблока

Я не буду подробно останавливаться ни работе с Инфоблоком в админки Битрикс, я думаю с этим можно разобраться самостоятельно. Я только опишу то, что будет нам необходимо для разработки нашего магазина StartShop. А сам инфоблок мы загрузим готовый из XML файла, чтобы вы имели уже наполненный инфоблок товаром с картинками и могли с ним работать, не тратили время на наполнение.
Управление инфоблоками находится в разделе Контент .
Нам потребуется отдельный Тип инфоблока , назовем его Каталог, он должен быть древовидным.
Тип инфоблока, это своего рада группировка которой удобно отделять одни инфоблоки от других. У нас будет как минимум 2 типа инфоблока: Каталог и Сервис .
Далее нам потребуется инфобок, который мы назовем Товары .
Помимо обязательных полей Название , Символьный код , привязка к сайту хочу обратить внимание на настройку ЧПУ (URL страниц) это важно. Настройки URL определяют адрес по которой будет выдаваться элемент инфоблока или список элементов. Ведь страниц товаров не существует, как отдельных страниц на сайте. Они генерируются динамически, компонент делает запрос к инфоблоку, получает данные и выдает виртуальную страницу по определенному адресу. Шаблон адреса, по которому нужно сделать запрос к инфобоку будет настроен в параметрах компонента (например Новости) и этот шаблон должен совпадать с настройками инфоблока. В противном случае откроется пустая страница.
Давайте пока просто настроем, как у меня, а при настройке вывода данных вам станет понятно, как все работает.
  • URL страницы информационного блока: #SITE_DIR#/catalog/
  • URL страницы раздела: #SITE_DIR#/catalog/#SECTION_CODE#/
  • URL страницы детального просмотра: #SITE_DIR#/catalog/#SECTION_CODE#/#ELEMENT_CODE#/
Следующее, что нам понадобится настроить дополнительные поля Свойства инфоблока.

Про все свойства я буду рассказывать по мере потребности в них. Сейчас же обращу внимание только на два первых: Цена и Количество , это те данные которые потребуются для товара. Оба свойства будут иметь тип Число .
Если раскроете выпадающий список Тип увидите, что у свойства могут иметь различные типы данных. Не только примитивные типы (булево, строка, число, дата), а также и сложные типы (видео, файл, текст, привязка к элементам инфоблока, привязка к картам и др.). Т.е. о чем я говорил выше инфоблок очень универсальная сущность способная хранить различные данные в себе.

Импорт / экспорт инфоблоков

Академия Битрикс (материалы для инфоблока)

И так, интернет магазин у нас будет продавать одежду. Данные инфоблока я возьму из Битрикс академии .


Очень рекомендую посмотреть их видео уроки. Очень все четко и на высоком уровне. Не так подробно, как у меня, но зато потратив пару часов можно охватить очень много информации.
Инфоблок мы возьмем из материалов курса Быстрый старт разработчика . Там находятся те же изображения (надо сказать очень симпатичных девушек), что и в demo-данных типового интернет-магазина Битрикс. Все материалы курса в том числе и инфоблок можно скачать с сайта 1c-bitrix . Я же немного подкорректировал инфоблок, и выкладываю только его на своем сайте.

Экспорт Инфоблока

Экспорт и импорт инфоблоков это ещё одна очень удобная возможность работы с инфоблоками, особенно при изучении Битрикс. И сейчас расскажу почему. Когда у вас нет лицензии, установка Битрикс работает всего 30 дней. Чтобы продолжить разработку вы можете поставить новое веб-окружение Битрикс снова на 30 дней (об этом был Урок 2). Но что делать с данными. вносить в ручную? Вот тут нас спасет возможность экспорта и импорта данных ифоблока. Таким образом на демо-версии можно работать достаточно долго. Инфоблоки загрузить через экспорт/импорт, а структуру сайта и папку local просто скопировать со старого проекта.
Чтобы экспортировать Инфоблок нужно перейти в админке Битрикс в раздел Контент .


Есть возможность экспортировать в 2 формата CSV и XML . Особенности экспорта в этих форматах следующие:

CSV

При экспорте в CSV есть возможность настроить поля, которые будут выгружаться в файл. Но при этом картинки выгружены не будут.

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

XML

При экспорте в XML возможностей настраивать выгружаемые поля нет, инфоблок будет выгружен полностью, но зато вместе с изображениями.
Изображения будут выгружены в туже директорию в папку catalog_files в виде папки iblock .
При импорте из XML возможности выбрать поля для импорта нет. Будет создан новый или обновлен существующий инфоблок целиком. Даже не обязательно указывать Тип инфоблока при импорте, он будет создан автоматически.
Данный способ отлично подходит для переноса наработок с одного сайта на другой. Например обработали данные на тестовом сайте, потом перенесли их на рабочий. Ну или, как я писал выше, таким образом можно переносить данные на демо-установку и продолжать ей пользоваться. Для изучения Битрикс это просто незаменимый механизм. Им мы и воспользуемся. Скачайте архив с данными инфоблока и загрузите в свой проект, например в папку uplod. Распакуйте архив в текущую папку.


После выполните импорт через XML, как на картинке выше выбрав для импорта файл catalog.xml . Будет загружен инфобок со всеми картинками из папки catalog_files. (Одно замечание, при загрузки картинки не обновляются и если изначально инфоблок загружен без них, то они не добавятся. В этом случае нужно удалить полностью инфоблоки или элементы из него и загрузить сразу с картинками.)
Перейдите в инфоблок Товары и проверьте, должно получится следующее.
А чтобы сразу в списке увидеть изображения список нужно настроить. Для этого в списке в правом верхнем углу нажмите кнопку настройки.


И выберете нужные для отображения поля. В данном случае Картинка для анонса. (в дальнейшем можно будет вывести количество и цену для удобства).

От автора:
Ну вот разобрались Инфоблоками - главной сущностью Битрикс. С ними мы будем работать на протяжение всего курса. Все нужные данные будут хранится в инфоблоках. Это и список банеров, и комментарии и подписки и все, что нам ещё понадобится. И уже в следующей статье мы выведем информацию из инфоблока с помощью компонента bitrix:news . Подписывайтесь если ещё не подписались и до новых уроков!

Немного теории:

В системе Bitrix заложена довольно популярная архитектура: разделения данных, представления и обработки действий пользователя на три отдельных компонента.
Данная архитектура именуется как MVC (Model-view-controller, «Модель-представление-поведение»), и широко применяется для проектирования различных программных продуктов.

В свою очередь шаблон MVC для Bitrix Framework формируется из следующих частей:
Модель — это API;
Представление — это шаблоны;
Контроллер — это компонент;

В данной статье мы поговорим о компоненте Bitrix .
Компонент — это контроллер и представление для использования в публичном разделе. Компонент с помощью API одного или нескольких модулей манипулирует данными. Шаблон компонента (представление) выводит данные на страницу.

Структура компонента

Стандартные компоненты Bitrix хранятся в каталоге /bitrix/components/bitrix/. Как утверждают разработчики: компоненты находящиеся в данном каталоге могут перезаписываться при обновлении, и для кастомизации компонентов предпочтительно заводить отдельный каталог для своих компонентов.

В связи с этим в каталоге /bitrix/components/ заводим новый каталог, в котором будут храниться наши компоненты.

Дадим ему имя custom. Теперь создадим каталог для нашего компонента /bitrix/components/custom/sections.list/. Привычная структура папок и файлов простого компонента выглядит так:
— help
— images
— lang
— templates
.description.php
.parameters.php
component.php

Рассмотрим всё это по порядку.
В папке help обычно лежит файл .tooltips.php , содержащий массив всплывающих подсказок для настроек компонента. Не будем на нём останавливаться, пример этого файла можно посмотреть в других компонентах.
В папке images обычно лежит иконка компонента.
В папке lang лежат подпапки для языковых параметров компонента.
В папке templates — все шаблоны компонента.
Можно сразу сделать шаблон по умолчанию для нашего компонета. Полный путь до него будет выглядеть так: /bitrix/components/custom/sections.list/templates/.default/template.php.
Вставим туда пока одну единственную строчку «Это шаблон компонента custom:sections.list».

В файл .description.php прописываем следующий код:

"Custom: список разделов инфоблока", "DESCRIPTION" => "Список разделов инфоблока", "ICON" => "/images/sections_list.gif", "CACHE_PATH" => "Y", "PATH" => array("ID" => "utility",),); ?>

Итак, файл содержит массив с описанием компонента.
Далее следует файл — .parameters.php :

array("IBLOCK_ID" => array("NAME" => "Id инфоблока", "TYPE" => "STRING", "MULTIPLE" => "N", "PARENT" => "BASE",), "CACHE_TIME" => array("DEFAULT"=>3600),),); ?>

Рассмотрим содержимое файла более подробно. Ключ PARAMETERS массива $arComponentParameters представляет собой массив с описанием параметров. Наш компонент будет содержать только один основной параметр — IBLOCK_ID (ID инфоблока, из которого будут показываться разделы).
Ключи:
NAME — название параметра;
TYPE – тип;
MULTIPLE — множественность (если ‘Y’, то наш параметр сможет принимать массив значений);
PARENT — родитель (параметры можно делить на группы);

Обратите внимание на второй параметр CACHE_TIME — он по умолчанию для компонентов Bitrix и устанавливает время кеширования.

Из массива $arComponentParameters будет сгенерирован массив $arParams, который будет использоваться в основном файле нашего компонента — component.php

Содержимое файла component.php :

"; print_r($arParams); echo ""; CModule::IncludeModule("iblock"); if ($this->StartResultCache(3600)) { $iblock_id = $arParams["IBLOCK_ID"]; $arFilter = array("IBLOCK_ID"=>$iblock_id); $db_list = CIBlockSection::GetList(array("NAME"=>"ASC"), $arFilter, true, array("ID", "NAME", "CODE")); while($ar_result = $db_list->GetNext()) { $arResult = array("ID" => $ar_result["ID"], "CODE" => $ar_result["CODE"], "NAME" => $ar_result["NAME"], "ELEMENT_CNT" => $ar_result["ELEMENT_CNT"]); } // echo "

"; print_r($arResult); echo "
"; $this->IncludeComponentTemplate(); } ?>

Файл component.php содержит всю логику компонента, основная задача этого файла — сформировать из полученных параметров ($arParams) массив $arResult, который впоследствии будет передан в шаблон компонента. Обратите внимание на два комментария. Раскомментировав их, вы всегда сможете наблюдать за тем, какие параметры приходят в компонент, и какой результат получает шаблон.
Код созданного нами компонента не сложен — в зависимости от полученого параметра (ID инфоблока) мы делаем выборку разделов и сохраняем их в массив $arResult. Следует обратить внимание на вызов метода $this->StartResultCache(). Он проверяет, есть ли у нашего компонента актуальный кеш. Если он есть, то выводится информация из кеша. Следовательно, запроса к базе нету, массив $arResult не генерируется, и даже шаблон не подлючается (метод $this->IncludeComponentTemplate()).

Шаблон компонента

Следующий шаг — создание шаблона для компонента. Шаблон принимает массив $arResult, сгенерированный в файле component.php и выводит его содержимое в браузер. Файл шаблона нашего компонента будет находиться по следующему пути: /bitrix/components/custom/sections.list/templates/.default/template.php
Код в шаблоне компонента:

Рубрики блога

()

Вызов компонента

После создания компонента его необходимо вызвать в нужном участке кода на сайте. Для этого создадим в корне сайта файл test.php, и пропишем в него следующий код:

IncludeComponent("custom:sections.list", ".default", array("IBLOCK_ID" => 1), false); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>

Для параметра IBLOCK_ID необходимо указать ID инфоблока, содержащего разделы. Записав параметры в файле, следует запросить скрипт посредством браузера, и просмотреть результат./strong