用文章發表數取代 Karma

點閱:496 平均評分:尚無評分 迴響:6
作者:睡蓮 來源:池水間
目前 CBB 的查看帖子權限設定中,除了回覆才可觀看內容外,另還有 karma 積分這一項設定。

karma 存在的問題是,積分是怎麼計算的?會員又如何知道自己的積分有多少?在會員的個人資訊裡面,是不會有明文標示出您的karma有多少,即使可以知道有多少積分,也都是經由自行換算得來的。

karma 是要以文章發表數乘以50才得出自己的分數,與其要會員自行玩換算遊戲,不若改以文章發表數來取替 karma。用發表數決定瀏覽權限,較 karma 來的直觀也較方便。

在過去玩CBB兩年多期間就曾經在karma上作過一點小hack,將之改成發表數,而所hack的CBB版本為 3.08 版,其他版本就沒有測試過,如讀者需hack請先行在非正式站測試。
 
在 modules/newbb/class/karma.php下約 54 行,將下面的橘字部份刪除:
  function calUserkarma()
    {
        if (!$this->user) $user_karma = 0;
        else $user_karma = $this->user->getVar('posts') * 50;
        return $user_karma;
    } 

再來於modules/newbb/language/選用的語言/main.php下118行,修改原來的karma用語,下面的橘字是可以修改的地方。
define('_MD_KARMA_REQUIREMENT', '抱歉!您現時有 %s 篇發表數,尚未達到本帖的 %s 篇才可觀看的要求。');

於modules/newbb/language/選用的語言/main.php下215行,將原來的“Karma積分”改為“發表數”
define('_MD_REQUIRE_KARMA','發表數');

修改modules/newbb/language/選用的語言/modinfo.php下約153至156行用語,這是顯示於管理後台的CBB偏好設定裡
define("_MI_ENABLE_KARMA", "啟用Karma");
define("_MI_ENABLE_KARMA_DESC", "用戶可以設定某個文章的karma標準。只有達到該標準的成員才能查看此帖。<font color=red>注意!此功能雖可以使用尚未開發完善。</font>");

define("_MI_KARMA_OPTIONS", "Karma的可選值");

可以將上面改成如下
define("_MI_ENABLE_KARMA", "啟用發表數");
define("_MI_ENABLE_KARMA_DESC", "會員可以設定某個文章的發表數標準。只有達到該標準的成員才能查看此帖。");

define("_MI_KARMA_OPTIONS", "發表數的可選值");

接下來到管理後台,在CBB偏好設定下,將原來的Karma的可選數值重新設定一下為發表數值後便可以使用了。