📄 admin_forum_details.asp
字号:
<% @ Language=VBScript %>
<% Option Explicit %>
<!--#include file="admin_common.asp" -->
<%
'****************************************************************************************
'** Copyright Notice
'**
'** Web Wiz Forums(TM)
'** http://www.webwizforums.com
'**
'** Copyright (C)2001-2008 Web Wiz(TM). All Rights Reserved.
'**
'** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS UNDER LICENSE FROM 'WEB WIZ'.
'**
'** IF YOU DO NOT AGREE TO THE LICENSE AGREEMENT THEN 'WEB WIZ' IS UNWILLING TO LICENSE
'** THE SOFTWARE TO YOU, AND YOU SHOULD DESTROY ALL COPIES YOU HOLD OF 'WEB WIZ' SOFTWARE
'** AND DERIVATIVE WORKS IMMEDIATELY.
'**
'** If you have not received a copy of the license with this work then a copy of the latest
'** license contract can be found at:-
'**
'** http://www.webwizguide.com/license
'**
'** For more information about this software and for licensing information please contact
'** 'Web Wiz' at the address and website below:-
'**
'** Web Wiz, Unit 10E, Dawkins Road Industrial Estate, Poole, Dorset, BH15 4JD, England
'** http://www.webwizguide.com
'**
'** Removal or modification of this copyright notice will violate the license contract.
'**
'****************************************************************************************
'*************************** SOFTWARE AND CODE MODIFICATIONS ****************************
'**
'** MODIFICATION OF THE FREE EDITIONS OF THIS SOFTWARE IS A VIOLATION OF THE LICENSE
'** AGREEMENT AND IS STRICTLY PROHIBITED
'**
'** If you wish to modify any part of this software a license must be purchased
'**
'****************************************************************************************
'Set the response buffer to true
Response.Buffer = True
'Dimension variables
Dim rsCommon2 'Holds a secound recordset for the page
Dim strMode 'holds the mode of the page, set to true if changes are to be made to the database
Dim strMode2 'Holds if this is a sub forum
Dim strForumName 'Holds the name of the forum
Dim strForumDescription 'Holds the discription of the forum
Dim strForumPassword 'Holds the forum password
Dim strForumCode 'Holds a security code for the forum if it is password protected
Dim strCatName 'Holds the name of the category
Dim intCatID 'Holds the ID number of the category
Dim intSelCatID 'Holds the selected cat id
Dim intSubID 'Holds the sub forum ID
Dim blnLocked
Dim blnHide
Dim intShowTopicsFrom 'Holds the amount of time to show topics in
Dim intUserGroupID 'Holds the group ID
Dim intMainForumID 'Holds the ID of the main forum is sub forum mode
Dim strUserCode 'Holds user code
Dim intForumOrderNum 'Holds the forum order number
'Initilise variables
intCatID = 0
intShowTopicsFrom = 0
intForumID = 0
blnLocked = False
blnHide = False
intForumOrderNum = 0
'Read in the details
intForumID = CInt(Request.QueryString("FID"))
strForumPassword = LCase(Request.Form("password"))
strMode = Request("mode")
strMode2 = Request("sub")
'Intialise the ADO recordset object
Set rsCommon2 = Server.CreateObject("ADODB.Recordset")
'If this is a post back update the database
If (strMode = "edit" OR strMode = "new") AND Request.Form("postBack") AND blnDemoMode = False Then
'If this is a sub forum do things a little different
If strMode2 = "true" Then
'Read in the sub ID
intMainForumID = CInt(Request.Form("mainForum"))
intSubID = intMainForumID
'Get the Cat ID for this sub forum from the database
strSQL = "SELECT " & strDbTable & "Forum.Cat_ID From " & strDbTable & "Forum WHERE " & strDbTable & "Forum.Forum_ID= " & intMainForumID & ";"
'Query the database
rsCommon.Open strSQL, adoCon
'If there is a record get the Cat ID
If NOT rsCommon.EOF Then intCatID = CInt(rsCommon("Cat_ID"))
'Reset rsCommon
rsCommon.Close
'Else main forums
Else
'Set the sub ID to 0
intSubID = 0
'Read in the cat ID for main forums
intCatID = CInt(Request.Form("cat"))
'If this is an edit then update any sub forums
If strMode = "edit" Then
'If there are any sub forums we need to update the Cat ID for them
strSQL = "UPDATE " & strDbTable & "Forum " & _
"SET Cat_ID = " & intCatID & " " & _
"WHERE (Sub_ID = " & intForumID & ");"
'Write to database
adoCon.Execute(strSQL)
End If
End If
'If this is new we need a different query and also need to get the number of forum in cat for forum order
If strMode = "new" Then
'SQL to colunt the number of forum in this cat
strSQL = "SELECT Count(" & strDbTable & "Forum.Forum_ID) AS forumCount " & _
"FROM " & strDbTable & "Forum " & _
"WHERE " & strDbTable & "Forum.Cat_ID = " & intCatID & ";"
'Query the database
rsCommon.Open strSQL, adoCon
'Get the number of forums in cat
If NOT rsCommon.EOF Then intForumOrderNum = CInt(rsCommon("forumCount")) + 1
'Close recordset
rsCommon.Close
'Initalise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT " & strDbTable & "Forum.* " & _
"From " & strDbTable & "Forum " & _
"ORDER BY " & strDbTable & "Forum.Forum_ID DESC;"
'Else use a different query if we are updating
Else
strSQL = "SELECT " & strDbTable & "Forum.Cat_ID, " & strDbTable & "Forum.Forum_ID, " & strDbTable & "Forum.Sub_ID, " & strDbTable & "Forum.Forum_name, " & strDbTable & "Forum.Forum_description, " & strDbTable & "Forum.Locked, " & strDbTable & "Forum.Hide, " & strDbTable & "Forum.Show_topics, " & strDbTable & "Forum.Password, " & strDbTable & "Forum.Forum_code " & _
"From " & strDbTable & "Forum " & _
"WHERE " & strDbTable & "Forum.Forum_ID = " & intForumID & ";"
End If
'Set the cursor type property of the record set to Dynamic so we can navigate through the record set
rsCommon.CursorType = 2
'Set the Lock Type for the records so that the record set is only locked when it is updated
rsCommon.LockType = 3
'Query the database
rsCommon.Open strSQL, adoCon
With rsCommon
'If this is a new one add new
If strMode = "new" Then .AddNew
'Update the recordset
.Fields("Cat_ID") = intCatID
.Fields("Sub_ID") = intSubID
If strMode = "new" Then .Fields("Forum_Order") = intForumOrderNum
If strMode = "new" Then .Fields("Last_post_author_ID") = lngLoggedInUserID 'Changed to use the admins logged in ID number to prevent errors of forums not displaying if the built in admin account is deleted
If strMode = "new" Then .Fields("Last_post_date") = internationalDateTime("2001-01-01 00:00:00")
.Fields("Forum_name") = Request.Form("forumName")
.Fields("Forum_description") = Request.Form("description")
.Fields("Locked") = CBool(Request.Form("locked"))
.Fields("Hide") = CBool(Request.Form("hide"))
.Fields("Show_topics") = CInt(Request.Form("showTopics"))
'See if there is a password if not the filed must be null
If Request.Form("remove") Then
.Fields("Password") = null
.Fields("Forum_code") = null
'Add the new or updated password and usercode to the database
ElseIf strForumPassword <> "" Then
'Encrypt the forum password
strForumPassword = HashEncode(strForumPassword)
'Calculate a code for the forum
strForumCode = userCode(strForumName)
'Place in recordset
.Fields("Password") = strForumPassword
.Fields("Forum_code") = strForumCode
End If
'Update the database with the new user's details
.Update
End With
'Re-run the query to read in the updated recordset from the database
'We need to do this to get the new forum ID
rsCommon.Requery
'Read in the new forum ID
intForumID = CInt(rsCommon("Forum_ID"))
'Close RS
rsCommon.Close
'Set the permissions for this forum
'Read in the groups from db
'Initalise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT " & strDbTable & "Group.Group_ID, " & strDbTable & "Group.Name, " & strDbTable & "Group.Starting_group FROM " & strDbTable & "Group ORDER BY " & strDbTable & "Group.Group_ID ASC;"
'Query the database
rsCommon.Open strSQL, adoCon
'Loop through all the categories in the database
Do while NOT rsCommon.EOF
'Get the group ID
intUserGroupID = CInt(rsCommon("Group_ID"))
'Due to some issues when updating from previous versions delete permission before reseting
strSQL = "DELETE " & strDbTable & "Permissions FROM " & strDbTable & "Permissions WHERE " & strDbTable & "Permissions.Group_ID = " & intUserGroupID & " AND " & strDbTable & "Permissions.Forum_ID = " & intForumID & ";"
'Write to database
adoCon.Execute(strSQL)
'Read in the permssions from the db for this group (not very efficient doing it this way, but this page won't be run often)
'Initalise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT " & strDbTable & "Permissions.* FROM " & strDbTable & "Permissions WHERE " & strDbTable & "Permissions.Group_ID = " & intUserGroupID & " AND " & strDbTable & "Permissions.Forum_ID = " & intForumID & ";"
'Set the cursor type property of the record set to Dynamic so we can navigate through the record set
rsCommon2.CursorType = 2
'Set the Lock Type for the records so that the record set is only locked when it is updated
rsCommon2.LockType = 3
'Query the database
rsCommon2.Open strSQL, adoCon
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -