1

以下代码是用 php 制作的 Drupal 块。
1)我怎样才能实现不止一项?现在我有 test1 但我想要 test1、test2、test3 和 test5。
2)如何将标题(例如 test1)链接到我的 admin/settings/ 菜单?我想将一个项目链接到 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;
  }
}
4

2 回答 2

1

如果您参考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;
      }
   }
}
于 2011-03-10T15:35:47.837 回答
1

您可以创建多个块,如 Artusamak 的答案所示,或者如果您希望在单个块中添加更多内容,则可以简单地向 $blocks['content'] 添加更多内容。

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

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

于 2011-03-10T15:43:01.483 回答