原生的newbb功能太陽春了,許多常見的操作都沒有,所以才有這些實用而簡單的hack來補強,也希望官方未來可以列為基本功能(要去官方論壇及github建議才有效)

參考來源為睡蓮大大的池水間,因為新版xoops有小小不同,且睡蓮大大也改用別的CMS了,怕哪天文章消失,就寫了此篇更新後的內容作為備存。

 

本修改所使用的軟體版本為

  • xoops 2.5.9
  • newbb 4.34 Final

修改的行數及檔案可能依版本不同而有所差異,請善用搜尋的方式

 

karma改為文章數

原本的設計karma為文章數x50這件事真的有點蠢,不僅多此一舉,應用上也雞肋(其實還有RPG/EXP計算也是不太實用,明明可以有很多玩法的...)
本篇修改則為單純的將karma改為文章數,直覺也實用些,至少再也不會有人問karma是尛...

參考來源:池水間

 

step1. 首先先修改karma的計算程式檔,共有1個檔案要進行修改
在 /modules/newbb/class/karma.php下約 37 行,將*50刪除 或者原程式碼註解掉,插入一行新的

//$user_karma = $user->getVar('posts') * 50;
$user_karma = $user->getVar('posts');


step2. 接下來是修改前台語系檔,共有1個檔案要進行修改
在 /modules/newbb/language/tchinese_utf8/main.php 下約190跟209行,將原來的karma用詞改為文章數,REPLY的翻譯也建議可以修飾一下。

define('_MD_KARMA_REQUIREMENT', '抱歉!您目前有 %s 篇文章數,尚未達到本主題 %s 篇才可觀看的要求。<br /> 請修煉幾日再來吧。');
define('_MD_REQUIRE_KARMA', '觀看要求文章數');
define('_MD_REQUIRE_REPLY', '觀看要求回覆');


step3. 接著是修改後台語系檔,共有1個檔案要進行修改
在 /modules/newbb/language/tchinese_utf8/modinfo.php 下約118行,這是在後台的newbb偏好設定裡,一樣將原來的karma用詞改為文章數。

define('_MI_ENABLE_KARMA', '啟用文章數限制');
define('_MI_ENABLE_KARMA_DESC', '使用者可以設定某個文章數標準。只有達到該標準的成員才能查看此文');
define('_MI_KARMA_OPTIONS', '文章數的可選值');

 

最後進後台更新一下template及偏好設定裡開啟設定值,並將文章數可選值修改成合理的數字。
打完收工,成果如下圖

 

增加限會員讀取的隱藏標籤

以社群的操作經營面來說,吸引了訪客後,下一步就是希望訪客成為會員,而隱藏標籤就是有此輔助功能的hack...
原本newbb只能整個板限定會員觀看,或者直接全面開放,不夠彈性,而偏好設定裡也只有附件才能設定額外的會員觀看限制,其實文章內容也是蠻需要此類限制功能,因此有了此hack

 

參考來源:池水間

step1. 首先先修改訪客權限時的判斷及看到的訊息畫面,共有1個檔案要進行修改
在 /class/module.textsanitizer.php 下約405行,插入hidden標籤的判斷,以及訪客看到的內容。

$patterns       = array();
$replacements   = array();
$patterns[] = "/\[hidden](.*)\[\/hidden\]/sU";
if($_SESSION['xoopsUserId']) {
$replacements[] = '\\1';
}
else {
$replacements[] = '<div class="alert alert-warning" role="alert"><a href="'.XOOPS_URL.'/user.php">' . _MD_NEWBB_SEENOTGUEST . '</a></div>';
}

連結至user頁面自行決定要導到login或register,_MD_NEWBB_SEENOTGUEST是原本newbb附件限訪客觀看的文字變數,直接拿來用(若沒裝newbb應該不會用這個hack吧?)


step2. 接下來是系統DHTML編輯器增加hidden的按紐,共有1個檔案要進行修改
在 /class/xoopsform/renderer/XoopsFormRendererBootstrap3.php 下約305行,因為我的佈景是用bootstrap3所以是改這個檔,若您是用別的css framework,請針對你的版本去修改內容及樣式。

$code .= "<button type='button' class='btn btn-default' onclick='xoopsCodeCode(\"{$textarea_id}\", \"" . htmlspecialchars(_ENTERCODE, ENT_QUOTES) . "\");' onmouseover='style.cursor=\"hand\"' title='" . _XOOPS_FORM_ALT_CODE . "'><span class='fa fa-fw fa-code fa-lg' aria-hidden='true'></span></button>";
$code .= "<button type='button' class='btn btn-default' onclick='xoopsCodeQuote(\"{$textarea_id}\", \"" . htmlspecialchars(_ENTERQUOTE, ENT_QUOTES) . "\");' onmouseover='style.cursor=\"hand\"' title='" . _XOOPS_FORM_ALT_QUOTE . "'><span class='fa fa-fw fa-quote-right fa-lg' aria-hidden='true'></span></button>";
$code .= "<button type='button' class='btn btn-default' onclick='xoopsCodeHidden(\"{$textarea_id}\", \"" . htmlspecialchars(_ENTERHIDDEN, ENT_QUOTES). "\");' onmouseover='style.cursor=\"hand\"' title='" . _XOOPS_FORM_ALT_ALTHIDDEN . "'><span class='fa fa-fw fa-user-secret fa-lg' aria-hidden='true'></span></button>";
$code .= "</div></div>";


step3. 接著修改系統DHTML編輯器的js檔新增function,共有1個檔案要進行修改
在 /include/formdhtmltextarea.js 下約133行,在xoopsCodeCode及xoopsCodeText兩個function之間,插入新的function

function xoopsCodeHidden(id, enterHiddenPhrase)
{
if (enterHiddenPhrase == null) {
enterHiddenPhrase ="Enter the content that you want to hidden.";
}
var selection = xoopsGetSelect(id);
if (selection.length > 0){
var text = selection;
}else {
var text = prompt(enterHiddenPhrase, "");
}
var domobj = xoopsGetElementById(id);
if ( text != null && text != "" ) {
var result = "[hidden]" + text + "[/hidden]";
xoopsInsertText(domobj, result);
}
domobj.focus();
}


step4. 接下來是修改系統DHTML編輯器的語系檔,共有1個檔案要進行修改
在 /language/tchinese_utf8/formdhtmltextarea.php 下約53行,插入一行新的文字變數

define('_XOOPS_FORM_ALT_CODE', '原始碼');
define('_XOOPS_FORM_ALT_QUOTE', '引用');
define("_XOOPS_FORM_ALT_ALTHIDDEN", "對訪客隱藏內容");


step5. 接著是修改系統共用語系檔,共有1個檔案要進行修改
在 /language/tchinese_utf8/global.php 下約178行,插入一行新的文字變數

define('_ENTERQUOTE', '輸入引用內容');
define('_ENTERTEXTBOX', '輸入文字內容');
define('_ENTERHIDDEN', '請輸入隱藏內容');

 

最後進後台更新一下template,打完收工,成果如下圖

加入隱藏標籤的編輯器畫面

訪客瀏覧時的畫面


發表自: 九五二七九五二七
愛漫畫愛遊戲愛上網愛星爺,小時摸到阿羅士與AppleII後註定宅一輩子,從紅白機玩到PS4,從386打到Xeon,沒日沒夜的打電動;待過所有宅產業,從光華混到NOVA,從遊戲滾到動漫,從攝影器材爬到網路電信,喜愛學習多於睡覺,無時無刻散發一股宅味,但號稱長的像梁朝偉XD

覺得讚想推薦或分享嗎?