迅睿系统层提供统一的模板引擎 \Phpcmf\View(通过 \Phpcmf\Service::V() 调用):把模板标签编译为 PHP,缓存到 cache/template/ 后输出。

前台模板根目录为常量 TPLPATH(默认项目根下 template/)。


系统侧模板目录

位置用途
template/TPLPATH前台模板根目录;系统首页等可直接放置如 index.html404.htmlmsg.html
dayrui/Fcms/View/后台核心视图(禁止直接修改)
dayrui/My/View/覆盖后台/系统视图的推荐位置;可按应用再建子目录
dayrui/App/{应用}/Views/应用自身视图(后台页、应用页面常用)
cache/template/模板编译缓存(可清空,勿当源文件目录)

控制器通过 display('文件名.html') 输出;系统会按当前场景在应用 Views、My/View、前台模板根、后台 View 等路径中解析实际文件。

也可用 Service::V()->dir() / set_dir() 强制指定模板目录。

模板引擎用法

  • assign:注入模板变量。

  • display($文件名, $目录 = ''):编译并输出。

  • 开发者模式或后台调试开启时,页面源码可能带当前模板路径注释,便于排查。

解析流程:定位模板文件 → 编译写入 WRITEPATH.'template/' → 钩子 cms_view_display / cms_view → include。

可在自定义函数 my_parser_view_rule() 中于编译前改写模板源码。

常用标签

标签说明
{$var} / {$a.b}输出变量;支持多维点语法
{CONST}输出常量
{func(...)}调用函数
{Class::method(...)}调用类方法
{template "x.html"}引入其它模板
{load "x"}加载指定文件
{php}...{/php}嵌入 PHP
{if} / {else} / {/if}条件
{loop}...{/loop}遍历
{for}...{/for}循环
{list ...}...{/list}数据列表标签(动作语义多与插件/业务相关,详见标签专篇)
{empty}...{/empty}列表为空时

开发建议

  • 系统/应用开发:改 template/、应用 Views/My/View,勿改 Fcms/View

  • 模板不生效时:清理 cache/template/ 或后台更新缓存,并确认 display 文件名与实际路径一致。

  • IS_EDIT_TPL 允许后台改模板,生产环境勿长期开启。

本文地址:https://m.xunruicms.com/doc/xunrui/1482.html