KesionCMS 帮助
帮助首页 第四章 模板标签管理 - 问题汇总

利用SQL函数标签实现文章列表

0 2008/7/10 23:02:47
自定义SQL函数标签非常灵活而且非常强大,它可以实现的功能很多,如果能够灵活掌握,结合KesionCMS系统的强大功能,打造一个有个性又美观的网站就更是轻而易举了。下面,我们举些例子来证明一下吧^_^
1、 利用自定义SQL函数标签实现文章列表
效果图如下:
利用SQL函数标签实现文章列表 第 1 张
我们在建标签前先对要实现的效果进行分析,主要是由导航+文章标题,标题有下划线+文章的添加日期组成。
新建标签:
利用SQL函数标签实现文章列表 第 2 张
假设,标签名称命名为“国内新闻”,数据源选择“KesionCMS主数据库“,不选择ajax输出,点击下一步构造SQL查询语句,如下图:
利用SQL函数标签实现文章列表 第 3 张
在主表中,选择“文章数据表”,因为我们是从文章系统中调用这些信息,字段选择根据我们上面的分析,需要文章ID,文章标题及文章添加的日期,按住Ctrl,然后用鼠标分别选中,接下来就是查询语句了,当我们选择字段时,查询语句也会自动跟着出来,如select  id ,title,adddate from ks_article
但是,我们要调用的信息必须是审核过的信息所以加上一个条件where verific=1;另外一个条件是文章必须是正常的,而没被放入回收站内的,所以加上另一个条件and delft=0 ;按照降序输出即最新添加的文章显示在最上边order by id desc,并且我们要调用前12条信息,第一部份显示6条信息后用分隔线隔开再显示第二部份的6条,所以我们的语句出来了:select top 12 IDTitle,Adddate from KS_Article where verific=1 and delft=0  order by id desc
语句完成后,点击“下一步”继续建立标签样式,写循环体, 循环体如:[loop] 循环内容  [/loop]
我们上面分析过的是有两部份组合,中间是一条分隔线,那么,我们就要用两个[loop][/loop]组成。
循环体:
 [loop=6]   /*循环6 */
·        /*文章导航*/
{$Field(Title,Text,0,...,0,)} /*给文章标题加链接*/
 ({$Field(Adddate,Date,YYYY-MM-DD)})       /*文章添加日期用()括起来*/
 
/*
每个标题用
分行*/
[/loop]
-------------------------------------------------------------------------------
/*
两个部份之间的分隔线并换行*/
[loop=6]
·{$Field(Title,Text,0,...,0,)} ({$Field(Adddate,Date,YYYY-MM-DD)})
[/loop]
把上部份循环体复制一份即可。如下图:
利用SQL函数标签实现文章列表 第 4 张
描述:
1SQL标签定义规则
循环体格式:[loop=n]循环标签的内容[/loop]
其中n表示循环次数,且n满足n>=0loop为循环关键字,此循环体可以重复使用,但是不能嵌套。
2
SQL标签字段规则
字段格式:{$Field(FieldName,OutType,Param,...)}
FieldName  --
数据库表的字段名称
OutType    --
输出类型支持:文本(Text)、日期(Date)、数据(Num)、对象URL(GetInfoUrl),栏目URL(GetClassUrl) 5种类型
3
、支持使用{ReqNum(字符串)}{ReqStr(字符串)}来取得Url的参数值
如:http://www.kesion.com/index.asp?ClassID=100,那么{ReqNum(ClassID)} 将得到100
保存后,调用标签。打开模板,选择更多标签,用户自定义函数标签的{SQL_国内新闻}插入到模板要显示的位置,如下图:
利用SQL函数标签实现文章列表 第 5 张
预览网页效果,如下图:
利用SQL函数标签实现文章列表 第 6 张
我们看到这个效果与我们的效果图虽然效果差不多达到了,但是不是很好看,我们可以让它变的更好看点,可以用样式进行控制,假设我们在循环体中加一个样式进行控制,如下图:
利用SQL函数标签实现文章列表 第 7 张循环体代码如下:
 
[loop=6]
({$Field(Adddate,Date,YYYY-MM-DD)})   /*加一个span去控制日期的样式*/

 
[/loop]
-------------------------------------------------------------------------------
 
[loop=6]
·{$Field(Title,Text,0,...,0,)}({$Field(Adddate,Date,YYYY-MM-DD)})
 
[/loop]
 
/*定义一个样式l进行控制,以达到更好的效果*/
光有这段循环体代码还不够,还需要对样式进行写语句控制,我们打开模板控制样式,如下图:
利用SQL函数标签实现文章列表 第 8 张
样式是必须在之间。
控制完毕,我们再看一下我们的杰作,效果绝对比刚才的好看很多很多。看下图:
利用SQL函数标签实现文章列表 第 9 张
100%