我试图在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()函数.调用-用户-func-数组:第一个参数预期是一个有效的回调,'twitter_admin_form‘是在第372行的./twitter_admin_form/form.inc中给出的。
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,以及如何传递它们。
你怎么知道有效的表格是什么?
发布于 2010-07-26 09:32:34
当您调用drupal_get_form时,您提供了一个表单id,这是Drupal需要调用的函数。您所遇到的问题是,Drupal无法找到函数:twitter_admin_form。
要么它位于一个包含文件中,并且您需要包含它,要么您已经将它命名为其他东西。
发布于 2010-07-26 09:40:03
您所得到的错误来自于行:
$twitter_form = drupal_get_form('twitter_admin_form');它期望'twitter_admin_form‘是一个有效的回调函数,但找不到它。这可能是因为在调用时没有包含相关文件“twitter.pages.inc”。
你可以通过一个:
module_load_include('inc', 'twitter', 'twitter.pages');(考虑到代码示例中的注释行,您似乎尝试过类似的操作,但忘记给出要包含的文件的名称)。
https://stackoverflow.com/questions/3333605
复制相似问题