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

📄 admin_count.asp

📁 代码名称: Snitz Forums 2000 代码语言: 英文 代码类型: 国外代码 运行环境: ASP 授权方式: 免费代码 代码大小: 530kb 代码等级: 3 整
💻 ASP
📖 第 1 页 / 共 2 页
字号:
<%
'#################################################################################
'## Snitz Forums 2000 v3.4.05
'#################################################################################
'## Copyright (C) 2000-05 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 (at your option) 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 our support forums at:
'## http://forum.snitz.com
'##
'## Correspondence and Marketing Questions can be sent to:
'## manderson@snitz.com
'##
'#################################################################################
%>
<!--#INCLUDE FILE="config.asp"-->
<!--#INCLUDE FILE="inc_sha256.asp"-->
<!--#INCLUDE FILE="inc_header.asp" -->
<%
if Session(strCookieURL & "Approval") <> "15916941253" then
	scriptname = split(request.servervariables("SCRIPT_NAME"),"/")
	Response.Redirect "admin_login.asp?target=" & scriptname(ubound(scriptname))
end if
intStep = Request.QueryString("Step")
if intStep = "" or IsNull(intStep) then
	intStep = 1
else
	intStep = cLng(intStep)
end if

if intStep < 5 then 
	Response.write "<meta http-equiv=""Refresh"" content=""1; URL=admin_count.asp?Step=" & intStep + 1 & """>"
else
	Response.write "<meta http-equiv=""Refresh"" content=""60; URL=admin_home.asp"">"
end if

Response.Write	"      <table border=""0"" width=""100%"">" & vbNewLine & _
		"        <tr>" & vbNewLine & _
		"          <td width=""33%"" align=""left"" nowrap><font face=""" & strDefaultFontFace & """ size=""" & strDefaultFontSize & """>" & vbNewLine & _
		"          " & getCurrentIcon(strIconFolderOpen,"","") & "&nbsp;<a href=""default.asp"">All&nbsp;Forums</a><br />" & vbNewLine & _
		"          " & getCurrentIcon(strIconBar,"","") & getCurrentIcon(strIconFolderOpen,"","") & "&nbsp;<a href=""admin_home.asp"">Admin&nbsp;Section</a><br />" & vbNewLine & _
		"          " & getCurrentIcon(strIconBlank,"","") & getCurrentIcon(strIconBar,"","") & getCurrentIcon(strIconFolderOpenTopic,"","") & "&nbsp;Update&nbsp;Forum&nbsp;Counts<br /></font></td>" & vbNewLine & _
		"        </tr>" & vbNewLine & _
		"      </table>" & vbNewLine & _
		"      <br />" & vbNewLine & _
		"      <table align=""center"" border=""0"">" & vbNewLine & _
		"        <tr>" & vbNewLine & _
		"          <td align=""center"" colspan=""2""><p><b><font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """>Updating Counts Step " & intStep & " of 5 </font></b><br /></td>" & vbNewLine & _
		"        </tr>" & vbNewLine
set Server2 = Server
Server2.ScriptTimeout = 6000

