在后台有供安装使用的Z_blog热门文章插件下载安装,但是始终无法安装成功,在最后一步提示安装失败,将安装文件上传也无济于事。只有放弃这个标准的控件,后根据月光博客提供的代码,修改文件后成功。但是月光博客提供的是较早版本中使用的办法,对于最新的1.8版,需要做进一步的改进,改进的改进。
当然,对于能够使用标准按照的博客,推荐还是尽量能够使用标准安装,这种安装是针对空间不稳定,不能创建asp文件的博主使用:
在c_system_event.asp中加入下面的函数:
'*********************************************************
' 目的: 重建排行
'*********************************************************
Function BlogReBuild_Toplist()
Dim i
Dim objRS
Dim objStream
Dim objArticle
Dim strLogUrl
Dim strPrevious
Set objRS=objConn.Execute("SELECT [log_ID],[log_Url],[log_Title] FROM [blog_Article] WHERE [log_Level]>1 ORDER BY log_CommNums*100 + log_TrackBackNums*200 + sqr(log_ViewNums)*10 - (date()-Log_PostTime)*(date()-Log_PostTime) DESC")
If (Not objRS.bof) And (Not objRS.eof) Then
For i=1 to ZC_PREVIOUS_COUNT
strLogUrl=objRS("log_Url")
If IsNull(strLogUrl) Or IsEmpty(strLogUrl) Or strLogUrl="" Then
strLogUrl=objRS("log_ID")
End If
strLogUrl=ZC_BLOG_HOST & ZC_STATIC_DIRECTORY & "/" & strLogUrl & "." & ZC_STATIC_TYPE
strPrevious=strPrevious & "<li><a href="""& strLogUrl & """>" & objRS("log_Title") & "</a></li>"
objRS.MoveNext
If objRS.eof Then Exit For
Next
End If
objRS.close
strPrevious=TransferHTML(strPrevious,"[no-asp]")
Set objStream = Server.CreateObject("ADODB.Stream")
With objStream
.Type = adTypeText
.Mode = adModeReadWrite
.Open
.Charset = "utf-8"
.Position = objStream.Size
.WriteText = strPrevious
.SaveToFile BlogPath & "/include/toplist.asp",adSaveCreateOverWrite
.Close
End With
Set objStream = Nothing
BlogReBuild_Toplist=True
End Function
'*********************************************************
然后在MakeBlogReBuild函数的BlogReBuild_Categorys后面加上一行BlogReBuild_Toplist。(注意对于1.8版的同志,是找不到BlogReBuild_Categorys,你可以在c_system_base.asp文件中的MakeBlogReBuild_Core()函数的BlogReBuild_Tags的后面加上BlogReBuild_Toplist即可代替。
修改c_html_js.asp,在f="TRACKBACKS"后面增加
ElseIf f="toplist" Then
f="TOPLIST"
上面这个修改在新版中找不见,可以不修改。
修改single.html模板文件,在合适的位置增加下面几行。
<div class="function" id="divTopList">
<h3>热文排行</h3>
<ul>
<script language="JavaScript" src="<#ZC_BLOG_HOST#>c_html_js.asp?include=toplist" type="text/javascript"></script>
</ul>
我的原来一直无法调用成功,结果我发现这里的路径不对,应该修改为<#ZC_BLOG_HOST#>function/c_html_js.asp?include=toplist。如果还是调用不成功,建议你在博客include文件夹里建立一个toplist.asp文件,随便什么内容均可。因为可能你的空间不允许创建asp文件。在博客生成热文时,重写该文件。 最后,重建索引,重建文件,就完成了。
具体效果参见本页左边的“热文排行”栏目。
更新:在Z-BLOG 1.7下的修改方法
前面修改代码不变,之后,修改TEMPLATE\default.html模板,在适当位置加入以下语句:
<div class="function" id="divTopList">
<h3>热文排行</h3>
<ul>
<#CACHE_INCLUDE_TOPLIST#>
</ul>
</div>
修改TEMPLATE\single.html模板,在适当位置加入以下语句:
<div class="function" id="divTopList">
<h3>热文排行</h3>
<ul id="ulToplist">
<script language="JavaScript" type="text/javascript">strBatchInculde+="ulToplist=toplist,"</script>
</ul>
</div>
最后重建索引即可。
对于Z-blog在后台提供的功能更加强大的巴士飞扬busflyrandomsortc插件的安装问题,现象如下,可以使用上面的方法解决,不过只提供热文排行:
你好, 我安装这个插件失败了, 麻烦帮我分析下为什么?
我是这样安装的:
1.在线安装或本地上传都是这样的结果:
创建目录busfly_randomsort\
释放文件busfly_randomsort\include.asp
释放文件busfly_randomsort\plugin.xml
释放文件busfly_randomsort\readme.txt
释放文件busfly_randomsort\savesetting.asp
释放文件busfly_randomsort\setting.asp
√ 文件 "PLUGIN/Install.zpi"删除成功.
× 插件导入失败. 请 [点此重试] 或 [重新上传]
不知道这是不是代表安装失败?
2.然后我启用插件
3.修改文件./THEMES/default/TEMPLATE/default.html
加入:
<div class="function" id="divGuestComments">
<h3>热文排行</h3>
<ul>
<#CACHE_INCLUDE_RANDOMSORTTOPHOT#>
</ul>
</div>
4.重建索引.文件重建
5.转到插件后台,发现该插件没有"管理"项, 我安装的几个插件激活之后都没有管理项, 只有系统自带的插件有这个选项.
6.转到首页,显示:
热文排行
<#CACHE_INCLUDE_RANDOMSORTTOPHOT#>
总之,折腾了一天,怎么也没有成功.