内容管理软件XOOPS 2粗评

前两天答应给大温莎华人协会维护网站5后,初步考虑使用一款内容管理系统(CMS,content management system)来管理、维护整个网站。

几种著名的基于PHP的CMS中,php-nuke名头最响、最老牌了,但现在收费了,而且基础架构好像没有postnuke好;但postnuke这个后期之秀开发了几年了,好像还是没什么明显的突破;另一个CMS产品phpWebSite是美国Appalachian州立大学开发的,一直就像大学里的实验产品,虽然开发了N年,但总是让人用起来感觉不爽(我一直觉得这个产品让人期望之余很失望);tiki给人的感觉不是最恰当的选择,更像一个信息、数据管理中心;Exponent Content Management System是这几者中最年轻的,也曾在sf.net上火过一把,但此后好像也没什么再出彩的地方了。

这样子算下来,XOOPS似乎应该是比较好的选择了。XOOPS的模块很多,功能完善,能和大名鼎鼎的Blog系统WordPress结合起来,而且还有中文的技术支持网站,所以乍看起来,不选XOOPS都不行了。

于是中午就下载了一份XOOPS v2.2.3安装、测试了一下。测试的结果只能用生气、呕血来形容。我本来不愿意浪费时间来写这个评测的,但是为了让我以后能够清晰地记住这个软件如何让人生气、失望,我还是详细地写写我的感受。

首先,安装v2.2.3后我发现该版本的官方语言包比较少,大概10来个,没有中文。于是,我用了个v2.0的中文简体语言包。此后,别的小瑕疵不说,单说选择语言为中文简体后,就会出现很多个程序运行警告信息。切换回英文错误信息少了很多,但还是有好几个,而且是核心程序里面出现的错误信息。也就是说,这个官方最新(稳定)版还是有明显的bug的。

因此,这时候我考虑用CVS下载最新的更新程序,然后对应地覆盖出错文件。可惜这般改动后错误信息依旧出现。无奈之余我就打开出错的这4、5个文件,发现了几个近乎白痴级别的程序设计错误:

1. /kernel/block.php里,getByModule()、getAllByGroupModule()、getAdminBlocks()、assignBlocks()被重复定义了2次,估计是开发人员复制、粘贴时候出的错。但是这种错误一测试就可以发现了呀,难道XOOPS的开发人员程序修改了之后都不测试就更新到CVS服务器里面去了??呕血。

2. /modules/newbb/language/english/modinfo.php里,用define重复定义"_MI_TEXT",这也是一测试就能测试出来的错误。

3. /kernel/module.php里,重复定义变量$_msg两次,而且这2次紧挨着,又是一个一测试就能测试出来的错误。

