Просмотров: 25481
Иногда, выводить элементы инфоблока с помощью компонентов, может оказаться избыточным. Например, если нужно вывести элементы инфоблока для реализации слайдера в шаблоне. Расскажу как вывести с помощью 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"]);
Все комментарии:
Оставить комментарий
Mansher 19.07.2018
В Вашем видео-" Трансляция фейловая Базовая верстка карточки товара" (на примере интернет-магазина велосипедов) я так и не дождалась как Вы перенесёте текст с описанием товара в левую часть блока, под картинку велосипеда. Именно к такому виду мне нужно привести свою детальную страничку. Чтобы все свойства были справа от картинки, а описание слева, под картинкой.
Mansher 19.07.2018
Не могу найти шаблон, где прописан текст описание товара на детальной странице и где может быть изображение.

Алексей Иванов 26.08.2019
Добрый день.
Сдела слайдер.
Если все слайды удалить, то выводится пустой html.
Делал проверку типа такой:
if ($arItem = $rsItems->GetNext()){ // есть такой элемент }
Тогда даже есть 1 слайд не выводит ни чего.
Сдела слайдер.
Если все слайды удалить, то выводится пустой 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) Можно ли мне с помощью АПИ Битрикса выводить этот счетчик во втором компоненте?
Гость 07.12.2022
Сделал слайдер таким способом. Но возник вопрос:
А как при этом методе вывести, скажем, 10 последних элементов инфоблока?
А как при этом методе вывести, скажем, 10 последних элементов инфоблока?

Михаил Базаров 07.12.2022
Цитата |
---|
Гость написал: Сделал слайдер таким способом. Но возник вопрос: А как при этом методе вывести, скажем, 10 последних элементов инфоблока? |
У CIBlockElement::GetList есть параметры для отбора элементов
nTopCount - ограничить количество сверху.
nOffset - смещение.
nElementID; - ID элемента, который будет выбран вместе со своими соседями.
Подробнее в документации