Vanessa

大前端的点滴生活

Drupal,开源 cms 里的巨擘

日期: 12 November 07作者: laogui分类: Web scripts


我从 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 的文章给大家参考,国内的不考虑,因为国内的都没特点,无法比较。


转自:http://www.laogui.com/93/drupal



欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

留下你的脚步