performant_labs / form_mode_manager
提供使用表单模式的API
This package is auto-updated.
Last update: 2024-09-15 09:18:09 UTC
README
提供了一种接口,允许在不进行特定开发的情况下轻松实现和使用表单模式。此模块提供了不同的配置/路由/UI/附加访问控制,以简化并增强您不同实体表单的管理和开发,允许您以简单的方式实现复杂的内容策略。表单模式管理器提供了一个完全集成到事件和路由系统的机制,以支持您的自定义内容实体,并提供灵活性以添加实体表单的一些行为。
目录
需求
- Drupal 8.
路线图
您可以通过以下链接跟踪此模块的演变 这里.
兼容性
这里 是已知兼容实体的列表(标准 & 贡献)。
已知问题
- 配置文件:目前与配置文件不兼容,请参考 #2834749 问题以获取更多信息。
- 评论:需要更多具体的调整才能与表单模式管理器正常工作。我们需要更多志愿者提出一个新的子模块,以实现可接受的兼容性,请参考 #2887326。
- 联系:与评论实体相同的问题,对
contact_message的处理过于具体,我们需要更多特定的发展。
安装
- 将模块下载并解压缩到您的 (
sites/all/modules/contrib) 文件夹。 - 在Drupal模块页面 (
admin/modules) 或使用 ($ drush en form_mode_manager) 启用模块
用法
为了简化文档的理解,以下示例用法基于最通用的案例 (Node)。请访问 D.O 文档页面 以找到其他常见的实体案例。
以特定表单模式创建实体
- 创建一个模式表单 (
admin/structure/display-modes/form/add/node) 或使用targetEntityType设置为node的编程方式。 - 将创建的表单模式添加到内容类型(例如文章),转到 (
admin/structure/types/manage/article/form-display) - 底部有一个字段集
自定义显示设置,列出了与此实体兼容的表单模式。 - 选择一个表单模式并保存表单。
- 现在我们在页面的顶部有两个标签(或当页面有缓存结果时,在消息区域的消息中有一个链接),
默认和您新创建的表单模式的标签。 - 使用这些标签,您可以定义一个不同的表单作为
默认来配置我们的表单模式。 - 现在要使用您的表单模式,您有两种方式
- 直接转到 (
node/add/article/form_mode_machine_name)。 - 转到节点概览页面 (
admin/content) 并使用新的本地操作链接 (添加节点作为 xxxx)。
- 直接转到 (
以特定表单模式编辑实体
- 显示节点实体,如 (
/node/1)。 - 以通常的方式点击编辑。
- 在没有进行任何特定配置的情况下,默认情况下在 (
编辑) 的底部提供了一个新的标签页级别。这些标签页允许您使用默认表单模式或激活此内容类型的其他表单模式。
您还可以通过直接在概览页面上显示的操作链接来直接编辑我们的实体,这些链接允许您查看当前用户允许执行的所有操作。
高级用例
在高级用例中,您可能需要限制对 默认 表单模式的访问,但仅限于特定的表单模式和对特定角色的访问。
为此,您需要配置 form_mode_manager 以更改表单模式本地任务在主级别(与 编辑 按钮相同的级别)的位置,并限制对特定实体的 '默认' 表单的特定角色的访问。您还可以完全排除特定表单模式对所有表单模式管理器进程/增强的访问。
有关更多信息,请参阅 访问控制用例。
配置
-
根据用户的角色,用户可能有权访问表单模式,而不是特定内容类型的默认模式。在这种情况下,请转到
admin/config/content/form_mode_manager/links-task以配置任务本地的位置。例如,对于一个“文章”内容类型和一个贡献者表单模式,如果当前用户只有表单模式贡献者的权限,则需要更改链接任务的位置,使其位于第一级而不是默认的节点第二级。 -
您还可以通过转到参数页面的其他标签页(
admin/config/content/form_mode_manager)来通过界面排除表单模式。您可能会注意到,默认情况下,用户表单模式注册被排除,以避免任何冲突。
自定义实体
FormModeManager 可以用在许多上下文中。这里提供了核心实体示例的所有示例,实现和配置取决于您的实体。如果您定义了一个自定义实体并且不遵循现有的“模式”,则可能需要更多开发才能使用 Form mode manager,因为发现无法了解所有可能的自定义更改。
以下是需要 Form mode manager 与我们的实体一起工作的最小配置列表
- 有一个“标准”实体路由名称,例如您的操作表单。
- 添加表单操作的路由名称,例如(
entity.ENTITY_TYPE_ID.add_form)。 - 编辑表单操作的路由名称,例如(
entity.ENTITY_TYPE_ID.edit_form)。
- 添加表单操作的路由名称,例如(
- 具有正确的操作链接
默认(用于生成您的添加表单)edit-form(用于生成您的添加表单)
有关链接模板的更多信息,请参阅 显示模式(表单模式) 或 表单模式管理器使用页面 以找到与表单模式管理器模块增强的示例交互。
试用此模块
您可以直接通过子模块 Form mode manager example 尝试 Form mode manager 的操作,以测试不同的用例。您也可以在项目中安装模块并启用它 drush en form_mode_manager_examples -y 或使用 SimplyTest.me 服务。
在simplytest.me上试用
您可以直接在线尝试所有功能。
- 您只需通过单击按钮(为您已生成链接)来遵循所需的版本。
- 启动沙盒。
- 按照说明在线安装沙盒。
- 在“扩展页面”
admin/modules上启用 'Form mode manager examples' 子模块。 - 现在尝试。
- 使用此链接 1.0(发布候选版)。