⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dv_clsspace.asp

📁 公司企业网站管理系统全站源码,用于企业内部对网站的管理
💻 ASP
📖 第 1 页 / 共 2 页
字号:
<%
'个性空间类模块
'Writen by Sunwin
Class Cls_Space
Public ScriptPath
Public Sid,Act,ReCache
Public XmlDoc,Space_Info,Forum_info,Forum_User,Space_User,Admin
Public Space_Skinpath
Private Forum_Skinpath

Private Sub Class_Initialize()
	ScriptPath = MyDbPath & "Dv_plus/myspace/script/"
	ReCache = 0 '是否首页缓存,0=是,1=否
	Sid = Dvbbs.CheckNumeric(Request("sid"))
	Act = Request("act")
	Admin = false
	Forum_Skinpath = Application(Dvbbs.CacheName & "_csslist").documentElement.selectSingleNode("@cssfilepath").text
	Space_Skinpath = MyDbPath & Forum_Skinpath&"myspace/"
	If Sid=0 and Dvbbs.Userid>0 Then
		Sid = Dvbbs.Userid
	End If

	If Dvbbs.userid=0 Then
		'Dvbbs.AddErrCode(6)
		'Dvbbs.Showerr()
	Else
		If Dvbbs.UserId=Sid Or Dvbbs.Master Then
			Admin = true
		End If
	End If
	Set XmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion)
	LoadData()
End Sub

Private Sub class_terminate()
	Set XmlDoc = Nothing
End Sub

'获取数据
Public Sub LoadData()

	If Act="" and ReCache = 0 Then
		If LoadCache_Data Then
			ReCache=0
		Else
			ReCache=1
		End If
	Else
		ReCache=1
	End If
	If ReCache=0 Then
		'读取文件缓存
		'XmlDoc.Load Server.MapPath(MyDbPath &"space.xml")
		'建立数据对象
		Set Forum_info = XmlDoc.DocumentElement.selectSingleNode("forum_info")
		Set Space_Info = XmlDoc.documentElement.selectSingleNode("space_info")
		Set Space_User = XmlDoc.documentElement.selectSingleNode("space_user")
		If Not (XmlDoc.DocumentElement.selectSingleNode("forum_user") is Nothing) Then
			XmlDoc.DocumentElement.removeChild(XmlDoc.DocumentElement.selectSingleNode("forum_user"))
		End If
		Set Forum_User = XmlDoc.DocumentElement.appendChild(XmlDoc.createNode(1,"forum_user",""))
		Forum_User.appendChild(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo").cloneNode(True))

		If Act<>"" Then
			Space_Info.removeChild(Space_Info.selectSingleNode("//leftchannal"))
			Space_Info.removeChild(Space_Info.selectSingleNode("//rightchannal"))
			If Space_Info.getAttribute("s_style") <>"2"  Then
				SpaceChannal Space_Info,Space_Info.getAttribute("s_left"),"leftchannal"
			End If
			If Space_Info.getAttribute("s_style") ="2" Then
				SpaceChannal Space_Info,Space_Info.getAttribute("s_right"),"rightchannal"
			End If
		End If
	Else
		XmlDoc.Loadxml("<?xml version=""1.0"" encoding=""gb2312""?><dv_space/>")
		'加载论坛基本信息
		SetupForum_Info()
		'加载个人空间基本信息
		LoadUserSpaceData()
		'加载当前访问用户基本数据
		Set Forum_User = XmlDoc.DocumentElement.appendChild(XmlDoc.createNode(1,"forum_user",""))
		Forum_User.appendChild(Dvbbs.UserSession.documentElement.selectSingleNode("userinfo").cloneNode(True))
		'加载空间用户数据
		LoadSpaceUserData()
	End If
	If Act <> "modifyskin" Then
		Space_Info.removeAttribute "s_css"
	End If
	Space_Info.setAttribute "s_stylevalue",Space_Info.getAttribute("s_style")
	If Space_Info.getAttribute("s_style")="3" and Act<>"" Then
		Space_Info.setAttribute "s_style","1"
	End If
	
End Sub

Public Function LoadCache_Data()
	Dim Rs,Sql,UpTime
	LoadCache_Data = False
	If Admin Then
		Sql = "Select Top 1 id,Userid,ownercachedb From [Dv_Space_user] where Userid="&sid
	Else
		Sql = "Select Top 1 id,Userid,cachedb From [Dv_Space_user] where Userid="&sid
	End If
	Set Rs=Dvbbs.Execute(Sql)
	If Rs.Eof Then
		'该用户还没开通个性首页
		Set Space_Info = GetDefaultData.cloneNode(True)
	Else
		If XmlDoc.LoadXml(Rs(2)&"") Then
			'加放更新时间判断 set_5频道更新时间,单位分钟
			Set Space_Info = XmlDoc.documentElement.selectSingleNode("space_info")
			If Not (Space_Info is Nothing) Then
				If IsDate(Space_Info.getAttribute("cacheuptime")) Then
					UpTime = cdate(Space_Info.getAttribute("cacheuptime"))
				Else
					UpTime = cdate(Space_Info.getAttribute("updatetime"))
				End If
				
				If Datediff("n",UpTime,Now())<Int(Space_Info.getAttribute("set_5")) Then
					LoadCache_Data = True
				End If
			End If
		End If
	End If
End Function

'保存首页缓存
Public Sub SaveCache_Data()
	If Sid=0 Then Exit Sub
	If ReCache=1 and Act="" Then
		Space_Info.setAttribute "cacheuptime",now()
		If Admin Then
			Dvbbs.Execute("update [Dv_Space_user] Set ownercachedb='"&Dvbbs.Checkstr(XmlDoc.xml)&"',updatetime = "&SqlNowString&"  where Userid="&sid)
		Else
			Dvbbs.Execute("update [Dv_Space_user] Set cachedb='"&Dvbbs.Checkstr(XmlDoc.xml)&"',updatetime = "&SqlNowString&"  where Userid="&sid)
		End If
		'Response.Write "已更新"
	End If
	'XmlDoc.save Server.MapPath(MyDbPath &"space.xml")
End Sub


'个人空间基本信息
Public Sub LoadUserSpaceData()
	Dim Rs,Sql,Node
	Dim Setting,i
	Sql = "Select Top 1 id,userid,username,title,intro,s_left,s_right,s_center,s_css,s_style,s_path,updatetime,lock,[set],plusdb from [Dv_Space_user] where"
	Sql = Sql & " Userid=" & Sid
	Set Rs=Dvbbs.Execute(Sql)
	If Rs.Eof Then
		Set Space_Info = GetDefaultData.cloneNode(True)
	Else
		Set Node = Dvbbs.RecordsetToxml(rs,"space_info","")
		Set Space_Info = Node.documentElement.selectSingleNode("space_info")
	End If
	Rs.Close
	Set Rs = Nothing
	Setting = Split(Space_Info.getAttribute("set")&"",",")
	If Ubound(Setting)=20 Then
		For i=0 to Ubound(Setting)
			Space_Info.setAttribute "set_"&i,Setting(i)
		Next
		Space_Info.removeAttribute "set"
	End If
	Dim TempXmlDoc
	Set TempXmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion)
	If TempXmlDoc.LoadXml(Space_Info.getAttribute("plusdb")) Then
		Space_Info.appendChild(TempXmlDoc.DocumentElement.cloneNode(True))
	Else
		Space_Info.appendChild(TempXmlDoc.createNode(1,"modules",""))
	End If
	Space_Info.removeAttribute "plusdb"
	Set TempXmlDoc = Nothing
	SpaceChannal Space_Info,Space_Info.getAttribute("s_left"),"leftchannal"
	SpaceChannal Space_Info,Space_Info.getAttribute("s_center"),"mainchannal"
	SpaceChannal Space_Info,Space_Info.getAttribute("s_right"),"rightchannal"
	Space_Info.setAttribute "skinpath",Space_Skinpath & Space_Info.getAttribute("s_path")
	Space_Info.setAttribute "isadmin",Admin
	XmlDoc.DocumentElement.appendChild(Space_Info)
End Sub

'建立频道列表
Private Sub SpaceChannal(Node,Arr,Name)
	Dim S_channal,i,ChildNode,Childs
	If Act<>"" Then
		If name="mainchannal" Then
			Arr = ""
		End If
		If (Space_Info.getAttribute("s_style") <>"2" and name="leftchannal") or (Space_Info.getAttribute("s_style") ="2" and name="rightchannal") Then
			Arr = "userinfo"
		Else
			Arr = ""
		End If
	End If
	S_channal = Split(Lcase(Arr),",")
	Set ChildNode = XmlDoc.createNode(1,Name,"")
	For i=0 to Ubound(S_channal)
		Set Childs = XmlDoc.createNode(1,"channals","")
		Childs.setAttribute "id",S_channal(i)
		ChildNode.appendChild(Childs)
	Next
	Node.appendChild(ChildNode)
End Sub


Private Function GetDefaultData()
	Dim TempXmlDoc,Node
	Set TempXmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion)
	If Not TempXmlDoc.Load(Server.MapPath(ScriptPath&"myspace.xml")) Then
		Response.Write "Load MySpace default data failse!"
		Response.End
	End If
	Set GetDefaultData = TempXmlDoc.documentElement.selectSingleNode("space_info")
	Set TempXmlDoc = Nothing
End Function

'个人空间所属用户基本信息
Public Sub LoadSpaceUserData()
	Dim Rs,Sql,Node,ChildNode
	Dim Attribute,UserIM,i,UserInfo,UserFace
	Sql="Select top 1 UserID,UserName,UserEmail,UserPost,UserTopic,UserFav,UserIsBest,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,UserHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,Userim,Userinfo,UserSetting,Fav_Boards"
	Sql = Sql & " From [Dv_User] Where UserID = " & Sid
	Set Rs=Dvbbs.Execute(Sql)
	
	If Rs.Eof Then
		Set Space_User = XmlDoc.createNode(1,"space_user","")
	Else
		Set Node = Dvbbs.RecordsetToxml(rs,"space_user","")
		Set Space_User = Node.documentElement.selectSingleNode("space_user")
	End If
	Rs.Close
	Set Rs = Nothing

	If Space_User.getAttribute("userface")<>"" Then
		If Instr(Space_User.getAttribute("userface"),"|") Then
			Space_User.setAttribute "userface",Split(Space_User.getAttribute("userface"),"|")(1)
		End If
	End If
	If Space_User.getAttribute("userim")<>"" Then
		UserIM = Split(Space_User.getAttribute("userim"),"|||")
		If not IsArray(UserIM) Then ReDim UserIM(6)
		Set ChildNode = Space_User.appendChild(XmlDoc.createNode(1,"homepage",""))
		ChildNode.text = UserIM(0)
		Set ChildNode = Space_User.appendChild(XmlDoc.createNode(1,"qq",""))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -