📄 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 + -