?? forumnewssetting.asp
字號:
<!-- #include file =../conn.asp-->
<!-- #include file="inc/const.asp" -->
<!--#include file="../inc/dv_clsother.asp"-->
<%
Head()
Dim Admin_Flag
Dim NewsConfigFile
Dim XmlDoc,Node
Dim NewsName,NewsType,Updatetime,Skin_Head,Skin_Main,Skin_Footer,NewsSql
Admin_flag=",10,"
CheckAdmin(admin_flag)
NewsConfigFile = MyDbPath & "Dv_ForumNews/Dv_NewsSetting.config"
NewsConfigFile = Server.MapPath(NewsConfigFile)
Main()
If FoundErr Then Call Dvbbs_Error()
Footer()
Sub Main()
%>
<table cellpadding="3" cellspacing="1" border="0" align="center" width="100%">
<tr><th colspan="2" height="23">論壇首頁調用管理</th></tr>
<tr>
<td width="20%" class="td1" align="center">
<button Style="width:80;height:50;border: 1px outset;" class="button">注意事項</button>
</td>
<td width="80%" class="td2">
①添加調用后,在列表中點擊相應的預覽可以看到效果,將調用代碼復制到你的首頁就可以了。
<br>②如果你的首頁是和論壇程序分開,在填寫調用模板時建議用上絕對地址路徑。
<br>③若需要設置外部調用限制和設置臨時文件名,修改Dv_News.asp文件,文件里附有說明。
<br>④建議根據不同的調用設定更新時間間隔,如不是經常更新的版塊調用可以設置長一些時間間隔,這樣可以有效地減低消耗。
</td>
</tr>
<tr><td colspan="2" class="td2">
<a href="?Act=AddSetting">添加首頁調用</a> | <a href="?Act=NewsList">首頁調用列表</a> | <a href="<%=MyDbPath%>Dv_News_Demo.asp" target="_blank">查看所有調用演示</a>
</td></tr>
</table>
<%
Select Case Request("Act")
Case "NewsList": Call NewsList()
Case "AddSetting" , "EditNewsInfo" : Call AddSetting()
Case "SaveSetting" , "SaveEditSetting" : Call SaveSetting()
Case "DelNewsInfo" : Call DelNewsInfo()
Case Else
Call NewsList()
End Select
End Sub
'刪除記錄
Sub DelNewsInfo()
Dim DelNodes,DelChildNodes
Set XmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion)
If Not XmlDoc.load(NewsConfigFile) Then
ErrMsg = "調用列表中為空,請填寫調用后再執行本操作!"
Dvbbs_Error()
Exit Sub
End If
'Response.Write Request.Form("DelNodes").count
For Each DelNodes in Request.Form("DelNodes")
Set DelChildNodes = XmlDoc.DocumentElement.selectSingleNode("NewsCode[@AddTime='"&DelNodes&"']")
If Not (DelChildNodes is nothing) Then
XmlDoc.DocumentElement.RemoveChild(DelChildNodes)
End If
Next
Call SaveXml()
Dv_suc("所選的記錄已刪除!")
End Sub
Sub SaveSetting()
NewsName = Replace(Request.Form("NewsName"),"""","")
NewsType = Replace(Request.Form("NewsType"),"""","")
Updatetime = Dvbbs.CheckNumeric(Request.Form("Updatetime"))
Skin_Head = Request.Form("Skin_Head")
Skin_Main = Request.Form("Skin_Main")
Skin_Footer = Request.Form("Skin_Footer")
If NewsName="" Then
Errmsg=ErrMsg + "<li>請填寫調用標識!</li>"
Else
NewsName = Lcase(NewsName)
End If
If NewsType < "1" Then
Errmsg=ErrMsg + "<li>選取調用類型!</li>"
End If
If Skin_Main = "" Then
Errmsg=ErrMsg + "<li>模板_主體循環標記部分不能為空!</li>"
End If
If Errmsg<>"" Then Dvbbs_Error() : Exit Sub
Call LoadXml()
If FoundNewsName(NewsName) and Request("Act") <> "SaveEditSetting" Then
Errmsg=ErrMsg + "<li>調用標識已存在,不能重復添加!</li>"
Dvbbs_Error()
Exit Sub
End If
Select Case NewsType
Case "1" '帖子調用
Call NewsType_1()
Case "2" '信息調用
Call NewsType_2()
Case "3" '版塊調用
Call NewsType_3()
Case "4" '會員調用
Call NewsType_4()
Case "5" '公告調用
Call NewsType_5()
Case "6" '展區調用
Call NewsType_6()
Case "7" '圈子調用
Call NewsType_7()
Case "8" '登錄框調用
Call NewsType_8()
Case Else
Errmsg=ErrMsg + "<li>請正確選取調用類型!</li>"
Dvbbs_Error()
End Select
Call CreateXmlLog()
Call SaveXml()
Dv_suc("調用設置成功!")
End Sub
Sub LoadXml()
Set XmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument"& MsxmlVersion)
If Not XmlDoc.load(NewsConfigFile) Then
XmlDoc.loadxml "<?xml version=""1.0"" encoding=""gb2312""?><NewscodeInfo/>"
End If
End Sub
'檢查是否存在相同的標識
Function FoundNewsName(NewsName)
Dim Test
Set Test = XmlDoc.DocumentElement.selectSingleNode("NewsCode[@NewsName="""&NewsName&"""]")
FoundNewsName = not (Test is nothing)
End Function
Sub SaveXml()
XmlDoc.save NewsConfigFile
Set XmlDoc = Nothing
End Sub
'公共記錄
Sub CreateXmlLog()
Dim attributes,createCDATASection,ChildNode
Dim FormName,NoAttFormName
Dim Addtime
AddTime = Now()
If Request("Act") = "SaveEditSetting" and Request.Form("AddTime")<>"" Then
Set Node = XmlDoc.DocumentElement.selectSingleNode("NewsCode[@AddTime='"&Request.Form("AddTime")&"']")
If Not (Node is nothing) Then
AddTime = Node.getAttribute("AddTime")
XmlDoc.DocumentElement.RemoveChild(Node)
End If
End If
'創建節點
Set Node=XmlDoc.createNode(1,"NewsCode","")
NoAttFormName = ",Skin_Head,Skin_Main,Skin_Footer,Act,AddTime,Board_Input0,Board_Input1,Board_Input2,Board_Input3,Board_Input4,"
For Each FormName In Request.Form
If Instr(NoAttFormName,","&FormName&",")=0 Then
Set attributes=XmlDoc.createAttribute(FormName)
If FormName="NewsName" Then
attributes.text = Lcase(Replace(Request.Form(FormName),"""",""))
Else
attributes.text = Replace(Request.Form(FormName),"""","")
End If
node.attributes.setNamedItem(attributes)
End If
Next
Set attributes=XmlDoc.createAttribute("MasterName")
attributes.text = Dvbbs.Membername
node.attributes.setNamedItem(attributes)
Set attributes=XmlDoc.createAttribute("MasterUserID")
attributes.text = Dvbbs.UserID
node.attributes.setNamedItem(attributes)
Set attributes=XmlDoc.createAttribute("MasterIP")
attributes.text = Dvbbs.UserTrueIP
node.attributes.setNamedItem(attributes)
Set attributes=XmlDoc.createAttribute("AddTime")
attributes.text = AddTime
node.attributes.setNamedItem(attributes)
Set attributes=XmlDoc.createAttribute("LastTime")
attributes.text = DateAdd("s", -Updatetime,now())
node.attributes.setNamedItem(attributes)
Set ChildNode = XmlDoc.createNode(1,"Search","")
Set createCDATASection=XmlDoc.createCDATASection(replace(NewsSql,"]]>",""))
ChildNode.appendChild(createCDATASection)
node.appendChild(ChildNode)
Set ChildNode = XmlDoc.createNode(1,"Skin_Head","")
Set createCDATASection=XmlDoc.createCDATASection(replace(Skin_Head,"]]>","]]>"))
ChildNode.appendChild(createCDATASection)
node.appendChild(ChildNode)
Set ChildNode = XmlDoc.createNode(1,"Skin_Main","")
Set createCDATASection=XmlDoc.createCDATASection(replace(Skin_Main,"]]>","]]>"))
ChildNode.appendChild(createCDATASection)
node.appendChild(ChildNode)
Set ChildNode = XmlDoc.createNode(1,"Skin_Footer","")
Set createCDATASection=XmlDoc.createCDATASection(replace(Skin_Footer,"]]>","]]>"))
ChildNode.appendChild(createCDATASection)
node.appendChild(ChildNode)
''特殊版面增加
If NewsType = "3" Then
Set ChildNode = XmlDoc.createNode(1,"Board_Input0","")
Set createCDATASection=XmlDoc.createCDATASection(Replace(Request.Form("Board_Input0"),"]]>","]]>"))
ChildNode.appendChild(createCDATASection)
node.appendChild(ChildNode)
Set ChildNode = XmlDoc.createNode(1,"Board_Input1","")
Set createCDATASection=XmlDoc.createCDATASection(Replace(Request.Form("Board_Input1"),"]]>","]]>"))
ChildNode.appendChild(createCDATASection)
node.appendChild(ChildNode)
Set ChildNode = XmlDoc.createNode(1,"Board_Input2","")
Set createCDATASection=XmlDoc.createCDATASection(Replace(Request.Form("Board_Input2"),"]]>","]]>"))
ChildNode.appendChild(createCDATASection)
node.appendChild(ChildNode)
Set ChildNode = XmlDoc.createNode(1,"Board_Input3","")
Set createCDATASection=XmlDoc.createCDATASection(Replace(Request.Form("Board_Input3"),"]]>","]]>"))
ChildNode.appendChild(createCDATASection)
node.appendChild(ChildNode)
Set ChildNode = XmlDoc.createNode(1,"Board_Input4","")
Set createCDATASection=XmlDoc.createCDATASection(Replace(Request.Form("Board_Input4"),"]]>","]]>"))
ChildNode.appendChild(createCDATASection)
node.appendChild(ChildNode)
ElseIf NewsType = "6" Then
Set ChildNode = XmlDoc.createNode(1,"Board_Input0","")
Set createCDATASection=XmlDoc.createCDATASection(Replace(Request.Form("Board_Input0"),"]]>","]]>"))
ChildNode.appendChild(createCDATASection)
node.appendChild(ChildNode)
End If
XmlDoc.documentElement.appendChild(node)
End Sub
'帖子調用
Sub NewsType_1()
Dim News_Total,Topiclen,Orders,TopicType,Boardid,BoardLimit,BoardType,UserIDList,Sdate
News_Total = Dvbbs.CheckNumeric(Request.Form("Total"))
Topiclen = Dvbbs.CheckNumeric(Request.Form("Topiclen"))
Orders = Request.Form("Orders")
Sdate = Dvbbs.CheckNumeric(Request.Form("Sdate"))
TopicType = Request.Form("TopicType")
Boardid = Dvbbs.CheckNumeric(Request.Form("Boardid"))
BoardLimit = Dvbbs.CheckNumeric(Request.Form("BoardLimit"))
BoardType = Request.Form("BoardType")
UserIDList = Request.Form("UserIDList")
If News_Total = 0 Then News_Total = 10
Dim OrderBy,Searchstr,SearchBoard,Tempstr
NewsSql = "SELECT TOP "& News_Total
If Orders = "3" Then
OrderBy = " Hits Desc, "
ElseIf orders = "1" or orders = "2" Then
OrderBy = " Dateandtime Desc, "
End If
'指定版面
If Boardid>0 Then
SearchBoard = " AND Boardid = " & Boardid
If BoardType > "0" Then
Tempstr = GetChildBoardID(Boardid)
If BoardType = "2" Then
Tempstr = Boardid & "," &Tempstr
End If
If Tempstr<>"" Then
Tempstr = Left(Tempstr,InStrRev(Tempstr, ",")-1)
SearchBoard = " AND Boardid in (" & Tempstr &") "
End If
End If
Else
Tempstr = Cstr(Boardid)
End If
'限制不顯示特列版面
If BoardLimit="1" and Tempstr<>"" Then
Tempstr = GetBoardid(Tempstr)
If Boardid<>0 Then
SearchBoard = " AND Boardid in (" & Tempstr &") "
Else
If Tempstr<>"" Then
SearchBoard = " AND Boardid not in (" & Tempstr &") "
End If
End If
End If
If SearchBoard<>"" Then
Searchstr = SearchBoard
End If
If UserIDList<>"" Then
If Instr(UserIDList,",") Then
If IsNumeric(Replace(UserIDList,",","")) Then
Searchstr = Searchstr & " AND PostUserID IN ("&UserIDList&")"
End If
Else
UserIDList = Dvbbs.CheckNumeric(UserIDList)
If UserIDList > 0 Then
Searchstr = Searchstr & " AND PostUserID = "&UserIDList
End If
End If
End If
If Sdate>0 Then
If IsSqlDataBase=1 Then
Searchstr = Searchstr & " AND Datediff(day,DateAndTime,"&SqlNowString&") < " & Sdate
Else
Searchstr = Searchstr & " AND Datediff('d',DateAndTime,"&SqlNowString&") < " & Sdate
End If
End If
If TopicType = 1 Then '顯示精華主題
If Searchstr<>"" Then
Searchstr = " Where "& Mid(Searchstr,InStr(Searchstr, "AND")+3)
End If
NewsSql = NewsSql & " PostUserName,Title,Rootid,Boardid,Dateandtime,Announceid,Id,Expression From [Dv_BestTopic] " & Searchstr & " ORDER BY " & OrderBy & " Id Desc"
ElseIf TopicType=2 Then '顯示主題和回復
NewsSql = NewsSql & " UserName,Topic,Rootid,Boardid,Dateandtime,Announceid,Body,Expression From "&Dvbbs.NowUseBBS&" Where not (Boardid in (444,777)) "& Searchstr &" ORDER BY "& OrderBy &" AnnounceID Desc"
Else '顯示主題
If Orders = 2 Then OrderBy = " Lastposttime Desc, "
NewsSql = NewsSql & " PostUserName,Title,Topicid,Boardid,Dateandtime,Topicid,Hits,Expression,LastPost From [Dv_topic] Where not (Boardid in (444,777)) "& Searchstr & " ORDER BY "& OrderBy &" Topicid Desc"
End If
End Sub
'信息調用
Sub NewsType_2()
End Sub
'版塊調用
Sub NewsType_3()
End Sub
'會員調用
Sub NewsType_4()
Dim News_Total,Orders
News_Total = Dvbbs.CheckNumeric(Request.Form("Total"))
Orders = Request.Form("Orders")
Dim OrderBy
If News_Total = 0 Then News_Total = 10
NewsSql = "SELECT TOP "& News_Total &" UserID,UserName,UserTopic,UserPost,UserIsBest,UserWealth,UserCP,UserEP,UserDel,UserSex,JoinDate,UserLogins From [Dv_user] "
Select Case Request.Form("UserOrders")
Case "0"
'OrderBy = " JoinDate desc, "
OrderBy = ""
Case "1"
OrderBy = " UserPost desc, "
Case "2"
OrderBy = " UserTopic desc, "
Case "3"
OrderBy = " UserIsBest desc, "
Case "4"
OrderBy = " UserWealth desc, "
Case "5"
OrderBy = " UserEP desc, "
Case "6"
OrderBy = " UserCP desc, "
Case "7"
OrderBy = " UserDel desc, "
Case "8"
OrderBy = " UserLogins desc, "
End Select
NewsSql = NewsSql & " ORDER BY " & OrderBy & " UserID desc "
End Sub
'公告調用
Sub NewsType_5()
Dim News_Total,Boardid
News_Total = Dvbbs.CheckNumeric(Request.Form("Total"))
Boardid = Dvbbs.CheckNumeric(Request.Form("Boardid"))
If News_Total = 0 Then News_Total = 10
NewsSql = "SELECT TOP "& News_Total &" ID,Boardid,Title,UserName,AddTime FROM [Dv_bbsnews] "
If Boardid > 0 Then
NewsSql = NewsSql & " WHERE Boardid="& Boardid
End If
NewsSql = NewsSql & " ORDER BY ID DESC"
End Sub
'展區調用
Sub NewsType_6()
Dim News_Total,Boardid,FileOrders,BoardLock,FileType,BoardLimit
Dim Searchstr,OrderBy
News_Total = Dvbbs.CheckNumeric(Request.Form("Total"))
Boardid = Dvbbs.CheckNumeric(Request.Form("Boardid"))
FileOrders = Request.Form("FileOrders")
BoardLock = Dvbbs.CheckNumeric(Request.Form("BoardLock"))
FileType = Request.Form("FileType")
BoardLimit = Dvbbs.CheckNumeric(Request.Form("BoardLimit"))
If News_Total = 0 Then News_Total = 8
If FileType<>"all" Then
FileType = Dvbbs.CheckNumeric(FileType)
Searchstr = " AND F_Type = "&FileType
End If
'指定版面
Dim SearchBoard
Dim Rs,Tempstr
If Boardid > 0 Then
Select Case BoardLock
Case 1
SearchBoard = " AND F_BoardID <> " & Boardid
Tempstr = "0"
Case 3,4
Tempstr = GetChildBoardID(Boardid)
If BoardLock = 4 Then
Tempstr = Boardid & "," &Tempstr
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -