Как удалить тег формы по умолчанию при рендеринге вывода в hook_theme

Я настраиваю форму входа. Я должен поместить все три формы (логин, регистрация, пароль) на одной странице. Это мой код

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;
}

пользователя 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 формы отображаются в еще одном теге формы.

Мой вывод:

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

Я не хочу этот нежелательный тег корневой формы, как я могу удалить этот тег? Я использую Drupal 7.

1 ответ

Может быть, есть какая-то тема-обертка? Посмотрите в hook_registry_alter(), если есть что-то еще.

Кроме того, почему вы добавляете форму таким странным образом? Если это форма авторизации, оставьте форму авторизации. Лучше добавить дополнительные формы рядом с формой входа, вы можете добавить блок или распечатать форму в шаблоне страницы.

Другие вопросы по тегам