Vanilla Forums

簡介Vanilla Forums是一套PHP+MySQL開源論壇。它的特點在于各種配置,功能,操作界面風格(Themes)都很簡潔,素雅。另外Vanilla默認會在首頁中直接列出所有貼子,按照時間順序,把最新的討論貼放在最前面和概念中的論壇相比更加像博客。Vanilla所有的功能和模塊都是通過應用(Applications)和插件(Plugins)來實現,是一款靈活的輕量級論壇程序。

這兩天都是在搗鼓這個東西,再加上家里有人來裝修什么的,原本的計劃都被打亂了。最初看到Vanilla Forums(注目:不是吃的草莓……)是在煎蛋最初的論壇上面,當然那時還不知道這就是Vanilla Forums,正式知道叫做Vanilla Forums還是在09年的時候,當時在家無聊,于是就想搭個論壇玩玩什么的(當然后來并沒有實行),當時國內的主流論壇程序大概有下面這些吧:PHPwind 、Discuz、Dvbbs 、BBSMAX、BBSXP等,但一直以來都覺得這些論壇程序大多都是臃腫惡心的,尤其是當時SNS大行其道,有些論壇自然也連SNS也功能也整合進去了實在是無法忍受,現在回看,這些論壇帶SNS的模式沒有多少個是成功的。而我心中的論壇,外觀上最起碼應該是百度貼吧或者天涯或者水木清華或者小百合那樣的,方便簡單、明了直觀。

于是就看看國外的開源程序,主流的有phpBB、MyBB、UseBB等,但這些離我心目中輕量級還有一段距離,于是就想到了早期在煎蛋看到過的討論區,那時候再去煎蛋,煎蛋已經棄用了Vanilla。不是很甘心,于是上php-open上面查看一下有什么收獲沒有,果然發現了Vanilla Forums的蹤跡,當時Vanilla Forums的版本是1.1.9,界面如下,搭建后放了上一個空間商,發了一些帖子。但后來因為去了工作繁重的阿里同盟上班也就不了了之了。

Vanilla Forums

兩天前在網上看到有人在提及這個東東,于是就點上官網上看看。哈一上去就是驚喜Vanilla Forums已經升級為2.0.16版本了,界面依然簡介,雖說界面上比1.1.9版豪華了那么一點,但依然沒有違背簡約這個原則。最后還是將其下載下來擺弄了一兩天,哈哈,最后分享一下這兩天的中文配置經驗和心得吧,不算完整也不完善,純分享而已。Vanilla Forums下載地址:http://vanillaforums.org/download

安裝環境,php4.1+和MySQL,這個不多說了。

新安裝的Vanilla Forums會自動開啟兩個應用,VanillaConversations,其中Vanilla是核心應用,禁用之后論壇不能被訪問,看到有說官方有提供1.0版本和2.0版本Vanilla應用,不過找過1.0版本的;Conversations是用戶之間發私信的應用,禁用后不影響論壇使用,但用戶之間則不能互發私信,而且Conversations可以提供多個用戶之間相互聊天的功能,有點像多人聊天室。

中文語言包,國外的東西默認語言當然不會是中文了,但國內也有熱心人士提供了中文語言包,下載地址是:點擊這里。具體啟用方法是:

解壓文件后,將zh_CN文件夾移動的網站locales里邊;
然后修改config/config.php文件中$Configuration['Garden']['Locale']選項;
改成$Configuration['Garden']['Locale'] = ‘zh-CN’;,如沒有看到改選項的話就自己添加;
然后進入管理后臺啟用中文語言,注意是先修改后啟用。

評價,該語言包翻譯了前臺絕大部分語言,我發現有一兩個是遺漏的,當然如果添加了一些插件,則可能會不能全部翻譯,這是可以自己通過修改語言包來達到目的。后臺作者并沒有翻譯完整,不過對于老手老說英文后臺不是太礙事,實在不行的話Google翻譯一下大概能知道真正的意思。

時區,程序是通過讀取php.ini這個配置文件來確定時區的,所以用戶可以通過修改php.ini來修改成東8時區,如果不能修改php.ini的話,可以通過修改bootstrap.php來改成東8時區

找到bootstrap.php文件;
找到// Make sure a default time zone is set
if (ini_get(‘date.timezone’) == ”)
date_default_timezone_set(‘America/Montreal’);

改成// Make sure a default time zone is set
//if (ini_get(‘date.timezone’) == ”)
// date_default_timezone_set(‘America/Montreal’);
date_default_timezone_set(‘Asia/Hong_Kong’);

其實就是屏蔽了原有判斷語句改為直接使用香港時區。

中文用戶名,論壇使用郵箱注冊,可以自定義用戶名,但默認只能是英文的,可以通過以下方法來實現定義中文用戶名

找到functions.validation.php文件
找到ValidateUsername函數,將函數中的正則表達式改成‘/^([\d\w_\x80-\xff]{3,20})?$/si’

