theme_item_list

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

includes/theme.inc, строка 1461

Версии
5 – 6
theme_item_list($items = array(), $title = NULL, $type = 'ul', $attributes = NULL)

Возвращает темизированный список.

Параметры

$items Массив элементов, которые будут отображаться в списке. Если пункт списка является строкой, то он используется без изменений, как есть. Если пункт списка — массив, то для его вывода будут использоваться данные ('data'), указанные для элемента массива. Если пункт списка является массивом с дочерним элементом ('children'), то этот элемент тоже отображается в списке. Все другие элементы расцениваются как атрибуты пункта списка.

$title Заголовок списка.

$type Тег списка (например, 'ul', 'ol').

$attributes Ассоциативный массив атрибутов тега списка.

Возвращаемое значение

Строка, содержащая выводимый список.

Связанные темы

▾ 20 функции вызывают theme_item_list()

aggregator_block in modules/aggregator/aggregator.module
Реализация hook_block().
blog_page_last in modules/blog/blog.pages.inc
Коллбэк меню. Показывает страницу Друпал с последними записями в блогах пользователей.
blog_page_user in modules/blog/blog.pages.inc
Коллбэк меню. Показывает страницу Друпал с последними записями в блоге данного пользователя.
book_render in modules/book/book.pages.inc
Menu callback; prints a listing of all books.
help_page in modules/help/help.admin.inc
Menu callback; prints a page listing general help for a module.
openid_form_alter in modules/openid/openid.module
Implementation of hook_form_alter : adds OpenID login to the login forms.
page_example_baz in developer/examples/page_example.module
Более сложная реализация коллбэка меню для отображения страницы, которая принимает аргументы.
system_modules_confirm_form in modules/system/system.admin.inc
Display confirmation form for dependencies.
system_modules_uninstall_confirm_form in modules/system/system.admin.inc
Confirm uninstall of selected modules.
template_preprocess_aggregator_summary_items in modules/aggregator/aggregator.pages.inc
Process variables for aggregator-summary-items.tpl.php. See alsoaggregator-summary-item.tpl.php
theme_comment_block in modules/comment/comment.module
Returns a formatted list of recent comments to be displayed in the comment block.
theme_item_list in includes/theme.inc
Возвращает темизированный список.
theme_node_list in modules/node/node.module
Форматирует список ссылок на ноды.
theme_pager in includes/pager.inc
Темизирует "листалку" страниц.
theme_system_admin_by_module in modules/system/system.admin.inc
Темизирует вывод страницы администрирования по модулям.
theme_user_list in modules/user/user.module
Темизирует список пользователей.
update_results_page in ./update.php
user_admin_account in modules/user/user.admin.inc
Form builder; User administration page. See alsouser_admin_account_validate()
user_login_block in modules/user/user.module
_node_mass_update_batch_finished in modules/node/node.admin.inc
Node Mass Update Batch 'finished' callback.

Код

<?php
function theme_item_list($items = array(), $title = NULL, $type = 'ul', $attributes = NULL) {
  $output = '<div class="item-list">';
  if (isset($title)) {
    $output .= '<h3>'. $title .'</h3>';
  }

  if (!empty($items)) {
    $output .= "<$type". drupal_attributes($attributes) .'>';
    $num_items = count($items);
    foreach ($items as $i => $item) {
      $attributes = array();
      $children = array();
      if (is_array($item)) {
        foreach ($item as $key => $value) {
          if ($key == 'data') {
            $data = $value;
          }
          elseif ($key == 'children') {
            $children = $value;
          }
          else {
            $attributes[$key] = $value;
          }
        }
      }
      else {
        $data = $item;
      }
      if (count($children) > 0) {
        $data .= theme_item_list($children, NULL, $type, $attributes); // Render nested list
      }
      if ($i == 0) {
        $attributes['class'] = empty($attributes['class']) ? 'first' : ($attributes['class'] .' first');
      }
      if ($i == $num_items - 1) {
        $attributes['class'] = empty($attributes['class']) ? 'last' : ($attributes['class'] .' last');
      }
      $output .= '<li'. drupal_attributes($attributes) .'>'. $data ."</li>\n";
    }
    $output .= "</$type>";
  }
  $output .= '</div>';
  return $output;
}
?>

Пользовательские комментарии

Чтобы получить многоуровневый список (со вложенными списками) типа:

  • А
    • B
    • C
  • D

Нужно передать массив $items примерно такого вида:

array(2) {
  [4354]=>
  array(2) {
    ["data"]=>
    string(1) "A"
    ["children"]=>
    array(2) {
      [0]=>
      array(1) {
        ["data"]=>
        string(1) "B"
      }
      [1]=>
      array(1) {
        ["data"]=>
        string(1) "C"
      }
    }
  }
  [4356]=>
  array(1) {
    ["data"]=>
    string(1) "D"
  }
}
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему