Дата последнего изменения: 09.11.2023
Цитатник веб-разработчиков.
Ban Dmitry: Ну да, при работе с битриксом часто надо думать, в какие запросы трансформируется твой вызов API. Но, думается мне, в любых других высокоуровневых средах разработки то же самое. |
Начальные сведения об инфоблоках.
Потребности заказчиков сайтов очень разнообразны. Штатный функционал Bitrix Framework не может решать всех задач, которые могут быть поставлены перед разработчиком при создании интернет-проектов. Для реализации нестандартных задач необходимо использовать API. API инфоблоков рекомендуется особенно внимательно изучить. Они чаще всего используются при программировании.
API модуля состоит из нескольких высокоуровневых функций для выборки данных в публичном разделе сайта и набора классов с низкоуровневыми методами для более специализированной работы.
Перед использованием модуля необходимо проверить, установлен ли он, и подключить его при помощи конструкции:
<? if(CModule::IncludeModule("iblock")) { //здесь можно использовать функции и классы модуля } ?>
Для получения данных при показе в публичном разделе сайта можно пользоваться функциями с простыми параметрами и предустановленными фильтрами. Эти функции выбирают по умолчанию те значения, которые подходят для места выборки, а именно только активные, привязанные к текущему сайту, подходящие по правам доступа и т.п.
Вся работа с датами через API (вставка, выборка, фильтры и т.п.) производится в формате текущего сайта или, если в административной части, в формате текущего языка.
Ряд функций API доступен всегда, т.е. описан в главном модуле, а ряд функций зависит от используемого модуля, и может присутствовать или отсутствовать в различных редакциях продукта. Например, функции для работы с социальной сетью присутствуют в редакциях «1С-Битрикс: Управление сайтом - Бизнес» и выше, а также в «1С-Битрикс: Корпоративный портал».
Для большинства классов Bitrix Framework доступны функции:
Для большинства модулей предлагается специализированная структура классов, механизм событий и дополнительные функции. В частности, для модуля Информационные блоки приводится описание:
В уроках главы будут рассмотрены некоторые примеры использования API информационных блоков.
Совет от веб-разработчиков Антон Долганин: Всегда минимизируйте запросы, если в цикле идет запрос к элементу ИБ, к примеру, то уже думайте над минимизацией. Да, это займет больше времени, но и вам скажут спасибо. Нельзя: foreach($arResult["ORDERS"] as $key => $val) { foreach($val["BASKET_ITEMS"] as $vvval) { $rsEls = CIBlockElement::GetByID(); } }Следует: foreach($arResult["ORDERS"] as $key => $val) { foreach($val["BASKET_ITEMS"] as $vvval) { $arIDs[] = $vvval["PRODUCT_ID"]; } } $rsEls = CIBlockElement::GetList(array(), array("ID" => $arIDs)); .... foreach($arResult["ORDERS"] as $key => $val) { foreach($val["BASKET_ITEMS"] as $vvval) { //наполняем данные, налаживая соответствие ID-ков } }Фактически, вы сводите порой десятки, если не сотни, запросов к одному. Разве это не круто? Обратите внимание, что приведенный код будет работать и для инфоблоков 2.0, если в выборке по элементам нескольких инфоблоков не запрашиваются и не фильтруются свойства элементов. |
В главе приведены примеры работы с инфоблоками через API. Кроме этого советуем познакомиться со следующими статьями: