Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[10.1更新][原创]标记主题已阅(javascript版)

[复制链接]
lu5266 发表于 2005-9-27 20:56:11 | 显示全部楼层 |阅读模式

10.1 更新:
1:可选择
<1>单单在一楼标记
<2>在一楼和阅至的楼层都标记

2: 可选择
<1>只要最后的一次(最多楼层)的标记记录
<2>保留所有的标记记录

注意: 都是标识符,不能改



功能:  在一楼的标题和贴内和阅至的楼层打上已阅读标记
        [quote] 无须升级数据库,无须修改文件,只修改两个模板,安装简单


截图:2楼

插件名称:标记主题已阅
插件作者: lu5266
修改模板: viewthread.htm   post_editpost.htm
演示支持: www.5466.ik8.com[/quote]



1:在viewthread.htm

查找:
  1. {template header}
复制代码


下面加:


  1. <!--{if  $ismoderator}-->
  2. <script language=javascript>
  3. function mark_Set(mark_Cookie_name,mark_cookie_value,mark_cookie_time)
  4. {   
  5.         var mark_Then = new Date();
  6.         mark_Then.setTime(mark_Then.getTime() + mark_cookie_time) ;
  7.         document.cookie =mark_Cookie_name+"="+mark_cookie_value+";expires="+ mark_Then.toGMTString();
  8. }

  9. function mark_Get(mark_Cookie_name)
  10. {
  11.         var mark_cookieString = new String(document.cookie);
  12.         var mark_cookieHeader =mark_Cookie_name+"=";
  13.         var mark_beginPosition = mark_cookieString.indexOf(mark_cookieHeader);
  14.         var mark_startPosition=mark_beginPosition + mark_cookieHeader.length;
  15.         if (mark_beginPosition != -1)
  16.         {   var mark_cookie_str=mark_cookieString.substring(mark_startPosition);
  17.                 var mark_endPosition=mark_cookie_str.indexOf(';') ;
  18.                 if(mark_endPosition==-1)
  19.                 return mark_cookie_str;
  20.                   else return mark_cookieString.substring(mark_startPosition,mark_startPosition+mark_endPosition);
  21.        
  22.         }
  23.         else return 0;

  24. }

  25. </script>
  26. <!--{/if}-->
  27.   
复制代码



查找:


  1. $post[message]
复制代码


在上面加上:


  1. <!--{if  $ismoderator}-->
  2. <!--{if $post['postcount']==1}-->       
  3. <script language=javascript>
  4. var mark_pid="$post[pid]";
  5. var mark_tid="$post[tid]";
  6. var mark_get_res=mark_Get("mark_tid_"+mark_tid);
  7. if(!mark_get_res) mark_Set("mark_tid_"+mark_tid,mark_pid,7*24*3600000);
  8. </script>
  9. <!--{/if}-->
  10. <!--{if $post['postcount']>$ppp}-->       
  11. <script language=javascript>
  12. var mark_tid="$post[tid]";
  13. var mark_pid=mark_Get("mark_tid_"+mark_tid);
  14. </script>
  15. <!--{/if}-->
  16. <!--{/if}-->
复制代码



查找:


  1. &nbsp;<a href="post.php?action=edit&fid=$fid&tid=$tid&pid=$post[pid]&page=$page"><img src="{IMGDIR}/edit.gif" border="0" alt="{lang edit_post}"></a>
复制代码



在上面加上:  (Ⅰ和Ⅱ只要选择一个,就可以了)

Ⅰ:这个是在一楼和阅至的楼层都有标记记录的:


  1.                 <!--{if  $ismoderator}-->
  2.         &nbsp;<a href="post.php?action=edit&fid=$fid&tid=$tid&pid=$post[pid]&page=$page&mark_id=1&mark_floor=$post['postcount']"><img src="images/mark.gif" border="0" alt="标记已读" onclick="window.open('post.php?action=edit&fid=$fid&tid=$tid&pid='+mark_pid+'&page=$page&mark_id=2&mark_floor=$post[postcount]');" ></a>
  3.         <!--{/if}-->
复制代码


Ⅱ: 这个是只在一楼标记记录的:

  1.         <!--{if  $ismoderator}-->
  2.         &nbsp;<a href="javascript: window.open('post.php?action=edit&fid=$fid&tid=$tid&pid='+mark_pid+'&page=$page&mark_id=2&mark_floor=$post[postcount]','_self');"><img src="images/mark.gif" border="0" alt="标记已读" ></a>
  3.         <!--{/if}-->
复制代码


2:在post_editpost.htm
查找:

  1. {template footer}
复制代码


在上面加上:  (Ⅰ和Ⅱ只要选择一个,就可以了)



