4

I am working on a Joomla 3.3.0 website that has about 140 usergroups. However this causes the joomla to slow down, particularly when I am going to the sections of the website that needs to load the usergroups e.g. the global configuration and the configuration of each component. I also feel that module edit page loading, is taking a bit longer.

While waiting to load the page, Chrome throws a message that pages became unresponsive. If I click on the wait button, it will load them after a while. enter image description here

Searching in Google, I found only a similar issue in a J2.5.

Has anyone any similar issue in recent Joomla versions?
Is this a known bug and how to deal with it?

  • Naturally it will slow down as it has 140 variations to go through, however as this error appears in the easydiscuss page, it might be worth notifying the developers of this extension. – Lodder Jun 1 '14 at 13:40
  • It doesn't only appear in easydiscuss config page. It appears everywhere the system has to load the usergroup and their permissions. Searching a bit more in the web, I came across another discussion on this. What they conclude as solution, is to increase the max_input_vars php limit. I will post an answer with the links to these discussions, below. – FFrewin Jun 1 '14 at 13:49
  • One thing one might ask, is why do you have 140 user groups? Could you tell us a little about your project? It might help us think of ways to improve ACL on larger sites. – Mathew Lenning Jun 5 '14 at 11:02
  • @MathewLenning : It is a community site of hundreds organizations. Each user belongs to one organization and one organization has its own usergroup. – FFrewin Feb 12 '15 at 11:27
  • Do each of the organizations have specialized ACL requirements? If it is just to affiliate users with organizations you could possibly use a custom component. – Mathew Lenning Feb 13 '15 at 13:00
2

It seems that the issue caused by the default limit of max_input_vars of php and to the fact that the page is trying to load a significant amount of fields.

The issue has been discussed here and here.

As solution, it is suggested to increase the php_max_input_vars on the server.

Update:

The continue of this issue with a solution to overcome the performance issues, caused by the loading of a big number of usergroups is here: Filtering the usergroups loaded in com_config

  • As a side note, the page loading performance will not be affected by this change, as the browser will still have to load the same big number of form fields. At least browser won't throw the "unresponsive page" message. Thinking that maybe a different approach should be taken in the design of joomla, to avoid this kind of overloading. – FFrewin Jun 1 '14 at 15:15
1

Fixed this. The table sva_usergroups is using join condition. I am using 5000 User groups. So many user groups causing the join condition to go in never ending operations.

Change the following code to this one(removed joins).

Location : /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;
    }
  • Why do you -1 it? This is very useful. – z3r0c001 Jan 27 '15 at 10:46
  • I downvoted this because you're simply recommending a core file hack which may cause problems with functionality elsewhere on the site. Core files are there to stay as is and not be touched – Lodder Feb 19 '15 at 10:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.