使用中文名之后會出現一些小問題,比如產看中文名用戶資料頁面會出現錯誤,原本@加上用戶名之后可以通知被@的用戶還有點擊可以跳轉到用戶資料頁面,但對中文名用戶失效,原有#加上英文單詞可以跳轉到搜索頁面,類似話題模式,但論壇本身本沒有識別中文分詞什么的,所以#之后加上中文內容不能點擊進行搜索,下面提供解決方案

/profile/用戶名 可以訪問到用戶資料

找到applications/dashboard/models/class.usermodel.php文件
$User = $this->SQL->Where(‘u.Name’, $Username)->Get()->FirstRow();
改成 $User = $this->SQL->Where(‘u.Name’, urldecode($Username))->Get()->FirstRow();

@用中文名用戶 和點擊鏈接

找到functions.general.php文件
找到GetMentions函數
將正則式‘/(?:^|[\s,\.])@(\w{3,20})\b/i’,
改成‘/(?:^|[\s,\.])@([\S]{1,20})(?=[\s,\.!?]|$)/i’,
找到library/core/class.format.php 文件
找到Mentions 函數
將正則式‘/(^|[\s,\.])@(\w{1,20})\b/i’, //{3,20}
改成‘/(^|[\s,\.])@([\S]{1,20})(?=[\s,\.!?]|$)/i’,

#中文話題 搜索

找到library/core/class.format.php 文件
找到Mentions 函數
將正則式‘/(^|[\s,\.])\#([\w\-]+)(?=[\s,\.!?]|$)/i’,
改成‘/(^|[\s,\.])\#([\S]{1,30}?)#/i’,
將緊接著的正則式‘\1′.Anchor(‘#\2′, ‘/search?Search=%23\2&Mode=like’).’\3′,
改成’\1′.Anchor(‘#\2#’, ‘/search?Search=%23\2%23&Mode=like’).’\3′,

通過上面的修改,可以將中文話題以#話題#的形式點擊跳轉,類似各大微博,但對于中文搜索依然不可用。

插件推薦
程序初期提供了16個插件,但并非感覺上并不是每個都用到,下面就寫一寫我這兩天測試推薦使用插件。
AdSense,顧名思義,就是Google AdSense的插件,將廣告添加在主題帖之后。
EasyReply,通過這個插件,帖子會提供一個鏈接,點擊之后會在回復框自動添加@用戶名 來提醒用戶有人回帖了。
Emotify :) ,表情插件,再回復框左上角添加了既可愛又操蛋的表情按鈕。
IE6 Update,雖然官方說Vanilla Forums是兼容IE 6的,但經過測試由JQuery實現的彈窗在IE 6下其實是不兼容的,所以用這個插件來提醒一下吧,貌似國外IE 6基本已經絕跡了,但國內用的還是很多。
Magic,通過這個插件,jpg、jpeg、gif、png這四種格式的圖片只要在文本框直接添加圖片路徑就會自動轉換成圖片了,要注意的是,這個插件的功能對主題帖是不起作用的,只對回帖起作用,你可以通過在$Sender->EventArguments['Comment']->Body = $this->MakeView($Sender->EventArguments['Comment']->Body);之后添加$Sender->EventArguments['Discussion']->Body = $this->MakeView($Sender->EventArguments['Discussion']->Body);這段語句,則插件對主題貼也起作用了。
Post Count,有了這個插件,可以統計出用戶的發帖數。
Quotes,提供引用功能的插件,不過有一個不足,就是如果原帖有1000字,則如果引用的話會1000字全部引用,可以通過修改JS文件來實現只引用100字之類的,這個暫時沒改。
HtmLawed,用了屏蔽有害Html代碼插件。
Embed vanilla,通過這個插件,Vanilla Forums允許使用js將整論壇嵌入到一個頁面中,在選用一個合適的主題效果不錯,如圖所示。

wordpress-Vanilla-1

wordpress-Vanilla-2

備用插件:
Facebook,用Facebook賬號登陸論壇的插件。
Twitter,用Twitter賬號登陸的插件。
GoogleSignIn,用Google賬號登陸的插件。
天朝里邊以上3個插件的作用不大。
FileUpload,允許用戶上傳附件的插件。
Cleditor,基于JQuery驅動的一款可視化編輯器,個人對可視化編輯器比較無愛。
Following,用戶互粉插件。
WhosOnline,用戶在線顯示插件。
Gravatar,這個插件可以使用戶調用Gravatar頭像,不過Vanilla Forums本身允許用戶上傳自定義頭像,所以作用不大。

嗯先寫這么一些吧,畢竟插件還沒全部用過,而且部分英文看不懂,Goggle翻譯出來的也不是太靠譜。
Vanilla Forums除了提供帖子討論功能之外,還用動態分享和收藏帖子功能,動態分享功能有點像QQ空間和騰訊朋友的動態分享功能,就是簡約一點吧。