1 什么是区块?

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

区块包含一个标题和一个描述,主要用于广告、html片段等辅助功能,它一般不用作主内容;因此,区块不是节点,它与节点有着不同的规则。区块也不是Drupal7中的实体。

 

区域是站点上用来放置区块的部分。区域的创建和显示是由主题(位于主题的.info文件中)负责的,而不是通过区块API来定义。如果一个区块,没有为其指定区域,那么它将无法显示出来。

 

    当然,这里说的是一般情况,在实际中,当启用了一些第三方模块以后,区块本身就是节点,区块本身也是一个实体。此外,我们还可以直接将区块输出在任意模板的任意位置上。这和一般情况大不相同,也就是有例外的时候。

 

   因此,有时候,我们真的很难界定什么才是区块。Drupal7中,一个小小的区块就演化出来了这么多可能。那么我们就直观的先看看Drupal内部自带的区块。

图片1.png 

    我们有三种方式来创建区块,一种方式是通过后台来添加区块,这种方式通常适用于添加静态的html区块;另一种常见的方式是使用views,对于Drupal中动态的各种区块,我们基本上都可以使用views列出,这应该是实际当中最常见的方式了,因为用的特别多,所以我们把它单列了出来;第三种方式,就是通过实现区块API,用模块代码的方式创建区块。

    对于动态的区块,如果是内容列表的形式,那么首先选择views;其次是选用模块代码的方式;当然,如果你想图省事,也可以通过后台创建,不过你需要启用PHP filter模块,并且在区块的正文中,添加对应的PHP代码,这是模块方式和后台方式的混合体。当然,在后台的配置界面使用PHP代码,有各种潜在的危险性,尽可能需要避免。

 

    如果我们开发一个实际的站点,需要定制一些杂七杂八的代码,比如包含多个动态的小区块,而这些区块也不方便使用views实现。此时我们可以为该站点开发一个专有的模块,把所有的这些没有特别关系的代码放在一起。比如,我为中华书局开发网上书店,我就专门创建了一个名为zhbc的模块,里面放置了很多特定于该站点的代码,其中就包含许多动态区块。


Drupal版本: