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:一行三列的图文列表
效果图:
调用代码:
<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>