[英]Drupal drupal_get_form
我试图在div中获取twitter_admin_form和twitter_user_settings表单。
/**
* Get twitter form for user
* @param $account
* @type user object
*/
function getTwitterForm($account){
//module_load_include('inc', 'twitter');
module_load_all();
$twitter_form = drupal_get_form('twitter_admin_form');
return $twitter_form;
}
我收到一个drupal错误。
警告:call_user_func_array()[function.call-user-func-array]:第一个参数应该是有效的回调,在第372行的... / includes / form.inc中给出了“ twitter_admin_form”。
twitter.module
/**
* Implementation of hook_meu()
*/
function twitter_menu() {
$items = array();
$items['admin/settings/twitter'] = array(
'title' => 'Twitter setup',
'description' => 'Twitter module settings',
'page callback' => 'drupal_get_form',
'page arguments' => array('twitter_admin_form'),
'access arguments' => array('administer site configuration'),
'file' => 'twitter.pages.inc'
);
$items['user/%user_category/edit/twitter'] = array(
'title' => 'Twitter accounts',
'page callback' => 'twitter_user_settings',
'page arguments' => array(1),
'access arguments' => array('add twitter accounts'),
'load arguments' => array('%map', '%index'),
'weight' => 10,
'file' => 'twitter.pages.inc',
'type' => MENU_LOCAL_TASK,
);
return $items;
}
我不确定自己在做什么错。 twitter_admin_form没有任何参数,因此我认为获取和显示将很简单。
我是新表单/菜单,所以我不确定100%确定%user_category,%map和%index是什么以及如何传递它们。
您如何知道有效表格是什么?
当您调用drupal_get_form
您将提供一个表单ID,这是Drupal需要调用的函数。 您遇到的问题是Drupal找不到函数: twitter_admin_form
。
它位于包含文件中,或者您需要包含它,或者您已经为其命名了其他名称。
您得到的错误源于该行:
$twitter_form = drupal_get_form('twitter_admin_form');
它期望'twitter_admin_form'是有效的回调函数,但找不到它。 这可能是因为在您致电时不包括相关文件'twitter.pages.inc'。
您可以通过以下方法解决此问题:
module_load_include('inc', 'twitter', 'twitter.pages');
(鉴于代码示例中的注释行,您似乎已经尝试过类似的操作,但是忘记提供要包含的文件名)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.