Общеизвестная проблема Joomla состоит в том, что этот движок «тупит» на сайтах с большим объёмом контента на борту. Особенно заметны тормоза при использовании на сайте стандартных модулей типа «популярные материалы». Время запроса в базу данных к таким модулям может занимать до нескольких секунд. Главная причина заключается в политике контроля доступа ACL (Access Control List). Огромное количество времени выполнения запроса (до 98%) занимает именно проверка законности доступа пользователя к материалам.
Часто сайтам не требуется такая проверка. Например, новостной сайт, на страницах которого выводится модуль «Самое популярное» и который показывается всем посетителям. Логично было бы в этом случае отключить проверку ACL. Делается это комментированием следующей строки в helper.php соответствующего модуля:
1 | $model->setState('filter.access', $access); |
Тесты показывают, что при отключении ACL, время выполнения запроса к базе данных сокращается на 98%! К примеру, на тестовом сайте с 5000 материалами на борту, время запроса составляет 19мс против 973мс с не отключённым модулем. Вот вам и разрекламированный Joomla ACL :)
Самое интересное заключается в том, что отключение проверки ACL разработчики Joomla встроили в админку.
Для отключения идём по пути «Общие настройки» — «Материалы» и ищем «Показывать ссылки неавторизованным». Подсказка расшифровывает следующим образом:
«Если установлено значение Да, то ссылки на просмотр полного текста материалов смогут видеть все пользователи, в том числе, не прошедшие авторизацию, но для просмотра полного текста система потребует ввести логин и пароль»
Именно эта опция отключает проверку ACL для всех модулей. Такие дела.
Пользуйтесь, кому нужно «дать пинка» своей Джумле.