立即免费下载 Discuz!6.1.0正式版
Discuz! 6.1.0 使用说明
Discuz!NT升级至v2.1
开放源码下载
UCenter Home 1.2 正式版发布
官方站 | 帮助文档
基于ECShop的免费网店托管-卖否
PHP实战精英班培训 | LAMP培训大连
Discuz!收费服务内容及价格
论坛免费升级 手握手
Discuz!/ECShop 专用官方虚拟主机
注册付费广告征集
Comsenz 招聘信息
网店系统ECShop v2.6.0正式版火热发布
基于Discuz!的免费论坛空间5D6D
第二届PHP中国开源发展及人才状况调查
发新话题
打印

[插件] 版主已阅 for DZ6.0正式完美修订版

版主已阅 for DZ6.0正式完美修订版

原版权归“幽谷激泉”所有

这里是“幽谷激泉”的原贴:http://www.discuz.net/thread-701900-1-1.html,然后看到“teacher”朋友对此做了修改“http://www.discuz.net/viewthread ... %26amp%3Btypeid%3D2”,
但本人经过测试,对新手跟DZ6正式版而言,有些地方说的不是很明白,而且代码有点不大对,因此,特对此进行修订!

如原作者有建议或议异,请赐教!

使用效果的演示地址:
http://www.ycsmvod.cn/bbs/forum-32-1.html

好!具体修订后的教程如下:

第一步:全新安装方法:

第一步:以管理员身份登入系统管理,进入数据库 > 数据库升级

  粘贴以下语法到空框内并提交,若数据表前缀不是默认的,请修改 cdb_threads前而的"cdb_"为你的数据库前缀
复制内容到剪贴板
代码:
ALTER TABLE `cdb_threads` ADD `markread` VARCHAR( 255 ) NOT NULL;
ALTER TABLE `cdb_threads` ADD `markuser` VARCHAR( 255 ) NOT NULL;
第二步:用文字编辑器打开 [ 论坛根目录/topicadmin.php ] 进行修改

  原作者说:“找到以下语法,应该找到三个的,最接近最底下的就是了”,个人经过测试,只有一个,因此,直接打到以下代码即可:
查找
复制内容到剪贴板
代码:
}elseif($action == 'delpost') {
在其上面加入
复制内容到剪贴板
代码:
//---版主已阅 start ------------------------------------------------------------------------
} elseif($action == 'modmarkread' && $post) {

                $db->query("UPDATE  {$tablepre}threads SET markread='$post\t$discuz_user\t$timestamp' WHERE tid='$tid'");
                showmessage('admin_succeed', "forumdisplay.php?fid=$fid&page=$fpage");
//---版主已阅 end -------------------------------------------------------------------------
第三步:用文字编辑器打开 [ 论坛根目录/forumdisplay.php ] 进行修改

  找到以下语法
复制内容到剪贴板
代码:
$thread['moved'] = 0;
在上面加入:
复制内容到剪贴板
代码:
//---版主已阅 start ------------------------------------------------------------------------
        if($thread['markread']){
                $thread['markread'] = explode("\t", $thread['markread']);
                $thread['markread'][2] = gmdate("$dateformat $timeformat", $thread['markread'][2] + $timeoffset * 3600);
                $thread['markreadpage'] = ceil($thread['markread'][0] / $ppp);
                $thread['markreadpage'] = $thread['markreadpage'] != 1 ? $thread['markreadpage'].' 页 ' : '' ;
        }
//---版主已阅 end -------------------------------------------------------------------------
第四步:用文字编辑器打开 [ 论坛根目录/viewthread.php ] 进行修改
  找到以下语法
复制内容到剪贴板
代码:
$thisgid = 0;
在下面加入:
复制内容到剪贴板
代码:
//---版主已阅 start------------------------------------------
$thread['markread'] = explode("\t", $thread['markread']);
$thread['markuser'] = explode("\t", $thread['markuser']);
//---版主已阅 end ------------------------------------------
第五步:编辑  [ templates/default/forumdisplay.htm ]
原作者讲
引用:
找到以下语法
<a href="viewthread.php?tid=$thread[tid]&extra=$extra"$thread[highlight]>$thread[date_sort] $thread[subject]</a></span>
注意:因为我装过发贴时自动在主题前标明发贴日期的,所以多了个$thread[date_sort]

原代码为 <a href="viewthread.php?tid=$thread[tid]&extra=$extra"$thread[highlight]>$thread[subject]</a>
本人经过查找,用以上代码找不到,结果经过字段方式查找一一对照后才看到类似的,这样对于新手来讲,就增加了难度,经过本人的测试,直接查找以下代码可以一次性立马找到:
复制内容到剪贴板
代码:
thread[highlight]>$thread[subject]</a>
在下面加入
复制内容到剪贴板
代码:
<!--{if $thread['markread']}-->
  <span alt='{lang moderator}: $thread['markread'][1]{LF}{lang time}: $thread['markread'][2]'>
  [$thread['markread'][1]
  <!--{if ($thread['markread'][0] - 1) <> $thread['replies']}-->
  阅至: $thread['markreadpage'] $thread['markread'][0] 楼]
  <!--{else}-->
  已阅]
  <!--{/if}-->
  </span>
  <!--{/if}-->
