在上一篇《剑鱼论坛主题制作之提取公共代码》里面我们学习了如何把一些公共的代码提取到单独的文件里面,可以方便模板的制作且让代码更清晰和简洁。这一篇我们将学习新的内容,介绍一下剑鱼论坛主题制作中要用到的标签语法。
我们在系统默认主题“default”的代码中会看到一些用大括号括起来的代码,这些代码就是模板标签,包括我们上一篇介绍的代替公共文件中的代码的“{include file="public/theme/default/daohang.html" /}”,这也是一个标签。下面我们来介绍一下其他的标签语法:
一、简单标签:
有些标签是类似于这样的标签:
{$title}
这种标签很简单,大括号内部是一个以“$”开头的字符串,从字面意思可以看出来,这个标签表示的是输出标题。像这种简单标签主题代码里面有很多,因为其语法十分简单,所以我们把其称之为“简单标签”,简单标签我们后面将用一篇内容来介绍,这里只是介绍语法,就是使用的方法。
有一点编程基础的用户都知道,包括只会前端的用户应该曾经接触过一点JavaScript的代码,知道里面有判断语句和循环语句,我们的标签语法里面也有判断语句和循环语句,下面我们来详细看一下:
二、判断标签:
判断标签有三种,分别如下:
1、if标签语句:
先来看下面的代码:
{if $vo.active == 1}
输出1
{else /}
输出2
{/if}
上面的代码是一个if标签语句,用来判断条件是否满足,如果满足的话则输出1,否则输出2,这里为了简化说明,只使用“输出1”和“输出2”来代替实际的HTML输出。如果只需要一个判断分支,那么“else”是可以省略的,如下:
{if $vo.active == 1}
输出
{/if}
if语句还有另一种用法,如下:
{if condition="$vo.active eq 1"}
输出
{/if}
这里仅仅是比上面的用法多了“condition”,实际上是一样的,只是把判断的条件放到了双引号里面了。介绍这个用法,只是在默认主题里面有几个if语句是这样写的,您能够看得懂就可以了。其中的“eq”相当于“==”,表示等于。
2、notempty标签语句:
notempty表示的是判断是否不为空,我们先来看下面的代码:
{notempty name="vo.zuijinfangwen"}
输出
{/notempty}
上面的代码表示“name”这个条件如果不为空的话,那么输出。当然您也可以根据实际情况使用else,如下:
{notempty name="vo.zuijinfangwen"}
输出1
{else /}
输出2
{/notempty}
上面的代码表示条件不为空时输出1,否则输出2,这个语法对于判断输出是否为空很有用处。
3、empty
很显然,“empty”标签是跟“notempty”标签正好相反的,是用来判断是否为空,见下面的代码:
{empty name="vo.zuijinfangwen"}
输出
{/empty}
上面代码的意思是如果“name”所表示的变量输出为空的话那么输出。同样地,empty标签也可以结合else使用。
三、循环标签:
我们先来看循环标签的代码:
{volist name="daohang" id="vo"}
{$vo.icon} {$vo.label}
{/volist}
上面的标签就是循环标签“volist”的用法,“name”表示对什么进行循环,id表示每个循环输出项的id,可以用来在循环体内部代表每个循环输出项,例如“{$vo.icon}”就是表示输出这个id为“vo”的项的图标。当然,这里的“vo”您可以按您自己的喜好替换成其他的字符,例如下面的代码是等效的:
{volist name="daohang" id="item"}
{$item.icon} {$item.label}
{/volist}
这里为了说明清晰,省略了其中的HTML代码,实际使用中需要结合HTML的输出,有的时候还需要结合上面介绍的判断标签一起使用。
循环标签里面,如果需要输出设定数量的内容,可以使用如下标签语法:
{volist name="daohang" id="item" length="5"}
{$item.icon} {$item.label}
{/volist}
以上标签增加了“length”属性,这里表示只输出5个内容项,您可以修改这里的数字,以符合自己的需要。volist循环标签里面都可以使用“length”属性来设定输出数量。
好了,基本的标签语法就介绍完了,学习了这些标签语法就能够看懂默认主题里面的标签了,更进一步的话,您也可以自己设计和制作需要的主题了,虽然主题的制作也是一件很费时费力的事情,但只要您有耐心和技术就能完成。
下一篇是“剑鱼论坛主题制作之简单标签”,我们将介绍简单标签。