tantosoft.com

NoixACL + php 5.3 bug

Recientemente he actualizado varios servidores Debian Lenny (5) a Debian Squeeze (6). El proceso no ha sido complicado, escepto en uno de ellos que tenía muchas configuraciones custom. El caso es que uno de ellos es un servidor web dedicado el cual tiene instaladas aplicaciones Joomla con componentes extra.

 

Uno de estos componentes es el NoixACL para el control de acceso a menús y contenidos mediante grupos y reglas.

Al actualizar el sistema operativo me encuentro con la actualización de PHP a la versión 5.3.3, que al parecer introduce cambios importantes en funciones y variables. Así es que parte del código de algunos de los componentes de Joomla, en este caso el NoixACL han dejado de funcionar, y con ello, parte importante de las aplicaciones web instaladas en este servidor.

Me he pasado varios días buscando la solución, siguiendo varios hilos en foros y webs de programadores, sin mucho éxito, hasta que he realizado la búsqueda en google un poco más refinada.

El componente NoixACL se acompaña del módulo mod_mainmenu_noix que gestiona dinámicamente el menú que se enlaza con él, haciendo que aparezcan o no determinados enlaces en el menú según el contro de accesos asignados por el NoixACL desde el admin.

Este módulo no funciona con PHP-5.3.3 debido a que esta versión no trabaja con variables referenciadas (&), así que no aparecen los menús privados con los permisos de acceso asignados por Noix.

La solución es bien sencilla, aunque me ha costado bastante de encontrar, la tenéis aquí:

Hay que editar el fichero modules/mod_mainmenu_noix/helper.php: (línea 31)

    //function buildXML(&$params) < borrar el & para que quede así:

    function buildXML($params)

e VOILÁ! todo vuelve a funcionar. Ya tengo otra vez el mód_mainmenu_noix en marcha y tengo mi menú privado funcionando.

Espero que os sirva. Un saludo.

Quiere contactar con nosotros?

Envíenos un Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. o llámenos a (+34) 698 259 856