drupal_get_form页面回调用法

时间:2011-10-06 13:50:20

标签: drupal

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可能最终调用返回system_settings_form的example_admin_settings。有人能指出我正确的文档吗?

2 个答案:

答案 0 :(得分: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的下一个问题。

答案 1 :(得分: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需要更多细节吗?