if intStep = 1 then 

	Response.Write "        <tr>" & vbNewline
	Response.Write "          <td align=""right"" valign=""top""><font face=""" &strDefaultFontFace & """>Topics:</font></td>" & vbNewline
	Response.Write "          <td valign=""top""><font face=""" &strDefaultFontFace & """>"

	'## Forum_SQL - Get contents of the Forum table related to counting
	strSql = "SELECT FORUM_ID, F_TOPICS FROM " & strTablePrefix & "FORUM WHERE F_TYPE <> 1 "

	set rs = Server.CreateObject("ADODB.Recordset")
	rs.open strSql, my_Conn, adOpenForwardOnly, adLockReadOnly, adCmdText

	if rs.EOF then
		recForumCount = ""
	else
		allForumData = rs.GetRows(adGetRowsRest)
		recForumCount = UBound(allForumData,2)
	end if

	rs.close
	set rs = nothing

	if recForumCount <> "" then
		fFORUM_ID = 0
		fF_TOPICS = 1
		i = 0 

		for iForum = 0 to recForumCount
			ForumID = allForumData(fFORUM_ID,iForum)
			ForumTopics = allForumData(fF_TOPICS,iForum)

			i = i + 1

			'## Forum_SQL - count total number of topics in each forum in Topics table
			strSql = "SELECT count(FORUM_ID) AS cnt "
			strSql = strSql & " FROM " & strTablePrefix & "TOPICS "
			strSql = strSql & " WHERE FORUM_ID = " & ForumID
			strSql = strSql & " AND T_STATUS <= 1 "

			set rs1 = my_Conn.Execute(strSql)

			if rs1.EOF or rs1.BOF then
				intF_TOPICS = 0
			else
				intF_TOPICS = rs1("cnt")
			end if

			set rs1 = nothing

			'## Forum_SQL - count total number of topics in each forum in A_Topics table
			strSql = "SELECT count(FORUM_ID) AS cnt "
			strSql = strSql & " FROM " & strTablePrefix & "A_TOPICS "
			strSql = strSql & " WHERE FORUM_ID = " & ForumID
			strSql = strSql & " AND T_STATUS <= 1 "

			set rs1 = my_Conn.Execute(strSql)

			if rs1.EOF or rs1.BOF then
				intF_A_TOPICS = 0
			else
				intF_A_TOPICS = rs1("cnt")
			end if

			set rs1 = nothing

			strSql = "UPDATE " & strTablePrefix & "FORUM "
			strSql = strSql & " SET F_TOPICS = " & intF_TOPICS
			strSql = strSql & " , F_A_TOPICS = " & intF_A_TOPICS
			strSql = strSql & " WHERE FORUM_ID = " & ForumID

			my_conn.execute(strSql),,adCmdText + adExecuteNoRecords

			Response.Write "."
			if i = 80 then 
				Response.Write "          <br />" & vbNewline
				i = 0
			end if
		next
	end if

	Response.Write "          </font></td>" & vbNewline
	Response.Write "        </tr>" & vbNewline

elseif intStep = 2 then 

	Response.Write "        <tr>" & vbNewline
	Response.Write "          <td align=""right"" valign=""top""><font face=""" &strDefaultFontFace & """>Topic Replies:</font></td>" & vbNewline
	Response.Write "          <td valign=""top""><font face=""" & strDefaultFontFace & """>"

	'## Forum_SQL
	strSql = "SELECT TOPIC_ID, T_REPLIES FROM " & strTablePrefix & "TOPICS"
	strSql = strSql & " WHERE " & strTablePrefix & "TOPICS.T_STATUS <= 1"

	set rs = Server.CreateObject("ADODB.Recordset")
	rs.open strSql, my_Conn, adOpenForwardOnly, adLockReadOnly, adCmdText

	if rs.EOF then
		recTopicCount = ""
	else
		allTopicData = rs.GetRows(adGetRowsRest)
		recTopicCount = UBound(allTopicData,2)
	end if

	rs.close
	set rs = nothing

	if recTopicCount <> "" then
		fTOPIC_ID = 0
		fT_REPLIES = 1
		i = 0 

		for iTopic = 0 to recTopicCount
			TopicID = allTopicData(fTOPIC_ID,iTopic)
			TopicReplies = allTopicData(fT_REPLIES,iTopic)

			i = i + 1

			'## Forum_SQL - count total number of replies in Topics table
			strSql = "SELECT count(REPLY_ID) AS cnt "
			strSql = strSql & " FROM " & strTablePrefix & "REPLY "
			strSql = strSql & " WHERE TOPIC_ID = " & TopicID
			strSql = strSql & " AND R_STATUS <= 1 "

			set rs = Server.CreateObject("ADODB.Recordset")
			rs.open strSql, my_Conn, adOpenForwardOnly, adLockReadOnly, adCmdText

			if rs.EOF then
				recReplyCntCount = ""
			else
				allReplyCntData = rs.GetRows(adGetRowsRest)
				recReplyCntCount = UBound(allReplyCntData,2)
			end if

			rs.close
			set rs = nothing

			if recReplyCntCount <> "" then
				fReplyCnt = 0

				for iCnt = 0 to recReplyCntCount
					ReplyCnt = allReplyCntData(fReplyCnt,iCnt)

					intT_REPLIES = ReplyCnt

					'## Forum_SQL - Get last_post and last_post_author for Topic
					strSql = "SELECT R_DATE, R_AUTHOR "
					strSql = strSql & " FROM " & strTablePrefix & "REPLY "
					strSql = strSql & " WHERE TOPIC_ID = " & TopicID & " "
					strSql = strSql & " AND R_STATUS <= 1"
					strSql = strSql & " ORDER BY R_DATE DESC"

					set rs2 = my_Conn.Execute (strSql)

					if not(rs2.eof or rs2.bof) then
						rs2.movefirst
						strLast_Post = rs2("R_DATE")
						strLast_Post_Author = rs2("R_AUTHOR")
					else
						strLast_Post = ""
						strLast_Post_Author = ""
					end if

					set rs2 = nothing
				next
                        else
				intT_REPLIES = 0

				set rs2 = Server.CreateObject("ADODB.Recordset")

				'## Forum_SQL - Get post_date and author from Topic
				strSql = "SELECT T_AUTHOR, T_DATE "
				strSql = strSql & " FROM " & strTablePrefix & "TOPICS "
				strSql = strSql & " WHERE TOPIC_ID = " & TopicID & " "
				strSql = strSql & " AND T_STATUS <= 1"

				set rs2 = my_Conn.Execute(strSql)

				if not(rs2.eof or rs2.bof) then
					strLast_Post = rs2("T_DATE")
					strLast_Post_Author = rs2("T_AUTHOR")
				else
					strLast_Post = ""
					strLast_Post_Author = ""
				end if

				set rs2 = nothing

			end if

			strSql = "UPDATE " & strTablePrefix & "TOPICS "
			strSql = strSql & " SET T_REPLIES = " & intT_REPLIES
			if strLast_Post <> "" then 
				strSql = strSql & ", T_LAST_POST = '" & strLast_Post & "'"
				if strLast_Post_Author <> "" then 
					strSql = strSql & ", T_LAST_POST_AUTHOR = " & strLast_Post_Author 
				end if
			end if
			strSql = strSql & " WHERE TOPIC_ID = " & TopicID

			my_conn.execute(strSql),,adCmdText + adExecuteNoRecords

			Response.Write "."
			if i = 80 then 
				Response.Write "          <br />" & vbNewline
				i = 0
			end if
		next
	end if

	Response.Write "          </font></td>" & vbNewline
	Response.Write "        </tr>" & vbNewline

elseif intStep = 3 then 

	Response.Write "        <tr>" & vbNewline
	Response.Write "          <td align=""right"" valign=""top""><font face=""" &strDefaultFontFace & """>UnModerated Topic Replies:</font></td>" & vbNewline
	Response.Write "          <td valign=""top""><font face=""" & strDefaultFontFace & """>"

	'## Forum_SQL
	strSql = "SELECT TOPIC_ID FROM " & strTablePrefix & "TOPICS"
	strSql = strSql & " WHERE " & strTablePrefix & "TOPICS.T_STATUS <= 1"

⌨️ 快捷键说明

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