You are here

function ddblock_block in Dynamic display block 6

Implementation of hook_block().

File

./ddblock.module, line 132
Enables your site to display dynamic content in a block.

Code

function ddblock_block($op = 'list', $delta = 0, $edit = array()) {
  switch ($op) {

    // show info in block list on block administration page.
    case 'list':
      $blocks = ddblock_get_blocks(NULL);
      $list = array();
      foreach ($blocks as $block) {
        $list[$block->delta] = array(
          'info' => check_plain($block->title),
        );

        // Don't cache blocks.
        $list[$block->delta]['cache'] = BLOCK_NO_CACHE;
      }
      return $list;

    // the configuration page of the block.
    case 'configure':

      // if block is a ddblock instance invoke configure option of original block.
      // with form_alter the ddblock settings are added.
      $block = ddblock_get_blocks($delta);
      if ($block->enabled) {
        $module = $block->module;
        $delta_original = $block->delta_original;
        return module_invoke($module, 'block', $op, $delta_original);
      }

      // if block is a ddblock invoke the block configure page.
      return ddblock_block_configure($delta);

    // save configuraton settings.
    case 'save':

      //all blocks are instances of ddblock.
      $module = 'ddblock';
      ddblock_set_configuration_settings($module, $delta, $edit);
      return;

    // show block content (this is set to default).
    case 'view':
    default:

      //all blocks are instances of ddblock.
      $module = 'ddblock';
      if (user_access('view dynamic display blocks')) {
        $block['subject'] = ddblock_subject($module, $delta);
        $block['content'] = ddblock_content($module, $delta);
        if (!empty($block['content'])) {
          return $block;
        }
      }
      return;
  }
}