如何将 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,我如何找出可用的媒体提供商?