使用theme_item_list添加类属性

时间:2013-02-11 22:21:24

标签: drupal

我正在尝试在hook_block_view函数中创建一个包含theme_item_list的列表。

$items = array();
$items[] = array('data' => l('Training', 'training'));
$items[] = array('data' => l('Publications', 'publications'));
$items[] = array('data' => l('Conferences', 'conferences'));
$items[] = array('data' => l('Information service', 'information-service'));
$block['content'] = theme('item_list', array('items' => $items), NULL, 'ul', array('id' => 'contact-us'));

我希望输出为:

<ul id='contact-us'>
    <li><a href='/training>Training</a></li>
    ...

但返回输出时缺少类:

<ul>
    <li><a href='/training>Training</a></li>
    ...

我想我已经准确地按照了drupal.org上的示例,但是它没有用?感谢。

2 个答案:

答案 0 :(得分:1)

<强>解决方案:

我收到的评论让我相信Drupal 7中的功能与以前版本中的功能不同。看来我正在查看版本6的示例。这适用于7:

array(
  'list' => array(
    '#theme' => 'item_list',
    '#type' => 'ul',
    '#attributes' => array('id' => 'contact-us'),
    '#items' => array(                  
      'item_1' => l('Training', 'training'),
      'item_2' => l('Publications', 'publications'),
      'item_3' => l('Conferences', 'conferences'),
      'item_4' => l('Information service', 'information-service')
    ),
  ),
);

答案 1 :(得分:0)

这将适用于drupal 6

$block['content'] = theme_item_list($items , $title = NULL, $type = 'ul', $attributes = array('id' => 'contact-us') ) ;

请注意,您可以将任何有效属性添加到$ attributes数组()。

drupal 6上的工作示例:

$block['content'] = theme_item_list($items , $title = NULL, $type = 'ul', $attributes = Array( 'id' => 'contact-us', 'class' => 'some-class', 'style' => 'color:red')) ;

文档:https://api.drupal.org/api/drupal/includes!theme.inc/function/theme_item_list/6