Перейти к основному содержимому

Добавление типов ассетов

Эта функция позволяет пользователям добавлять собственные типы ассетов (медиаресурсов) в систему. Чтобы зарегистрировать новый тип ассета, необходимо выполнить следующие шаги:

1) Создайте PHP-класс ассета

Класс ассета должен наследоваться от Pimcore\Model\Asset. Давайте создадим класс для файлов InDesign. Пространство имен (namespace) может быть любым, но согласно правилам хорошего тона рекомендуется размещать ассеты в подпространстве Model\Asset.

Примеры реализации можно посмотреть в исходном коде базовых типов ассетов Pimcore на GitHub.

<?php  
// src/Model/Asset/InDesign.php

namespace App\Model\Asset;

class InDesign extends \Pimcore\Model\Asset
{
protected string $type = 'indesign';
}

2) Создайте JavaScript-класс для редактора ассетов:

Он должен расширять pimcore.asset.asset, располагаться в пространстве имен pimcore.asset и быть назван в честь свойства $type соответствующего класса PHP.

В качестве примеров ознакомьтесь с основными типами ассетов Pimcore.

3) Зарегистрируйте ассет в карте типов (Asset Type Map)

Далее необходимо обновить конфигурацию pimcore.assets.type_definitions.map, чтобы включить ваш новый ассет. Это можно сделать в любом загружаемом конфигурационном файле (например, в /config/config.yaml). Параметр matching должен представлять собой массив регулярных выражений, которые определяют принадлежность файла к данному типу на основе его расширения или имени.

# /config/config.yaml  

pimcore:
assets:
type_definitions:
map:
indesign:
class: \App\Model\Asset\InDesign
matching: ["/\\.indd/"]


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.