您的位置 首页 网站建设

iCMS模板系统基础知识

iCMS模板系统

iCMS的模板系统在Template Lite基础上修改而来!

Template Lite是一个非常快而且很小HTML模板引擎,兼容大部分Smarty语法.

在此强大的基础上,做了很多优化,并增加了自己独有调用方式发展而来!

所以iCMS的模板语法跟smarty其实是差不多的

模板边界符

iCMS使用了<!--{}-->做为边界符

模板标签

有如下几种形式

变量

<!--{$变量名称}-->例:<!--{$vars}-->

多个变量联接

<!--{$var$var2$var3'a'1123}-->

变量为数组

<!--{$变量名称.属性}-->例:<!--{$array.key}-->

属性为数组的键名

键名为数字

<!--{$变量名称[数字]}-->例:<!--{$array[0]}-->

变量的属性为数组

<!--{$变量名称.属性.属性}-->例:<!--{$array.arr.key}-->

调用iCMS特有函数

<!--{iCMS:函数 参数='值'}-->

这种方式一般没有赋值到变量都是直接输出结果

如果有结果赋值到变量,都是以函数名命名的变量

结果赋值到<!--{$函数名}-->

结果一般是数组类型

可以使用print_R查看所有属性

<!--{$函数名|print_R}-->

示例:1.直接输出

<!--{iCMS:router url='public:seccode'}-->

结果输出:http://www.xx.com/public/api.php?app=public&amp;do=seccode

示例:2.无输出,结果赋值到变量

<!--{iCMS:config}-->

结果赋值到 <!--{$config}-->

可以使用print_R查看所有属性

<!--{$config|print_R}-->

调用iCMS应用方法

无循环,结果直接输出或者赋值到($应用名_方法)

类似上面说到的调用iCMS特有函数的方法

返值一般是数组类型

<!--{iCMS:应用名:方法 参数='值'}-->

<!--{$应用名_方法.属性}-->

<!--{$应用名_方法|print_R}--> //使用print_R查看所有属性例:

<!--{$article_list.url}-->

示例1

<!--{iCMS:public:qrcode data="二维码"}-->

示例2

<!--{iCMS:public:ui}-->

示例3:调用栏目cid=1的信息

<!--{iCMS:category:array cid="1"}-->

结果赋值到<!--{$category_array}--> ,可以使用print_R查看所有属性

<!--{$category_array|print_R}-->

iCMS应用类标签(循环)无别名

<!--{iCMS:应用名:方法 loop='循环标示符' 参数='值'}-->

<!--{$应用名_方法.属性}-->

<!--{/iCMS}-->

示例:

<!--{iCMS:article loop='true' row='100'}-->

<a href="<!--{$article_list.url}-->"><!--{$article_list.title}--></a>

<!--{/iCMS}-->

iCMS应用类标签(循环) 有as (别名) 的情况下

<!--{iCMS:应用名:方法 loop='循环标示符' as="别名" 参数='值'}-->

<!--{$别名.属性}-->

<!--{/iCMS}-->

示例:

<!--{iCMS:category:list loop="true" row="10" as="cate"}-->

<a href="<!--{$cate.url}-->"><!--{$cate.name}--></a>

<!--{/iCMS}-->

注: 在包含有 loop='循环标示符' 的<!--{iCMS:aaa:bbb}-->标签中,

一定要以<!--{/iCMS}-->结尾

基本语法

判断 if

模板文件中可以使用if else等判断语句

==,!=,>,<,<=,>=

这些是if中可以用到的比较。看看就能知道什么意思吧。

<!--{if}--> 必须和 <!--{/if}--> 成对使用

例子

<!--{if $name=="iCMS"}-->

Hello World

<!--{/if}-->

<!--{if $name=="iCMS"}-->

Hello World

<!--{else}-->

Welcome

<!--{/if}-->

<!--{if $name=="iCMS"}-->

Hello World

<!--{elseif $name=="idreamsoft"}-->

idreamsoft.com<!--{else}-->

Welcome

<!--{/if}-->

取模判断

<!--{if $name % 5 =="1"}-->

Hello World

<!--{/if}-->

示例:每个li 两组数据

<ul>

<!--{iCMS:article:list loop="true" row="20" }-->

<!--{if $article_list.first}--><li><!--{/if}-->

<!--{"$article_list.index % 2"}-->

<span><!--{$article_list.title}--></span> 

<!--{if $article_list.index % 2}-->

</li><!--{if !$article_list.last}-->

<li><!--{/if}-->

<!--{/if}-->

<!--{/iCMS}-->

</ul>

循环遍历数组 foreach

<!--{foreach}--> 必须和 <!--{/foreach}--> 成对使用,且必须指定 from 和 value 属性。

from 需要遍历的数组

value 在每次循环中被赋给变量

key,start,end 属性可选

key 索引

start 开始行

end 结束行

<!--{foreach key=key value=alist from="$article_list"}--> 

<!--{$key}-->

<a href="<!--{$alist.url}-->"><!--{$alist.title}--></a><!--{/foreach}-->

循环 for

<!--{for start="0" stop="10" value="i"}--><!--{$i}--><!--{/for}-->

模板内简单计算

注:需要加上双引号

<!--{"$key+1"}-->

模板中赋值

<!--{"$a='1a'"}-->

模板中简单三元表达

<!--{$c?$c:'5'}-->

有表达式时 需要加双引号

<!--{"$c<1?$c:'5000'"}-->

模板中,定义一个颜色数组,随机循环

<!--{array 1='red' 2="black" 3="blue" 4="#ededed" 5="#fff" 6="#ffeecc"}-->

<!--{for start="0" stop="10" value="i"}-->

<!--{'1'|rand:'6'|as:'rk'}--> #放循环里

<!--{$array[$rk]}--><!--{/for}-->

模板中定义一个数组

<!--{array key="value" key1="value1"}-->

<!--{array as="a1" flag="col" a[]="1" b[]="2"}-->

<!--{array as[]="a2" a="1" b="2"}-->

<!--{array as="a3" {json}}-->

<!--{array as="a4" []={json}}-->

<!--{array as="a5" [a]='aa'}-->

<!--{array as="a6" a[b][c]='aa'}-->

模板中引用赋值

变量前加&

<!--{&$article.pubdate|date:"Y-m-d H:i"}-->

免责声明:本文由静落凝封整理发布,版权归原作者所有,转载请注明出处,如有侵权请联系管理员删除

热门文章

Linux中升级更新命令yum update和yum upgrade的区别

Linux中升级更新命令yum update和yum upgrade的区别

Linux中升级更新命令yum update和yum upgrade的区别,yum -y update:升级所有包同时也升级软件和系统内核;yum -y upgrade:只升级所有包,不升级软件和系统内核。...

网页中文简体繁体转换JS代码

网页中文简体繁体转换JS代码

要在网页上实现中文简体和繁体之间的转换,可以使用JavaScript库,以下是我在网络上收集整理的网页中文简体繁体转换JS代码,供收藏,以备用。代码有点多,就不直接贴代码了,自行下载测试哈...

通过脚本文件自动更新Linux实例中的软件源

通过脚本文件自动更新Linux实例中的软件源

本文主要介绍通过脚本文件更新Linux实例中的软件源的方法。如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。如果您对实例等进行配置与数据修改,建...

在CentOS系统的ECS实例中配置OpenVPN

在CentOS系统的ECS实例中配置OpenVPN

在安装OpenVPN服务前,请确保完成如下准备工作。请参考如下文档,将YUM源更新为阿里云的YUM源。如何通过工具自动更新Linux实例中的软件源。依次执行如下命令,安装依赖的软件包。yum instal...

Linux 自动注销设置 TMOUT

Linux 自动注销设置 TMOUT

对所有用户设置自动注销功能:首先,以root用户登录系统,输入 vi /etc/profile 命令,编辑profile文件。查找TMOUT,若没有,则可以在文件最后添加如下语句:TMOUT=300 export TOMOUT 如果查...