Ⅰ:这个是保留所有的标记记录的:

  1. <!--{if  $ismoderator}-->
  2. <script language="JavaScript" >
  3. function get_var(var_name)
  4. {
  5.         var_object= location.href;
  6.         var_object= var_object.replace("?","?&").split("&");
  7.         var_value = "";
  8.         for(i=1;i<var_object.length;i++)
  9.         {
  10.                 if(var_object[i].indexOf(var_name+"=")==0)
  11.                 {
  12.                         var_value= var_object[i].replace(var_name+"=","");
  13.                 }
  14.         }
  15.         return var_value;
  16. }

  17. if($adminid==1)
  18. var mark_title="[/color][color=red]管理员:";
  19. else if($adminid==2)
  20. mark_title="[/color][color=red]超级斑竹:";
  21. else  mark_title="[/color][color=red]斑竹:";
  22. var mark_today = new Date( $mtime[1] *1000);
  23. var mark_year=mark_today.getYear();
  24. var mark_month=mark_today.getMonth()+1;
  25. var mark_date=mark_today.getDate();
  26. var mark_hours=mark_today.getHours();
  27. if(mark_hours<10) mark_hours="0"+mark_hours;
  28. var mark_minutes=mark_today.getMinutes();
  29. if(mark_minutes<10) mark_minutes="0"+mark_minutes;

  30. var mark_time="  On  "+mark_year+"-"+mark_month+"-"+mark_date+"  "+mark_hours+":"+mark_minutes;
  31. var mark_moderator="  $discuz_user  [/color][color=blue]";
  32. var mark_id=get_var("mark_id");
  33. var mark_floor=get_var("mark_floor");
  34. var mark_pid=get_var("pid");

  35. if(mark_id==1|| mark_id==2){
  36.   if(mark_id==1) { document.input.message.value=document.input.message.value+"\n\n[color=blue]∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n[b]√已阅至此贴("+mark_floor+"楼)  By  "+mark_title+mark_moderator+mark_time+"[/b][/color]";
  37.                  document.input.submit();
  38.                }
  39.   else {   
  40.            if(mark_pid==0){
  41.              alert("你必须在7天内浏览了楼主的贴后,才能在楼主的贴里标记已阅.");
  42.              history.back();
  43.            }
  44.            var mark_subject=document.input.subject.value;
  45.            var mark_sub_floor=mark_subject.substring(mark_subject.indexOf("┊")+1,mark_subject.lastIndexOf("┊"));
  46.            if(mark_sub_floor && mark_sub_floor<mark_floor)   mark_subject=mark_subject.replace(mark_sub_floor,mark_floor);
  47.            else if(mark_sub_floor && mark_sub_floor>mark_floor)  mark_subject=mark_subject;      
  48.            else mark_subject="阅至┊" +mark_floor+"┊楼√"+mark_subject;
  49.           document.input.subject.value=mark_subject;         
  50.           document.input.message.value=document.input.message.value+"\n\n[color=blue]∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n[b]√已阅至"+mark_floor+"楼  By  "+mark_title+mark_moderator+mark_time+"[/b][/color]";      
  51.           document.input.submit();
  52.             }
  53.      }
  54. </script>
  55. <!--{/if}-->
复制代码


