在 Silverstripe 中嵌入 YouTube 视频 - Strips Fullscreen and Rel=0

Embedding YouTube Videos in Silverstripe - Strips Fullscreen and Rel=0

我正在尝试使用页面编辑器将 YouTube 视频嵌入我的 Silverstripe 网站。我们在使用两种不同的嵌入方式时遇到了问题。

  1. 编者插入媒体: 当我点击编辑器的 "Insert Media" 按钮时,我选择 "From the web" 并粘贴到 YouTube URL。但是我需要隐藏相关视频,因此我们需要在 URL 的末尾添加“&rel=0”。当我这样做时,"Insert Media" 选项不起作用。

  2. iFrame: 因此,我尝试使用 Google 提供的嵌入代码。我去了他的文本编辑器并插入了它。 iframe 有效,但编辑器从 iframe 中删除了 "allowfullscreen" 标签 - 这意味着用户无法全屏观看视频。

所以我要么必须显示相关视频,但我不想这样做。或者我需要阻止用户以全屏模式观看它 - 我又不想这样做。

我们 运行 在 Silverstripe 3.3 上。

有什么方法可以阻止 Silverstripe 剥离 allowfullscreen 标签吗?或者如果我们将 rel=0 放在末尾,让 Silverstripe 仍然处理 YouTube URL?

或者,有人知道这个问题是否在 3.4、3.5 或 3.6 中解决了吗?

在发布这篇文章之前,我已经进行了超过 45 分钟的彻底搜索,包括通过 Silverstripe 论坛(现已停用)、Whosebug 和 Google 组。另外,我研究了 3.4、3.5 和 3.6 的许多更改日志,以了解与 iframe 和 YouTube 相关的任何内容,但无法找到特定于此问题的内容。

我使用的另一个 CMS 中的 TinyMCE 编辑器没有从 iframe 中删除 allowfullscreen 标签。所以它似乎特定于 Silverstripe 的编辑器实现。

您问题的直接答案是通过设置 "extended_valid_elements"

来修改 tinymce 配置以包含框架的更多属性

https://docs.silverstripe.org/en/3/developer_guides/forms/field_types/htmleditorfield/#setting-options

另一种方法是引入新的简码:https://docs.silverstripe.org/en/3/developer_guides/extending/shortcodes/

后者在某种程度上对用户更安全。