如何将 SonataMediaBundle 画廊限制为单个提供商?

Posted

技术标签:

【中文标题】如何将 SonataMediaBundle 画廊限制为单个提供商?【英文标题】:How to limit SonataMediaBundle gallery to a single provider? 【发布时间】:2018-08-09 12:28:30 【问题描述】:

我正在处理的现有项目使用 SonataMediaBundle。我喜欢该捆绑包提供的图库选项,但有一点需要注意:图库允许用户不仅包括图像,还包括来自三个视频提供商(YouTube、Vimeo 和 DailyMotion)的媒体。

如何使捆绑包只允许图片作为图库媒体?

到目前为止,我已经尝试在 GalleryAdmin.php 中搜索对提供者名称的任何引用,但我还没有在其中找到任何明显的内容。

编辑:我也意识到我可以从 sonata.yaml 文件(和/或 sonata_media.yml 取决于设置)中删除我不想要的提供程序,但这会将它们从应用程序中完全删除,即不是我想要的。例如,我仍然希望能够使用 YouTube 提供程序 -- 只是在创建图片库时不需要。

【问题讨论】:

【参考方案1】:

在做了一些研究之后,我想出了一个不完美但可以完成工作的解决方法。我在 sonata_media.yml 中添加了以下块:

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

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

... 这并不理想,因为它为工作流程增加了一个步骤。 (我现在必须告诉客户“如果你想制作画廊,请选择‘画廊’上下文,然后进行 xyz。”这有点混乱,但它减少了不可预测结果的可能性。)

【讨论】:

另一个选项是更改默认上下文。但这可能会改变现有的工作流程,这是我不想要的。 你为什么不接受你自己的答案?如果它解决了你的问题,那么它对接受/支持很有好处(后来你不能这样做,但我可以 - 并且做到了)。

以上是关于如何将 SonataMediaBundle 画廊限制为单个提供商?的主要内容,如果未能解决你的问题,请参考以下文章

SonataMediaBundle - 如何上传图片?

如何使用 SonataMediaBundle 在树枝中获取图像路径?

SonataMediaBundle - 如何使用自定义文件输入

使用 SonataMediaBundle,我如何找出可用的媒体提供商?

如何从SonataMediaBundle的图库中获取图像网址,以便与FOSRestBundle一起使用?

使用 SonataMediaBundle 上传到 AmazonS3