温故而知新,不管你是新手还是老手,你仔细的在读一遍这篇被转载了N次的kingcms asp标签详解,你也许会有重大发现。
虽然我用过很多次KINGCMS ASP 版,但是再次静下心来仔细的看这篇文章的时候,不仅感叹:温故而知新。有很多东西当初我们并没有学会。
系统默认的标签
{king:sitename/} 网站名称
{king:siteurl/} 网站地址
{king:now/} 服务器当前时间
{king:cms/} 输出KingCMS支持信息,未购买授权的网站,必须输出此信息。
{king:title/} 标题
{king:keywords/} 关键字,可以用{king:keyword/}
{king:description/} 描述
{king:inst/} 安装路径,如果是根目录安装,输出:/
{king:page/} 前台路径,如:/page/
{king:guide name=”当前位置”/} 当前导航位置;name值可以替代网站名称,输出指定的名称。
{king:rnd/} 16位随机数
{king:rnd4/} 4位随机数
{king:rnd8/} 8位随机数
{king:sql cmd=”select systemname from kingsystem;”/} SQL索引调用数据库中的任何一位置上的数据或任何一组数据。1)当用/}来闭合的时候,只输出第一个数据;2)当{king:sql}…{/king} 的时候,循环输出数据,数量由sql语句中的top来指定,每次读取的数据不能超过1000条,举例见下面。
系统默认的属性
size 长度属性,即限定输出长度,如:{king:title size=”10″/},则只输出前10个字节,即中文输出5个字,英文输出10个字。
left HTML代码长度属性,和size属性相似,但是用来限定html代码用的。
mode 时间类型,用法:{king:date mode=”yyyy-MM-dd hh:mm:ss”/}
mode属性值中的yyyy,MM各代表年度和月份,有下面几种属性:完整年度:yyyy;简写年度:yy;完整月份:MM;简写月份:M;日和时间参数同月份。
code 代码格式化,如:{king:title code=”htmlencode”/},即替换输出值中的双引号。值参数有:
javascript或js 转换成javascript中可以调用的代码
xmlencode或xml 转换成xml文档兼容的代码
urlencode或url 转换成标准的url链接代码
htmlencode或html 转换成html标签属性可用的代码
url 关键字链接参数,如:{king:keywords url=”/page/article/search.asp?query=”/},在url值紧跟着的是对应的链接。
width和height 包含image的字符的标签专有属性,即设置图片的长宽,需要有aspjpeg组件支持。如:
{king:image width=”100″ height=”80″ /} ,即输出对原图进行裁剪后的缩略图的地址。
{king:sql/}举例
1)当/}闭合的时候
{king:sql cmd=”select sum(*) from kingart;”/}
即返回所有的文章数
2)当{king:sql}…{/king}循环体的时候
{king:sql cmd=”select top 10 arttitle,artpath,artdate from kingart order by artid desc;”}
<p>arttitle对应:(king:#0/)</p>
<p>artpath 对应:(king:#1/)</p>
<p>artdate 对应:(king:#2/)</p>
{/king}
文章系统标签
{king:article type=”new” number=”10″} Article 标签开始
(king:++/)<a href=”(king:path/)”>(king:title size=”24″/)</a> HTML循环输出部分
{/king} 结束标签
标签参数解析
*type 调用文章类型
new 最新文章
related 相关文章
hot 热门
head 头条
commend 推荐
list 列表(只能在文章列表页的模板里调用)
sql 直接输入sql调用文章,但必须要和sql属性配套使用,举例见下面
补充上来的king:++
作用是输出序号,从1开始,如果你输出10条信息,那么++输出的值就是1-10
*number 循环调用文章的数量,必须为数字
*zebra 斑马线,必须为数字,如zebra=”2″,当第2、4、8等整除于zebra参数值的时候,输出1,其他输出0 [似乎只能用于列表页,限在type="list"的时候有效]
*order 排序,默认值为desc,要按id顺序输出,则设置值为asc(跟以前版本正好相反);限在type=”list”的时候有效
*listid 指定栏目调用,和老版本的union一样,支持多栏目同时调用,用英文逗号分开;listid有两个特定的值:sub和current,sub是调用当前栏目下面栏目的文章,current是调用当前栏目下面的文章
*listname 指定栏目名称调用,多个栏目名称之间用英文逗号分开
一个标签中,只能用一个listid或listname,两个标签不能同时使用。
*keywords 关键字属性,调用和keywords属性里指定的关键字一致的文章
*next 跳过指定数量的文章后输出
循环体内标签
artid 文章id
listid 列表id
listname 列表名称
listpath 列表路径
path 文章路径
title 文章标题
from 来源
description 简述
keywords 关键字
author 作者
image 缩略图路径,支持width和height属性
date 文章发布日期
用法举例:
{king:article}
<a href=”(king:path/)” type=”hot”>(king:title size=”30″ /)</a>
{/king}
内容页面标签
artid 文章id
listid 列表id
title 文章标题
content 内容
from 来源
keywords 关键字
description 简述
author 作者
image 缩略图路径,支持width和height属性
path 文章路径
guide 导航
pagelist 文章分页
nextpage 下一页
lastpage 上一页
hit 点击次数调用及页面访问统计
date 日期
用法举例:
<h1>{king:title/}</h1>
<img src=”{king:image width=”200″ height=”150″ /}”/>
type=”sql”用法
这个需要你懂得文章插件的数据结构及sql命令才可以正常使用。
{king:article type=”sql” sql=”where artshow=0 order by artid desc;”}
<a href=”(king:path/)”>(king:title/)</a>
{/king}
需要注意的是,当type=”sql”的时候,必须有sql属性去设置sql代码,不然将调用最初加入的文章。
上面的例子中调用的是最新加入的草稿文章
ArticleList 文章列表调用
{king:articlelist listid=”1,2″}
列表id:(king:listid/)
列表名称:(king:listname/)
列表地址:(king:listpath/)
{/king}
listid的值有3种类型
1、sub 既调用当前栏目的下一级栏目列表
2、current 既调用当前栏目同一级别的栏目列表
3、数字 指定栏目id调用,多个栏目同时调用则用逗号分开
当listid取值有问题或没有对应列表的时候,则调用跟列表
双层循环标签的用法
{{king:article listid=”sub”}}
栏目列表:{king:listname/}
{king:article type=”new” number=”20″ listid=”current”}
文章标题:(king:title/)
文章路径:(king:path/)
所属栏目: (king:listname/)
{/king}
{{/king}}
*****目前双层标签只能用在单页面里,在列表页测试无法使用
通行证会员
{king:usernav/} 用户导航,既显示会员状态
{king:newuser/} 最新注册的会员名,避免在长时间不更新的页面上调用
{king:countuser/} 会员总数,避免在长时间不更新的页面上调用
用户状态导航
span#k_usernav 用户导航
span#k_usernav a 链接列表
会员登录后的页面CSS构成
div#k_usermenu 登入后的导航菜单
div#k_usermain 登入后的主体框
页面链接
friend.asp 好友
index.asp 短信息列表
login.asp 登录
logout.asp 退出
protocal.asp 注册协议
reg.asp 注册页面
login.asp?action=getpass 忘记密码
index.asp?action=uppass 更新密码
index.asp?action=config 设置安全问答及邮箱参数
单页面
自动更新标签
{king:onepage#update listid=”1,2″ time=”2″/}
listid: 当不指定listid的时候,仅更新网站首页。
time: 不指定time值的时候,默认时间为3个小时更新一次网站
listid为单页面的id,多个id之间用逗号分开。
系统标签大概就这些吧,现在写点我自己用的标签组合
sql标签
1,适合用在首页和广告标签 作用:在10条信息中特殊显示热门信息,后边加个hot.gif
<script type=”text/javascript”>
function t_hot(l1){
var I1;
(l1>30)?I1=’<img alt=”热门” src=”images/hot2.gif”/>’:I1=”;
document.write(I1);
}
</script>
{king:sql cmd=”Select top 10 kingart.arthit,kingart.arttitle,kingart.artpath,kingart_list.listpath from kingart,kingart_list where kingart.listid=kingart_list.listid and kingart.artshow=1 order by kingart.artid desc;”}
<p><a href=”/(king:#3/)/(king:#2/)” target=”_blank”>(king:#1/)</a>
<script type=”text/javascript”>t_hot(‘(king:#0/)’);</script></p>
{/king}
2,MSN中国首页Js幻灯代码 for Kingcms5.0
代码比较多,进这页看吧
3,{king:sql cmd=”select sitekeywords from kingsystem”}(king:#0 url=”/page/自定义模块/ search.asp?space=0&query=”/){/king}
列出所有的关键字组 链接至指定的模块搜索页
4,最新5条文章,高亮显示推荐,置顶,头条
{king:sql cmd=”Select top 5 kingart.arttitle,kingart_list.listname,kingart.artcommend,kingart.arthead,kingart.artup,kingart_list.listpath,kingart.artpath from kingart,kingart_list where kingart.listid=kingart_list.listid and kingart.artshow=1 order by kingart.artid desc;”}
标题-(king:#0/)[(king:#2/)(king:#3/)(king:#4/)]路径-/(king:#5/)/(king:#6/)
列表-(king:#1/)<br />
{/king}
条数可随意扩展 列表id也可以随意扩展 只要把查询里多个条件就行了
5,统计 {king:sql cmd=”select count(kid) from [表名];”/} 对某个模块进行数量统计,如果是文章总数,就是count(artid) from king_art
==================================
下面的是另外一个高手的总结:原作者:bluesee
—————————————————-
KingCMS 5.0 自定义模块的验证编写规则此验证是调用KingCMS类的check函数进行校验的,对应规则如下。
[Number]
注意:9 检查是否已经存在项目 的解决办法
0|此字段不能为空|”&checkhd&”
一定要 加全
0|不能为空|”&checkpid&” 别忘记了 0|不能为空
0 不能为空
1 必须为 A-Za-z
2 必须为 0-9
3 必须为 a-z0-9A-Z
4 必须为 E-mail
5 必须为 URL
6 长度必须为x-y(包括x和y,如果x=y,则为x)
7 必须相等的两个字符串
8 自定义正则验证
9 检查是否已经存在项目.
10 原始密码是否相同
11 判断是否有非法字符,包括片假名
12 比较表单提交过来的值和预设的值是否相等
13 1:true false|13|tip;若为false 这发出提示
14 判断是否为(日期时间)类型
15 不能包含特殊符号,判断文件路径用
编写方法:
[Number] | [错误提示输出] | [可选项]
举例1:不能为空
0|此字段不能为空
举例2:要求长度限制为30,并且不能少于3个字符
6|此字段的长度范围是3-30|3-30
举例3:不能为空,并且是整型
0|此字段不能为空
2|此字段必须为整数
举例4:要求两个文本框A和B中的内容一致
7|A框和B框的内容不一致| [B的name值]
0|请输入A框中的内容
举例5:自定义正则表达式验证
8|必须为数字(包括小数)类型|^[0-9\,\.]+$
举例6:判断是否为日期类型
14|您输入的日期格式有误
9|已经存在相同项目|selsect 后面自己写
Number取值和可选项的关系
当Number值为6,7,8,9,10,12的时候,可选项不能为空,一般常用的是6和8,其他的验证基本上不会在OO验证里调用。
其他的项目不需要可选项,常用的是0,1,2,3,4,5
预置选项的另一种用法自定义发布模块中”单选(下拉列表),单选(按钮),多选(多选列表),多选(复选按钮)”字段预置选项的另一种写法。
默认是用回车分隔,但是在预设值很多时排序就不是很方便,采用如下方式就可以很轻松的对预置选项进行排序。
0|中国
1|韩国
2|日本
3|美国
填写的预设值与预置选项中的列表不匹配时,默认为第一个值,即预置选项中第一行的值。
***********************************************************************************************************************
0.<!– 友情链接 –>
<div class=”box link”>
<h3 class=”title1″><strong>友情链接</strong></h3>
<p class=”link”>
{king:link number=”999″ listname=”友情链接”}
<span class=”s(king:commend/)”><a href=”(king:urlpath/)” target=”_blank” title=”(king:description code=”htmlencode” /)”>(king:title/)</a><i>(king:urlpath/)</i></span>
{/king}
</p>
</div>
*******************************************************************************************************
[0]onepage标签[/0]
1,没有pagelist 文章分页标签
其他标签
{king:sitename/} 网站名称
{king:url/} 网站url
{king:cms/} cms网站名称
{king:now/} 服务器当前时间
{king:title/} 标题
{king:keywords/} 关键字,可以用{king:keyword/}
{king:description/} 描述
{king:inst/} 安装路径,如果是根目录安装,输出:/
{king:page/} 前台路径,如:/page/ 在页面中使用此标签就输出该页面的相对路径,如本页面的地址为/kingcms-faq/kingcms-moban-rumen-xitong- biaoqian/ 例如:http://www.51xuediannao.com{king:page/} 输出本页面的完整路径http://www.51xuediannao.com/kingcms-faq/kingcms-moban-rumen- xitong-biaoqian/
{king:guide/} 当前位置 在 system/plugin.asp里修改
{king:rnd/} 16位随机数
{king:rnd4/} 4位随机数
{king:rnd8/} 8位随机数
{king:description code=”htmlencode” /} code=”htmlencode”
它的作用主要在于当这两个标签在head中使用的时候,避免输出html标签,仅输出文本内容。
*********************************************************************************************************
[a]自定义标签[/a]
1 在 list页面里 不要同时用 type=”list” 这个只能用1次
{king:自定义 type=”new” number=”10″} 自定义 标签开始
<a href=”(king:path/)”>(king:title size=”24″/)</a> HTML循环输出部分
{/king}
结束标签
标签参数解析
*type 调用文章类型
new 最新文章
related 相关文章
hot 热门
up 置顶
chill 冷门
head 头条
commend 推荐
list 列表(只能在文章列表页的模板里调用)
sql 直接输入sql调用文章,但必须要和sql属性配套使用,举例见下面
**************************
自定义标签
1 up 置顶
2 type=list 时用 自定义-fun-public sub createlist(l1) 修改
错误1.
自定义-fun-public sub createlist(l1)里的 set rs=conn.execute(“select “&sql&” from king自定义 where kshow=1 and
原来的错误为 没加 kshow=1
3 {king:自定义 type=”list” number=”1″ order=”order by kup desc”}
**************************
*number 循环调用文章的数量,必须为数字
*order 排序,限在type=”list”的时候有效 比如 order=”and kup=1 order by kup desc” 则按照kup 排序
*zebra 斑马线,必须为数字,如zebra=”2″,当第2、4、8等整除于zebra参数值的时候,输出1,其他输出0
{king:自定义 type=”list” number=”10″ zebra=”4″}
<LI class=”style(king:zebra/)”>(king:kid/) <a href=”(king:path/)” target=”_blank” title=”(king:title/)”>(king:title/)</a></LI>
<LI class=”date style(king:zebra/)”>(king:date mode=”yy-MM-dd”/)</LI>
{/king}
*listid 指定栏目调用,和老版本的union一样,支持多栏目同时调用,用英文逗号分开;listid有两个特定的值:sub和current,sub是调用当前栏目下面栏目的文章,current是调用当前栏目下面的文章
在列表页里调用最新这个栏目里的文章,
{king:自定义 type=”new” number=”10″ listid=”sub”}但不能分页,如果没有下级,则调用本级
{king:自定义 type=”new” number=”10″ listid=”current”}但不能分页
{type=”new” listid=”current”} <> {type=”list”}
不能这么用 type=”list” 就直接调用当前栏目下的文章
{king:自定义 type=”list” number=”10″ listid=”current”}
调用一个当前栏目的listid
{king:自定义 listid=”current” number=”1″}
<img src=/template/img/(king:listid/).jpg align=middle>
{/king}
*listname 指定栏目名称调用,多个栏目名称之间用英文逗号分开
一个标签中,只能用一个listid或listname,两个标签不能同时使用。
*keywords 关键字属性,调用和keywords属性里指定的关键字一致的文章
*next 跳过指定数量的文章后输出
循环体内标签
kid 文章id
listid 列表id
listname 列表名称
listpath 列表路径
path 文章路径
title 文章标题
content 内容
entitle en文章标题
encontent en内容
from 来源
description 简述
keywords 关键字
hit 点击次数调用及页面访问统计(不增加点数)
guide 导航
author 作者
pagelist 文章分页 可在外部模板单独用
image 缩略图路径,支持width和height属性
date 文章发布日期
kenddate 其他
用法举例:
{king:自定义}
<a href=”(king:path/)” type=”hot”>(king:title size=”30″ /)</a>
{/king}
内容页面标签
kid 文章id
listid 列表id
title 文章标题
content 内容
entitle en文章标题
encontent en内容
from 来源
keywords 关键字
description 简述
author 作者
image 缩略图路径,支持width和height属性
path 文章路径
guide 导航
pagelist 文章分页 可在外部模板单独用
nextpage 下一页
lastpage 上一页
hit 点击次数调用及页面访问统计(增加点数跟列表的hit不一样)
date 日期
kenddate 其他
用法举例:
<h1>{king:title/}</h1>
<img src=”{king:image/}” width=”200″ height=”150″/>
type=”sql”用法
这个需要你懂得文章插件的数据结构及sql命令才可以正常使用。
{king:自定义 type=”sql” sql=”where kshow=0 order by kid desc;”}
<a href=”(king:path/)”>(king:title/)</a>
{/king}
需要注意的是,当type=”sql”的时候,必须有sql属性去设置sql代码,不然将调用最初加入的文章。
上面的例子中调用的是最新加入的草稿文章
自定义List 文章列表调用
{king:自定义list listid=”1,2″}
列表id:(king:listid/)
列表名称:(king:listname/)
列表地址:(king:listpath/)
{/king}
listid=1的意思就是
调用listid=1的下级目录,没有为空
{king:自定义list listid=”1″}
<a href=”(king:listpath/)” target=_blank>(king:listname/)</a>
{/king}
单独调用一个栏目名字(注意 是只调用 名字)
{king:自定义 listid=”1″ number=”1″}
<a href=”(king:listpath/)” target=_blank>(king:listname/)</a>
{/king}
{king:自定义 listid=”sub” number=”1″}
下级分类:
{/king}
{king:自定义list listid=”sub”}
<a href=”(king:listpath/)” target=_blank>(king:listname/)</a>
{/king}
listid的值有3种类型
1、sub 既调用当前栏目的下一级栏目列表
2、current 既调用当前栏目同一级别的栏目列表
3、数字 指定栏目id调用,多个栏目同时调用则用逗号分开
当listid取值有问题或没有对应列表的时候,则调用跟列表
双层循环标签的用法
1.不能分页 pagelist不能用
{{king:自定义 listid=”sub”}}
栏目列表:{king:listname/}
{king:自定义 type=”new” number=”20″ listid=”current”}
文章标题:(king:title/)
文章路径:(king:path/)
所属栏目: (king:listname/)
{/king}
{{/king}}
2. 不能分页 pagelist不能用
listid=1 下面有listid=3,4的就可以调用出来
能在list用 能在 page里用
{{king:自定义 listid=”3,4″}}
栏目列表:{king:listname/}
{king:自定义 type=”new” number=”20″ listid=”current”}
文章标题:(king:title/)
文章路径:(king:path/)
所属栏目: (king:listname/)
{/king}
{{/king}}
2.0
双循环{{king:自定义 listid=”21″}}这是主ID
栏目列表:{king:listname/}
{king:自定义 type=”new” number=”8″ listid=”sub”}这里用sub就调用21ID下的所有子ID的文章了
文章标题:(king:title/)
文章路径:(king:path/)
所属栏目: (king:listname/)
{/king}
双循环结尾{{/king}}
3.网站地图
{{king:自定义 listid=”1,4,5,6,9,10″}}’没有下级栏目,但是内容作为导航
一级菜单:<br>
<span style=”margin-left:50px;color:#FF0000;”>
<a href={king:listpath/}> {king:listname/} </a>
</span>
<br>
二级菜单:
<br>
{king:自定义 type=”new” number=”20″ listid=”current”}
<span style=”margin-left:50px;color:#FF0000;”>
<a href=(king:path/)> (king:title/) </a>
</span>
<br>
{/king}
<br>
{{/king}}
3.0没文章 就可以调出 列表名称 可用在任何页面
{{king:自定义 listid=”2,3″}}’有下级栏目
一级菜单:<br>
<span style=”margin-left:50px;color:#FF0000;”>
<a href={king:listpath/}> {king:listname/} </a>
</span>
<br>
二级菜单:
<br>
{king:自定义list listid=”sub”}
<span style=”margin-left:50px;color:#FF0000;”>
<a href=(king:listpath/)> (king:listname/) </a>
</span>
<br>
{/king}
<br>
{{/king}}
4.
调用submenu(调用下级)没文章 就可以调出 列表名称 可用在任何页面
{{king:自定义 listid=”1,2,3,4,5,6,7,8,9,10,11,12″}}
一定要双循环才可以用
5.
<LINK href=”/template/menu.css” rel=stylesheet>
<script type=”text/javascript” src=”/template/menu.js”></script>
<script language=”JavaScript”>window.onload=menuFix;</script>
<ul id=”k_menu”>
{{king:自定义 listid=”1,2,3,4,5,6,7,8,9,10,11,12″}}
<li>
<A href=”{king:listpath/}”>{king:listname/}</A>
<ul>
{king:自定义list listid=”sub”}
<li>
<A href=”(king:listpath/)”>(king:listname/)</A>
</li>
{/king}
</ul>
</li>
{{/king}}
</ul>
6.
调用menu(不调用下级) 没文章 就可以调出 列表名称 可用在任何页面
{{king:自定义 listid=”1,2,3,4,5,6,7,8,9,10,11,12,13,14″}}
<A class="a12" href=”{king:listpath/}”>{king:listname/}</A>
{{/king}}
*************************************************************************************************************
广告标签
{king:ad name=”广告名称” type=”广告类型”/}
type参数
1) type=”html”或不指定type类型:则直接输出html代码
2) type=”iframe”:IFRAME方式插入
<iframe frameborder=”0″ id=”k_ad_gs” scrolling=”no” width=”0″ height=”0″ src=”/ggfile/gs.shtm”></iframe>
3) type=”JS”:js方式进行加载广告,不能使用中文名字
<span id=”k_ad_gs”></span><script>gethtm(‘/ggfile/gs.shtm’,'k_ad_gs’);</script>
1 不变的用
{king:ad name=”js” type=”html”/}
2 变的:asp文章中 前后都要 调用一下 才出来结果
2-1 asp文章前
{king:ad name=”top” type=”js”/}
2-2 asp文章后
{king:ad name=”top” type=”js”/}
4) type=”ssi”:*SSI方式插入广告,需要服务器支持SSI,当扩展名为shtml或shtm的时候可以支持,
注意避免在asp页面上调用,会直接输出<!–#include …–>。不能使用中文名字
但是用这个<!– #include virtual=”/ggfile/gs.shtm” –>可以在asp里用
5) type=”jscode”: <script src=”filepath”></script>方式来调用,和上面的js有点点区别,上面的是加载,这个是引用。
<script type=”text/javascript” src=”/ggfile/gs.shtm”></script> 不能使用中文名字
{king:ad#update/}
广告定时更新标签,更新时间在fun.asp文件的r_uptime参数中设置
*SSI:
***********************************************************************************************************
{king:sql cmd=”SQL”/}应用于任何一个表
用SQL检索数据库,并输出对应的值
1)当/}闭合的时候
{king:sql cmd=”select count(*) from kingk;”/}
即返回所有的文章数
2)当{king:sql}…{/king}循环体的时候
{king:sql cmd=”select top 10 ktitle,kpath,kdate from kingk order by kid desc;”}
<p>ktitle对应:(king:#0 size=”20″/)</p>
<p>kpath 对应:(king:#1/)</p>
<p>kdate 对应:(king:#2 mode=”MM/dd”/)</p>
{/king}
{king:sql cmd=”select top 5 ppname,ppmail,ppqq,ppphone,ppsex from kingpassport where islock=0 order by pppoint desc,ppid desc”}
top 5 的时候 后面的 order by 一定要注意,如果pppoint 一样 那么 top 5 就失效了
一定要加一个 不一样的 判断语句