joomla 3.2.1 белый экран после обновления

При обновлении joomla 3 до последней актуальной, получили белый экран и на главной и в админке.
Самый простой и эффективный способ найти причину — посмотреть error.log сайта (если он включен и корректно работает на хостинге).
Открываем и видим:

[Wed Jan 29 14:51:23 2014] [error] [client ***] PHP Fatal error:  Call to a member function get() on a non-object in /***/plugins/system/remember/remember.php on line 94

или еще возможные варианты

PHP Fatal error:  Call to a member function checkSession() on a non-object in /***/plugins/user/joomla/joomla.php on line 189
PHP Fatal error:  Call to a member function getQuery() on a non-object in /***/plugins/user/joomla/joomla.php on line 199
PHP Fatal error:  Call to a member function isAdmin() on a non-object in /***/plugins/authentication/cookie/cookie.php on line 51


Проблема в пакете обновления движка.
Исправляем:
открываем файл /plugins/system/remember/remember.php и меняем

public function __construct(&$subject, $config = array())
{
parent::__construct($subject, $config);
}
// Use domain and path set in config for cookie if it exists.

на

public function __construct(&$subject, $config = array())
{
parent::__construct($subject, $config);
$this->app = JFactory::getApplication();
$this->db = JFactory::getDBO();
}
// Use domain and path set in config for cookie if it exists.

UPDATE 08.03.2016 Иногда блока с этой функцией в файле нет — просто добавить ее после:

protected $app;
//примерно в 29 строку

открываем /plugins/user/joomla/joomla.php, ищем строку

public function onUserLogin($user, $options = array())

и добавляем перед ней

public function __construct(&$subject, $config = array())
{
parent::__construct($subject, $config);
$this->app = JFactory::getApplication();
$this->db = JFactory::getDBO();
}

и аналогично в файле /plugins/authentication/cookie/cookie.php добавляем эту функцию перед строкой

public function onUserAuthenticate($credentials, $options, &$response)

После этих действий сайт и админка заведутся, но т.к. обновление не прошло корректно, часть новых таблиц и значений не создалась и теперь будут висеть ошибки на сайте и в админке

Table '***_contentitem_tag_map' doesn't exist SQL=SELECT `m`.`tag_id`,`t`.* FROM `j01xh_contentitem_tag_map` AS m INNER JOIN `j01xh_tags` AS t ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = 'com_content.article' AND `m`.`content_item_id` = 24 AND `t`.`published` = 1 AND t.access IN (1,1,5)

Table '***_tags' doesn't exist SQL=SELECT a.id, a.title, a.level FROM ***_tags AS a WHERE a.parent_id > 0 ORDER BY a.lft

Table '***_content_types' doesn't exist SQL=SELECT ct.type_id FROM `***_content_types` AS `ct` WHERE `ct`.`type_alias` = 'com_contact.contact'

Пробуем сначала исправить стандартными методами:
идем Расширения -> Менеджер расширений -> слева База данных и если видим сообщения

Таблица '***_contentitem_tag_map' не существует. (из файла 3.1.0.sql.)
Таблица '***_tags' не существует. (из файла 3.1.0.sql.)
Таблица '***_ucm_content' не существует. (из файла 3.1.0.sql.)
Таблица '***_modules' не содержит поля 'asset_id'. (из файла 3.2.0.sql.)
Таблица '***_postinstall_messages' не существует. (из файла 3.2.0.sql.)
Таблица '***_ucm_history' не существует. (из файла 3.2.0.sql.)
Таблица '***_users' не содержит поля 'otpKey'. (из файла 3.2.0.sql.)
Таблица '***_users' не содержит поля 'otep'. (из файла 3.2.0.sql.)
Таблица '***_user_keys' не существует. (из файла 3.2.0.sql.)

и кнопку Исправить, то нажимаем ее, нужные таблицы создадутся, значения и поля изменятся. Но у меня была всего одна кнопка Вернуться в панель управления.
Исправляем в ручную:
Скачиваем файл joomla321update.sql
ВНИМАНИЕ! открыть файл и заменить #(решетка) на свой префикс таблиц
открываем phpmyadmin -> выбираем нужную базу -> в верхнем меню Импорт и выбираем наш исправленный файл. -> OK.
Далее в верхнем меню phpmyadmin нажимаем SQL и выполняем построчно запросы (не забываем менять # на префикс) из файла joomla321update2.sql.
Ошибки #1062 — Duplicate entry пропускаем.

Но и это еще не все :-)
На главной висит ошибка:

Error loading component: com_tags, Component not found

или в русском варианте

Ошибка при загрузке компонента: com_tags, Компонент не найден

Идем в админку -> Расширения -> Менеджер расширений -> слева Поиск -> в верхнем левой углу нажимаем кнопку Найти (рядом с Установить) — движок найдет все недоустановленные компоненты -> отмечаем все галочками и вверху слева Установить

И на всякий случай проверяем корректность базы:
Расширения -> Менеджер расширений -> слева База данных

Структура таблиц базы данных в актуальном состоянии.
Другая информация
Версия схемы базы данных (из #__schemas): 3.2.1.
Версия обновления (из #__extensions): 3.2.1.
Драйвер БД: mysqli.
79 изменений базы данных были успешно проверены.
131 изменений базы данных не изменили структуру таблиц и были пропущены.

Если есть ошибки — жмем Исправить.

Наконец ПРОФИТ!!!

20 комментариев

Александр on 03.02.2014 at 20:44.

Спасибо! Вы лучший

Ответить

Эдуард on 25.02.2014 at 00:19.

Спасибо дружище!
Просто, понятно. Замечательный сайт. Порекомендую друзьям.

Ответить

Юзверь on 13.03.2014 at 08:05.

Спасибо, оч. полезно!!!

Ответить

Mozr on 19.03.2014 at 10:41.

И какого они релизят такое кривое обновление???

Ответить

manager

manager on 19.03.2014 at 11:06.

у любого разработчика могут быть ошибки, даже у такого крупного :)

Ответить

Yulila on 26.08.2014 at 03:17.

Спасибо за спасение многодневной работы над сайтом! Я уж думала, придётся всё заново делать))

Ответить

kgtu5

kgtu5 on 26.08.2014 at 08:29.

надеюсь, что другие статьи ПВ будут тоже полезны :-)

Ответить

Покемон on 07.11.2014 at 03:58.

Огромное спасибо за проделанную работу, реально помогло. 300 лет счастливой жизни тебе :) Я уже и не надеялся, весь интернет облазил, а здесь все как по маслу.

Ответить

kgtu5

kgtu5 on 07.11.2014 at 21:45.

;-)

Ответить

Dmitry on 22.04.2015 at 18:57.

Спасибо помогло!!!

Ошибка при загрузке компонента: com_tags, Компонент не найден

Идем в админку -> Расширения -> Менеджер расширений -> слева Поиск -> в верхнем левой углу нажимаем кнопку Найти (рядом с Установить) — движок найдет все недоустановленные компоненты -> отмечаем все галочками и вверху слева Установить

Ответить

kgtu5

kgtu5 on 22.04.2015 at 19:00.

:-)

Ответить

Евгения on 26.04.2015 at 19:19.

Добрый день!
А что делать, если в файле remember.php нет такой записи:

public function __construct(&$subject, $config = array())

???
Ошибка на белом экране сайта выглядит так:

Fatal error: Call to a member function isAdmin() on a non-object in Z:\home\localhost\www\tigerwood_new\plugins\system\remember\remember.php on line 42

Ответить

kgtu5

kgtu5 on 26.04.2015 at 21:38.

какая версия движка? возможно у вас не аналогичная проблема и для нее потребуется другое решение.

Ответить

Евгений on 11.12.2015 at 10:52.

Спасибо,дружище!! Удачи тебе !

Ответить

kgtu5

kgtu5 on 13.12.2015 at 12:37.

:-)

Ответить

Алексей on 18.04.2016 at 11:05.

Спасибо! Помогло!

Ответить

kgtu5

kgtu5 on 18.04.2016 at 11:47.

Алексей, подписывайтесь на новости сайта :smile:

Ответить

ССЗБ on 21.09.2016 at 09:39.

Друг, ты просто меня спас! :)
Всем: ребят, проверяйте корректность бэкапов перед апгрейдом :twisted: , чтобы потом не было мучительно больно :)

Ответить

kgtu5

kgtu5 on 27.10.2016 at 10:47.

:smile:

Ответить

Виктор on 26.02.2017 at 12:13.

Пипец, бился несколько дней над сайтом после обновления. Белый экран.
На предыдущей версии все криво.

Мне помогло:

«-Идем в админку -> Расширения -> Менеджер расширений -> слева Поиск -> в верхнем левой углу нажимаем кнопку Найти (рядом с Установить) — движок найдет все недоустановленные компоненты -> отмечаем все галочками и вверху слева Установить«

и

«-И на всякий случай проверяем корректность базы:
Расширения -> Менеджер расширений -> слева База данных «

Почему-то другие источники об этом не указывают. У меня половина модулей и плагинов толком не работала. Сайт с 2010 года, периодически Джумлу подновлял и доподновлялся.

Всё стало тьфу-тьфу и установилось КОРРЕКТНО до последней версии.
Посмотрел на обновленный сайт (как в 2010 году на Джумлу 1,5) и аж прослезился. Всё ровно, всё нормально. Тьфу тьфу (версия 3.6.5.)

Огромное человеческое спасибо !!!

Ответить

Скажите свое мнение

ваш email не публикуется. обязательно *

;-) :yawn: :whew: :toivo: :tmi: :time: :thinking: :talking: :sweating: :swear: :sun: :star: :smoke: :smirk: :sleepy: :skype: :shock: :shake: :rofl: :rain: :punch: :puke: :poolparty: :pizza: :phone: :party: :oops: :nod: :no: :ninja: :neutral: :nerd: :music: :muscle: :mrgreen: :movie: :mooning: :mmm: :middlefinger: :makeup: :mail: :mad: :lol: :lipssealed: :kiss: :itwashtme: :inlove: :idea: :hi: :heidy: :heart: :headbang: :happy: :handshake: :giggle: :fubar: :flower: :evilgrin: :emo: :dull: :drunk: :drink: :doh: :devil: :dance: :cry: :cool: :coffie: :clapping: :cash: :call: :cake: :bug: :brokenheart: :bow: :blush: :beer: :bear: :bandit: :arrow: :angry: :angel: :^) :???: :?: :-| :-o :-P :-D :-) :-( :!:

 

*

code

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.