因为标签的应用很多会配合模板的使用,所以这里默认认为你已经多少了解了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等等。
多数是在开发模块插件或者做风格里用到,以后说到这些的时候,再单独说明
这终于进入练气阶段了
很详细 学习中
很详细 学习中