各人好!
一段时间没有给各人讲高级教程了,,,,,,今天恰恰商业区的治理员说有用户需要这方面的需求,,,,,,问我怎样实现!着实也不难.我就给各人做个教程吧!
用过pp电子系统函数标签的"循环显示栏目文章标签"的用户可能就知道这个标签有一定的局限性,,,,,,样式无法自己控制.往往无法知足自己的需求.现在我就教各人用sql标签来实现类似效果的制作要领
正如问题所说需要sql标签嵌套挪用,,,,,,但思量到系统天生速率方面原因,,,,,,默认情形下pp电子的sql标签是不支持嵌套挪用的,那我们就对pp电子的代码举行小手术.请跟我来吧
第一步:对代码举行小手术
用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)
相信有点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]
[/loop]
制作栏目列表标签(盘问KS_Class栏目表)
sql标署名称:循环栏目列表
sql语句:select top 10 id,FolderName from ks_class where tn='{$CurrClassID}' order by folderOrder
sql循环体:
[loop=10]
{$Field(foldername,Text,0,...,0,)}
{SQL_文章循环体({$Field(id,GetInfoUrl,100,2)})}
[/loop]
tips:上面红色就是插入上面制作的文章列表标签,,,,,,参数{$Field(id,GetInfoUrl,100,2)}体现天生栏目ID号
第三步:模板挪用
{SQL_循环栏目列表()}
If Instr(Content,"{SQL_")<>0 Then
Content=DCls.ReplaceUserFunctionLabel(Content)
End If
Set DCls=nothing
ReplaceAllLabel =Content