我用一个简单的菜单结构创建了一个模块。我能够以编程方式检索我的所有学生在PHP中的视图。现在,我想通过一个简单的表格将所有的学生返回到一个页面上。用PHP在drupal模块中创建标准页面和表格
- 我怎样才能使一个标准的网页?
- 如何返回一个简单的表中的值?
表的结构是
UGhentID名学生的名字student地址学生
12874749史密斯尼克纽约 。 。 。
我用一个简单的菜单结构创建了一个模块。我能够以编程方式检索我的所有学生在PHP中的视图。现在,我想通过一个简单的表格将所有的学生返回到一个页面上。用PHP在drupal模块中创建标准页面和表格
表的结构是
UGhentID名学生的名字student地址学生
12874749史密斯尼克纽约 。 。 。
如果你想创建一个新的页面,你需要一个模块中使用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列。
我不知道你用的“标准页面”的意思,但我想你也许想看看例子项目(http://drupal.org/project/examples),特别是page_example模块。
对于您的表格,Drupal提供了一个非常有用的theme_table函数。以最简单的形式传递标题和行数组,并返回表格的html。
基于@哈扎的答案,这里是一个更新的表创建功能,对于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;
}
谢谢,这是解决方案! – user001 2011-03-29 08:44:25
这已经过时了(可能是Drupal 6)。对于drupal 7,你需要使用更新的版本,其中传递给除第一个以外的函数的参数是关联数组。请参阅下面我的回答,我没有足够的评论空间。 – DrCord 2014-07-25 17:50:55