admin_makelist.asp

来自「关于网络渗透技术的详细讲解」· ASP 代码 · 共 490 行 · 第 1/2 页

ASP
490
字号
<!-- #include file="../Conn.asp" -->
<!-- #include file="Inc.asp" -->
<!-- #include file="Cls_MakeHTML.asp" -->
<%
'====================================================================
'=              Copyright (c) 2004,NB联盟 E.P.K开发小组             =
'=                      All rights reserved.                        =
'=------------------------------------------------------------------=
'=                     文件名称:Admin_MakeList.asp                 =
'=                     摘    要:后台—栏目列表生成文件             =
'=------------------------------------------------------------------=
'=                     最后更新:eason007                           =
'=                     最后日期:2004-12-22                         =
'====================================================================
Admin_Nav

Server.ScriptTimeout=9999999

If Instr(1,Session("Master_Power"),"42,")<=0 Then 
	ErrMsg="对不起,你没有访问该页面的权限"
	Call Error(1)
End If

Dim Atcion,NBArticle_HTML,PostId
Atcion=Request.QueryString ("atcion")
PostId=Request.Form ("PostId")

Select Case Lcase(Atcion)
Case "mark"
	Response.Flush
	Response.Flush
	Response.Write "正在生成栏目列表,请稍候。。<br><br>"
	Response.Flush
	Response.Flush

	Call MarkList
Case Else
	Call Main
End Select

