Битрикс структура. Битрикс. Информация от разработчика

О 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 - файл используемый модулем Статистика для выдачи сообщения роботу при превышении им лимита активности;
  • и другие служебные файлы и папки.

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

Введение

Основным требованием заказчиков сайтов является скорость создания, поэтому разработчики применяют в своей работе различные web-framework"и , такие как Laravel , Yii , CodeIgniter и прочие, которые содержат в себе набор готовых решений. Но содержимое сайтов часто обновляется, а компании заказчиков редко имеют собственный отдел веб-разработки для внесения правок, и при этом заказывать мелкие правки сторонним разработчикам не имеют никакого желания. Поэтому были разработаны системы управления контентом (CMS ), которые позволяют вносить изменения на сайте, не имея глубоких знаний в программировании. Используя выше перечисленные framework"и разработчики сами создают CMS , но существует множество готовых систем. Такими системами являются Drupal , WordPress , OpenCart , Joomla и 1С Битрикс . О последней как раз и будет эта статья, так как у меня есть опыт разработки сайтов на этой платформе.

В отличие от других перечисленных CMS, 1С Битрикс платная платформа, но эта платформа имеет ряд преимуществ. Во-первых это техническая поддержка, которая быстро помогает с возникшими трудностями. Во-вторых это мощный eCommerce модуль Интернет-магазин, который достаточно хорошо проработан и имеет большое количество возможностей, в частности встроенная интеграция с 1С Предприятие , что делает эту платформу более привлекательной среди своих конкурентов. Также есть много других преимуществ, которые можно найти на официальном сайте .

1. Базовые понятия

Для того чтобы начать разработку сайта на платформе 1С Битрикс необходимо разобраться с базовыми понятиями. На рисунке 1 показана публичная (а) и административная (б) части сайта.

Для переключения публичной и административной частей служат вкладки 1 и 2 соответственно.

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

В публичной части сайта можно создавать и изменять страницы и разделы, для этого служат соответствующие кнопки в верхней панели управления. Страница в Битриксе состоит преимущественно из компонентов. Компонент - это логически завершенный код, предназначенный для извлечения информации из инфоблоков и других источников и преобразования ее в HTML-код для отображения в виде фрагментов веб-страниц . Компоненты бывают комплексные и простые. Комплексный компонент состоит из нескольких простых компонентов. Компоненты доступны в визуальном редакторе при редактировании страницы в публичной части сайта (рисунок 2).


Рисунок 2 - Визуальный редактор 1С Битрикс

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

  1. тип инфоблока - используется для группировки информационных блоков;
  2. инфоблок - блок однородной информации;
  3. раздел - логические единицы, используемые для группировки элементов внутри информационного блока;
  4. элемент инфоблока - непосредственно информация, размещаемая в информационных блоках.

На рисунке 3 показана структура информационного блока Каталог товаров в одном из интернет-магазинов. На рисунке 4 показано отображение этого инфоблока в публичной части компонентом Каталог.


Рисунок 3 - Структура информационного блока в 1С Битрикс


Рисунок 4 - Вывод инфоблока в публичной части

Отображение страниц в публичном разделе сайта выполняется на основе шаблонов дизайна сайта. Шаблон дизайна - это внешний вид сайта, в котором определяется расположение различных элементов на сайте, художественный стиль и способ отображения страниц . Включает в себя программный html-код, графические элементы, таблицы стилей, дополнительные файлы для отображения контента. Может также включать в себя шаблоны компонентов , шаблоны готовых страниц и сниппеты . В общем случае шаблон сайта задает обрамление страницы, а за вывод динамической информации отвечают Визуальные компоненты . Шаблоны дизайна делятся на шаблоны сайта и компонентов. Шаблон сайта можно привязать к странице, к папке на сервере, к условному выражению PHP. Чаще всего, и это является хорошим тоном разработки, один сайт имеет один шаблон сайта, в котором содержатся шаблоны компонентов.

2. Файловая структура платформы 1С Битрикс

