¿Cómo modificar la pantalla de registro en Drupal?
Esta entrada del blog, la escribo porque fué algo que surgió en el trabajo y al buscar información en la red casi no conseguí por lo que decidí colocar esto en mi blog. Además, también mostraré como agregar campos nuevos que se incluyen a cada usuario mediante el módulo profile al formulario de registro.
El método a usar va a ser una moficación del tema, específicamente para la página de registro de usuario (user/register), para ello utilizaremos una serie de cosas que nos provee Drupal. Lo que haremos es editar el archivo template.php que se encuentra dentro de la carpeta de nuestro tema y agregar la siguiente función:
function ELNOMBREDETUTEMA_theme($existing, $type, $theme, $path) {
return array(
// tell Drupal what template to use for the user register form
'user_register' => array(
'arguments' => array('form' => NULL),
'template' => 'user-register', // this is the name of the template
),
);
}
Recuerda cambiar ELNOMBREDETUTEMA por el nombre del tema que estas usando y que corresponde el archivo template.php, esta función lo que hará es que al entrar a la página user/register obliga a usar el template con el nombre de user-register.tpl.php. Bueno ahora lo siguiente que haremos es crear el archivo user-register.tpl.php de acuerdo a nuestras necesidades. En el caso que voy a poner aquí es un registro sencillo que imprime: el texto de registro, el nombre usuario, el correo electrónico a usar, un campo personalizado del módulo profile, los campos ocultos y obligatorios del formulario el boton de enviar.
<div id="registration_form">
<?php print drupal_render($form['user_registration_help' ]); ?>
<div class="field">
<?php print drupal_render($form['account']['name']); ?>
</div>
<div class="field">
<?php print drupal_render($form['account']['mail']); ?>
</div>
<div class="field">
<?php print drupal_render($form['category']['profile_field']); ?>
</div>
<div class="field">
<?php
print drupal_render($form['form_id']);
print drupal_render($form['form_build_id']);
?>
</div>
<div class="field">
<?php print drupal_render($form['submit']); ?>
</div>
Ya con eso solo les falta jugar y modificar las cosas a su antojo.
2 comentarios »
RSS feed for comments on this post. TrackBack URL























Hola, estoy haciendo una web con drupal y he intentado seguir tu tutorial para poder modificar la página de registro.
El tema que estoy usando es garland y me muestra la pantalla que uso como plantilla, ya que haciendo pruebas he conseguido que en vez del formulario de registro me aparezca una frase que meto yo.
Hasta aquí bien, el problema es cuando trato de usar tu ejemplo y que me aparezcan distintos campos de registro, a partir de ese momento la página sale en blanco.
Un saludo
[Translate]
No entendi bien, lo que dices. Que campos deseas colocar?
[Translate]