wieni/wmcontent

向实体类型(例如段落)添加可配置的实体容器

安装次数: 15,912

依赖项: 1

建议者: 0

安全: 0

星星: 0

监视者: 6

分支: 1

开放问题: 6

类型:drupal-module

2.3.4 2024-03-27 14:42 UTC

README

Latest Stable Version Total Downloads License

向实体类型(例如段落)添加可配置的实体容器

为什么?

在 Drupal 7 中,我们注意到 Paragraphs 模块存在一些不足(这些问题在 Drupal 8 中仍然没有解决)。

  • 后端性能改进:Paragraphs 在默认的实体编辑表单中创建了一个小部件。这不仅在使用 > 10 个段落时会使界面变得杂乱,而且表单本身在提交/保存时经常会变得过大,从而破坏任何合理的 PHP 内存设置。此模块提供了一个单独的标签页来显示其内容,而不是将其与节点编辑表单通过内联实体表单或类似解决方案混合在一起。
  • 前端性能改进:实体的 paragraphs 是从标准实体数据中单独加载的,这解决了在页面上显示大量实体时的内存问题。
  • UI 改进:当不集成到默认的实体编辑表单中时,段落克隆/复制以及拖放排序等特性变得更加容易。
  • 更多灵活性:此模块允许将多个段落列表(容器)附加到实体上,可以按容器限制可用的实体类型和捆绑包。例如,可以为活动/事件内容类型提供 内容 标签和 项目 标签。

安装

此包需要 PHP 8.1 和 Drupal 10.0 或更高版本。可以使用 Composer 安装。

 composer require wieni/wmcontent

它是如何工作的?

术语

  • 容器 连接特定类型的宿主和特定类型的子项。
  • 宿主 是具有容器(例如,具有段落容器的节点)的实体。宿主可以为每个容器具有多个子项。
  • 子项 是通过容器连接到宿主的实体,例如段落。每个实体只能附加到单个容器。

子项和宿主可以是任何类型的实体,具有规范路由并实现 Drupal\Core\Entity\ContentEntityTypeInterface

当更新子项实体时,宿主实体的更改时间也会更新。

入门

在开始之前,请确保您的用户角色具有 administer wmcontent 权限。之后,您可以通过创建一个新的容器开始。您可以通过转到 /admin/config/wmcontent/containers 或通过跟随 结构 > WmContent > WmContent 容器 菜单链接来完成此操作。

创建容器后,转到可能的宿主实体的(编辑)页面。应出现一个名为您刚刚创建的容器的新标签页。

点击该链接将您带到主表单,您可以在其中添加子项并从该宿主编辑/删除/重新排序子项。

显示子项

如果您使用 Display Suite 来构建页面,您可以使用 WmContent: Content blocks 字段在宿主上显示子项实体的内容。

您可以通过覆盖 wmcontent 主题实现来更改 wmcontent 容器渲染的方式。

如果您手动使用 Twig 模板构建页面,您可以使用 WmContentManagerInterface::getContent 加载宿主的子项。

更新日志

此项目的所有重大更改都将记录在 更新日志 文件中。

安全

如果您发现任何与安全相关的问题,请通过电子邮件发送至 security@wieni.be,而不是使用问题跟踪器。

许可证

遵循MIT许可证发布。有关更多信息,请参阅LICENSE文件。