Home Tips Varios Joomla Agregando Campos al Formulario de Registro de Usuarios con el Plugin UserMeta

Agregando Campos al Formulario de Registro de Usuarios con el Plugin UserMeta

icoDetalles Tip - Nivel : Avanzado, Versión Joomla : 1.5.x, Formato : texto y video.
En algunas ocasiones se requiere añadir campos adicionales al formulario de registro de joomla, esta tarea puede ser llevada a cabo utilizando extensiones como Community builder o modificando los archivos del core de joomla; pero existe una solución más práctica y es utilizando la extensión Usermeta.

 

En el siguiente video se muestra a través de un ejemplo práctico el uso del pluging usermeta

Suscríbete a monitojoomla en youtube para que puedas ver todos los videos publicados

 

1- Descarga e Instalación.

El pluging Usermeta se puede descargar de la siguiente dirección http://joomlacode.org/gf/project/usermeta/frs/ al descargar el archivo posteriormente nos dirigimos al backend de joomla, menu extensiones/instalar desinstalar, y procedemos a instalar la extensión.

 

2- Configuración

La extensión tiene dos opciones para realizar el trabajo de agregar campos adicionales al formulario de registro, en este artículo veremos la forma más sencilla de lograrlo y es a través del campo params de la tabla jos_user, debido a que esta tabla y este campo ya existe no será necesario modificar la base de datos.

Ingresamos desde el backend al Administrador de plugins y buscamos el plungin UserMeta, ingresamos a las opciones de configuración y modificamos los parámetros tal como se muestra en la imagen:

Configuración pluging usermeta

Adicionalmente verificamos en la configuración global/sistema/parámetros del usuario, que se encuentre habilitado la opción de parámetros para la portada, tal como se ve en la siguiente imagen:

parametros configuracion global

 

3- Agregando los campos adicionales

Para agregar los campos adicionales al formulario de registro, tenemos que modificar el archivo /plugins/system/usermeta/user.xml, en este archivo existen dos grupos de etiquetas, el primer grupo es el que utilizaremos, el segundo grupo se utiliza con la modificación de la base de datos (grupo usermeta).

Agregamos nuestro parámetro adicional al primer grupo, en este punto podemos borrar o conservar los otros parámetros, para este ejemplo sólo nos quedaremos con el parámetro de dirección.

<param name="direccion" type="text" default="" label="Direccion" description="Ingreso de su dirección" />

Tener en cuenta que también pueden ser agregados parámetros de otros tipos como : editor, list, checkbox, etc., revisar la siguiente dirección para ver detalles de las etiquetas de parámetros soportados por joomla: http://docs.joomla.org/Standard_parameter_types

 

4- Template Overrides de com_user

Hacemos uso de la técnica de sobreescritura del template (template overrides) de nuestro template actual
/templates/mitemplate/html/com_user/register/default.php

En caso no existir este archivo copiarlo de los archivos del core siguiendo el mismo orden de carpetas, para este caso copiamos el archivo default.php desde: /componentes/com_user/views/register/tmpl/default.php

Luego creamos las carpetas dentro de nuestro template de acuerdo a la ruta señalada inicialmente (html/com_user/register/) , copiando finalmente el archivo default.php.

Posteriormente editamos el archivo default.php agregamos lo siguiente al final de la última etiqueta

<tr>
 <td height="40">
 {UserMeta}
 </td>
</tr>

Al probar nuevamente el sitio veremos que los campos del archivo user.xml serán agregados en el formulario de registro de usuario, así como en la edición del usuario en el backend.

Es posible que sea necesario modificar los estilos del template para que este último campo agregado se encuentra acorde al diseño.

 

5- Conclusión

El uso del pluging UserMeta, facilita la adición de campos adicionales en el formulario de registro de usuario, evitando usar extensiones complejas y también evitando la modificación del core de joomla, por lo que facilita la administración de nuestro sitio Web.

 

 

Comparte este postDel.icio.us! Google! Live! Facebook! Twitter! Joomla Free PHP
Comentarios (17)
  • David Martinez
    avatar
    hola buena tu propuesta justamente andaba buscando algo parecido, pero un a pregunta no existe un componente,extencion o modulo que agregue estos campos en automatico sin necesidad de tocar el codigo, y que no sea comuty builder gracias
  • David Martinez
    avatar
    hola por cierto habra alguna forma de mostrar todos esso usuarios q ue se registran, es decir mostrar una pagina que mustre todos los usuarios registrados gracias
  • yusyta
    avatar
    HOla, sabes? gracias por tu tutorial.. me sirvió muchisimo, pero tengo una duda.
    Existe la posibilidad de ingresar esa información en el perfil de usuario de joomla? o sea, que al buscar al usuario aparezca esa información que se agregó al formulario. Actualmente solo se ve la información básica de joomla que ha ingresado el usuario, y no toda la info.

    Y de nuevo gracias por darte el tiempo de enseñar.
  • mariano
    avatar
    Tengo un problema tipee todo al pie de la letra, pero cuando pongor efrescar me dice esto la web abajo de todo:
    No hay parámetros para este item

    me podrias ayudar?
  • mariano
    avatar
    Ya lo arregle, habi un error mio de sintaxis cuando edite unas cosas, peor ahroa mi problema es como solucionar eso que qeuda asi re mal parado, me gustaria saber si hay otro tutorial para solucionar ese problema.

    Desde ya mucahs gracais
  • abdielev
    avatar
    hola jhon,como estas
    mira una preguntita
    quisiera hacer este tuto y ponerlo en practica en mi web, quiero agregarle un nuevo campo llamado semestre,para que los usuarios cuando se agreguen entren directamente a un grupo que sea de ese semestre, pero que pueda ser configurado por el usuario para que cuando cambie pase el semestre y entre a un nuevo semestre el cambie en que semestre va y que automáticamente cambie el grupo , no se si me doy a entender,
    la pregunta sería como hago esto, porque veo que es fácil hacer el nuevo campo en el formulario,pero como hago que este campo automáticamente le lleve a un grupo de semestre y que al cambiar de nuevo el semestre, entre al siguiente semestre (a, pero que yo como administrador tenga capacidad para cambiarlo, ya que si me doy cuenta que no es su semestre, lo cambio sin su autorización y con un llamado de atención), jeje, se que molesto, pero como me encanta aprender,me tomo el atrevimiento
    de t...
  • Jhon Marreros Guzmán
    avatar
    Hola abdielev

    Tienes que conocer javascript para realizar una selección basada en otra previamente, especialmente cuando se trabaja con combox. Tal vez más adelante haga algo parecido en un tutorial.

    Saludos.

  • daniel
    avatar
    Tengo el formulario ya hice cada paso pero me quede con duda en el ultimo ya que no aparece la carpeta com_user solo aparece com_content y fue el archivo que modifique pero no puedo registrar los datos que puedo hacer? gracias...
  • Jhon marreros Guzmán
    avatar
    Hola daniel

    Esto es debido a que tu plantilla no esta haciendo template overrides de esa carpeta, pero tu la puedes copiar manualmente.

    Revisa este tutorial http://bit.ly/jfmYax

    Saludos
  • Xavi
    avatar
    Hola!!

    Nos puedes enseñar como poder bien los campos para que no salgan desordenados?

    Gracias!!
  • Jhon Marreros Guzmán
    avatar
    Hola Xavi, eso se soluciona con CSS, o haciendo variaciones al código html del archivo com_user/register/default.php en donde haces template overrides.

    Saludos.
  • elias
    avatar
    Hola tendrás por ahi el componente DT REGISTER EVENT? mira cuesta 75$ y es mucho yo podría pagar la mitad, me avisas si lo tienes por favor.
  • Eduardo Cifres
    avatar
    Hola Jhon, Saludo.

    Amigo una pregunta hay alguna forma de ingresar por esta via imagenes del perfil del usuario.

    y asubes que se pudad visualizar en publico mostrando algunos datos de contacto.

    y gracias de antemano Excelente Aporte
  • valeria
    avatar
    como debedo implementar el modulo de registro y con q codigo
  • Martin
    avatar
    Mmm.. se me hace mucha maroma para obtener una información a nivel de parámetro, yo prefiero tenerlo físicamente en la base de datos como campo adicional y que se tome la clase del estilo directo del template... No es difícil hacerlo, solo teniendo conocimientos básicos de Html y meterse en el phpMyAdmnin de tu server ya sea local o remoto...

    Aquí les dejo un tutorial prático de ello:

    http://www.youtube.com/watch?v=YenQN9LOZcE&context=C27959ADOEgsToP DskLnH5eOKV5y0oJFl1iGrPMJ

    Saludos!
  • Guillermo
    avatar
    Esta muy bien el tutorial, muchas gracias.
    Sobre el siguiente comentario, ojalá pudieras poner un poco mas de info, ya que al poner {UserMeta} en el default.php ya no se como ponerle la clase al label. muchas gracias de antemano

    "Hola Xavi, eso se soluciona con CSS, o haciendo variaciones al código html del archivo com_user/register/default.php en donde haces template overrides."
  • lupillo
    avatar
    Que tal amigos del foro, quisiera pedir su ayuda para poder resolver el problema que tengo, bueno sin tanto rollo, instale Joomla 1.5.2.2 y tambien subii la plantilla de JA Zeolite pero pero cuando aplico la plantilla me arroja un la cabecera lo siguiente

    Warning: get_class() expects parameter 1 to be object, null given in C:\wamp\www\Tienda\templates\ja_zeolite\ja_men us\B ase.class.php on line 50

    se los suplico alguien me puede ayudar por favor, esta instalado en Wampserver 2.0

    Saludos
Escribir comentario
Gravatar enabled