问题:如何使用Entity Embed模块在WYSIWYG中呈现媒体实体?
我安装了以下模块:
我使用视频嵌入字段的类型提供程序创建了一个新媒体包 - 并将其命名为“YouTube”。我将此字段设置为使用YouTube视频。我修改了媒体包的显示,仅将视频显示为Colorbox。我添加了一些内容,并确认媒体正在显示缩略图,点击时启动了Colorbox模式。
我现在想将实体嵌入到Basic页面的WYSIWYG中。要做到这一点我:
现在按钮已创建,我需要将其添加到WYSIWYG:
然后,我添加了新的内容基本页面,点击了新的实体嵌入按钮,搜索/选择了我创建的媒体实体YouTube视频。此时我只能将媒体ID嵌入到WYSIWYG中。没有显示选项来简单地在WYSIWYG中渲染媒体。
如何在WYSIWYG中呈现媒体实体?
答案 0 :(得分:1)
视频: 当您进入“编辑嵌入按钮”页面时,请在“允许的实体嵌入显示插件”下选择“实体浏览器渲染”。然后转到Structure> Media Bundles选择您的Media Bundle。转到“管理显示”标签。选择所需的字段。在您的情况下,它可能是“视频URL”。隐藏其余部分。现在,当它呈现您的视频时,它将按预期呈现视频。
对于文档: 如果您不处理视频,让我们说它是一个文档Media Bundle,您将最终直接链接到Media Entity页面而不是实际文件。解决这个问题的方法并不明显,但很简单。
当你去管理媒体按钮时,转到/ admin / config / content / embed / button / manage / NAMEOFYOURBUTTON 你有很多选择。在“允许的实体嵌入显示插件”下选择“令牌”我不是在开玩笑。令牌实际上会呈现一个指向该文件的链接,而不仅仅是您想要的一些字符串。
网站访问者看到了这一点,它链接到文档而不是媒体实体页面: 文件名document_name.pdf(1010.6 KB)
它在CKEditor中呈现:
<drupal-entity data-embed-button="media_document_button" data-entity-embed-
display="view_mode:media.token" data-entity-type="media" data-entity-
uuid="99e0581c-2403-4a2d-8a62-9f21ff89a6ff"></drupal-entity>
根据您的主题,它会生成您想要的内容:
<a href="link_directly_to_document"><span class="foo">document_name.pdf</span> <span class="bar">(1010.6 KB) </span></a>
答案 1 :(得分:0)
好的,在做了一些挖掘之后,看来我的问题是一个已知的项目。呈现媒体实体的方法是创建视图并使用“显示为:视图”选项。以下是我为实现这一目标所做的工作:
对于视图块,我执行了以下操作:
我需要将媒体限制为一个单一的媒体实体。要做到这一点我:
此时预览仍显示我的所有媒体实体。但是当我将实体添加到WYSIWYG时,由于上下文过滤器,它只渲染单个实体。所以现在我回到了基本页面并点击了YouTube视频嵌入按钮。在弹出窗口中,我选择了以下内容:
应注意,您不得将媒体实体/包的显示设置为使用视图。我将视频嵌入字段的显示保持为Colorbox。应该注意,您可以使用Twig模板重新格式化显示。它们无法在WYSIWYG中正确呈现,但它们将在主题中呈现时呈现。您还可以返回到您创建的“嵌入”按钮(配置&gt;内容创作&gt;文本编辑器嵌入按钮),并删除除#34;允许实体嵌入显示插件&#34;下的视图以外的所有选项。
每次将新媒体嵌入WYSIWYG时,您需要选择相同的视图,这有点笨拙。如果您可以在配置嵌入按钮时设置视图,那就太好了。
我希望这有助于任何遇到类似问题的人。我能够使用这种技术嵌入图像媒体实体 - 换句话说,它不仅限于视频嵌入字段。