description
These snippets allow you to override the default user registration layout using a custom user_register.tpl.php
.
If you want to customize the full page layout, click through to the customizing the login, registration and request password full page layout handbook page.
step 1 of 2
In a text editor like notepad.exe, create a file called template.php using the the following snippet. If you already have a template.php file, simply add it to your existing one (remembering to omit the opening and closing PHP tags if you're adding it to an existing template.php file, i.e. <?php
and ?
).
<?php
/**
* This snippet catches the default login form and looks for an
* user_register.tpl.php file in the theme folder
*/
function phptemplate_user_register($form) {
return _phptemplate_callback('user_register', array('form' => $form));
}
?>
step 2 of 2
- In a text editor create a new text file and paste the following snippet into it. Save the file with the filename user_register.tpl.php
- Edit the style sheet classes and content to suit
- Upload your edited user_register.tpl.php to your active theme folder
For use with Drupal 4.7.x
<div class="registration_form">
<p>Extra instructions or content can go here, just above the registration form</p>
<?php
print_r(form_render($form)); // this displays the login form.
?>
<p>Extra instructions or content can go here, just below the registration form</p>
</div>
For use with Drupal 5.x
<div class="registration_form"><p>Extra instructions or content can go here, just above the registration form</p>
<?php
print_r(drupal_render($form)); // this displays the login form.
?>
<p>Extra instructions or content can go here, just below the registration form</p>
</div>
Style sheet reference
For controlling how your registration form looks using your style sheet, this is what the rendered registration form HTML and class names are by default:
<form action="/user/register" method="post" id="user-register">
<div class="form-item">
<label for="edit-name">Username: <span class="form-required" title="This field is required.">*</span></label>
<input type="text" maxlength="60" name="name" id="edit-name" size="60" value="" class="form-text required" />
<div class="description">Your preferred username; punctuation is not allowed except for periods, hyphens, and underscores.</div>
</div>
<div class="form-item">
<label for="edit-mail">E-mail address: <span class="form-required" title="This field is required.">*</span></label>
<input type="text" maxlength="64" name="mail" id="edit-mail" size="60" value="" class="form-text required" />
<div class="description">A valid e-mail address. All e-mails from the system will be sent to this address. The e-mail address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by e-mail.</div>
</div>
<input type="hidden" name="form_id" id="edit-user-register" value="user_register" />
<input type="submit" name="op" id="edit-submit" value="Create new account" class="form-submit" />
notes
- If you have an even more advanced snippet that has been tested, please add a child page to this handbook page
- This snippet was tested with Drupal 5.x (June 24th 2007) by Dublin Drupaller (Note: If you have the locale.module enabled you may need to refresh your search_index by editing any text string related to the user page before your changes take effect, such as 'password'. )
- More advanced snippets to follow
Comments
theme function
Hi Dublin Drupaller,
I found a way that is maybe easier than creating a tpl.php.
Just override the form in your theme like this.
function phptemplate_user_register($form) {
$output = '';
$output .= drupal_render($form['captcha']);
$output .= drupal_render($form['name']);
$output .= drupal_render($form['mail']);
$output .= drupal_render($form['pass']);
$output .= drupal_render($form['status']);
$output .= drupal_render($form['notify']);
$output .= drupal_render($form['submit']);
$output .= drupal_render($form);
return $output;
}
I wanted to change only the order of the fields. you may alter div with classes for themeing like
function phptemplate_user_register($form) {
$output = '';
$output .= drupal_render($form['name']);
//extra fields not used in normal user_register form
$output .= '
$output .= drupal_render($form['field_first_name']);
$output .= drupal_render($form['field_last_name']);
$output .= drupal_render($form['field_talents']);
$output .= drupal_render($form['field_genres']);
$output .= '
';
//end extra fields
$output .= drupal_render($form['mail']);
$output .= drupal_render($form['pass']);
$output .= drupal_render($form['captcha']);
$output .= drupal_render($form['status']);
$output .= drupal_render($form['notify']);
$output .= drupal_render($form['submit']);
$output .= drupal_render($form);
return $output;
}
actually you can do this with every from in drupal 5.x.
Cheers
Dirk
If you really need to add styles and more custom HTML..
If you need to add more HTML and flexibility then i think you should go for a custom .tpl.php
indiapoly- India user Group
6* version drupal?
6* version drupal?
subcribe
subcribe
is this work with drupal
is this work with drupal version 5.7
Because I try it to put to my template.php and include to my .tpl.php file but the (registration) form field did not display...
Any reply are greatly appreciated. Thanks.
actually theme each form item
Well, I am definitely glad I stumbled onto this thread, as it provided an extension to a custom hack that i found that allows you to actually customize each item of a form. The previous was for node submission forms, but with the template.php hack contained on here works -great- in conjunction with the following, which will allow you to change the weight, text value, add html/text before and after each field, and more.
user_register.tpl.php
Easier than this
I found with drupal 6 I didn't even need the theme code listed above. Just copy your page template file as page-user-register.tpl.php and edit as desired! Works fine.
But how do you customize the registration form in drupal 6?
Hey theropodx,
how do u have changed in drupal 6?
so if you changed the form then plz let me know...bcz i want to do the same. but i can't find for drupal 6......
Find the file named
Find the file named "page.tpl.php" under your theme directory (eg sites/all/themes/yourtheme/) and make a copy of it. Name the copy page-user-register.tpl.php and edit it as desired. Worked for me!
Note that you can't edit the
Note that you can't edit the actual form this way, but in my case I just needed to add a statement above the form warning users not to use certain words in their usernames.
GRRRR!!!!
The form! It's about the form! How does one edit the form?
You need to edit the
You need to edit the template.php file. This video shows you how to do that. It worked perfect for me.
http://drupaldojo.com/session/fine-tuning-ui-theming-forms-drupal-60
This did not show me how to
This did not show me how to do that.
Ethan Teague
Theming the form itself
This page is probably the most useful of the dozens of pages that I've found that claim to provide tutorials about how to theme the user / registration form:
http://drupal.org/node/350634
So frustrating that something so simple is so mind-boggling obtuse
To add text on registration form...
Another way:
If you merely want to add text to the registration form (such as notice about usernames, whitelisting of from email address, etc.), you can create a Block and set it to show _only_ on the
user/register
page. Much more flexible than changing template file.http://ItsAboutTyme.com
Customizing form isn't that hard at all.
Hello,
Wanted to share a tip with other newbies like me looking for customizing the form.
I simply created a copy of page.tpl.php and renamed it to page-user-register.tpl.php
I went to my user/register page and right clicked and opened the source. Copy/Paste helped and i was able to really customize the form.
One problem with this though is that if I update my form (add more fields) in the future, this customized page doesn't update.
what i'd like to know is are there variables that I can drop into the custom tpl file instead of hardcoding them?
Thanks.
Drupal 6 - Customizing and Overriding Registeration
Customizing and Overriding User Login page, Register, and Password Reset in Drupal 6 ->
http://drupal.org/node/350634
Drupal 7
Wondering how to do on D7? Thx.