如何在Drupal 6中的一个模块中创建多个不同的块?

ino*_*ino 7 php drupal drupal-6 drupal-blocks

我正在使用hook_block创建一个具有我正在创建的自定义模块名称的块.
我不能在不使用myModuleName_block的情况下创建块.

我是否需要为我想要创建的每个不同的块执行不同的模块?

goo*_*orp 15

你可以用几个块hook_block,只需使用$delta.

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

    case 'list':
      $blocks[0]['info'] = t('Block 1');
      $blocks[1]['info'] = t('Block 2');
      return $blocks;

    case 'configure':
      if ($delta == 0) {
        // Block 1
      }
      else if ($delta == 1) {
        // Block 1
      }

 ....

}
Run Code Online (Sandbox Code Playgroud)

  • +1 - 只需一条注释:$ delta不需要是数字,因此如果您想提供更多的块,维护使用有意义的"名称"是有帮助的. (5认同)
  • 为了澄清,我认为`$ delta == 1`下的注释`// Block 1`应该是"Block 2"而不是"Block 1". (2认同)