首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal 8:如何使用实体嵌入模块在WYSIWYG中呈现媒体实体?

Drupal 8:如何使用实体嵌入模块在WYSIWYG中呈现媒体实体?
EN

Stack Overflow用户
提问于 2017-01-28 16:49:54
回答 2查看 3.7K关注 0票数 4

问题:如何使用实体嵌入模块在WYSIWYG中呈现媒体实体?

我安装了以下模块:

  • 媒体实体
  • 视频嵌入场
  • 视频嵌入媒体(捆绑w/视频嵌入字段)
  • 彩色盒
  • 实体嵌入

我与视频嵌入字段的一起创建了一个新的媒体包,并将其命名为"YouTube“。我将这个字段设置为使用YouTube视频。我修改了媒体包的显示,只将视频显示为彩色盒。我添加了一些内容,并证实了媒体显示的缩略图,当点击启动的颜色盒模式。

我现在想将实体嵌入到基本页面的WYSIWYG中。为此,我:

  • 转到Configuration > Content > Text嵌入按钮。
  • 单击Add embed按钮
  • 在嵌入类型下给它一个标签和选定的实体。
  • 在实体类型I下选择媒体
  • 在Media下,我选择了我创建的"YouTube“包
  • 我检查了所有允许的实体嵌入显示插件。

现在按钮已经创建,我需要将它添加到所见即所得的WYSIWYG中:

  • 我选择了配置>内容创作>文本格式和编辑器。
  • 我单击了完整HTML旁边的配置按钮
  • 我将新的实体嵌入按钮拖到WYSIWYG中。
  • 我选中了“显示嵌入式实体”框。
  • 我确保没有检查允许的HTML标记和纠正错误的HTML。

然后我添加了一个新的基本内容页面,点击了新的实体嵌入按钮,搜索/选择了我创建的媒体实体YouTube视频。此时,我只能将媒体ID嵌入到WYSIWYG中。没有任何显示选项可以在WYSIWYG中简单地呈现媒体。

如何在WYSIWYG中呈现媒体实体?

EN

回答 2

Stack Overflow用户

发布于 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>

根据您的主题,它将生成您想要的内容:

代码语言:javascript
复制
<a href="link_directly_to_document"><span class="foo">document_name.pdf</span> <span class="bar">(1010.6 KB) </span></a>
票数 2
EN

Stack Overflow用户

发布于 2017-01-28 16:55:27

好吧,经过一番调查,看来我的问题是一个已知的项目。呈现媒体实体的方法是创建一个视图并使用Display : view选项。以下是我为实现这个目标所做的工作:

  • 创建一个新的视图-结构>视图>添加新视图
  • 视图设置:显示:类型为: YouTube的媒体(这将是您创建的任何媒体包)
  • 检查创建块

对于视图块,我执行了以下操作:

  • 移除Media: Name字段
  • 添加媒体:呈现实体字段-此时我呈现的媒体在预览中显示

我需要把媒体限制在一个单一的媒体实体上。为此,我:

  • 点击进阶
  • 点击添加旁边的上下文过滤器
  • 选定媒体:媒体ID
  • 在标有“当筛选值可用或提供默认值时”的区域中,“我选中”指定验证标准,并选择“基本验证”。

此时,预览仍然显示了我所有的媒体实体。但是当我将实体添加到WYSIWYG时,由于上下文过滤器,它只呈现单个实体。所以现在我回到基本页面,点击YouTube视频嵌入按钮。在弹出窗口中,我选择了以下内容:

  • 显示为:视图
  • 视图:我进入了我创建的视图,并选择了我创建的块。
  • 视图参数:检查字段值和实体ID -这两个字段都很重要!如果不单击“字段值”,什么都不会显示。如果不单击实体ID,则视图不会获得上下文过滤器的ID。
  • 然后我点击了Embed按钮,并添加了它。

应该注意的是,您不能将媒体实体/包的显示设置为使用视图。我将视频嵌入字段的显示保存为彩色盒。应该注意,您可以使用Twig模板重新格式化显示。它们不会在WYSIWYG中正确地呈现,但是当它们在您的主题中呈现时会正确地呈现。您还可以返回您创建的Embed按钮(Configuration > Content > Text嵌入按钮),并删除除视图之外的所有选项,在“允许的实体嵌入显示插件”下。

每次在WYSIWYG中嵌入新媒体时,您都需要选择相同的视图,这有点笨拙。如果您可以在配置Embed时设置视图,那将是很好的。

我希望这对任何遇到类似问题的人都有帮助。我能够使用这种技术来嵌入图像媒体实体,换句话说,它并不局限于视频嵌入领域。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41912292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档