写在前面:
这是一个小更改,没有多大的技术含量。只是这个小更改对于我很实用,希望也对您有用。
好久不来DZ发帖子,不知现在风气如何了,只希望不要碰到像以前一样幽怨的坛友,有用/没用,喜欢/不喜欢,爽/不爽,我不想听。
此修改不对数据库做任何更改,可放心使用,以防万一要留备份;
此修改的局限性在于,除客户区以外,其他版块皆不能使用主题分类,但修改代码已经给出,要是有需要,自己加行if判断就好。修改意图:
虽然通过DZ后台可以给某个板块的帖子进行主题分类并设置“发帖必须归类”,但由于用户的操作是自主的,很多时候用户并不按照站长预想的“正常方式”选择主题分类,导致主题的分类非常乱。
本插件意在由系统自动将用户发帖归类到某个分类(如“版主快来”),在版主/超版/管理员回复后再将帖子重新归类。
希望以此举将论坛的客服区整肃分明。修改原则:
(1)在 发帖/编辑 模板(templates/default/post.htm)上屏蔽普通用户(除管理员、客服、版主)对主题分类的选择、修改权限;
(2)在新帖子数据提交文件中(include/newthread.inc.php)默认将普通用户提交的帖子类型赋值为未解决问题的分类(如“版主快来”);
(3)在编辑帖子的数据提交文件中(include/editpost.inc.php)默认将普通用户提交的编辑数据中帖子类型赋值为未解决问题的分类(如“版主快来”);
(4)在第(3)条的基础上保留管理帐号(如管理员、超版、版主)正常编辑帖子分类的权限。修改案例:
案例论坛地址:
案例版块1地址:
案例版块2地址:
案例版块3地址:案例主题分类1(typeid == 1):版主快来
案例主题分类2(typeid == 2):待验证
案例主题分类3(typeid == 3):建议待参考
案例主题分类4(typeid == 4):版主已回复案例分析:
1)普通用户在案例版块1、2、3发帖默认归类到主题分类1(版主快来)
2)普通用户在案例版块1、2、3编辑自己的主题分类为2、3、4的帖子,主题分类自动恢复到主题分类1
3)管理帐号(版主、超版、该版版主)可以对用户的帖子进行编辑重新归类到主题分类2、3、4唠叨了这么多,意思是说,如果您一样的情况,可以下载下面的文件包(共3个文件)直接覆盖了:
(18.82 KB)手动修改方法:
1、templates\post.htm
找到:
- <!–{if $isfirstpost && $forum[threadtypes][types]}–>
- <div>
- <select name=”typeid” id=”typeid”>
- <option value=”0″>{lang types}</option>
- <!–{loop $forum[threadtypes][types] $typeid $name}–>
- <option value=”$typeid”{if $thread['typeid'] == $typeid} selected=”selected”{/if}>{echo strip_tags($name);}</option>
- <!–{/loop}–>
- </select>
- </div>
- <!–{/if}–>
复制代码
替换为:
- <!–{if $isfirstpost && $forum[threadtypes][types]}–>
- <!–{if $groupid == ‘1′ || $groupid == ‘2′ || $groupid == ‘3′}–>
- <div>
- <select name=”typeid” id=”typeid”>
- <option value=”0″>{lang types}</option>
- <!–{loop $forum[threadtypes][types] $typeid $name}–>
- <option value=”$typeid”{if $thread['typeid'] == $typeid} selected=”selected”{/if}>{echo strip_tags($name);}</option>
- <!–{/loop}–>
- </select>
- </div>
- <!–{/if}–>
- <!–{/if}–>
复制代码
其中$groupid为管理帐号的判断,如果要添加其他管理组,自己添加就好了。
2、include\newthread.inc.php
找到:
- $db->query(“INSERT INTO {$tablepre}threads (fid, readperm, price, iconid, typeid, sortid, author, authorid, subject, dateline, lastpost, lastposter, displayorder, digest, special, attachment, moderated, status)
- VALUES (‘$fid’, ‘$readperm’, ‘$price’, ‘$iconid’, ‘$typeid’, ‘$sortid’, ‘$author’, ‘$discuz_uid’, ‘$subject’, ‘$timestamp’, ‘$timestamp’, ‘$author’, ‘$displayorder’, ‘$digest’, ‘$special’, ‘0′, ‘$moderated’, ‘$thread[status]‘)”);
复制代码
替换为:
- $db->query(“INSERT INTO {$tablepre}threads (fid, readperm, price, iconid, typeid, sortid, author, authorid, subject, dateline, lastpost, lastposter, displayorder, digest, special, attachment, moderated, status)
- VALUES (‘$fid’, ‘$readperm’, ‘$price’, ‘$iconid’, ‘1′, ‘$sortid’, ‘$author’, ‘$discuz_uid’, ‘$subject’, ‘$timestamp’, ‘$timestamp’, ‘$author’, ‘$displayorder’, ‘$digest’, ‘$special’, ‘0′, ‘$moderated’, ‘$thread[status]‘)”);
复制代码
其中“1”为默认主题分类(“版主快来”),如果你的typeid有所不同,要自己修改。
3、include\editpost.inc.php
找到:
- $db->query(“UPDATE {$tablepre}threads SET iconid=’$iconid’, typeid=’$typeid’, sortid=’$sortid’, subject=’$subject’, readperm=’$readperm’, price=’$price’ $authoradd $polladd “.($auditstatuson && $audit == 1 ? “,displayorder=’0′, moderated=’1′” : ”).”, status=’$thread[status]‘ WHERE tid=’$tid’”, ‘UNBUFFERED’);
复制代码
替换为:
- if($groupid == 1 || $groupid == 2 || $groupid == 3){
- $db->query(“UPDATE {$tablepre}threads SET iconid=’$iconid’, typeid=’$typeid’, sortid=’$sortid’, subject=’$subject’, readperm=’$readperm’, price=’$price’ $authoradd $polladd “.($auditstatuson && $audit == 1 ? “,displayorder=’0′, moderated=’1′” : ”).”, status=’$thread[status]‘ WHERE tid=’$tid’”, ‘UNBUFFERED’);
- }
- else{
- $db->query(“UPDATE {$tablepre}threads SET iconid=’$iconid’, typeid=’1′, sortid=’$sortid’, subject=’$subject’, readperm=’$readperm’, price=’$price’ $authoradd $polladd “.($auditstatuson && $audit == 1 ? “,displayorder=’0′, moderated=’1′” : ”).”, status=’$thread[status]‘ WHERE tid=’$tid’”, ‘UNBUFFERED’);
- }
复制代码
这部分判断了管理权限和普通权限,同样,如果您要增减管理权限或者typeid与案例站点不相同,要根据自己的安排修改$groupid和$typeid自行修改。
广告一下下:
是一款由逐日者网络科技有限公司历时2.5年独立自主开发的一款 业界xx全程实景地图 业界xx跨越历史界限 的精湛网页游戏,欢迎您来哦~!