zblog用了6年,至今一直用的是最经典的zblog 1.8 asp版,后面不想升级主要是不想折腾,觉得没这个必要,现在这个版本用得很好。不过话又说回来,zblog的后台管理界面确实太简单了,有一些信息我们并不能直接从后台获取,例如文章的浏览数量,评论数量等,而文章的浏览数量是我最近比较关注的问题。
由于对zblog的asp程序比较了解,插件也开发了好几个,所以我想能否通过更改下后台管理程序,满足自己的需要,在文章管理界面直接显示每篇文章的浏览数。
程序修改起来很容易,甚至不用任何调试,很快就改好了。看看下面的新界面吧。
zblog文章管理界面
“浏览”一列是新增的。
加了这一列后,可以很方便的看到哪些文章更受欢迎,哪些文章的用户群更多,使我们明白如何去更新网站和SEO优化。
下面附上代码。
打开文件
\FUNCTION\c_system_manage.asp
找到如下函数
'*********************************************************
' 目的: Manager Articles
'*********************************************************
Function ExportArticleList(intPage,intCate,intLevel,intTitle)
... ...
End Function
'*********************************************************
然后替换为
'*********************************************************
' 目的: Manager Articles
'*********************************************************
Function ExportArticleList(intPage,intCate,intLevel,intTitle)
Call Add_Response_Plugin("Response_Plugin_ArticleMng_SubMenu",MakeSubMenu(ZC_MSG168 & "(" & ZC_MSG100 & ")","../cmd.asp?act=ArticleEdt&type=" & ZC_BLOG_WEBEDIT,"m-left",False))
Call Add_Response_Plugin("Response_Plugin_ArticleMng_SubMenu",MakeSubMenu(ZC_MSG168 & "(" & ZC_MSG101 & ")","../cmd.asp?act=ArticleEdt","m-left",False))
Dim i
Dim objRS
Dim strSQL
Dim strPage
Dim intPageAll
Call CheckParameter(intPage,"int",1)
Call CheckParameter(intCate,"int",-1)
Call CheckParameter(intLevel,"int",-1)
Call CheckParameter(intTitle,"sql",-1)
intTitle=vbsunescape(intTitle)
intTitle=FilterSQL(intTitle)
Response.Write "<div class=""Header"">" & ZC_MSG067 & "</div>"
Response.Write "<div class=""SubMenu"">" & Response_Plugin_ArticleMng_SubMenu & "</div>"
Response.Write "<div id=""divMain2"">"
Call GetBlogHint()
Response.Write "<form id=""edit"" method=""post"" enctype=""application/x-www-form-urlencoded"" action=""../admin/admin.asp?act=ArticleMng"">"
Response.Write "<p>"&ZC_MSG158&":</p><p>"
Response.Write ZC_MSG012&" <select class=""edit"" size=""1"" id=""cate"" name=""cate"" style=""width:100px;"" ><option value=""-1"">"&ZC_MSG157&"</option> "
Dim Category
For Each Category in Categorys
If IsObject(Category) Then
Response.Write "<option value="""&Category.ID&""" "
Response.Write ">"&TransferHTML(Category.Name,"[html-format]")&"</option>"
End If
Next
Response.Write "</select> "
Response.Write ZC_MSG061&" <select class=""edit"" size=""1"" id=""level"" name=""level"" style=""width:80px;"" ><option value=""-1"">"&ZC_MSG157&"</option> "
For i=LBound(ZVA_Article_Level_Name)+1 to Ubound(ZVA_Article_Level_Name)
Response.Write "<option value="""&i&""" "
Response.Write ">"&ZVA_Article_Level_Name(i)&"</option>"
Next
Response.Write "</select>"
Response.Write " "&ZC_MSG224&" <input id=""title"" name=""title"" style=""width:150px;"" type=""text"" value="""" /> "
Response.Write "<input type=""submit"" class=""button"" value="""&ZC_MSG087&""">"
Response.Write "</p></form>"
Set objRS=Server.CreateObject("ADODB.Recordset")
objRS.CursorType = adOpenKeyset
objRS.LockType = adLockReadOnly
objRS.ActiveConnection=objConn
objRS.Source=""
strSQL="WHERE ([log_Level]>0) AND (true=true) "
If CheckRights("Root")=False Then strSQL= strSQL & "AND [log_AuthorID] = " & BlogUser.ID
If intCate<>-1 Then
strSQL= strSQL & " AND [log_CateID] = " & intCate
End If
If intLevel<>-1 Then
strSQL= strSQL & " AND [log_Level] = " & intLevel
End If
If intTitle<>"-1" Then
strSQL = strSQL & "AND ( (InStr(1,LCase([log_Title]),LCase('" & intTitle &"'),0)<>0) OR (InStr(1,LCase([log_Intro]),LCase('" & intTitle &"'),0)<>0) OR (InStr(1,LCase([log_Content]),LCase('" & intTitle &"'),0)<>0) )"
End If
Response.Write "<table border=""1"" width=""100%"" cellspacing=""1"" cellpadding=""1"">"
Response.Write "<tr><td>"& ZC_MSG076 &"</td><td>"& ZC_MSG012 &"</td><td>"& ZC_MSG003 &"</td><td>"& ZC_MSG075 &"</td><td>"& ZC_MSG060 &"</td><td>"& ZC_MSG130 &"</td><td></td><td></td><td></td></tr>"
objRS.Open("SELECT * FROM [blog_Article] "& strSQL &" ORDER BY [log_PostTime] DESC")
objRS.PageSize=ZC_MANAGE_COUNT
If objRS.PageCount>0 Then objRS.AbsolutePage = intPage
intPageAll=objRS.PageCount
If (Not objRS.bof) And (Not objRS.eof) Then
For i=1 to objRS.PageSize
Response.Write "<tr>"
Response.Write "<td>" & objRS("log_ID") & "</td>"
Dim Cate
For Each Cate in Categorys
If IsObject(Cate) Then
If Cate.ID=objRS("log_CateID") Then
Response.Write "<td>" & Left(Cate.Name,6) & "</td>"
End If
End If
Next
Dim User
For Each User in Users
If IsObject(User) Then
If User.ID=objRS("log_AuthorID") Then
Response.Write "<td>" & User.Name & "</td>"
End If
End If
Next
'Response.Write "<td>" & ZVA_Article_Level_Name(objRS("log_Level")) & "</td>"
Response.Write "<td>" & FormatDateTime(objRS("log_PostTime"),vbShortDate) & "</td>"
If Len(objRS("log_Title"))>14 Then
Response.Write "<td><a href=""../view.asp?id=" & objRS("log_ID") & """ title="""& Replace(objRS("log_Title"),"""","") &""" target=""_blank"">" & Left(objRS("log_Title"),14) & "..." & "</a></td>"
Else
Response.Write "<td><a href=""../view.asp?id=" & objRS("log_ID") & """ title="""& Replace(objRS("log_Title"),"""","") &""" target=""_blank"">" & objRS("log_Title") & "</a></td>"
End If
Response.Write "<td>" & objRS("log_ViewNums") & "</td>"
Response.Write "<td align=""center""><a href=""../cmd.asp?act=ArticleEdt&type="& ZC_BLOG_WEBEDIT &"&id=" & objRS("log_ID") & """>[" & ZC_MSG100 & "]</a></td>"
Response.Write "<td align=""center""><a href=""../cmd.asp?act=ArticleEdt&id=" & objRS("log_ID") & """>[" & ZC_MSG101 & "]</a></td>"
Response.Write "<td align=""center""><a onclick='return window.confirm("""& ZC_MSG058 &""");' href=""../cmd.asp?act=ArticleDel&id=" & objRS("log_ID") & """>[" & ZC_MSG063 & "]</a></td>"
Response.Write "</tr>"
objRS.MoveNext
If objRS.eof Then Exit For
Next
End If
Response.Write "</table>"
'For i=1 to objRS.PageCount
' strPage=strPage &"<a href='../admin/admin.asp?act=ArticleMng&page="& i &"&cate="&ReQuest("cate")&"&level="&ReQuest("level")&"&title="&Escape(ReQuest("title"))&"'>["& Replace(ZC_MSG036,"%s",i) &"]</a> "
'Next
strPage=ExportPageBar(intPage,intPageAll,ZC_PAGEBAR_COUNT,"../admin/admin.asp?act=ArticleMng&cate="&ReQuest("cate")&"&level="&ReQuest("level")&"&title="&Escape(ReQuest("title")) & "&page=")
Response.Write "<hr/>" & ZC_MSG042 & ": " & strPage
Response.Write "</div>"
objRS.Close
Set objRS=Nothing
ExportArticleList=True
End Function
'*********************************************************
红色标记的代码是添加的部分。
请注意,这个是zblog1.8版本的程序,不一定适合其他版本,更新前请先备份程序。
☉ZBlog SEO优化:侧栏最新文章静态化 (2015-2-6 8:16:39)
☉解决zblog后台速度慢的问题 (2014-12-16 3:13:11)
☉警惕zblog的草稿、私人、锁定文章泄漏你的秘密 (2013-12-17 22:42:59)
☉zblog上传文件出现未知错误 大小不能超过200k【解决】 (2012-11-20 22:14:5)
☉zblog写文章也能打出换行符 附FCKeditor常见使用技巧 (2012-9-5 18:12:11)
☉你没想到的在zblog博客评论留下链接的SEO方法 (2012-8-28 18:7:11)
☉如何实现zblog发布文章后自动更新sitemap文件 (2012-3-14 23:5:57)
☉去掉zblog留言编辑后留下的“最后编辑”那句提示文字 (2012-2-22 17:4:1)
☉zblog用户可放心 百度能读懂中文标签【图】 (2011-11-15 23:3:30)
☉SEO:百度对zblog的中文tag标签地址并不买帐 (2011-1-14 23:13:8)
☉Zblog只在首页和该文章所在分类页显示文章置顶的方法 (2010-11-15 23:38:57)
☉zblog主题本地安装失败:Theme Sapper 认为: 该主题不需要升级 (2010-11-10 16:43:19)
☉月光博客的真实流量和估算收入 (2010-9-28 0:10:58)
☉zblog重建文件超时问题的解决方法 (2010-9-24 22:45:22)
☉如何去掉ZBLOG的文章摘要 (2010-8-19 21:24:36)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。