Для облегчения генерации таблиц, в Drupal есть специальная theme функция theme_table
, которая на вход получает массивы с заголовками и данными, а на выходе возвращает html код таблицы.
Пример вывода таблицы со списком нод, которая содержит две колонки — номер ноды и заголовок:
Drupal 6:
$nodes = db_query("SELECT nid, title FROM {node} ORDER BY nid");
$header = array('Nid', 'Title');
$rows = array();
while ($node = db_fetch_object($nodes)) {
$rows[] = array($node->nid, $node->title);
}
$output = theme('table', $header, $rows);
Drupal 7:
$nodes = db_select('node', 'n')->fields('n', array('nid', 'title'))->orderBy('n.nid')->execute();
$header = array('Nid', 'Title');
$rows = array();
foreach ($nodes as $node) {
$rows[] = array($node->nid, $node->title);
}
$output = theme('table', array('header' => $header, 'rows' => $rows));
Похожая статья: Вывод html таблицы с данными из бд, сортировкой и пагинацией.
Написанное актуально для
Drupal 6, Drupal 7
Похожие записи
- Видео уроки от Lullabot.com
- Темизация группы чекбоксов или радио-кнопок (#type=>checkboxes, #type=>radios)
- Как в Views программно изменить view mode выводимых сущностей по данным из cookie?
- Views сортировка по выражению/условию/формуле
- Добавляем на страницу управления отображением материала поля "Заголовок" и "Дата создания"
Комментарии
Как запретить сортировку, например по 'Nid', в данном случае.
убрать order by из запроса
При этом нужно оставить сортировку по 'Title'
пропишите title вместо nid
точно, тоже выход, попробовал работает сортировка только по указ. столбцам.
->orderByHeader($header[1])
тоже работает, но только по этому столбцу
А существует такой же способ для вывода массива с пагинацией?
Интересно, почему может не работать нижний пример (для Д7)?
Я скопировал его целиком в блок, формат PHP Code.
И ничего не отображается на странице.
http://php.net/manual/ru/function.echo.php
http://php.net/manual/ru/tutorial.php
Добавить комментарий