透博网 - 设为首页 - 加入收藏 - 网站地图 事件追踪,请看透博网(tobnews.com)!
当前位置:主页 > destoon > 正文

tag()参数详解

2017-05-01 23:21 网络整理 Tob008 阅读:

在了解destoon tag()的参数,可以先打开destoon官方的 标签调用手册,便于我们接下来的学习。

这是一个 destoon 默认首页模板index.htm中的标签
<!--{tag("moduleid=6&condition=status=3&areaid=$cityid&pagesize=".$DT['page_trade']."&datetype=2&target=_blank&order=addtime desc")}-->
在tag(" 这里面的都是参数"),传输参数的方式是: &参数名=参数值,第一个参数省略&符号。
tag()的参数,分类必须参数和可选参数两种
必须参数:
 moduleid:
      示例: moduleid=6,表示调用的是求购频道的内容,调用其它频道的内容只需要将6改成对应的频道id即可,频道Id可以destoon后台的系统维护,模块管理中查看。  
table:
     示例:table=buy_6,和moduleid=6效果是一样的,也表示调用的是求购频道的内容,不同的是table传的值直接是表名,并且不带表前缀,如果要调用其它表的内容只需要将buy_6替换成对应的表名即可。

注: tag()的必须参数一共就moduleid,table两个,而且这两个是二选一,只能同时使用其中的一个,moduleid用来调用各大频道主表的内容,如果要调用非频道主表的内容就得使用table直接传表名了。

可选参数:
    condition:
            示例:&condition=status=3,conditon使用度和moduleid是几乎一样的,只要是tag()标签中都会传这个参数,这个参数的作用是将传入的值直接作为sql条件进行数据库内容筛选。比如我们示例中的 &condition=status=3,php解析后就是 where status=3。、
           condition是可以无限传条件的,有多少都可以往这里传,比如:&condition=status=3 and level>0 and vip>0 and itemid>100 and itemid<1000
这是传的标准的sql语句。
          如果您是小白,不懂啥是sql。举个简单的示例:我们要调用供应频道的已审核的信息,并且这信息要是推荐的,还得是vip会员发布的。那么首先我们构建tag标签语句,<!--{tag("")}-->,然后传入第一个参数 moduleid=5,供应频道的id是5;当然也可以用table=sell_5替代。
   <!--{tag("moduleid=5")}-->
        第二步传入condition筛选我们需要要的数据
        <!--{tag("moduleid=5&condition=")}-->
       条件一:已审核的信息,换成sql语句就是 status=3
        <!--{tag("moduleid=5&condition=status=3")}-->
       条件二:推荐的信息,换成sql语句是 level>0,如果是调用指定推荐级别的,如推荐2的, level=2
       <!--{tag("moduleid=5&condition=status=3 and level>0")}-->
         因为level 是第二个条件了,所以我们得用and来连接,并且and 前后都必须有空格,没有的话就会报错,condtion的值,从第二个条件开始都要用and来连接。
        条件三:vip会员发布的信息,换成sql语句就是 vip>0,如果要指定vip级别,如1 就是 vip=1
         <!--{tag("moduleid=5&condition=status=3 and level>0 and vip>0")}-->
        通过本示例,相信大家已经学会如何信condition传值调用我们想要的信息了。
        常用的一些condition条件:
         已审核:status=3, 推荐的:level>0,vip会员的:vip>0, 有缩略图的:thumb<>'', 指定会员组的:groupid=6

pagesize:
      怎么传条件我们已经学会了,但是我们调出来的内容还得限制数量不是吗?pagesize就是用来指定数量的。
    示例:
    <!--{tag("moduleid=5&condition=status=3 and level>0 and vip>0&pagesize=20")}-->
   调多少条就写&pagesize=20 是多少就行了。这个参数没啥好解释的。
   另外pagesize 有一个搭配使用的参数叫 offset,写法是&offset=10, 作用是从第一几条开始调用。
