使用PHP在drupal模块中创建标准页面和表

时间:2011-03-29 07:44:13

标签: php drupal drupal-6 drupal-views drupal-modules

我制作了一个简单菜单结构的模块。我能够以编程方式检索PHP中所有学生的视图。现在,我想在一个简单的表格中返回页面上的所有学生。

  • 如何制作标准页面?
  • 如何在简单表中返回值?

表的结构是

UGhentID姓名学生名字学生位置学生

12874749史密斯尼克纽约 。 。

3 个答案:

答案 0 :(得分:16)

如果要创建新页面,则需要在模块中使用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列。

答案 1 :(得分:4)

我不确定你的'标准页'是什么意思,但我想你可能想看一下示例项目(http://drupal.org/project/examples),特别是page_example模块

对于你的表,Drupal提供了一个非常有用的theme_table函数。在它最简单的形式中,您传递一个标题和行数组,并返回表格的html。

答案 2 :(得分:2)

基于@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;
}