Медиабиблиотека и видео - коллекции, права, плеер
Медиабиблиотека нужна там, где контент-менеджер многократно вставляет одни и те же картинки, документы и ролики. Она входит в модуль «Управление структурой», хранит файлы коллекциями и подставляется в формы выбора файла.
Решение
Включаем медиабиблиотеку
Включаем библиотеку в настройках модуля:
Настройки → Настройки продукта → Настройки модулей → «Управление структурой»Вкладка: МедиабиблиотекаОпция: Использовать медиабиблиотеку = YОпция: Использовать медиабиблиотеку по умолчанию = YПервая опция открывает сам раздел, вторая подставляет библиотеку во все системные формы выбора файла. Без второй опции менеджер видит библиотеку в административном разделе, а в карточке элемента она не предлагается.
Настраиваем типы коллекций
На той же вкладке задаём лимиты хранения:
Размеры превью - высота и ширина картинки предпросмотраРасширения на тип - изображения: jpg, gif, png; видео: flv, mp4, wmvМаксимальный размер - предел для загружаемых изображенийТип «Изображения» - системный, удалить его нельзяСписок расширений задаётся отдельно для каждого типа коллекций, а не общий на всю библиотеку. Под документы и другие форматы заводят свой тип коллекций со своим списком расширений: системный тип изображений трогать не нужно.
Заводим коллекции и раздаём права
Создаём коллекции и открываем к ним доступ:
Контент → Структура сайта → МедиабиблиотекаТип коллекции: Изображения | Видео | Аудио | свойКоллекция: верхний уровень или вложенная, иерархия любой глубиныКнопка «Доступ»: уровень вида «Просмотр коллекций» на группу пользователейПрава ставятся на коллекцию, а не на отдельный файл. Они ограничивают выбор файла в административном разделе, но не закрывают прямую ссылку: файл лежит в открытом каталоге загрузок и отдаётся веб-сервером напрямую.
Вставляем файл в контент
Выбираем файл из визуального редактора:
Визуальный редактор → кнопка «Изображение» → «Выбрать из медиабиблиотеки» в том же окне доступна загрузка нового файлаЭлемент инфоблока → вкладка «Подробно» → поле «Детальная картинка» → выбор из медиабиблиотеки, адрес подставляется самВ поле картинки записывается адрес файла коллекции, а не отдельная копия. Поэтому привычная правка загруженной картинки в карточке элемента недоступна: кадрируют и заменяют сам элемент коллекции, а страницы подхватывают результат.
Выводим видео плеером
Подключаем штатный медиапроигрыватель:
$APPLICATION->IncludeComponent('bitrix:player', '', [ 'PATH' => '/upload/medialibrary/f0c/promo.mp4', // «Путь к файлу» из коллекции 'PLAYER_TYPE' => 'auto', // тип проигрывателя платформа подбирает сама 'WIDTH' => '400', 'HEIGHT' => '300', 'AUTOSTART' => 'N', 'USE_PLAYLIST' => 'N',]);Мастер визуального редактора вставляет в страницу этот же вызов, только с полным набором параметров оформления. Один плеер играет один файл: выбрать в поле пути несколько файлов сразу платформа не даёт.
Сравниваем с загрузкой в свойство
Сверяем два способа хранения файла:
Свойство элемента: файл уходит в хранилище платформы своей копией, удаляется вместе со значением свойстваМедиабиблиотека: файл живёт в коллекции и переиспользуется на любой странице, в контент попадает адресом, а не копиейЗамена файла: «Изменить» у элемента коллекции сохраняет новый файл, ранее записанные в контент адреса на него не переедутСвойство элемента выбирают там, где картинка принадлежит одному элементу и живёт ровно столько же. Медиабиблиотеку берут под общий фонд материалов, который руками наполняет и разбирает контент-менеджер.
Типичные проблемы
Медиабиблиотеки нет в форме выбора файла.
Опция «Использовать медиабиблиотеку» выключена в настройках модуля «Управление структурой». Подстановку во все системные формы включает вторая опция - «Использовать медиабиблиотеку по умолчанию».
Видео не сохраняется: «элемент не был сохранен».
Расширение файла не входит в список разрешённых для этого типа коллекций. Список правят на вкладке «Медиабиблиотека» отдельно для видео, аудио и изображений.
Контент-менеджер вставил ролик, после сохранения код пропал.
Проактивный фильтр разбирает вставленный код как попытку XSS и вырезает его. У администратора фильтр не срабатывает, поэтому пропажа видна только под менеджером.
Файл в коллекции заменили, а на страницах прежний.
Замена сохраняет новый файл по новому пути, а старый остаётся на месте. Адреса, записанные в контент раньше, ведут на прежний файл и правятся руками.
В библиотеке всё есть, а воспроизвести ролик нечем.
Медиабиблиотека только хранит файл и отдаёт его адрес. Проигрывание делает отдельный компонент bitrix:player, который ставят на страницу.
Частые вопросы
Какие форматы можно загружать в медиабиблиотеку?
Те, что перечислены в настройках модуля «Управление структурой» на вкладке «Медиабиблиотека». Список расширений там свой у каждого типа коллекций, поэтому mp4 для видео добавляется отдельно от списка картинок.
Как заменить файл в коллекции, чтобы не менять ссылки?
Так не выйдет. Замена файла означает новый файл по новому пути, а прежние адреса в сохранённом контенте продолжают вести на старый. Менять приходится и файл, и ссылки на него.
Как вывести видео в шаблоне списка новостей?
Подключаем bitrix:player прямо в шаблоне компонента для каждого элемента и отдаём в параметр пути значение свойства. Альтернатива - своя разметка тега video, если штатный плеер не нужен.
Можно ли вмешаться в HTML элемента медиабиблиотеки?
Да, для этого есть событие OnMedialibItemView модуля fileman. Его инициирует метод CMedialib::GetItemViewHTML перед выдачей HTML, поддержка идёт с версии 9.0.0.
Есть ли у медиабиблиотеки современное API?
Нет. Классы CMedialib, CMedialibCollection и CMedialibItem относятся к старому ядру и живут в модуле fileman. Сигнатуры сверяют по справочнику API, в учебных курсах их нет.
Смежное
- Форум, блог и медиа на сайте - оглавление подтемы
- Блоги, форумы, опросы и медиабиблиотека в 1С-Битрикс - устройство контентных модулей целиком
- Файлы платформы изнутри: таблица, каталоги, копии, удаление - где физически лежит загруженный файл
- Файлы из кода: сохранение, уменьшенные копии, удаление - работа с файлом своим кодом
- Файл не загружается: пределы, права, типы, веб-сервер - разбор отказов при загрузке
- Отдача файла с проверкой прав: закрытые каталоги, заголовки, ссылки - как закрыть файл от прямой ссылки
- Картинки товара: загрузка, размеры и вывод галереи - картинки в свойствах элемента
- Быстрые картинки на витрине: размеры, ленивая загрузка, WebP - вес и формат картинок на странице
- Комментарии и отзывы к контенту: форум как движок, модерация - обсуждение под материалом
- Включаемые области: файлы, области шаблона, правка менеджером - что ещё правит контент-менеджер
- Форум на сайте: группы, права участников, темы и модерация - где чаще всего вставляют эти файлы
- Блог на сайте: записи, черновики, комментарии и права - записи блога с картинками из библиотеки