<!--{tag("moduleid=5&condition=status=3 and level>0 and vip>0&pagesize=20&offset=10")}-->
 表示从10条开始调用,往后调20条信息出来。
 
  提示:pagesize 如果不传,tag()会员默认调用10条信息。

order:
    tag()的排序参数,用法:&order=addtime desc,edittime desc,可以多个排序字段连接,用,隔开。
   示例:
   <!--{tag("moduleid=5&condition=status=3 and level>0 and vip>0&pagesize=20&offset=10&order=addtime desc,edittime desc")}-->
    常用排序方法:
      添加时间降序:addtime desc,倒序:addtime asc
      修改时间降序:edittime desc ,倒序: edittime asc
      推荐级别降序:level desc,倒序:level asc
      vip级别降序:vip desc,倒序:vip asc
    
    提示:order如果不传,就会默认使用mysql的排序,destoon是没有封装order默认排序的。  
      
template:
     标签模板参数,指给当前tag()调用出来的内容赋给给一个循环模板展示,使用方法:&template=list-sell
     标签模板存放在模板目录的 tag目录下面,我们要调用哪个模板就&template=模板文件名,  文件名不带.htm
     示例:
     <!--{tag("moduleid=5&condition=status=3 and level>0 and vip>0&pagesize=20&offset=10&order=addtime desc,edittime desc&template=list-sell")}-->
     
     不传template参数,tag()函数会默认调用tag目录下的list.htm模板。
     
     不调用标签模板,在当前页面自定义模板,template的值设为null: &template=null
     
     然后标签语句也得做相应的修改,用loop在当前页面循环,具体请看上一节课的详细介绍。
     
fields:
     fields指查询的字段,默认为*。可以传递例如 fields=title,addtime,但是一般情况下无需传递,Destoon独有的标签缓存机制会自动缓存查询结果,不必担心效率问题。
     以上是官方的介绍,看了也能明白了,就是循环模板中要调用哪些字段,就把哪些字段用,隔开传给fields。
     
     示例:  
     <!--{tag("moduleid=5&condition=status=3 and level>0 and vip>0&pagesize=20&offset=10&lields=title,addtime,&order=addtime desc,edittime desc&template=list-sell")}-->   

以上的参数是比较重要的一些可选参数,下面部分参数都是一些不常用的,解释就比较简单了,大家请自行研究实验。

catid:
    调用指定分类下的信息,用法&catid=10
    
areaid: 
    调用指定地区的信息,用法:&areaid=1, 一般用来调用当前分站的信息,如:&areaid=$cityid        
    
showcat:    
    需要调用当前信息的分类名称和分类连接时传入,用法:&showcat=1   showcat的值只能是1
    然后标签模板中调用 {$t[caturl]} 分类连接,{$t[catname]} 分类名称    

showpage 和 page:
    tag()自带的分页参数,showpage和page必须一起使用才能正常分页,使用方法: &showpage=1&page=$page, 参数值是固定的。
    然后在标签模板中传入 {$pages} 即可实现分页。
    
    提示:tag()使用showpage和page时,必须使用标签模板,template的值不能为null,
         
length:
    控制标题长度用的,用法:&length=20,表示标题长度为20个字符,10个汉字。

debug:
    debug参数用于调试标签,例如传递&debug=1, 系统将输出标签构造成的SQL语句,以便验证标签写法是否正确,不需要调试的标签不用加此参数。         

自定义参数:
    自定义参数只能在标签模板方式下使用,在当前页面自定义循环模板是无效的。
    使用方法: &参数名=参数值,如:&dtmoban=123456,  在标签模板中使用 {$dtmoban} 调出的值便是 123456
    
本节小结:
    本节课主要掌握destoon  tag()函数的常用自定义参数。
    但是同学们在做模板时经常会遇到参数传值造成页面出错,那么我们如何给参数正确的传值呢?下节课我将为大家专门讲解。        

(责任编辑:tob001)