【问题标题】:How can I create multiple different blocks in one module in Drupal 6?如何在 Drupal 6 的一个模块中创建多个不同的块?
【发布时间】:2010-05-20 10:52:36
【问题描述】:

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

我需要为我想要创建的每个不同的块做不同的模块吗?

【问题讨论】:

    标签: php drupal drupal-6 drupal-blocks


    【解决方案1】:

    您可以使用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
          }
    
     ....
    
    }
    

    【讨论】:

    • +1 - 仅此一点:$delta 不需要是数字,所以如果你想提供更多的块,使用有意义的“名称”有助于维护而是。
    • 只是一个小疑问...如果我创建多个这样的块,我如何在我的页面中调用模块的特定块..
    • 此解决方案是否需要块共享相同的模板?
    • @AndrewShooner 不,块模板有一些规则,可以在模块创建的所有块之间共享块模板,但这是一项功能,而不是要求。跨度>
    • 澄清一下,我认为$delta == 1 下的评论// Block 1 应该是“Block 2”而不是“Block 1”。
    猜你喜欢
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多