静¢脉提供的拓展:相关日志功能 for pjblog 2.7(增加插件下载)
作者:笨花 日期:2007-11-27
作者:静¢脉
来自:myhhe.cn
说明:根据标签Tag显示相关十条信息
大概看了一下以前WBC的(小议一下,WBC?让我想歪了,不好意思)
在SQL上确实过于太实在不怎么很科学
不知道懂ASP的友人发现没
他那个DO until i>Ubound(wbc_tag)就不得了啊
如果有十个Tag 就循环访问数据库十次
如果有50个Tag 。。。。。
再就是他是使用JS通过innerHTML 客户端写入到页面上的 对搜索的不太好
再再就是。。好像如果后台没有设置静态模式就不显示相关日志吧?
所以就不小心大概小小重写了一下下,主要特点就是只访问一次数据库,对于访问量稍大,或Tag稍多的用户应该在反应速度上有明显的提升,其次就是,静不静态模式都OK~
修改说明:
文件一:class\cls_article.asp
1.查找下面内容
复制内容到剪贴板
程序代码
程序代码TempArticle=Replace(TempArticle,"<$log_ViewNums$>",log_ViewArr(4,0))
在此内容下增加一行,复制以下代码
复制内容到剪贴板
程序代码
程序代码'**************** 相关日志功能 修改1 BY HAYDEN ****************
TempArticle=Replace(TempArticle,"<$log_relatedtag$>",getRelated(log_ViewArr(8,0),LogID))
'**************** 相关日志功能 修改1 END ****************
TempArticle=Replace(TempArticle,"<$log_relatedtag$>",getRelated(log_ViewArr(8,0),LogID))
'**************** 相关日志功能 修改1 END ****************
2.继续...查找
复制内容到剪贴板
程序代码
程序代码dim getTag
换行 在下面添加
复制内容到剪贴板
程序代码
程序代码'**************** 相关日志功能 修改2 BY HAYDEN ****************
Dim haydenTags : haydenTags = log_ViewArr(19,0)
'**************** 相关日志功能 修改2 ****************
Dim haydenTags : haydenTags = log_ViewArr(19,0)
'**************** 相关日志功能 修改2 ****************
3.继续..查找
复制内容到剪贴板
程序代码
程序代码<img src="images/tag.gif" style="margin:4px 2px -4px 0px" alt=""/><strong>Tags:</strong> <%=getTag.filterHTML(log_ViewArr(19,0))%><br/>
换行 在下面添加
复制内容到剪贴板
程序代码
程序代码'**************** 相关日志功能 修改3 BY HAYDEN ****************
<img src="images/search.gif" style="margin:4px 2px -4px 0px" alt=""/><strong>相关日志:</strong><%=getRelated(haydenTags,LogID)%><br/>
'**************** 相关日志功能 修改3 END ****************
<img src="images/search.gif" style="margin:4px 2px -4px 0px" alt=""/><strong>相关日志:</strong><%=getRelated(haydenTags,LogID)%><br/>
'**************** 相关日志功能 修改3 END ****************
4.继续 滑到文件底部 在最后一个 %> 这个符号前加入下面这段代码
复制内容到剪贴板
程序代码
程序代码'*******************************************
' 显示相关日志
' 作者:静¢脉
' 出自:myhhe.cn
' 时间:2007.11.25
'*******************************************
Function getRelated(hayden_tag,hayden_LogID)
getRelated=""
Dim i,RsT,OutPut
Dim hayden_arr_tag
Dim hayden_sql
Dim hayden_sqlTag : hayden_sqlTag=""
OutPut=""
if hayden_tag<>"" Then
hayden_arr_tag=split(hayden_tag,"{")
For i = 1 to Ubound(hayden_arr_tag)
If i > 1 Then hayden_sqlTag=hayden_sqlTag & " or "
hayden_sqlTag = hayden_sqlTag & "log_tag like '%{" & hayden_arr_tag(i) & "%' "
Next
hayden_sql="Select top 10 log_Title,log_id,log_ViewNums from blog_Content where (" & hayden_sqlTag & ") and log_ID<>" & hayden_LogID & " and log_IsDraft=False and log_CateID not in (select cate_id from blog_Category where cate_secret=True ) order by log_PostTime desc"
'此处红色标记处,感谢 ppcode 提出指正 #2007-11-26
Set RsT=conn.execute(hayden_sql)
if not RsT.eof then
Do until Rst.eof
OutPut=OutPut&"<font face='Wingdings'>n</font> <a href='article.asp?id="&RsT(1)&"' target='_blank'>"&RsT(0)&"["&RsT(2)&"]</a><br>"
Rst.movenext
Loop
End if
End if
If OutPut="" Then
OutPut="无相关日志"
Else
OutPut="<div class='Content-body' id='hayden_tag'>"&Replace(OutPut,chr(39),chr(34))&"</div>"
'注意上面DIV中的class名称,如果想给他设定单独的样式,可以在这里给他另定一个名称
End If
getRelated=OutPut
Set rst=nothing
End Function
'**************** 相关日志功能 getRelated END BY HAYDEN ****************
' 显示相关日志
' 作者:静¢脉
' 出自:myhhe.cn
' 时间:2007.11.25
'*******************************************
Function getRelated(hayden_tag,hayden_LogID)
getRelated=""
Dim i,RsT,OutPut
Dim hayden_arr_tag
Dim hayden_sql
Dim hayden_sqlTag : hayden_sqlTag=""
OutPut=""
if hayden_tag<>"" Then
hayden_arr_tag=split(hayden_tag,"{")
For i = 1 to Ubound(hayden_arr_tag)
If i > 1 Then hayden_sqlTag=hayden_sqlTag & " or "
hayden_sqlTag = hayden_sqlTag & "log_tag like '%{" & hayden_arr_tag(i) & "%' "
Next
hayden_sql="Select top 10 log_Title,log_id,log_ViewNums from blog_Content where (" & hayden_sqlTag & ") and log_ID<>" & hayden_LogID & " and log_IsDraft=False and log_CateID not in (select cate_id from blog_Category where cate_secret=True ) order by log_PostTime desc"
'此处红色标记处,感谢 ppcode 提出指正 #2007-11-26
Set RsT=conn.execute(hayden_sql)
if not RsT.eof then
Do until Rst.eof
OutPut=OutPut&"<font face='Wingdings'>n</font> <a href='article.asp?id="&RsT(1)&"' target='_blank'>"&RsT(0)&"["&RsT(2)&"]</a><br>"
Rst.movenext
Loop
End if
End if
If OutPut="" Then
OutPut="无相关日志"
Else
OutPut="<div class='Content-body' id='hayden_tag'>"&Replace(OutPut,chr(39),chr(34))&"</div>"
'注意上面DIV中的class名称,如果想给他设定单独的样式,可以在这里给他另定一个名称
End If
getRelated=OutPut
Set rst=nothing
End Function
'**************** 相关日志功能 getRelated END BY HAYDEN ****************
复制内容到剪贴板
程序代码
程序代码如果你做完了上面这几步
OK 恭喜你!
还有三步,就可以给自己的博客加上一个相关日志的功能了
打开文件 : 根目录下的 article.asp
查找:
复制内容到剪贴板
程序代码
程序代码log_DisComment FROM
修改成:
复制内容到剪贴板
程序代码
程序代码log_DisComment,log_tag FROM
打开文件 : Template\Article.asp
查找:
复制内容到剪贴板
程序代码
程序代码<$log_tag$><br/>
换行 在下面添加:
复制内容到剪贴板
程序代码
程序代码<img src="images/search.gif" style="margin:4px 2px -4px 0px" alt=""/><strong>相关日志:</strong> <$log_relatedtag$><br/>
对了 去后台
重建数据缓存
重新统计网站数据
重新生成所有日志到文件
重新建立日志索引
如果需要插件的朋友可以直接下载这个文件,可后台安装
安装方便了,可是只可以显示在文章标题的上面 或 评论留言框的下面~
安装完可需要在模块管理中将getRelated 模块设为内容模块
否则可能不显示~
点击下载此文件评论: 0 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇

文章来自:
Tags:
相关日志: