我正在自定义登录表单。我必须将所有三种形式(登录,注册,忘记密码)放入一个页面。这是我的代码。
的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>
我不想要那个不需要的root表单标签,我怎么能删除那个?我正在使用drupal 7。
答案 0 :(得分:0)
也许有一些主题包装?如果还有别的东西,请查看hook_registry_alter()。
另外,为什么要以这种奇怪的方式添加表单?如果是登录表单,请保留登录表单。 最好在登录表单附近添加其他表单,您可以在页面模板中附加块或打印表单。