账号通
    

账号  

密码  

28965

查看

42

回复
主题:[分享]官方手把手教你在KesionCMS V7.0基础上做二次开发(带示例文件) [收藏主题] 本贴被认定为精华 转到:  
科汛官方 当前离线

47268

主题

145

广播

405

粉丝
添加关注
级别:管理员

用户积分:101604 分
登录次数:7935 次
注册时间:2006/12/7
最后登录:2023/12/14
科汛官方 发表于:2010/10/12 9:13:00   | 显示全部帖子 查看该作者主题 楼主 
科汛在线网校系统

     KesionCMS 代码100%开放,这对于有二次开发需求的用户,是一种福音,很多时候我们可以直接引用科汛技术人员写出来的代码,节省大量的时间。在6.x版本时,有跟大家介绍了如何在KesionCMS上做二次开发,详见:http://bbs.kesion.com/forumthread-136482.html



    但由于会员系统在V7.0版本中有所改变,所以重新整理说明一下(提示:为了更好的理解以下代码,阅读以下内容前请先看之前的开发说明http://bbs.kesion.com/forumthread-136482.html)。



说明:以下示例文件,如果没有特殊说明,则均是放在根目录下运行!!!



示例一、自己写的程序需要用到科汛会员接口验证是否登录的:

需要引用以下两个文件

conn.asp和KS_Cls/Kesion.MemberCls.asp

示例代码:test1.asp

<!--#include file="conn.asp"-->

<!--#include file="ks_cls/kesion.membercls.asp"-->

<%

Dim KS:Set KS=New PublicCls    ‘初始化所有通用函数

Dim KSUser:Set KSUser=New UserCls ‘初始化会员接口文件

Dim UserLoginTF:UserLoginTF=KSUser.UserLoginChecked   '获取判断有没有登录

If UserLoginTF=true Then

   Response.Write "用户已登录,用户名为:" & KSUser.GetUserInfo(“UserName”)

Else

   Response.write "还没有登录,<a href=""/user/login"">点此</a>进入登录页面!"

End If

'对象使用完毕,释放对象

Set KSUser=Nothing

Set KS=nothing

CloseConn

%>



说明:上面代码中红色为V7.X与V6.X的区别,V7.x版本取得当前会员的资料采用GetUserInfo函数

格式:

KSUser.GetUserInfo(“字段名称”)   ---其中的字段名称可以打开KS_User表查看

如:

KSUser.GetUserInfo(“realname”)  --获得姓名

KSUser.GetUserInfo(“money”)    --获得账户资金







示例二、自己写的页面也可以套用科汛的标签及页面模板化

如果自己写的代码希望能调用科汛的标签,则需要调用的文件有

conn.asp、KS_Cls/Kesion.CommonCls.asp及KS_Cls/Kesion.Label.CommonCls.asp
三个文件。

其中的KS_Cls/Kesion.Label.CommonCls.asp发挥标签解释的作用,调用该文件后可以解释{$,{LB,{SQL,{JS等开头的标签,看以下示例:

这里我们可以套用科汛的文件代码,如复制一份map.asp我们将其改成test2.asp,代码如下:

<!--#include file="Conn.asp"-->

<!--#include file="KS_Cls/Kesion.CommonCls.asp"-->

<!--#include file="KS_Cls/Kesion.Label.CommonCls.asp"-->

<%

Dim KSCls

Set KSCls = New Test

KSCls.Kesion()

Set KSCls = Nothing

Class Test

        Private KS, KSR,Maps

              Private Sub Class_Initialize()

               If (Not Response.IsClientConnected)Then

                     Response.Clear

                     Response.End

               End If

                Set KS=New PublicCls

                Set KSR = New Refresh

              End Sub

        Private Sub Class_Terminate()

               Call CloseConn()

               Set KS=Nothing

              End Sub

              Public Sub Kesion()

                         Dim FileContent

                         Dim MapTemplatePath:MapTemplatePath=KS.Setting(3) & KS.Setting(90) & "test.html"  '读取模板地址,模板放到在template目录下,文件名自取,但需要和这里的文件名一致!

                               FileContent = KSR.LoadTemplate(MapTemplatePath)   



                               FileContent=Replace(FileContent,"{$自己的标签}", "这里写上自己的函数代码")

                               FileContent=KSR.KSLabelReplaceAll(FileContent)  ‘调用科汛的全站标签替换函数

                               response.write FileContent  ‘最后输出内容

              End Sub        

End Class

%>



注意:

第一:上面加红色的模板路径要正确,模板必须是静态文件如.html,.htm等,并将做好的模板放于Template目录下

第二:模板加载后,先解释自己的代码并替换,如上绿色的代码

第三:这句代码“FileContent=KSR.KSLabelReplaceAll(FileContent)”发挥重要作用,它完成所有科汛标签的替换。





示例三:调用会员中心的主框架

如果希望在会员中心做功能扩展,并且希望调用会员中心的主框架,则请用以下统一代码示例,则于要放在用会员主框则,则test3.asp文件放于user目录下:

文件:test3.asp

示例代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<%option explicit%>

<!--#include file="../Conn.asp"-->

<!--#include file="../KS_Cls/Kesion.MemberCls.asp"-->

<!--#include file="../KS_Cls/Kesion.Label.CommonCls.asp"-->

<%

'****************************************************

' Software name:Kesion CMS 7.0

' Email: service@kesion.com . QQ:111394,9537636

' Web: http://www.kesion.com http://www.kesion.cn

' Copyright (C) Kesion Network All Rights Reserved.

'****************************************************

Dim KSCls

Set KSCls = New Test3

KSCls.Kesion()

Set KSCls = Nothing

Class Test3

        Private KS,KSUser

              Private Sub Class_Initialize()

                Set KS=New PublicCls

                Set KSUser = New UserCls

              End Sub

        Private Sub Class_Terminate()

               Set KS=Nothing

               Set KSUser=Nothing

              End Sub

            %>

              <!--#include file="../KS_Cls/UserFunction.Asp"-->

              <%

              Public Sub LoadMain()

                     IF Cbool(KSUser.UserLoginChecked)=false  Then

                       Call KS.ShowTips("error","<li>你还没有登录或登录已过期,请重新<a href='../user/login/'>登录</a>!</li>")

                       Exit Sub

                     End If

                  %>



                     二次开发示例,这里写上你自己的代码内容!



                     <%

        End Sub

End Class

%>



您只需要复制以上示例文件,然后在加红色的地方改成您自己的代码即可。其它的验证等细节都可以不用管了。

运行后顶部和左部直接引用V7模板框架了,如下图:

点击查看原图

通过以上三个示例,相信有一点点ASP基础的用户,都可以自由在的科汛系统上做二次开发了。







 下载信息  [文件大小:2.18 KB 下载次数: 次]
点击下载文件:教程示例代码文件

点评 3

乱弹琴:5.0     说得很好:5.0     
licaifuwu 乱弹琴:5 说得很好:5
不错 威望+2 发表于 2011/11/13 16:51:00 
56look 这个可以有,百花齐放才能香气迷人。支持科讯这种开放性的做法。 威望+2 发表于 2011/4/19 10:49:00 
 
  支持(1) | 反对(56) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.43750秒 powered by KesionCMS 9.0