原版权归“幽谷激泉”所有
这里是“幽谷激泉”的原贴:https://discuz.dismall.com/thread-701900-1-1.html,然后看到“teacher”朋友对此做了修改“https://discuz.dismall.com/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 ] 进行修改
找到以下语法在上面加入:- //---版主已阅 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 ] 进行修改
找到以下语法在下面加入:- //---版主已阅 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}-->
但本人经过测试
第一:以上的语法完全复制的话没法找到,同样增加了新手的难度;
第二,如果不是在默认风格,比如用其他风格,且已经经过了一些插件的安装或修改的话,“在后面加入”那一段所放的位置就有问题了,可能有些用户就不知道放在哪里了!
因此,我重新修订了这一步(很关键)
查找以下代码:如果用的是默认风格,直接在上面代码接下来会找到“<!--{/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 编辑 ] |