首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal drupal_get_form

Drupal drupal_get_form
EN

Stack Overflow用户
提问于 2010-07-26 09:26:17
回答 2查看 2.3K关注 0票数 2

我试图在div中获取twitter_admin_form和twitter_user_settings表单。

代码语言:javascript
复制
/**
 * 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

代码语言:javascript
复制
/**
 * 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,以及如何传递它们。

你怎么知道有效的表格是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-26 09:32:34

当您调用drupal_get_form时,您提供了一个表单id,这是Drupal需要调用的函数。您所遇到的问题是,Drupal无法找到函数:twitter_admin_form

要么它位于一个包含文件中,并且您需要包含它,要么您已经将它命名为其他东西。

票数 3
EN

Stack Overflow用户

发布于 2010-07-26 09:40:03

您所得到的错误来自于行:

代码语言:javascript
复制
$twitter_form = drupal_get_form('twitter_admin_form');

它期望'twitter_admin_form‘是一个有效的回调函数,但找不到它。这可能是因为在调用时没有包含相关文件“twitter.pages.inc”。

你可以通过一个:

代码语言:javascript
复制
module_load_include('inc', 'twitter', 'twitter.pages');

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3333605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档