问题:如何使用实体嵌入模块在WYSIWYG中呈现媒体实体?
我安装了以下模块:
我与视频嵌入字段的一起创建了一个新的媒体包,并将其命名为"YouTube“。我将这个字段设置为使用YouTube视频。我修改了媒体包的显示,只将视频显示为彩色盒。我添加了一些内容,并证实了媒体显示的缩略图,当点击启动的颜色盒模式。
我现在想将实体嵌入到基本页面的WYSIWYG中。为此,我:
现在按钮已经创建,我需要将它添加到所见即所得的WYSIWYG中:
然后我添加了一个新的基本内容页面,点击了新的实体嵌入按钮,搜索/选择了我创建的媒体实体YouTube视频。此时,我只能将媒体ID嵌入到WYSIWYG中。没有任何显示选项可以在WYSIWYG中简单地呈现媒体。
如何在WYSIWYG中呈现媒体实体?
发布于 2017-05-24 15:58:36
用于视频:当您获得“编辑嵌入按钮”页面查看“允许实体嵌入显示插件”并选择“实体浏览器呈现”。然后转到结构>媒体束,选择你的媒体束。转到“管理显示”选项卡。选择你想要的领域。在您的例子中,可能是“视频URL”。把剩下的藏起来。现在,当它呈现您的视频时,它将按照您的预期呈现视频。
For document:如果您不处理视频,让我们说它是Documents,那么最终您将直接链接到Media实体页面,而不是实际的文件。解决这一问题的方法并不明显,但很简单。
当您去管理您的媒体按钮,转到/admin/config/content/embed/button/manage/NAMEOFYOURBUTTON,您将有许多选择。在“允许实体嵌入显示插件”下,选择“令牌”,我不是开玩笑。Token实际上呈现了一个指向文件的链接,而不是像您所期望的那样只呈现一些字符串。
站点访问者看到这一点,它链接到文档,而不是媒体实体页面:文档名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>发布于 2017-01-28 16:55:27
好吧,经过一番调查,看来我的问题是一个已知的项目。呈现媒体实体的方法是创建一个视图并使用Display : view选项。以下是我为实现这个目标所做的工作:
对于视图块,我执行了以下操作:
我需要把媒体限制在一个单一的媒体实体上。为此,我:
此时,预览仍然显示了我所有的媒体实体。但是当我将实体添加到WYSIWYG时,由于上下文过滤器,它只呈现单个实体。所以现在我回到基本页面,点击YouTube视频嵌入按钮。在弹出窗口中,我选择了以下内容:
应该注意的是,您不能将媒体实体/包的显示设置为使用视图。我将视频嵌入字段的显示保存为彩色盒。应该注意,您可以使用Twig模板重新格式化显示。它们不会在WYSIWYG中正确地呈现,但是当它们在您的主题中呈现时会正确地呈现。您还可以返回您创建的Embed按钮(Configuration > Content > Text嵌入按钮),并删除除视图之外的所有选项,在“允许的实体嵌入显示插件”下。
每次在WYSIWYG中嵌入新媒体时,您都需要选择相同的视图,这有点笨拙。如果您可以在配置Embed时设置视图,那将是很好的。
我希望这对任何遇到类似问题的人都有帮助。我能够使用这种技术来嵌入图像媒体实体,换句话说,它并不局限于视频嵌入领域。
https://stackoverflow.com/questions/41912292
复制相似问题