前天一同学做了个论坛,突发奇想,想把指定的用户名称更改颜色。于是我俩就讨论了半天,发现DISCUZ 论坛的只能通过用户组来实现这个用户组的中用户名的颜色!

注意:
1、修改方法会涉及到多个程序文件以及程序核心函数文件,各位童鞋要谨慎小心进行!
2、开启此功能后会轻微增加服务器的负担。总的来说,基本上无鸭梨。
3、如果修改后出现所有页面空白的问题,请恢复文件为默认状态后重新根据此方法细心修改!
4、请大家根据自己的需要对各个用户组id和显示颜色做修改!



第一步,在核心文件中加入处理函数。

打开文件:source\function\function_core.php

搜索(也就是文件最后一行):

  1. function userappprompt() {
  2.     global $_G;
  3.  
  4.     if($_G['setting']['my_app_status'] && $_G['setting']['my_openappprompt'] && empty($_G['cookie']['userappprompt'])) {
  5.         $sid = $_G['setting']['my_siteid'];
  6.         $ts = $_G['timestamp'];
  7.         $key = md5($sid.$ts.$_G['setting']['my_sitekey']);
  8.         $uchId = $_G['uid'] ? $_G['uid'] : 0;
  9.         echo '<script type="text/javascript" src="http://notice.uchome.manyou.com/notice/userNotice?sId='.$sid.'&ts='.$ts.'&key='.$key.'&uchId='.$uchId.'" charset="UTF-8"></script>';
  10.     }
  11. }



下面增加:

  1. //用户名变色显示
  2. function cr180getuserbyuid($username) {
  3.     static $users = array();
  4.     if(empty($users[$username])) {
  5.         $users[$username] = DB::fetch_first("SELECT * FROM ".DB::table('common_member')." WHERE username='$username'");
  6.     }
  7.     return $users[$username];
  8. }
  9. //用户名变色显示
  10. function cr180groupidcolor($name,$nameid) {
  11.     $cr180kg = 1;//1为开启变色 0为关闭 本功能可能会轻微增加服务器负担
  12.     if($cr180kg){
  13.         if(!$nameid){
  14.             $nameid = cr180getuserbyuid($name);
  15.             $nameid = $nameid['uid'];
  16.         }
  17.         $cr180member = getuserbyuid($nameid);
  18.         $groupid = $cr180member['groupid'];
  19.         if($groupid =='1'){//管理员显示 #f00
  20.             $name = '<font style="color:#F00">'.$name.'</font>';
  21.         }elseif($groupid =='2'){//超级版主显示 #090
  22.             $name = '<font style="color:#090">'.$name.'</font>';
  23.         }elseif($groupid =='3'){//版主显示 #F90
  24.             $name = '<font style="color:#F90">'.$name.'</font>';
  25.         }elseif($groupid =='15'){//指定一个用户组ID显示 #F0F
  26.             $name = '<font style="color:#F0F">'.$name.'</font>';
  27.         }
  28.     }
  29.     return $name;
  30. }


代码介绍(必看):

大家可以根据自己的需要对上面的用户组ID、显示颜色进行修改:

if($groupid =='1'){ //$groupid == 后面的数字就是用户组的ID
            $name = '<font style="color:#F00">'.$name.'</font>'; //这里是管理员用户组的名字显示红色 大家可以对颜色进行自定义,#F00替换为自己需要的颜色即可
        }

 



第二步,在各个文件中加入处理函数

注意:需要在那个页面中用这个就只需要做相应的步骤,不用全部都做完


(1)论坛主题列表页

打开文件:source\module\forum\forum_forumdisplay.php

查找:
  1. if(in_array($thread['displayorder'], array(1, 2, 3, 4))) {

在上面增加:

  1. $thread['author'] = cr180groupidcolor($thread['author'],$thread['authorid']);
  2. $thread['lastposter'] = cr180groupidcolor($thread['lastposter']);



(2)论坛帖子阅读页

打开文件:source\module\forum\forum_viewthread.php

查找:
  1. $post['authoras'] = !$post['anonymous'] ? ' '.addslashes($post['author']) : '';



下面增加:
  1. $post['author'] = cr180groupidcolor($post['author'],$post['authorid']);



(3)家园模块首页
打开文件:source\function\function_feed.php

查找:
  1. $searchs[] = '{actor}';
  2.     $replaces[] = empty($actors)?"<a href=\"home.php?mod=space&uid=$feed[uid]\" target=\"_blank\">$feed[username]</a>":implode(lang('core', 'dot'), $actors);

上面增加:
  1. $feed['username'] = cr180groupidcolor($feed['username'],$feed['uid']);

 

 本文由3D电影下载编辑!