簡介:Vanilla Forums是一套PHP+MySQL開源論壇。它的特點(diǎn)在于各種配置,功能,操作界面風(fēng)格(Themes)都很簡潔,素雅。另外Vanilla默認(rèn)會在首頁中直接列出所有貼子,按照時(shí)間順序,把最新的討論貼放在最前面和概念中的論壇相比更加像博客。Vanilla所有的功能和模塊都是通過應(yīng)用(Applications)和插件(Plugins)來實(shí)現(xiàn),是一款靈活的輕量級論壇程序。
這兩天都是在搗鼓這個(gè)東西,再加上家里有人來裝修什么的,原本的計(jì)劃都被打亂了。最初看到Vanilla Forums(注目:不是吃的草莓……)是在煎蛋最初的論壇上面,當(dāng)然那時(shí)還不知道這就是Vanilla Forums,正式知道叫做Vanilla Forums還是在09年的時(shí)候,當(dāng)時(shí)在家無聊,于是就想搭個(gè)論壇玩玩什么的(當(dāng)然后來并沒有實(shí)行),當(dāng)時(shí)國內(nèi)的主流論壇程序大概有下面這些吧:PHPwind 、Discuz、Dvbbs 、BBSMAX、BBSXP等,但一直以來都覺得這些論壇程序大多都是臃腫惡心的,尤其是當(dāng)時(shí)SNS大行其道,有些論壇自然也連SNS也功能也整合進(jìn)去了實(shí)在是無法忍受,現(xiàn)在回看,這些論壇帶SNS的模式?jīng)]有多少個(gè)是成功的。而我心中的論壇,外觀上最起碼應(yīng)該是百度貼吧或者天涯或者水木清華或者小百合那樣的,方便簡單、明了直觀。
于是就看看國外的開源程序,主流的有phpBB、MyBB、UseBB等,但這些離我心目中輕量級還有一段距離,于是就想到了早期在煎蛋看到過的討論區(qū),那時(shí)候再去煎蛋,煎蛋已經(jīng)棄用了Vanilla。不是很甘心,于是上php-open上面查看一下有什么收獲沒有,果然發(fā)現(xiàn)了Vanilla Forums的蹤跡,當(dāng)時(shí)Vanilla Forums的版本是1.1.9,界面如下,搭建后放了上一個(gè)空間商,發(fā)了一些帖子。但后來因?yàn)槿チ斯ぷ鞣敝氐陌⒗锿松习嘁簿筒涣肆酥恕?/p>
兩天前在網(wǎng)上看到有人在提及這個(gè)東東,于是就點(diǎn)上官網(wǎng)上看看。哈一上去就是驚喜Vanilla Forums已經(jīng)升級為2.0.16版本了,界面依然簡介,雖說界面上比1.1.9版豪華了那么一點(diǎn),但依然沒有違背簡約這個(gè)原則。最后還是將其下載下來擺弄了一兩天,哈哈,最后分享一下這兩天的中文配置經(jīng)驗(yàn)和心得吧,不算完整也不完善,純分享而已。Vanilla Forums下載地址:http://vanillaforums.org/download
安裝環(huán)境,php4.1+和MySQL,這個(gè)不多說了。
新安裝的Vanilla Forums會自動開啟兩個(gè)應(yīng)用,Vanilla和Conversations,其中Vanilla是核心應(yīng)用,禁用之后論壇不能被訪問,看到有說官方有提供1.0版本和2.0版本Vanilla應(yīng)用,不過找過1.0版本的;Conversations是用戶之間發(fā)私信的應(yīng)用,禁用后不影響論壇使用,但用戶之間則不能互發(fā)私信,而且Conversations可以提供多個(gè)用戶之間相互聊天的功能,有點(diǎn)像多人聊天室。
中文語言包,國外的東西默認(rèn)語言當(dāng)然不會是中文了,但國內(nèi)也有熱心人士提供了中文語言包,下載地址是:點(diǎn)擊這里。具體啟用方法是:
解壓文件后,將zh_CN文件夾移動的網(wǎng)站locales里邊;
然后修改config/config.php文件中$Configuration['Garden']['Locale']選項(xiàng);
改成$Configuration['Garden']['Locale'] = ‘zh-CN’;,如沒有看到改選項(xiàng)的話就自己添加;
然后進(jìn)入管理后臺啟用中文語言,注意是先修改后啟用。
評價(jià),該語言包翻譯了前臺絕大部分語言,我發(fā)現(xiàn)有一兩個(gè)是遺漏的,當(dāng)然如果添加了一些插件,則可能會不能全部翻譯,這是可以自己通過修改語言包來達(dá)到目的。后臺作者并沒有翻譯完整,不過對于老手老說英文后臺不是太礙事,實(shí)在不行的話Google翻譯一下大概能知道真正的意思。
時(shí)區(qū),程序是通過讀取php.ini這個(gè)配置文件來確定時(shí)區(qū)的,所以用戶可以通過修改php.ini來修改成東8時(shí)區(qū),如果不能修改php.ini的話,可以通過修改bootstrap.php來改成東8時(shí)區(qū)
找到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’);
其實(shí)就是屏蔽了原有判斷語句改為直接使用香港時(shí)區(qū)。
中文用戶名,論壇使用郵箱注冊,可以自定義用戶名,但默認(rèn)只能是英文的,可以通過以下方法來實(shí)現(xiàn)定義中文用戶名
找到functions.validation.php文件
找到ValidateUsername函數(shù),將函數(shù)中的正則表達(dá)式改成‘/^([\d\w_\x80-\xff]{3,20})?$/si’
使用中文名之后會出現(xiàn)一些小問題,比如產(chǎn)看中文名用戶資料頁面會出現(xiàn)錯(cuò)誤,原本@加上用戶名之后可以通知被@的用戶還有點(diǎn)擊可以跳轉(zhuǎn)到用戶資料頁面,但對中文名用戶失效,原有#加上英文單詞可以跳轉(zhuǎn)到搜索頁面,類似話題模式,但論壇本身本沒有識別中文分詞什么的,所以#之后加上中文內(nèi)容不能點(diǎn)擊進(jìn)行搜索,下面提供解決方案
/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();
@用中文名用戶 和點(diǎn)擊鏈接
找到functions.general.php文件
找到GetMentions函數(shù)
將正則式‘/(?:^|[\s,\.])@(\w{3,20})\b/i’,
改成‘/(?:^|[\s,\.])@([\S]{1,20})(?=[\s,\.!?]|$)/i’,
找到library/core/class.format.php 文件
找到Mentions 函數(shù)
將正則式‘/(^|[\s,\.])@(\w{1,20})\b/i’, //{3,20}
改成‘/(^|[\s,\.])@([\S]{1,20})(?=[\s,\.!?]|$)/i’,
#中文話題 搜索
找到library/core/class.format.php 文件
找到Mentions 函數(shù)
將正則式‘/(^|[\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′,
通過上面的修改,可以將中文話題以#話題#的形式點(diǎn)擊跳轉(zhuǎn),類似各大微博,但對于中文搜索依然不可用。
插件推薦
程序初期提供了16個(gè)插件,但并非感覺上并不是每個(gè)都用到,下面就寫一寫我這兩天測試推薦使用插件。
AdSense,顧名思義,就是Google AdSense的插件,將廣告添加在主題帖之后。
EasyReply,通過這個(gè)插件,帖子會提供一個(gè)鏈接,點(diǎn)擊之后會在回復(fù)框自動添加@用戶名 來提醒用戶有人回帖了。
Emotify ,表情插件,再回復(fù)框左上角添加了既可愛又操蛋的表情按鈕。
IE6 Update,雖然官方說Vanilla Forums是兼容IE 6的,但經(jīng)過測試由JQuery實(shí)現(xiàn)的彈窗在IE 6下其實(shí)是不兼容的,所以用這個(gè)插件來提醒一下吧,貌似國外IE 6基本已經(jīng)絕跡了,但國內(nèi)用的還是很多。
Magic,通過這個(gè)插件,jpg、jpeg、gif、png這四種格式的圖片只要在文本框直接添加圖片路徑就會自動轉(zhuǎn)換成圖片了,要注意的是,這個(gè)插件的功能對主題帖是不起作用的,只對回帖起作用,你可以通過在$Sender->EventArguments['Comment']->Body = $this->MakeView($Sender->EventArguments['Comment']->Body);之后添加$Sender->EventArguments['Discussion']->Body = $this->MakeView($Sender->EventArguments['Discussion']->Body);這段語句,則插件對主題貼也起作用了。
Post Count,有了這個(gè)插件,可以統(tǒng)計(jì)出用戶的發(fā)帖數(shù)。
Quotes,提供引用功能的插件,不過有一個(gè)不足,就是如果原帖有1000字,則如果引用的話會1000字全部引用,可以通過修改JS文件來實(shí)現(xiàn)只引用100字之類的,這個(gè)暫時(shí)沒改。
HtmLawed,用了屏蔽有害Html代碼插件。
Embed vanilla,通過這個(gè)插件,Vanilla Forums允許使用js將整論壇嵌入到一個(gè)頁面中,在選用一個(gè)合適的主題效果不錯(cuò),如圖所示。
備用插件:
Facebook,用Facebook賬號登陸論壇的插件。
Twitter,用Twitter賬號登陸的插件。
GoogleSignIn,用Google賬號登陸的插件。
天朝里邊以上3個(gè)插件的作用不大。
FileUpload,允許用戶上傳附件的插件。
Cleditor,基于JQuery驅(qū)動的一款可視化編輯器,個(gè)人對可視化編輯器比較無愛。
Following,用戶互粉插件。
WhosOnline,用戶在線顯示插件。
Gravatar,這個(gè)插件可以使用戶調(diào)用Gravatar頭像,不過Vanilla Forums本身允許用戶上傳自定義頭像,所以作用不大。
嗯先寫這么一些吧,畢竟插件還沒全部用過,而且部分英文看不懂,Goggle翻譯出來的也不是太靠譜。
Vanilla Forums除了提供帖子討論功能之外,還用動態(tài)分享和收藏帖子功能,動態(tài)分享功能有點(diǎn)像QQ空間和騰訊朋友的動態(tài)分享功能,就是簡約一點(diǎn)吧。