Ⅱ: 这个是只保留最后一次的标记记录的:

  1. <!--{if  $ismoderator}-->
  2. <script language="JavaScript" >
  3. function get_var(var_name)
  4. {
  5.         var_object= location.href;
  6.         var_object= var_object.replace("?","?&").split("&");
  7.         var_value = "";
  8.         for(i=1;i<var_object.length;i++)
  9.         {
  10.                 if(var_object[i].indexOf(var_name+"=")==0)
  11.                 {
  12.                         var_value= var_object[i].replace(var_name+"=","");
  13.                 }
  14.         }
  15.         return var_value;
  16. }

  17. if($adminid==1)
  18. var mark_title="[/color][color=red]管理员:";
  19. else if($adminid==2)
  20. mark_title="[/color][color=red]超级斑竹:";
  21. else  mark_title="[/color][color=red]斑竹:";
  22. var mark_today = new Date( $mtime[1] *1000);
  23. var mark_year=mark_today.getYear();
  24. var mark_month=mark_today.getMonth()+1;
  25. var mark_date=mark_today.getDate();
  26. var mark_hours=mark_today.getHours();
  27. if(mark_hours<10) mark_hours="0"+mark_hours;
  28. var mark_minutes=mark_today.getMinutes();
  29. if(mark_minutes<10) mark_minutes="0"+mark_minutes;

  30. var mark_time="  On  "+mark_year+"-"+mark_month+"-"+mark_date+"  "+mark_hours+":"+mark_minutes;
  31. var mark_moderator="  $discuz_user  [/color][color=blue]";
  32. var mark_id=get_var("mark_id");
  33. var mark_floor=get_var("mark_floor");
  34. var mark_pid=get_var("pid");

  35. if(mark_id==1|| mark_id==2){
  36.   if(mark_id==1) { document.input.message.value=document.input.message.value+"\n\n[color=blue]∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n[b]√已阅至此贴("+mark_floor+"楼)  By  "+mark_title+mark_moderator+mark_time+"√[/b][/color]";
  37.                  document.input.submit();
  38.                }
  39.   else {   
  40.            if(mark_pid==0){
  41.              alert("你必须在7天内浏览了楼主的贴后,才能在楼主的贴里标记已阅.");
  42.              history.back();
  43.            }
  44.            var mark_subject=document.input.subject.value;           
  45.            var mark_sub_floor=mark_subject.substring(mark_subject.indexOf("┊")+1,mark_subject.lastIndexOf("┊"));
  46.            if(mark_sub_floor && eval(mark_sub_floor)<eval(mark_floor))   mark_subject=mark_subject.replace(mark_sub_floor,mark_floor);
  47.            else if(mark_sub_floor && eval(mark_sub_floor)>eval(mark_floor))  mark_subject=mark_subject;      
  48.            else mark_subject="阅至┊" +mark_floor+"┊楼|"+mark_subject;
  49.            document.input.subject.value=mark_subject;
  50.            
  51.             var new_message="已阅至┊ "+mark_floor+" ┊楼  By  "+mark_title+mark_moderator+mark_time;
  52.             var mark_message=document.input.message.value;
  53.             var mark_sub_message=mark_message.substring(mark_message.indexOf("√")+1,mark_message.lastIndexOf("√"));
  54.             var mark_sub_va=mark_message.substring(mark_message.indexOf("┊")+1,mark_message.lastIndexOf("┊"));
  55.             if(mark_sub_message && eval(mark_sub_va)<eval(mark_floor))   mark_message=mark_message.replace(mark_sub_message,new_message);
  56.             else if(mark_sub_message && eval(mark_sub_va)>= eval(mark_floor)) mark_message=mark_message;
  57.             else  mark_message=mark_message+"\n\n[color=blue]∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n[b]√已阅至┊ "+mark_floor+" ┊楼  By  "+mark_title+mark_moderator+mark_time+"√[/b][/color]";
  58.            document.input.message.value=mark_message;      
  59.           document.input.submit();
  60.             }
  61.      }
  62. </script>
  63. <!--{/if}-->
复制代码


3:把图片传到images目录
这个图片自己找,会更好



另外可以自己根据需要做适当的修改

[ 本帖最后由 lu5266 于 2005-10-2 10:57 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

 楼主| lu5266 发表于 2005-9-27 20:56:49 | 显示全部楼层
截图

[ 本帖最后由 lu5266 于 2005-9-27 20:58 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

beecheung 发表于 2005-9-27 21:01:35 | 显示全部楼层
板凳
回复

使用道具 举报

oytktk 发表于 2005-9-27 21:03:07 | 显示全部楼层
鸟人竟然学我~~支持你一把!!
回复

使用道具 举报

yotowan 发表于 2005-9-27 21:05:51 | 显示全部楼层
這個真的不錯.收下了~
回复

使用道具 举报

 楼主| lu5266 发表于 2005-9-27 21:07:11 | 显示全部楼层
原帖由 oytktk 于 2005-9-27 21:03 发表
鸟人竟然学我~~支持你一把!!

哈哈

学到了
回复

使用道具 举报

winter0706 发表于 2005-9-27 21:07:58 | 显示全部楼层
這個好像有php板的~but~支持下
回复

使用道具 举报

oytktk 发表于 2005-9-27 21:09:22 | 显示全部楼层
原帖由 winter0706 于 2005-9-27 21:07 发表
這個好像有php板的~but~支持下

老B(13)的你怎么不写东西了~?~
回复

使用道具 举报

jimmyjimmyqqq 发表于 2005-9-27 21:09:34 | 显示全部楼层
支持Lu,強,支持!
回复

使用道具 举报

 楼主| lu5266 发表于 2005-9-27 21:11:50 | 显示全部楼层
原帖由 winter0706 于 2005-9-27 21:07 发表
這個好像有php板的~but~支持下


哈哈
知道
谢谢支持先
但是
这个既没有改文件,又没有升级数据库,可以根据模板的变动,很容易适合其他版本
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-4-30 20:24 , Processed in 0.108829 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表