账号通
    

账号  

密码  

8197

查看

13

回复
主题:三步实现KSCMS系统增加随机函数调用标签 [收藏主题] 本贴被认定为精华 转到:  
gyxin123 当前离线

1204

主题

0

广播

0

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

用户积分:9198 分
登录次数:441 次
注册时间:2007/12/23
最后登录:2012/10/16
gyxin123 发表于:2009/1/4 17:42:00   | 显示全部帖子 查看该作者主题 楼主 

很多时候会用到这个功能的吧,比如随机显示10条最新的新闻,随机显示10条推荐的新闻等等

 

先看一下后台效果:

 


此主题相关图片如下:1.jpg
1.jpg

前台效果图:

随机显示10条热门文章


此主题相关图片如下:2.jpg
2.jpg

今天不能上传文件了,就只说下实现步骤:

1。打开admin--include文件夹下的AddFunctionLabel.asp文件,在<%Case 2%>前边加上<option value="Label/GetRandArticle.asp?ChannelID=<%=SQL(0,I)%>&PageTitle=<%=Server.URLEncode("新建随机" & SQL(3,I) & "列表标签")%>&FolderID=<%=FolderID%>">|_随机<%=SQL(3,I)%>列表标签</option>

 

2。将admin--include--Label 文件夹下的GetArticleList.asp另存为GetRandArticleList.asp

然后打开这个新的GetRandArticleList.asp文件,将里边的GetArticleList全部替换为GetRandArticleList

 

3。打开KS_CLS文件夹下的Kesion.Label.FunctionCls.asp文件,在Case "GETARTICLELIST" '栏目文章列表函数后边加上

Case "GETRANDARTICLELIST" ChangeLableToFunction = GetRandArticleList(L_Arr(1), L_Arr(2), L_Arr(3), L_Arr(4), L_Arr(5), L_Arr(6), L_Arr(7), L_Arr(8), L_Arr(9), L_Arr(10), L_Arr(11), L_Arr(12), L_Arr(13), L_Arr(14), L_Arr(15), L_Arr(16), L_Arr(17), L_Arr(18), L_Arr(19), L_Arr(20),L_Arr(21), L_Arr(22),L_Arr(23), L_Arr(24),L_Arr(25), L_Arr(26),L_Arr(27), L_Arr(28),L_Arr(29), L_Arr(30), L_Arr(31), L_Arr(32)) '栏目随机列表函数

 

找到 '取得不规则栏目文章列表 在它前边加上

'取得随机文章列表
  Function GetRandArticleList(ChannelID,FolderID,I_S_C,S_C_N, OpenType, A_P, num, R_H,T_Len, ByVal S_Str, Col, PicTF, NavType, Nav, MoreType, MoreLink, SplitPic, DateRule,DateAlign, T_Css, DateCss,SpecialID,NewTF,HotTF,P_T,DivID,DivCss,UlID,ULCss,LiID,LICss,LabelID)
       If LabelID<>"ajax" and P_T>2 Then
     GetArticleList="<span id=""ks" & LabelID & "_" & FolderID & "_" & FCls.RefreshFolderID & "_0""></span>":Exit Function
    ElseIf P_T>2 Then
     P_T=P_T-2
    End If
   
    Dim SqlStr, A_PStr,M_L_S, O_T_S,C_F_T,Param
    If FolderID = "-1" Then
     FolderID = FCls.RefreshFolderID
     C_F_T = True
    Else
     C_F_T = False
    End If
   If FolderID = "" Then FolderID = "0"
   Select Case A_P
       Case "1":A_PStr = " And Recommend=1"
       Case "2":A_PStr = " And Popular=1"
       Case "3":A_PStr = " And Strip=1"
   End Select
    A_PStr=A_PStr & KS.GetSpecialPara(ChannelID,SpecialID)
    If Lcase(Left(Trim(S_Str),2))<>"id" Then  S_Str=S_Str & ",ID Desc"
    If FolderID = "0" Then Param="" Else If CBool(I_S_C) = True Then Param="Tid In (" & KS.GetFolderTid(FolderID) & ") And" Else Param="Tid='" & FolderID & "' And"
    Randomize(Timer())
    SqlStr = "SELECT TOP " & num & " ID,Title,Tid,ReadPoint,InfoPurview,Fname,Changes,AddDate,Popular,NewsID,ShowComment,Comment,TitleType,TitleFontColor,TitleFontType FROM " & KS.C_S(ChannelID,2) &" Where " & Param & " Verific=1 AND DelTF=0 " & A_PStr & " ORDER BY Rnd(-(ID + " & Int((10000 * Rnd) + 1) & "))," & S_Str
    O_T_S = KS.G_O_T_S(OpenType)
    If MoreLink <> "" And FolderID <> "0" And C_F_T = False Then M_L_S = KS.GetMoreLink(P_T,Col, R_H, MoreType, MoreLink, KS.GetFolderPath(FolderID), O_T_S)
    GetRandArticleList = KS_A_L(ChannelID,SqlStr, M_L_S, S_C_N, O_T_S, R_H, T_Len, Col, PicTF, NavType, Nav, SplitPic, DateRule, DateAlign, T_Css, DateCss,NewTF,HotTF,P_T,DivID,DivCss,UlID,ULCss,LiID,LICss)
  End Function

 

到这里就可以去后台系统函数标签下建立一个随机函数标签,在模板中插入就可以看到效果了。

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

1204

主题

0

广播

0

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

用户积分:9198 分
登录次数:441 次
注册时间:2007/12/23
最后登录:2012/10/16
gyxin123 发表于:2009/1/4 21:06:00   | 显示全部帖子 查看该作者主题 沙发 
科汛智能建站系统
以下是引用一生有你在2009-1-4 20:01:00的发言:
应该有更好的解决方式.如就在原文章列表里增加按顺机数排序.或是直接用sql标签都是可以做的.

ACCESS数据库sql标签实现不了

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.07813秒 powered by KesionCMS 9.0