Медиабиблиотека в 1С-Битрикс – это отдельный функционал модуля fileman, позволяющий хранить и управлять различными медиафайлами (изображениями, видео, документами и т.д.). В отличие от простого хранения файлов через \Bitrix\Main\FileTable, медиабиблиотека даёт возможность создавать коллекции (по сути, тематические папки/альбомы), назначать имена, описания и группировать файлы. Ниже рассмотрим, как с ней работать: получим информацию о существующих коллекциях и их содержимом, а также научимся создавать новые коллекции, добавлять в них элементы и удалять ненужные.
Создаём новую коллекцию "Логотипы клиентов", добавляем в неё ранее загруженный логотип (ID файла 101) и выводим ID созданной коллекции и элемента — идеально для автоматизации наполнения медиабиблиотеки при миграции или интеграции.
Код
<?php
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (CModule::IncludeModule("fileman")) {
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/fileman/classes/general/medialib.php");
CMedialib::Init();
// Создаём коллекцию "Логотипы клиентов"
$collectionId = CMedialibCollection::Edit([
'id' => 0,
'arFields' => [
'NAME' => 'Логотипы клиентов',
'DESCRIPTION' => 'Коллекция логотипов партнёров и клиентов компании',
'ACTIVE' => 'Y',
'ML_TYPE' => 1 // изображения
]
]);
if ($collectionId > 0) {
echo "Коллекция создана, ID: {$collectionId}<br>";
// Добавляем файл (ID 101) в эту коллекцию
$itemId = CMedialibItem::Edit([
'arFields' => [
'NAME' => 'Логотип клиента ABC',
'DESCRIPTION' => 'Логотип компании ABC Corp',
'SOURCE_ID' => 101, // ID файла в b_file
'PATH' => '/upload/logos/abc_logo.png',
'FILE_NAME' => 'abc_logo.png',
'COLLECTION_ID' => $collectionId
]
]);
if ($itemId > 0) {
echo "Элемент добавлен в коллекцию, ID элемента: {$itemId}";
} else {
echo "Ошибка добавления элемента.";
}
} else {
echo "Ошибка создания коллекции.";
}
}
?>