关于 Discuz 的一些简单修改记录

由于每次更新可能都会用到这些小改动,所以干脆记录下来,免得每次都翻源代码。

去除模板右上角的快捷导航:√

打开 /template/default/common/header.htm ,找到以下代码并注释

<a href="javascript:;" id="qmenu" onmouseover="delayShow(this, function () {showMenu({'ctrlid':'qmenu','pos':'34!','ctrlclass':'a','duration':2});showForummenu($_G[fid]);})">{lang my_nav}</a>

 

拒绝游客查看注册用户资料:

打开 /source/module/home/home_space.php ,找到第23行,并且修改为以下内容

if(empty($_G['uid']) && in_array($_GET['do'], array('thread', 'trade', 'poll', 'activity', 'debate', 'reward','profile'))) {
 showmessage('login_before_enter_home', null, array(), array('showmsg' => true, 'login' => 1));
}

 

禁止用户访问其他注册用户资料:

打开 /source/include/space/space_profile.php ,在该文件21行下添加以下代码:

if(in_array($_G['groupid'], array(1))) {}
else {
showmessage('对不起,你无权查看他人资料');
}

 

array中的内容为用户组代码,message为弹出信息,均可以根据需求修改。

 

降低发帖时帖子售价的积分下限:

找到 /source/class/model 下的 model_forum_post.php 与 model_forum_thread.php,搜索 post_net_price_iszero ,并且注释相关语句即可。

 

禁止解析 ED2K 链接:

打开 source/function/function_discuzcode.php ,并注释以下几行代码:

 if($allowbbcode) {
 if(strpos($msglower, 'ed2k://') !== FALSE) {
 $message = preg_replace_callback("/ed2k:\/\/(.+?)\//", 'discuzcode_callback_parseed2k_1', $message);
 }
 }

 

电脑访问手机版链接不跳转为手机版安利页面:

打开 /source/class/discuz/discuz_application.php ,并且注释以下几行代码:

if(!$this->var['mobile'] && !$unallowmobile) {
 if($mobileflag) {
 dheader("Location:misc.php?mod=mobile");
 }
}

 

限制用户查看付费主题购买记录:√

打开 /template/default/forum/viewthread_node_body.htm ,搜索

<a href="forum.php?mod=misc&action=viewpayments&tid=$_G[tid]" onclick="showWindow('pay', this.href)">{lang pay_view}</a>

并且替换为以下语句:

<!--{if  $_G['groupid'] == 1}--><a href="forum.php?mod=misc&action=viewpayments&tid=$_G[tid]" onclick="showWindow('pay', this.href)">{lang pay_view}</a><!--{/if}-->

 

去除Title处的版权(注:仅因美观原因,底部留有相关版权及链接):√

打开 /template/default/common/header_common.htm ,去除相关字样并去除两个’ – ‘字符。

 

在板块下去除论坛名称:√

打开 /template/default/common/header_common.htm ,去除 $_G[‘setting’][‘bbname’]

 

使搜索框可以搜到分类信息:

打开 /source/module/search/search_forum.php ,找到:

$sqlsrch = $srchtype == 'fulltext' ?

将该行以下的两行内容修改为:

"FROM ".DB::table(forum_typeoptionvar)." o, ".DB::table(getposttable($seltableid))." p, ".DB::table('forum_thread')." t WHERE $digestltd t.fid IN ($fids) $topltd AND p.tid=t.tid AND p.invisible='0' AND o.tid=t.tid" :
 "FROM ".DB::table(forum_typeoptionvar)." o, ".DB::table('forum_thread')." t WHERE $digestltd t.fid IN ($fids) $topltd AND o.tid=t.tid";

接着搜索:

$srcharr = $srchtype == 'fulltext' ? searchkey($keyword, "(p.message LIKE '%{text}%' OR p.subject LIKE '%{text}%')", true) : searchkey($keyword,"t.subject LIKE '%{text}%'", true);

将其改为:

$srcharr = $srchtype == 'fulltext' ? searchkey($keyword, "(p.message LIKE '%{text}%' OR p.subject LIKE '%{text}%' OR o.value LIKE '%{text}%')", true) : searchkey($keyword,"t.subject LIKE '%{text}%' OR o.value LIKE '%{text}%'", true);

即可。

 

注:按这样修改只可以搜索到字符串类型的数据,并且该判定规则会使无分类信息的帖子无法被搜索到。a

发表评论

电子邮件地址不会被公开。 必填项已用*标注