блок контента с более чем 1 элементами контента - PullRequest
1 голос
/ 10 марта 2011

Следующий код представляет собой блок Drupal, созданный в php.
1) Как я могу реализовать более одного элемента?теперь у меня есть test1, но я хочу test1, test2, test3 и test5.
2) как я могу связать заголовок, например test1, с моим admin / settings / menu?Я хочу связать элемент с node_import в Drupal.

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 ]

1 голос
/ 10 марта 2011

Вы можете создать несколько блоков, как показано в ответе Артусамака, или вы можете просто добавить больше контента в $ blocks ['content'], если хотите, чтобы он был в одном блоке.

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

Обратите внимание: если вы просто хотите получить список фиксированных ссылок, вы можете сделать это, создав меню и добавив к нему ссылки. Каждое меню автоматически отображается как блок. Пользовательский код не требуется.

1 голос
/ 10 марта 2011

Если вы ссылаетесь на документацию hook_block , вы можете объявить несколько блоков внутри одного крючка.

Аргумент $ delta здесь для того, чтобы помочь вам определить, какой блок рендеринга блокируется.

Что касается ваших ссылок в заголовке, просто используйте функцию l (), когда вы устанавливаете значение $ block ['subject'].

Пример:

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;
      }
   }
}
...