CMSware-kTemplate-op
导航:返回上一页
说明
该语句为新增语句,用于表达式的运算
格式:<op exp="要运算的表达式"/>
Op语句的功能非常强大,可以用来替换var语句进行复杂变量定义
<var name="hello"value="world" />
等同于
<opexp="$hello='world'" />
使用Op语句进行复杂变量定义:
<op exp="$hello=Cstrsub($var.Content,1,10,'...').'New!'"/>
例子1:使文章点击次数的初始值不为0
在模版里把调用文章点击数的那个字段进行处理,就能得到你要的了。下面的例子是让初始值为1000
调用代码:
<op exp="$my_hits = $Hits_Total +1000" /> [$my_hits]
例子2:两个非数值的变量连接起来赋给第三个变量
调用代码:
<op exp="$var1 = $var2 . $var3" />
在连接符的后面打上一个空格就可以了
例子3:各种简单应用举例
调用代码:
<op exp="$var=$var+1" /> <op exp="$var++" /> <op exp="$var=($var - 5)/10" /> <op exp="$var=date()" /> <op exp="$var=date('Y-m-d', $info.Time)" />
例子4:某个结点下的新闻调用,按发布月份不同区分开
输出效果:
2005年11月 ·新闻111111111 ·新闻222222222 ·新闻333333333 2005年10月 ·新闻111111111 ·新闻222222222 ·新闻333333333 2005年9月 ·新闻111111111 ·新闻222222222 ·新闻333333333
调用代码:
<!--按月归档列表开始--> <ul> <cms action="LIST" return="List" NodeID="self" num="100" orderby="i.PublishDate DESC" /> <op exp="$lastmonth='' " /> <!--初始化上一条的年月值为空--> <loop name="List" var="var" key="key"> <!--循环开始--> <op exp="$currentmonth=date('Y年m月',$var.PublishDate)" /> <!--取出当前条年月值--> <if test="$currentmonth != $lastmonth"> <!--如果当前和上一条不同,开始新年月段标识显示--> <br /><strong>[$currentmonth]</strong><br /> </if> <li>[$var.Title]</li> <!--显示文章标题链接--> <op exp="$lastmonth=$currentmonth " /> <!--让上一条年月值变量等于当前条年月值--> </loop> <!--循环结束--> </ul><!--按月归档列表结束-->
补充说明:
如果是要按日的,就修改
date('Y年m月',$var.PublishDate)
改为
date('Y年m月d日',$var.PublishDate)
就可以了'
例子5:自定义内容模型中计算某字段平均值应用
说明:
- 在制作系统模版的时候可能会用到需要计算某个字段的平均值,或者加减值!
示例:
甲班级有58人,乙班机有67人,丙班级中有98人,求这年纪3个人平均每班有多少人。
定义内容模型:(TableID=3)(NodeID=2)
(1)字段
班机名称[$Name],班机人数[$Num]
调用代码:
<CMS action="LIST" return="List" NodeID="2" Num="10" /> <LOOP name="List" var="var" key="key" start="1"> [*]序号:[$key] - 班机名称:[$var.Name] - 班机人数:[$var.Num] <op exp="$Sum=($Sum)+($var.Num)"> <!--这条OP设置将$var.Num进行汇总--> </LOOP> 本年级每班平均人数为:<op exp="$Pj=($Sum)/($key)">[$Pj]
比如一篇品牌服装发布会的文章,为其设置“品牌”“服装”和“发布会”3个关键字。
我想在文章标题上加上:
本文关键字:品牌,服装,发布会
关键字自动加上搜索链接
调用代码:
<op exp="$keyword_links = explode(',',$Keywords)" /> 本文相关关键字: <LOOP name="keyword_links" var="keyword" key="key" start="1"> <a href="[$PUBLISH_URL]search.php?o=search&TableID=1&Field=Content&Keywords=[$keyword]" target="_blank"> <if test="$key==sizeof($keyword_links)"> [$keyword]</a> <else> [$keyword]</a> | </if> </LOOP>
注意;后台录入的各个关键字之间是用“,”隔开的,即是“品牌,服装,发布会”这么录入的。也可以直接把这段写成一个函数,放进cms.ini.php中,然后用[@func($keywords)]的方法调用
例子7:使变量ID递增
比如,我要实现下述调用
<script> var autourl=new Array() autourl[1]="http://1.lonmo.com" autourl[2]="http://2.lonmo.com" autourl[3]="http://3.lonmo.com" autourl[4]="http://4.lonmo.com" autourl[5]="http://5.lonmo.com" autourl[6]="http://6.lonmo.com" </script>
调用代码:
如果是在调用里的,可以这样
<loop name="List" var="var" key="key" start="1" > <li>[$key] </li> </loop>
独立于某个调用,可以这样
<op exp="$abc=1" /> [$abc] <op exp="$abc++" />