0

我正在自定义登录表单。我必须将所有三种形式(登录、注册、忘记密码)放在一个页面中。这是我的代码。

模板.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;
}

用户登录.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。

4

1 回答 1

0

也许有一些主题包装?如果还有其他内容,请查看 hook_registry_alter()。

另外,为什么要以这种奇怪的方式添加表单?如果它是登录表单,让它保持登录表单。更好地在登录表单附近添加其他表单,您可以在页面模板中附加块或打印表单。

于 2014-07-29T05:59:38.317 回答