正在加载文档...
模板系统说明
一、系统特性
- 基于Template Lite模板引擎开发
- 兼容80%以上Smarty语法
- 采用
<!--{}-->
作为模板边界符 - 执行效率高,支持多种高级模板特性
二、模板边界符
标准格式:<!--{命令}-->
注释形式:<!--{* 注释内容 *}-->
三、变量操作
1. 基本变量
<!--{$variable}-->
2. 复合变量
<!--{$var1$var2$var3'text'123}-->
3. 数组变量
类型 | 语法示例 | 说明 |
---|---|---|
关联数组 | <!--{$array.key}--> |
使用点号访问属性 |
数字索引数组 | <!--{$array[0]}--> |
使用中括号访问数字索引 |
多维数组 | <!--{$array.arr.key}--> |
支持多级属性访问 |
四、函数调用
1. iCMS内置函数
<!--{iCMS:function param='value'}-->
特性:
- 直接输出结果
- 结果变量自动命名为函数名
- 支持数组类型返回
示例:
<!--{iCMS:router url='public:seccode'}-->
<!--{$router|print_r}--> // 查看返回数组
2. 应用方法调用
(1) 单次调用
<!--{iCMS:app:method param='value'}-->
<!--{$app_method.property}-->
(2) 循环调用
<!--{iCMS:app:method loop='true' as="alias"}-->
<!--{$alias.property}-->
<!--{/iCMS}-->
示例:
<!--{iCMS:article:list loop='true' row='10' as="art"}-->
<a href="<!--{$art.url}-->"><!--{$art.title}--></a>
<!--{/iCMS}-->
五、流程控制
1. 条件判断
<!--{if $var == value}-->
...
<!--{elseif $var == value2}-->
...
<!--{else}-->
...
<!--{/if}-->
支持比较运算符:==
, !=
, >
, <
, >=
, <=
2. 循环结构
(1) foreach循环
<!--{foreach from="$array" key="k" value="v"}-->
索引:<!--{$k}-->
值:<!--{$v}-->
<!--{/foreach}-->
(2) for循环
<!--{for start="0" stop="10" value="i"}-->
当前值:<!--{$i}-->
<!--{/for}-->
六、模板内操作
1. 数学运算
<!--{"$var1 + $var2 * 3"}-->
2. 变量赋值
<!--{assign var="newVar" value="value"}-->
3. 三元运算
<!--{$condition ? $trueValue : $falseValue}-->
4. 数组定义
<!--{array key1="val1" key2="val2" as="myArray"}-->
七、高级技巧
1. 模数运算
<!--{if $index % 3 == 0}-->
<!-- 每3个元素执行操作 -->
<!--{/if}-->
2. 随机颜色示例
<!--{array 1='red' 2='#000' 3='#fff' as="colors"}-->
<!--{for start="0" stop="5" value="i"}-->
<!--{rand(1,3)|as="colorKey"}-->
<div style="color:<!--{$colors[$colorKey]}-->">Item</div>
<!--{/for}-->
或者
<!--{rands as="bgc" values="#F5F5F5,#FAF9F6,#E6F4F1,#F0F8E8,#FFF5EE,#F5F0FF,#FFF8E1"}-->
<div style="background-color:<!--{$bgc}-->;">
随机背景色
</div>
八、注意事项
- 循环标签必须成对使用:
<!--{iCMS:...}-->
必须对应<!--{/iCMS}-->
- 变量作用域:循环内定义的变量仅在循环体内有效
- 性能建议:避免在模板中进行复杂计算
- 调试技巧:使用
print_r
或var_dump
输出变量结构
九、附录:Smarty兼容性
支持大部分Smarty语法,差异点:
- 边界符不同(使用<!--{}-->)
- 部分函数实现方式不同
- 扩展了应用方法调用机制
本指南通过结构化的内容组织、代码示例和表格对比,帮助开发者快速掌握iCMS模板系统的核心功能。实际使用中建议结合具体业务场景灵活运用各种模板语法,并注意保持模板代码的简洁性和可维护性。