我如何使用 $delta 参数 hook_block?

我尝试使用过一个,但没有任何效果。

正确的方法是什么?

有帮助吗?

解决方案

/**
 * Implementation of hook_block().
 */
function YOURMODULE_block($op = 'list', $delta = 0, $edit = array()) {
  switch ($op) {
    case 'list':
      $blocks[0]['info'] = t('Block #1 name');
      $blocks[1]['info'] = t('Block #2 name');
      return $blocks;
    case 'view':
      $block = array();
      switch ($delta) {
        case 0:
          $block['content'] = t('Hello for block #1');
          break;
        case 1:
          $block['content'] = t('Hello for block #2');
          break;
      }
      return $block;
  }
}

其他提示

如其他地方所述,$ delta允许一个模块返回许多块。如果您牢记$ Delta不必是数字,也可能会更容易理解。这只是一个标识符。

switch ($op) {
    case 'list':
      $block['sidebar-links']['info'] = t('Sidebar Links');
      $block['footer-links']['info'] = t('Footer Links');
      return $block;

这告诉Drupal系统是相关模块有两个块,其中一个由“侧栏链接”识别,另一个由“页脚链接”识别。

    case 'view':
      switch ($delta) {
        case 'sidebar-links': 
          $block['subject'] = t('Sidebar Links');
          $block['content'] = "super weak";
          break;
        case 'footer-links':
          $block['subject'] = t('Footer Links');
          $block['content'] = "super weak";
          break;
      }
      return $block;
  }

作为额外的奖励,使用语义键为您的块,将易于阅读CSS ID。 :)

An implementation of HOOK_block() can contain multiple blocks. The $delta argument specifies to the function which block to output.例子:

/**
 * Implementation of hook_block().
*/
function fightfi_block($op = 'list', $delta = 0) {
  $block = array();
  switch ($op) {
    case 'list':
      $block[0]['info'] = t('Sidebar Links');
      $block[1]['info'] = t('Footer Links');
      return $block;
    case 'view':
      switch ($delta) {
        case 0: 
          $block['subject'] = t('Sidebar Links');
          $block['content'] = "super weak";
          break;
        case 1:
          $block['subject'] = t('Footer Links');
          $block['content'] = "super weak";
          break;
      }
      return $block;
  }
} // end function fightfi_block

http://drupal.org/project/examples您会在这里找到块示例。

许可以下: CC-BY-SA归因
scroll top