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のドキュメントを参照すると、1つのフック内で複数のブロックを宣言できます。

$ 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 に答える