<%
'#################################################################################
'## Copyright (C) 2000-02 Michael Anderson, Pierre Gorissen,
'## Huw Reddick and Richard Kinser
'##
'## This program is free software; you can redistribute it and/or
'## modify it under the terms of the GNU General Public License
'## as published by the Free Software Foundation; either version 2
'## of the License, or any later version.
'##
'## All copyright notices regarding Snitz Forums 2000
'## must remain intact in the scripts and in the outputted HTML
'## The "powered by" text/logo with a link back to
'## http://forum.snitz.com in the footer of the pages MUST
'## remain visible when the pages are viewed on the internet or intranet.
'##
'## This program is distributed in the hope that it will be useful,
'## but WITHOUT ANY WARRANTY; without even the implied warranty of
'## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
'## GNU General Public License for more details.
'##
'## You should have received a copy of the GNU General Public License
'## along with this program; if not, write to the Free Software
'## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
'##
'## Support can be obtained from support forums at:
'## http://forum.snitz.com
'##
'## Correspondence and Marketing Questions can be sent to:
'## reinhold@bigfoot.com
'##
'## or
'##
'## Snitz Communications
'## C/O: Michael Anderson
'## PO Box 200
'## Harpswell, ME 04079
'#################################################################################
%>
<!--#INCLUDE FILE="config.asp"-->
<!--#INCLUDE FILE="inc_sha256.asp"-->
<!--#INCLUDE FILE="inc_header.asp" -->
<!--#INCLUDE FILE="inc_func_secure.asp" -->
<!--#INCLUDE FILE="inc_func_member.asp" -->
<!--#INCLUDE FILE="inc_moderation.asp" -->
<!--#INCLUDE FILE="inc_subscription.asp" -->
<!--#INCLUDE FILE="inc_func_count.asp" -->
<!--#INCLUDE FILE="cal_post_info1.asp" -->
<%
if request("ARCHIVE") = "true" then
strActivePrefix = strTablePrefix & "A_"
ArchiveView = "true"
else
strActivePrefix = strTablePrefix
ArchiveView = ""
end if
'Topic Move Check
Dim blnTopicMoved
Dim fSubscription
'####### Poll Mod #########
Dim txtAns()
'##########################
fsubscription = 1
blnTopicMoved = false
if strAuthType = "db" and strDBNTUserName = "" and len(Request.Form("Password")) <> 64 then
strPassword = sha256("" & Request.Form("Password"))
else
strPassword = ChkString(Request.Form("Password"),"SQLString")
end if
if strAuthType = "db" and strDBNTUserName = "" then
strDBNTUserName = Request.Form("UserName")
if mLev = 0 then mLev = cLng(chkUser(strDBNTUserName, strPassword,-1))
end if
MethodType = chkString(Request.Form("Method_Type"),"SQLString")
if Request.Form("CAT_ID") <> "" then
if IsNumeric(Request.Form("CAT_ID")) = True then
Cat_ID = cLng(Request.Form("CAT_ID"))
else
Response.Redirect("default.asp")
end if
end if
if Request.Form("FORUM_ID") <> "" then
if IsNumeric(Request.Form("FORUM_ID")) = True then
Forum_ID = cLng(Request.Form("FORUM_ID"))
else
Response.Redirect("default.asp")
end if
end if
if Request.Form("TOPIC_ID") <> "" then
if IsNumeric(Request.Form("TOPIC_ID")) = True then
Topic_ID = cLng(Request.Form("TOPIC_ID"))
else
Response.Redirect("default.asp")
end if
end if
if Request.Form("REPLY_ID") <> "" then
if IsNumeric(Request.Form("REPLY_ID")) = True then
Reply_ID = cLng(Request.Form("REPLY_ID"))
else
Response.Redirect("default.asp")
end if
end if
if Request.Form("Subscription") <> "" then
fSubscription = cLng(Request.Form("Subscription"))
else
fSubscription = 0
end if
if Request.Form("cookies") = "yes" then
strSelectSize = Request.Form("SelectSize")
end if
if strSelectSize = "" or IsNull(strSelectSize) then
strSelectSize = Request.Cookies(strUniqueID & "strSelectSize")
end if
if not(IsNull(strSelectSize)) and strSelectSize <> "" then
if strSetCookieToForum = 1 then
Response.Cookies(strUniqueID & "strSelectSize").Path = strCookieURL
else
Response.Cookies(strUniqueID & "strSelectSize").Path = "/"
end if
Response.Cookies(strUniqueID & "strSelectSize") = strSelectSize
Response.Cookies(strUniqueID & "strSelectSize").expires = dateAdd("yyyy", 1, strForumTimeAdjust)
end if
if MethodType = "Edit" or _
MethodType = "EditTopic" or _
MethodType = "Reply" or _
MethodType = "ReplyQuote" or _
MethodType = "TopicQuote" then
'## check if topic exists in TOPICS table
set rsTCheck = my_Conn.Execute ("SELECT TOPIC_ID FROM " & strActivePrefix & "TOPICS WHERE TOPIC_ID = " & Topic_ID)
if rsTCheck.EOF or rsTCheck.BOF then
set rsTCheck = nothing
Go_Result "نأسف ، هذا الموضوع غير متوفر الان", 0
end if
rsTCheck.Close
set rsTCheck = nothing
end if
set rs = Server.CreateObject("ADODB.RecordSet")
err_Msg = ""
ok = ""
if ArchiveView <> "" then
if MethodType = "Reply" or _
MethodType = "ReplyQuote" or _
MethodType = "TopicQuote" then
Go_Result "نأسف غير متاح بالارشيف", 0
end if
end if
if MethodType = "Edit" then
'## Forum_SQL - Get the author of the reply
strSql = "SELECT R_AUTHOR "
strSql = strSql & " FROM " & strActivePrefix & "REPLY "
strSql = strSql & " WHERE REPLY_ID = " & REPLY_ID
set rsStatus = my_Conn.Execute(strSql)
if rsStatus.EOF or rsStatus.BOF then
set rsStatus = nothing
Go_Result "برجاء عدم المحاولة بتعديل الوصلة<br />to gain access to locked Forums/Categories.", 0
else
strReplyAuthor = rsStatus("R_AUTHOR")
rsStatus.close
end if
set rsStatus = nothing
end if
if MethodType = "Edit" or _
MethodType = "EditTopic" or _
MethodType = "Reply" or _
MethodType = "ReplyQuote" or _
MethodType = "Topic" or _
MethodType = "TopicQuote" then
if MethodType <> "Topic" then
'## Forum_SQL - Find out if the Category, Forum or Topic is Locked or Un-Locked and if it Exists
strSql = "SELECT C.CAT_STATUS, C.CAT_NAME, " &_
"F.FORUM_ID, F.F_STATUS, F.F_TYPE, F.F_SUBJECT, " &_
"T.T_STATUS, T.T_AUTHOR, T.T_SUBJECT " &_
" FROM " & strTablePrefix & "CATEGORY C, " &_
strTablePrefix & "FORUM F, " &_
strActivePrefix & "TOPICS T" &_
" WHERE C.CAT_ID = T.CAT_ID " &_
" AND F.FORUM_ID = T.FORUM_ID " &_
" AND T.TOPIC_ID = " & Topic_ID & ""
else
'## Forum_SQL - Find out if the Category or Forum is Locked or Un-Locked and if it Exists
strSql = "SELECT C.CAT_STATUS, C.CAT_NAME, " &_
"F.FORUM_ID, F.F_STATUS, F.F_TYPE, F.F_SUBJECT " &_
" FROM " & strTablePrefix & "CATEGORY C, " &_
strTablePrefix & "FORUM F" &_
" WHERE C.CAT_ID = F.CAT_ID " &_
" AND F.FORUM_ID = " & Forum_ID & ""
end if
set rsStatus = my_Conn.Execute(strSql)
if rsStatus.EOF or rsStatus.BOF then
set rsStatus = nothing
Go_Result "برجاء عدم المحاولة لتعديل الوصلة<br />to gain access to locked Forums/Categories.", 0
else
blnCStatus = rsStatus("CAT_STATUS")
strCatTitle = rsStatus("CAT_NAME")
blnFStatus = rsStatus("F_STATUS")
Forum_ID = rsStatus("FORUM_ID")
Forum_Type = rsStatus("F_TYPE")
strForum_Title = rsStatus("F_SUBJECT")
if MethodType <> "Topic" then
blnTStatus = rsStatus("T_STATUS")
strTopicAuthor = rsStatus("T_AUTHOR")
strTopicTitle = rsStatus("T_SUBJECT")
else
blnTStatus = 1
end if
rsStatus.close
end if
set rsStatus = nothing
if mLev = 4 then
AdminAllowed = 1
ForumChkSkipAllowed = 1
elseif mLev = 3 then
if chkForumModerator(Forum_ID, ChkString(strDBNTUserName, "decode")) = "1" then
AdminAllowed = 1
ForumChkSkipAllowed = 1
else
if lcase(strNoCookies) = "1" then
AdminAllowed = 1
ForumChkSkipAllowed = 0
else
AdminAllowed = 0
ForumChkSkipAllowed = 0
end if
end if
elseif lcase(strNoCookies) = "1" then
AdminAllowed = 1
ForumChkSkipAllowed = 0
else
AdminAllowed = 0
ForumChkSkipAllowed = 0
end if
select case MethodType
case "Topic"
if (Forum_Type = 1) then
Go_Result "انت تحاول الكتابة بوصلة موقع",0
end if
if (blnCStatus = 0) and (AdminAllowed = 0) then
Go_Result "انت تحاول الكتابة بقسم مغلق", 0
end if
if (blnFStatus = 0) and (AdminAllowed = 0) then
Go_Result "انت تحاول الكتابة بمنتدى مغلق", 0
end if
case "EditTopic"
if ((blnCStatus = 0) or (blnFStatus = 0) or (blnTStatus = 0)) and (AdminAllowed = 0) then
Go_Result "انت تحاول التعديل بموضوع مغلق", 0
end if
case "Reply", "ReplyQuote", "TopicQuote"
if ((blnCStatus = 0) or (blnFStatus = 0) or (blnTStatus = 0)) and (AdminAllowed = 0) then
Go_Result "انت تحاول كتابة الرد على موضوع مغبق", 0
end if
case "Edit"
if ((blnCStatus = 0) or (blnFStatus = 0) or (blnTStatus = 0)) and (AdminAllowed = 0) then
Go_Result "انت تحاول تعديل الرد على موضوع مغلق", 0
end if
end select
if strPrivateForums = "1" and ForumChkSkipAllowed = 0 then
if not(chkForumAccess(Forum_ID,MemberID,false)) then
Go_Result "ليس لديك صلاحية للكتابة بهذا المنتدى", 0
end if
end if
end if
' If Creating a new topic or reply, the subscription and moderation capabilities will need to be checked.
Moderation = "No"
'############# Merge Topic Mod ################
'Added "or _ MethodType = "MergeTopic"" in following if...then statement
if MethodType = "Topic" or _
MethodType = "Edit" or _
MethodType = "Reply" or _
MethodType = "ReplyQuote" or _
MethodType = "TopicQuote" or _
MethodType = "Forum" or _
MethodType = "EditForum" or _
MethodType = "MergeTopic" then
if strModeration > 0 or strSubscription > 0 then
'## Forum_SQL - Get the Cat_Subscription, Cat_Moderation, Forum_Subscription, Forum_Moderation
strSql = "SELECT C.CAT_MODERATION, C.CAT_SUBSCRIPTION, C.CAT_NAME "
if MethodType <> "Forum" then
strSql = strSql & ", F.F_MODERATION, F.F_SUBSCRIPTION "
end if
strsql = strsql & " FROM " & strTablePrefix & "CATEGORY C"
if MethodType <> "Forum" then
strSql = strSql & ", " & strTablePrefix & "FORUM F"
end if
strSql = strSql & " WHERE C.CAT_ID = " & Cat_ID
if MethodType <> "Forum" then
strSql = strSql & " AND F.FORUM_ID = " & Forum_ID
end if
set rsCheck = my_Conn.Execute (strSql)
If not rsCheck.EOF Then
CatName = rsCheck("CAT_NAME")
CatSubscription = rsCheck("CAT_SUBSCRIPTION")
CatModeration = rsCheck("CAT_MODERATION")
if MethodType <> "Forum" then
ForumSubscription = rsCheck("F_SUBSCRIPTION")
ForumModeration = rsCheck("F_MODERATION")
end if
rsCheck.Close
End If
set rsCheck = nothing
if MethodType <> "Forum" then
'## Moderators and Admins are not subject to Moderation
if strModeration = 0 or mlev = 4 or chkForumModerator(Forum_ID, strDBNTUserName) = "1" then
Moderation = "No"
'## Is Moderation allowed on the category?
elseif CatModeration = 1 then
'## if this is a topic, is forum moderation set to all posts or topic?
if (ForumModeration = 1 or ForumModeration = 2) and (MethodType = "Topic") then
Moderation = "Yes"
'## if this is a reply, is forum moderation set to all posts or reply?
'####################### Merge Topic Mod #############################
' Added "or MethodType = "MergeTopic"" in following line
elseif (ForumModeration = 1 or ForumModeration = 3) and (MethodType <> "Topic" or MethodType = "MergeTopic") then
'#####################################################################
Moderation = "Yes"
end if
end if
end if
end if
end if
if MethodType = "Edit" then
member = cLng(ChkUser(strDBNTUserName, strPassword, strReplyAuthor))
Select Case Member
case 0 '## Invalid Pword
Go_Result "اسم العضو او كلمة السر غير صحيحة", 0
Response.End
case 1 '## Author of Post so OK
'## Do Nothing
case 2 '## Normal User - Not Authorised
Go_Result "المشرف العام او المراقب او كاتب الموضوع فقط لهم الصلاحية بتعديل المشاركة", 0
Response.End
case 3 '## Moderator so OK - check the Moderator of this forum
if chkForumModerator(Forum_ID, strDBNTUserName) = "0" then
Go_Result "المشرف العام او المراقب او كاتب الموضوع فقط لهم الصلاحية بتعديل المشاركة", 0
end if
if strReplyAuthor = intAdminMemberID and MemberID <> intAdminMemberID then
Go_Result "مشرف المنتدى فقط له حق تعديل هذه المشاركة", 0
end if
case 4 '## Admin so OK
if strReplyAuthor = intAdminMemberID and MemberID <> intAdminMemberID then
Go_Result "مشرف المنتدى فقط له حق تعديل هذه المشاركة", 0
end if
case else
Go_Result cstr(Member), 0
Response.End
end select
txtMessage = ChkString(Request.Form("Message"),"message")
Err_Msg = ""
if txtMessage = " " then
Err_Msg = Err_Msg & "<li>يجب كتابة الرسالة للرد على الموضوع</li>"
end if
if Err_Msg = "" then
'## Forum_SQL - Do DB Update
strSql = "UPDATE " & strActivePrefix & "REPLY "
strSql = strSql & " SET R_MESSAGE = '" & txtMessage & "'"
if Request.Form("sig") = "yes" and strDSignatures = "1" then
strSql = strSql & ", R_SIG = 1"
else
strSql = strSql & ", R_SIG = 0"
end if
if mLev < 4 and strEditedByDate = "1" then
strSql = strSql & ", R_LAST_EDIT = '" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", R_LAST_EDITBY = " & MemberID
end if
strSql = strSql & " WHERE REPLY_ID=" & Reply_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
if mLev <> 4 and Moderation = "No" then
'## Forum_SQL - Update Last Post
strSql = " UPDATE " & strTablePrefix & "FORUM"
strSql = strSql & " SET F_LAST_POST = '" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", F_LAST_POST_AUTHOR = " & MemberID
strSql = strSql & ", F_LAST_POST_TOPIC_ID = " & Topic_ID
strSql = strSql & ", F_LAST_POST_REPLY_ID = " & Reply_ID
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'## Forum_SQL - Update Last Post
strSql = " UPDATE " & strActivePrefix & "TOPICS"
strSql = strSql & " SET T_LAST_POST = '" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", T_LAST_POST_AUTHOR = " & MemberID
strSql = strSql & ", T_LAST_POST_REPLY_ID = " & Reply_ID
strSql = strSql & " WHERE TOPIC_ID = " & Topic_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end if
if Moderation = "No" then
'## Subscribe checkbox start ##
if request.form("TNotify") <> "" then
if request.form("TNotify") = "1" then
AddSubscription "TOPIC", MemberID, Cat_ID, Forum_ID, Topic_ID
else
DeleteSubscription "TOPIC", MemberID, Cat_ID, Forum_ID, Topic_ID
end if
end if
'## Subscribe checkbox end ##
end if
err_Msg = ""
if Err.description <> "" then
Go_Result "خطأ = " & Err.description, 0
Response.End
else
Go_Result "التعديل تم بنجاح", 1
end if
else
Response.Write " <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """ color=""" & strHiLiteFontColor & """>هناك خطأ بالبيانات</font></p>" & vbNewLine & _
" <table align=""center"" border=""0"">" & vbNewLine & _
" <tr>" & vbNewLine & _
" <td><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strHiLiteFontColor & """><ul>" & Err_Msg & "</ul></font></td>" & vbNewLine & _
" </tr>" & vbNewLine & _
" </table>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """><a href=""JavaScript:history.go(-1)"">الرجوع لتسجيل البيانات</a></font></p>" & vbNewLine
end if
end if
if MethodType = "EditTopic" then
member = cLng(ChkUser(strDBNTUserName, strPassword, strTopicAuthor))
select case Member
case 0 '## Invalid Pword
Go_Result "اسم العضو او كلمة السر غير صحيحة", 0
Response.End
case 1 '## Author of Post so OK
'## Do Nothing
case 2 '## Normal User - Not Authorised
Go_Result "المشرف العام او المراقب او كاتب الموضوع فقط لهم الصلاحية بتعديل المشاركة", 0
Response.End
case 3 '## Moderator so
if chkForumModerator(Forum_ID, strDBNTUserName) = "0" then
Go_Result "المشرف العام او المراقب او كاتب الموضوع فقط لهم الصلاحية بتعديل المشاركة", 0
end if
if strTopicAuthor = intAdminMemberID and MemberID <> intAdminMemberID then
Go_Result "مشرف المنتدى فقط له حق تعديل هذه المشاركة", 0
end if
case 4 '## Admin so OK
if strTopicAuthor = intAdminMemberID and MemberID <> intAdminMemberID then
Go_Result "مشرف المنتدى فقط له حق تعديل هذه المشاركة", 0
end if
'## Do Nothing
case else
Go_Result cstr(Member), 0
Response.End
end select
txtMessage = chkString(Request.Form("Message"),"message")
txtSubject = chkString(Request.Form("Subject"),"SQLString")
' ######################### Poll Mod ########################
if Request.Form("poll") = "1" then
count = Request.Form("count")
ReDim txtAns(CInt(count))
For i = 1 To CInt(count)
if trim(Request.Form("answer" & CStr(i))) <> "" then
txtAns(i) = chkString(Request.Form("answer" & CStr(i)),"SQLString")
else
txtAns(i) = ""
end if
Next
end if
' ###########################################################
if strBadWordFilter = "1" then
txtSubject = chkString(ChkBadWords(Request.Form("Subject")),"SQLString")
end if
Err_Msg = ""
if txtSubject = " " then
Err_Msg = Err_Msg & "<li>يجب كتابة عنوان للموضوع</li>"
end if
if Len(Request.Form("Subject")) > 65 then
Err_Msg = Err_Msg & "<li>عنوان الموضوع لا يزيد عن 65 حرف</li>"
end if
if txtMessage = " " then
Err_Msg = Err_Msg & "<li>يجب ان تكتب رسالة للموضوع</li>"
end if
' ######################### Poll Mod ########################
if Request.Form("poll") = "1" then
count = Request.Form("count")
For i = 1 to CInt(count)
if trim(Request.Form("answer" & CStr(i))) <> "" then
intCount = intCount + 1
end if
Next
if intCount < 2 then
Err_Msg = Err_Msg & "<li>يجب ادخال اجابتين على الاقل للتصويت</li>"
end if
end if
' ###########################################################
if Err_Msg = "" then
'## Set array to pull out CAT_ID and FORUM_ID from dropdown values in post.asp
aryForum = split(Request.Form("Forum"), "|")
'## if the forum we are moving to doesn't have MODERATION, and this topic did have that
'## we are going to have to auto-approve the topic !
AutoApprove = "No"
Moderation = "No"
if Forum_ID <> cLng(aryForum(1)) then
'############################ Poll Mod ############################
strSql = "SELECT " & strTablePrefix & "FORUM.F_POLLS "
strSql = strsql & " FROM " & strTablePrefix & "FORUM "
strSql = strSql & " WHERE " & strTablePrefix & "FORUM.FORUM_ID = " & aryForum(1)
set rsPollCheck = my_Conn.Execute(strSql)
ForumPolls = rsPollCheck("F_POLLS")
rsPollCheck.close
set rsPollCheck = nothing
'##################################################################
blnTopicMoved = true
strSql = "SELECT " & strTablePrefix & "FORUM.F_MODERATION "
strSql = strsql & " FROM " & strTablePrefix & "FORUM "
strSql = strSql & " WHERE " & strTablePrefix & "FORUM.FORUM_ID = " & Forum_ID
set rsForumCheck = my_Conn.Execute (strSql)
If not rsForumCheck.EOF Then
ForumModeration = rsForumCheck("F_MODERATION")
rsForumCheck.Close
End If
set rsForumCheck = nothing
'## Is Moderation allowed on the topic in the old forum ?
if (ForumModeration = 1 or ForumModeration = 2) then
Moderation = "Yes"
end if
if Moderation = "Yes" and Topic_Status > 0 then
strSql = "SELECT " & strTablePrefix & "FORUM.F_MODERATION "
strSql = Strsql & " FROM " & strTablePrefix & "FORUM "
strSql = strSql & " WHERE " & strTablePrefix & "FORUM.FORUM_ID = " & cLng(aryForum(1))
set rsNewForumCheck = my_Conn.Execute (strSql)
If not rsNewForumCheck.EOF Then
NewForumModeration = rsNewForumCheck("F_MODERATION")
rsNewForumCheck.Close
End If
set rsNewForumCheck = nothing
'## Is Moderation allowed on the topic in the new forum ?
if not(NewForumModeration = 1 or NewForumModeration = 2) then
AutoApprove = "Yes"
end if
end if
end if
if Moderation = "Yes" and AutoApprove = "Yes" and Topic_UReplies > 0 then
Go_Result "There was an error = The Topic you are attempting to move to an UnModerated Forum has UnModerated Replies<br />Please either approve or delete them and then try again.", 0
Response.End
end if
'## Forum_SQL
strSql = "UPDATE " & strActivePrefix & "TOPICS "
strSql = strSql & " SET T_MESSAGE = '" & txtMessage & "'"
strSql = strSql & ", T_SUBJECT = '" & txtSubject & "'"
if blnTopicMoved then
strSql = strSql & ", CAT_ID = " & cLng(aryForum(0))
strSql = strSql & ", FORUM_ID = " & cLng(aryForum(1))
if AutoApprove = "Yes" then
strSql = strSql & ", T_STATUS = 1 "
end if
end if
'################# Poll Mod ###################
if Request.Form("lockpoll") = "1" or ForumPolls = "0" then
strSql = strSql & ", T_POLLSTATUS = 0"
else
strSql = strSql & ", T_POLLSTATUS = 1"
end if
'##############################################
if Request.Form("sig") = "yes" and strDSignatures = "1" then
strSql = strSql & ", T_SIG = 1"
else
strSql = strSql & ", T_SIG = 0"
end if
if mLev < 4 and strEditedByDate = "1" then
strSql = strSql & ", T_LAST_EDIT = '" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", T_LAST_EDITBY = " & MemberID
end if
if ForumChkSkipAllowed = 1 then
if Request.Form("sticky") = 1 then
strSql = strSql & ", T_STICKY = " & 1
else
strSql = strSql & ", T_STICKY = " & 0
end if
end if
strSql = strSql & " WHERE TOPIC_ID = " & Topic_ID
%><!--#INCLUDE FILE="cal_post_info2.asp"--><%
my_Conn.Execute(strSql),,adCmdText + adExecuteNoRecords
'############################ Poll Mod ###################################
if Request.Form("poll") = "1" then
'### Update poll answers and counts
strSql = "UPDATE " & strTablePrefix & "POLLS "
strSql = strSql & " SET P_WHOVOTES = '" & chkString(Request.Form("WhoVotes"),"SQLString") & "', "
strSql = strSql & " CAT_ID = " & cLng(aryForum(0)) & ", "
strSql = strSql & " FORUM_ID = " & cLng(aryForum(1)) & ", "
for i = 1 to CInt(Request.Form("count"))
strSql = strSql & "ANSWER" & CStr(i) & " = '" & chkString(txtAns(i),"") & "'"
if txtAns(i) = "" or chkString(Request.Form("resetpoll"),"SQLString") = "1" then
strSql = strSql & ", COUNT" & CStr(i) & " = " & 0
end if
if ubound(txtAns) <> i then
strSql = strSql & ", "
end if
next
strSql = strSql & " WHERE TOPIC_ID = " & Topic_ID
my_Conn.Execute(strSql),,adCmdText + adExecuteNoRecords
if Request.Form("resetpoll") = "1" then
'### Delete poll votes from POLL_VOTES table for this topic
strSql = "DELETE FROM " & strTablePrefix & "POLL_VOTES "
strSql = strSql & "WHERE " & strTablePrefix & "POLL_VOTES.TOPIC_ID = " & Topic_ID
my_Conn.Execute(strSql),,adCmdText + adExecuteNoRecords
end if
end if
'#########################################################################
'# Subscribe checkbox start ##
if request.form("TNotify") <> "" then
if request.form("TNotify") = "1" then
AddSubscription "TOPIC", MemberID, Cat_ID, Forum_ID, Topic_ID
elseif request.form("TNotify") = "0" then
DeleteSubscription "TOPIC", MemberID, Cat_ID, Forum_ID, Topic_ID
end if
end if
'## Subscribe checkbox end ##
if blnTopicMoved then
if strEmail = "1" and strMoveNotify = "1" then DoAutoMoveEmail(Topic_ID)
strSQL = "SELECT F_SUBSCRIPTION FROM " & strTablePrefix & "FORUM WHERE FORUM_ID=" & cLng(aryForum(1))
set rs = my_conn.execute (strSQL)
If not rs.EOF Then
if rs("F_SUBSCRIPTION") < 3 then
strSQL = "DELETE FROM " & strTablePrefix & "SUBSCRIPTIONS WHERE TOPIC_ID=" & Topic_ID
my_conn.execute(strSQL),,adCmdText + adExecuteNoRecords
end if
rs.close
End If
set rs = nothing
end if
if Forum_ID <> cLng(aryForum(1)) then
'## Forum_SQL
strSql = "UPDATE " & strActivePrefix & "REPLY "
strSql = strSql & " SET CAT_ID = " & cLng(aryForum(0))
strSql = strSql & ", FORUM_ID = " & cLng(aryForum(1))
strSql = strSql & " WHERE TOPIC_ID = " & Topic_ID
my_Conn.Execute(strSql),,adCmdText + adExecuteNoRecords
set rs = Server.CreateObject("ADODB.Recordset")
'## if the topic hasn't been approved yet, it isn't counted either
'## so then the topic count doesn't need to be updated
if Moderation = "No" or AutoApprove = "Yes" or Topic_Status < 2 then
'## Forum_SQL - count total number of replies in Topics table
strSql = "SELECT T_REPLIES, T_LAST_POST, T_LAST_POST_AUTHOR "
strSql = strSql & " FROM " & strActivePrefix & "TOPICS "
strSql = strSql & " WHERE TOPIC_ID = " & Topic_ID
set rs = my_Conn.Execute (strSql)
If not rs.EOF Then
intResetCount = rs("T_REPLIES") + 1
strT_Last_Post = rs("T_LAST_POST")
strT_Last_Post_Author = rs("T_LAST_POST_AUTHOR")
rs.Close
End If
set rs = nothing
'## Forum_SQL - Get last_post and last_post_author for MoveFrom-Forum
strSql = "SELECT T_LAST_POST, T_LAST_POST_AUTHOR "
strSql = strSql & " FROM " & strActivePrefix & "TOPICS "
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID & " "
strSql = strSql & " ORDER BY T_LAST_POST DESC;"
set rs = my_Conn.Execute (strSql)
if not rs.eof then
strLast_Post = rs("T_LAST_POST")
strLast_Post_Author = rs("T_LAST_POST_AUTHOR")
else
strLast_Post = ""
strLast_Post_Author = ""
end if
rs.Close
set rs = nothing
if Moderation = "No" or Topic_Status < 2 then
'## Forum_SQL - Update count of replies to a topic in Forum table
strSql = "UPDATE " & strTablePrefix & "FORUM SET "
strSql = strSql & " F_COUNT = F_COUNT - " & intResetCount
if strLast_Post <> "" then
strSql = strSql & ", F_LAST_POST = '" & strLast_Post & "'"
if strLast_Post_Author <> "" then
strSql = strSql & ", F_LAST_POST_AUTHOR = " & strLast_Post_Author
end if
end if
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute(strSql),,adCmdText + adExecuteNoRecords
'## Forum_SQL
strSql = "UPDATE " & strTablePrefix & "FORUM SET "
strSql = strSql & " F_TOPICS = F_TOPICS - 1 "
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute(strSql),,adCmdText + adExecuteNoRecords
end if
'## Forum_SQL - Get last_post and last_post_author for Forum
strSql = "SELECT T_LAST_POST, T_LAST_POST_AUTHOR, T_AUTHOR "
strSql = strSql & " FROM " & strActivePrefix & "TOPICS "
strSql = strSql & " WHERE FORUM_ID = " & cLng(aryForum(1))
strSql = strSql & " ORDER BY T_LAST_POST DESC;"
set rs = my_Conn.Execute (strSql)
if not rs.eof then
strAuthor = getMemberName(strT_Last_Post_Author)
strLast_Post = rs("T_LAST_POST")
strLast_Post_Author = rs("T_LAST_POST_AUTHOR")
else
strAuthor = ""
strLast_Post = ""
strLast_Post_Author = ""
end if
rs.Close
set rs = nothing
'Huw -- Update member count
if (AutoApprove = "Yes") and blnTStatus = 2 and blnTopicMoved then
doUCount(strAuthor)
doULastPost(strAuthor)
end if
'## Forum_SQL - Update count of replies to a topic in Forum table
strSql = "UPDATE " & strTablePrefix & "FORUM SET "
strSql = strSql & " F_COUNT = (F_COUNT + " & intResetCount & ")"
if strLast_Post <> "" then
strSql = strSql & ", F_LAST_POST = '" & strLast_Post & "'"
if strLast_Post_Author <> "" then
strSql = strSql & ", F_LAST_POST_AUTHOR = " & strLast_Post_Author
end if
end if
strSql = strSql & " WHERE FORUM_ID = " & cLng(aryForum(1))
my_Conn.Execute(strSql),,adCmdText + adExecuteNoRecords
'## Forum_SQL
strSql = "UPDATE " & strTablePrefix & "FORUM SET "
strSql = strSql & " F_TOPICS = F_TOPICS + 1 "
strSql = strSql & " WHERE FORUM_ID = " & cLng(aryForum(1))
my_Conn.Execute(strSql),,adCmdText + adExecuteNoRecords
end if
else
if mLev <> 4 and Moderation = "No" AND Topic_Status < 2 then
'## Forum_SQL - Update Last Post
strSql = " UPDATE " & strTablePrefix & "FORUM"
strSql = strSql & " SET F_LAST_POST = '" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", F_LAST_POST_AUTHOR = " & MemberID
strSql = strSql & ", F_LAST_POST_TOPIC_ID = " & Topic_ID
strSql = strSql & ", F_LAST_POST_REPLY_ID = " & 0
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'## Forum_SQL - Update Last Post
strSql = " UPDATE " & strActivePrefix & "TOPICS"
strSql = strSql & " SET T_LAST_POST = '" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", T_LAST_POST_AUTHOR = " & MemberID
strSql = strSql & ", T_LAST_POST_REPLY_ID = " & 0
strSql = strSql & " WHERE TOPIC_ID = " & Topic_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end if
end if
err_Msg = ""
aryForum = ""
if Err.description <> "" then
Go_Result "خطأ = " & Err.description, 0
Response.End
else
Go_Result "التعديل تم بنجاح", 1
end if
else
Response.Write " <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """ color=""" & strHiLiteFontColor & """>هناك خطأ بالبيانات</font></p>" & vbNewLine & _
" <table align=""center"" border=""0"">" & vbNewLine & _
" <tr>" & vbNewLine & _
" <td><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strHiLiteFontColor & """><ul>" & Err_Msg & "</ul></font></td>" & vbNewLine & _
" </tr>" & vbNewLine & _
" </table>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """><a href=""JavaScript:history.go(-1)"">الرجوع لتسجيل البيانات</a></font></p>" & vbNewLine
end if
end if
if MethodType = "Topic" then
'## Forum_SQL
strSql = "SELECT MEMBER_ID, M_LEVEL, M_EMAIL, M_LASTPOSTDATE, " & strDBNTSQLName
if strAuthType = "db" then
strSql = strSql & ", M_PASSWORD "
end if
strSql = strSql & " FROM " & strMemberTablePrefix & "MEMBERS "
strSql = strSql & " WHERE " & strDBNTSQLName & " = '" & ChkString(strDBNTUserName, "SQLString") & "'"
strSql = strSql & " AND " & strMemberTablePrefix & "MEMBERS.M_STATUS = " & 1
if strAuthType = "db" then
strSql = strSql & " AND M_PASSWORD = '" & ChkString(strPassword, "SQLString") &"'"
QuoteOk = (ChkQuoteOk(strDBNTUserName) and ChkQuoteOk(strPassword))
else
QuoteOk = ChkQuoteOk(strDBNTUserName)
end if
set rs = my_Conn.Execute (strSql)
if rs.BOF or rs.EOF or not(QuoteOk) or not (ChkQuoteOk(strPassword))then '## Invalid Password
Go_Result "اسم العضو او كلمة السر غير صحيحة", 0
Response.End
else
if strPrivateForums = "1" and ForumChkSkipAllowed = 0 then
if not(chkForumAccess(Forum_ID, MemberID,false)) then
Go_Result "غير متاح للكتابة بهذا المنتدى", 0
end if
end if
if strFloodCheck = 1 then
if rs("M_LASTPOSTDATE") > DateToStr(DateAdd("s",strFloodCheckTime,strForumTimeAdjust)) and mLev < 3 then
strTimeLimit = replace(strFloodCheckTime, "-", "")
Go_Result "Sorry! We have flood control activated.<br />You cannot post within " & strTimeLimit & " seconds of your last post.<br />Please try again after this period of time elapses.", 0
end if
end if
txtMessage = ChkString(Request.Form("Message"),"message")
txtSubject = ChkString(Request.Form("Subject"),"SQLString")
' ##################### Poll Mod ######################
if Request.Form("poll") = "1" then
ReDim txtAns(strMaxVotes)
for i = 1 to strMaxVotes
if trim(Request.Form("answer" & CStr(i))) <> "" then
txtAns(i) = chkString(Request.Form("answer" & CStr(i)),"SQLString")
else
txtAns(i) = ""
end if
next
end if
' #####################################################
if strBadWordFilter = "1" then
txtSubject = chkString(ChkBadWords(Request.Form("Subject")),"SQLString")
end if
if txtMessage = " " then
Go_Result "يجب كتابة رسالة!", 0
Response.End
end if
if txtSubject = " " then
Go_Result "يجب كتابة عنوان الموضوع!", 0
Response.End
end if
if Len(Request.Form("Subject")) > 65 then
Go_Result "عنوان الموضوع لا يزيد عن 65 حرف", 0
Response.End
end if
' ####################### Poll Mod ##########################
if Request.Form("poll") = "1" then
For i = 1 to strMaxVotes
if trim(Request.Form("answer" & CStr(i))) <> "" then
intCount = intCount + 1
end if
Next
if intCount < 2 then
Go_Result "يجب ادخال اجابتين على الاقل للتصويت", 0
end if
end if
' ##########################################################
if strSignatures = "1" and strDSignatures <> "1" then
if Request.Form("sig") = "yes" and GetSig(strDBNTUserName) <> " " then
txtMessage = txtMessage & vbNewline & vbNewline & ChkString(GetSig(strDBNTUserName), "signature" )
end if
end if
'## Forum_SQL - Add new post to Topics Table
strSql = "INSERT INTO " & strTablePrefix & "TOPICS (FORUM_ID"
strSql = strSql & ", CAT_ID"
strSql = strSql & ", T_SUBJECT"
strSql = strSql & ", T_MESSAGE"
strSql = strSql & ", T_ISPOLL"
strSql = strSql & ", T_POLLSTATUS"
strSql = strSql & ", T_AUTHOR"
strSql = strSql & ", T_LAST_POST"
strSql = strSql & ", T_LAST_POST_AUTHOR"
strSql = strSql & ", T_LAST_POST_REPLY_ID"
strSql = strSql & ", T_DATE"
strSql = strSql & ", T_STATUS"
if strIPLogging <> "0" then
strSql = strSql & ", T_IP"
end if
strSql = strSql & ", T_STICKY"
strSql = strSql & ", T_SIG"
strSql = strSql & ", T_ARCHIVE_FLAG"
strSql = strSql & ", T_REPLIES"
strSql = strSql & ", T_UREPLIES"
strSql = strSql & ") VALUES ("
strSql = strSql & Forum_ID
strSql = strSql & ", " & Cat_ID
strSql = strSql & ", '" & txtSubject & "'"
strSql = strSql & ", '" & txtMessage & "'"
' ################ Poll Mod ###############
if Request.Form("poll") = "1" then
strSql = strSql & ", " & 1
else
strSql = strSql & ", " & 0
end if
if Request.Form("lockpoll") = "1" then
strSql = strSql & ", " & 0
else
strSql = strSql & ", " & 1
end if
' ##########################################
strSql = strSql & ", " & rs("MEMBER_ID")
strSql = strSql & ", '" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", " & rs("MEMBER_ID")
strSql = strSql & ", 0 "
strSql = strSql & ", '" & DateToStr(strForumTimeAdjust) & "'"
if Request.Form("lock") = 1 and ForumChkSkipAllowed = 1 then
strSql = strSql & ", 0 "
else
if Moderation = "Yes" then
strSql = strSql & ", 2 "
else
strSql = strSql & ", 1 "
end if
end if
if strIPLogging <> "0" then
strSql = strSql & ", '" & Request.ServerVariables("REMOTE_ADDR") & "'"
end if
if ForumChkSkipAllowed = 1 then
if Request.Form("sticky") = 1 then
strSql = strSql & ", 1 "
else
strSql = strSql & ", 0 "
end if
else
strSql = strSql & ", 0 "
end if
if Request.Form("sig") = "yes" and strDSignatures = "1" then
strSql = strSql & ", 1 "
else
strSql = strSql & ", 0 "
end if
strSql = strSql & ", 1 "
strSQL = strSQL & ", 0 "
strSQL = strSQL & ", 0 "
strSql = strSql & ")"
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
%><!--#INCLUDE FILE="cal_post_info2.asp"--><%
'############################ Poll Mod ##############################
if Request.Form("poll") = "1" then
strSql = "SELECT " & strTablePrefix & "TOPICS.TOPIC_ID "
strSql = strSql & "FROM " & strTablePrefix & "TOPICS "
strSql = strSql & "WHERE " & strTablePrefix & "TOPICS.T_ISPOLL = " & 1 & " "
strSql = strSql & "ORDER BY " & strTablePrefix & "TOPICS.T_DATE DESC"
set rsPollID = my_Conn.Execute (strSql)
PollID = rsPollID("TOPIC_ID")
rsPollID.close
set rsPollID = nothing
'## Forum_SQL - Add new poll to Polls Table
strSql = "INSERT INTO " & strTablePrefix & "POLLS (CAT_ID"
strSql = strSql & ", FORUM_ID"
strSql = strSql & ", TOPIC_ID"
strSql = strSql & ", P_WHOVOTES"
for i = 1 to ubound(txtAns)
strSql = strSql & ", ANSWER" & CStr(i)
strSql = strSql & ", COUNT" & CStr(i)
next
strSql = strSql & ") VALUES ("
strSql = strSql & Cat_ID
strSql = strSql & ", " & Forum_ID
strSql = strSql & ", " & PollID
strSql = strSql & ", '" & chkString(Request.Form("WhoVotes"),"SQLString") & "'"
for i = 1 to ubound(txtAns)
strSql = strSql & ", '" & chkString(txtAns(i),"") & "'"
strSql = strSql & ", " & 0
next
strSql = strSql & ")"
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end if
'####################################################################
if Err.description <> "" then
err_Msg = "There was an error = " & Err.description
else
err_Msg = "التعديل تم بنجاح"
end if
strSql = "SELECT Max(TOPIC_ID) as NewTopicID "
strSql = strSql & " FROM " & strActivePrefix & "TOPICS "
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
strSql = strSql & " and T_AUTHOR = " & rs("MEMBER_ID")
set rs9 = my_Conn.Execute (strSql)
If not rs9.EOF Then
NewTopicID = rs9("NewTopicId")
rs9.close
End if
set rs9 = nothing
' DEM --> Do not update forum count if topic is moderated.... Added if and end if
if Moderation = "No" then
'## Forum_SQL - Increase count of topics and replies in Forum table by 1
strSql = "UPDATE " & strTablePrefix & "FORUM "
strSql = strSql & " SET F_LAST_POST = '" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", F_TOPICS = F_TOPICS + 1"
strSql = strSql & ", F_COUNT = F_COUNT + 1"
strSql = strSql & ", F_LAST_POST_AUTHOR = " & rs("MEMBER_ID") & ""
strSql = strSql & ", F_LAST_POST_TOPIC_ID = " & NewTopicID
strSql = strSql & ", F_LAST_POST_REPLY_ID = " & 0
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end if
ProcessSubscriptions rs("MEMBER_ID"), Cat_ID, Forum_ID, NewTopicID, Moderation
if Moderation = "No" then
'## Subscribe checkbox ##
if request.form("TNotify") <> "" then
if request.form("TNotify") = "1" then
AddSubscription "TOPIC", rs("MEMBER_ID"), Cat_ID, Forum_ID, NewTopicID
elseif request.form("TNotify") = "0" then
DeleteSubscription "TOPIC", MemberID, Cat_ID, Forum_ID, NewTopicID
end if
end if
'## Subscribe checkbox end ##
end if
Go_Result err_Msg, 1
Response.End
end if
end if
'#################### Merge Topic Mod ###################
if MethodType = "MergeTopic" then
lngMember = cLng(ChkUser(strDBNTUserName, strPassword,-1))
select case lngMember
case 0 '## Invalid Pword
Go_Result "Invalid Password or UserName", 0
Response.End
case 1 '## Author of Post
'## Do Nothing
case 2 '## Normal User - Not Authorized
Go_Result "Only an Admin or Moderator can Merge Topics", 0
Response.End
case 3 '## Moderator - Authorized
'## Do Nothing
case 4 '## Admin
'## Do Nothing
case else
Go_Result cstr(lngMember), 0
Response.End
end select
if strBadWordFilter = "1" then
txtSubject = chkString(ChkBadWords(Request.Form("subject")),"SQLString")
else
txtSubject = chkString(Request.Form("subject"),"SQLString")
end if
if txtSubject = " " then
Go_Result "You must post a subject!", 0
Response.End
end if
if Len(Request.Form("subject")) > 50 then
Go_Result "The subject can not be greater than 50 characters", 0
Response.End
end if
if IsNumeric(Request.Form("MERGE_TOPIC_ID")) = True then
MergeWithTopicID = cLng(Request.Form("MERGE_TOPIC_ID"))
else
Go_Result "You entered an incorrect URL of a topic. Please go back and correct it.", 0
end if
'Notes
'- Check/Move subscriptions for the topics.
'- Topic starter needs to be notified via email that topic was merged with another
'- that it?
'## Get info from database on both topics
strSql = "SELECT TOPIC_ID, FORUM_ID, CAT_ID, T_IP, T_LAST_EDIT, T_LAST_POST, T_LAST_EDITBY, T_AUTHOR, T_DATE, T_REPLIES, T_SIG, T_VIEW_COUNT, T_MESSAGE "
strSql = strSql & "FROM " & strTablePrefix & "TOPICS "
strSql = strSql & "WHERE TOPIC_ID = " & MergeWithTopicID & " "
strSql = strSql & "OR TOPIC_ID = " & Topic_ID
'SELECT T_IP, T_LAST_EDIT, T_LAST_EDITBY, T_AUTHOR, T_DATE, T_REPLIES, T_SIG, T_VIEW_COUNT, T_MESSAGE FROM FORUM_TOPICS WHERE TOPIC_ID = 36 AND TOPIC_ID = 35
'Response.Write strSql & "<br>"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open strSql, my_Conn, adOpenForwardOnly, adLockReadOnly, adCmdText
if rs.EOF then
recCount = "-1"
else
allRec = rs.GetRows(adGetRowsRest)
recCount = UBound(allRec,2)
end if
rs.close
set rs = nothing
'Response.Write strSql
'Response.End
'## Loop through data
if recCount <> "-1" then
Dim RowCount : RowCount = 0
Dim blnInSameForum : blnInSameForum = true
Dim intOlderTopic, intOtherTopic
'Assign numerical locator for the array to variables
TopicID = 0
ForumID = 1
CatID = 2
Topic_IP = 3
Topic_LastEdit = 4
Topic_LastPost = 5
Topic_LastEditBy = 6
Topic_Author = 7
Topic_Date = 8
Topic_Replies = 9
Topic_Sig = 10
Topic_ViewCount = 11
Topic_Message = 12
'Check the posted date of both topics. The older topic remains as a topic.
'I am assigning the row count for each topic in the allRec() array.
if allRec(Topic_Date,0) < allRec(Topic_Date,1) then
intOlderTopic = 0
intOtherTopic = 1
else
intOlderTopic = 1
intOtherTopic = 0
end if
'This is needed to get the forum and cat id for the
'target topic when merging between 2 forums.
if CLng(allRec(TopicID, 0)) = Topic_ID then
intTargetTopic = 0
intNotTargetTopic = 1
else
intTargetTopic = 1
intNotTargetTopic = 0
end if
'Check if both topics are in the same forum
if allRec(ForumID, intOlderTopic) <> allRec(ForumID, intOtherTopic) then
blnInSameForum = false
end if
'if merging between 2 forums, change the forum id and cat id, to the
'target topic, effectively moving the target topic to the correct forum
if blnInSameForum = false then
strSql = "UPDATE " & strTablePrefix & "TOPICS "
strSql = strSql & " SET FORUM_ID = " & allRec(ForumID, intTargetTopic)
strSql = strSql & ", CAT_ID = " & allRec(CatID, intTargetTopic)
strSql = strSql & " WHERE TOPIC_ID = " & allRec(TopicID, intNotTargetTopic)
'Response.Write strSql & "<br>"
'Response.End
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end if
'Following query moves the topic to the reply table
strSql = "INSERT INTO " & strTablePrefix & "REPLY "
strSql = strSql & "(TOPIC_ID"
strSql = strSql & ", FORUM_ID"
strSql = strSql & ", CAT_ID"
strSql = strSql & ", R_AUTHOR"
strSql = strSql & ", R_DATE"
strSql = strSql & ", R_IP"
strSql = strSql & ", R_STATUS"
strSql = strSql & ", R_SIG"
strSql = strSql & ", R_MESSAGE"
strSql = strSql & ") VALUES ("
strSql = strSql & allRec(TopicID, intOlderTopic)
strSql = strSql & ", " & allRec(ForumID, intOlderTopic)
strSql = strSql & ", " & allRec(CatID, intOlderTopic)
strSql = strSql & ", " & allRec(Topic_Author, intOtherTopic)
strSql = strSql & ", '" & allRec(Topic_Date, intOtherTopic) & "'"
strSql = strSql & ", '" & allRec(Topic_IP, intOtherTopic) & "'"
strSql = strSql & ", 1"
strSql = strSql & ", " & allRec(Topic_Sig, intOtherTopic)
strSql = strSql & ", '" & chkString(allRec(Topic_Message, intOtherTopic),"message") & "')"
'Response.Write strSql & "<br>"
'Response.End
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'Change the replies topic id from the topic we merging to,
'to the current topic, effectively moving them from one topic
'to the other.
strSql = "UPDATE " & strTablePrefix & "REPLY"
strSql = strSql & " SET TOPIC_ID = " & allRec(TopicID, intOlderTopic)
if blnInSameForum = false then
strSql = strSql & ", FORUM_ID = " & allRec(ForumID, intOlderTopic)
strSql = strSql & ", CAT_ID = " & allRec(CatID, intOlderTopic)
end if
strSql = strSql & " WHERE TOPIC_ID = " & allRec(TopicID, intOtherTopic)
'Response.Write strSql & "<br>"
'Response.End
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'Update any subscriptions for the topic we are merging with and transfer them
'to the existing topic.
strSql = "UPDATE " & strTablePrefix & "SUBSCRIPTIONS"
strSql = strSql & " SET TOPIC_ID = " & allRec(TopicID, intOlderTopic)
strSql = strSql & " WHERE TOPIC_ID = " & allRec(TopicID, intOtherTopic)
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'Update total # of TOPICS by - 1
strSql = "UPDATE " & strTablePrefix & "TOTALS "
strSql = strSql & " SET T_COUNT = T_COUNT - 1"
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'count how many replies are now in the topic
'get the last reply from the reply table
strSql = "SELECT Count(REPLY_ID) as TotalReplies "
strSql = strSql & " FROM " & strTablePrefix & "REPLY "
strSql = strSql & " WHERE TOPIC_ID = " & allRec(TopicID, intOlderTopic)
'Response.Write strSql & "<br>"
'Response.End
set rsTotal = my_Conn.Execute (strSql)
TotalReplies = rsTotal("TotalReplies") 'holds the number of replies in the current topic
rsTotal.close
set rsTotal = nothing
'Get info about the last reply in the REPLY table
strSql = "SELECT REPLY_ID, R_AUTHOR, R_DATE, R_LAST_EDIT, R_LAST_EDITBY "
strSql = strSql & "FROM " & strTablePrefix & "REPLY "
strSql = strSql & "WHERE TOPIC_ID = " & allRec(TopicID, intOlderTopic) & " "
strSql = strSql & "AND R_STATUS <= 1 "
strSql = strSql & "ORDER BY R_DATE DESC"
'Response.Write strSql & "<br>"
'Response.End
set rsLastReply = my_Conn.Execute (strSql)
LatestReplyID = rsLastReply("REPLY_ID") 'holds the id of the last reply in the current topic
LastReplyAuthor = rsLastReply("R_AUTHOR")
LastReplyDate = rsLastReply("R_DATE")
LastReplyEdit = rsLastReply("R_LAST_EDIT")
LastReplyEditBy = rsLastReply("R_LAST_EDITBY")
rsLastReply.close
set rsLastReply = nothing
'Update topic with the info about the last post date, and author.
strSql = "UPDATE " & strTablePrefix & "TOPICS "
strSql = strSql & "SET T_SUBJECT = '" & txtSubject & "'"
strSql = strSql & ", T_VIEW_COUNT = T_VIEW_COUNT + " & cLng(allRec(Topic_ViewCount, intOtherTopic))
strSql = strSql & ", T_LAST_POST_AUTHOR = " & LastReplyAuthor
strSql = strSql & ", T_LAST_POST = '" & LastReplyDate & "'"
strSql = strSql & ", T_LAST_POST_REPLY_ID = " & LatestReplyID
if LastReplyEdit <> "" then
strSql = strSql & ", T_LAST_EDIT = '" & LastReplyEdit & "'"
if LastReplyEditBy <> "" then
strSql = strSql & ", T_LAST_EDITBY = " & LastReplyEditBy
end if
end if
strSql = strSql & ", T_REPLIES = " & TotalReplies
strSql = strSql & " WHERE TOPIC_ID = " & allRec(TopicID, intOlderTopic)
'Response.Write strSql & "<br>"
'Response.End
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'delete old topic from topic table
strSql = "DELETE FROM " & strTablePrefix & "TOPICS "
strSql = strSql & "WHERE TOPIC_ID = " & allRec(TopicID, intOtherTopic)
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'Get last_post and last_post_author for Forum
strSql = "SELECT TOPIC_ID, T_LAST_POST, T_LAST_POST_AUTHOR, T_LAST_POST_REPLY_ID"
strSql = strSql & " FROM " & strTablePrefix & "TOPICS "
strSql = strSql & " WHERE FORUM_ID = " & allRec(ForumID, intTargetTopic) & " "
strSql = strSql & " ORDER BY T_LAST_POST DESC"
'Response.Write strSql & "<br>"
set rs = my_Conn.Execute (strSql)
if not rs.eof then
rs.movefirst
strLast_Post = rs("T_LAST_POST")
strLast_Post_Author = rs("T_LAST_POST_AUTHOR")
strLast_Post_Topic_ID = rs("TOPIC_ID")
strLast_Post_Reply_ID = rs("T_LAST_POST_REPLY_ID")
else
strLast_Post = ""
strLast_Post_Author = "NULL"
strLast_Post_Topic_ID = 0
strLast_Post_Reply_ID = 0
end if
rs.Close
set rs = nothing
'Update the # of posts count for the forum and # of topics for the forum
strSql = "UPDATE " & strTablePrefix & "FORUM SET"
if blnInSameForum then
strSql = strSql & " F_TOPICS = F_TOPICS - 1,"
else
strSql = strSql & " F_COUNT = F_COUNT + " & cLng(allRec(Topic_Replies, intOtherTopic) + 1) & ","
end if
strSql = strSql & " F_LAST_POST = '" & strLast_Post & "',"
strSql = strSql & " F_LAST_POST_AUTHOR = " & strLast_Post_Author & ","
strSql = strSql & " F_LAST_POST_TOPIC_ID = " & strLast_Post_Topic_ID & ","
strSql = strSql & " F_LAST_POST_REPLY_ID = " & strLast_Post_Reply_ID
strSql = strSql & " WHERE FORUM_ID = " & allRec(ForumID, intTargetTopic)
'Response.Write strSql & "<br>"
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'If the topic we merging with is in a different forum, update forum counts for that forum.
if blnInSameForum = false then
'Get last_post and last_post_author for Forum
strSql = "SELECT TOPIC_ID, T_LAST_POST, T_LAST_POST_AUTHOR, T_LAST_POST_REPLY_ID"
strSql = strSql & " FROM " & strTablePrefix & "TOPICS "
strSql = strSql & " WHERE FORUM_ID = " & allRec(ForumID, intNotTargetTopic) & " "
strSql = strSql & " ORDER BY T_LAST_POST DESC"
'Response.Write strSql & "<br>"
'Response.End
set rs = my_Conn.Execute (strSql)
if not rs.eof then
rs.movefirst
strLast_Post = rs("T_LAST_POST")
strLast_Post_Author = rs("T_LAST_POST_AUTHOR")
strLast_Post_Topic_ID = rs("TOPIC_ID")
strLast_Post_Reply_ID = rs("T_LAST_POST_REPLY_ID")
else
strLast_Post = ""
strLast_Post_Author = "NULL"
strLast_Post_Topic_ID = 0
strLast_Post_Reply_ID = 0
end if
rs.Close
set rs = nothing
'Update the # of posts count for the forum and # of topics for the forum
strSql = "UPDATE " & strTablePrefix & "FORUM"
strSql = strSql & " SET F_TOPICS = F_TOPICS - 1,"
strSql = strSql & " F_COUNT = F_COUNT - " & cLng(allRec(Topic_Replies, intOtherTopic) + 1) & ","
strSql = strSql & " F_LAST_POST = '" & strLast_Post & "',"
strSql = strSql & " F_LAST_POST_AUTHOR = " & strLast_Post_Author & ","
strSql = strSql & " F_LAST_POST_TOPIC_ID = " & strLast_Post_Topic_ID & ","
strSql = strSql & " F_LAST_POST_REPLY_ID = " & strLast_Post_Reply_ID
strSql = strSql & " WHERE FORUM_ID = " & allRec(ForumID, intNotTargetTopic)
'Response.Write strSql & "<br>"
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end if
if lcase(strEmail) = "100" then 'not implemented yet
'Send mail to author letting him know his topic was merged with another.
'DoAutoMoveEmail(allRec(Topic_ID, intOlderTopic))
strSql = "SELECT M.MEMBER_ID, M.M_NAME, M.M_EMAIL, T.FORUM_ID, T.T_SUBJECT "
strSql = strSql & " FROM " & strMemberTablePrefix & "MEMBERS M, " & strActivePrefix & "TOPICS T "
strSql = strSql & " WHERE M.MEMBER_ID = T.T_AUTHOR "
strSql = strSql & " AND T.TOPIC_ID = " & TopicNum
'Response.Write strSql
'Response.End
set rs2 = my_Conn.Execute (strSql)
email = rs2("M_EMAIL")
user_name = rs2("M_NAME")
Topic_Title = rs2("T_SUBJECT")
ForumId = rs2("FORUM_ID")
Usernum = rs2("MEMBER_ID")
rs2.close
strRecipientsName = user_name
strRecipients = email
strSubject = strForumTitle & " - Topic Moved"
strMessage = "Hello " & user_name & vbNewLine & vbNewLine
strMessage = strMessage & "Your posting on " & strForumTitle & "." & vbNewLine
strMessage = strMessage & "Regarding the subject - " & Topic_Title & "." & vbNewLine & vbNewLine
if not(chkForumAccess(ForumID,Usernum,false)) then
strMessage = strMessage & "Has been removed from public display. If you have any questions regarding this, please contact the Administrator of the forum" & vbNewLine
else
strMessage = strMessage & "Has been moved to a new forum, You can view it at " & vbNewLine & Left(Request.Form("refer"), InstrRev(Request.Form("refer"), "/")) & "topic.asp?TOPIC_ID=" & TopicNum & vbNewLine
end if
%>
<!--#INCLUDE FILE="inc_mail.asp" -->
<%
end if
'ProcessSubscriptions Reply_Author, Cat_ID, Forum_ID, NewTopicID, Moderation
else
Go_Result "That topic does not exist in the database. Make sure the url you entered has the correct ID of the topic.", 0
end if
'Response.End
Go_Result err_Msg, 1
Response.End
end if
'########################################################
if MethodType = "Reply" or MethodType = "ReplyQuote" or MethodType = "TopicQuote" then
'## Forum_SQL
strSql = "SELECT MEMBER_ID, M_LEVEL, M_EMAIL, M_LASTPOSTDATE, " & strDBNTSQLname
if strAuthType = "db" then
strSql = strSql & ", M_PASSWORD "
end if
strSql = strSql & " FROM " & strMemberTablePrefix & "MEMBERS "
strSql = strSql & " WHERE " & strDBNTSQLName & " = '" & ChkString(strDBNTUserName, "SQLString") & "'"
strSql = strSql & " AND " & strMemberTablePrefix & "MEMBERS.M_STATUS = " & 1
if strAuthType = "db" then
strSql = strSql & " AND M_PASSWORD = '" & ChkString(strPassword, "SQLString") &"'"
QuoteOk = (ChkQuoteOk(strDBNTUserName) and ChkQuoteOk(strPassword))
else
QuoteOk = ChkQuoteOk(strDBNTUserName)
end if
set rs = my_Conn.Execute (strSql)
if rs.BOF or rs.EOF or not(QuoteOk) or not(ChkQuoteOk(strPassword)) then '## Invalid Password
err_Msg = "Invalid Password or User Name"
Go_Result(err_Msg), 0
Response.End
else
if strPrivateForums = "1" and ForumChkSkipAllowed = 0 then
if not(chkForumAccess(Forum_ID,MemberID,false)) then
Go_Result "غير متاح بالكتابة بهذا المنتدى", 0
end if
end if
if strFloodCheck = 1 then
if rs("M_LASTPOSTDATE") > DateToStr(DateAdd("s",strFloodCheckTime,strForumTimeAdjust)) and mLev < 3 then
strTimeLimit = replace(strFloodCheckTime, "-", "")
Go_Result "مع الاعتذار<br />لا يجوز المشاركة خلال " & strTimeLimit & " ثانية منذ اخر مشاركة.<br />أعد المحاولة بعد تلك الفترة.", 0
end if
end if
txtMessage = ChkString(Request.Form("Message"),"message")
if txtMessage = " " then
Go_Result "يجب ادخال الرسالة", 0
Response.End
end if
if strSignatures = "1" and strDSignatures <> "1" then
if Request.Form("sig") = "yes" and GetSig(strDBNTUserName) <> " " then
txtMessage = txtMessage & vbNewline & vbNewline & ChkString(GetSig(strDBNTUserName), "signature" )
end if
end if
'## Forum_SQL
strSql = "INSERT INTO " & strTablePrefix & "REPLY "
strSql = strSql & "(TOPIC_ID"
strSql = strSql & ", FORUM_ID"
strSql = strSql & ", CAT_ID"
strSql = strSql & ", R_AUTHOR"
strSql = strSql & ", R_DATE "
if strIPLogging <> "0" then
strSql = strSql & ", R_IP"
end if
strSql = strSql & ", R_STATUS"
strSql = strSql & ", R_SIG"
strSql = strSql & ", R_MESSAGE"
strSql = strSql & ") VALUES ("
strSql = strSql & Topic_ID
strSql = strSql & ", " & Forum_ID
strSql = strSql & ", " & Cat_ID
strSql = strSql & ", " & rs("MEMBER_ID")
strSql = strSql & ", " & "'" & DateToStr(strForumTimeAdjust) & "'"
if strIPLogging <> "0" then
strSql = strSql & ", " & "'" & Request.ServerVariables("REMOTE_ADDR") & "'"
end if
' DEM --> Added R_STATUS to allow for moderation of posts
' Used R_STATUS = 1 to match the topic status code.
if Moderation = "Yes" then
strSql = strSql & ", 2"
else
strSql = strSql & ", 1"
end if
' DEM --> End of Code added
if Request.Form("sig") = "yes" and strDSignatures = "1" then
strSql = strSql & ", 1 "
else
strSql = strSql & ", 0 "
end if
strSql = strSql & ", " & "'" & txtMessage & "'"
strSql = strSql & ")"
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
' DEM --> Do not update totals on topics and forums database if post is moderated...Added if and end if
if Moderation = "No" then
strSql = "SELECT Max(REPLY_ID) as NewReplyID "
strSql = strSql & " FROM " & strActivePrefix & "REPLY "
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
strSql = strSql & " and R_AUTHOR = " & rs("MEMBER_ID")
set rs9 = my_Conn.Execute (strSql)
NewReplyID = rs9("NewReplyID")
rs9.close
set rs9 = nothing
'## Forum_SQL - Update Last Post and count
strSql = "UPDATE " & strActivePrefix & "TOPICS "
strSql = strSql & " SET T_LAST_POST = '" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", T_REPLIES = T_REPLIES + 1 "
strSql = strSql & ", T_LAST_POST_AUTHOR = " & rs("MEMBER_ID")
strSql = strSql & ", T_LAST_POST_REPLY_ID = " & NewReplyID
if Request.Form("lock") = 1 and ForumChkSkipAllowed = 1 then
strSql = strSql & ", T_STATUS = 0 "
end if
strSql = strSql & " WHERE TOPIC_ID = " & Topic_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'## Subscribe checkbox start ##
if request.form("TNotify") <> "" then
if request.form("TNotify") = "1" then
AddSubscription "TOPIC", rs("MEMBER_ID"), Cat_ID, Forum_ID, Topic_ID
elseif request.form("TNotify") = "0" then
DeleteSubscription "TOPIC", MemberID, Cat_ID, Forum_ID, Topic_ID
end if
end if
'## Subscribe checkbox end ##
'## Forum_SQL
strSql = "UPDATE " & strTablePrefix & "FORUM "
strSql = strSql & " SET F_LAST_POST = '" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", F_LAST_POST_AUTHOR = " & rs("MEMBER_ID")
strSql = strSql & ", F_LAST_POST_TOPIC_ID = " & Topic_ID
strSql = strSql & ", F_LAST_POST_REPLY_ID = " & NewReplyID
strSql = strSql & ", F_COUNT = F_COUNT + 1 "
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
else
'## Forum_SQL - Update Unmoderated post count
strSql = "UPDATE " & strActivePrefix & "TOPICS "
strSql = strSql & " SET T_UREPLIES = T_UREPLIES + 1 "
strSql = strSql & " WHERE TOPIC_ID = " & Topic_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end if
if Err.description <> "" then
rs.close
Set rs=Nothing
Go_Result "خطأ = " & Err.description, 0
Response.End
else
ProcessSubscriptions rs("MEMBER_ID"), Cat_ID, Forum_ID, Topic_ID, Moderation
rs.Close
Set rs=Nothing
Go_Result "التعديل تم بنجاح", 1
Response.End
end if
rs.Close
end if
Set rs=Nothing
end if
' ## Sub-Forum Below
strParent = replace(request.form("Parent"), "'", "''")
if strParent <> "" then
strParentType = left(strParent, 1)
strParentValue = right(strParent, len(strParent) - 1)
end if
if strParentType = "F" then
'## Forum_SQL - Find the CAT_ID if forum is now a subforum
strSQL = "SELECT CAT_ID FROM " & strTablePrefix & "FORUM WHERE FORUM_ID = " & strParentValue & ";"
set rsFindCat = my_Conn.Execute(strSQL)
if not rsFindCat.eof then
intCategoryValue = rsFindCat("CAT_ID")
end if
set rsFindCat = Nothing
intSetParent = strParentValue
intSetCategory = intCategoryValue
else
intSetParent = NULL
intSetCategory = strParentValue
end if
' ## Sub-Forum Above
if MethodType = "Forum" then
member = cLng(ChkUser(strDBNTUserName, strPassword,-1))
select case Member
case 0 '## Invalid Pword
Go_Result "اسم العضو او كلمة السر غير صحيحة", 0
Response.End
case 1 '## Author of Post
'## Do Nothing
case 2 '## Normal User - Not Authorized
Go_Result "المشرف فقط لح حق انشاء منتدى", 0
Response.End
case 3 '## Moderator - Not Authorized
Go_Result "المشرف فقط له حق انشاء منتدى", 0
Response.End
case 4 '## Admin
'## Do Nothing
case else
Go_Result cstr(Member), 0
Response.End
end select
txtMessage = ChkString(Request.Form("Message"),"message")
txtSubject = ChkString(Request.Form("Subject"),"SQLString")
if strBadWordFilter = "1" then
txtSubject = chkString(ChkBadWords(Request.Form("Subject")),"SQLString")
end if
Err_Msg = ""
if txtSubject = " " then
Err_Msg = Err_Msg & "<li>يجب تسجيل عنوان المنتدى</li>"
end if
if Err_Msg = "" then
'## Forum_SQL - Do DB Update
strSql = "INSERT INTO " & strTablePrefix & "FORUM "
' ## Sub-Forum Below
strSql = strSql & "(CAT_ID"
if isnull(intSetParent) = FALSE then
strSql = strSql & ", F_PARENT"
end if
' ## Sub-Forum Above
strSql = strSql & ", F_STATUS"
if strPrivateForums = "1" then
strSql = strSql & ", F_PRIVATEFORUMS"
if Request.Form("AuthPassword") <> " " then
strSql = strSql & ", F_PASSWORD_NEW"
end if
end if
strSql = strSql & ", F_LAST_POST"
strSql = strSql & ", F_SUBJECT"
strSql = strSql & ", F_DESCRIPTION"
strSql = strSql & ", F_TYPE"
strSql = strSql & ", F_L_ARCHIVE "
strSql = strSql & ", F_ARCHIVE_SCHED "
strSql = strSql & ", F_L_DELETE "
strSql = strSql & ", F_DELETE_SCHED "
strSql = strSql & ", F_SUBSCRIPTION"
strSql = strSql & ", F_MODERATION"
strSql = strSql & ", F_ORDER "
strSql = strSql & ", F_POLLS "
strSql = strSql & ", F_DEFAULTDAYS "
strSql = strSql & ", F_COUNT_M_POSTS "
strSql = strSql & ", F_ALLOWEVENTS "
strSql = strSql & ") VALUES ("
' ## Sub-Forum Below
strSql = strSql & intSetCategory
if isnull(intSetParent) = FALSE then
strSql = strSql & ", " & intSetParent
end if
' ## Sub-Forum Above
strSql = strSql & ", 1 "
if strPrivateForums = "1" then
strSql = strSql & ", " & Request.Form("AuthType") & ""
if Request.Form("AuthPassword") <> " " then
strSql = strSql & ", '" & ChkString(Request.Form("AuthPassword"),"SQLString") & "'"
end if
end if
strSql = strSql & ", " & "'" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", '" & txtSubject & "'"
strSql = strSql & ", '" & txtMessage & "'"
strSql = strSql & ", " & ChkString(Request.Form("Type"), "SQLString")
strSql = strSql & ", '' "
strSql = strSql & ", 30 "
strSql = strSql & ", '' "
strSql = strSql & ", 365 "
' DEM --> Start of Code added for moderation and subscription
if strSubscription > 0 and CatSubscription > 0 and strEmail = "1" then
strSql = strSql & ", " & fSubscription
else
strSql = strSql & ", 0"
end if
if strModeration = 1 and CatModeration = 1 then
strSql = strSql & ", " & ChkString(Request.Form("Moderation"), "SQLString")
else
strSql = strSql & ", 0"
end if
' DEM --> End of Code added for moderation and subscription
strSql = strSql & ", 1 "
'################ Poll Mod ##################
if Request.Form("PollAuth") <> "" then
strSql = strSql & ", " & chkString(Request.Form("PollAuth"),"SQLString")
else
strSql = strSql & ", 0 "
end if
'############################################
strSql = strSql & ", " & ChkString(Request.Form("DefaultDays"), "SQLString")
strSql = strSql & ", " & ChkString(Request.Form("ForumCntMPosts"), "SQLString")
If CLng(Request.Form("allowevents")) = 1 then StrSql = strSql & ", 1" Else strSql = strSql & ", 0"
strSql = strSql & ")"
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
Application.Lock
Application(strCookieURL & "JumpBoxChanged")= DateToStr(strForumTimeAdjust)
Application.UnLock
err_Msg = ""
if Err.description <> "" then
Go_Result "خطأ = " & Err.description, 0
Response.End
Else
set rsCount = my_Conn.execute("SELECT MAX(FORUM_ID) AS maxForumID FROM " & strTablePrefix & "FORUM ")
newForumMembers rsCount("maxForumId")
newForumModerators rsCount("maxForumId")
set rsCount = nothing
Go_Result "التعديل تم بنجاح", 1
end if
else
Response.Write " <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """ color=""" & strHiLiteFontColor & """>هناك خطأ بالبيانات</font></p>" & vbNewLine & _
" <table align=""center"" border=""0"">" & vbNewLine & _
" <tr>" & vbNewLine & _
" <td><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strHiLiteFontColor & """><ul>" & Err_Msg & "</ul></font></td>" & vbNewLine & _
" </tr>" & vbNewLine & _
" </table>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """><a href=""JavaScript:history.go(-1)"">الرجوع لادخال البيانات</a></font></p>" & vbNewLine
end if
end if
if MethodType = "URL" then
member = cLng(ChkUser(strDBNTUserName, strPassword,-1))
select case Member
case 0 '## Invalid Pword
Go_Result "اسم العضو او كلمة السر غير صحيحة", 0
Response.End
case 1 '## Author of Post
'## Do Nothing
case 2 '## Normal User - Not Authorised
Go_Result "المشرف فقط له حق انشاء وصلة", 0
Response.End
case 3 '## Moderator
Go_Result "المشرف فقط له حق انشاء وصلة", 0
Response.End
case 4 '## Admin
'## Do Nothing
case else
Go_Result cstr(Member), 0
Response.End
end select
txtMessage = ChkString(Request.Form("Message"),"message")
txtAddress = ChkString(Request.Form("Address"),"SQLString")
txtSubject = ChkString(Request.Form("Subject"),"SQLString")
if strBadWordFilter = "1" then
txtSubject = chkString(ChkBadWords(Request.Form("Subject")),"SQLString")
end if
Err_Msg = ""
if txtSubject = " " then
Err_Msg = Err_Msg & "<li>يجب ادخال عنوان للوصلة</li>"
end if
if txtAddress = " " or lcase(txtAddress) = "http://" or lcase(txtAddress) = "https://" or lcase(txtAddress) = "file:///" then
Err_Msg = Err_Msg & "<li>You Must Enter an Address for the New URL</li>"
end if
if (left(lcase(txtAddress), 7) <> "http://" and left(lcase(txtAddress), 8) <> "https://" and left(lcase(txtAddress), 8) <> "file:///") and txtAddress <> "" then
Err_Msg = Err_Msg & "<li>You Must prefix the Address with <b>http://</b>, <b>https://</b> or <b>file:///</b></li>"
end if
if Err_Msg = "" then
'## Forum_SQL - Do DB Update
strSql = "INSERT INTO " & strTablePrefix & "FORUM "
strSql = strSql & "(CAT_ID"
' ## Sub-Forum Below
if isnull(intSetParent) = FALSE then
strSql = strSql & ", F_PARENT"
end if
' ## Sub-Forum Above
strSql = strSql & ", F_STATUS"
if strPrivateForums = "1" then
strSql = strSql & ", F_PRIVATEFORUMS"
end if
strSql = strSql & ", F_LAST_POST"
strSql = strSql & ", F_LAST_POST_AUTHOR"
strSql = strSql & ", F_SUBJECT"
strSql = strSql & ", F_URL"
strSql = strSql & ", F_DESCRIPTION"
strSql = strSql & ", F_TYPE"
strSql = strSql & ", F_L_ARCHIVE "
strSql = strSql & ", F_ARCHIVE_SCHED "
strSql = strSql & ", F_L_DELETE "
strSql = strSql & ", F_DELETE_SCHED "
strSql = strSql & ", F_SUBSCRIPTION, F_MODERATION"
strSql = strSql & ", F_ORDER "
strSql = strSql & ", F_DEFAULTDAYS "
strSql = strSql & ") VALUES ("
strSql = strSql & intSetCategory
' ## Sub-Forum Below
if isnull(intSetParent) = FALSE then
strSql = strSql & ", " & intSetParent
end if
' ## Sub-Forum Above
strSql = strSql & ", 1"
if strPrivateForums = "1" then
strSql = strSql & ", " & ChkString(Request.Form("AuthType"), "SQLString") & ""
end if
strSql = strSql & ", " & "'" & DateToStr(strForumTimeAdjust) & "'"
strSql = strSql & ", " & MemberID & " "
strSql = strSql & ", " & "'" & txtSubject & "'"
strSql = strSql & ", " & "'" & txtAddress & "'"
strSql = strSql & ", " & "'" & txtMessage & "'"
strSql = strSql & ", " & Request.Form("Type")
strSql = strSql & ", ''"
strSql = strSql & ", 30"
strSql = strSql & ", ''"
strSql = strSql & ", 365"
' DEM --> Added 0's for the subscription and moderation fields since they are ignored for URLS
strSql = strSql & ", 0, 0"
strSql = strSql & ", 1"
strSql = strSql & ", 30"
strSql = strSql & ") "
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
Application.Lock
Application(strCookieURL & "JumpBoxChanged")= DateToStr(strForumTimeAdjust)
Application.UnLock
err_Msg = ""
if Err.description <> "" then
Go_Result "خطأ = " & Err.description, 0
Response.End
else
set rsCount = my_Conn.execute("SELECT MAX(FORUM_ID) AS maxForumID FROM " & strTablePrefix & "FORUM ")
newForumMembers rsCount("maxForumId")
newForumModerators rsCount("maxForumId")
set rsCount = nothing
Go_Result "التعديل تم بنجاح", 1
end if
else
Response.Write " <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """ color=""" & strHiLiteFontColor & """>هناك خطأ بالبيانات</font></p>" & vbNewLine & _
" <table align=""center"" border=""0"">" & vbNewLine & _
" <tr>" & vbNewLine & _
" <td><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strHiLiteFontColor & """><ul>" & Err_Msg & "</ul></font></td>" & vbNewLine & _
" </tr>" & vbNewLine & _
" </table>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """><a href=""JavaScript:history.go(-1)"">الرجوع لتسجيل البيانات</a></font></p>" & vbNewLine
end if
end if
if MethodType = "EditForum" then
member = cLng(ChkUser(strDBNTUserName, strPassword,-1))
select case Member
case 0 '## Invalid Pword
Go_Result "اسم العضو او كلمة السر غير صحيحة", 0
Response.End
case 1 '## Author of Post
'## Do Nothing
case 2 '## Normal User - Not Authorised
Go_Result "المشرف او المراقب فقط لهم الحق بتعديل المنتدى", 0
Response.End
case 3 '## Moderator
if chkForumModerator(Forum_ID, strDBNTUserName) = "0" then
Go_Result "المشرف او المراقب فقط لهم الحق بتعديل المنتدى", 0
end if
case 4 '## Admin
'## Do Nothing
case else
Go_Result cstr(Member), 0
Response.End
end select
txtMessage = ChkString(Request.Form("Message"),"message")
txtSubject = ChkString(Request.Form("Subject"),"SQLString")
if strBadWordFilter = "1" then
txtSubject = chkString(ChkBadWords(Request.Form("Subject")),"SQLString")
end if
Err_Msg = ""
if txtSubject = " " then
Err_Msg = Err_Msg & "<li>يجب تسجيل عنوان للمنتدى</li>"
end if
if strModeration <> 0 and Request.Form("Moderation") = 0 then
if CheckForUnModeratedPosts("FORUM", Cat_ID, Forum_ID, 0) > 0 then
Err_Msg = Err_Msg & "<li>Please Approve or Delete all UnModerated/Held posts in this Forum before turning Moderation off</li>"
end if
end if
if Err_Msg = "" then
' ## Sub-Forum Below
if isnull(intSetParent) = FALSE then
strSQL = "UPDATE " & strTablePrefix & "FORUM SET F_PARENT = " & intSetParent & " WHERE FORUM_ID = " & Forum_ID
else
strSQL = "UPDATE " & strTablePrefix & "FORUM SET F_PARENT = NULL WHERE FORUM_ID = " & Forum_ID
end if
my_Conn.Execute(strSQL)
' ## Sub-Forum Above
'## Forum_SQL - Check if CAT_ID changed
strSql = "SELECT " & strTablePrefix & "FORUM.CAT_ID "
strSql = strSql & " FROM " & strTablePrefix & "FORUM "
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
set rsCatIDCheck = my_Conn.execute(strSql)
If not rsCatIDCheck.EOF Then
' ## Sub-Forum Below
bolCatIDChanged = (cSTr(rsCatIDCheck("CAT_ID")) <> ChkString(intSetCategory, "SQLString"))
' ## Sub-Forum Above
rsCatIDCheck.Close
End If
set rsCatIDCheck = Nothing
'## Forum_SQL - Do DB Update
strSql = "UPDATE " & strTablePrefix & "FORUM "
' ## Sub-Forum Below
strSql = strSql & " SET CAT_ID = " & cLng("0" & intSetCategory)
' ## Sub-Forum Above
if Request.Form("PollAuth") <> "" then
strSql = strSql & ", F_POLLS = " & chkString(Request.Form("PollAuth"),"SQLString") & ""
end if
'#################################################################
if strPrivateForums = "1" then
strSql = strSql & ", F_PRIVATEFORUMS = " & cLng("0" & Request.Form("AuthType"))
if Request.Form("AuthPassword") <> " " then
strSql = strSql & ", F_PASSWORD_NEW = '" & ChkString(Request.Form("AuthPassword"),"SQLString") & "'"
end if
end if
strSql = strSql & ", F_SUBJECT = '" & txtSubject & "'"
strSql = strSql & ", F_DESCRIPTION = '" & txtMessage & "'"
if Request.Form("Moderation") <> "" then
strSql = strSql & ", F_MODERATION = " & ChkString(Request.Form("Moderation"), "SQLString")
end if
if fSubscription <> "" then
strSql = strSql & ", F_SUBSCRIPTION = " & fSubscription
end if
strSql = strSql & ", F_DEFAULTDAYS = " & cLng(Request.Form("DefaultDays"))
strSql = strSql & ", F_COUNT_M_POSTS = " & ChkString(Request.Form("ForumCntMPosts"), "SQLString")
If CLng(Request.Form("allowevents")) = 1 then strSql = strSql & ", F_ALLOWEVENTS = 1" Else strSql = strSql & ", F_ALLOWEVENTS = 0"
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
Application.Lock
Application(strCookieURL & "JumpBoxChanged")= DateToStr(strForumTimeAdjust)
Application.UnLock
if bolCatIDChanged then
'## Update category CAT_SUBSCRIPTION/CAT_MODERATION if required
strSQL = "SELECT " & strTablePrefix & "CATEGORY.CAT_SUBSCRIPTION, " & strTablePrefix & "CATEGORY.CAT_MODERATION FROM " & strTablePrefix & "CATEGORY "
' ## Sub-Forum Below
strSQL = strSQL & " WHERE CAT_ID=" & cLng("0" & intSetCategory)
' ## Sub-Forum Above
set rs = my_conn.execute(strSQL)
If not rs.EOF Then
intCatSubs = rs("CAT_SUBSCRIPTION")
intCatMod = rs("CAT_MODERATION")
rs.close
End If
set rs = nothing
if intCatSubs < fSubscription then
strSQL = "UPDATE " & strTablePrefix & "CATEGORY SET " & strTablePrefix & "CATEGORY.CAT_SUBSCRIPTION = " & fSubscription
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end if
if intCatMod = 0 and Request.Form("Moderation") > 0 then
strSQL = "UPDATE " & strTablePrefix & "CATEGORY SET " & strTablePrefix & "CATEGORY.CAT_MODERATION = " & 1
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end if
'## Forum_SQL - Do DB Update
strSql = "UPDATE " & strActivePrefix & "TOPICS "
' ## Sub-Forum Below
strSql = strSql & " SET CAT_ID = " & cLng("0" & intSetCategory)
' ## Sub-Forum Above
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
'## Forum_SQL - Do DB Update
strSql = "UPDATE " & strActivePrefix & "REPLY "
' ## Sub-Forum Below
strSql = strSql & " SET CAT_ID = " & cLng("0" & intSetCategory)
' ## Sub-Forum Above
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
' DEM --> Added _SUBSCRIPTIONS table
'## Forum_SQL - Do DB Update
strSql = "UPDATE " & strTablePrefix & "SUBSCRIPTIONS "
' ## Sub-Forum Below
strSql = strSql & " SET CAT_ID = " & cLng("0" & intSetCategory)
' ## Sub-Forum Above
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end if
err_Msg= ""
if Err.description <> "" then
Go_Result "خطأ = " & Err.description, 0
Response.End
else
updateForumMembers Forum_ID
if mLev = 4 then
updateForumModerators Forum_ID
end if
Go_Result "التعديل تم بنجاح", 1
end if
else
Response.Write " <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """ color=""" & strHiLiteFontColor & """>هناك خطأ بالبيانات</font></p>" & vbNewLine & _
" <table align=""center"" border=""0"">" & vbNewLine & _
" <tr>" & vbNewLine & _
" <td><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strHiLiteFontColor & """><ul>" & Err_Msg & "</ul></font></td>" & vbNewLine & _
" </tr>" & vbNewLine & _
" </table>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """><a href=""JavaScript:history.go(-1)"">الرجوع لتسجيل البيانات</a></font></p>" & vbNewLine
end if
end if
if MethodType = "EditURL" then
member = cLng(ChkUser(strDBNTUserName, strPassword,-1))
select case Member
case 0 '## Invalid Pword
Go_Result "اسم العضو او كلمة السر غير صحيحة", 0
Response.End
case 1 '## Author of Post
'## Do Nothing
case 2 '## Normal User - Not Authorised
Go_Result "المشرف العام او المراقب فقط لهم حق تعديل الوصلة", 0
Response.End
case 3 '## Moderator
if chkForumModerator(Forum_ID, strDBNTUserName) = "0" then
Go_Result "المشرف العام او المراقب فقط لهم حق تعديل الوصلة", 0
end if
case 4 '## Admin
'## Do Nothing
case else
Go_Result cstr(Member), 0
Response.End
end select
txtMessage = ChkString(Request.Form("Message"),"message")
txtAddress = ChkString(Request.Form("Address"),"SQLString")
txtSubject = ChkString(Request.Form("Subject"),"SQLString")
if strBadWordFilter = "1" then
txtSubject = chkString(ChkBadWords(Request.Form("Subject")),"SQLString")
end if
Err_Msg = ""
if txtSubject = " " then
Err_Msg = Err_Msg & "<li>يجب تسجيل عنوان للوصلة</li>"
end if
if txtAddress = " " or lcase(txtAddress) = "http://" or lcase(txtAddress) = "https://" or lcase(txtAddress) = "file:///" then
Err_Msg = Err_Msg & "<li>You Must Enter an Address for the New URL</li>"
end if
if (left(lcase(txtAddress), 7) <> "http://" and left(lcase(txtAddress), 8) <> "https://" and left(lcase(txtAddress), 8) <> "file:///") and (txtAddress <> "") then
Err_Msg = Err_Msg & "<li>You Must prefix the Address with <b>http://</b>, <b>https://</b> or <b>file:///</b></li>"
end if
if Err_Msg = "" then
' ## Sub-Forum Below
if isnull(intSetParent) = FALSE then
strSQL = "UPDATE " & strTablePrefix & "FORUM SET F_PARENT = " & intSetParent & " WHERE FORUM_ID = " & Forum_ID
else
strSQL = "UPDATE " & strTablePrefix & "FORUM SET F_PARENT = NULL WHERE FORUM_ID = " & Forum_ID
end if
my_Conn.Execute(strSQL)
' ## Sub-Forum Above
'## Forum_SQL - Do DB Update
strSql = "UPDATE " & strTablePrefix & "FORUM "
' ## Sub-Forum Below
strSql = strSql & " SET CAT_ID = " & cLng("0" & intSetCategory)
' ## Sub-Forum Above
if strPrivateForums = "1" then
strSql = strSql & ", F_PRIVATEFORUMS = " & ChkString(Request.Form("AuthType"), "SQLString") & ""
end if
strSql = strSql & ", F_SUBJECT = '" & txtSubject & "'"
strSql = strSql & ", F_URL = '" & txtAddress & "'"
strSql = strSql & ", F_DESCRIPTION = '" & txtMessage & "'"
strSql = strSql & " WHERE FORUM_ID = " & Forum_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
Application.Lock
Application(strCookieURL & "JumpBoxChanged")= DateToStr(strForumTimeAdjust)
Application.UnLock
err_Msg= ""
if Err.description <> "" then
Go_Result "خطأ = " & Err.description, 0
Response.End
else
updateForumMembers Forum_ID
if mLev = 4 then
updateForumModerators Forum_ID
end if
Go_Result "التعديل تم بنجاح", 1
end if
else
Response.Write " <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """ color=""" & strHiLiteFontColor & """>هناك خطأ بالبيانات</font></p>" & vbNewLine & _
" <table align=""center"" border=""0"">" & vbNewLine & _
" <tr>" & vbNewLine & _
" <td><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strHiLiteFontColor & """><ul>" & Err_Msg & "</ul></font></td>" & vbNewLine & _
" </tr>" & vbNewLine & _
" </table>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """><a href=""JavaScript:history.go(-1)"">الرجوع لتسجيل البيانات</a></font></p>" & vbNewLine
end if
end if
if MethodType = "Category" then
member = cLng(ChkUser(strDBNTUserName, strPassword,-1))
select case Member
case 0 '## Invalid Pword
Go_Result "اسم العضو او كلمة السر غير صحيحة", 0
Response.End
case 1 '## Author of Post
'## Do Nothing
case 2 '## Normal User - Not Authorised
Go_Result "المشرف فقط اه حق انشاء قسم", 0
Response.End
case 3 '## Moderator
Go_Result "المشرف فقط اه حق انشاء قسم", 0
Response.End
case 4 '## Admin
'## Do Nothing
case else
Go_Result cstr(Member), 0
Response.End
end select
txtSubject = chkString(Request.Form("Subject"),"SQLString")
if strBadWordFilter = "1" then
txtSubject = chkString(ChkBadWords(Request.Form("Subject")),"SQLString")
end if
Err_Msg = ""
if txtSubject = "" then
Err_Msg = Err_Msg & "<li>يجب تسجيل عنوان القسم</li>"
end if
if Err_Msg = "" then
'Update parent id
if isnull(intSetParent) = FALSE then
strSQL = "UPDATE " & strTablePrefix & "FORUM SET F_PARENT = " & intSetParent & " WHERE FORUM_ID = " & Forum_ID
else
strSQL = "UPDATE " & strTablePrefix & "FORUM SET F_PARENT = NULL WHERE FORUM_ID = " & Forum_ID
end if
my_Conn.Execute(strSQL)
'End parent mod code -- JUST MAKE SURE YOU CHANGE THAT request.form variable!
'## Forum_SQL - Do DB Update
' DEM --> Insert replaced to add subscription and moderation capabilities
strSql = "INSERT INTO " & strTablePrefix & "CATEGORY (CAT_NAME, CAT_STATUS, CAT_SUBSCRIPTION, CAT_MODERATION, CAT_ORDER) "
strSql = strSql & " VALUES ('" & txtSubject & "'"
strSql = strSql & ", 1"
if strSubscription <> 0 and strEmail = "1" then
strSql = strSql & ", " & fSubscription
else
strSql = strSql & ", 0"
end if
if strModeration <> 0 then
strSql = strSql & ", " & ChkString(Request.Form("Moderation"), "SQLString")
else
strSql = strSql & ", 0"
end if
strSql = strSql & ", 1"
strSql = strSql & ")"
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
Application.Lock
Application(strCookieURL & "JumpBoxChanged")= DateToStr(strForumTimeAdjust)
Application.UnLock
err_Msg= ""
if Err.description <> "" then
Go_Result "خطأ = " & Err.description, 0
Response.End
else
Go_Result "التعديل تم بنجاح", 1
end if
else
Response.Write " <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """ color=""" & strHiLiteFontColor & """>هناك خطأ بالبيانات</font></p>" & vbNewLine & _
" <table align=""center"" border=""0"">" & vbNewLine & _
" <tr>" & vbNewLine & _
" <td><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strHiLiteFontColor & """><ul>" & Err_Msg & "</ul></font></td>" & vbNewLine & _
" </tr>" & vbNewLine & _
" </table>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """><a href=""JavaScript:history.go(-1)"">الرجوع لتسجيل البيانات</a></font></p>" & vbNewLine
end if
end if
if MethodType = "EditCategory" then
member = cLng(ChkUser(strDBNTUserName, strPassword,-1))
select case Member
case 0 '## Invalid Pword
Go_Result "اسم العضو او كلمة السر غير صحيحة", 0
Response.End
case 1 '## Author of Post
'## Do Nothing
case 2 '## Normal User - Not Authorised
Go_Result "المشرف فقط له حق تعديل القسم", 0
Response.End
case 3 '## Moderator
'## Do Nothing
Go_Result "المشرف فقط له حق تعديل القسم", 0
Response.End
case 4 '## Admin
'## Do Nothing
case else
Go_Result cstr(Member), 0
Response.End
end select
txtSubject = chkString(Request.Form("Subject"),"SQLString")
if strBadWordFilter = "1" then
txtSubject = chkString(ChkBadWords(Request.Form("Subject")),"SQLString")
end if
Err_Msg = ""
if txtSubject = "" then
Err_Msg = Err_Msg & "<li>يجب تسجيل عنوان القسم</li>"
end if
if strModeration <> 0 and Request.Form("Moderation") = 0 then
if CheckForUnmoderatedPosts("CAT", Cat_ID, 0, 0) > 0 then
Err_Msg = Err_Msg & "<li>Please Approve or Delete all UnModerated/Held posts in this Category before turning Moderation off</li>"
end if
end if
if Err_Msg = "" then
'## Forum_SQL - Do DB Update
strSql = "UPDATE " & strTablePrefix & "CATEGORY "
strSql = strSql & " SET CAT_NAME = '" & txtSubject & "'"
' DEM --> Start of Code added for moderation and subscription functionality
if strModeration <> 0 then
strSql = strSql & ", CAT_MODERATION = " & ChkString(Request.Form("Moderation"), "SQLString")
end if
if strSubscription <> 0 and strEmail = "1" then
strSql = strSql & ", CAT_SUBSCRIPTION = " & ChkString(Request.Form("Subscription"), "SQLString")
end if
' DEM --> End of code added for moderation and subscription functionality
strSql = strSql & " WHERE CAT_ID = " & Cat_ID
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
Application.Lock
Application(strCookieURL & "JumpBoxChanged")= DateToStr(strForumTimeAdjust)
Application.UnLock
err_Msg= ""
if Err.description <> "" then
Go_Result "خطأ = " & Err.description, 0
Response.End
else
Go_Result "التعديل تم بنجاح", 1
end if
else
Response.Write " <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """ color=""" & strHiLiteFontColor & """>هناك خطأ بالبيانات</font></p>" & vbNewLine & _
" <table align=""center"" border=""0"">" & vbNewLine & _
" <tr>" & vbNewLine & _
" <td><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strHiLiteFontColor & """><ul>" & Err_Msg & "</ul></font></td>" & vbNewLine & _
" </tr>" & vbNewLine & _
" </table>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """><a href=""JavaScript:history.go(-1)"">الرجوع لتسجيل البيانات</a></font></p>" & vbNewLine
end if
end if
'set rs = nothing
WriteFooter
Response.End
sub Go_Result(str_err_Msg, boolOk)
select case MethodType
case "Topic", "TopicQuote", "Reply", "ReplyQuote"
set rsFCountMP = my_Conn.Execute("SELECT F_COUNT_M_POSTS FROM " & strTablePrefix & "FORUM WHERE FORUM_ID = " & Forum_ID)
If not rsFCountMP Then
ForumCountMPosts = rsFCountMP("F_COUNT_M_POSTS")
rsFCountMP.close
End If
set rsFCountMP = nothing
end select
Response.write " <table dir=rtl border=""0"" width=""100%"">" & vbNewLine & _
" <tr>" & vbNewLine & _
" <td width=""33%"" ><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """>" & vbNewLine & _
" " & getCurrentIcon(strIconFolderOpen,"","align=""absmiddle""") & " <a href=""default.asp"">المنتديات</a><br />" & vbNewLine
if MethodType = "Topic" or _
MethodType = "TopicQuote" or _
MethodType = "Reply" or _
MethodType = "ReplyQuote" or _
MethodType = "Edit" or _
MethodType = "EditTopic" then
Response.Write " " & getCurrentIcon(strIconBar,"","align=""absmiddle""")
if blnCStatus <> 0 then
Response.Write getCurrentIcon(strIconFolderOpen,"","align=""absmiddle""")
else
Response.Write getCurrentIcon(strIconFolderClosed,"","align=""absmiddle""")
end if
Response.Write " <a href=""default.asp?CAT_ID=" & Cat_ID & """>" & ChkString(strCatTitle, "title") & "</a><br />" & vbNewLine
Response.Write " " & getCurrentIcon(strIconBlank,"","align=""absmiddle""") & getCurrentIcon(strIconBar,"","align=""absmiddle""")
if blnFStatus <> 0 and blnCStatus <> 0 then
Response.Write getCurrentIcon(strIconFolderOpen,"","align=""absmiddle""")
else
Response.Write getCurrentIcon(strIconFolderClosed,"","align=""absmiddle""")
end if
Response.Write " <a href=""forum.asp?FORUM_ID=" & Forum_ID & """>" & ChkString(strForum_Title, "title") & "</a><br />" & vbNewLine
end if
if MethodType = "Reply" or _
MethodType = "ReplyQuote" or _
MethodType = "TopicQuote" or _
MethodType = "Edit" or _
MethodType = "EditTopic" then
Response.Write " " & getCurrentIcon(strIconBlank,"","align=""absmiddle""") & getCurrentIcon(strIconBlank,"","align=""absmiddle""") & getCurrentIcon(strIconBar,"","align=""absmiddle""")
if blnTStatus <> 0 and blnFStatus <> 0 and blnCStatus <> 0 then
Response.Write getCurrentIcon(strIconFolderOpenTopic,"","align=""absmiddle""")
else
Response.Write getCurrentIcon(strIconFolderClosedTopic,"","align=""absmiddle""")
end if
Response.Write " <a href=""" & Request.Form("refer") & """>" & ChkString(strTopicTitle,"title") & "</a>" & vbNewLine
end if
Response.write " </font></td>" & vbNewLine & _
" </tr>" & vbNewLine & _
" </table>" & vbNewLine
if boolOk = 1 then
Response.write " <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """>"
select case MethodType
case "Edit"
Response.Write("تم التعديل بنجاح")
case "EditCategory"
' DEM --> Added if statement to handle if subscriptions or moderation is allowed
if strSubscription > 0 or strModeration > 0 then
Response.Write("تم تعديل بيانات القسم بنجاح")
else
Response.Write("تم تعديل اسم القسم بنجاح")
end if
case "EditForum"
Response.Write("تم تعديل بيانات المنتدى بنجاح")
case "EditTopic"
Response.Write("تم تعديل الموضوع بنجاح")
case "EditURL"
Response.Write("تم تعديل الوصلة بنجاح")
case "Reply", "ReplyQuote", "TopicQuote"
' DEM --> If moderated post, the counts should not be updated until after approval
' Combined the Reply, ReplyQuote and TopicQuote because the basic code was the same.
if Moderation = "Yes" then
Response.Write("تم كتابة الرد بنجاح ، لن يظهر الا بعد موافقة المشرف")
else
Response.Write("تم كتابة الرد بنجاح")
DoPCount
if ForumCountMPosts <> 0 then
DoUCount Request.Form("UserName")
end if
DoULastPost Request.Form("UserName")
end if
case "Topic"
' DEM --> If moderated post, the counts should not be updated until after approval
if Moderation = "Yes" then
Response.Write("تم كتابة الموضوع بنجاح ولن يظهر الا بعد موافقة المشرف")
else
Response.Write("تم كتابة الموضوع بنجاح")
DoTCount
DoPCount
if ForumCountMPosts <> 0 then
DoUCount Request.Form("UserName")
end if
DoULastPost Request.Form("UserName")
end if
case "Forum"
Response.Write("تم انشاء المنتدى بنجاح")
case "URL"
Response.Write("تم انشاء الوصلة بنجاح")
case "Category"
Response.Write("تم انشاء قسم بنجاح")
'############ Merge Topic Mod ################
case "MergeTopic"
Response.Write("تم الدمج بنجاح!")
DoTCount
'#############################################
case else
Response.Write("تم بنجاح")
'DoPCount
'DoUCount Request.Form("UserName")
'DoULastPost Request.Form("UserName")
end select
Response.write "</font></p>" & vbNewLine & _
" <meta http-equiv=""Refresh"" content=""2; URL=" & Request.Form("refer") & """>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """>"
select case MethodType
case "Category"
Response.Write("Remember to create at least one new forum in this category.")
case "Forum"
Response.Write("The new forum is ready for users to begin posting!")
case "EditForum", "EditCategory"
Response.Write("شكرا لمشاركتك معنا ... ونتمنى منك المزيد")
case "URL"
Response.Write("The new URL is in place!")
case "EditURL"
Response.Write("نتمنى قضاء وقت ممتع ان شاء الله")
case "Topic", "TopicQuote", "EditTopic", "Reply", "ReplyQuote", "Edit"
Response.Write("شكرا لمشاركتك معنا ... ونتمنى منك المزيد")
'########### Merge Topic Mod ###########
case "MergeTopic"
Response.Write(" ")
'#######################################
case else
Response.Write("نتمنى قضاء وقت ممتع ان شاء الله")
end select
Response.write "</font></p>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """><a href=""" & Request.Form("refer") & """>الرجوع للمنتدى</font></a></p>" & vbNewLine
else
Response.write " <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """ color=""" & strHiLiteFontColor & """>هناك مشكلة</font></p>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """ color=""" & strHiLiteFontColor & """>" & str_err_Msg & "</font></p>" & vbNewLine & _
" <p align=""center""><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """><a href=""JavaScript:history.go(-1)"">الرجوع لتصحيح المشكلة</a></font></p>" & vbNewLine
end if
WriteFooter
Response.End
end sub
sub newForumMembers(fForumID)
on error resume next
if Request.Form("AuthUsers") = "" then
exit Sub
end if
Users = split(Request.Form("AuthUsers"),",")
for count = Lbound(Users) to Ubound(Users)
strSql = "INSERT INTO " & strTablePrefix & "ALLOWED_MEMBERS ("
strSql = strSql & " MEMBER_ID, FORUM_ID) VALUES ( "& CLng(Users(count)) & ", " & fForumID & ")"
my_conn.execute (strSql),,adCmdText + adExecuteNoRecords
if err.number <> 0 then
Go_REsult err.description, 0
end if
next
on error goto 0
end sub
sub updateForumMembers(fForumID)
my_Conn.execute ("DELETE FROM " & strTablePrefix & "ALLOWED_MEMBERS WHERE FORUM_ID = " & fForumId),,adCmdText + adExecuteNoRecords
newForumMembers(fForumID)
end sub
sub newForumModerators(fForumID)
on error resume next
if Request.Form("ForumMod") = "" then
exit Sub
end if
Users = split(Request.Form("ForumMod"),",")
for count = Lbound(Users) to Ubound(Users)
strSql = "INSERT INTO " & strTablePrefix & "MODERATOR ("
strSql = strSql & " MEMBER_ID, FORUM_ID) VALUES ( "& Users(count) & ", " & fForumID & ")"
my_conn.execute (strSql),,adCmdText + adExecuteNoRecords
if err.number <> 0 then
Go_REsult err.description, 0
end if
next
on error goto 0
end sub
sub updateForumModerators(fForumID)
my_Conn.execute ("DELETE FROM " & strTablePrefix & "MODERATOR WHERE FORUM_ID = " & fForumId),,adCmdText + adExecuteNoRecords
newForumModerators(fForumID)
end sub
sub DoAutoMoveEmail(TopicNum)
'## Emails Topic Author if Topic Moved.
strSql = "SELECT " & strMemberTablePrefix & "MEMBERS.MEMBER_ID," & strMemberTablePrefix & "MEMBERS.M_NAME, " & strMemberTablePrefix & "MEMBERS.M_EMAIL, " & strActivePrefix & "TOPICS.FORUM_ID, " & strActivePrefix & "TOPICS.T_SUBJECT "
strSql = strSql & " FROM " & strMemberTablePrefix & "MEMBERS, " & strActivePrefix & "TOPICS "
strSql = strSql & " WHERE " & strMemberTablePrefix & "MEMBERS.MEMBER_ID = " & strActivePrefix & "TOPICS.T_AUTHOR "
strSql = strSql & " AND " & strActivePrefix & "TOPICS.TOPIC_ID = " & TopicNum
set rs2 = my_Conn.Execute (strSql)
If Not rs2.EOF Then
email = rs2("M_EMAIL")
user_name = rs2("M_NAME")
Topic_Title = rs2("T_SUBJECT")
ForumId = rs2("FORUM_ID")
Usernum = rs2("MEMBER_ID")
rs2.close
if lcase(strEmail) = "1" then
strRecipientsName = user_name
strRecipients = email
strSubject = strForumTitle & " - نقل الموضوع"
strMessage = "السلام عليكم - " & user_name & vbNewLine & vbNewLine
strMessage = strMessage & "موضوعك المشارك به فى " & strForumTitle & "." & vbNewLine
strMessage = strMessage & "عنوان الموضوع - " & Topic_Title & "." & vbNewLine & vbNewLine
if not(chkForumAccess(ForumID,Usernum,false)) then
strMessage = strMessage & "تم الغاء الموضوع من المنتدى - لأى استفسار يمكنك الاتصال بالمشرف العام للمنتدى" & vbNewLine
else
strMessage = strMessage & "تم نقل الموضوع - يمكنك مشاهدة الموضوع : " & vbNewLine & Left(Request.Form("refer"), InstrRev(Request.Form("refer"), "/")) & "topic.asp?TOPIC_ID=" & TopicNum & vbNewLine
end if
%>
<!--#INCLUDE FILE="inc_mail.asp" -->
<%
end if
end if
Set rs2=Nothing
end sub
'## Subscribe checkbox start ##
sub DeleteSubscription(Level, MemberID, CatID, ForumID, TopicID)
' --- Delete the appropriate sublevel of subscriptions
StrSql = "DELETE FROM " & strTablePrefix & "SUBSCRIPTIONS"
StrSql = StrSql & " WHERE " & strTablePrefix & "SUBSCRIPTIONS.MEMBER_ID = " & MemberID
if sublevel = "CAT" then
StrSql = StrSQL & " AND " & strTablePrefix & "SUBSCRIPTIONS.CAT_ID = " & CatID
elseif sublevel = "FORUM" then
StrSql = StrSQL & " AND " & strTablePrefix & "SUBSCRIPTIONS.FORUM_ID = " & ForumID
elseif sublevel = "TOPIC" then
StrSql = StrSQL & " AND " & strTablePrefix & "SUBSCRIPTIONS.TOPIC_ID = " & TopicID
end if
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
end sub
sub AddSubscription(SubLevel, MemberID, CatID, ForumID, TopicID)
strsql = "SELECT COUNT(Subscription_ID) As Total FROM " & strTablePrefix & "SUBSCRIPTIONS" & _
" WHERE (MEMBER_ID=" & MemberID & " AND TOPIC_ID=" & TopicID & ") OR " & _
" (MEMBER_ID=" & MemberID & " AND FORUM_ID=" & ForumID & " AND CAT_ID=" & CAT_ID & " AND TOPIC_ID=0) OR " & _
" (MEMBER_ID=" & MemberID & " AND CAT_ID=" & CatID & " AND FORUM_ID=0 AND TOPIC_ID=0) OR " & _
" (MEMBER_ID=" & MemberID & " AND FORUM_ID=0 AND CAT_ID=0 AND TOPIC_ID=0)"
Set rsSubs = my_conn.Execute(strSql)
If Not rsSubs.EOF Then
totalSubs = rsSubs("Total")
rsSubs.Close
Else
totalSubs = -1
End If
Set rsSubs = Nothing
If TotalSubs <= 0 Then
' --- Insert the appropriate sublevel subscription
StrSql = "INSERT INTO " & strTablePrefix & "SUBSCRIPTIONS"
StrSql = StrSql & "(MEMBER_ID, CAT_ID, FORUM_ID, TOPIC_ID) VALUES (" & MemberID & ", "
if sublevel = "BOARD" then
StrSql = StrSql & "0, 0, 0)"
elseif sublevel = "CAT" then
StrSql = StrSql & CatID & ", 0, 0)"
elseif sublevel = "FORUM" then
StrSql = StrSql & CatID & ", " & ForumID & ", 0)"
else
StrSql = StrSql & CatID & ", " & ForumID & ", " & TopicID & ")"
end if
my_Conn.Execute (strSql),,adCmdText + adExecuteNoRecords
End If
end sub
'## Subscribe checkbox end ##
%>