Как сохранить изображение из одного элемента в другой элемент в Битрикс

Получение данных изображения

Для начала нам нужно получить информацию об изображении, которое мы хотим скопировать. Мы будем использовать данные изображения из уже существующего элемента:

<?php
use Bitrix\Main\Loader;
use Bitrix\Iblock\ElementTable;
use Bitrix\Iblock\Iblock;
use Bitrix\Main\FileTable;

Loader::includeModule('iblock');

$sourceElementId = 123; // Замените на ID нужного элемента
$iblockId = 1; // Замените на ID нужного инфоблока

$elementData = ElementTable::getList([
    'select' => ['ID', 'NAME', 'PREVIEW_PICTURE'],
    'filter' => ['=ID' => $sourceElementId],
])->fetch();

if ($elementData) {
    $imageId = $elementData['PREVIEW_PICTURE'];

    $imageData = FileTable::getList([
        'select' => ['ID', 'SUBDIR', 'FILE_NAME', 'WIDTH', 'HEIGHT'],
        'filter' => ['=ID' => $imageId],
    ])->fetch();

    if ($imageData) {
        // Создание нового элемента и сохранение изображения
        // (Продолжение кода в следующем блоке)
    } else {
        echo 'Изображение не найдено';
    }
} else {
    echo 'Элемент не найден';
}
?>

Сохранение изображения в новом элементе

Теперь, когда у нас есть данные об изображении, мы можем создать новый элемент и использовать это изображение в нем:

<?php
// (Предыдущий код здесь)

// Создаем новый элемент
$newElement = new CIBlockElement();
$fields = [
    'IBLOCK_ID' => $iblockId,
    'NAME' => 'Новый элемент', // Замените на нужное название
    'PREVIEW_PICTURE' => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/".$imageData['SUBDIR']."/".$imageData['FILE_NAME'])
];

// Добавляем новый элемент
if ($newElementId = $newElement->Add($fields)) {
    echo 'Новый элемент успешно добавлен. ID: ' . $newElementId;
} else {
    echo 'Ошибка при добавлении нового элемента: ' . $newElement->LAST_ERROR;
}
?>

Этот код создает новый элемент в указанном инфоблоке и устанавливает изображение из исходного элемента в качестве его PREVIEW_PICTURE.

Это позволяет эффективно использовать уже загруженные ресурсы и управлять контентом на вашем сайте в системе управления контентом Битрикс.

Теперь, имея этот код, вы можете легко сохранить изображение из одного элемента в другой на платформе Битрикс.

Комментарии

Коментарии отсутствуют, будьте первым(ой) кто напишет под этим постом!

Написать коментарий