Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
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
|
 |
« Ответ #1 : 17.11.2010, 18:01:49 » |
|
Покажите код, попробуем разобраться почему так. Иначе даже не знаю чем вам помочь.
|
|
|
|
|
Записан
|
|
|
|
Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
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
Сообщений: 121
|
 |
« Ответ #3 : 16.12.2010, 06:12:41 » |
|
Идентичную ошибку, только с другим номером строки я получил, поставив свеженький Adsmanager 2.6Beta + Плагинчик для CommunityBuilder. А вдруг вы поймали те же грабли (в моем случае - дело именно в плагине)  Решение, данное по ссылке http://joomlaforum.ru/index.php/topic,139645.0.html для меня пока что почему-то не сработало. Буду думать.
|
|
|
|
|
Записан
|
|
|
|
Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 43
|
 |
« Ответ #4 : 21.12.2010, 06:34:20 » |
|
Спасибо большое , будем посмотреть 
|
|
|
|
|
Записан
|
|
|
|
ZeiN.ua
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 25
|
 |
« Ответ #5 : 08.02.2011, 15:25:12 » |
|
Решение в конце коцов нашлось?!
|
|
|
|
|
Записан
|
|
|
|
Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
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
|
 |
« Ответ #7 : 14.04.2011, 02:01:50 » |
|
То работает и не выдаёт ошибки он не может работать, ибо вы предлагаете фигню какую-то... вместо объекта в переменную записать целое число, а потом работать с переменной, как с объектом типа JUser...
|
|
|
|
|
Записан
|
|
|
|
Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
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
|
 |
« Ответ #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
Сообщений: 43
|
 |
« Ответ #10 : 14.04.2011, 02:30:19 » |
|
угу, только не делает того, что должен...
Надо искать проблему и проблему в коде, причем судя по всему никак не JComments, ибо в стандартной поставке на Joomla 1.5 этот баг не повторяется. Ошибка падает в user.php при попытке загрузить пользовательский объект. Падает, потому, что в переменной $table фигня, а не объект:
Но по сути то $my->id он передаёт всё верно . И после удаления кода , вроде всё работает как надо , имена пользователей пишет правильно .... не сильно еще протестировал , но на первый взгляд всё работает как надо...
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #11 : 14.04.2011, 02:37:48 » |
|
не сильно еще протестировал , но на первый взгляд всё работает как надо... хм, вам судя по всему нравится пользоватся костылями, а не найти нормальное решение вашей проблемы. В принципе это ваш выбор. Остальным, кому все-таки интересна причина возникновения проблемы (еще раз замечу, что JComments тут не причем и проблема может проявится внезапно в любом расширении, которое использует метод JFactory::getUser), причину возникновения проблемы я описал чуть ниже.
|
|
|
|
|
Записан
|
|
|
|
Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 43
|
 |
« Ответ #12 : 14.04.2011, 02:40:12 » |
|
хм, вам судя по всему нравится пользоватся костылями, а не найти нормальное решение вашей проблемы. В принципе это ваш выбор.
Остальным, кому все-таки интересна причина возникновения проблемы (еще раз замечу, что JComments тут не причем и проблема может проявится внезапно в любом расширении, которое использует метод JFactory::getUser), причину возникновения проблемы я описал чуть ниже.
Так потому что я не хочу использовать костыли я и задаю тут вопросы  Я понимаю , что проблема не в JComments . Будем искать проблемку... P.S. Попробывал в контенте(статьях) комментарии и всё работает нормально и без этого кода.
|
|
|
|
« Последнее редактирование: 14.04.2011, 02:47:41 от Alex_77 »
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #13 : 14.04.2011, 02:56:17 » |
|
Выполните поиск файлов с именем 'user.php' в директории с вашим сайтом и наверняка найдете тот, который подключается и блокирует загрузку файла /libraries/joomla/database/table/user.php.
|
|
|
|
|
Записан
|
|
|
|
Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 43
|
 |
« Ответ #14 : 14.04.2011, 13:12:00 » |
|
Да файл с именем user.php есть . Т.е. проблема получается в названии файла ?
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #15 : 14.04.2011, 13:13:26 » |
|
В какой директории-то есть? Их должно быть не менее 2-х у вас на сайте, чтобы получить описанную проблему.
|
|
|
|
|
Записан
|
|
|
|
Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 43
|
 |
« Ответ #16 : 14.04.2011, 13:16:13 » |
|
В папке components\com_кккккккккк\models\ Есть еще папка с таким именем components\com_кккккккккк\views\user\ И в админке administrator\components\com_кккккккккк\models\ ..... но думаю админка тут не причёмю
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #17 : 14.04.2011, 13:17:22 » |
|
Хм, в моделях по идее это не страшно. Должно мешать если в /tables/user.php
|
|
|
|
|
Записан
|
|
|
|
Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 43
|
 |
« Ответ #18 : 14.04.2011, 13:18:40 » |
|
Да есть в админке administrator\components\com_кккккккккк\tables\user.php Этот файл вызывается с передней части тоже , но вот только не на странице комментариев.
|
|
|
|
|
Записан
|
|
|
|
Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 43
|
 |
« Ответ #19 : 14.04.2011, 13:27:10 » |
|
В файле где добавлены комментарии есть код , что Вы писали раньше $user = &JFactory::getUser(); , может в этом проблема ? Хотя пробовал убирать его , эффекта не было.
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #20 : 14.04.2011, 14:01:04 » |
|
Ну вот в этом com_кккккккккк и проблема. Я бы пошел по простому пути - поправил бы этот компонент, переименовав файл, изменив название таблицы и т.д.
|
|
|
|
|
Записан
|
|
|
|
Alex_77
Осваиваюсь на форуме
 
Репутация: +2/-0
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
|
 |
« Ответ #22 : 15.04.2011, 13:11:58 » |
|
Если вы не видели проблемы, это еще не значит, что ее не было. Посмотрите как работает JTable, как подключаются классы с таблицами и увидите, что когда у JTable запрашивают экземпляр класса User, и такой класс еще на тот момент не был загружен, то берется список путей с таблицами и в цикле обходится и ищется файл user.php, подключается и производится попытка создать класс. А так, как в списке путей оказывается 2 пути ,и по первому из них, увы, нет класса JTableUser, то объект не создается, и, как следствие, позже в getUser падает ошибка.
|
|
|
|
|
Записан
|
|
|
|
Nomak1
Осваиваюсь на форуме
 
Репутация: +1/-0
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
Сообщений: 133
|
 |
« Ответ #24 : 05.11.2011, 22:45:43 » |
|
Вот что еще обнаружил, все начинате нормально работать, если отключаю модуль AllNews.
|
|
|
|
|
Записан
|
|
|
|
|