2011-03-29 80 views
5

我用一个简单的菜单结构创建了一个模块。我能够以编程方式检索我的所有学生在PHP中的视图。现在,我想通过一个简单的表格将所有的学生返回到一个页面上。用PHP在drupal模块中创建标准页面和表格

  • 我怎样才能使一个标准的网页?
  • 如何返回一个简单的表中的值?

表的结构是

UGhentID名学生的名字student地址学生

12874749史密斯尼克纽约 。 。 。

回答

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列。

+0

谢谢,这是解决方案! – user001 2011-03-29 08:44:25

+0

这已经过时了(可能是Drupal 6)。对于drupal 7,你需要使用更新的版本,其中传递给除第一个以外的函数的参数是关联数组。请参阅下面我的回答,我没有足够的评论空间。 – DrCord 2014-07-25 17:50:55

4

我不知道你用的“标准页面”的意思,但我想你也许想看看例子项目(http://drupal.org/project/examples),特别是page_example模块。

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

+0

非常有益的评论!谢谢, – user001 2011-03-29 08:28:07

+0

是的,我喜欢你的评论...当给的来源,不仅仅是某些答案,它将有助于其他 – 2014-11-25 12:30:37

+0

还有一个例子编辑和删除选项每行解释[* here *](http ://stackoverflow.hex1.ru/a/14682482) – hyip 2016-02-20 17:19:53

2

基于@哈扎的答案,这里是一个更新的表创建功能,对于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; 
} 
相关问题