Битрикс. Показ элементов инфоблока по условию
10.07.2018
Теги: CMS • GetList • Web-разработка • Битрикс • Инфоблок • Список • ЭлементИнфоблока
Задача: на главной странице сайта показывать избранные статьи блога. Для этого в настройках инфоблока «Блог», который предназначен для показа периодических публикаций (новости, статьи, записи блога) добавляем новое свойство «Показывать на главной»:
В настройках свойства инфоблока
- Показывать на странице редактирования элемента
- Внешний вид: Флажки
- Задаем единственное значение Y(es)
Теперь для нескольких публикаций в блоге задаем это свойство:
В итоге получаем такую картину:
Теперь посмотрим на метод CIBlockElement::GetList()
, возвращает объект типа CIBlockResult
// Возвращает объект типа CIBlockResult CIBlockElement::GetList( array arOrder = array("SORT"=>"ASC"), // массив полей, по которым будут отсортированы элементы array arFilter = array(), // массив полей, по которым будут отобраны элементы mixed arGroupBy = false, // массив полей для группировки элементов mixed arNavStartParams = false, // параметры для постраничной навигации array arSelectFields = array() // массив возвращаемых полей элементов )
CIBlockResult
— вспомогательный класс для работы с объектами результатов выборок, наследуется от класса CDBResult
и содержит все его параметры и методы. Методы класса:
GetNext()
— Возвращает из выборки список полей элемента, с замененными ссылками в поляхDETAIL_PAGE_URL
иLIST_PAGE_URL
.GetNextElement()
— Возвращает объект_CIBElement
элемента из выборки.SetUrlTemplates()
— Устанавливает шаблоны путей для элементов.SetSectionContext()
— Метод устанавливает поля раздела в качестве родителя элемента для подстановки в шаблоны путей.
_CIBElement
— вспомогательный класс для работы с объектами, которые возвращает CIBlockResult::GetNextElement()
. Для получения различных характеристик элемента рекомендуется использовать именно этот класс. Методы класса
GetFields()
— Возвращает массив полей элемента, с замененными ссылками в поляхDETAIL_PAGE_URL
иLIST_PAGE_URL
.GetProperties()
— Возвращает все или некоторые значения свойств элемента.GetProperty()
— Возвращает значения свойства элемента.GetGroups()
— Возвращает группы, к которым привязан элемент.
На главной странице сайта добавляем код, который будет показывать избранные статьи:
<?php CModule::IncludeModule('iblock'); // какие поля получаем $arSelect = array( "ID", "IBLOCK_ID", "NAME", "PREVIEW_TEXT", "DETAIL_PAGE_URL", "DETAIL_PICTURE" ); // условия фильтрации $arFilter = array( "IBLOCK_ID" => 1, "ACTIVE_DATE" => "Y", "ACTIVE" => "Y", "PROPERTY_SHOW_MAIN_VALUE" => "Y" // избранные ); // выполняем запрос к базе данных $dbResult = CIBlockElement::GetList( array('CREATED' => 'DESC'), // сортируем по убыванию даты и времени добавления $arFilter, false, array("nPageSize" => 4), // получаем четыре статьи $arSelect ); ?> <?php if (!empty($dbResult->arResult)): ?> <section class="favorite"> <?php while ($ob = $dbResult->GetNextElement()): ?> <?php $arFields = $ob->GetFields(); /* поля текущего элемента инфоблока */ ?> <?php $img = CFile::GetPath($arFields['DETAIL_PICTURE']); ?> <article> <a href="<?= $arFields['DETAIL_PAGE_URL']; ?>"> <img src="<?= $img; ?>" class="img-responsive" alt="<?= $arFields['NAME']; ?>"> </a> <h3><a href="<?= $arFields['DETAIL_PAGE_URL']; ?>"><?= $arFields['NAME']; ?></a></h3> <?php $preview = $arFields['PREVIEW_TEXT']; if (iconv_strlen($arFields['PREVIEW_TEXT']) > 90) { // обрезаем текст анонса до 90 символов $preview = iconv_substr( $arFields['PREVIEW_TEXT'], 0, iconv_strpos($arFields['PREVIEW_TEXT'], ' ', 90) ); $preview = $preview . '…'; } ?> <p><?= $preview; ?></p> </article> <?php endwhile; ?> </section> <?php endif; ?>
- Битрикс. Работа с инфоблоками в старом ядре
- Битрикс. Работа с инфоблоками в новом ядре
- Битрикс. Пользовательские свойства элемента инфоблока
- Битрикс. Создание комплексного компонента. Часть 4 из 4
- Битрикс. Создание комплексного компонента. Часть 3 из 4
- Битрикс. Создание комплексного компонента. Часть 2 из 4
- Битрикс. Создание комплексного компонента. Часть 1 из 4
Поиск: CMS • GetList • Web-разработка • Битрикс • Инфоблок • Список • Элемент инфоблока