DiscuzX如何自定义等级图标

默认DiscuzX等级图标少而单调,这个其实可以自己来自定义一个喜欢的等级图标。
在后台有一处设置等级图标阀值的地方,具体位置是后台-界面-界面设置-帖子内容页-星星升级阀值,这个阀值设置其实就是多少个低等级图标变换为一个高等级图标,你如果四个一变,那么这里的阀值就设置成4。
下面就说下怎么实现自定义的等级图标。如果你想让网站最高等级有皇冠,则上传皇冠图示到static/image/common里,文件名为star_level4.gif;然后还要修改source/function/function_forumlist.php文件的335行开始的function showstars($num)函数

function showstars($num) {
global $_G;
$return = '';
$alt = 'alt="Rank: '.$num.'"';
if(empty($_G['setting']['starthreshold'])) {
for($i = 0; $i < $num; $i++) {
$return .= '<img src="'.$_G['style']['imgdir'].'/star_level1.gif" alt="" />';
}
} else {
for($i = 3; $i > 0; $i--) {
$numlevel = intval($num / pow($_G['setting']['starthreshold'], ($i - 1)));
$num = ($num % pow($_G['setting']['starthreshold'], ($i - 1)));
for($j = 0; $j < $numlevel; $j++) {
$return .= '<img src="'.$_G['style']['imgdir'].'/star_level'.$i.'.gif" alt="" />';
}
}
}
return $return;
}

修改为function showstars($num) {
global $_G;
$return = '';
$alt = 'alt="Rank: '.$num.'"';
if(empty($_G['setting']['starthreshold'])) {
for($i = 0; $i < $num; $i++) {
$return .= '<img src="'.$_G['style']['imgdir'].'/star_level1.gif" alt="" />';
}
} else {
for($i = 4; $i > 0; $i--) {
$numlevel = intval($num / pow($_G['setting']['starthreshold'], ($i - 1)));
$num = ($num % pow($_G['setting']['starthreshold'], ($i - 1)));
for($j = 0; $j < $numlevel; $j++) {
$return .= '<img src="'.$_G['style']['imgdir'].'/star_level'.$i.'.gif" alt="" />';
}
}
}
return $return;
}

这样就可以了

这里主要是$i = 3这个值,如果有几个图标修改成几,然后再上传图标图片文件到static/image/common,默认是只有三个。如果想用自己的图标,替换对应star_level1.gif等文件即可。