Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal Drupal\u获取\u表单_Php_Drupal_Drupal 6_Drupal Fapi - Fatal编程技术网

Php Drupal Drupal\u获取\u表单

Php Drupal Drupal\u获取\u表单,php,drupal,drupal-6,drupal-fapi,Php,Drupal,Drupal 6,Drupal Fapi,我试图在一个div中获取twitter\u admin\u表单和twitter\u user\u设置表单 /** * Get twitter form for user * @param $account * @type user object */ function getTwitterForm($account){ //module_load_include('inc', 'twitter'); module_load_all(); $twitter_form

我试图在一个div中获取twitter\u admin\u表单和twitter\u user\u设置表单

/**
 * 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\u user\u func\u array[函数.call user func数组]:第一个参数应该是有效的回调,“twitter\u admin\u form”在第372行的…/includes/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_表单没有任何参数,因此我认为获取和显示它会很简单

我是新表单/菜单,所以我不能100%确定%user\u category、%map和%index是什么,以及如何传递它们

您如何知道有效的表单是什么?

当您调用drupal\u get\u表单时,您提供一个表单id,这是drupal需要调用的函数。您遇到的问题是Drupal找不到函数:twitter\u admin\u form


它位于包含文件中,您需要包含它,或者您已将其命名为其他名称。

您收到的错误源于以下行:

$twitter_form = drupal_get_form('twitter_admin_form');
它希望“twitter\u admin\u form”是一个有效的回调函数,但找不到它。这可能是因为打电话时不包括相关文件“twitter.pages.inc”

您可以通过以下方式解决此问题:

module_load_include('inc', 'twitter', 'twitter.pages');

考虑到代码示例中的注释行,您似乎尝试过类似的操作,但忘记了提供要包含的文件名。

感谢您的快速响应:它位于twitter.pages.inc中,我尝试了module_load_include'inc'、“twitter”和module_load_all.Oups-在发布我的内容时没有注意到这个答案。将我的解释留给另一个/扩展的解释,但这是正确的,而且是第一个+1@JamesBayliss:检查我的类似答案,了解module_load_include.WOW的正确用法,这很有效,我可以包含twitter_admin_表单。谢谢:我真的很感谢。谢谢,我在一个核心模块上也使用了这个。我不想在一个“块”中使用它,所以我只是在page.tpl.php文件上首先使用HO实现来测试,它工作得非常完美。fwiw,我在drupal 6模块中的tracker.module上使用了它。Thx-HO!