账号通
    

账号  

密码  

51692

查看

74

回复
主题:[高级教程三]自定义sql标签嵌套sql标签实现循环栏目列表效果 [收藏主题] 转到:  
小林 当前离线

233

主题

0

广播

2

粉丝
添加关注
级别:二年级

用户积分:2186 分
登录次数:88 次
注册时间:2008/7/19
最后登录:2014/1/11
小林 发表于:2008/8/22 16:10:00   | 只看该作者 查看该作者主题 楼主 
科汛在线网校系统

大家好!


 一段时间没有给大家讲高级教程了,今天刚好商业区的管理员说有用户需要这方面的需求,问我如何实现!其实也不难.我就给大家做个教程吧!


   用过科汛系统函数标签的"循环显示栏目文章标签"的用户可能就知道这个标签有一定的局限性,样式无法自己控制.往往无法满足自己的需求.现在我就教大家用sql标签来实现类似效果的制作方法


  正如标题所说需要sql标签嵌套调用,但考虑到系统生成速度方面原因,默认情况下科汛的sql标签是不支持嵌套调用的,那我们就对科汛的代码进行小手术.请跟我来吧


 


第一步:对代码进行小手术(说明,升级到5.03的用户无需要自行修改代码)


 


  用dw等编辑工具打开KS_Cls/Kesion.Label.CommonCls.asp文件,并找到约112左右的如下代码


  Dim DCls:Set Dcls=New DIYCls
   Content=DCls.ReplaceUserFunctionLabel(Content) 
   Set DCls=nothing
   ReplaceAllLabel =Content


   ReplaceAllLabel=DCls.ReplaceUserFunctionLabel(Content)
我们改成以下代码


    Dim DCls:Set Dcls=New DIYCls
   Content=DCls.ReplaceUserFunctionLabel(Content)


    If Instr(Content,"{SQL_")<>0 Then
    Content=DCls.ReplaceUserFunctionLabel(Content)
   End If
   Set DCls=nothing
   ReplaceAllLabel =Content


相信有点asp代码基础的用户都可以看得明白,就是当模板文件里包括{SQL_开头时,就再一次执行sql标签替换操作.正如之前说的,考虑到生成速度方面原因.如果模板里不包含{SQL_就不再替换了,所以这里的If判断对系统的性能有一定的作用.因为我们并不要求所有标签都要嵌套的.


 


第二步:分析实现


 


制作被嵌套的文章列表(查询KS_Article表):


sql标签名称:文章循环体


sql参数: 栏目ID


sql语句:select top 10 id,title,adddate from ks_article where tid='{$Param(0)}' order by id desc


sql循环体:


[loop=10]
<li><a href="{$Field(id,GetInfoUrl,1,1)}" target="_blank">{$Field(title,Text,0,...,0,)}</a></li>
[/loop]


 


制作栏目列表标签(查询KS_Class栏目表)


 


sql标签名称:循环栏目列表


sql语句:select top 10 id,FolderName from ks_class where tn='{$CurrClassID}' order by folderOrder


sql循环体:


<table border="0" width="100%">
[loop=10]
<tr>
 <td>{$Field(foldername,Text,0,...,0,)}</td>
</tr>
<tr>
 <td sytle="border:1px solid #cccccc">
 {SQL_文章循环体({$Field(id,GetInfoUrl,100,2)})}
</td>
</tr>
[/loop]
</table>


 


tips:上面红色就是插入上面制作的文章列表标签,参数{$Field(id,GetInfoUrl,100,2)}表示生成栏目ID号


 


 


 


第三步:模板调用


 


{SQL_循环栏目列表()}


 

 
  支持(1) | 反对(0) 回到顶部顶端 回到底部底部
endidas 当前离线

67

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:215 分
登录次数:24 次
注册时间:2009/8/13
最后登录:2009/9/19
endidas 发表于:2009/8/13 17:10:00   | 只看该作者 查看该作者主题 沙发 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
endidas 当前离线

67

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:215 分
登录次数:24 次
注册时间:2009/8/13
最后登录:2009/9/19
endidas 发表于:2009/8/13 17:09:00   | 只看该作者 查看该作者主题 藤椅 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
endidas 当前离线

67

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:215 分
登录次数:24 次
注册时间:2009/8/13
最后登录:2009/9/19
endidas 发表于:2009/8/13 17:08:00   | 只看该作者 查看该作者主题 板凳 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
happylyc 当前离线

57

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:1214 分
登录次数:121 次
注册时间:2007/11/2
最后登录:2010/6/11
happylyc 发表于:2009/6/18 17:40:00   | 只看该作者 查看该作者主题 报纸 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
shuangrong 当前离线

25

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:452 分
登录次数:31 次
注册时间:2007/8/1
最后登录:2014/2/26
shuangrong 发表于:2009/6/6 10:05:00   | 只看该作者 查看该作者主题 地板 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
办公之旅 当前离线

586

主题

9

广播

2

粉丝
添加关注
级别:五年级

用户积分:2594 分
登录次数:226 次
注册时间:2009/8/6
最后登录:2023/6/25
办公之旅 发表于:2010/1/23 12:35:00   | 只看该作者 查看该作者主题 7楼 

再顶下  高人指点啊

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
sctongyi 当前离线

909

主题

0

广播

0

粉丝
添加关注
级别:七年级

用户积分:7148 分
登录次数:239 次
注册时间:2007/2/2
最后登录:2012/10/23
sctongyi 发表于:2010/1/23 0:27:00   | 只看该作者 查看该作者主题 8楼 
做在线知识付费 选科汛云开店
我想在4.5的版本实现这个功能要修改那个文件哦 先谢过了
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
zjpa3 当前离线

250

主题

21

广播

2

粉丝
添加关注
级别:二年级

用户积分:2925 分
登录次数:324 次
注册时间:2007/11/22
最后登录:2024/6/10
zjpa3 发表于:2009/6/6 9:07:00   | 只看该作者 查看该作者主题 9楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
myvisa 当前离线

18

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:291 分
登录次数:14 次
注册时间:2009/5/1
最后登录:2016/2/23
myvisa 发表于:2009/5/3 1:55:00   | 只看该作者 查看该作者主题 10楼 
科汛在线考试系统(NET)
不错,借用了,自己再改改,还是好用的
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.20313秒 powered by KesionCMS 9.0