web-dev-qa-db-fra.com

De nombreux groupes d'utilisateurs ralentissent les sections du site

Je travaille sur un site Web Joomla 3.3.0 qui compte environ 140 groupes d'utilisateurs. Cependant, cela provoque un ralentissement de joomla, en particulier lorsque je vais dans les sections du site Web qui doivent charger les groupes d'utilisateurs, par exemple. la configuration globale et la configuration de chaque composant. Je pense également que le chargement de la page de modification du module prend un peu plus longtemps.

En attendant de charger la page, Chrome affiche un message indiquant que les pages ne répondaient plus. Si je clique sur le bouton d'attente, il se chargera au bout d'un moment. enter image description here

En cherchant sur Google, je n’ai trouvé qu’un problème similaire dans un J2.5 .

Quelqu'un at-il eu un problème similaire dans les dernières versions de Joomla?
S'agit-il d'un bogue connu et comment le gérer?

4
FFrewin

Il semble que le problème causé par la limite par défaut de max_input_vars de PHP et au fait que la page essaie de charger une quantité importante de champs.

La question a été discutée ici et ici .

Comme solution, il est suggéré d'augmenter le php_max_input_vars sur le serveur.

Mise à jour:

La suite de ce problème avec une solution pour surmonter les problèmes de performances, provoqués par le chargement d'un grand nombre de groupes d'utilisateurs, est disponible: Filtrage des groupes d'utilisateurs chargés dans com_config

2
FFrewin

Corrigé ceci. La table sva_usergroups utilise la condition de jointure. J'utilise 5000 groupes d'utilisateurs. Autant de groupes d’utilisateurs qui entraînent la condition de jointure dans des opérations sans fin.

Modifiez le code suivant en celui-ci (jointures supprimées).

Emplacement: /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