在进行模板渲染之前,系统还会对读取的模板内容进行一些特殊字符串替换操作,也就是实现了模板输出的替换和过滤。该替换操作仅针对内置的模版引擎。
这个机制可以使得模板文件的定义更加方便,默认的替换规则有:
ROOT : 会替换成当前网站的地址(不含域名)
APP : 会替换成当前应用的URL地址 (不含域名)
MODULE :会替换成当前模块的URL地址 (不含域名)
CONTROLLER ( 或者 URL 兼容考虑): 会替换成当前控制器的URL地址(不含域名)
ACTION :会替换成当前操作的URL地址 (不含域名)
SELF : 会替换成当前的页面URL
PUBLIC :会被替换成当前网站的公共目录 通常是 /Public/
ROOT : 会替换成当前网站的地址(不含域名)
APP : 会替换成当前应用的URL地址 (不含域名)
MODULE :会替换成当前模块的URL地址 (不含域名)
CONTROLLER ( 或者 URL 兼容考虑): 会替换成当前控制器的URL地址(不含域名)
ACTION :会替换成当前操作的URL地址 (不含域名)
SELF : 会替换成当前的页面URL
PUBLIC :会被替换成当前网站的公共目录 通常是 /Public/
默认情况下,模板替换只会替换模板文件的特殊字符串,不会替换动态数据中的输出的内容。
注意这些特殊的字符串是严格区别大小写的,并且这些特殊字符串的替换规则是可以更改或者增加的,我们只需要在应用或者模块的配置文件中配置TMPL\_PARSE\_STRING就可以完成。如果有相同的数组索引, 就会更改系统的默认规则。例如:
'TMPL\_PARSE\_STRING' =>array(
' PUBLIC ' => '/Common', // 更改默认的/Public 替换规则' JS ' => '/Public/JS/', // 增加新的JS类库路径替换规则
' UPLOAD ' => '/Uploads', // 增加新的上传路径替换规则
)
'TMPL\_PARSE\_STRING' =>array(
' PUBLIC ' => '/Common', // 更改默认的/Public 替换规则' JS ' => '/Public/JS/', // 增加新的JS类库路径替换规则
' UPLOAD ' => '/Uploads', // 增加新的上传路径替换规则
)
有了模板替换规则后,模板中的所有 PUBLIC 字符串都会被替换,那如果确实需要输出字符串到模板呢,我们可以通过增加替换规则的方式,例如:
PUBLIC
PUBLIC
'TMPL\_PARSE\_STRING' =>array(
'--PUBLIC--' => ' PUBLIC ', // 采用新规则输出` PUBLIC `字符串
)
'TMPL\_PARSE\_STRING' =>array(
'--PUBLIC--' => ' PUBLIC ', // 采用新规则输出` PUBLIC `字符串
)
这样增加替换规则后,如果我们要在模板中使用 PUBLIC 字符串,只需要在模板中添加--PUBLIC--,其他替换字符串的输出方式类似。
- ThinkPHP模板
- 变量输出
- 系统变量
- 系统变量输出
- 常量输出
- 配置输出
- 语言变量
- 使用函数
- 默认值输出
- 使用运算符
- 标签库
- 导入标签库
- 内置标签
- 标签库预加载
- 模板继承
- 修改定界符
- 普通标签
- XML标签
- 三元运算符
- 包含文件
- 使用模版表达式
- 使用模版文件
- 传入参数
- 内置标签
- Volist标签
- Foreach标签
- For标签
- Switch标签
- 比较标签
- 范围判断标签
- IN和NOTIN
- BETWEEN 和 NOTBETWEEN
- RANGE
- IF标签
- Present标签
- Empty标签
- Defined标签
- Assign标签
- Define标签
- 标签嵌套
- import标签
- 使用PHP代码
- 使用php标签
- 使用原生php代码
- 原样输出
- 模板注释
- 单行注释
- 多行注释
- 模板布局
- 第一种方式:全局配置方式
- 第二种方式:模板标签方式
- 第三种方式:使用layout控制模板布局
- 模板替换
- 调用导航
- 调用栏目信息
- 根据栏目Id获取栏目信息
- 首页&封面调用信息列表
- 调用新闻列表
- 当前位置
- 当前位置
- 列表页分页
- 热门信息
- 获取热门信息
- 上一篇&下一篇
- YNCMS函数
- YNCMS插件开发
- 开始开发