我从2002年底就开始关注drupal了,当时在国内看不到一点关于drupal的资料,2003年写过几篇关于drupal的介绍文章,到现在都经常看到很多介绍drupal的文章里引用我的话。记得2003年看到海微在研究drupal,并且发布了中文语言包,打开了drupal进入中国的大门。海微是我一直敬仰的一个人,以前一直致力于xoops的中文化工作,现在竟然搞Hiweed Linux操作系统了。
海微发布drupal中文语言包后我就一直开始用drupal,不过都是当作普通的blog程序来用,基本上不装插件,也没改过风格。中途试着改过几次风格,但试了几次都放弃了,感觉很麻烦。
最近看了几个用drupal做的强站,看了之后感觉就是震撼,根本看不出是用个开源代码的做的,看了之后我又萌发了修改drupal风格的念头,打算为我的极客集改个版。研究了两天,终于明白drupal模板的原理了,对CCK和views这两个超强模块也有了新的认识,把官方的主要模块都看了看,看得我眼都花了,实在是太多了,对drupal的评价就是:“只有想不到的,没有做不到的”你想要什么功能都有什么模块。这也是国外程序最大的特点,国内的人都抱怨国外的程序简单,不适合做大站,这都是因为没去研究过人家的模块。国外很多人把joomla,drupal叫做web操作系统,这很形象,人家只提供给你最底层的框架代码,其余的功能都留给模块了。就比如用windows一样,安装windows后可以使用,基本的功能也有,但你想要更多的功能就得装软件,你想让你的桌面变漂亮就得换主题。
Drupal属于开发型cms,最便于扩展的cms,在我看来它比joomla灵活很多,官方网站上的模块就有几千个,再加上cck的自定义字段功能,如果想用来做个门户网站功能上你也不用考虑太多了,所以现在Drupal程序员炙手可热,招一个Drupal程序员,不但可以为你节省更多的成本,还有利于以后的开发,毕竟核心代码你不用管了,和Linux一样,linux版本有几十个,但核心代码都是kernel小组开发的。
Drupal上手容易,各种模块装了就可以用,但如果想改模板需要熟悉CSS技术,也需要一定的PHP基础,当然还需要一定的英文基础,因为中文资料相对较少,但官方网站上的教程就够你看一辈子了。如果你css,php,英文都不错,那Drupal在你手中简直就是一个万能工具了,你会越来越对它爱不释手。
不得不承认,Drupal的模板是个门槛,在默认的模板基础上很难做出复杂的页面,和中国人心中的门户网站相差很远。要想做复杂的页面views成了必须用的模块,虽然它很灵活,但使用也很麻烦,而且如果调用太多很占资源,但这个你不必考虑太多,Drupal有很好缓存功能,还有很多缓存插件,数据查询都是一次性运行了放在一个表里随时调用,而且国外那么多大站用drupal充分说明了它的性能。
Drupal的模板核心就是区块(block),你只需要把你的模板分成很多块,然后把drupa生成的区块排列在你的模板上,你安装的插件如果需要显示一般都会自动生成个区块。Drupal官方发布模板都比较简单,一般只适合做左中右结构的网站,如果你想自己在模板里多加一些容器来放Drupal的区块,需要phptemplate_regions函数,当然更方便的是module_invoke函数,可以让你的区块显示在你想放的任何地方。
drupal默认生成的各种区块里带有很多层的html代码,几乎每个html标签都有单独的css id或者class,这样方便你用css控制显示效果,这给我带来了极大的方便,不用动html代码就可以修改模板的显示效果。
这次给极客集改版让我学了很多东西,本来做了一个比较复杂的页面,调用比较多,研究了一下views模块,感觉太麻烦了,而我又不喜欢装模块,能不用的模块尽量不用,极客集只装了几个比较简单的模块(BUEditor,Google Sitemap,Month,Similar By Terms,Captcha)。views是最复杂的一个模块,代码体积几乎是drupal核心的三分之一,于是我打算放弃views做个比较简单的页面了。其实如果你PHP学的好的话完全可以不用views,views本质上就是生成一段Mysql查询语句。
Drupal的官方论坛是个大宝库,你遇到的问题几乎都可以在那里找到答案,随便提个问题就有很多热心人来帮你,而且还会有其他人给出不同的参考答案。这也是国外开源项目最让人羡慕的地方,真让人兴奋啊。去了官方社区才认识到自己很菜,
这篇文章不小心又成了鼓吹drupal的“枪稿”了,其实根本用不着夸它了,它刚刚获得了2007年最佳开源cms的大奖,去年这个奖是Joomla的。也许有人会问我“你整天说这个程序好,那个程序好,到底哪个最好啊?”,说实话我也不知道那个好,每个都有自己的特点,关键是看使用的人,有的人用个简单blog做的站比那些用大型CMS的都感觉复杂。我本人是见一个爱一个,我很多网站,都用不同的cms,它们都是我的情人,每个情人都能给我带来激情,哈哈。过几天打算写一篇比较国外cms的文章给大家参考,国内的不考虑,因为国内的都没特点,无法比较。