Drupal 7 block

主标签

投票加载中...

其它版本

Block(区块)模块提供了与区块相关的功能,通过区块可将内容放置在网站不同区域。Block模块是Drupal的基础模块之一,

不能被禁用。它是通过单独的区块管理器页面管理的。

查看API

安装与配置: 

默认页面(admin/structure/block)

每一个区块默认只可以在每一个theme中使用一次

Block基本使用

我们可以将区块拖动到不同的区域.

以下是默认已禁用的区块

Block配置

第一个区块都会有一个配置

这边以配置区块Powered by Drupal为例子

保存以后再来来页面底部的区块

来看看设置模块的可见性

添加区块

在block页面默认可以添加自定义Block, 不过非常简单系统只提供个简单的文本框.只可以添加一些静态的Block,

如果要使用更强大的功能比如自定义Block字段和自定义Block显示方式,能像内容字段管理那样定义Block可以使用bean模块

开发资料: 

Block API

定义Block至少需要两个block

hook_block_info 定义Block信息

hook_block_view 定义Block显示的内容

常用hook

hook_block_configure 定义block配置页面表单

hook_block_save Block配置页面保存时的回调函数

hook_block_view_alter Block过滤

定义Block

 /**
 * Implements hook_block_info().
 * This hook declares what blocks are provided by the module.
 */
function mymodule_block_info() {
  // mymodule_block是你的区块机器名.
  $blocks['mymodule_block'] = array(
    'info' => t('Who is chatting'),    // 描述信息
    'cache' => DRUPAL_CACHE_PER_ROLE,  //不使用缓存
  );
  return $blocks;
}

/**
 * Implements hook_block_view().
 * This hook generates the contents of the block.
 */
function mymodule_block_view($delta = '') {
  // 所有此模块定义的info都会通过这个函数并且将机器名传过来
  // 所以这里可进行判断根据不同的机器名显示同的内容
  if($delta == 'mymodule_block') {
    // Add your content here and write it to $content
    $content = t('Hello World');
    
    
    $block['subject'] = t('Who is chatting');  // Block的标题
    $block['content'] = $content;    // Block的内容
    return $block;
  }
}