Некоторые их наших пользователей столкнулись с ошибкой «joomla Call to a member function format() on null». При этом, ни на хостинге, ни на проблемном сайте не вносилось никаких изменений. Мы решили разобраться откуда она берётся и поделиться способами решения проблемы.
Самым нетерпеливым можно сразу перейти к разделу как исправить ошибку. Если же Вам интересно разобраться в причинах, читаем всю статью полностью ).
Корень ошибки кроется в файле phpversioncheck.php, который расположен в папке /plugins/quickicon/phpversioncheck и отвечает за проверку актуальности версии php на хостинге. Там содержится таблица с версиями php и датами окончания их поддержки разработчиком. Задача — определить свежая ли версия php используется сайтом. Если срок её поддержки истёк, вернуть рекомендуемую версию для вывода этой информации владельцу сайта.
Если CMS долгое время не обновлялась, то в ней можно найти примерно такую таблицу с версиями:
Если обратить внимание на выделенную область, можно заметить, что срок использования даже самой последней версии php на момент написания этой статьи истёк.
Это и есть причина проблемы. Логика скрипта нарушена. Он пытается найти и вернуть рекомендуемую версию с актуальным сроком поддержки, а её нет.
Если посмотреть в содержимое этого же файла в последнем дистрибутиве joomla, массив версий php там более полный:
Как исправить ошибку «joomla Call to a member function format() on null»
Правильный путь — обновите версию joomla до последней версии. Сделать это можно через раздел «Компоненты -> Обновление Joomla»:
Есть и два других (не совсем правильные):
- Можно скопировать часть кода с недостающими версиями php из свежей версии Joomla. Эта часть как раз выделена рамкой на втором рисунке.
- Выставить права 200 на папку /plugins/quickicon . После этого на главной странице админ-панели вообще пропадут всякие уведомления о доступных обновлениях. Сама возможность обновления при этом сохранится.
Два последних способа конечно не рекомендуется использовать, но они могут оказаться полезными, если разработчики сайта внесли изменения в ядро CMS и её обновление из-за этого не допустимо.
С уважением,
служба поддержки WebGuard.pro