第六步:编辑 [templates/你所用的风格目录/viewthread.htm](默认风格为templates/default/viewthread.htm)

      找到以下语法
引用:
原作者认为:
      找到以下语法
<a href="post.php?action=reply&fid=$fid&tid=$tid&repquote=$post[pid]&extra=$extra&page=$page">{lang reply_quote}</a>
                                                <!--{/if}-->
在后面加入:

<!--{if in_array($adminid, array(1,2,3))}--><!--{if $forum['ismoderator'] || ($thread[markread][0] < $post[number])}--> <a href="topicadmin.php?action=modmarkread&tid=$tid&post=$post[number] ">已阅</a><!--{/if}--><!--{/if}-->
但本人经过测试
第一:以上的语法完全复制的话没法找到,同样增加了新手的难度;
第二,如果不是在默认风格,比如用其他风格,且已经经过了一些插件的安装或修改的话,“在后面加入”那一段所放的位置就有问题了,可能有些用户就不知道放在哪里了!

因此,我重新修订了这一步(很关键)
查找以下代码:
复制内容到剪贴板
代码:
">{lang reply_quote}</a>
如果用的是默认风格,直接在上面代码接下来会找到“<!--{/if}-->”语句,但如果你使用的不是默认风格,而是其他风格且加入了其他插件或修改过的,比如我的,就加入了“醒目高亮”:
复制内容到剪贴板
代码:
href="post.php?action=reply&fid=$fid&tid=$tid&repquote=$post[pid]&extra=$extra&page=$page">{lang reply_quote}</a>
<!--{if $thread['digest']}--><div id="digest"  onmouseOut="this.style.display='';" style="position:absolute;width:0px; height:0px; top: 165px; right:250px ;">
<!--{if $thread['digest'] ==1}--><img border="0" src="images/common/digest_t_1.gif" border="0">
<!--{elseif $thread['digest'] ==2}--><img border="0" src="images/common/digest_t_2.gif" border="0">
<!--{elseif $thread['digest'] ==3}--><img border="0" src="images/common/digest_t_3.gif" border="0">
<!--{/if}--></div><!--{/if}-->
大家会发现,“">{lang reply_quote}</a>”代码后面不是直接的“<!--{/if}-->”语句,而“<!--{/if}-->”语句是在跟着的代码后面!

所以在此,就告诉大家一个技巧,就是,你按我的方法找到“">{lang reply_quote}</a>”后,检查接下来的语句,找到接下来的第一个完整的“<!--{/if}-->”,然后再在这个语句下面增加第六步的代码:

在“<!--{/if}-->”后面插入
复制内容到剪贴板
代码:
<!--{if in_array($adminid, array(1,2,3))}--><!--{if $forum['ismoderator'] || ($thread[markread][0] < $post[number])}--> <a href="topicadmin.php?action=modmarkread&tid=$tid&post=$post[number] ">已阅</a><!--{/if}--><!--{/if}-->
至此,整个安装才完美结束!!!
反安装方法:

  以管理员身份登入系统管理,进入数据库 > 数据库升级

粘贴以下语法到空框内并提交,若数据表前缀不是默认的,请修改 cdb_threads


ALTER TABLE `cdb_threads` DROP `markread`;
ALTER TABLE `cdb_threads` DROP `markuser`;

然后按安装方法把添加的语法删除!

在此,感谢“teacher”和“幽谷激泉”提供方法!

如果大家在安装过程中遇到问题,请跟贴回复,谢谢!

最后有一个问题,就是:很多朋友说安装好后,不知道在哪里,或者说找不到“已阅”,下面请看我的演示及说明:

附上演示地址:
http://www.ycsmvod.cn/bbs/forum-32-1.html

演示图片:
“已阅”两个字是在文章内容页的右下角那里:



这个是使用后的图片:


好了,这下就直正结束了!

感谢28楼lqsjj521朋友的建议
第二步代码已修改


[ 本帖最后由 fucenyuan 于 2008-4-17 03:02 编辑 ]
本帖最近评分记录
  • xiaomu 金币 +1 精品文章 2008-4-19 01:13
自己顶起来!没有人要吗
不錯,支持
用要动数据库啊,不敢用哦
不错啊--顶了
引用:
原帖由 2576474 于 2008-4-13 18:08 发表
用要动数据库啊,不敢用哦
这位朋友,你如果担心
可以先备份数据库啊

这个不是动数据库,而是为数据库增加数据表!
谢谢哈 留着用
这个要收藏的,装了几次都没成功过
朋友!一开始我也是!
后来经过多次尝试后
才成功的!
点已阅,就显示找不到网页了。
发新话题
版块跳转