@ 2007.08.22 , 22:38

Vanilla 杂谈

[-]
yee 在我上次那篇 bbpress 杂谈 下的留言挑起了我对 Vanilla 的兴趣。所以这几天,我开始玩 Vanilla,玩出些心得,写出来和大家分享。Vanilla 绝对 比 bbpress 强大 N 倍!【文末我会提供本文涉及到的 Vanilla 和插件打包下载,都汉化过了】。

当 yee 推荐我用 Vanilla 的那天,我就安装过。不过没试用就删除了。删除的原因下面讲。

安装

准备工作

首先对比两者安装方法,方法类似。 bbpress 要自己去修改配置代码,而 Vanilla 是在安装过程中配置。当我第一次安装 Vanilla  的时候,我脑子里还是想着 bbpress 的安装过程,总觉得 Vanilla 这样的安装步骤很不爽。当我第二次安装的时候,才发现其实 Vanilla 的安装更方便。

APMServ 这个运行环境的下载安装配置,请参考 bbpress 杂谈中“第一步,准备工作”。其次,下载 Vanilla ,解压到 APMServ 所在文件夹下的 “www\htdocs”,然后我们在 APMServ 的界面点击“管理 MySQl 数据库”。在弹出的浏览器窗口中输入用户名:root,密码为空。然后新建一个数据库,名字为 vanilla

安装过程

在浏览器里面打开 http://127.0.0.1/Vanilla/setup/installer.php ,页面的提示是当你把 Vanilla 上传到服务器之后要做的准备工作。这里我们可以不理会。直接点击最底的链接,进入下一步。

请按照以下填写:

  • MySQL Server:localhost
  • MySQL Database Name:vanilla
  • MySQL User:root
  • MySQL Password:(空着就行)

然后点击最底的链接,进入下一步。这里是创建管理员和配置论坛的步骤

  • Username、Password、Confirm Password,这些难不倒大家。
  • Support Contact Name 和 Support Email Address,会显示在重置用户密码或用户权限变更通知的邮件中。
  • Forum Name,论坛的名字,建议先使用默认的名字 Vanilla ,反正安装完成后也可以修改。如果这里你输入中文的话,安装完成后论坛的名字就会显示为很乱的码。我第一次安装的时候就是给这个迷惑了。心想,奇怪了,sein 以前给煎蛋做论坛的时候不是也用了 Vanilla?名字就叫“火星”(火星已关闭)。怎么我这里显示出来就会是乱码呢?第一次安装完成的时候,由于名字的乱码,让我对 Vanilla 的好感度降低了不少。然后我删除了 Vanilla ,返回 bbpress 的研究去了。后悔ing~
  • Cookie Domain、Cookie Path :这两个 Vanilla 会自动填写,一般不用修改这里的值。如果需要,请参考页面提示进行修改。

安装到此就差不多了,再点击最底的链接两次,就可以看到登录界面了。

安装语言包

下载 Simplified_Chinese_UTF-8-2007-02-25 ,解压到 Vanilla 的 languages 文件夹里,然后登录,点击 settings → Languages,在右边的下拉框中选择“Simplified_Chinese_UTF-8”,点击 save 就 ok 啦。上次我晕晕傻傻地下载了繁体版的(@_@)。

换主题咯

ok,现在我们下载主题去啦。我下载了vaneablack 这个银黑搭配的主题。

下载的主题要放在哪里呢?当然是放到 themes 。先别急着解压到 themes 里面去,我刚开始也以为解压进去不就完事啦,怎么应用主题的时候 Vanilla 提示出错呢。经过一番折腾,我尝试着放到 \themes\vanilla\styles ,还是不行。灵感的火花一下子就把那句——“问 Google 吧”,大家心里有这么想的吧——给烧掉了。(注:我还在火星,怎么可能上网去查)。仿造 \themes\vanilla\styles ,把下载到的主题解压到 \themes\vaneablack\styles ,哦也!有一点要提醒大家,在“ 设置→设置主题与风格”中选择某个主题后,记得勾选“将这个风格套用至所有的使用者”,再点击“保存”,你才能看到新主题哦。

添加扩展

扩展的安装类似 bbpress ,你只需要把下载到的扩展解压到 extensions 里就行了,然后在“ 设置 → 管理插件就可以启用或禁止插件。

