自定义模型标签

自定义模型的标签比较多,看起来也比较复杂,其实各个模型之间,有很多共同点。
自定义模型的标签是均以king:portal开始,如:

{king:portal.list listid1='0'}
____[a href="{king:listpath/}"]{king:listname/}[/a]
{/king:portal.list}
以上Example代码中的listid1='0'为属性,其作用是调用上级列表为0的所有栏目,详细的说明请见下面的列表调用

列表调用

从上面的例子中,你可能对列表调用有了一点了解,但这仅仅是一小部分应用,除了listid1外,还有其他属性。

{king:portal.list/}标签属性作用
listid要调用的列表ID,若调用多个,则用逗号分开,如:listid="2,3"
支持排除,如:listid!='2' 即不显示listid为2的栏目。多个指定可以逗号分开: listid!='3,4'
listid1调用所属列表,即下级列表,当取值为0的时候是调用根目录,如:listid1='0',调用多个列表的下级列表,则也可以用逗号分开
支持排除
siteid调用指定站点的列表
支持排除
modelid调用所属模型的列表;如调用所有文章列表:modelid="6"
支持排除
gid调用指定用户组的栏目列表
支持排除
nlist调用指定列表生成方式的栏目列表 0静态1动态2伪静态
支持排除
npage调用指定内容生成方式的栏目列表 0静态1动态2伪静态
支持排除
language调用所用语言的列表;若调用所有中文列表:language='zh-cn'
orderby排序
number调用数量
以上属性可以结合使用,如调用所有根目录下面的文章列表时,设置的属性为: listid1='0' modelid='6'

示例:一二级栏目列表的调用

{king:portal.list listid1='0'}
[dl]
____[dt][a href="{king:listpath/}"]{king:listname/}[/a][/dt]/*调用一级栏目,(循环一)*/
____{king:portal.List listid1='(king:listid/)'}/*注意,这里的portal.List和上面的有区别,L用的是大写,(循环二)*/
____[dd][a href="{king:listpath/}"]{king:listname/}[/a][/dd]/*调用二级栏目*/
____{/king:portal.List}
[/dl]
{/king:portal.list}
你会发现在(循环二)中的属性listid1的值是(king:listid/),这个值是(循环一)中的{king:listid/},当传递到属性值的时候,需改用小括号。
这两层循环,都用的是portal.list,可他们没有出现(循环一)开始代码和(循环二)结束代码匹配的错误,避开这种问题的方法是,设置不同的大小写字符来做区分,这点特别关键!!
同样的方法,可以扩展到三层列表调用或者更深层次的列表循环。

示例:一二级栏目列表及下面文章的调用

{king:portal.list listid1='0' modelid="6"}/*你可以指定任何一个栏目开始,我们在这里就指定了根目录,指定modelid='6'是为了只调用文章列表*/
[dl]
____[dt][a href="{king:listpath/}"]{king:listname/}[/a][/dt]/*调用一级栏目标题及链接*/
____{king:portal.article listid='(king:listid/)'}/*调用文章*/
____[dd][a href="{king:path/}"]{king:title/}[/a][/dd]/*调用文章列表*/
____{/king:portal.article}/*结束标记*/
[/dl]
{/king:portal.list}
你能做的不止是这些,以上的仅仅是常见的应用例子,更复杂的应用也并不复杂,KingCMS标签的值传递是一级一级往下传的,可以到无穷。

列表调用

{king:portal.menu/}的用法相似于{king:portal.list/},不同的是{king:portal.menu/}不支持{king:portal.list/}那样丰富的属性。

{king:portal.menu3}
____[a href="{king:listpath/}"]{king:listname/}[/a]
{/king:portal.menu3}

标签调用

TAG标签页和循环调用中,可用标签如下:

可用标签说明
{king:tag/}TAG标题
{king:title/}TAG标题,上面{king:tag/}的别名
{king:image/}缩略图
{king:keywords/}META关键字
{king:color/}颜色
{king:size/}文字大小
{king:hit/}访问次数
{king:commend/}推荐的时候输出1,否则0
{king:bold/}加粗显示的时候输出1,否则0
{king:path/}TAG链接地址

{king:portal.tag/}属性

number数字调用数量
skip数字跳过N条后调用的内容
iscommend1/01的时候是仅调用推荐标签
isbold1/01的时候是仅调用加粗标签
orderby字符串排序标签,直接写SQL代码中ORDER BY 后面的代码

[style type="text/css"]
____.bold_1{font-weight:bold;}
[/style]
[p]
____{king:portal.tag number="50"}
________[a href="{king:path/}" style="font-size:{king:size/}px;color:{king:color/}" class="bold_{king:bold/}"]{king:title/}[/a]
____{/king:portal.tag}
[/p]

Portal.Nav是用户导航,支持line属性,作为分割线。

{king:portal.nav line=' >> '/}/*输出结果: 新闻动态 >> 正文*/