【1】根据结构的功能结构的不同,drupal划分为,node,user,comment等不同的结构,他们的结构是不同的。他们可以作为四个不同的抽象类,根据这个抽象类,分别有一套hook函数去控制实现的流程。分别有一套theme函数对应一套展示界面。

【2】用户、区块和评论不是节点。在这些特定的数据结构中,为了适应它们各自的特定目的,它们每一个都拥有自己的钩子系统。

节点是一段内容,有相同的结构,也有不同的部分,相同的部分用保持一致,不同的部分用不一个字段去标识。用面向对象的方法去理解节点,节点是一个抽象类,而博客,论坛等具体的功能性站点里的东西可以视作节点的实例化。

节点是一段内容(a piece of content),它是网站内容的基本组成单元。网站上的主要内容是由一个个节点组成的。通过观察网站上发布的各种内容(如新闻、博客、论坛帖子等),可发现它们都有如下的共同特性:

需要一个唯一的ID用于标识这个节点;

都有标题和内容;

需要记录发布时间、修改时间和发布者。

用面向对象的分析问题的方法,可以将这些内容进行抽象出一个“节点类”,节点类具有最基本的属性,而其他类(如博客文章、论坛主题等)均继承自此类,增加一些专属的属性。因此,可以认为Drupal网站中的每个节点是节点类的一个实例。

如图3-1所示为一个网站中的节点类的实例。可以看到,每个节点类除了标题、内容、发布者等共同的属性外还有专属属性。使用这样的图对网站内容进行分析是一种很好的方法。

图3-1 节点类结构图

由于节点的共性,Drupal为节点的创建和编辑准备了相同的页面,这样使管理员可以在一个页面中完成全部节点的创建。

content type

内容类型(Content type)就是在抽象层次上对节点的一个归类,如上面提到的新闻和博客文章,是两种不同的内容类型。不同内容类型的文章用于不同的使用场景。每一个节点都必须属于某个内容类型,一个内容类型下可以有多个节点。

Drupal默认提供两种内容类型:页面(Page)和故事(Story)。这两者没有实质的区别,只是在显示时,故事节点会显示节点的发布信息, 如时间和发布者等;但页面不会显示。页面经常用于存储如“公司介绍”等介绍性文字信息;而故事通常用于存储如“站点新闻”、“公告”等内容,且在浏览时可 显示发布者和发布时间等信息。

Drupal的后台管理有“内容类型”管理功能,管理员可以创建新的内容类型并设置每个内容类型具有哪些属性。除标题、内容属性外,还提供了诸如是 否支持评论、是否开启版本控制等功能选项。同时,在内容类型的设置中可以对节点的三个基本属性——是否发布在首页、是否置顶和是否发布——有选择地开启。

但是,像3.1节如图3-1所示描述的“新闻节点类”,除了基本属性外,还需要“文中插图”这个额外的属性。这时需要使用第三方模块Content Construction Kit(简称为CCK)提供的为节点增加字段的功能。

drupal node机制理解的更多相关文章

  1. node基础知识-说说对node的理解

    一.说说你对node的理解 从定义+特点+作用来说对node的理解 定义:node是基于Chrmo v8引擎的JavaScript运行环境; 特点:具有事件驱动,非阻塞I/O模型,高并发和轻量级,单线 ...

  2. android的事件分发机制理解

    android的事件分发机制理解 1.事件触发主要涉及到哪些层面的哪些函数(个人理解的顺序,可能在某一层会一次回调其它函数) activity中的dispatchTouchEvent .layout中 ...

  3. ECshop中的session机制理解

    ECshop中的session机制理解     在网上找了发现都是来之一人之手,也没有用自己的话去解释,这里我就抛砖引玉,发表一下自己的意见,还希望能得到各界人士的指导批评! 此session机制不需 ...

  4. Java ClassLoader加载机制理解 实际例子

    针对 Java ClassLoader加载机制理解, 做了个如何自定制简单的ClassLoader,并成功加载指定的类. 不废话,直接上代码. package com.chq.study.cl; im ...

  5. Java ClassLoader加载机制理解

    今天看到了一篇介绍Java ClassLoader加载机器的文章, 才发觉一直来自己的肤浅, 好好地给补了一课, 不得不存档! 原文地址: http://www.blogjava.net/lhulcn ...

  6. JavaWeb三大组件——过滤器的运行机制理解

    过滤器Filter 文章前言:本文侧重实用和理解. 一.过滤器的概念. lFilter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有 ...

  7. RunLoop机制理解

    一.浅识RunLoop RunLoop在开发中我们一直在用,但是没有注意他.要想理解RunLoop,首先我们需要先了解一下程序运行机制. 程序运行机制:我们都知道OC是运行时语言,也就是说对象的类型是 ...

  8. storm的acker机制理解

    转载请注明原创地址http://www.cnblogs.com/dongxiao-yang/p/6142356.html Storm 的拓扑有一些特殊的称为"acker"的任务,这 ...

  9. 【图解ASP.NET MVC运行机制理解-简易版】

    很多盆友咨询ASP.NET MVC的机制.网上也有好多.但是都是相当深奥.看的云里雾里的.我今天抽空,整理个简易版本.把处理流程走一遍. 当然,这个只是处理请求的一部分环节.百度的面试题“客户端从浏览 ...

随机推荐

  1. 【离散数学】 SDUT OJ 集合的包含

    集合的包含 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 已知含n个元素的集合的子集 ...

  2. 为什么有些网站PING不通但又能访问.

    一PING它,出现request timed out,发关4个送数据包,返回0个.丢失率100%,明明不通但为什么又能够访问? 应该是该网站禁用了ICMP回应或者开启了ICMP过滤.如果设置了ICMP ...

  3. Spring学习笔记(四)—— Spring中的AOP

    一.AOP概述 AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.O ...

  4. CMM模型,结构化开发方法和面向对象开发方法的比较,UML(统一建模语言),jackson开发方法

    CMM模型 一.CMM简介 CMM,英文全称为Capability Maturity Model for Software,即:软件成熟度模型. CMM的核心是把软件开发视为一个过程.它是对于软件在定 ...

  5. 把磁力下载站改为python系统

    已经一年半载没有写博客了,搞得上来不知道写些什么. 索马里影视下载  WWW.IBMID.COM  现在用的是CENTOS 7 系统, 经历了多次点技术变更.开源版本使用了django网站框架重写,之 ...

  6. Spring 操作 jdbc 链接数据库

    1. 新建资源文件 db.properities jdbc.user=root jdbc.password=root jdbc.driverClass=com.mysql.jdbc.Driver jd ...

  7. Ubuntu下apt-get安装Java,Tomcat

    sudo apt-get update sudo add-apt-repository ppa:webupd8team/java sudo apt-get install oracle-java8-i ...

  8. cmd命令行编译c/c++程序

    一.打开文件夹(文件夹名字为123,文件夹里面有程序345.cpp) cd 123 二.在cmd里面编译程序 1.cd Desktop      //在打开文件夹之前不回到桌面会出错 2.cd 123 ...

  9. js 中的! 和 !! 的区别

    Js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值,1.!可将变量转换成boolean类型,null.undefined和空字符串取反都为false,其 ...

  10. GreenPlum 大数据平台--介绍

    一,GreenPlum 01,介绍: Greenplum是一种基于PostgreSQL的分布式数据库,其采用shared-nothing架构,主机.操作系统.内存.存储都是自我控制的,不存在共享. 官 ...