给tag()参数正确传值方法
发表:DESTOON模板堂(dtmoban.com)
发表时间:2016-07-27
给tag()参数传值的三种方式
一、传数字
传数字是最简单的,直接在参数的等于号后面写上要传的数字就行了,如:&catid=1205
二、传文字(字符串)
传文字类型的字符串,需要给文字加上''(单引号),如:&title='dt模板堂'。
字符串类型的值,在tag()自带的参数只有 &condition 的值里会用到,其它参数都用不上。
示例:
<!--{tag("moduleid=5&condtion=status=3 and title like '%dt模板堂%'&pagesize=10&order=addtime desc")}-->
三、传变量
传变量有三种情况
1、变量值为数字
例如我们有一个变量:$catid = 1025; 这个变量是在php里面申明的,或者从url中获取到的。
tag()中传值方法: &catid=$catid
就像传数字一样,直接将变量写到等于号后面就好了。
2、变量值为字符串
例如我们有一个变量:$kw = 'dt模板堂';
tag()中传值方法: &condition=title like '%$kw%'
字 符串传只有在condtion参数的值里会用到
3、变量名为二维
例:我们有一个项目,先要从分类表里调出当前频道的顶级分类,然后再循环调出每个分类的子分类
代码如下:
<!--{php $tags=tag("table=category&condition=parentid=0 and moduleid=5&pagesize=10&order=listorder asc&template=null");}-->
{loop $tags $i $t}
<li><a href="{cat_url($t[catid])}">{$t[catname]}</a></li>
{/loop}
通过上面的代码,我们已成功调出顶级分类了,有过其它cms模板标签调用的小伙伴一定,需要调出子分类,需要在大循环里再把分类调用代码再小循环一次,并且把小循环的条件中分类上级id改成大循环中获取的 分类id。
我们来看顶级分类调用中condition的值中我们使用prarentid=0,表示调用prarentid值为0的分类,也就是顶级分类。
如果我们调出某个顶级分类下面的子分类,只需要把这个0改成对应的顶级分类的id就行了。
现在我们获取的一大分类的id是一个变量 $t['catid'],按照我们的思路将调用代码复制一遍,插入循环中,并且把prarentid=0改成prarentid=$t['catid']
代码如下:
<!--{php $tags=tag("table=category&condition=parentid=0 and moduleid=5&pagesize=10&order=listorder asc&template=null");}-->
{loop $tags $i $t}
<li><a href="{cat_url($t[catid])}">{$t[catname]}</a></li>
<!--二级分类循环开始-->
<!--{php $sub=tag("table=category&condition=parentid=d=$t['catid'] and moduleid=5&pagesize=10&order=listorder asc&template=null");}-->
{loop $sub $k $v}
<li><a href="{cat_url($v[catid])}">{$v[catname]}</a></li>
<!--二级分类循环结束-->
{/loop}
{/loop}
改好了保存到模板里,刷新下页面,是不是报错了。
这是因为我们在传入二维变量作为值时,没有使用php连接符的原因,原理我们这里就不解释了,做模板不要求我们会php。
我们只需要将代码修改下
parentid=d=$t['catid'] 改成 parentid=d=".$t['catid']."
这样就不会报错了,正常调出子分类。
<!--{php $tags=tag("table=category&condition=parentid=0 and moduleid=5&pagesize=10&order=listorder asc&template=null");}-->
{loop $tags $i $t}
<li><a href="{cat_url($t[catid])}">{$t[catname]}</a></li>
<!--二级分类循环开始-->
<!--{php $sub=tag("table=category&condition=parentid=d=".$t['catid']." and moduleid=5&pagesize=10&order=listorder asc&template=null");}-->
{loop $sub $k $v}
<li><a href="{cat_url($v[catid])}">{$v[catname]}</a></li>
<!--二级分类循环结束-->
{/loop}
{/loop}
特别注意: 如果$t[catid]的变量值不是数字是字符串,得加上加''单引号,修改结果: parentid=d='".$t['catid']."'
本章小结:
本节课的要点是传变量时的三种情况,变量为二维时记得加连接符,变量值为字符串要加单引号 ''。
到了这里tag()讲解也就算完毕,接下来课程我们再学习下其它三个标签函数。
一、传数字
传数字是最简单的,直接在参数的等于号后面写上要传的数字就行了,如:&catid=1205
二、传文字(字符串)
传文字类型的字符串,需要给文字加上''(单引号),如:&title='dt模板堂'。
字符串类型的值,在tag()自带的参数只有 &condition 的值里会用到,其它参数都用不上。
示例:
<!--{tag("moduleid=5&condtion=status=3 and title like '%dt模板堂%'&pagesize=10&order=addtime desc")}-->
三、传变量
传变量有三种情况
1、变量值为数字
例如我们有一个变量:$catid = 1025; 这个变量是在php里面申明的,或者从url中获取到的。
tag()中传值方法: &catid=$catid
就像传数字一样,直接将变量写到等于号后面就好了。
2、变量值为字符串
例如我们有一个变量:$kw = 'dt模板堂';
tag()中传值方法: &condition=title like '%$kw%'
字 符串传只有在condtion参数的值里会用到
3、变量名为二维
例:我们有一个项目,先要从分类表里调出当前频道的顶级分类,然后再循环调出每个分类的子分类
代码如下:
<!--{php $tags=tag("table=category&condition=parentid=0 and moduleid=5&pagesize=10&order=listorder asc&template=null");}-->
{loop $tags $i $t}
<li><a href="{cat_url($t[catid])}">{$t[catname]}</a></li>
{/loop}
通过上面的代码,我们已成功调出顶级分类了,有过其它cms模板标签调用的小伙伴一定,需要调出子分类,需要在大循环里再把分类调用代码再小循环一次,并且把小循环的条件中分类上级id改成大循环中获取的 分类id。
我们来看顶级分类调用中condition的值中我们使用prarentid=0,表示调用prarentid值为0的分类,也就是顶级分类。
如果我们调出某个顶级分类下面的子分类,只需要把这个0改成对应的顶级分类的id就行了。
现在我们获取的一大分类的id是一个变量 $t['catid'],按照我们的思路将调用代码复制一遍,插入循环中,并且把prarentid=0改成prarentid=$t['catid']
代码如下:
<!--{php $tags=tag("table=category&condition=parentid=0 and moduleid=5&pagesize=10&order=listorder asc&template=null");}-->
{loop $tags $i $t}
<li><a href="{cat_url($t[catid])}">{$t[catname]}</a></li>
<!--二级分类循环开始-->
<!--{php $sub=tag("table=category&condition=parentid=d=$t['catid'] and moduleid=5&pagesize=10&order=listorder asc&template=null");}-->
{loop $sub $k $v}
<li><a href="{cat_url($v[catid])}">{$v[catname]}</a></li>
<!--二级分类循环结束-->
{/loop}
{/loop}
改好了保存到模板里,刷新下页面,是不是报错了。
这是因为我们在传入二维变量作为值时,没有使用php连接符的原因,原理我们这里就不解释了,做模板不要求我们会php。
我们只需要将代码修改下
parentid=d=$t['catid'] 改成 parentid=d=".$t['catid']."
这样就不会报错了,正常调出子分类。
<!--{php $tags=tag("table=category&condition=parentid=0 and moduleid=5&pagesize=10&order=listorder asc&template=null");}-->
{loop $tags $i $t}
<li><a href="{cat_url($t[catid])}">{$t[catname]}</a></li>
<!--二级分类循环开始-->
<!--{php $sub=tag("table=category&condition=parentid=d=".$t['catid']." and moduleid=5&pagesize=10&order=listorder asc&template=null");}-->
{loop $sub $k $v}
<li><a href="{cat_url($v[catid])}">{$v[catname]}</a></li>
<!--二级分类循环结束-->
{/loop}
{/loop}
特别注意: 如果$t[catid]的变量值不是数字是字符串,得加上加''单引号,修改结果: parentid=d='".$t['catid']."'
本章小结:
本节课的要点是传变量时的三种情况,变量为二维时记得加连接符,变量值为字符串要加单引号 ''。
到了这里tag()讲解也就算完毕,接下来课程我们再学习下其它三个标签函数。