设计样式#
在 XF2 中,我们引入了一种全新的构建和编辑样式的方式,称为“设计模式”。设计模式是一组 CLI 工具集合,允许您直接在文件系统中修改样式内的特定模板。它还会输出关于样式属性的各种元数据和信息,这对版本控制和团队协作非常有用。
启用设计模式#
启用设计模式的第一步是在 config.php
中进行配置:
您还可以选择为设计模式文件指定不同的文件系统路径。以下代码展示了默认位置。若要更改路径,请将以下内容添加到 config.php
并修改相应路径:
为样式启用设计模式#
每个样式需要单独启用设计模式。通过 CLI 工具,指定样式的 ID 并选择一个“设计模式 ID”即可启用:
designer_mode_id
是后续与设计模式相关命令中使用的标识符。启用后,当前样式的已修改组件将被导出到 [basePath]/[designer_mode_id]
目录。
如果目标目录已存在,系统会询问是覆盖目录中的内容,还是用目录内容覆盖当前样式。
为样式禁用设计模式#
禁用设计模式只需运行以下 CLI 命令:
默认会保留文件系统中的设计模式输出副本。若需清除数据,可使用 --clear
选项:
输出内容与位置#
需注意:XF 中的样式仅包含该样式中被修改的部分。因此,设计模式只会输出该样式中被修改的内容,父样式中修改的模板和样式属性不会被输出。
模板#
模板将输出到 [basePath]/[designer_mode_id]/templates
目录。该目录下可能包含按类型(如 admin、email、public)分类的子目录。
模板以 HTML 格式输出,可直接在文件系统中编辑。文件系统的修改会在页面加载模板时自动导入并编译。同理,删除文件系统中的模板可还原修改(如果之前被修改过)。
样式属性与分组#
样式属性和分组分别输出到 [basePath]/[designer_mode_id]/style_properties
和 [basePath]/[designer_mode_id]/style_property_groups
目录。它们以 JSON 格式导出,便于通过版本控制系统跟踪变更。
不建议直接修改这些文件,因为它们的变更不会像模板那样自动导入。
修改特定模板#
需注意:样式仅包含其内部修改的组件。启用设计模式后,文件系统也只会包含该样式中被修改的组件,无法输出每个模板和样式属性的完整生效版本。
要在样式中标记模板为已修改,可通过 Admin CP 按常规方式编辑。如果设计模式已启用,Admin CP 中修改的模板和样式属性会自动写入文件系统。但更便捷的方式是使用 CLI 命令“触碰”模板:
只要指定模板存在于父样式或主样式中,它就会被复制到当前样式并输出到文件系统。之后可直接在文件系统中修改模板。
若要创建完全自定义的模板(在样式树中不存在于其他任何样式),可使用 --custom
选项:
其他实用命令#
以下是与设计模式相关的其他实用命令:
从数据库导出#
启用设计模式时此命令通常自动运行。如需用数据库当前内容覆盖文件系统副本,可运行:
也可仅导出特定类型,例如 xf-designer:export-templates
。
从文件系统导入#
此命令会用文件系统内容覆盖样式的数据库副本:
也可仅导入特定类型,例如 xf-designer:import-templates
。
同步模板#
此命令类似于导入模板,但不会覆盖全部内容,仅当元数据变更时导入并重新编译模板,同时更新版本号:
还原模板#
此命令用于还原模板,即从当前样式中删除自定义版本:
从文件系统删除模板也会触发还原操作。