Desactivar módulos en virtuemart (2)

Aquí la segunda parte del artículo del 31 de dic. Resumiendo, el módulo se sigue cargando a medida que navegamos por el carrito de compras, porque técnicamente sigue estando en el link del carrito. Ahora, una solución poco elegante pero que no implica hacer modificaciones mayores en joomla o en el componente es esta:

Se carga el módulo malcriado en un div con nombre diferente, para esto se usa la opción 'sufijo de clase' en la configuración del módulo. Yo le he añadido el sufijo _xtra con lo que la caja que rodea al módulo que era de la clase 'moduletable' se convierta en 'moduletable_xtra' (la clase puede cambiar según el estilo de la región ¿de qué rayos estoy hablando? tal vez quieras tomar un curso de joomla)

Agregar sufijo de clase

Ahora hay que modificar la plantilla  para que vuelva 'invisible' la clase moduletable_xtra si es que en la URL se encuentra alguna referencia al componente viertuemart ¿cómo? con una bizarra mezcla de PHP y CSS. No voy a entrar en mucho detalle, pero el comando primero 'lee' la URL de la página y busca en ella alguna referencia al componente virtuemart, en este caso la cadena 'option=com_virtuemart' si la encuentra, significa que estamos navegando dentro del carrito de compras y entonces el PHP 'escribe' la propiedad 'display:none' a la caja con la clase moduletable_xtra, haciéndola invisible SOLO CUANDO ESTAMOS EN EL CARRITO DE COMPRAS.

El código completo se escribe en la cabecera de la página (Extensiones » Gestor de Plantillas » Nombre de plantilla » Editar HTML)

Escribir un comentario


Código de seguridad
Refescar