重新审视 Drupal,一切以 node 为中心
花了点时间看了下 cck、og 和 project 模块,对 Drupal 的了解又深入了一层。就是以 node 为中心的设计。
对于 cck 来说这是很自然的,cck 的目的就是为了给 node 随意定制附加内容。project 的实现更进一层,直接定制了一个专用 node 类型。OG 是最复杂的,需要和 cck 一样手工创建 node 类型,然后指定给 OG,末了还需要 views 来显示。总之一点,无论特定的内容页面(比如有 URL 的书签,有电子邮件和地址的联系方式),还是特定目的的页面(一个群组、一个项目首页)在这种实现下对于 drupal 来说都是一个 node。它们并不需要自己的 id,统一使用 nid。
现在对于具体的任务来说,比如 PR 定时查询。原本的设计就只需要 URL 地址和时间限制,使用自己独立的 id 系统。现在改用 node 实现,URL 和时间作为附加内容即可。当然现在的 PR 项需要一个标题了,说明描述是可选的。
嗯,关键的问题就在于具体的实现是否需要 node 提供的说明(特别是标题)。需要就在 node 上再生,可以节省很多基本代码的重复实现。不需要就自行设计。
最后,就是定制 node 的访问权限了。这一部分 cck、og 和 project 都没有涉及。感觉 drupal 作为一个开源的 cms,在这一方面的模块也比较弱。有 node_access 模块设定单独的 node 访问权限,可以借鉴下。而完整的群组项目访问和管理权限还需要继续探索。
不过整个系统重构大致定型了。目前最大的考虑是直接在上诉三个模块上再开发,还是再造轮子。
发表评论