木子屋 Dnawo's BLOG

Dvbbs V8.2.0 RC1修改:在楼主的贴子中标明"[楼主]"字样

👤 dnawo 📅 2008-01-30 👁 5132 👍 0 💬 2 🔄 来源:本站原创
本次修改主要针对dispbbs.asp,修改的地方共有四处:

1.增加全局变量G_PostUserName
Dim G_PostUserName

2.修改LoadTopicInfo函数(红色新增)
Sub LoadTopicInfo()
	AnnounceID	= Dvbbs.CheckNumeric(Request("ID"))
	If 0=AnnounceID Then Dvbbs.AddErrCode(30):Dvbbs.Showerr()
	G_CurrentPage = Dvbbs.CheckNumeric(Request("star"))
	If 0=G_CurrentPage Then G_CurrentPage=1
	Skin=Request("Skin")
	If Skin="" or Not IsNumeric(Skin) Then Skin=Dvbbs.Board_setting(42)
	Dim Rs, SQL, iLockSet, iTopicMode, sMove
	sMove		= request("move")
	iLockSet	= Dvbbs.CheckNumeric(Dvbbs.Board_Setting(71))
	SQL="Select top 1 TopicID,boardid,title,hits,isvote,child,pollid,LockTopic,PostTable,BoardID,TopicMode,DateAndTime,Expression,GetMoneyType[color=Red],PostUserName[/color] From Dv_topic where "
	If ""=sMove Then
		SQL	= SQL & ("topicID=" & AnnounceID)
	Else
		SQL	= SQL & "BoardID=" & Dvbbs.BoardID & " and topicID"
		If "next"=sMove Then 
			SQL	= SQL & ("<" & AnnounceID & " order by topicID desc")
		Else
			SQL	= SQL & (">" & AnnounceID & " order by topicID")
		End If 
	End If 
	If Not IsObject(Conn) Then ConnectionDatabase
	Set Rs=Dvbbs.iCreateObject("Adodb.RecordSet")
	Rs.Open SQL,Conn,1,3
	Dvbbs.SqlQueryNum=Dvbbs.SqlQueryNum+1
	If Rs.eof or Rs.bof Then
		If ""<>sMove Then 
			Response.Write "<script language=""javascript"">alert(""已经是最后一条主题了!"");history.go(-1);</script>"
			Rs.Close
			Set Rs=Nothing 
			Response.End 
		Else
			Dvbbs.AddErrcode(32)
		End If 
	Else
		If CStr(Rs("BoardID"))<>CStr(Dvbbs.BoardID) Then Dvbbs.AddErrCode(29)
		G_Hits			= Dvbbs.CheckNumeric(Rs("hits"))
		Rs("hits")		= G_Hits+1
		G_LockTopic		= Rs("LockTopic")
		If 0=G_LockTopic And iLockSet<>0 And Datediff("d", Rs("DateAndTime"),Now())>iLockSet Then 
			G_LockTopic = 1
			Rs("LockTopic")	= G_LockTopic
		End If 
		On Error Resume Next 
		Rs.Update
		If Err Then Err.Clear
		G_TopicTitle	= Rs("title")
		G_IsVote		= Rs("isvote")
		G_Childs		= Rs("child")
		G_PollID		= Rs("pollid")
		G_Expression	= Rs("Expression")
		T_GetMoneyType	= Rs("GetMoneyType")
		TotalUsetable	= Rs("PostTable")
		iTopicMode		= Rs("topicmode")
		AnnounceID		= Rs("TopicID")
		[color=Red]G_PostUserName  = Rs("PostUserName")[/color]
	End If 
	Rs.Close
	Set Rs=Nothing 
	Dvbbs.Showerr()
	G_TopicTitle		= Dvbbs.ChkBadWords(G_TopicTitle)
	ReplyID			= Dvbbs.CheckNumeric(Request("ReplyID"))
	If 0=ReplyID Then ReplyID=AnnounceID
	If iTopicMode<>1 Then G_TopicTitle=replace(G_TopicTitle, "<", "<")
	Dvbbs.Stats			= G_TopicTitle
	G_Childs			= G_Childs+1
	Select Case iTopicMode
		Case 2	G_TopicTitle	= "<font color=""red"">"&G_TopicTitle&"</font>"
		Case 3	G_TopicTitle	= "<font color=""blue"">"&G_TopicTitle&"</font>"
		Case 4	G_TopicTitle	= "<font color=""green"">"&G_TopicTitle&"</font>"
		Case Else 
	End Select 
End Sub

3.增加一个函数IsPostUser
Function IsPostUser(UserName)
	If G_PostUserName=UserName Then
		IsPostUser = "<font color=""red"">[楼主]</font>"
	Else
		IsPostUser = ""
	End If 
End Function

4.在ParseUserNode函数中找到如下部分并修改(红色新增)
Case "richname"
	s	= G_UserList(26, i-1)
	Select Case s
		Case 0	s2= Dvbbs.mainsetting(9)
		Case 1	s2= Dvbbs.mainsetting(7)
		Case 2	s2= Dvbbs.mainsetting(7)
		Case 3	s2= Dvbbs.mainsetting(5)
		Case 4	s2= "red"
		Case 5	s2= "red"
		Case 6	s2= "gray"
		Case 7	s2= Dvbbs.mainsetting(11)
		Case 8	s2= "red"
		Case Else s2= Dvbbs.mainsetting(5)
	End Select 
	s=Split(Split(Application(Dvbbs.CacheName &"_groupsetting").documentElement.selectSingleNode("usergroup[@usergroupid='"& G_UserList(26, i-1) &"']/@groupsetting").text,",")(58),"§")
	TPL_Echo "<span style=""width:105px;filter:glow(color='"&s2&"',strength='2');"">"&(s(0)&UserName[color=Red]&IsPostUser(UserName)[/color]&s(1)&"</span>")

OK,修改完毕!

评论(2)

Rogue 2009-05-20 11:47
木子,您好。我现在做一个asp.net2.0的网站,想把Dvbbs8.2SQL版的用户整合一下。不知道您能不能详细讲一下您的方法。谢谢!QQ:3849410 Email:384941@qq.com
dnawo 2009-05-21 08:38
可参考[url=article.asp?id=1263]《个人网站与动网整合步骤(支持PDO1.0)》[/url]一文。
验证码
评论需审核通过后显示
← 上一篇 将系统整合设置集成到Dvbbs v8.2.0 RC1后台 下一篇 → 解读Dvbbs V8.2.0 RC1模板驱动机制