0

ログインフォームをカスタマイズしています。3 つのフォーム (ログイン、登録、パスワードを忘れた) をすべて 1 つのページに配置する必要があります。これは私のコードです。

template.php

function bartik_theme() {

    $items = array();

    $items['user_login'] = array(
        'render element' => 'div',
        'arguments' => array('form' => NULL),
        'variables' => array('form' => NULL),
        'path' => drupal_get_path('theme', 'bartik') . '/templates',
        'template' => 'user-login',
        'preprocess functions' => array(
            'bartik_preprocess_user_login'
        ),
   );

    return $items;
}

user-login.tpl.php

<div id="signupbox">

  <?php

    $login_form = drupal_get_form ( 'user_login_block' );
    echo drupal_render ( $login_form );

    $forgot_password_form = drupal_get_form ( 'user_pass' );
    echo drupal_render ( $forgot_password_form );

    $register_form = drupal_get_form ( 'user_register_form' );
    echo drupal_render ( $register_form );

  ?>

</div>

私の問題は、3 つのフォームすべてがもう 1 つのフォーム タグでレンダリングされていることです。

私の出力:

<form action="/drupal728/user" method="post" id="user-login">;
    <form>Registration....</form>
    <form>Password....</form>
    <form>Login</form>
</form>

不要なルート フォーム タグは不要です。どうすれば削除できますか? 私はdrupal7を使用しています。

4

1 に答える 1

0

多分いくつかのテーマラッパーがありますか?他に何かある場合は、hook_registry_alter() を調べてください。

また、どうしてこんなに変な形をつけているのですか?ログイン フォームの場合は、ログイン フォームのままにします。ログイン フォームの近くに追加のフォームを追加することをお勧めします。ページ テンプレートにブロックまたは印刷フォームを追加できます。

于 2014-07-29T05:59:38.317 に答える