Fatal error: Call to a member function getId()

После переноса сайта с локалки на хостинг
на главной странице вместо блоков появилось сообщение об ошибке следующего содержания Fatal error: Call to a member function getId() on a non-object in /home/a/acidflash/mysite.com/public_html/forum/templates/compiled/new-jquery/5f7f84618acb705ac37925635a094a671292682d.file.block.stream_comment.tpl.php on line 35

35 строка:
<?php if ($_smarty_tpl->getVariable('oUser')->value->getId()){?>


Может быть кто-то сталкивался с похожей проблемой?

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

avatar
сбросьте кеш
avatar
Да, спасибо, уже разобрался и понял что кеш лучше очищать не вручную а через админку))
avatar
Здравствуйте. После удаления топика, на любой странце (только после входа зарегистрированного пользователя) вместо блоков «прямой эфир», «блоги», «теги» появилось сообщение об ошибке:
Fatal error: Call to a member function getBlog() on a non-object in /usr/home/36439/мойсайт/html/templates/compiled/new-jquery/e381272a4585421abd339766869eb411e11e81d5.file.block.stream_comment.tpl.php on line 32
Пожалуйста помогите решить проблему. Кеш очищал через аддминку. Заходил через phpMyAdmin смотрел на таблицу, искал топик, ни его ни комментов не нашел, уже отчаялся.
ни чего в коде не менял, просто удалил топик, после чего выскочила непонятная ошибка, я обнови страницу сайта — и вот все, приехали. удалил даже блог — все без толку…
avatar
Такое чувство не почистился кэш прямого эфира комментариев или в таблице comment_online не удалились ссылки на комментарии из этого топика которые попали в прямой эфир.
avatar
Топик содержал комменты?

Тогда сделайте бекап и выполните запрос:

select * from prefix_comment where target_id not in (select topic_id from prefix_topic) AND target_type = «topic»
Если появится список, то удаляйте эти комменты.
Если в топике было дерево комментариев, то используйте select * from prefix_comment where target_id = XXX
Где XXX = id топика, который вы удалили, берем этот id из предыдущего запроса.

После этого чистим кэш.
avatar
вот такДокладываю
сделал запрос
select * from prefix_comment where target_id not in (select topic_id from prefix_topic) AND target_type = 'topic'
показал 3 коммента, оба были от 70 топика
затем проверил древо select * from prefix_comment where target_id = 70
те же комменты, я их удалил
обновл кеш сайта (не базы) — все так же, не помогло.
теперь где блоки были появляются комментарии но не в нормальном виде (до данных операций)
avatar
кстати, строка 32
<?php $_smarty_tpl->tpl_vars[«oBlog»] = new Smarty_variable($_smarty_tpl->
avatar
Подождите, что появляется теперь?
avatar
да все тоже самое,
Fatal error: Call to a member function getBlog() on a non-object in /usr/home/36439/livestreet-vrn.ru/html/templates/compiled/new-jquery/e381272a4585421abd339766869eb411e11e81d5.file.block.stream_comment.tpl.php on line 32
avatar
Точно все комменты удалил?
avatar
И если с локалки переносил — ссылки на сайт в базе данных менял?
avatar
… в comment_online если речь идет о таблице — там одни цифры, топик и блог удален… концов думаю не найти, а вот почистить кеш прямого эфира… в какой папке?
avatar
Да, там одни цифры ссылки хранятся на источник, если бы знали id топика то можно было бы вычистить. А кэш нужно весь чистить так вы не найдете его. Если файловый то в папке tmp обычно. Можете деактивировать\активировать какой-нибудь плагин и кэш сам почистится.
avatar
неа, отключил и включил все плагины — нет результата. создание нового топика тоже не помогает — проблема глубже видимо…
avatar
Единственное решение которое пришло в мой сонный мозг это выполнить sql скрипт и узнать какого топика не хватает:
select co.target_id, t.topic_id from prefix_comment_online as co
left join prefix_topic as t on co.target_id = t.topic_id 
where co.target_type = 'topic'

там где в выборке поле topic_id будет NULL то с таким target_id надо удалить запись в comment_online.
avatar
при запросе: #1054 — Unknown column 'co.target_id' in 'field list'
avatar
убрал из запроса приставку «со» и получил список, в которому нет топиков с NULL
avatar
кстати, при входе в phpMyAdmin автоматом иет запрос
SELECT*
FROM`prefix_comment`
ORDERBY`prefix_comment`.`comment_pid`ASC
LIMIT 750, 30

и я вижу несколько строк у которых comment id равен NULL — это нормально?
avatar
Ненормально, как интересно он NULL может быть если в описании базы:
comment_id int(11) unsigned NOT NULL AUTO_INCREMENT
avatar
извиняюсь; comment_pid с полем NULL
avatar
Это нормально =)
avatar
есть еще идеи как сайт реанимировать? даже не знаю с какой стороны зайти...(
avatar
Почисти полностью таблицу comment_online она со временем опять наполнится, а сайт уже сейчас будет работать =)
avatar
как узнать чистится ли кеш, потому что через ftp папки не удаляются, хотя папка темп в свойствах 775, папки кеша — 700, по идее должны…
avatar
а на что повлияет чистка comment_online? потеряю комментарии? какие?
avatar
Комментарии не потеряются, они простор перестанут отображаться прямом эфире.
avatar
таблицу почистил результата положительного нет
avatar
А кэш после почистили?
avatar
да, почистил кеш — все тоже самое. не важно зареген ты или нет — справа фатал еррор(
avatar
Напиши мне в личку данные подключения к серверу, я посмотрю, надоело уже пальцем в небо тыкать =)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.