5UCMS插件开发指南

来源:互联网 发布:js下载弹出路径选择框 编辑:程序博客网 时间:2024/06/06 20:23

读完这一片文章,你就能自己开发自己想要的5UCMS留言板插件!

首先,本文的插件以网络流行的插件为蓝本。

留言本,在企业站点当中充当着询盘管理的角色,即使是在个人博客中,留言本也是站长和访客交流的友好工具,那么打造一款适合自己站点的留言板就显得尤为重要,本文交你如何改造属于自己的留言本。

首选,对于5ucms插件来说,首先要操作的就是在后台安装插件表,控制这个插件表的数据则位于插件文件夹下的setting.xml,这个文件一方面是记录插件的设置记录,更重要的是这个文件是创建插件表的首要记录,找到如下代码:

<install><![CDATA[
ACCESS:Create Table [{pre}Guestbook] ([ID] Int IDENTITY (1, 1) NOT NULL PRIMARY KEY,[Title] Varchar(50),[Tel] Varchar(100),[Email] Varchar(100),[User] Varchar(10),[Content] Varchar(250),[Recomment] Varchar(250),[Ip] Varchar(20),[Time] DateTime Default {date},[State] Int Default 0)
MSSQL:Create Table [{pre}Guestbook] ([ID] Int IDENTITY (1, 1) NOT NULL PRIMARY KEY,[User] Varchar(20),[Content] Varchar(500),[Recomment] Varchar(500),[Ip] Varchar(40),[Time] DateTime Default {date},[State] Int Default 0)
]]></install>

看到了啊,读到这里,你应该明白,如何建立自己所需求的字段了吧!

加入你添加了一个字段,那么你相应的就要修改一下几个文件:

第一个:_Manage.Class.ASP中的:

Class Cls_Guestbook

Dim vID
Dim vTitle
Dim vTel
Dim vEmail
Dim vUser
Dim vContent
Dim vRecomment
Dim vIp
Dim vTime
Dim vState
Dim LastError

声明标量的部分,将你添加的字段声明出来;

Public Function GetValue()中获取你添加的变量;(Public Function GetValue()这个函数中的变量,来自于_manage.asp文件中的<form name=’frm’ method=’post’ action=’<%=Url%>?Act=UpDate&ID=<%=ID%>&Page=<%=Page%><%=JumpUrl%>’>这个表单,所以在这里获取之前,还要按照相应的是在这个表单中创建相应的input用来作为相应字段的容器)

Public Function SetValue()中添加相应的字段;

Public Function Modify()添加相应的字段;

接下来是save.asp文件了,这个文件是处理提交留言数据的,找到以下部分,声明相应的变量:

Dim Comment_Title,Comment_Tel,Comment_Email,Comment_User,Comment_Content

接下来是获取变量:Comment_Title=Request(“title”)

然后是过滤数据中的不安全字符:

