从概念上了解一下Drupal在收到一个Web请求后都做了哪些事,是对学习Drupal非常有帮助的。这一小节会带领读者快速了解一下这一过程。如果你希望自己来跟踪调试这整个过程,那么请使用一个好的调试工具,并且从Index.php开始,因为Drupal的大部分请求都是被这个文件所接收的。本小节中所讲述的生成一个简单页面的过程,看起来似乎有些复杂,但这个过程中的每一步,都是相当灵活的。
Web服务器的角色
理解Drupal的默认文件系统结构可以教给你很多重要的技巧。比如,在哪里放置下载的新的模块和主题,或是如何安装不同配置的Drupal。默认的Drupal安装有下面的文件结构:
以下是对上图目录结构中所包含的各个元素的详细说明:
Taxonomy upgrade extras
- 阅读更多 关于 第十节 文件结构
- 登录或注册以发表评论
区块是网页中一个小区域,它的内容可以由管理员起用或是禁用。例如,一个区块可以显示你的网站中当前在线用户的总数。又或许,你会有一个区块,它包含了关于你的网站中最为流行的内容的链接,或者是网站将要进行的活动。区块经常被放在模板的侧边栏,顶栏或是页脚中。区块可以被设置为显示某一类型的几个节点,还可以设置只在首页显示该区块,或者是按其它条件进行显示。
通常,区块用来显示为当前用户所特定的信息。例如,User这个区块通常包含了当前用户所能够访问的管理页面链接,比如“My account”页面。区块能显示的区域是在网站的主题中预先定义的。区块的位置和可见性都可以在后台管理界面中进行管理。
Taxonomy upgrade extras
- 阅读更多 关于 第九节 区块block
- 登录或注册以发表评论
Drupal中的各种内容类型是由一个基础的类型继承而来的,这个基础类型,就叫节点(node)。不管它是一个博客文章,还是一个菜谱,甚至于是一个项目中的任务,其所使用的底层数据结构都完全一样。如此架构的天才之处,在于它良好的扩展性。模块开发者可以添加新的功能,比如评分,评论,文件附件,地理信息等等,而且无须考虑节点类型是博客,菜谱还是别的什么。网站管理员然后将它们混合,并按照内容类型来映射各项功能。例如,管理员可能选择起用对博客的评论功能,但不起用对菜谱的评论功能,又或者起用对项目任务的文件上传功能。
节点还包含一组基本的行为属性,这些属性会被所有的内容类型所继承。任意一个节点,都能被显示于网站首页,被发布或是取消发布,甚至是被搜索。正是由于这样统一的架构,管理界面才能提供对于节点的批量编辑功能。
Taxonomy upgrade extras
- 阅读更多 关于 第八节 节点
- 登录或注册以发表评论
当创建一个网页发往浏览器时,通常有两件事需要考虑:如何组装数据和如何为数据添上WEB标签以便在浏览器中显示。在Drupal中,主题层Theme layer负责生成发往浏览器的HTML(或是JSON,XML等)。Drupal能使用多种流行的模板技术,比如Smarty,Template Attribute Language for PHP(PHPTAL),还有PHPTemplate。
很重要的一点是,Drupal鼓励内容与表示层的分离。
Drupal允许多种方法来定制和覆盖网站的外观。最简单的方法是使用CSS来覆盖Drupal内置的classes和IDs。然而,如果你希望更进一步,完全定制真正的HTML输出内容,你会发现这其实也很简单。Drupal的模板方件是由标准HTML和PHP文件组成。页面上每一动态的部分(比如一个区块,或是一个导航条breakcrumb trail)都可以通过简单的声明一个函数来对其进行覆盖,当然前提是该函数必须符合一定的命令规范。只要这样,Drupal就会使用你的方法来创建页面内容。
Taxonomy upgrade extras
钩子可以被看作是Drupal的内部事件,它们也被叫做“回调函数”。这里需要注意的是,由于它们是按照函数命名规范来构建的,而非真正的注册了一个监听器listener,所以它们不算真正意义上的“回调”。
Taxonomy upgrade extras
- 阅读更多 关于 第六节 钩子
- 登录或注册以发表评论
Drupal是一个真正意义上的模块化的框架。它所有的功能,都包括在模块中,并且可以被启动或禁用(有些核心必须模块是无法被禁用的)。为一个网站添加功能,是可以通过启用新的模块来实现的,通常这些模块都已由Drupal开源社区的广大成员提供好了。当然,你也可以开发自己的模块。如此一来,在网站本身不需要某些功能时,就可以将它们禁用,使网站“瘦身”,或是在需要额外的功能时,可以按需任意添加。参见下图:
Taxonomy upgrade extras
- 阅读更多 关于 第五节 模块
- 登录或注册以发表评论
Drupal的管理界面是与它的整个网站坚密结合的,默认情况下,它们共同使用同一种主题。第一个用户,也就是user 1,是网站的超级用户,拥有至高无上的权限。使用user 1登录后,在你的User区块中(相关内容请参看“区块”章节),将会看到一个进入管理界面的链接。点击后,你就进入了Drupal的管理界面中。每个用户的User区块都会包含不同的链接,这是由用户自身的权限级别所决定的。
Taxonomy upgrade extras
- 阅读更多 关于 第四节 管理界面
- 登录或注册以发表评论
Drupal的核心代码包括了处理用户请求时的完整流程,Drupal常用功能函数库,还有提供Drupal基本功能的模块代码,比如用户管理,分类(taxonomy),还有显示模板,参考下图所示:
Taxonomy upgrade extras
- 阅读更多 关于 第三节 Core 核心
- 登录或注册以发表评论
Drupal的设计目标包括了两点,在便宜的互联网主机租用提供商的主机上运行良好,以及,能够分布式的运行在大规模分布式网站上。前者意味着使用最流行和最被广泛接受的技术,后者,则意味着谨慎的,优秀的编码。Drupal的技术堆栈如图 1-1 所示
Taxonomy upgrade extras