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。有人能指出我正确的文档吗?
答案 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
传递给