Sub Main
Dim Level
%>
<SCRIPT LANGUAGE=javascript>
function SelectAll() {
	for (var i=0;i<document.selform.selType.length;i++) {
		var e=document.selform.selType[i];
		e.checked=!e.checked;
	}
}
</script>
<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" class=TableBorder>
	<form action="?atcion=mark" method="post" name="selform">
	<tr> 
		<th colspan="2">批量生成分列表静态网页</th>
	</tr>
	<tr>
		<td colspan="2" class=forumrow><font color="#FF0000">说明:</font>本系统提供八种列表排序方式,根据文章数量及服务器性能不同,生成的时间也不同,一般2000篇文章12个分类,每页15个软件每种排序列表文件生成时间需要1分钟左右,建议每天批量更新文章两次,每次按时间降序排列生成一次,其他排序方式可以每两天批量生成一次。</td>
	</tr>
	<tr>
		<td width="10%">选择栏目</td>
		<td width="90%"><select name="postid">
		<option value="">所有栏目</option>
        <%Sql="select id,title,code from [NB_Column] order by code"
        set rs=conn.execute(sql)
        Do While Not rs.eof
			Level=(Len(rs(2))/4-1)*2
			Response.Write "<option value="""&rs(0)&""">"
			If Len(rs(2))>4 Then Response.Write "├"
			Response.Write String(Level,"-")
			Response.Write rs(1)&"</option>"
			rs.movenext
		Loop
		rs.close%>
        </select></td>
	</tr>
	<tr>
		<td colspan="2">排序方式 (说明:降序是从大到小,升序是从小到大)</td>
	</tr>
	<tr> 
		<td> <input name="selType" type="checkbox" id="selType" value="1" checked></td>
		<td>第一种:按 <font color=800000>发布时间 降序</font> 排列</td>
	</tr>
	<tr>
		<td> <input name="selType" type="checkbox" id="selType" value="2"></td>
		<td>第二种:按 <font color=800000>发布时间 升序</font> 排列</td>
	</tr>
	<tr> 
		<td> <input name="selType" type="checkbox" id="selType" value="3"></td>
		<td>第三种:按 <font color=800000>文章标题 降序</font> 排列</td>
	</tr>
	<tr>
		<td> <input name="selType" type="checkbox" id="selType" value="4"></td>
		<td>第四种:按 <font color=800000>文章标题 升序</font> 排列</td>
	</tr>
	<tr> 
		<td> <input name="selType" type="checkbox" id="selType" value="5"></td>
		<td>第五种:按 <font color=800000>浏览人数 降序</font> 排列</td>
	</tr>
	<tr> 
		<td> <input name="selType" type="checkbox" id="selType" value="6"></td>
		<td>第六种:按 <font color=800000>浏览人数 升序</font> 排列</td>
	</tr>
	<tr> 
		<td> <input name="selType" type="checkbox" id="selType" value="7"></td>
		<td>第七种:按 <font color=800000>评论人数 降序</font> 排列</td>
	</tr>
	<tr> 
		<td> <input name="selType" type="checkbox" id="selType" value="8"></td>
		<td>第八种:按 <font color=800000>评论人数 升序</font> 排列</td>
	</tr>
	<tr> 
		<td colspan="2">(<input type="checkbox" name="checkbox" value="checkbox" onClick="javascript:SelectAll()">选择/反选) <input type="submit" name="Submit" value="执行操作"></td>
	</tr>
	<tr> 
		<td colspan="2" class=forumRowHighlight>提示:每页显示的数量越多,服务器执行速度越快;系统第一次使用必须全部生成一次。</td>
	</tr>
	</form>
</table>
<%
End Sub

Sub MarkList
	Dim SelType,ColumnList
	Dim k,l,TmpStr
	
	If Not ChkPost Then 
		ErrMsg="对不起,请不要从外部提交数据!"
		Call Error(1)
	End If
	
	SelType=Request("seltype")
	
	SQL="select id from [NB_Column]"
	If PostId<>"" Then SQL=SQL&" Where [Id]="&PostId
	
	Set Rs=Conn.Execute(SQL)
	If Not rs.eof And Not rs.bof Then 
		ColumnList=Rs.GetRows()
		For k=0 To Ubound(ColumnList,2)
			TmpStr=Split(SelType,", ")
			For l=0 To Ubound(TmpStr)
				Select Case TmpStr(l)
				Case "1"
					MakeColumn ColumnList(0,k),"AddDate","Desc"
				Case "2"
					MakeColumn ColumnList(0,k),"AddDate","Asc"
				Case "3"
					MakeColumn ColumnList(0,k),"Title","Desc"
				Case "4"
					MakeColumn ColumnList(0,k),"Title","Asc"
				Case "5"
					MakeColumn ColumnList(0,k),"ViewNum","Desc"
				Case "6"
					MakeColumn ColumnList(0,k),"ViewNum","Asc"
				Case "7"
					MakeColumn ColumnList(0,k),"CommentNum","Desc"
				Case "8"
					MakeColumn ColumnList(0,k),"CommentNum","Asc"
				End Select
			Next
		Next
	End If
	response.write "<font color=red>栏目列表生成完成。</font>"
End Sub

Function MakeColumn(ColumnId,Field,Order)
	Dim ColumnFriend,TopicNav,PageNumNav
	Dim PageTop,PageContent,PageFoot
	Dim RCount,PCount,PageSize
	Dim Tmp,i,j,TempStr
	Dim TopicJSList,ColumnInfo
	Dim FileName,S
	
	Set NBArticle_HTML=New Cls_MakeHTML
	PageSize=NBArticle_HTML.SysInfo(10)
	
	'读取栏目信息
	ColumnInfo=GetColumnInfo(ColumnId)
	
	'读取栏目友情连接
	ColumnFriend=GetColumnFriend(ColumnId)
	
	NBArticle_HTML.PageTitle=ColumnInfo(1,0)&" - "&NBArticle_HTML.SiteName
	NBArticle_HTML.PageNav="<strong><a href=""../"">"&NBArticle_HTML.SiteName&"</a></strong> - <a href=""Article_"&ColumnId&"_AddDate_Desc_1.Htm""><font color=3366cc>"&ColumnInfo(1,0)&"</font></a> - 列表"
	
	PageTop=NBArticle_HTML.Top
	PageTop=Replace(PageTop,"images/","../Images/")
	PageTop=Replace(PageTop,"pic/","../pic/")
	PageTop=Replace(PageTop,"js/","../js/")
	
	PageFoot=NBArticle_HTML.Foot
	PageFoot=Replace(PageFoot,"images/","../Images/")
	PageFoot=Replace(PageFoot,"pic/","../pic/")
	PageFoot=Replace(PageFoot,"js/","../js/")

	If ColumnInfo(3,0) Then 
		PageContent=NBArticle_HTML.JumpOutUrl(ColumnInfo(4,0))
			
		FileName=Server.MapPath("../ArticleList/Article_"&ColumnId&"_"&Field&"_"&Order&"_1.Htm")

		Set S = Server.CreateObject("ADODB.STREAM")
		With S
			.Open
			.Charset = "GB2312"
			.WriteText PageContent
			.SaveToFile FileName,2
			.Close
		End With
		Set S = Nothing

		Exit Function
			
	End If
		
		TopicNav="<table border=""0"" cellpadding=""0"" cellspacing=""0"" align=""center"" width=""100%"">"&Chr(10)
		TopicNav=TopicNav&"<tr align=""center"">"&Chr(10)
		TopicNav=TopicNav&"<td width=""65%"" height=""28"" background=""images/TitleTop.gif"">"
		If Field="Title" And Order="Desc" Then 
			TopicNav=TopicNav&"<a href=""Article_"&ColumnId&"_Title_Asc_1.Htm"" title=""按文章标题升序排列"">↓"
		Else
			TopicNav=TopicNav&"<a href=""Article_"&ColumnId&"_Title_Desc_1.Htm"" title=""按文章标题降序排列"">"
			If Field="Title" Then TopicNav=TopicNav&"↑"
		End If
		TopicNav=TopicNav&"<strong><font color=""#FFFFFF"">标题</font></strong></a></td>"&Chr(10)
		TopicNav=TopicNav&"<td width=""20%"" background=""images/TitleTop.gif"">"
		If Field="AddDate" And Order="Desc" Then 
			TopicNav=TopicNav&"<a href=""Article_"&ColumnId&"_AddDate_Asc_1.Htm"" title=""按文章发布日期升序排列"">↓"
		Else
			TopicNav=TopicNav&"<a href=""Article_"&ColumnId&"_AddDate_Desc_1.Htm"" title=""按文章发布日期降序排列"">"
			If Field="AddDate" Then TopicNav=TopicNav&"↑"
		End If
		TopicNav=TopicNav&"<strong><font color=""#FFFFFF"">发布日期</font></strong></a></td>"&Chr(10)
		TopicNav=TopicNav&"<td width=""15%"" background=""images/TitleTop.gif"">"
		If Field="ViewNum" And Order="Desc" Then 
			TopicNav=TopicNav&"<a href=""Article_"&ColumnId&"_ViewNum_Asc_1.Htm"" title=""按浏览人数升序排列"">↓"
		Else
			TopicNav=TopicNav&"<a href=""Article_"&ColumnId&"_ViewNum_Desc_1.Htm"" title=""按浏览人数降序排列"">"
			If Field="ViewNum" Then TopicNav=TopicNav&"↑"
		End If
		TopicNav=TopicNav&"<strong><font color=""#FFFFFF"">浏览</font></strong></a><strong><font color=""#FFFFFF"">/</font></strong>"
		If Field="CommentNum" And Order="Desc" Then 
			TopicNav=TopicNav&"<a href=""Article_"&ColumnId&"_CommentNum_Asc_1.Htm"" title=""按回复人数升序排列"">↓"
		Else
			TopicNav=TopicNav&"<a href=""Article_"&ColumnId&"_CommentNum_Desc_1.Htm"" title=""按回复人数降序排列"">"

⌨️ 快捷键说明

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