Top.Mail.Ru
Установки превью-картинки всем элементам определенной категории инфоблока на Bitrix API - разработка и поддержка сайтов BUSSOL

Установки превью-картинки всем элементам определенной категории инфоблока на Bitrix API



Автор:

Дата публикации:

Установки превью-картинки всем элементам определенной категории инфоблока на Bitrix API

Иногда бывает, что нужно установить одну картинку в качестве превью не одному, а многим элементам инфоблока: когда элементов 1000, 2000 и т.д. Причем не каким попало элементам, а из определенной категории. В этой статье напишем небольшой скрипт, который решает подобную задачу. Для начала загрузим в систему нужный файл изображения. Его Вы можете загрузить либо через коллекцию изображений, либо в элемент инфоблока нужной категории. После загрузки нам понадобится ID изображения, которое вы можете посмотреть через диспетчер кода, наведя указатель мыши на изображение. Еще нам понадобятся ID инфоблока и ID нужной категории инфоблока.


// ID инфоблока
$iblockId = 54;
// ID категории
$categoryId = 495;
// ID файла - изображения
$previewPictureId = 18246;

// Подключаем модуль Инфоблоки
if (!CModule::IncludeModule("iblock")) {
    return "Модуль iblock не подключен.";
}

//Получаем элементы из нужной категории
$elements = CIBlockElement::GetList(
    array(),
    array(
        "IBLOCK_ID" => $iblockId,
        "SECTION_ID" => $categoryId
    ),
    false,
    false,
    array("ID")
);

// Далее, пробегаем в цикле по отобранным элементам и записываем в поле PREVIEW_PICTURE id файла картинки
while ($element = $elements->GetNext()) {
    $elementId = $element["ID"];

    // Обновляем элемент, устанавливаем превью
    $result = CIBlockElement::SetFieldsValues(array(
        $elementId => array(
            "PREVIEW_PICTURE" => $previewPictureId
        )
    ));

    if ($result) {
        echo "Превью установлено для элемента ID:".$elementId."
"; } else { echo = "Ошибка установки превью для элемента ID:".$elementId."
"; } }

Модифицируя данный скрипт, можно устанавливать с его помощью не только поля, но и свойства элементов

241027, Россия, Брянская область, поселок Путевка, улица Рослальская, дом 8, кв.121
Телефон: +7 (950) 692-91-71

Иногда бывает, что нужно установить одну картинку в качестве превью не одному, а многим элементам инфоблока: когда элементов 1000, 2000 и т.д. Причем не каким попало элементам, а из определенной категории. В этой статье напишем небольшой скрипт, который решает подобную задачу. Для начала загрузим в систему нужный файл изображения. Его Вы можете загрузить либо через коллекцию изображений, либо в элемент инфоблока нужной категории. После загрузки нам понадобится ID изображения, которое вы можете посмотреть через диспетчер кода, наведя указатель мыши на изображение. Еще нам понадобятся ID инфоблока и ID нужной категории инфоблока.


// ID инфоблока
$iblockId = 54;
// ID категории
$categoryId = 495;
// ID файла - изображения
$previewPictureId = 18246;

// Подключаем модуль Инфоблоки
if (!CModule::IncludeModule("iblock")) {
    return "Модуль iblock не подключен.";
}

//Получаем элементы из нужной категории
$elements = CIBlockElement::GetList(
    array(),
    array(
        "IBLOCK_ID" => $iblockId,
        "SECTION_ID" => $categoryId
    ),
    false,
    false,
    array("ID")
);

// Далее, пробегаем в цикле по отобранным элементам и записываем в поле PREVIEW_PICTURE id файла картинки
while ($element = $elements->GetNext()) {
    $elementId = $element["ID"];

    // Обновляем элемент, устанавливаем превью
    $result = CIBlockElement::SetFieldsValues(array(
        $elementId => array(
            "PREVIEW_PICTURE" => $previewPictureId
        )
    ));

    if ($result) {
        echo "Превью установлено для элемента ID:".$elementId."
"; } else { echo = "Ошибка установки превью для элемента ID:".$elementId."
"; } }

Модифицируя данный скрипт, можно устанавливать с его помощью не только поля, но и свойства элементов


Другие статьи:  Перехват почтового события в Битрикс и запись данных в логи / Уведомление о файлах Cookie на Битрикс / Получить заказы пользователя с сортировкой по дате создания

Похожие статьи

Ошибка! innodb_strict_mode=on, требуется off в Битрикс
В 1С-Битрикс.Управление сайтом, обычно сразу после установки, при тестировании системы появляется ошибка в строке Режим работы MySql  "Ошибка! innodb_strict_mode=ON, требуется OFF". Из-за этой ошибки часть функционала Битрикс может не работать.
Технология композитный сайт
С технологией Автокомпозит - больше не требуется глубоких настроек и сложного программирования. Композитный режим включается нажатием одной кнопки в административном разделе сайта