Drupal Answers Asked on January 2, 2022
I am customizing the login form. I have to put all the three forms(login, register, forgotpassword) into one page.
I don’t want that unwanted root form tag, how can i remove that one? I am using drupal 7. This is my code.
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;
}
<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>
My problem is that all the 3 forms are rendering in one more form tag.
<form action=”/drupal728/user” method=”post” id=”user-login”>
<form>Login</form>
<form>Password....</form>
<form>Registration....</form>
</form>
I don’t want that unwanted root form tag, how can i remove that one? I am using drupal 7.
You're attacking the problem at the wrong level - if you want to modify forms/functionality, the theme layer's too late. Specifically what's happening here is that by default forms have a theme wrapper of theme_form()
which adds the form tag. The form template itself should only contain the form's children elements. (And shouldn't contain for example calls to drupal_get_function()
).
Here are some ways of adding the forms:
hook_menu_alter()
and alter the page callback for the login page to be your own callback. This callback returns the three forms. Don't forget to check for whether the user's logged in like core does.hook_page_build()
and add the forms there (quick and dirty!).Answered by Andy on January 2, 2022
1 Asked on November 8, 2021 by blablazo
1 Asked on November 8, 2021 by infojunkie
1 Asked on November 8, 2021 by daniel-harper
1 Asked on November 5, 2021 by soundcheese
1 Asked on November 5, 2021 by wilburunion
1 Asked on October 26, 2021
1 Asked on October 26, 2021 by esod
1 Asked on October 26, 2021 by david-montera
1 Asked on October 26, 2021 by sl4rtib4rtf4st
0 Asked on October 26, 2021 by kenny83
1 Asked on October 26, 2021 by wally-kolcz
Get help from others!
Recent Questions
Recent Answers
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP