齐博x1第二季《基本数据操作》系列001-标签的使用(上)
896
8

因为标签的应用很多会配合模板的使用,所以这里默认认为你已经多少了解了html基本语法。


齐博X1中标签是一大特色,利用标签取数据是齐博从V系列就开始的,一个标签可以有特有的模板+数据,填充任意地方


这里所说的标签不是seo里的标签,不是关键字,不是长尾词。这里的标签是指一个可以利用数据来填充的块。


我们使用x1模板的时候,如果模板作者在读取数据的时候,使用标签了,我们可以在前台页面,管理登录双击直接进入标签可视化设置相关的数据,但是这里的标签已经被限制住类型了,也就是说作者给我们设置了什么类型,就只能填充什么类型的数据,比如下面这个只有文字标题,那我们就只能设置简单的文字标题



所以前台设置是普通用户简单使用,如果想深入了解和使用X1,还是需要详细了解下X1的标签的具体方法,

直接调用使用标签的选项参数来设置数据,更加的灵活方便


X1中的标签格式{qb:tag}  {/qb:tag} 头尾闭合的固定形式出现。


通用标签格式:

{qb:tag name="xxx001" type="cms" rows="20" }

//包含里面是默认相关块的代码,和数据。如果前台没有进行设置,则按照这里参数设置的一系列数据输出,如果前台设置的话,就按照前台设置的输出

{/qb:tag}

这样定义的格式,其实也是一种循环输出,是循环输出标签中包含的代码

所以个人建议,如果熟练使用X1后,可以不必再使用前台的可视化设置,统一默认代码包含这种形式的输出,这样更灵活便利,当然前提是需要懂点代码。

下面以通用标签实际参数选项来说明:

这些参数,我们也可以称之为属性,即这个通用标签有哪些属性,不同的属性之间空格隔开。

name:标签名称,和一般变量命名相似,字母数字下划线都可以,不要重复

type:类型; 我们可以认为是一个数据源,或者说读取哪里或是什么类型的数据,可以是对应的模块关键字比如cms、shop、fenlei等等,比如上面是cms,那么这个标签输出的数据就是cms

type还有很多特殊选项,比如image,text,ueditor等等,对应各种不同类型的输出,方便前台设置,如果熟悉代码,这些就特殊字段标签在模板里设置好就好,不必再前端输出,除非是你做的模板要给大众使用,需要全局考虑

例一:只放了一个名称和类型

{qb:tag name="xxx001" type="cms"}
   {$rs.title}<br />
{/qb:tag}


对应则是内容表中的数据

注意:里面取数据如果type类型是模块名那么默认数组名是$rs,后面输出的便是对应的内容表的字段。比如title,content等

特殊类型这里就不在举例,自己添加上测试看下就明白了


rows:循环控制条数,默认是5条,可以添加多条


例二:例一的基础上加上rows="10",这样就显示了10条数据,如下

{qb:tag name="xxx001" type="cms" rows="10"}
   {$rs.title}<br />
{/qb:tag}

mid:模型的id,就是之前说的模块管理中,模型管理那里对应的id,默认是取所有模型的数据,如果设置了mid参数,可以指定对应的模型


例三:这里在例二的基础上,加上mid的参数,如下

{qb:tag name="xxx001" type="cms" rows="10" mid="2"}
对应的mid:{$rs.mid}; 对应的标题:{$rs.title}<br />
{/qb:tag}


这里mid=2,所以输出的都是mid=2的内容


fid:栏目的id,如果想获取静态的栏目id,可以直接fid=1这样直接指定对应的栏目fid,即可,如果动态获取fid,那就要用到下面所说的where属性


例四:这里在例三的基础上,加上fid的参数,如下

{qb:tag name="xxx001" type="cms" rows="10" mid="1" fid="10"}
对应的fid:{$rs.fid}; 对应的标题:{$rs.title}<br />
{/qb:tag}


我们选择模型为1,栏目id为10的内容选取

对应内容

标签输出:


order这个属性和by一起说明,因为一般都是一起使用,不过by是设置升序或者降序的参数,不填写的话,默认就是降序

order这个是按照某个字段进行排序,比如id 、view(浏览量)、create_time(创建时间) 、list(后台自定义排序)......

