Создать стандартную страницу и таблицу в модуле drupal с помощью PHP - PullRequest
5 голосов
/ 29 марта 2011

Я сделал модуль с простой структурой меню. Я могу программно получить представление всех моих студентов в PHP. Теперь я хочу вернуть всех студентов на странице в простой таблице.

  • Как сделать стандартную страницу?
  • Как можно вернуть значения в простой таблице?

Структура таблицы

UGhentID Имя ученика Имя ученика Место ученика

12874749 Смит Ник, Нью-Йорк , , .

Ответы [ 3 ]

16 голосов
/ 29 марта 2011

Если вы хотите создать новую страницу, вам нужно использовать hook_menu в модуле.

Например:

/**
 * Implementation of hook_menu.
 */
function mymodule_menu() {
  $items = array();

  $items['myPage'] = array(
    'title' => 'Finances',
    'page callback' => 'mymodule_page',
    'access callback' => 'user_access',
    'access argument' => array('access nodes'),
  );
  return $items
}

/**
 * Page callback
 */
function mymodule_page() {
  $output = mymodule_table();
  return $output;
}

Здесь вы можете увидеть, чтоЯ вызываю «mymodule_table ()» в обратном вызове страницы, здесь вы строите свою таблицу.

function mymodule_table() {
    $rows = array();
    // build the table header
    $header = array();
    for ($i = 1; $i <= 5; $i++) {
      $header[] = array('data' =>  $i, 'class' => 'header-class');
    }
    $row = array();
    for ($i = 1; $i <= 5; $i++) {
      $row[] = array('data' =>  $i, 'class' => 'row-class');
    }
    $rows[] = array('data' => $row);
    $output .= theme('table', $header, $rows, $attributes = array('class' => 'my-table-class'));
    return $output;
}

Это должно привести к выводу таблицы с заголовком в строке и 5 столбцами.

4 голосов
/ 29 марта 2011

Я не уверен, что вы подразумеваете под «стандартной страницей», но я думаю, что вы, вероятно, захотите взглянуть на проект примеров (http://drupal.org/project/examples),, в частности, модуль page_example.

Для вашей таблицыDrupal предоставляет функцию theme_table, которая очень полезна. В ее простейшей форме вы передаете массив заголовков и строк и возвращает HTML для таблицы.

2 голосов
/ 25 июля 2014

На основании ответа @ Haza, вот обновленная функция создания таблиц, которая работает для Drupal 7:

function mymodule_table() {
    $rows = array();
    // build the table header
    $header = array();
    for ($i = 1; $i <= 5; $i++) {
      $header[] = array('data' =>  $i, 'class' => 'header-class');
    }
    $row = array();
    for ($i = 1; $i <= 5; $i++) {
      $row[] = array('data' =>  $i, 'class' => 'row-class');
    }
    $rows[] = array('data' => $row);
    $data = array(
        'header' => $header,
        'rows' => $rows,
        'attributes' => $attributes
    );
    $output = theme('table', $data);
    return $output;
}
...