Файловая структура framework"а 1С Битрикс имеет следующий вид:

  • /bitrix/ - системный каталог framework а ;
    • templates/ - директория с шаблонами сайта;
      • .default/ - шаблон сайта по умолчанию;
      • <шаблон сайта>/ - пользовательский шаблон сайта;
        • components/ - шаблоны компонентов;
        • images/ - предназначен для картинок шаблона (которые не зависят от просматриваемой страницы);
        • include_areas/ - содержит включаемые области шаблона;
        • lang/ - содержит файлы языковых сообщений;
        • page_templates/ - для шаблонов страниц и редактируемых областей;
        • snippets/ - содержит сниппеты - маленькие фрагменты html-кода для ускорения работы контент-менеджера по созданию часто встречающихся блоков кода;
        • header.php - часть шаблона ДО контента;
        • footer.php - часть шаблона ПОСЛЕ контента;
        • description.php - название и описание шаблона;
        • .styles.php - описания стилей для визуального редактора страниц;
        • template_styles.css - стили шаблона (стили применяемые в самом шаблоне дизайна сайта);
        • styles.css - стили для контента и включаемых областей. Эти стили можно применять в визуальном редакторе;
    • components/ - пользовательские и системные компоненты;
    • modules/ - модули платформы;
    • php_interface/ - вспомогательный служебный каталог, в него входят следующие каталоги и файлы;
      • dbconn.php - параметры соединения с базой;
      • init.php - дополнительные параметры портала, этот файл вызывается на каждой странице;
      • after_connect.php - подключается сразу же после создания соединения с базой;
      • dbconn_error.php - подключается при ошибке в момент создания соединения с базой;
      • dbquery_error.php - подключается при ошибке в момент выполнения SQL запроса;
      • /ID сайта/init.php - дополнительные параметры сайта; файл подключается сразу же после определения специальной константы c идентификатором сайта - SITE_ID;
    • header.php - стандартный файл, подключающий в свою очередь конкретный пролог текущего шаблона сайта; данный файл должен использоваться на всех страницах публичной части;
    • footer.php - стандартный файл, подключающий в свою очередь конкретный эпилог текущего шаблона сайта; данный файл должен использоваться на всех страницах публичной части;
  • /index.php - индексный файл главной страницы публичной части сайта;
  • /urlrewrite.php - содержит выражения для ЧПУ (человеко подобные УРЛы);
  • /.<тип меню>.menu.php - меню сайта типа <тип меню>;
  • /.<тип меню>.menu_ext.php - расширение для динамического меню;
  • /.access.php - файл с правами доступа к публичной части пользователей;
  • /404.php - эта страница вызывается если пользователь перешел на несуществующую страницу.

В этом списке представлены только основные файлы и каталоги, подробное описание всех каталогов и файлов можно посмотреть в официальных курсах 1С Битрикс , .

Также следует отметить основные глобальные объекты основных классов платформы:

  1. $APPLICATION - объект главного модуля сайта класса CMain;
  2. $USER - объект текущего пользователя класса CUser;
  3. $DB - объект для работы с базой данных класса CDBResult.

Подробнее об этих и других не мало важных классах и их методах можно почитать в документации к API (Application Programming Interface) 1С Битрикс .

3. Порядок разработки сайта

Последовательность разработки любого сайта на любой платформе состоит из следующих обязательных этапов:

  1. разработка дизайна сайта;
  2. верстка страниц по дизайну;
  3. перенос верстки на платформу.

После выполнения первого и второго пунктов следует переходить к разработке на 1С Битрикс . Разработка сайта на платформе 1С Битрикс начинается с создания шаблона сайта в папке /bitrix/templates/ и подключение этого шаблона в административной части сайта в Администрирование/Настройки/Настройки продукта/Сайты/Список сайтов, где необходимо выбрать из списка сайт и в пункте шаблон сайта подключить созданный шаблон, как показано на рисунке 5.


Рисунок 5 - Подключение шаблона сайта

После создания шаблона в его директории следует создать файлы, описанные в пункте 2. В файле .description.php следует написать описание шаблона, которое будет показываться в административной части сайта . Далее необходимо оценить верстку и выделить общие части на всех страницах, причем если на одной странице элемента нет, но разработчик уверен, что на всех остальных он будет, то это еще не повод для создания отдельного шаблона сайта, в таких случаях приемлемо написать условие, и в этом условии выводить этот блок. Например, компонент хлебные крошки встречается на всех страницах кроме главной. После выделения общих частей сайта следует эту часть верстки перенести в файлы header.php (верхнюю часть) и footer.php (нижнюю часть). В файле header.php после тега body следует вызвать метод $APPLICATION->ShowPanel() , чтобы при авторизации администратора на сайте отображалась административная панель. Стили, связанные с header.php и footer.php , следует разместить в файле template_styles.css , а общие стили, которые будут применяется контент-менеджером при наполнении сайта следует размещать в файле styles.css , остальные стили должны располагаться в шаблонах компонентов. Типичная структура файла header.php выглядит следующим образом:

1. 2. DOCTYPE html > 3. <html lang ="ru" > 4. <head > 5. <meta charset ="utf-8" /> 6. ShowHead(); ?> 7. <title > ShowTitle() ?>title > 8. <meta http-equiv ="X-UA-Compatible" content ="IE=edge" /> 9. <meta name ="viewport" content ="width=device-width, initial-scale=1.0" /> 10. head > 11. <body > 12. ShowPanel() ?> 13. <header > 14. <div class ="wrapper clearfix" > 15. <a href ="/" class ="logo" style ="background-image: url(/images/logo.svg?1);" > a > 16. IncludeComponent("bitrix:menu" , "top_menu" , Array ("ROOT_MENU_TYPE" => "top" ,"MAX_LEVEL" => "1" ,));?> 17. div > 18. header > 19. GetCurPage(false ) ! == "/" ) { 21. $APPLICATION-> IncludeComponent("bitrix:breadcrumb" , "" , Array ()); 22. } 23. ?>

1. 2. <footer > 3. IncludeComponent("bitrix:main.include" ,"" ,Array ("AREA_FILE_SHOW" => "file" , "EDIT_TEMPLATE" => "phones.php" ));?> 4. footer > 5. body > 6. html >

Следует отдельно отметить некоторые строки этих файлов. Первая строка файла header.php запрещает вызов этого файла, если не было вызвано ядро системы. Метод $APPLICATION->ShowHead() на строке 6 выводит служебные мета теги, например keywords , description . Метод $APPLICATION->ShowTitle() выводит название страницы, которое может устанавливаться в любом месте страницы методом $APPLICATION->SetTtitle() . На строке 15 используется константа SITE_TEMPLATE_PATH , которая содержит путь к шаблону сайта. На строке 16 вызывается компонент меню с шаблоном top_menu и типом top . На 19 строке выполняется вышеописанная ситуация с хлебными крошками. В файле footer.php на третьей строке подключается включаемая область с файлом phones.php . Такая конструкция позволит контент-менеджеру редактировать телефонные номера из визуального редактора не редактируя файл footer.php . Все области, которые разрешается редактировать контент-менеджеру следует выносить во включаемые области.

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

1. SetTitle("Главная" ); ?> 3. IncludeComponent("bitrix:news.list" ,"slider" ,array ("IBLOCK_ID" => "1" ));?> 4.

Между подключениями файлов header.php и footer.php размещается полезный контент страницы, чаще всего это подключение компонентов, как в данном случае, подключение компонента news.list с шаблоном slider , третьим параметром передается массив параметров компонента, в данном случае указываем, что данные необходимо брать из инфоблока с идентификатором 1.

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

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

Папка компонента содержит следующие основные под папки и файлы:

В папке templates содержатся папки с шаблонами компонента, название папки соответствует названию шаблона. Шаблон по умолчанию называется .default . Папка с шаблоном может содержать следующие папки и файлы:

  • /lang - языковые файлы шаблона;
  • result_modifier.php - может модифицировать данные полученные от компонента перед передачей их в шаблона;
  • template.php - обязательный, содержит отображение данных полученных от компонента;
  • component_epilog.php - вызывается после вывода шаблона и не попадает в КЕШ;
  • .parameters.php - может дополнять параметры компонента;
  • style.css - файл, содержащий стили шаблона, подключается автоматически;
  • script.js - файл со сценариями JavaScript, подключается автоматически.

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

Рисунок 6 - Схема работы компонента

Из рисунка видно, что в компонент попадают данные со страницы в массиве $arParams , файл component.php на основе полученных параметров обрабатывает данные и результат кладет в переменную $arResult . Эти переменные передаются в файл result_modifier.php , если он существует, после чего данные попадают в файл template.php , где содержится html код из верстки с php вставками для вывода данных. В файле template.php не должно быть никакой служебной логики, только вывод информации. Далее сформированные данные кешируются, чтобы при последующих вызовах не повторять обработку, а брать данные из КЕШа, и после чего вызывается файл component_epilog.php . Потом сформированный html передается на страницу, на которой вызывался компонент.

Так как файлы в директории /bitrix/components/bitrix/ редактировать нельзя, то для того чтобы создать собственный шаблон компонента необходимо скопировать папку с шаблоном из папки компонента в папку components/<пространство имен>/<название компонента> шаблона сайта и переименовать ее. Например, для кастомизации шаблона компонента news.list необходимо скопировать папку /bitrix/components/bitrix/ news.list/ templates/ .default в папку /bitrix/templates /<шаблон сайта>/components/bitrix/news.list/ и переименовать ее, например в slider . При подключении компонента, ядро битрикс сперва ищет шаблон в папке, подключенного, шаблона сайта, если там не найден ищет в папке шаблона по умолчанию /bitrix/templates/.default/components/ , если там не найден, ищет в папке шаблона компонента, и если и там не найден, то выводится ошибка.

Следует отметить, что если необходимо добавить произвольный css, это необходимо делать при помощи методов $APPLICATION->SetAdditionalCss("my.css") или $this->addExternalCss("my.css") , тогда эти файлы попадут в общий сборщик css и клиенту будет отдаваться один файл вместо нескольких, что уменьшает нагрузку на сервер, при этом данные закешируются. Аналогичные методы для javascript $APPLICATION->AddHeadScript("my.js") или $this->addExternalJS("my.js") . Как уже было отмечено выше, файлы style.css и script.js в шаблоне компонента подключаются автоматически, но если в этой папке есть их минимизированные копии с названиями style.min.css и script.min.js , то у этих файлов будет приоритет выше, чем у их полных копий.

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

Список литературы:

  1. Описание 1С Битрикс: https://www.1c-bitrix.ua/ products / cms/
  2. Курс разработчика 1С Битрикс - Компоненты:https://dev.1c-bitrix.ru/ learning/ course/ index.php? COURSE_ID=43& CHAPTER_ID=04565
  3. Курс контент-менеджера 1С Битрикс - Основные понятия:https://dev.1c-bitrix.ru/ learning /course /index.php? COURSE_ID=34& LESSON_ID=1881
  4. Курс разработчика 1С Битрикс - Шаблон сайта:https://dev.1c-bitrix.ru/learning/ course/ ?COURSE_ID=43& LESSON_ID=2820 https://dev.1c-bitrix.ru/ learning/
  1. Подсветка синтаксиса кода в HTML: http://markup.su/ highlighter/
  2. Архив свободно распространяемых векторных иконок: http://www.flaticon.com/
  3. Создание шаблона сайта на 1С Битрикс: http://alexvaleev.ru/sozdaem-shablon-bitrix/
  4. Создание шаблона на основе Bootstrap:


Любовь

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 . Подписывайтесь если ещё не подписались и до новых уроков!