我们这里演示下按照view,和id排序


例五:这里在例四的基础上,加上order和by的排序参数,如下

{qb:tag name="xxx001" type="cms" rows="10" mid="1" fid="10" order="id" by="desc"}
对应的id:{$rs.id}; 对应的标题:{$rs.title}<br />
{/qb:tag}


by如果不写,默认就是当前代码中的desc,也可以设置为by="asc"为升序输出

或者设置order="view" 浏览器降序输出

{qb:tag name="xxx001" type="cms" rows="10" mid="1" fid="10" order="view" by="desc"}
对应的view:{$rs.view}; 对应的标题:{$rs.title}<br />
{/qb:tag}




这里有个星级注意的地方:

order尽量在使用标签的时候都添加一个,不想添加id、view这些关键字段的话,添加一个list都可以的,因为如果不填写order的排序属性,系统有时会默认随机数输出,非常消耗资源,如果数据很多的时候,会造成假死状态,页面非常卡,影响用户体验,


where:条件,我们在输出标签的时候,需要按照一定的条件或者规则输出,那么就需要用到这个属性

用where的条件,需要知道几个运算符,常用的 =(等于)、<>(不等于)、&(与)

比如我们改写下例四,fid用where来设置


例六 还是设置fid=10的栏目内容,但是用where来设置

这里直接设置fid=10对应栏目id即可,<>(不等于)是相同道理

{qb:tag name="xxx001" type="cms" rows="10" mid="1" order="view" by="desc" where="fid=10"}
对应的fid:{$rs.fid}; 对应的标题:{$rs.title}<br />
{/qb:tag}




如果多个条件,那就用&(与)来连接,比如我们需要fid是10,uid是1的用户文章

{qb:tag name="xxx001" type="cms" rows="10" mid="1" order="view" by="desc" where="fid=10&uid=1"}
对应的fid:{$rs.fid};对应的uid:{$rs.uid}; 对应的标题:{$rs.title}<br />
{/qb:tag}



如果需要在多个栏目里,那么按理说,条件判断需要用或运算|,但是标签没有该运算符,我们该如何实现多个栏目的选取呢,直接用逗号设置相关id即可

比如,现在要选取栏目id=10和11的内容,我们可以这样where="fid=10,11"

{qb:tag name="xxx001" type="cms" rows="10" mid="1" order="view" by="desc" where="fid=10,11"}
对应的fid:{$rs.fid}; 对应的标题:{$rs.title}<br />
{/qb:tag}



以上就是常用的一些属性设置,还有些特别的属性用的不多,比如sql、class、js等等。

多数是在开发模块插件或者做风格里用到,以后说到这些的时候,再单独说明


13
赏礼
赏钱
收藏
点击回复
      全部留言
  • 8
  • 银杏114在线 实战运营者 消费:3609.79元 2019-07-15 21:48 21:486楼

    必顶,太好了,感谢

0 赏钱 赏礼回复
  • aria 普通粉丝 消费:2460.49元 2019-07-15 16:10 16:10
    其他手机
    6楼
    先顶再收藏
0 赏钱 赏礼回复
  • admin 超级管理员 消费:3.03元 2019-07-15 13:39 13:39
    华为
    6楼
    很详细,很适合今后进来的新用户
    阿赖耶识 消费:24.43元 2019-07-15 13:41
    龙哥前面冲锋,我们在后面当后勤了
0 赏钱 赏礼回复
  • Szup.com乐刷朱弟 实战运营者 消费:4704.58元 2019-07-15 12:54 12:546楼

    很详细  学习中

0 赏钱 赏礼回复
  • snscn 普通粉丝 消费:1862.35元 2019-07-15 11:56 11:56
    其他手机
    6楼
    实用的教程来了,投月票支持!
0 赏钱 赏礼回复
  • kk1212 白金粉丝 消费:1211.05元 2019-07-15 11:03 11:036楼

    很详细  学习中

0 赏钱 赏礼回复
更多回复
恢复多功能编辑器
  • 3 1
  • 神盾SOHO
        圈内贴子3398
    • 圈子成员260
    本圈子内的新贴

    推荐内容
    扫一扫访问手机版
    请选择要切换的马甲:

     
    网页即时交流
    QQ咨询
    咨询热线
    020-28998648