子模块.

Learn DXPR BuilderExtendArchitectuur en API’s

该 modules/ 目录中有三个子模块。两个是小的配置包:接到构建器的内容类型和区块类型。第三个是 Media Library 支持之前的旧 Entity Browser 媒体选择器。本页记录每个安装的内容、依赖,以及如何启用或退役。

模块 机器名 提供 状态
DXPR Builder Drag and Drop Page dxpr_builder_page drag_and_drop_page 内容类型 支持
DXPR Builder Block Type dxpr_builder_block drag_and_drop_block 区块类型 支持
DXPR Builder Media dxpr_builder_media Entity Browser 媒体选择器 旧版;在 Extend 页面隐藏

它们都不是必需的。构建器适用于任何视图显示使用 DXPR Builder 格式化器(dxpr_builder_text)的文本字段;请参阅 在已有内容类型上安装。

DXPR Builder Drag and Drop Page

modules/dxpr_builder_page 安装 Drag and Drop Page 内容类型(node.type.drag_and_drop_page),来自 config/optional/:

  • 该 body 字段,默认视图显示使用 dxpr_builder_text 格式化器,表单显示用 Field Group 分组。
  • 三个 DXPR Theme 字段:field_dth_hide_regions、field_dth_main_content_width 和 field_dth_page_layout。它们只在字段存储存在时安装,字段存储由 DXPR Theme Helper 模块提供。

依赖来自 dxpr_builder_page.info.yml:field_group、text、node 和 dxpr_builder。hook_install() 在 body 字段存储不存在时创建它。可选配置无法安装时(如 Minimal 安装配置),它安装类型、正文字段和显示本身,不带 menu_ui 和 path 部分。dxpr_builder_page_update_8001() 将已安装的配置标记为模块强制。

src/DXPRBuilderPageUninstallValidator.php(注册在 dxpr_builder_page.services.yml 中)在存在任何 drag_and_drop_page 节点时阻止卸载。请先删除这些节点或更改其类型。

  1. 启用模块:

    drush en dxpr_builder_page -y
    
  2. 在 /node/add/drag_and_drop_page 创建页面。编辑人员查看页面时,构建器在正文字段上启动。

启用失败并提示“unmet dependencies”时,请启用 Field Group 并检查 body 字段存储是否存在;请参阅 更新后出现的问题。

DXPR Builder Block Type

modules/dxpr_builder_block 安装 Drag and Drop Block 区块类型(block_content.type.drag_and_drop_block),来自 config/optional/,带 body 字段、默认视图显示上的 dxpr_builder_text 格式化器和表单显示。该类型打开了 Create new revision,dxpr_builder_block_update_8002() 为旧安装打开它,因此区块上的每次构建器保存都创建修订(请参阅 内容暂存)。

依赖:text、node 和 dxpr_builder。

  1. 启用模块:

    drush en dxpr_builder_block -y
    
  2. 在 /block/add/drag_and_drop_block 创建区块。

  3. 将它放入区域。编辑人员在它出现的任何页面上就地编辑它。

dxpr_builder_entity_type_alter() 换入模块自己的 Drupal\dxpr_builder\Entity\BlockContent 类,对 Node 也一样。该类向空构建器字段存入空字符串,编辑器始终有附着点。因此您自己创建的区块类型一旦视图显示使用 DXPR Builder 格式化器,工作方式相同。

DXPR Builder Media

modules/dxpr_builder_media 是模块在核心 Media Library 支持之前的 Entity Browser 图片选择器。它在 .info.yml 中标记为 hidden: true,因此不出现在 Extend;您仍可以用 Drush 启用它。它安装:

  • entity_browser.browser.dxpr_builder_media_modal:标签为 DXPR Builder Image Browser 的弹窗浏览器,带两个小部件:Media Library 选项卡(由 dxpr_builder_media 视图支持),以及 Upload new image 选项卡(通过 Inline Entity Form 创建 image 媒体实体)。
  • views.view.dxpr_builder_media:第一个小部件的媒体网格。
  • image.style.dxpr_builder_media_thumbnail:网格用的 300 by 300 像素缩放裁剪样式。
  • 库 view、claro_style 和 gin_style(dxpr_builder_media.libraries.yml)。当前主题为 Gin 或基于 Gin 时,模块向视图附加 Gin 样式表,否则附加 Claro 样式表。

依赖:inline_entity_form、entity_browser、entity_browser_entity_form、media、media_library 和 views。安装时模块将 dxpr_builder.settings 中的 media_browser 设为 dxpr_builder_media_modal;卸载时设为空字符串(Basic file upload)并删除图片样式。

推荐的浏览器是核心 Media Library,不需要子模块:

  1. 卸载旧模块(如果已启用):

    drush pm:uninstall dxpr_builder_media -y
    
  2. 前往 DXPR Studio > DXPR Builder > General Settings (/admin/dxpr_studio/dxpr_builder/settings) 并打开 Media。

  3. 将 Browser type 设为 Media Library 并点击 Save settings。卸载已将其重置为 Basic file upload。

只在依赖返回文件 ID 的 Entity Browser 的网站上保留该子模块;不匹配的浏览器产生的错误请参阅 图片无法上传或消失。模块带有仓库中唯一的 PHPUnit 测试 tests/src/FunctionalJavascript/MediaEntityBrowserTest.php;请参阅 测试。

一次启用多个

drush en dxpr_builder_page dxpr_builder_block -y

每个子模块相互独立。

接下来做什么?