it-swarm-es.tech

Muchos grupos de usuarios ralentizan las secciones del sitio web

Estoy trabajando en un sitio web de Joomla 3.3.0 que tiene alrededor de 140 grupos de usuarios. Sin embargo, esto hace que Joomla se ralentice, especialmente cuando voy a las secciones del sitio web que necesitan cargar los grupos de usuarios, p. La configuración global y la configuración de cada componente. También siento que la carga de la página de edición del módulo está tardando un poco más.

Mientras espera para cargar la página, Chrome arroja un mensaje de que las páginas no responden. Si hago clic en el botón de espera, las cargará después de un tiempo. enter image description here

Al buscar en Google, encontré solo un problema similar en un J2.5 .

¿Alguien tiene algún problema similar en las versiones recientes de Joomla?
¿Es este un error conocido y cómo lidiar con él?

4
FFrewin

Parece que el problema causado por el límite predeterminado de max_input_vars de php y al hecho de que la página está intentando cargar una cantidad significativa de campos.

El tema ha sido discutido aquí y aquí .

Como solución, se sugiere aumentar el php_max_input_vars en el servidor.

Actualizar:

La continuación de este problema con una solución para superar los problemas de rendimiento, causados ​​por la carga de una gran cantidad de grupos de usuarios está aquí: Filtrando los grupos de usuarios cargados en com_config

2
FFrewin

Solucionado esto. La tabla sva_usergroups está utilizando la condición de unión. Estoy usando 5000 grupos de usuarios. Tantos grupos de usuarios que provocan que la condición de unión entre en operaciones interminables.

Cambie el siguiente código a este (combinaciones eliminadas).

Ubicación: /libraries/joomla/form/fields/rules.php

protected function getUserGroups()
    {
        $db = JFactory::getDbo();
            $query = $db->getQuery(true)
            ->select('id AS value, title AS text, COUNT(DISTINCT id) AS level, parent_id')
            ->from('#__usergroups');
        $db->setQuery($query);
        $options = $db->loadObjectList();

        return $options;
    }
1
z3r0c001