LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
26.05.2012, 19:44:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Fatal error: Call to a member function load() on a non-object in user.php on line 597  (Прочитано 3908 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« : 12.11.2010, 20:35:51 »

Подскажите пожалуйста в чём проблема.
Добавляю плагин и код как написано тут http://www.joomlatune.ru/jcomments-developers-manual.html
Если пользователь не залогинился то всё впорядке , комментарии добавляются и всё в порядке , но как только он залогинился сразу выскакивает такая ошибка
Fatal error: Call to a member function load() on a non-object in Z:\home\localhost\www\xxxxxxx\libraries\joomla\user\user.php on line 597
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #1 : 17.11.2010, 18:01:49 »

Покажите код, попробуем разобраться почему так. Иначе даже не знаю чем вам помочь.
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #2 : 19.11.2010, 05:15:41 »

Я думаю пробема не в самом коде ,а в связки со сторонним компонентом.
Вот пример той же ошибки с компонентом PhocaGallery 2.2.4 .
http://www.phoca.cz/forum/viewtopic.php?f=1&t=4821
Там написано что проблема решена , но как я чёто не могу понять , наверно у меня проблемы с английским.
Но вобщем то хотелось бы знать почему там возникла такая ошибка , тогда я смогу понять принцип её решения.
Записан
mark1
Осваиваюсь на форуме
***

Репутация: +7/-0
Offline Offline

Сообщений: 121


« Ответ #3 : 16.12.2010, 06:12:41 »

Идентичную ошибку, только с другим номером строки я получил, поставив свеженький Adsmanager 2.6Beta + Плагинчик для CommunityBuilder.  А вдруг вы поймали те же грабли (в моем случае - дело именно в плагине) Roll Eyes

Решение, данное по ссылке http://joomlaforum.ru/index.php/topic,139645.0.html для меня пока что почему-то не сработало. Буду думать.
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #4 : 21.12.2010, 06:34:20 »

Спасибо большое , будем посмотреть Azn
Записан
ZeiN.ua
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 25


« Ответ #5 : 08.02.2011, 15:25:12 »

Решение в конце коцов нашлось?!
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #6 : 14.04.2011, 01:59:11 »

Посмотрел файл components\com_jcomments\jcomments.php
Строки 400 - 404

Код:
if ($my->id) {
$currentUser = JCommentsFactory::getUser($my->id);
$my->name = $currentUser->name;
unset($currentUser);
}

при проверке в $my->id приходит вроде как правильно, переменная id Пользователя , но дальше код не работает.
Но если написать код так
Код:
if ($my->id) {
$currentUser = $my->id;
$my->name = $currentUser->name;
unset($currentUser);
}

То работает и не выдаёт ошибки ........
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #7 : 14.04.2011, 02:01:50 »

То работает и не выдаёт ошибки
он не может работать, ибо вы предлагаете фигню какую-то... вместо объекта в переменную записать целое число, а потом работать с переменной, как с объектом типа JUser...
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #8 : 14.04.2011, 02:10:43 »

он не может работать, ибо вы предлагаете фигню какую-то... вместо объекта в переменную записать целое число, а потом работать с переменной, как с объектом типа JUser...

Так тоже работает

Код:
if ($my->id) {
                          
}

Вообщем можно удалить полностью этот код и будет работать....

Вобщем проблема в JCommentsFactory::getUser($my->id); , а почему не понимаю

П.С.
Как я понимаю в $my->id должно приходить id пользователя..... правильно ?
« Последнее редактирование: 14.04.2011, 02:15:35 от Alex_77 » Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #9 : 14.04.2011, 02:24:35 »

Так тоже работает
угу, только не делает того, что должен...

Надо искать проблему и проблему в коде, причем судя по всему никак не JComments, ибо в стандартной поставке на Joomla 1.5 этот баг не повторяется. Ошибка падает в user.php при попытке загрузить пользовательский объект. Падает, потому, что в переменной $table фигня, а не объект:

Код
		// Create the user table object
$table =& $this->getTable();
 
// Load the JUserModel object based on the user id or throw a warning.
if(!$table->load($id)) {

А вот почему в этой переменной фигня - надо разбираться. Я даже начинаю кое-что вспоминать. Такое уже было, и обсуждалось, и если не здесь, то на JoomlaTune.com. Проблема в том, что на сайте стоит еще какое-то расширение, которое добавляет к списке путей, где ищутся таблицы, еще один путь, и в нем есть файл user.php, вот он и цепляется. А там другие потроха.

Да, было именно такое, и было это с PhocaGallery, я в описании интеграции упоминал этот файл: Интеграция JComments в галерею PhocaGallery

В общем почти наверняка проблема именно в этом.
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #10 : 14.04.2011, 02:30:19 »

угу, только не делает того, что должен...

Надо искать проблему и проблему в коде, причем судя по всему никак не JComments, ибо в стандартной поставке на Joomla 1.5 этот баг не повторяется. Ошибка падает в user.php при попытке загрузить пользовательский объект. Падает, потому, что в переменной $table фигня, а не объект:
Но по сути то $my->id он передаёт всё верно .
И после удаления кода , вроде всё работает как надо , имена пользователей пишет правильно .... не сильно еще протестировал , но на первый взгляд всё работает как надо...
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #11 : 14.04.2011, 02:37:48 »

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

Остальным, кому все-таки интересна причина возникновения проблемы (еще раз замечу, что JComments тут не причем и проблема может проявится внезапно в любом расширении, которое использует метод JFactory::getUser), причину возникновения проблемы я описал чуть ниже.
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #12 : 14.04.2011, 02:40:12 »

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

Остальным, кому все-таки интересна причина возникновения проблемы (еще раз замечу, что JComments тут не причем и проблема может проявится внезапно в любом расширении, которое использует метод JFactory::getUser), причину возникновения проблемы я описал чуть ниже.
Так потому что я не хочу использовать костыли я и задаю тут вопросы Azn
Я понимаю , что проблема не в JComments .
Будем искать проблемку...

P.S.
Попробывал в контенте(статьях) комментарии и всё работает нормально и без этого кода.
« Последнее редактирование: 14.04.2011, 02:47:41 от Alex_77 » Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #13 : 14.04.2011, 02:56:17 »

Выполните поиск файлов с именем 'user.php' в директории с вашим сайтом и наверняка найдете тот, который подключается и блокирует загрузку файла /libraries/joomla/database/table/user.php.
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #14 : 14.04.2011, 13:12:00 »

Да файл с именем user.php есть .
Т.е. проблема получается в названии файла ?
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #15 : 14.04.2011, 13:13:26 »

В какой директории-то есть? Их должно быть не менее 2-х у вас на сайте, чтобы получить описанную проблему.
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #16 : 14.04.2011, 13:16:13 »

В папке components\com_кккккккккк\models\
Есть еще папка с таким именем components\com_кккккккккк\views\user\
И в админке administrator\components\com_кккккккккк\models\ ..... но думаю админка тут не причёмю
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #17 : 14.04.2011, 13:17:22 »

Хм, в моделях по идее это не страшно. Должно мешать если в /tables/user.php
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #18 : 14.04.2011, 13:18:40 »

Да есть в админке administrator\components\com_кккккккккк\tables\user.php
Этот файл вызывается с передней части тоже , но вот только не на странице комментариев.
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #19 : 14.04.2011, 13:27:10 »

В файле где добавлены комментарии есть код , что Вы писали раньше $user = &JFactory::getUser(); , может в этом проблема ?
Хотя пробовал убирать его , эффекта не было.
Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #20 : 14.04.2011, 14:01:04 »

Ну вот в этом com_кккккккккк и проблема. Я бы пошел по простому пути - поправил бы этот компонент, переименовав файл, изменив название таблицы и т.д.
Записан
Alex_77
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 43


« Ответ #21 : 14.04.2011, 18:45:01 »

Так а почему проблема в com_кккккккккк ?
Перед тем как назвать так таблицу(#__blablabla_user) и файл я тестил и не видел в этом проблемы в Joomla 1.5 , в Joomla 1.6 , да есть проблема с названием папок и файлов, но думаю это скорее недоработки (хотя может быть и задумка такая).
Странно что с Joomla 1.5 то конфликтов нету ......
Но спасибо за указания направления где проблема.
« Последнее редактирование: 14.04.2011, 18:51:50 от Alex_77 » Записан
smart
Администратор
*******

Репутация: +1143/-14
Offline Offline

Пол: Мужской
Сообщений: 8204


тружусь даже во сне...


« Ответ #22 : 15.04.2011, 13:11:58 »

Если вы не видели проблемы, это еще не значит, что ее не было. Посмотрите как работает JTable, как подключаются классы с таблицами и увидите, что когда у JTable запрашивают экземпляр класса User, и такой класс еще на тот момент не был загружен, то берется список путей с таблицами и в цикле обходится и ищется файл user.php, подключается и производится попытка создать класс. А так, как в списке путей оказывается 2 пути ,и по первому из них, увы, нет класса JTableUser, то объект не создается, и, как следствие, позже в getUser падает ошибка.
Записан
Nomak1
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 133


« Ответ #23 : 05.11.2011, 22:04:18 »

Здравствуйте. С подобной проблемой столкнулся в kunena_latest когда кликаешь на объявление в модуле, то выскакивает ошибка Fatal error: Call to a member function load() on a non-object in public_html/libraries/joomla/application/application.php on line 1077 Причем если смотреть объявления не через модуль, то все раболтает. Может подскажете как решить проблему?
Записан
Nomak1
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 133


« Ответ #24 : 05.11.2011, 22:45:43 »

Вот что еще обнаружил, все начинате нормально работать, если отключаю модуль AllNews.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet