个人工具
名字空间
变换
操作

CMSware-kTemplate-if,elseif,else

来自站长百科
跳转到: 导航, 搜索

导航:返回上一页

说明

if,elseif,else标签用于实现模版中的逻辑判断。

例子1:判断变量的大小

<if   test="$a > $b"  >
$a 大于$b
<elseif test="$a < $b" >
$a 小于$b
<else>
a既然不大于b,又不小于b,那肯定是a等于b了
</if>

例子2:一行三列的图文列表

效果图:

Cmsware165.gif

调用代码:

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<CMS action="LIST" return="List" NodeID="self" Num="15" where="c.Photo != ''" />
<loop name="List" var="var" key="key" >
<if test="$key==0">
<td align="center" height="90">
<a href="[$var.URL]" target="_blank" title="[$var.Title]">
<img src="[@AutoMini($var.Photo,'160*120',$var)]" border="0" >
</a>
<br>
<a href="[$var.URL]" target="_blank" title="[$var.Title]">[@CsubStr($var.Title,0,10)]</a>
</td>
<elseif test="$key % 3 ==0" ><!--这里的3改为n可以实现一行显示n张图片 -->
</tr><tr>
<td align="center" height="90">
<a href="[$var.URL]" target="_blank" title="[$var.Title]">
<img src="[@AutoMini($var.Photo,'160*120',$var)]" border="0" >
</a>
<br>
<a href="[$var.URL]" target="_blank" title="[$var.Title]">[@CsubStr($var.Title,0,10)]</a>
</td>
<else>
<td align="center" height="90">
<a href="[$var.URL]" target="_blank" title="[$var.Title]">
<img src="[@AutoMini($var.Photo,'160*120',$var)]" border="0" >
</a>
<br>
<a href="[$var.URL]" target="_blank" title="[$var.Title]">[@CsubStr($var.Title,0,10)]</a>
</td>
</if>
</loop>
</tr>
</table>

例子3:如果内容中有新闻图片就显示图片,没有就显示一个默认图片

<if test="$var.Photo != ''">
<img src="[$var.Photo]" width="165" height="57">
<else>
<a href="[$var.URL]"><img src="[$Group_Images]g_r10_c15.jpg" width="165" height="57" border="0"></a>
</if>

例子4:新闻标题后面显示<图>、<组图>、new 同时判断的方法

判断有两张图并且是最新或不是最新的:
<if test="HavePhoto($var.Content,2)!='' ">
<if test="isToday($var.PublishDate,1)">[组图] [@strip(@CsubStr($var.Title,0,11,''))]<img src="[$img_css]img/living_m_new.gif" alt="new" />
<else>
[组图][@strip(@CsubStr($var.Title,0,11,''))]
</if> //判断有两张图并且是最新的------结束
判断有一张图并且是最新或不是最新的:
<elseif test="HavePhoto($var.Content,1)!=''">
<if test="isToday($var.PublishDate,1)">[图] [@strip(@CsubStr($var.Title,0,12,''))]
<img src="[$img_css]img/living_m_new.gif" alt="new" />
<else>[图][@strip(@CsubStr($var.Title,0,12,''))]
</if>判断有一张图并且是最新的-----结束
判断无图并且是最新或不是最新的:
<else><if test="isToday($var.PublishDate,1)">
[@strip(@CsubStr($var.Title,0,13,''))]<img src="[$img_css]img/living_m_new.gif" alt="new" />
<else>[@strip(@CsubStr($var.Title,0,13,''))]
</if></if>
判断无图并且是最新或不是最新的

要判断新闻内容里的图片用HavePhoto($Content,1)

第二个参数的数字表示取内容字段Content中的第几个图,如果有这个图,返回地址串,如果没有,返回空

如:想判断新闻的内容里到底有没有图,则

<if test="HavePhoto($Content,1)!=''>
新闻内容里有图,(也就是新闻内容字段里的第一个图的地址不为空)
</if>

同理,如果第二张图不为空,就是组图

例子5:如果内容权重为1就显示为“焦点”,权重为2就显示为“热门”

<if test="$var.Pink==1">
焦点
<elseif test="$var.Pink==2">
热门
</if>

例子6:判断一个变量值是否为空

<if !empty($var.ZURL) >
专题
</if>

上例说明:我们在内容模型中添加了一项,叫"ZURL",就想在走马灯里判断一下这个东西是否为空,可以用用empty($var)

例子7:在一个LIST列表里面使用CONTENT作为内容简介

<if empty($Intro)>
[@Csubstr(strip_tags($Content),0,65)]
<else>
[$Intro]
</if>

上例说明:首先判断内容是否添加了简介,如果没有就截取一段内容 (Content)作为简介;如果添加了简介就显示简介

例子8:在新发布的内容标题后面加上"new"

<!--------如果为新发布就加上new字样---------->
<if test="isToday($var.PublishDate,0)">
<div>[$var.Title]<font color=#ff0000>new</font></div>
<else>
[$var.Title]
</if>

例子9:标题设定了颜色就显示颜色;内容添加了图片标题后面就加上“[图文]“两个字

代码:

<if test="!empty($var.TitleColor)">
<font color="[$var.TitleColor]">[@CsubStr($var.Title, 0, 19)]</font>
<else>
[@CsubStr($var.Title, 0, 19)]
</if>
<if test="HavePhoto($Content,1)!=''">
[图文]
</if>

例子10:制作通用模版头时,内容页显示标题,列表页显示结点名称

代码:

<title>
<if test="!empty($Title)">
[$Title]
<else>
[$NodeInfo.Name]
</if>
</title>

例子11:制作通用模版头时,不同的内容模型输出不同的标题

代码:

<if test="$TableID == 1">
[$var.Title]
<elseif test="$TableID == 2">
[$var.SoftName]
<elseif test="$TableID == 6">
[$var.PhotoName]
<elseif test="$TableID == 3">
[$var.Title]
</if>

例子12:如果内容中有新闻图片就显示图片,否则取内容第一张图、不含图则调用默认图

<CMS action="LIST" return="List" NodeID="154" Num="10" />
<LOOP name="List" var="var" key="key">
<!--如Photo为空则取Content包含的第一张图、如Content中不含图则调用默认图-->
<if test="$var.Photo == ''">
<if test="HavePhoto($var.Content,1)!=''">
<op exp="$var.Photo= HavePhoto($var.Content,1)"/>
<else>
<op exp="$var.Photo= 'http://www.lonmo.com/images/img.jpg' "/><!--调用默认图-->
</if>
</if> <!--判断Photo路径,如为相对路径则补齐-->
<if test="strtoupper(substr($var.Photo,0,4))!='HTTP' ">
<op exp="$var.Photo=$SITE_URL . $var.Photo" /> <!--$SITE_URL 是个自己加的全局模版变量-->
</if><!--调用缩略图-->

<IMG src="[@AutoMini($var.Photo,'109*78',$var,'90','1')]" border="0" alt="[$var.Title]">
</loop>

例子13:列表页,每5条文章加一条分隔线

<CMS action="LIST" return="List" NodeID="" Num="20" />
<LOOP name="List" var="var" key="key">
<li>
<a href="[$var.URL]" target="_blank">[$var.Title] </a>
</li >
<if test="$key%5 ==0 and $key !=20">
<!--每5条文章加一条分割线,最后一条也就是第20条不加-->
<hr>
</if>
</loop>



参考来源

留言