SERGIOIGLESIAS

Blog sobre Joomla

Cómo crear campos personalizados de usuario en Joomla 4

Tal y como te comentaba la semana pasada, aquí va el artículo sobre cómo crear campos personalizados de usuario en Joomla 4.

Cómo crear campos personalizados de usuario en #Joomla4 #MejorConJoomla Tuitéalo

Antes de meternos en materia, te recomiendo un par de artículos en los que ya he hablado sobre campos personalizados en Joomla y sobre funcionalidades del apartado de usuarios:

Y ahora sí, vamos al lío.

Quizás hayas visto y leído mucho sobre los campos personalizados en Joomla, pero generalmente se habla sobre los campos personalizados de artículos.

Cabe decir que esta funcionalidad o característica la tienes también disponible tanto en Usuarios como en Contactos y que, con unas pocas líneas de código, la puedes integrar en tus propios componentes.

Asi que hoy, te voy a explicar los campos personalizados para ususarios en Joomla 4.

Para explicar esto voy a hacerlo a través de un pequeño ejemplo, que creo es una buena forma de verlo.

Vamos a suponer que para un usuario queremos tener una serie de datos adicionales: información personal (como apellidos y teléfono) e información profesional (empresa, puesto que de desempeña).

Esta información será obligatoria y la pediremos en el registro del usuario.

Antes de seguir con el ejemplo, te muestro cómo sería la página de registro de usuario:

registro usuario

Como puedes ver se trata de una instalación de Joomla 4 con datos de ejemplo, sin ninguna extensión.

Vamos a crear toda la estructura necesaria para nuestro objetivo.

Grupos de campos

Aunque no es obligatorio tener ningún grupo para que los campos funcionen, siempre es recomendable crearlos para tener bien organizados estos campos.

Como en el ejemplo hemos hablado de 2 "bloques" de información, lo mejor será crear estos 2 grupos.

Para ello vamos desde el menú principal del panel de administración a Usuarios > Grupos de campos.

Aquí veremos el listado de los grupos que tengamos creado y las opciones típicas de crear, editar y eliminar.

grupos campos

Aunque en la captura verás que ya los tengo creados, para crear uno es muy sencillo.

Pulsas el botón que se llama "Nuevo" y rellenas el formulario que aparece en la pantalla de creación:

grupos campos crear

Ahora que tenemos creados estos grupos, vamos a crear los campos.

Campos personalizados de usuario en Joomla 4

Para crear los 4 campos que te he comentado que vamos a usar en el ejemplo tendremos que ir a Usuarios > Campos desde el menú principal del panel de administración.

Aquí veremos el listado de los campos que tengamos creados.

campos usuarios

Como ves en la captura, ya tengo creado el de Apellidos. Así que vamos a crear el resto.

Te muestro el de Teléfono puesto que los otros se harán de forma similar (y así puedes practicarlo).

Igual que se hace en los Grupos de campo, pulsamos el botón que se llama "Nuevo".

campos usuarios crear

La captura anterior muestra la pantalla de creación/edición de un campo y te paso a explicar cada uno de los campos que la forman:

  • Título: título del campo. Ej. Teléfono
  • Tipo: seleccionamos el tipo de campo. Ej. Text (lo vamos a tratar como campo de texto, pero podríamos utilizar el tipo de campo específico "phone" si lo tuviéramos instalado - Puedes ver todos los que ofrece Tassos en su Advanced Custom Fields)
  • Nombre: nombre del campo (el que irá dentro del HTML "input"). Ej. Dejamos que se genere automáticamente
  • Etiqueta: etiqueta del campo que aparecerá en la etiqueta HTML "label". Ej. Dejamos que se genere automáticamente
  • Descripción: si queremos añadir una descripción del campo. Ej. Dejamos vacío (podríamos poner que se trata de un teléfono de contacto habitual que puede ser móvil o fijo, por ejemplo).
  • Requerido: si queremos que sea o no obligatorio de rellenar en el formulario. Ej. Marcamos sí
  • Usar solo en subformulario: el campo solo se mostrará en otro capo de tipo "Subform o Subformulario". Ej. Marcamos no
  • Valor predeterminado: si queremos que haya ya un valor predeterminado. Ej. Dejamos vacío (si por ejemplo pidiéramos un teléfono fijo solo de Zamora, podríamos poner aquí ya su prefijo: 980).
  • Filtro: seleccionamos el filtro que tendrá el campo. Ej. Teléfono (es un tipo de filtro específico para solicitar teléfonos, aunque podríamoos dejarlo vacío, o como enteros, por ejemplo).
  • Tamaño máximo (caracteres): el número máximo de caracteres que el usuario puede introducir. Ej. Dejamos vacío
  • Estado: seleccionamos si lo publicamos, despublicamos o enviamos a basura. Ej. Publicado
  • Grupo de campos: seleccionamos al grupo al que pertenecerá. Ej. Información personal (para los otros 2 campos que quedarían habría que seleccionar el otro grupo).
  • Acceso: seleccionamos los grupos que tienen acceso a este campo. Ej. Public (si por ejemplo no queremos que aparezca en el formulario de registro pero sí en la edición de perfil, seleccionamos Registered y ya lo tendríamos).

