2

twitter_admin_formとtwitter_user_settingsフォームをdivで取得しようとしています。

/**
 * 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]:最初の引数は有効なコールバックであると予想されます。「twitter_admin_form」は372行目の... / include/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には引数がないので、取得して表示するのは簡単だと思いました。

私は新しいフォーム/メニューなので、%user_category、%map、%indexが何であるか、そしてそれらをどのように渡すかが100%わかりません。

有効なフォームが何であるかをどうやって知るのですか?

4

2 に答える 2

3

呼び出すときはdrupal_get_form、フォームIDを指定します。これは、Drupalが呼び出す必要のある関数です。あなたが経験している問題は、Drupalが関数を見つけることができないということです:twitter_admin_form

インクルードファイルにあり、インクルードする必要があるか、別の名前を付けています。

于 2010-07-26T09:32:34.893 に答える
2

発生するエラーは、次の行に起因します。

$twitter_form = drupal_get_form('twitter_admin_form');

'twitter_admin_form'が有効なコールバック関数であると想定していますが、見つかりません。これは、通話時に関連ファイル「twitter.pages.inc」が含まれていないことが原因と考えられます。

あなたはそれを介して修正することができます:

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

(コードサンプルのコメント行を考えると、このようなことを試したようですが、含めるファイルの名前を指定するのを忘れていました)。

于 2010-07-26T09:40:03.640 に答える