今天是   本站已创建

记录宝宝成长、关注育儿知识、石油科技、电脑技术!!!!

现在的位置: 首页 博客电脑 >正文
 
2010年9月26日 ⁄ 暗潮 博客电脑 ⁄ 评论数 0+ ⁄ 被围观 +

    经过一番折腾,终于完成了“读者墙”的建设!同时在石头的基础上做了自己的修改(石头的原作见下文)!原来不显示评论的条数,并且隐藏了留言者的地址,今天暗潮就索性研究研究,折腾了一中午,不过没白忙活,出来了,现在大家可以在暗潮的博客上,直接看到自己留言的条数了,呵呵,点击留言板,把鼠标放到自己的头像上,就会显示出来……这样也可以方便的知道自己和上一名的差距哦。哈哈。具体的修改有两部门:1、取消了隐藏Url地址,这样就可以直接显示留言者的网址;2、显示每个评论者的评论数目。
     具体修改方法,找到includes.asp文件中的如下代码:

ASP/Visual Basic Code复制内容到剪贴板
  1. If Len(aryCmtURL(k))5 Then          
  2.  strCmtStar = strCmtStar & img src=httpwww.gravatar.comavatar&md5(aryCmtEmail(k))&d=identicon&s=36&r=g height=36 widht=36 alt=& aryCmtName(k) &  & vbCrlf           
  3. Else          
  4.  strCmtStar = strCmtStar & a href=& URLEncodeForAntiSpam(aryCmtUrl(k)) & target=_blank & img src=httpwww.gravatar.comavatar&md5(aryCmtEmail(k))&d=identicon&s=36&r=g height=36 widht=36 alt=& aryCmtName(k) & a & vbCrlf  

     修改为:

ASP/Visual Basic Code复制内容到剪贴板
  1.        If Len(aryCmtURL(k))<5 Then  
  2.  strCmtStar = strCmtStar & "<img src=""http://www.gravatar.com/avatar/"&md5(aryCmtEmail(k))"?d=identicon&s=36&r=g"" height=36 widht=36 alt="""& aryCmtName(k) " ("& aryCmtNum(k) ")"" />" & vbCrlf   
  3.   
  4. Else  
  5.  strCmtStar = strCmtStar & "<a href="""& aryCmtUrl(k) """ target=""_blank"">" & "<img src=""http://www.gravatar.com/avatar/"&md5(aryCmtEmail(k))"?d=identicon&s=36&r=g"" height=36 widht=36 alt="""& aryCmtName(k) "("& aryCmtNum(k) ")"" /></a>" & vbCrlf 

    在Z-Blog社区里找了许久也没有发现“读者墙”这套插件,不经意间看到了haphic的评论之星插件,灵机一动,动手把这个插件改了一下,也就产生了“读者墙”了。石头把它命名为“朋友圈”,页面打开后会显示所有在石头博客内评论过的所有朋友的头像,很亲切,很热闹,也给你的博客加上这个“读者墙”吧!  实际效果见:http://www.wu2007.cn/readers.asp
    制作步骤:
    第一步:打开记事本或Dreamweaver,复制以下代码到其中: 
 

ASP/Visual Basic Code复制内容到剪贴板
  1. <%@ CODEPAGE=65001 %>           
  2. <%           
  3. '///////////////////////////////////////////////////////////////////////////////           
  4. '//              Z-Blog           
  5. '// 作    者:    朱煊(zx.asd)           
  6. '// 版权所有:    RainbowSoft Studio           
  7. '// 技术支持:    rainbowsoft@163.com           
  8. '// 程序名称:               
  9. '// 程序版本:               
  10. '// 单元名称:               
  11. '// 开始时间:    2004.07.25           
  12. '// 最后修改:               
  13. '// 备    注:               
  14. '///////////////////////////////////////////////////////////////////////////////           
  15. %>           
  16. <% Option Explicit %>           
  17. <% On Error Resume Next %>           
  18. <% Response.Charset="UTF-8" %>           
  19. <% Response.Buffer=True %>           
  20. <!-- #include file="c_option.asp" -->           
  21. <!-- #include file="function/c_function.asp" -->           
  22. <!-- #include file="function/c_function_md5.asp" -->           
  23. <!-- #include file="function/c_system_lib.asp" -->           
  24. <!-- #include file="function/c_system_base.asp" -->           
  25. <!-- #include file="function/c_system_event.asp" -->           
  26. <!-- #include file="function/c_system_plugin.asp" -->           
  27. <!-- #include file="plugin/p_config.asp" -->           
  28. <%           
  29. Call System_Initialize_WithOutDB()           
  30. Dim ArtList           
  31.           
  32. Set ArtList=New TArticleList           
  33. ArtList.LoadCache           
  34. ArtList.template="GUEST"          
  35. If ArtList.ExportByCache("","","","","",""Then          
  36.  ArtList.Build           
  37.  htm = htm& ArtList.html           
  38. End If          
  39.           
  40. Call System_Terminate_WithOutDB()           
  41. %><!-- <%=RunTime()%>ms --><%           
  42. If Err.Number<>0 then           
  43.  Call ShowError(0)           
  44. End If          
  45. %>        

    命名为guest.asp(其实,想怎么命名都可以),如果是记事本,记得把编码选为UTF-8;
    第二步:打开记事本或Dreamweaver,新建一个html文件,把你的模板代码复制进去,在要调用读者墙的地方插入标签“#CACHE_INCLUDE_CMTSTAR#”,并另存为guest.html,注意编码是UTF-8格式的;
    第三步:在你的博客后台中安装评论之星插件,如果你已经安装,请跳至第四步;
    第四步:在博客后台的“文件管理”中修改PLUGINCmtStar目录中的include.asp文件,将代码替换为以下代码内容: 

ASP/Visual Basic Code复制内容到剪贴板
  1. ' 插件应用    1.8 Devo 其它版本的Z-blog未知       
  2. ' 插件制作    haphic(httphaphic.com)       
  3. ' 备    注    CmtStar - 挂口页       
  4. ' 最后修改:   2009-12-2       
  5. ' 最后版本    0.1       
  6. '       
  7. Const CmtStar_DayNum = 365       
  8. Const CmtStar_Num = 500       
  9. Const CmtStar_Level = 1       
  10. Const CmtStar_AlwaysShowLinks = True      
  11. Const CmtStar_DefaultLink =        
  12. Const CmtStar_ThisMonthOnly = False      
  13. Const CmtStar_BlockedName =        
  14. '注册插件       
  15. Call RegisterPlugin(CmtStar,ActivePlugin_CmtStar)       
  16. Function ActivePlugin_CmtStar()       
  17.  '挂上接口       
  18.  'Call Add_Action_Plugin(Action_Plugin_MakeBlogReBuild_Begin,Call CmtStar_BuildCache)       
  19.  Call Add_Action_Plugin(Action_Plugin_MakeBlogReBuild_Core_Begin,Call CmtStar_BuildCacheCall ClearGlobeCache()Call LoadGlobeCache())       
  20.  'Call Add_Action_Plugin(Action_Plugin_CommentPost_Succeed,Call CmtStar_BuildCacheCall ClearGlobeCache()Call LoadGlobeCache())       
  21. End Function        
  22.         
  23.       
  24. Function CmtStar_BuildCache()       
  25. On Error Resume Next      
  26.  Dim aryCmtName()       
  27.  Dim aryCmtNum()       
  28.  Dim aryCmtUrl()       
  29.  Dim aryCmtEmail()       
  30.       
  31.  Dim tmpCmtName       
  32.  Dim tmpCmtNum       
  33.  Dim tmpCmtUrl       
  34.  Dim tmpCmtEmail       
  35.  Dim i  i=0       
  36.  Dim j  j=0       
  37.  Dim k  k=0       
  38.  Dim bolNameFound       
  39.  ReDim Preserve  aryCmtName(i)       
  40.  ReDim Preserve  aryCmtNum(i)       
  41.  ReDim Preserve  aryCmtUrl(i)       
  42.  ReDim Preserve  aryCmtEmail(i)       
  43.       
  44.  '从数据库中取得数据       
  45.  Dim objRS       
  46.  If CmtStar_ThisMonthOnly Then      
  47.   Set objRS=objConn.Execute(SELECT [comm_Author],[comm_HomePage],[comm_Email] FROM [blog_Comment] WHERE ([log_ID]=0) AND (Year([comm_PostTime])=&Year(Now())&) AND (Month([comm_PostTime])=&Month(Now())&) ORDER BY [comm_ID] DESC)       
  48.  Else      
  49.   Set objRS=objConn.Execute(SELECT [comm_Author],[comm_HomePage],[comm_Email] FROM [blog_Comment] WHERE ([log_ID]=0) AND ([comm_PostTime]Now()-& CmtStar_DayNum &) ORDER BY [comm_ID] DESC)       
  50.  End If      
  51.  If (Not objRS.bof) And (Not objRS.eof) Then      
  52.   Do While Not objRS.eof       
  53.    If CmtStar_NameIllegal(objRS(comm_Author))=False Then      
  54.     bolNameFound = False      
  55.     For j=0 To UBound(aryCmtName) Step 1       
  56.      If LCase(aryCmtName(j)) = LCase(objRS(comm_Author)) Then      
  57.       aryCmtNum(j) = aryCmtNum(j)+1       
  58.       If Len(aryCmtUrl(j))  5 Then      
  59.        aryCmtUrl(j) = objRS(comm_HomePage)       
  60.       Else      
  61.        If Not Len(objRS(comm_HomePage))5 Then      
  62.         aryCmtUrl(j) = aryCmtUrl(j) &  & objRS(comm_HomePage) '取得所有的URL, 字符串 URLURLURL 形式.       
  63.        End If      
  64.       End If      
  65.       bolNameFound = True      
  66.       Exit For      
  67.      End If      
  68.     Next      
  69.     If bolNameFound = False Then      
  70.      ReDim Preserve  aryCmtName(i)       
  71.      ReDim Preserve  aryCmtNum(i)       
  72.      ReDim Preserve  aryCmtUrl(i)       
  73.                                               ReDim Preserve  aryCmtEmail(i)       
  74.      aryCmtName(i) = objRS(comm_Author)       
  75.      aryCmtNum(i) = 1       
  76.      aryCmtUrl(i) = objRS(comm_HomePage)       
  77.      aryCmtEmail(i) = objRS(comm_Email)       
  78.       
  79.      i=i+1       
  80.     End If      
  81.    End If      
  82.    objRS.MoveNext       
  83.   Loop      
  84.  End If      
  85.  objRS.Close       
  86.  Set objRS=Nothing      
  87.       
  88.  '滤去评论数小于指定值的评论者       
  89.  tmpCmtName = aryCmtName       
  90.  tmpCmtNum = aryCmtNum       
  91.  tmpCmtUrl = aryCmtUrl       
  92.  tmpCmtEmail = aryCmtEmail       
  93.  Erase aryCmtName       
  94.  Erase aryCmtNum       
  95.  Erase aryCmtUrl       
  96.  Erase aryCmtEmail       
  97.  j=0       
  98.  For i=0 To UBound(tmpCmtName) Step 1       
  99.   If Not tmpCmtNum(i)CmtStar_Level Then      
  100.    ReDim Preserve  aryCmtName(j)       
  101.    ReDim Preserve  aryCmtNum(j)       
  102.    ReDim Preserve  aryCmtUrl(j)       
  103.    ReDim Preserve  aryCmtEmail(j)       
  104.    aryCmtName(j) = tmpCmtName(i)       
  105.    aryCmtNum(j) = tmpCmtNum(i)       
  106.    aryCmtUrl(j) = tmpCmtUrl(i)       
  107.    aryCmtEmail(j) = tmpCmtEmail(i)       
  108.    j=j+1       
  109.   End If      
  110.  Next      
  111.  Erase tmpCmtName       
  112.  Erase tmpCmtNum       
  113.  Erase tmpCmtUrl       
  114.  Erase tmpCmtEmail       
  115.       
  116.  '最多原则确定链接, 防冒名       
  117.  Dim objRegExp, Matches       
  118.  Set objRegExp=new RegExp       
  119.  objRegExp.IgnoreCase =True      
  120.  objRegExp.Global=True      
  121.  Dim m,n,s,t       
  122.  For k=0 To UBound(aryCmtName) Step 1       
  123.   m = aryCmtUrl(k)       
  124.   t = 0       
  125.   If InStr(m,)0 Then      
  126.    n=Split(m,)       
  127.    For Each s In n       
  128.     If Right(s,1)= Then s=Left(s,Len(s)-1)       
  129.     objRegExp.Pattern=(& s &)       
  130.     Set Matches = objRegExp.Execute(m)       
  131.      If tMatches.Count Then      
  132.       t=Matches.Count       
  133.       aryCmtUrl(k) = s       
  134.      End If      
  135.     Set Matches = Nothing      
  136.    Next      
  137.   End If      
  138.  Next      
  139.  Set objRegExp=Nothing      
  140.       
  141.  '排序       
  142.  k=Ubound(aryCmtName)       
  143.  For i=k To 0 Step -1       
  144.   For j=0 To i-1       
  145.    If aryCmtNum(j)aryCmtNum(j+1) Then      
  146.     tmpCmtName = aryCmtName(j)       
  147.     tmpCmtNum = aryCmtNum(j)       
  148.     tmpCmtUrl = aryCmtUrl(j)       
  149.     tmpCmtEmail = aryCmtEmail(j)       
  150.     aryCmtName(j) = aryCmtName(j+1)       
  151.     aryCmtNum(j) = aryCmtNum(j+1)       
  152.     aryCmtUrl(j) = aryCmtUrl(j+1)       
  153.     aryCmtEmail(j) = aryCmtEmail(j+1)       
  154.     aryCmtName(j+1) = tmpCmtName       
  155.     aryCmtNum(j+1) = tmpCmtNum       
  156.     aryCmtUrl(j+1) = tmpCmtUrl       
  157.     aryCmtEmail(j+1) = tmpCmtEmail       
  158.    End If      
  159.   Next      
  160.  Next      
  161.       
  162.  '导出评论之星       
  163.  Dim strCmtLink  strCmtLink=CmtStar_DefaultLink  If Len(strCmtLink)5 Then strCmtLink=ZC_BLOG_HOST       
  164.  Dim strCmtStar  strCmtStar=       
  165.  For k=0 To Ubound(aryCmtName) Step 1       
  166.   If (aryCmtName(k)  ) Then      
  167.    If kCmtStar_Num-1 Then Exit For      
  168.    If CmtStar_AlwaysShowLinks Then      
  169.     If Len(aryCmtURL(k))5 Then aryCmtURL(k)=strCmtLink       
  170.    End If      
  171.    If Len(aryCmtURL(k))5 Then      
  172.     strCmtStar = strCmtStar & img src=httpwww.gravatar.comavatar&md5(aryCmtEmail(k))&d=identicon&s=36&r=g height=36 widht=36 alt=& aryCmtName(k) &  & vbCrlf       
  173.    Else      
  174.     strCmtStar = strCmtStar & a href=& URLEncodeForAntiSpam(aryCmtUrl(k)) & target=_blank & img src=httpwww.gravatar.comavatar&md5(aryCmtEmail(k))&d=identicon&s=36&r=g height=36 widht=36 alt=& aryCmtName(k) & a & vbCrlf       
  175.    End If      
  176.   End If      
  177.  Next      
  178.  Erase aryCmtName       
  179.  Erase aryCmtNum       
  180.  Erase aryCmtUrl       
  181.  strCmtStar=TransferHTML(strCmtStar,[no-asp])       
  182.  Call SaveToFile(BlogPath & includeCmtStar.asp,strCmtStar,utf-8,True)       
  183. Err.Clear       
  184. End Function      
  185. Function CmtStar_NameIllegal(ByVal strName)       
  186.  If Len(CmtStar_BlockedName)=1 Then Exit Function      
  187.  Dim strList,aryList,sList,bolIllegal       
  188.  bolIllegal=False      
  189.  strName=LCase(strName)       
  190.  strList=LCase(CmtStar_BlockedName)       
  191.  'strList=Replace(strList, ,,)       
  192.  'strList=Replace(strList, ,,)       
  193.  strList=Replace(strList,;,,)       
  194.  strList=Replace(strList,;,,)       
  195.  strList=Replace(strList,,,,)       
  196.  strList=Replace(strList,,,)       
  197.  aryList=Split(strList,)       
  198.  For Each sList In aryList       
  199.   If sList Then      
  200.    If sList=strName Then      
  201.     bolIllegal=True      
  202.     Exit For      
  203.    End If      
  204.   End If      
  205.  Next      
  206.  CmtStar_NameIllegal=bolIllegal       
  207. End Function      
  208. '安装插件       
  209. Function InstallPlugin_CmtStar()       
  210.  Call CmtStar_BuildCache()       
  211. End Function      
  212. '卸载插件       
  213. Function UnInstallPlugin_CmtStar()       
  214. On Error Resume Next      
  215.  Dim fso       
  216.  Set fso = Server.CreateObject(Scripting.FileSystemObject)       
  217.   fso.DeleteFile(BlogPath & INCLUDECmtStar.asp)       
  218.  Set fso = Nothing      
  219. Err.Clear       
  220. End Function      
  221. %     

    第五步:配置评论之星插件,显示所有读者用户。在后台的插件管理中,管理评论之星插件,将其配置修改为自己想显示的内容!
    第六步:上传guest.asp到你的空间中,上传guest.html到你的主题目录下,比如你正在使用wopus主题,你必须把guest.html上传到themeswopustemplate中。在后台文件重建一下,浏览http你的域名guest.asp,是不是看到了可爱的读者墙了呢?当然,你也可以在CSS中定义一下IMG类,显示你想要的效果。

 
【版权声明】本站部分文章来自网络,欢迎转载本人原创文章、图片,请提供本博客中相应文章的链接。
请勿将原创图片、文章用于商业用途!对于给您带来的不便表示抱歉!!
本站所分享的影视作品均转自网络,仅供测试和学习交流。请在下载后24小时内删除,请购买/支持正版。
若有侵权,请即时留言告知,万分感谢!
 
 
 
 
目前有 209+ 人访问,有 0+ 条评论! 感谢支持!
 

 
日历
网站分类
搜索
最新留言
站点统计
Tags列表
 
Copyright ©2007-2018 暗潮天空 BlueSky wu2007.Cn京ICP备08005769

Powered By Zblog Theme By 流年岁月