| 1 layout.api.php | hook_block_view($delta = '', $settings = array(), $contexts = array()) | 
        
Return a rendered or renderable view of a block.
Parameters
string $delta: Which block to render. This is a unique identifier for the block within the module, defined in hook_block_info().
array $settings: An array of settings for this block. Defaults may not be populated, so it's best practice to merge in defaults within hook_block_view().
array $contexts: An array of contexts required by this block. Each context will be keyed by the string specified in this module's hook_block_info().
Return value
Either an empty array so the block will not be shown or an array containing: the following elements:
- subject: The default localized title of the block. If the block does not have a default title, this should be set to NULL.
 - content: The content of the block's body. This may be a renderable array (preferable) or a string containing rendered HTML content. If the content is empty the block will not be shown.
 
For a detailed usage example, see block_example.module.
See also
hook_block_view_MODULE_DELTA_alter()
Related topics
File
- core/
modules/ layout/ layout.api.php, line 658  - Describe hooks provided by the Layout module.
 
Code
function hook_block_view($delta = '', $settings = array(), $contexts = array()) {
  // This example is adapted from node.module.
  $block = array();
  switch ($delta) {
    case 'syndicate':
      $block['subject'] = t('Syndicate');
      $block['content'] = array(
        '#theme' => 'feed_icon',
        '#url' => 'rss.xml',
        '#title' => t('Syndicate'),
      );
      break;
    case 'recent':
      if (user_access('access content')) {
        $settings += array(
          'node_count' => 10,
        );
        $block['subject'] = t('Recent content');
        if ($nodes = node_get_recent($settings['node_count'])) {
          $block['content'] = array(
            '#theme' => 'node_recent_block',
            '#nodes' => $nodes,
          );
        }
        else {
          $block['content'] = t('No content available.');
        }
      }
      break;
    case 'author_picture':
      $author_account = user_load($contexts['node']->uid);
      $block['subject'] = '';
      $block['content'] = theme('user_picture', array('account' => $author_account));
      return $block;
  }
  return $block;
}