4. /class/theme.php里,在函数loadGlobalVars()里,用“if ($xoopsUser != '') {”,这里$xoopsUser是一个对象(object)。正确写法应该是“if (!empty($xoopsUser)) {1

5. 在某文件中,在定义某call by reference的函数的时候,返回布尔值,“return false”。正确写法应该返回某变量2

待把这几个错误修正了之后,英文版的XOOP终于可以正常运行了。但是一但切换到中文,由于语言包兼容性等问题,仍然出现一大堆错误。XOOPS虽然的确支持多语言,但这方面做得并不很好,对语言处理过于生硬3。这直接导致的后果就是:我根本无法通过官方网站提供的资料使用中文版的XOOPS。

好在有国人搞了XOOPS中文版。但我对中国程序员改造后的程序向来感冒,看了中文版XOOPS网站的下载介绍后,我根本无意从那里下载中文版的XOOPS,因为我觉得如果使用了这个中文版,我就被这个“狭隘”的中文版套牢了,以后想要解套也许还要看那些中文版程序员的脸色行事,不妥。

其实当XOOPS设计成支持多语言后,那么所有的针对XOOPS某一特定语言的语言包的开发都应该归到XOOPS这一个旗号下,而不要脱裤子放屁——多此一举地另立一旗号出来(就像osCommerce日文版一样)。但问题是XOOPS的开发、管理、测试看起来在某些方面做得比较烂4,导致有些语言包根本无法在XOOPS下正常使用(这点也可以用来解释为什么XOOPS v2.2.3的官方语言包只有可怜的10来个)。在这种情况下,某些语言的开发者(例如中国的开发者)另立旗号也是可以理解的。

其实,XOOPS的确是个很好的产品。但一个团队中,良莠不齐也是很正常的事情,偏偏有几个菜鸟级的开发人员坏了XOOPS这锅鲜汤。无奈之余,XOOPS的fans们也只能静待下一版本(也许是v2.3)的XOOPS尽快出台了。

暂别XOOPS。

[注1] 这个错误在低版本的PHP中也许能够通过。我用的是PHP5。

[注2] 这个错误在低版本的PHP中也许能够通过。我用的是PHP5。

[注3] 举两个例子。首先,在XOOPS 2中,若某一语言文件缺失,则马上报错,但语言文件缺失在这种系统中是非常常见的一个现象。其次,在设置为中文简体后,页面标题是非正常显示的编码。

[注4] XOOPS中文版开发者曾就此抱怨过

[补充说明5] 这里实际上不是为大温莎华人协会维护网站,而是要为温莎的中国艺术学院(义务)做一个新网站,特此澄清。2006-02-23 19:55:45
类别: 

评论

最近一段时间时常过来看看你的blog,一来你在使用s9,二来你跟我一样住加拿大。

很高兴你能够测试一下XOOPS而且写出自己的体验。
不过很遗憾你的XOOPS体验很不愉快,其中涉及的一些问题我简单介绍一下。

[[[首先,安装v2.2.3后我发现该版本的官方语言包比较少...]]]
XOOPS 2.2系列最新版英文2.24,中文2.26。
不可否认,XOOPS 2.2*版失误太多,虽然有很多很不错的新功能和尝试。
XOOPS官方目前的方案是推荐用户使用2.0系列等待2.4,除非特别需要2.2*中的一些功能。
最近发布的英文版2.24和中文版2.26应该算是比较稳定,可以用于正式网站。
另外,XOOPS不再使用SF的CVS做版本控制,转移到了berlios的SVN,如果要了解XOOPS核心的最近进展,可以到: http://developer.berlios.de/projects/xoops4

[[[好在有国人搞了XOOPS中文版。但我对中国程序员改造后的程序向来感冒,看了中文版XOOPS网站的下载介绍后,我根本无意从那里下载中文版的 XOOPS,因为我觉得如果使用了这个中文版,我就被这个“狭隘”的中文版套牢了,以后想要解套也许还要看那些中文版程序员的脸色行事,不妥。]]]
其实并不是XOOPS中文版,只是XOOPS的中文化版。
在语言管理和本地化方面,XOOPS与其他CMS不同的地方在于核心部分提供接口,各语种自己完善本地化并鼓励建立自己的本地化支持网站,XOOPS核心本身并不提供各语言包;如果要建立统一的本地化网站归于zh.xoops.org之类,那样反而让XOOPS核心管理团队力不从心,从技术上讲也是不实用的(如果对具体的技术细节感兴趣,我可找机会展开来谈)
另外,xoops.org.cn是我先开的,后来陆续有国内的朋友参与进来(完全是自愿的,我们在现实中并不相识)。虽然现在社区比以前活跃,但由于社区性质所决定,仍然有很多让人不满意的地方 -- 社区属于自我服务、自我完善类:发现有不满意的地方,就参与进来改进它。
如果你对XOOPS核心程序有什么建议,欢迎到http://sourceforge.net/forum/?group_id=41586讨论,或是跟我联系(我是XOOPS核心开发组两名主开发之一,目前主要任务是负责旧版本2.0, 2.2系列的维护和新核心架构中的本地化设计和模块接口)
如果你发现XOOPS.org.cn的网站上有什么不合适的地方,也希望能在网站上提出或跟我提醒一下,我们会非常感激你的建议。

-- s9将是我们在XOOPS 2.4中重点集成的blog (也许会在2.3中就能实现)

非常感谢你的回复和对xoops的相关介绍。我对很多软件的测试都是粗评,从自己的经验和使用感觉上来提提自己的看法。我所提出的看法有一定的代表性,但不代表我的看法完全正确,也不代表我的看法权威。言词上如有过激之处,相信你是能够理解的。

其实我也是前一阵看了你们网站关于XPress的相关文字才想起来要再次测试一下CMS的,也才会有这篇“粗评”文字的诞生。我会再认真看看xoops中文版的。不过现在我嘴馋了,去买点瓜子先……

一多花摘了许久枯萎了也舍不得丢,一把伞撑了许久雨停了也记不起wow gold收,一条路走了许久天黑了也走不到尽头,一句话wow gold想了很久清楚了,才说出口:有你真好!

添加新评论

友情提醒:您的言论自由在本站会得到充分保证;不过,由于广告留言等猖獗,因此本站的内容过滤系统有可能会暂时屏蔽您新发的留言或评论。不便之处,希望理解。