包含1个以上内容项的内容块

时间:2011-03-10 13:43:00

标签: php drupal drupal-blocks

以下代码是用php制作的Drupal块 1)如何实施多个项目?现在我有test1但我想要test1,test2,test3和test5 2)如何将例如test1的标题链接到我的管理员/设置/菜单?我想将项目链接到Drupal中的node_import。

function planning_block($op='list', $delta=0, $edit=array()) {
  switch ($op) {
    case 'list':
        $blocks[0]['info'] = t('Stage administration block');
        return $blocks;
    case 'view':
        $blocks['subject'] = t('Stage administratie');
        $blocks['content'] = 'test';
        return $blocks;
  }
}

2 个答案:

答案 0 :(得分:1)

如果您参考documentation of hook_block,您可以在一个钩子中声明几个块。

$ delta参数可以帮助您区分正在渲染的块。

关于标题中的链接,只需在设置$ block ['subject']值时使用l()函数。

示例:

function planning_block($op='list', $delta=0, $edit=array()) {
  switch ($op) {
    case 'list':
      $blocks[0]['info'] = t('Stage administration block 1');
      $blocks[1]['info'] = t('Stage administration block 2');
      return $blocks;
    case 'view':
      switch ($delta) {
        case 0:
          $blocks['subject'] = t('Stage administratie');
          $items = array(
            l('Item 1', 'admin/settings/1'),
            l('Item 2', 'admin/settings/2'),
          );
          $blocks['content'] = theme_item_list($items);
          return $blocks;
        case 1:
          $blocks['subject'] = l('admin/settings/2', t('Stage administratie 2'));
          $blocks['content'] = 'test 2';
          return $blocks;
      }
   }
}

答案 1 :(得分:1)

您可以创建多个块,如Artusamak的答案所示,或者您可以在$ blocks ['content']中添加更多内容,如果您想要在一个块中。

$blocks['content'] = l('admin/settings/1', 'test 1') . ' ' . l('admin/settings/2', 'test 2');

注意,如果您只想要一个固定链接列表,可以通过创建菜单并添加链接来实现。每个菜单都会自动显示为一个块。无需自定义代码。