¡Promoción especial hasta el 30 de Noviembre!   Descuento 5% en Hosting y 15% en Packs

Sábado, 14 Mayo 2011 06:46

Ocultar campos de usuario en el frontend de Joomla!

Escrito por 
CMS:  Joomla! |  Versión:  Todas |  Nivel de dificultad:  Básico |  Tiempo estimado de lectura:  15 minutos



Ocultar campos de usuario en el frontend de Joomla!En ocasiones puede darse el caso en el que necesitemos ocultar determinados resultados o campos de formularios nativos de Joomla! como lo son el de "Registro", "Acceso" o "Datos de Usuarios Registrados" bien por motivos estéticos o porque consideremos que estas funcionalidades extra no son necesarias o de aplicación para nuestra web.

Lo habitual es buscar el archivo responsable de mostrar la "vista" de estos datos en pantalla en el frontend y comentar o eliminar las líneas responsables, lo que implica modificar archivos del "core" de Joomla!, lo que de todo punto no es recomendable, ya que afectará a futuras actualizaciones del pack.

Es en estos casos cuando las técnicas de "override" se hacen imprescindibles con el fin de permitirnos el modificar lo que deseamos sin que esto se vea afectado por futuras actualizaciones de Joomla!.

Existe buena documentación "oficial" acerca del uso de estas técnicas en el wiki de Joomla.org para quien desee profundizar más en ellas:

- Understanding Output Overrides

- How to override the output from the Joomla! core

- Layout Overrides in Joomla 1.6

Empleando esta técnica de "anulación" o "sustitución" del original por una copia mejorada o personalizada (es lo que hacemos cuando utilizamos la técnica de "override") podemos conseguir resultados muy por encima de los establecidos por defecto para determinado comportamiento de código o sencillamente anularlos, como es el caso que tratamos.

Nuestro escenario es sencillo, tenemos usuarios que se registran en nuestro sitio web y que tienen acceso al "Menú de usuario" en particular al apartado "Modificar sus detalles" que suele mostrar los siguientes campos:

formulario
Datos básicos
Nombre de usuario:
Su nombre:
E-mail:
Contraseña:
Verifique su contraseña:

Datos extra
Idioma para la administración Back-end
Idioma para la parte frontal
Editor del usuario
Sitio de ayuda
Zona horaria

Estos datos podemos permitir que el propio usuario los gestione a su gusto o podemos decidir cuales son los que queremos que modifique y cuales no por no considerarlos importantes para nuestros propósitos en la web. Ademas en determinadas plantillas, campos como Zona horaria terminan afectando a la estética en pantalla porque provocan que campos demasiados largos desborden la ventana que contiene este campo.

Ejemplo de campo del formulario que se desborda en la plantilla GK YourShop:

¿Como desactivar los datos extra del formulario?

Utilizando la técnica "override" para crear una copia del componente en caso de no existir en la plantilla en uso, podemos valernos el componente NinjaXplorer para navegar hasta la ruta /public_html/components/views/user/tmpl y hacemos una copia de la carpeta /com_user empaquetándola y llevándola a la ruta /templates/ja_purity_ii/html/com_user/user/ (o la carpeta de vuestra plantilla predeterminada de Joomla!, en el ejemplo estamos trabajando con la plantilla ja_purity_ii, si vuestra plantilla es otra habrá que cambiar el ja_purity_ii).

A continuación editaremos el archivo form.php y comentaremos la línea 75 que es la responsable de mostrar los campos extra del formulario de usuario.

< ? php //if(isset($this->params)) : echo $this->params->render( 'params' ); endif; ? >

Dejandola de la siguiente forma:

< ! -- // Webempresa: ocultamos los campos del usuario "Modificar sus detalles" auxiliares.
< ? php //if(isset($this->params)) : echo $this->params->render( 'params' ); endif; ? >
// -- >

Con esta sencilla modificación conseguimos ocultar dichos campos del formulario de usuario registrado tal como podemos ver en el siguiente vídeo.



Hemos ocultado todos los "campos extra" del usuario (Idioma, editor y ayuda en linea) porque el framework de Joomla! no nos permite despublicar un parámetro solo, ya que los trata en un bloque y el cambio afecta a todo ese bloque.



¿Te ha resultado interesante este artículo?

Suscríbete para recibir consejos exclusivos para WordPress, Joomla y PrestaShop