Drupal相册模块的选择与实践

PHPABC Drupal 866 次浏览 , 没有评论

很多人问过我这样的问题,如何使用Drupal搭建一个相册.说实在的,这个问题不是一下子就回答出来的,因为至少有7,8中,甚至10+多种解决方案。
我先说一下我用过的一种方案,那就是Image模块,这个模块自带的相册的功能,尽管这样的功能在很多人看起来比较弱质,但是我不止一次的在项目中,应用过这种解决办法,甚至还在现有的基础上,写过胶水一样的代码,去满足客户的需求。
Image模块,在解决图片问题,相册问题上,一直是Drupal中事实的标准,但是这种解决方式,是在Drupal5以前的一种最主流的解决办法。在Drupal5中,也是一种常用的解决办法,而在Drupal6中,这种方式就比较落伍了。Drupal5中曾经有一个常用的相册模块,到 6就被淘汰了。自从CCK出现以后,确切地说是ImageField出现了以后,Image模块的解决方案,就开始落伍了。如果你现在使用Drupal作网站的话,如果遇到了相册功能,最好不要用Image模块,尽管这个模块是以前的标准方式,但是是一种落伍的方式。
有很多现成的相册模块,也很值得一提,Flickr模块,这个是将相册保存到外部网站上的,可以省去很多带宽。只有当你有这种需求的时候,又是Flickr的发烧友的时候,我想才会使用这种方式,这种方式在国外很流行。Galleria,这个模块,把相册处理为了节点,图片处理为了节点下的ImageField,对于商品展示,这样类似的网站非常有用,而且可以与jCarousel集成。但是这是比较初级的相册,你的侧重点可能并不在相册上,图片在这里知识一个亮点。这个时候用这个模块比价合适。
album photos模块,这个模块使用了Flash来展示相册,效果很漂亮。用的人也很多,我曾经到East的网站上,浏览过这个相册的演示,如果你想要一个效果很炫,没有特别个性化的需求的话,那么这个模块还是很实用的。
node_gallery模块是我最推崇的一种解决方案,我曾经给人提供过这样的咨询,因为这个人几乎用遍了所有的相册模块,没有一个完全满足他的需求,要么这里少了一点,要么那里少了一点。我就给他讲解了,Drupal中最灵活的一种解决方案,把相册处理为节点,然后把图片也处理为节点,图片节点和相册节点直接采用饮用的关系,图片采用 ImageField字段,外加Imagecache, imageAPI,使用类似胶水一样的代码将其整合为相册的形式。这种方式可以100%的满足用户的需求,但是需要这些模块的基础上进行定制。
后来,我在翻阅模块的时候,就发现了这个node_gallery模块,它与我给那个朋友所讲的解决办法,思路是完全一样,而且还有一个好处,社区的其它开发者,还在这个模块的基础上开发出来了几个漂亮的皮肤。
另外值得一提的是,这个模块的最初编写者,是中国人,和上面的album photos模块一样,都是中国人写的。
后来,我在帮助朋友搭建的xjy这个网站的时候,决定实践一下相册功能我希望能够比较灵活的实现,默认外观可以稍微丑陋一点,所以我自然而然的想到了 node_gallery模块。我也不止一次的向朋友推荐这个模块。它很好的满足了我的需求,但是当我的朋友提出了另一个很简单的需求时,难倒了我。我本以为使用Views+lightbox+node_gallery模块,能够很容易的实现朋友所说的需求,这个时候我发现了一个致命的弱点,尽管 node_gallery模块把相册和图片都处理为了节点,但是对于节点,它没有采用ImageField的方式,也就没有对views和CCK提供内置的支持。这是这个模块的缺点,一个很大的缺点,我无法在views里面随心所欲的取到我想要显示的图片,尽管它也提供了一些对views的简单支持,但是我觉得还是比较弱质的。
如果这个模块无法对Views+CCK提供100%的支持的话,这个模块将会在Drupal7中被淘汰掉。
我想找到一个模块,1,把相册和图片同时处理成为节点,2把图片节点中的图片的具体实现,采用Imagefield的方式。这是我认为最灵活的方式,也是我认为,将来会成为最主流的一种解决方案。我又搜了很久,终于找到了一个模块,完全满足了我上面所提到的需求。

这就是Views Gallery。它的原理和node_gallery模块一样,把相册和图片同时处理成为节点。但是它100%的支持CCK+views。尽管这个模块的展示,没有node_gallery漂亮,我当时找到了后者的几个漂亮的皮肤。但是外观还是可以接受的。最好的一点是,用了这个模块,我很轻松的就搞定了朋友提到的另一个需求。我使用views+lightbox+Views Gallery,非常方便的就得到了我想要的效果。
Views Gallery模块,是lullabot.com的人写的,作者是Drupal圈内骨灰级的人物。Date calendar的作者。另外这个模块的原理,可参看http://www.lullabot.com/articles/photo-galleries-views-attach这篇文章,就是我上面所提到相册,图片都是节点,图片的具体管理采用Imagefield的形式。
这个模块,同时让我见识了Views Attach,Nodereference URL。用了以后,才发现,以前曾经困惑我很久的一个问题,终于有了一个灵活的解决方案。自从我学会了OG,我见人就推荐使用OG,并罗列OG的好处。与 OG这种方式,Nodereference+ Nodereference URL+Views Attach ,这是一种比较轻量级的解决方案。
轻量级的解决方案?好处我就不多说了。用用就知道了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go