Как ограничить галерею SonataMediaBundle одним провайдером?

Существующий проект, над которым я работаю, использует SonataMediaBundle. Мне нравится опция «Галерея», предоставляемая этим пакетом, с одной оговоркой: галерея позволяет пользователям включать не только изображения, но и мультимедиа от трех поставщиков видео (YouTube, Vimeo и DailyMotion).

Как сделать так, чтобы в пакете можно было использовать только изображения в качестве галерей?

До сих пор я пытался искать в GalleryAdmin.php какие-либо ссылки на имена провайдеров, но мне еще предстоит найти там что-то очевидное.

Редактировать: я также понимаю, что могу просто удалить провайдеров, которые мне не нужны, из файла sonata.yaml (и/или sonata_media.yml в зависимости от настройки), но это полностью удалит их из приложения, что не совсем то, что я хочу. Я все еще хочу иметь возможность использовать провайдера YouTube, например, но не при создании галерей изображений.


person Patrick    schedule 01.03.2018    source источник


Ответы (1)


Проведя небольшое исследование, я придумал обходной путь, который не идеален, но работает. Я добавил следующий блок в sonata_media.yml:

galleries:
    providers:
        - sonata.media.provider.image

    formats:
        abstract: { width: 100, quality: 100 }
        wide:     { width: 820, quality: 100 }

... что не идеально, так как добавляет шаг в рабочий процесс. (Теперь я должен сказать клиентам: «Если вы хотите создать галерею, выберите контекст «галереи», а затем выполните xyz». Это немного загромождено, но снижает вероятность непредсказуемых результатов.)

person Patrick    schedule 01.03.2018
comment
Другой вариант — изменить контекст по умолчанию. Но это может изменить существующие рабочие процессы, чего я не хочу. - person Patrick; 01.03.2018
comment
Почему вы не принимаете свой собственный ответ? Если это решит вашу проблему, то это хорошо для принятия/проголосования (потом вы не можете, а я могу - и сделал это). - person cezar; 21.10.2018