6 区块钩子介绍
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
如果使用模块的方式创建区块,那么我们就需要了解与区块相关的钩子。区块模块提供的钩子可以参看modules\block文件夹下面的block.api.php文件。主要包含以下钩子:
内容包括drupal7教程,drupal7汉化,drupal7主题,drupal7模板,drupal7中文手册,drupal7 views,drupal7中文,drupal7安装,drupal7开发,drupal7视频,等
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
如果使用模块的方式创建区块,那么我们就需要了解与区块相关的钩子。区块模块提供的钩子可以参看modules\block文件夹下面的block.api.php文件。主要包含以下钩子:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在模块中,通过使用一组区块相关的钩子,便可以定义区块了,而且一个模块可以定义多个区块。一旦区块定义好了以后,它就会显示在区块管理界面。另外,管理员可以通过后台管理界面,手动的创建自定义区块;当然,也可以使用views模块创建各种列表区块。在本节中,我们主要讨论,如何通过自定义模块的方式来创建区块。首先让我们了解一下区块的数据库表结构,如图所示。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在一个页面请求周期内,在构建页面呈现数组时,Drupal允许模块通过实现钩子函数hook_page_build,向页面数组追加其它元素。区块系统通过实现这个钩子函数,把所有区域作为页面元素添加了进来。
function block_page_build(&$page) {
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
我在前面提到,在Drupal的区块配置页面中,管理员可以选择将区块放置在哪个区域中。在区块的后台主页面,我们还可以对同一区域内的不同区块进行排序。区域是通过主题层的.info文件定义的,而不是通过区块API,而且不同的主题可以有不同的区域。关于创建区域的更多信息,可参看后续的主题系统一章。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
无论是自定义的区块,还是通过编写模块实现的区块,我们都可以在后台对其进行配置,导航到“首页 » 管理 » 结构 » 区块”,在这里找到“Powered by Drupal”区块,点击它的配置链接,我们就可以看到一个典型的区块配置页面,如图所示:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
区块包含一个标题和一个描述,主要用于广告、html片段等辅助功能,它一般不用作主内容;因此,区块不是节点,它与节点有着不同的规则。区块也不是Drupal7中的实体。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
区块就是位于主内容区域外的一段小的文本,通常可以放在左边栏、右边栏、页首、页尾等这样的边边角角的位置。其实我们对区块是不陌生的,我们在第二章学习模块开发的时候,开发的模块就是用来扩展区块的属性的。只要我们访问过Drupal站点,其实就见识过区块。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
通过本章的学习:
我们了解了$user对象的组成结构