这里重点啰嗦一下插件的汉化, Vanilla 插件的汉化比 bbpress  方便多了,非常佩服作者,这点 bbpress 是没办法和 Vanilla 抗衡的。

插件 Account Pictures 为例,Vanilla 是没上传头像功能的,而这个插件正是弥补了这个缺憾。打开 AccountPictures\default.php ,我们可以在第 24 行看到类似下面的一些定义语句:

$Context->SetDefinition('AccountPictures', 'Account Pictures');

再打开语言包文件 languages\Simplified_Chinese_UTF-8\definitions.php ,把上面那句复制到 definitions.php

/* Please do not remove or alter this definition */

的前面,把加粗的部分修改为:

$Context->Dictionary['AccountPictures'] = '头像上传';

其他的定义语句也是这样汉化。

# 该汉化方法是我自己发现的,完全是靠直觉尝试出来的,我不懂 php ,真的。也许网上早有人写出 Vanilla 插件的汉化办法。

插件 tips

QuoteText
是一个实现引用功能的插件,我下载的时候没注意作者的说明,以为插件的压缩包里面会有说明文件。我激活它,找个帖子测试,点击帖子右上角的 Quote,回复输入框出现这样的语句[quote=root][/quote],奇怪,发布回复试试。(- -|||)。直接显示着“[quote=root][/quote]”,难道该插件不兼容?

找呀找说明,什么?竟然没有说明文件?无语了。我只好打开 QuoteText\default.php 去看看源代码。不对,我不懂 php,就算我把眼珠子瞪到比牛大都看不出个蛛丝马迹来。好彩,我又打开了 QuoteText\functions.js,不一会儿我的眼光就聚集在这句上:“document.selection.createRange().text;”。哈哈,知道怎么用了,原来要先选中某些文字,再点击 Quote

#后来才发现,在管理插件页面,QuoteText 那一行有说明提示。(orz)

尝试过汉化,失败。

Who's Online
一款显示谁在线的插件,激活后,每个人都可以在“帐户 → 帐户设置”里进行个性化设置,可以隐藏在线用户面板,或者隐藏自己的在线状态。

汉化过程比较繁琐。

打开 WhosOnline\default.php ,把

$Context->Dictionary["MenuOptions"] = "Menu Options";
$Context->Dictionary["HideWhosOnline"] = "Hide the \"Who's Online\" panel";
$Context->Dictionary["Phantom"] = "Hide my username from the \"Who's Online\" panel";

修改为

$Context->SetDefinition('MenuOptions', 'Menu Options');
$Context->SetDefinition('HideWhosOnline', 'Hide the \"Who\'s Online\" panel');
$Context->SetDefinition('Phantom', 'Hide my username from the \"Who\'s Online\" panel');

然后按照上文汉化才能成功!

到这里,其汉化还是不完整的。接着把侧边栏的“Who's Online”汉化掉,根据 155 行(当然我也对比了其他插件),我们只需要在前面增加一句:

$Context->SetDefinition('Who\'s Online', 'Who\'s Online');

然后继续按照上文的汉化步骤就 ok 啦。不过放到 definitions.php 的语句是这样的

$Context->Dictionary["Who's Online"] = "在线用户";

区别就是少了个“\”。

如果有一个在线用户选择了隐身的话,就会显示为 1 phantom user ,还要想办法汉化掉它。把 171 行

$phantom_string = "$phantom_count phantom user";

修改为

$phantom_string = "$phantom_count ".$Context->GetDefinition("PhantomCount");

(中间的点.在php中是起连接两个字符串的作用,我查了 php 的参考书),然后在前面增加一句

$Context->SetDefinition('PhantomCount', 'phantom user');

别忘记在语言文件里面汉化哦。

第 178 行也是要做类似的汉化。

Friends
增加好友功能,对这个插件的汉化只要灵活使用上面的招数就 ok 啦。有一点要说明的是:在 Friends\members.php 的第 47 行,你需要修改这一行中的 URL 地址(修改四次),如果你放到网上的话,请根据实际情况修改。本地测试的修改步骤是:

请把

http://zfiles.110mb.com/extension.php

替换为

/Vanilla/extension.php

对其 CSS 样式的修改我就不多说了。

目前,作者不建议我们下载这个版本,因为新版本 2.0 就要杀出来了。这个版本不能删除好友。

Private Messages
站内消息功能,注意:要新建一个任何人都无法访问的版面来存放这些站内消息。缺点:站内消息无法删除。【类似扩展

Poll
可以给帖子插入投票。不错推荐。要汉化语句都包含在 conf\language.php 中。

Signatures
论坛怎么能少了签名这种功能呢?注意:激活插件后, 打开 themes\comments.php 然后找到第 131 行

$CommentList .= $Comment->Body.'

,将这一行其替换为

$CommentList .= $Comment->Body.(defined('EXTENSION_IN_SIGNATURES') ? SignatureRender(@$Row['AuthUserPrefs']) : '').'

建议再修改 Signatures\style.css,在“}”的前面再插入以下 css 语句,这样签名和回帖内容就不容易混淆了。

border-top-style: dashed;
border-width:1px;

# 到这里,我发现这些插件都能很好地在上文提到的主题 vaneablack 下很好地相处。其他主题很有可能变成歪鼻斗鸡眼之类丑八怪。

对其汉化有一点要提醒大家:Signatures\default.php 中第 22 行是用来限制签名的长度用的。这句必须剪切到 languages\Simplified_Chinese_UTF-8\definitions.php

Announcement
论坛怎么能少了公告板这样的功能?

Forced BBCode
为回复框增加 BBCode 功能,有了这个扩展,论坛才更像一共论坛。

注,此扩展会吞并 QuoteText 的样式。

Tinymce
现在都什么时代了, BBcode 是不是有点过时啊?那么我们可以使用 Tinymce 这个可视化编辑器插件。下载了插件文件。你还需要下载 Tinymce 的主体程序。然后解压到" vanilla\js "。激活插件就行了。它有官方的汉化语言包,这里下载 zh_cn_utf8 。
然后解压到" vanilla\js ",最后打开 extensions\Tinymce\default.php ,把 32 行修改为

languages : "zh_cn_utf8",

Tinymce 配置比较简单方便,就是不兼容火狐啊。哦,反正在我的火狐(2.0.0.4)上会出现兼容问题。

FCKeditor
唉,鱼与熊掌不可兼得啊。这个家伙比 Tinymce 强大多了(自带语言包,并自动切换,有上传图片功能),就是配置步骤多了点。按照说明配置好后,无论我怎么刷新都看不到可视化编界面。算了,重新配一次。还是不行。重新配了两三次之后,我失去耐心了。差点给这个插件气死。怎么可以这样欺负我呢?

后来,无意间,看到 extensions\Tinymce\default.php 中,有这样一句

if ( in_array($Context->SelfUrl, array("post.php", "comments.php")) ) {

我虽不懂 php ,当我也可以猜出这里应该是 hack 掉 post.php 和 comments.php 页面的输入框啦。这时候,灵感又来了,
extensions\FCKeditor\default.php 里搜索 $Context->SelfUrl 试试,找到了两处。然后我在第二处的下两行看到了希望(请注意加粗部分):

$Context->Dictionary['VisualEditingPreference'] = 'Enable Visual editing toolbar (not compatible with Safari Browser)';

俄的神啊,原来还需要 Enable 才能用啊。在“帐户 → 讨论区偏好设置”里,可以找到激活 FCKeditor 的配置选项。为什么作者不说明呢?害我找得好苦啊。

另外推荐一篇 FCKeditor 的配置与精简文章给大家做参考:FCKeditor 2.0 的设置.修改.使用

FCKAjaxQuote
用了 FCKeditor 上面介绍的 Quote 插件就没用了。幸好有这款插件,而且也能汉化。

RSS2 Feed
RSS 流行的年代,论坛当然也要有 RSS!其他类似的扩展有问题。

最后是重头戏啦,点击这里下载我汉化配置过的 Vanilla ,包含本文介绍过的插件。你只要做安装步骤,然后激活你想要的插件。传了一个晚上,本来想发 box.net 的。

小结

Vanilla 太牛了。尤其是“国际化”非常方便。缺点就是,有些插件,如 Friends 没有删除好友功能;Private Messages 没有删除站内消息的功能。我一向最怕写小结,大家看看 yee 写的这篇:Vanilla-最有Blog像的论坛程序

赞一个 (0)