从头学习Drupal--基本概念

来源:互联网 发布:ps3 淘宝 编辑:程序博客网 时间:2024/05/16 11:00

看了两天的drupal,弄得脑子一团浆糊,好多的新名词都不知道是什么意思,所以特意在网上找到一篇文章来介绍drupal的基本概念。

 

转:www.drupalchina.org
节点(Node)
我们知道Drupal是一个内容管理系统(CMS), 而一般我们所管理的内容, 就是新闻或博文之类的文章; 在通常意义上, 这些就是Drupal中的节点, 但Drupal并不是只能管理文章类内容, 它对所管理的内容进行了抽象, 形成了节点的概念. 如果我们学过面向对象的知识, 那我们就知道节点其实就是Drupal这个系统所管理内容的虚基类.
Drupal的核心定义了节点这个对象的各种抽象行为和基本属性, 同时它页实现了基于文本方式来表达内容的两种节点类型, :Page 和 Story. 自然节点类型就是节点的具体实现了, 也就是节点的子类. 虽然Drupal的核心仅实现了简单的文本描述节点, 但它允许你可以自己扩展更多的节点类型. 目前Drupal社区已经有很多扩展模块实现了图像或视频内容的管理, 同时也有大名鼎鼎的CCK模块允许你定义更为节点的更多细节, 这里我们略过不表, 下面为了更进一步了解节点的概念, 我们到数据库(node表)看看它的主要字段:
节点ID, 自动增加的唯一索引;
版本ID, 用来追溯内容修订;
属性 比如发布状态, 语言, 类型等等;
操作信息 创建或修改时间, 操作者等;
内容 标题部分, 内容部分, 可能有的节点类型没有此实际数据;
评论(Comment)
评论虽然也是文章形式, 而且它和普通文章也很象, 但实际上它不是一种节点类型, 它被实现为一种依附于节点的用户反馈机制. 它与节点是否存在本质区别, 是否有必要分成两类对象, 这个好像也一直在讨论之中, 不知道在Drupal 7中会不会把它合入节点框架中. 但我个人认为, 目前Drupal似乎还没有节点与节点发生关联的情况, 这样把评论与节点分开是非常清晰的, 如果后续有此类需求, 则把评论纳入节点管理是顺理成章的事.
分类(taxonomy)
形象的说就是给节点分类, 它由一系列术语表组成, 每个术语表可以定义n多的术语, 这样你可以用术语对你的内容进行标记, 从而达到分门别类的作用. 当然你的分类是否合理, 是否有效, 还得看你的术语表定义了. 比如说一篇技术文章, 你可以从其使用的技术领域来划分, 也可以从其应用的领域来划分, 甚至可以从作者的性别进行划分. 总之, 分类就是个门纲目科属的工作, 不过这可不是个简单的活, 记得专门好像还有图书管学来专门研究图书的分类呢.
区域(Region)
这个概念其实只涉及到表现层, 简单来说就是把页面进行划分, 分成一块块独立的空间, 比如装修做二室一厅, 那就有厅, 厨房, 卫生间, 主卧, 辅卧等, 当然页面不是毛坯房了, 一般它分为五个区域: header, footer, conten, right sidebar, left sidebar.
区块(Block)
在Drupal的世界里, 什么东西都是围绕节点(Node)展开的, 那节点又是为谁呢, 当然是用户, Drupal的用户管理并没有太多特别的地方, 所以我们也就不谈了. 绕了半天, 到底谈嘛吗?
谈理想 , 谈恋爱 , 错嘛, 我们还是谈节点. 用户访问你的网站干嘛? 想看点内容嘛, 内容是嘛吗, 是节点. 那光看节点吗? 打比方说了, 你肚子饿了进饭店, 你光叫2碗米饭麽? 当然还得点几个小菜, 兴致到了再喝点小酒, 在Drupal眼里, 这些其他的就是区块咯. 可能有较真的看官说话了, 小菜和酒也都可以看做是一种派生内容类型(Content Type)啊, 它们也都可以看作节点啊. 那就借一步说话了, 饭店的招牌, 墙上的推荐菜, 你点菜看的菜单, 这些围绕在你吃的主题周围的露出和谐笑容的东东那就是区块(Block). 某书有云: a block is a chunk of auxiliary information that is displayed on a page alongside the main page content.
放到我们经典的文章页面上来看: 中间大块的是文章内容, 而在其他区域也放着东西呢, 比如一个站点菜单, 最新评论列表, 日历等等. 在Drupal中, 这些附加的辅助性的信息就是区块.
区块定义在数据库表(block)中, 从表结构可以看出, 区块由bid标识, 与模块(Module)和主题(Theme)都是强关联, 甚至Drupal已经为block表建立了tmd(theme module delta)唯一索引. 其实block也是一种辅助的内容形式, 所以它由模块定义实现, 而block只能算是页面上的可选元素, 所以在展现上, 它必须与主题挂钩, 以决定是否在该主题中被显示. 同时区块还与角色勾三搭四, 以便于页面显示信息与用户挂钩.
菜单(Menu)
从实质上说, 菜单就是一个区块(Block), 当然菜单扩展了很多属性和行为, 使得它成为Drupal中一个非常强大的导航系统. 可以说当一个区块成为菜单后, 它就不是一个人在战斗了... 这个暂时雾里看花, 先不深究.

原创粉丝点击