Comment_Title = Replace(Comment_Title,”<”,”")
Comment_Title = Replace(Comment_Title,”>”,”")
Comment_Title = Replace(Comment_Title,”asp”,”")
Comment_Title = Replace(Comment_Title,”%”,”")

然后找到sql执行语句:

‘Dim Rs,SQL
‘SQL = “Select [ID],[Title],[Tel],[Email],[User],[Content],[IP],[Time],[State] From [{pre}Guestbook]”
‘Set Rs = DB(SQL,3)
‘Rs.Addnew
‘Rs(“title”)=Comment_Title
‘Rs(“tel”)=Comment_Tel
‘Rs(“email”)=Comment_Email
‘Rs(“user”) = Comment_User
‘Rs(“content”) = Comment_Content
‘Rs(“ip”) = GetIP
‘Rs(“time”) = Now()
‘If Plus.Config(“audit”) = 1 Then Rs(“state”) = 0 Else Rs(“state”) = 1
‘Rs.update
‘Rs.Close

修改完毕以后你的留言板就可以正常运行了。


5ucms站内搜索插件开发指南

本人不保证一下内容准确无误,但是保证,按照本指南开发,能够实现你想要的功能。

5ucms的站内搜索其实只包含了两个方面的搜索,一个是标题,另外一个是描述:
if Ktype = “title” then
Searchstr = “Where [Title] Like ‘%” & key & “%’ else
Searchstr = “Where [Title] Like ‘%” & key & “%’ Or [Description] Like ‘%” & key & “%’
end if
这样的站内搜索对于企业站来说很简陋,其展现的形式只能是标题,描述,十分尤为枯燥,加入你想输出个缩略图、自定义模型中的字段,都不行。
自己动手,丰衣足食,只要你理解了这个思路其实是可以的。
第一个问题:高级搜索样式的定义
方案一:前台增加input框 select框等,在asp程序中加入相应的条件,其写法依然是if else end if等,我这里不贴代码了,给大家提供一个思路。加入你只想做一个站内产品的搜索,那么你完全可以按照下面的代码来:
if Ktype = “title” then
Searchstr = “Where [Title] Like ‘%” & key & “%’ and [Cid] in(33,32,31,30,29,28,27,26)”
else
Searchstr = “Where [Title] Like ‘%” & key & “%’ Or [Description] Like ‘%” & key & “%’ and [Cid] in(33,32,31,30,29,28,27,26)”
end if
其中33,32,31,30,29,28,27,26就是产品中心下的各个分类。这样的sql语句表示,本搜索只搜搜33,32,31,30,29,28,27,26这些栏目的内容,其结果不包含新闻。这就是站内产品搜索了。
另外一点,加入你想在搜索展示的页面中加入一些个性化的展示结果。

那么就得接着看了,加入你只要标题、列表的输出样式,这个时候你就可以结束本文,回去开工了!

个性化的输出内容,其实包括很多内容,有自定义模型中的自定义字段,还有产品图片,这些都可以作为我们输出的内容。
在程序中有这样一句话:
dim SQL,Rs,i,j,Searchstr,aTitle,aDescription,aUrl,aDateTime,aAuthor,aIndexpic,aModeIndex,aFormID,pro_cid,pro_pq,pro_ly,pro_yt
这就是定义我们在输出变量值和替换模板中标签的时候索要用的变量,所以说,你想要输出多少就得在这里定义多少变量,然后还得修改sql语句:
SQL = “Select Top ” & plus.Config(“maxsize”) & ” [ID],[Cid],[Title],[Author],[Indexpic],[ModeIndex],[Description],[Diyname],[Createtime],[Viewpath],[FormID] From [{pre}Content] ” & Searchstr & ” Order BY [ID] Desc”
其实将诸多字段改成*会更省事,但是考虑到程序的执行效率,还是加字段吧。然后下面是输出变量,自己对这着来吧,上面定义的有用变量都要在这里赋值输出。
aUrl = BuildViewPath(Rs(“ID”),Rs(“Cid”),Rs(“Diyname”),Rs(“Createtime”),Rs(“Viewpath”))
aTitle = Rs(“Title”)
aAuthor = Rs(“Author”)
aIndexpic=RS(“Indexpic”)
aModeIndex=RS(“ModeIndex”)
aFormID=RS(“FormID”)
pro_cid=split(split(aModeIndex,”<pro_cid>”)(1),”</pro_cid>”)(0)
pro_pq=split(split(aModeIndex,”<pro_pq>”)(1),”</pro_pq>”)(0)
pro_yt=split(split(aModeIndex,”<pro_yt>”)(1),”</pro_yt>”)(0)
pro_ly=split(split(aModeIndex,”<pro_ly>”)(1),”</pro_ly>”)(0)
然后再这里处理的过程中,其实我偷懒了,不过也是没有办法的事情,asp一点都不懂,只能走捷径了。
正常的程序流程应该是,从content表中查出来formid的值,然后以这个值从fromfield表中,搜出来各个字段的名称,然后用字段名称在amodeindex中进行截取,这里我直接用自定义字段名进行操作了。恕罪!
然后就该替换标签了:
html = html & Vbcrlf & Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(TempNow,”$aurl”, aUrl),”$atitle”, atitle),”$adescription”, adescription),”$adatetime”, adatetime),”$aauthor”, aAuthor),”$indexpic”,aIndexpic),”$pro_cid”,pro_cid),”$pro_pq”,pro_pq),”$pro_yt”,pro_yt),”$pro_ly”,pro_ly)
再接下来就是修改setting.xml:
<li>
<a href=”$aurl”><img src=”$indexpic” border=”0″/></a>
<div>
<p class=’tit’><a href=”$aurl”>$atitle</a><span>产品型号:$pro_cid</span></p>
<p class=’con’>$adescription…</p>
<p class=’abt’><span>品牌:$pro_pq</span> <span>应用领域:$pro_ly</span> <span>所属用途:$pro_yt</span></p>
</div>
</li>
到这里,就完成了定制!



原创粉丝点击