Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Drupal 6的一个模块中创建多个不同的块?_Php_Drupal_Drupal 6_Drupal Blocks - Fatal编程技术网

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

Php 如何在Drupal 6的一个模块中创建多个不同的块?,php,drupal,drupal-6,drupal-blocks,Php,Drupal,Drupal 6,Drupal Blocks,我正在使用hook_block创建一个带有我正在创建的自定义模块名称的块。 如果不使用myModuleName_块,我无法创建块 我是否需要为我要创建的每个不同的块执行不同的模块?您可以使用hook\u block创建多个块,只需使用$delta function hook_block($op = 'list', $delta = 0, $edit = array()) { switch ($op) { case 'list': $blocks[0]['info'] =

我正在使用hook_block创建一个带有我正在创建的自定义模块名称的块。
如果不使用myModuleName_块,我无法创建块


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

您可以使用
hook\u 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
      }

 ....

}

+1-只需一句话:$delta不需要是数字,因此如果您想提供更多的块,使用有意义的“名称”对维护很有帮助。只是一个小疑问。。。如果我像这样创建多个块,我如何在我的页面中调用模块的特定块..此解决方案是否要求块共享同一模板?@AndrewShooner否,有一些块模板规则,可以在模块创建的所有块之间共享块模板,但这是一项功能,这不是要求。只是为了澄清,我认为
$delta==1
下的注释
//Block 1
应该是“Block 2”而不是“Block 1”