覆盖 DXPR Builder 模板.
DXPR Builder 的元素在浏览器中渲染,所用模板编译进编辑器。没有可复制到主题中的元素模板。模块为自己的页面自带四个 Twig 模板,您可以用常规 Drupal 方法覆盖它们。本页列出它们,解释元素标记为什么不能覆盖,并指向模块支持的替代路线。
可覆盖的 Twig 模板
模板位于模块的 templates/ 文件夹中:
| 模板 | 用途 | 变量 |
|---|---|---|
dxpr-license-info.html.twig |
该 User Licenses 和 Content items 页面上的用量摘要,以及 License info 区块 | used_count、total_count、limit、block_label、total_label、used_label、more_info_link |
page--dxpr-builder--media-library.html.twig |
Media Library 对话框的页面外层,位于 /dxpr_builder/media-library |
标准的 page 变量 |
html--dxpr-builder--media-library.html.twig |
同一对话框的 <html> 外层 |
标准的 html 变量 |
page--people-list.html.twig |
一个 People 页面(/admin/people)带许可证摘要的起点 |
标准的 page 变量,以及 user_license |
前三个开箱即用。Drupal 不会从模块加载 page--people-list.html.twig。DXPR Builder 只在 People 页面上添加 page__people_list 建议和 user_license 变量。要在那里显示摘要,请将文件复制到您的管理主题中。
覆盖模板:
- 将文件从
modules/contrib/dxpr_builder/templates/复制到渲染它的主题的templates/文件夹中。管理页面和 Media Library 对话框使用管理主题。License info 区块使用您放置它的区域的主题。 - 编辑副本。
- 用
drush cr清除缓存。
元素标记为什么不能覆盖
每个元素的标记是 dxpr_builder/templates/ 中的 twig.js 模板,例如 elements/alert/alert.twig.html。构建将这些模板编译进 dxpr_builder/dxpr_templates.js。编辑器在浏览器中渲染它们,并将生成的 HTML 存入字段。由此得出两点:
- 更改模板需要重建编辑器。从 DXPR CDN 加载编辑器的网站完全无法使用更改后的模板。
- 已保存的页面保留保存时的 HTML。新模板只影响更改后渲染的元素。
因此模块不提供元素模板的按站覆盖。请用下文路线之一。
支持的定制路线
| 目标 | 路线 |
|---|---|
| 编辑人员可重复使用的布局 | 页面模板和 用户模板,都在构建器中选用 |
| 更改元素外观 | 自定义 CSS(主题中),针对自己的类或 az-* 类 |
| 给编辑人员命名的样式 | 实用类(主题 .info.yml 中的),以及文本编辑器的 自定义样式(文本编辑器用) |
| 额外的图标集 | 图标库 |
| 新元素类型 | 创建自定义元素 |
接下来做什么?
- 页面模板:编辑人员使用的模板系统。
- DXPR Builder 主题化:构建器 CSS 与主题的配合。