Телеграм: @camouf_ru Почта: mihail@bazarow.ru
Лето Осень Зима Весна

Вывод элементов с помощью API битрикс

Просмотров: 20471

Иногда, выводить элементы инфоблока с помощью компонентов, может оказаться избыточным. Например, если нужно вывести элементы инфоблока для реализации слайдера в шаблоне. Расскажу как вывести с помощью API Битрикс CIBlockElement::GetList

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

Но, что бы листинг шаблона был не очень длинным, если таких вставок достаточно много, эффективнее выводить с помощью API

<?
 if (CModule::IncludeModule("iblock")):
 $iblock_id = 11; // ID инфоблока из которого выводим элементы
 $mySlider = CIBlockElement::GetList (
 // Сортировка элементов
     Array(
        "ID" => "ASC"
    ),
     Array(
        "IBLOCK_ID" => 
        $iblock_id
    ),
    false,
    false,
    // Перечисляесм все свойства элементов, которые планируем выводить
    Array(
         'ID',
         'NAME',
         'PREVIEW_PICTURE',
         'PREVIEW_TEXT',
         'PROPERTY_LIN_PR'
     )
 );
 while($arFields = $mySlider->GetNext())
 {
 //Выводим элемент со всеми свойствами + верстка
 $img_path = CFile::GetPath($arFields["PREVIEW_PICTURE"]);
 echo '<li><a href="'.$arFields['PROPERTY_LIN_PR_VALUE'].'">';
 echo '<h4>'.$arFields['NAME']."</h4>";
 echo "<img src='".$img_path."'/>";
 echo "<p>".$arFields['PREVIEW_TEXT']."'</p>";
 echo '</a></li>';
 }
 endif;
 ?>

Если попробуете вывести свойство типа HTML/TEXT получите Array. Для его вывода используйте конструкцию


echo htmlspecialcharsBack($ar_fields['PROPERTY_КОД_СВОЙСТВА_VALUE']["TEXT"]);
Ренат Рахимов22.05.2016
такой же слайдер по Вашему уроку сделал.

вопрос вот какой: Как сделать такой же слайдер   в карточке товара например,  т.е. вызвать только значения поля MORE_photo и запихать эти фотки в DIVы
Михаил Базаров23.08.2016
Цитата
Ренат Рахимов пишет:
такой же слайдер по Вашему уроку сделал.

вопрос вот какой: Как сделать такой же слайдер в карточке товара например, т.е. вызвать только значения поля MORE_photo и запихать эти фотки в DIVы
Можно вот так https://camouf.ru/blog-note/301/ само собой, вместо фансибокса воспользуйтесь скриптами и верстой слайдера
Александр Силуянов03.07.2017
Михаил, а как вывести таким методом новости из одного раздела у которого известно ID?
Спасибо.
Михаил Базаров04.07.2017
Цитата
Александр Силуянов написал:
Вывод элементов с помощью API битрикс
Код
Array("IBLOCK_ID" => $iblock_id, "SECTION_ID" => ТУТ_ID_РАЗДЕЛА),

В общем, собирайте в массив все известные параметры элементов
Александр Силуянов06.07.2017
Михаил, спасибо огромное! Без вас погиб бы))
Александр Силуянов06.07.2017
Цитата
Михаил Базаров пишет:
Цитата
Александр Силуянов написал:
Вывод элементов с помощью API битрикс
Array("IBLOCK_ID" => $iblock_id, "SECTION_ID" => ТУТ_ID_РАЗДЕЛА),

В общем, собирайте в массив все известные параметры элементов
Последний вопрос: количество элементов ограничить в таком методе возможно?
Михаил Базаров28.10.2017
Тоже самое на D7

Подключаем модуль

use Bitrix\Main\Loader; Loader::includeModule('iblock');
$dbItems = \Bitrix\Iblock\ElementTable::getList(array(
Сергей Стефанович27.02.2018
Цитата
Михаил Базаров написал:
Тоже самое на D7

Подключаем модуль

use Bitrix\Main\Loader; Loader::includeModule('iblock');
$dbItems = \Bitrix\Iblock\ElementTable::getList(array(
А можно полный пример кодом? не совсем понял что нужно сделать.
Mansher18.07.2018
Михаил, подскажите пожалуйста! Как отобразить иконки на детельной странице-горизонтально? у меня их 4 и они идут одна под другой, а мне нужно 4 в один ряд. Спасибо!
Mansher18.07.2018
не получается Вам код отобразить...
Михаил Базаров18.07.2018
Цитата
Mansher написал:
не получается Вам код отобразить...
Иконка в панели пятая справа <...> для вставки кода
Mansher19.07.2018
Нет всё-равно не получается(
Михаил Базаров19.07.2018
Цитата
Mansher написал:
Нет всё-равно не получается(
Вы, так понимаю, картинку пытаетесь вставить. Нужно прямо текстом в тег <...>
Mansher19.07.2018
В Вашем видео-" Трансляция фейловая  Базовая верстка карточки товара" (на примере интернет-магазина велосипедов) я так и не дождалась как Вы перенесёте текст с описанием товара в левую часть блока, под картинку велосипеда. Именно к такому виду мне нужно привести свою детальную страничку. Чтобы все свойства были справа от картинки, а описание слева, под картинкой.
Mansher19.07.2018
Не могу найти шаблон, где прописан текст описание товара на детальной странице и где может быть изображение.
Алексей Иванов26.08.2019
Добрый день.
Сдела слайдер.
Если все слайды удалить, то выводится пустой html.
Делал проверку типа такой:
if ($arItem = $rsItems->GetNext()){    // есть такой элемент }
Тогда даже есть 1 слайд не выводит ни чего.
Алексей Иванов26.08.2019
Подскажите как проверить на наличие элементов в инфоблоке?
Если пусто то вообще не выводит ни чего.
Михаил Базаров27.08.2019
Цитата
Алексей Иванов написал:
Подскажите как проверить на наличие элементов в инфоблоке?
Если пусто то вообще не выводит ни чего.
Если пусто-то ни чего и не выведется. Если правильно понял вопрос.
Андрей Белый24.09.2019
Добрый день!
Подскажите пожалуйста, как вывести элементы конкретно раздела инфоблока?
Андрей Белый24.09.2019
Вопрос решен
Павел Березовский14.01.2020
Доброго времени, Михаил. Прошу помощи. Суть в следующем : есть 2 компонента, news.list и catalog.element. В первом компоненте реализован счетчик обратного времени, привязан к свойству ИБ(SHOW_TIMER) Можно ли мне с помощью АПИ Битрикса выводить этот счетчик во втором компоненте?

Цены и сроки на разработку проекта

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

Опросник на разработку:

Вы можете скачать развернутый опросник на разработку, заполнить и выслать на электронную почту.

Скачать опросник.doc

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

Заказать разработку