Y con esto el campo estaría creado.

Pero... quedan un par de cosas a tener en cuenta y que son MUY IMPORTANTES:

  1. Define bien el tipo de campo que vas a utilizar porque una vez lo crees ya no podrás cambiarlo. Esto es importante tener en cuenta porque si, por ejemplo, añadimos el tipo de campo de "Phone" que te comentaba antes y quieres que el campo sea de ese tipo, tendrás que crear uno nuevo y la información que hubieran introducido ya los usuarios, no valdría.
    Eso sí, siempre podrías usar el plugin SIS UserLock que veíamos la semana pasada para obligar a los usuarios ya registrados a rellenarlo si quieren navegar por la web ;-).
  2. Tendrás que dar permisos de edición de campo a los grupos de usuarios que quieras que puedan rellenarlo.

Dar permisos de edición de campo en Joomla 4

Hay que tener en cuenta que los usuarios del grupo "Public" por defecto no pueden editar estos campos.

Para que puedan rellenar estos campos, una vez que crees dicho campo, tendrás que ir a la pestaña de "Permisos" y darle ese permiso:

permisos edicion campo

Como puedes ver en la captura, hay que seleccionar "Permitido" en el campo "Editar valor de campo personalizado".

Si no lo haces, el campo aparecerá en el formulario pero marcado como "disabled" y el usuario no podrá registrarse si lo pones como "Requerido".

Y ahora, te muestro cómo se vería el formulario de registro con los campos y grupos de campos que acabamos de crear:

registro usuario campos

Puedes ver en la captura anterior que en el campo de "Cargo" le he puesto una descripción en el campo correspondiente.


Creo que con esto queda claro cómo crear campos personalizados de usuario en Joomla 4 y cómo funcionan.

Espero que te haya ayudado, te sirva para tus proyectos y que, si te parece bien, lo compartas con otros usuarios ;-)

Cómo crear campos personalizados de usuario en #Joomla4 #MejorConJoomla Tuitéalo

¿Te ha gustado el artículo?

Suscríbete a mi newsletter y recibe contenido exclusivo.
Podrás hacer gratis un Curso de desarrollo de plantillas Joomla.

6 comentarios

  • Hola Sergio! gracias toda la info que nos entregas.
    He creado campos personalizados, pero al momento de intentar realizar una carga masiva de información no me permite (indica que los campos no existen en la base de datos). La carga de estos campos se hace de alguna manera diferente?

    Gracias!
    • Hola Mari,

      Gracis por comentar. Referente a tu consulta, dependerá de cómo estés realizando esa importación masiva. Sin esa información poco puedo decirte.

      Los campos personalizados tienen sus propias tablas (#__fields, #__fields_values) y hacen referencia al elemento a través del ID de éste.

      Salu2!!

  • Hola Sergio.
    Gracias por compartir contenido de calidad.
    Quiero hacer un formulario de contacto en Joomla 4 que incluya los campos de política de privacidad y el recaptcha.
    ¿Tienes algún artículo que lo explique?
    Muchas gracias.
    Un saludo.
    • Hola José Galiano.

      Pues me temo que no tengo ningún artículo que lo explique. Pero no es dificil de hacer.

      Para el tema del ReCaptcha puedes ver este artículo: Habilitar Google ReCaptcha en Joomla! para evitar SPAM en tu sitio web
      También te aconsejo mirar este plugin que ha desarrollado Carlos Cámara: Contact Pot

      Para temas de consentimiento hay un plugin nativo (Content – Confirm Consent) que lo añadirá a tus formularios.

      Espero haberte ayudado. Me lo apunto para un posible artículo del blog (aunque ahora estoy con demasiada carga de trabajo).

      Un saludo,

  • Hola Sergio, gracias por compartir tus conocimientos.

    Me gustaría saber si sería posible modificar el formulario de registro, aparte de añadir campos, como explicas. Por ejemplo, el campo usuario, en mí caso, no tiene funcionalidad usarlo y me gustaría sustituirlo por el de Apellidos.

    El tema de los formularios, creo que es un aspecto a mejorar por parte de joomla, para que desde el panel del administrador, se pudieran configurar/crear en base a las necesidades de cada uno.

    Saludos, José Alberto.
    • Hola José Alberto,

      Gracias por comentar. Con respecto a tu consulta decirte que el campo de usuario es un campo obligatorio y necesario en Joomla, por lo que no se puede sustituir por el de Apellidos. Este campo es el que se utiliza para que se pueda conectar un usuario a la parte privada del sitio. Lo puedes "trucar" para que sea el email, por ejemplo (tienes plugins para ello, o haciendo un override de esta vista). Pero no puedes quitarlo porque, como te comento, es obligatorio.

      Con respecto a los formularios creo que tenemos extensiones que cubren con creces esta funcionalidad: Convert Forms, RS Form, BreezingForm, entre otros.

      Salu2!

Artículos relacionados

Solicita presupuesto

¿Quieres una página web que funcione?

Contacta conmigo y hablemos de tu proyecto.