模板调节器

一、基础语法

<!--{$变量名|调节器名:参数1:参数2...}-->
  • $ 开头表示变量标签
  • 支持链式调用多个调节器(从左到右顺序执行)
  • 参数支持字符串/数字/PHP函数返回值

二、调节器分类说明

1. 数据输出处理

调节器 说明 示例
print_r 打印数据结构 <!--{$site\|print_r}-->
default 空值默认替换 <!--{$title\|default:"暂无"}->
assign 赋值到新变量 <!--{123\|assign:'num'}-->

2. 字符串处理

调节器 参数说明 示例
upper 转大写 <!--{$title\|upper}-->
lower 转小写 <!--{$title\|lower}-->
cut 截断长度:结束符 <!--{$desc\|cut:50:'...'}-->
cnlen 计算中文字数 <!--{$content\|cnlen}-->
replace 查找内容:替换内容 <!--{$text\|replace:'旧':'新'}-->
strpos 查找字符串位置(PHP函数) <!--{if 'abc'\|strpos:'b'}-->

3. 时间处理

<!--{$timestamp|date:'Y-m-d H:i:s'}-->
<!--{$iCMS.NOW|date:'m/d/Y'}-->

支持所有PHP date()格式参数

4. 内容安全处理

调节器 说明 示例
html2text 去除HTML标签 <!--{$content\|html2text}-->
htmlcut 安全截取HTML内容 <!--{$content\|htmlcut:100}-->

5. 图像处理

<!--{$pic.url|thumb:宽度:高度}-->
<!--{$pic.url|thumb:300:200}-->

6. 其他功能

调节器 说明 示例
rand 生成随机数(最小值:最大值) <!--{'1'\|rand:10}-->
count 统计数组元素(PHP函数) <!--{$pics\|count}-->

三、高级用法

1. 链式调用

<!-- 先清除HTML标签,再截取50字符 -->
<!--{$content|html2text|cut:50}-->

<!-- 生成随机数并赋值 -->
<!--{'1'|rand:100|assign:'random'}-->
当前随机数:<!--{$random}-->

2. 结合逻辑判断

<!--{if $desc|cnlen > 100}-->
  内容过长,已截断显示:<!--{$desc|cut:100}-->
<!--{/if}-->

3. 使用PHP函数

<!-- 使用md5加密 -->
<!--{$password|md5}-->

<!-- 转换JSON格式 -->
<!--{$data|json_encode}-->

四、注意事项

  1. 参数规范

    • 字符串参数推荐使用单引号包裹
    • 数值参数直接填写
    • 多参数使用英文冒号分隔
  2. 特殊转义

    
    <!-- 需要输出冒号时使用双引号 -->
    <!--{$text|replace:'old':'new'}--> 

<!-- 参数包含空格时需引号包裹 -->
<!--{$addr|replace:'Road':'Rd'}-->


3. **变量作用域**
   - 通过`assign`创建的变量在整个模板有效
   - 建议变量名使用小写字母+下划线组合

4. **性能建议**
   - 避免在循环中执行复杂操作
   - 优先使用内置调节器替代PHP函数

## 五、调试技巧

1. 查看原始数据
```html
<!--{$data|print_r}-->
  1. 类型检查
    
    <!-- 检查变量类型 -->
    变量类型:<!--{$data|gettype}-->

<!-- 检查是否数组 -->
<!--{if $data|is_array}-->


3. 开发模式日志
```html
<!-- 输出执行日志 -->
<!--{$data|var_dump}-->