2011-03-29 79 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; 
} 
相關問題