回答:
drupal_get_formをページコールバックとして使用する代わりに、カスタムコールバックを指定して、そこでフォームを作成できます。Drupal 6での実装は次のようになります。
function tudakozo_menu() {
$items['tudakozo'] = array(
'title' => t('Tudakozo'),
'page callback' => 'tudakozo_page_callback',
'access callback' => TRUE,
);
return $items;
}
function tudakozo_page_callback() {
$output = '';
// Render your two forms here.
$output .= drupal_get_form('tudakozo_nevszerint_form');
$output .= drupal_get_form('tudakozo_second_form');
return $output;
}
Drupal 7の唯一の違いは、以下のコードのようなカスタムページコールバックの文字列とは対照的に、レンダー配列を使用することです。
function tudakozo_page_callback() {
$build = array();
// Render your two forms here.
$build['form_one'] = drupal_get_form('tudakozo_nevszerint_form');
$build['form_two'] = drupal_get_form('tudakozo_second_form');
return $build;
}
ここをチェック
4. Next step is to create a hook_theme() function to theame these forms.
function custom_salesforce_theme() {
return array(
// this template is containing theme style for update form
'custom_salesforce_update_form' => array(
'template' => 'theme/custom_salesforce_update_form',
'render element' => 'form',
),
// this template is containing theme style for login form
'custom_salesforce_login_form' => array(
'template' => 'theme/custom_salesforce_login_form',
'render element' => 'form',
),
// this template is containing theme style for both forms
'custom_salesforce_login_and_update' => array(
'template' => 'theme/custom_salesforce_login_and_update',
'arguments' => array('combine_form' => NULL),
),
);
}
Note- Don't forget to create three template files inside theme folder inside your module.
5. Next step to write template preprocessor functions to display individual fields in separate template files.
/**
* Implements Template Preprocessor For User Login().
*/
function template_preprocess_custom_salesforce_login_form(&$variables) {
$variables['rtc_registered_email'] = drupal_render($variables['form']['rtc_registered_email']);
$variables['rtc_password'] = drupal_render($variables['form']['rtc_password']);
$variables['rtc_submit_form'] = drupal_render_children($variables['form']);
}
上記のコードは、2つのフォームを追加する方法を説明しています。
以下は、ここで これはTPLファイルに追加する方法です
<?php
$form = drupal_get_form('user_register_form');
print drupal_render($form);
?>
それが役に立てば幸い :)