没有合适的资源?快使用搜索试试~ 我知道了~
drupal专业开发指南 PHP Mysql
需积分: 9 14 下载量 14 浏览量
2008-09-20
22:57:48
上传
评论
收藏 4.89MB DOC 举报
温馨提示
试读
64页
drupal专业开发指南,本人找了半年才找到的一个珍品,现拿也来让大家分享,drupal的功能我就不介绍了,相信你看完本教程,会对drupal有非常深的了解
资源推荐
资源详情
资源评论
1 第 1 章 Drupal 工作原理(1)
周三
在这一章,我们为你给出一个 的概貌。关于系统的每一部分如何工作的详细信息将在以后章
节中介绍。在这里,我们将涉及到 运行所用到的技术堆栈,构成 的各个文件,和各
种不同的概念术语,比如节点,钩子,区块和主题。
1.1 什么是 Drupal?
是用作建设网站的。它是一个高度模块化,开源的 内容管理框架,它重点建立在合作之
上的。它是一个可扩展的,适应标准的,并努力保持简洁代码和较小脚本的系统。发布版中包
含基本的核心功能,其他的额外功能可通过安装模块来获得。被设计为可被定制的,但是定制
是通过覆写核心功能或者增加模块来完成的,而不是修改核心组件中的代码。它同样成功的将内容管
理和内容表示两者分离。
可以被用来建立一个 门户;一个个人的,部门的,或者公司的网站;一个电子商务
站点;一个资源分类站点;一个在线报纸;一个图库;一个内部网,这里仅提到了一部分。它甚至可
被用来教授一个远程学习课程。一个专注于安全方面的小组,通过对威胁的反应和发行安全更新来保
证 的安全性。还有一个繁荣的社区组织,包括用户,站点管理员,设计者,和 开发者
非常努力的工作着,以持久的改进软件。可参看 !" 和 "#!!"。
1.2 技术堆栈
的设计目标是既可以运行在廉价的 $主机上,也可以适应大量运算的分布式站点。前一目
标意味着使用最流行的技术,而后者则意味着仔细的严格的编码。的技术堆栈如图 %% 所示。
图 %%的技术堆栈
操作系统位于技术堆栈的最底层,可以不用太关注这一层。在任何支持 &'&的操作系统上都
可以成功的运行 。
最常用的 服务器是 (),当然也可以使用其它的 服务器(包括微软的 )。
由于 和 ()的这种长期的友好关系,所以在 的根目录自带了一个 !))##用
来确保 安装的安全性(如果你使用的是一个其它的 服务器,而不是 (),你一定要
将 !))##中的规则转化为你系统可以理解的语句)。可以使用 ()的 *模块来
实现简洁(+),-.#将 ,-.中的“?”,“/0以及其它奇怪的符号清除掉,在 中去掉的
是“1230。这一点特别重要,当从其他的内容管理系统或者静态文件中迁移到 上时,依照
45#.( !6!" &7 ,-),内容的 ,-.不需要改变,而不改
变的 ,-#则非常酷。
使用一个轻量级的数据库抽象层与堆栈的下一层次(数据库层)进行交互。这一抽象层处理
8.查询语句的清洁工作,并使得可以使用不同厂商的数据库而不用重构你的代码。在 中最
常用的数据库是 98.和 &#"8.。
使用的编程语言是 &'&。&'&的名声比较坏,这是因为 &'&比较好学,这样大量的 &'&代
码都是由新手编写的。和许多其它的编程语言一样,&'&也常被滥用或者用于快速实现的系统中。然
而,也可以用 &'&来编写可靠的代码。所有的 内核代码都严格的遵守了编码规范
( !" # 6%)。
1.3 内核
的内核有一个轻量级的框架组成。当你从 !"下载 时就得到了这一内核。它
负责提供基本的功能用以支持系统的其它部分。
内核包括当 接到请求时所要调用的系统引导指令的代码,一个 常用函数库,和提供
基本功能的模块比如用户管理、分类、和模板,如图 % 所示。
图 %内核的概貌(没有展示完所有的核心功能)
1.4 后台管理接口
的后台管理接口与站点的其它部分紧密的集成在了一起,而且默认情况下,使用相同的主题。
第一个用户,也就是用户 %,是一个对站点拥有完全权限的超级用户。以用户 % 的身份登录后,你将在
你的用户区块(参看“区块”部分)中看到管理站点的一个链接。点击这一链接,你将进入到 的
后台管理接口页面。根据用户对站点访问权限的不同,每个用户的区块都会有一个不同的链接。
1.5 模块
是一个完全模块化的框架。功能都包含在模块中,而模块可以被启用或者禁用(一些必须的模
块不能被禁用)。来向 站点添加特性有 6 种方式:启用已存在的模块(核心模块),安装
社区成员编写的模块(第 6 方模块),编写自己的模块。这样,就可以根据站点的需要来添加
相应的模块,需要的功能少,所需的模块也就少,需要很多功能,就添加多一些的模块。如图 %6 所
示。
图 %6通过启用其它的模块来添加更多的功能
新添的内容类型比如处方、日志、或者文件,新添的行为比如 通知、&&发布、和聚合等等
都是通过模块实现的。使用了反转控制(7#:))设计模式,框架只在合适的
时间调用相应的模块功能。这些为了模块完成它们的任务提供的机会被称为钩子。
1.6 钩子
可以把钩子看做 的内部事件。它们也被称为回调函数,这是由于他们是根据函数命名约定来
构建的,而不是注册一个事件监听器(#),它们也不是真的被回调。模块使用钩子挂在
的其余部分上。
假定一个用户登录到了你的 站点上。在用户登录时,调用用户钩子。这意味将调用所
有的根据约定 ;模块名”<;钩子名” 创建的函数都将被调用。例如,评论模块中的
)*#,本地化模块中的 )*#,节点模块中的 *#,还有任何其它具
有类似名称的函数都将被调用。如果你编写了一个名为 #!的定制模块,其中包含一
个名为 #*#的用来向用户发送 的函数,那么你的这个函数也将被调用,倒霉的
用户每次登录都将收到一封不请自来的 。
接近 的核心功能的最常用的方式就是在模块中实现钩子。
提示:更多关于 所支持的钩子的信息,参看在线文档 !!" ,并查看
“的组成部分(+#:)”,接着“模块系统(钩子)(9
##=#)”。
1.7 主题
当创建一个发送给浏览器的 页面时,实际主要考虑两点:聚集合适的数据和为 装饰这些数
据。在 中,主题层负责创建浏览器接收到的 '49.。可以使用多种流行的模板方式,
比如 ,&'&的模板属性语言(4(."":&'&&'&4(.)和
&'&4。
这里需要记住的重点是 提倡将内容和显示分开。
在 中可以使用多种方式来为你的网站定制外观。最简单的方式是使用 +来覆盖 内
置的类和 。然而,如果你不想局限于此,并且想定制实际的 '49.输出时,你将发现很容易就可以
达到你的目的。的模板文件有标准的 '49.和 &'&组成。另外,页面的每个动态部
分(比如盒子、列表、或者面包屑痕迹),都可以通过声明一个具有合适名字的函数来覆盖掉。接着,
将使用你声明的函数。
1.8 节点
中的内容类型都根源于一个称为节点的单独的基本类型。无论它是一篇日志、一个处方,或者
甚至一个工程任务,它的底层数据结构都是相同的。这一方式背后的优势是它的扩展性。模块开发者
可以为节点添加特性比如级别、评论、文件附件、地理位置信息等等,而不用担心节点的类型,无管
它是日志、处方还是其它。站点管理员可以根据内容类型混合和匹配功能;例如在日志而不是在处方
上启用评论,或者仅为工程任务启用文件上传功能。
节点还包含了一个行为属性基本集,而所有其他的内容类型都继承了这一基本集。任何节点都可以被
提升到首页、发布或者未发布,或者甚至被搜索。而且由于这个统一的结构,后台管理接口为节点提
供了一个批量编辑的页面。
1.9 区块
区块是在你网站模板的特定位置可以启用或者禁用的信息。例如,一个区块可以展示你站点当前活跃
用户数。你可能使用一个区块来展示最活跃的用户,或者即将来临的事件列表。区块一般放置在模板
中的左右栏、页首、或者页尾中。区块也可以用来展示特定类型的节点,一般仅用于首页,或者由于
其它标准才这样做。
区块常常用于为当前用户展示定制的信息。例如,一个导航区块仅包含当前用户有权访问的链接。可
以通过后台管理接口页面对区块的位置和显示进行管理。
2 第 1 章 Drupal 工作原理(2)对请求提供服务
查看
跟踪
周三
2.1 文件布局
理解默认 安装的目录结构,能够帮助你调试你的站点,并教你一些重要的最佳实践,比如下
载的模块和主题的放置位置,如何拥有不同的 轮廓(>)。一个 默认安装的目
录结构如图 %? 所示。
文件夹目录中的每一元素的详解如下:
>#:默认不带有这个文件夹,但是如果你想使用一个定制的 ",启用用户头像,或者在
你的站点上上传其它媒体文件时,你需要这个文件夹。运行 的 服务器需要具有对这个子
目录进行读和写的权限。
)#:包含了 常用的函数库。
#):用来存储 @7)和在 安装中备用的各种图标和图片。
#:包含所有的核心模块,其中每个模块位于它自己的文件夹下。最好不要乱动这个文件夹下
面的任何东西(你添加的其他模块放到 ##目录下)
>#:包含一个站点的不同安装轮廓(>)。如果在这个子目录下面,除了默认的轮廓
(>)以外,还有其它的轮廓(>#),那么在你第一个安装 站点时 将向你
询问想要安装哪一个轮廓(>)。安装 >的主要目的是自动的启用核心的或者第 6 方的模
块。比如一个电子商务轮廓(>)的示例,它将自动把 作为一个电子商务平台进行安装。
剩余63页未读,继续阅读
资源评论
qiqiy
- 粉丝: 1
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功