2011-10-06 25 views
3
function example_menu() { 
    $items['admin/config/example'] = array(
    'title' => 'Example', 
    'description' => 'example configuration', 
    'page callback' => 'drupal_get_form', 
    'page arguments' => array('example_admin_settings'), 
    'access arguments' => array('administer example'), 
    'file' => 'example.admin.inc', 
    'file path' => drupal_get_path('module', 'example'), 
); 
    return $items; 
} 

在上面的代碼中,我很困惑它是如何工作的。頁面回調是drupal_get_form,頁面參數是example_admin_settings。我的問題是這個工作到底如何?drupal_get_form頁面回調用法

我知道drupal_get_form可能最終會調用example_admin_settings返回system_settings_form。有人可以指點我正確的文檔嗎?

回答

6

你走在正確的道路上。

當您訪問admin/config/example時,drupal_get_form('example_admin_settings')被執行。 example_admin_settings()本身將返回基於form api,像有其內容的數組:

$form['name'] = array(
    '#type' => 'input', 
    '#title' => 'Insert your name here: ', 
); 
$form['submit'] = array(
    '#type' => 'submit', 
    '#value' => 'Submit', 
); 

return $form; 

Drupal將渲染和輸出自動爲您形式。
另外,請考慮在https://drupal.stackexchange.com/上發佈關於Drupal的下一個問題。

3

這個例子是喜歡做這樣的事情

function example_menu() { 
    $items['admin/config/example'] = array(
    'title' => 'Example', 
    'description' => 'example configuration', 
    'page callback' => '_my_page_content_function', 
    'access arguments' => array('administer example'), 
    'file' => 'example.admin.inc', 
    'file path' => drupal_get_path('module', 'example'), 
); 
    return $items; 
} 

function _my_page_content_function(){ 
return drupal_get_form('example_admin_settings') ; 
} 

function example_admin_settings($form, $form_state) { 
    ... return my form 
} 
在你的榜樣,你問的Drupal創建頁面,這個頁面的內容

是返回由功能drupal_get_form當我們通過參數內容example_admin_settings到它。

摘要:

page callback是返回我們的頁面內容的函數的名稱,當我們傳遞參數給page aruguments

對不起,我的英語 MMMM需要更多的細節?