Проблема после обновления с 0.3 до 0.4.1

Обновил проект с версии 0.3 до 0.4.1, т.е. файловая структура полностью новая, базу отконвертил при инсталляции, на все папки выставил нужные права. Сайт поднялся вроде бы все норм, но в правом блоке выводит несколько записей без стилей и потом вываливает вот такую вот ошибку

Fatal error: Call to a member function getBlog() on a non-object in /home/site.com/data/www/site.com/templates/compiled/new/%%17^171^17121A2C%%block.stream_comment.tpl.php on line 13

чего посоветуете?
я в растерянности, папки кеш и темп чистил, стили менял ошибка остается на месте, предполагаю, что проблема в block.stream_comment.tpl, т.к. ругается на его окомпиленную версию, но в чем именно пробелма не знаю

код block.stream_comment.tpl вот:
<ul class="stream-content" >
{foreach from=$aComments item=oComment name="cmt"}
{assign var="oUser" value=$oComment->getUser()}
{assign var="oTopic" value=$oComment->getTarget()}
{assign var="oBlog" value=$oTopic->getBlog()}
							
<li {if $smarty.foreach.cmt.iteration % 2 == 1}class="even"{/if}>
<a href="{$oUser->getUserWebPath()}" class="stream-author">{$oUser->getLogin()}</a> →
<span class="stream-comment-icon"></span><a href="{$oTopic->getUrl()}#comment{$oComment->getId()}" class="stream-comment">{$oTopic->getTitle()|escape:'html'}</a>
<span> {$oTopic->getCountComment()}</span> в <a href="{$oBlog->getUrlFull()}" class="stream-blog">{$oBlog->getTitle()|escape:'html'}</a>
</li>
{/foreach}
</ul>

<div class="right"><a href="{router page='comments'}">{$aLang.block_stream_comments_all}</a> | <a href="{router page='rss'}allcomments/">RSS</a></div>
<ul class="stream-content">

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

avatar
Почистить каталог /home/site.com/data/www/site.com/templates/compiled/new/
avatar
папку чистили из под рута, под другим пользователем не удаляет… очистка эффекта не дала
так же через aceAdminPanel тоже не очищает, такое впечатление, что LS меняет владельца папок или еещ чего, я не пойму((
avatar
Ну так и посмотреть чего там в этом php написано. На что именно там ругается.
avatar
<?php $this->assign('oUser', $this->_tpl_vars['oComment']->getUser()); ?>
<?php $this->assign('oTopic', $this->_tpl_vars['oComment']->getTarget()); ?>
<?php $this->assign('oBlog', $this->_tpl_vars['oTopic']->getBlog()); ?>

ругается на последнюю строку
avatar
сначала пользуемся поиском по фразе: Call to a member function getBlog
avatar
спасибо за совет, но уже пользовал, вот livestreet.ru/blog/4041.html и как я и говорил ранее очистка папок результата не дала
в гугле вообще множество проиндексированных страниц с этой ошибкой, но с решением проблемы током ничего
avatar
тогда для чего дублировать тему?
в той теме можно найти мой комментарий — livestreet.ru/blog/4041.html#comment61929
далее поискать по слову MyISAM и найти это — livestreet.ru/blog/questions/4481.html#comment67083
разве трудно уделить 10 минут поиску и только убедившись, что такой проблемы больше ни у кого не было, задавать вопрос в новом топике?
avatar
Означает ли это, что сконвертировать базу без перехода на движок InnoDB невозможно?
avatar
нет, просто такой подход помогает, когда возникает проблема из-за нарушения целостности в прежней БД
avatar
Жаль, я думал, что у меня проблема именно в этом :(

Тоже получаю такое сообщение об ошибке, полностью выполнил инструкцию по ссылке livestreet.ru/blog/questions/4481.html#comment67083, но при этом чистая база 0.3 была тоже MyISAM, как и исходная.

А можно предположить, какие именно нарушения целостности приводят к такой проблеме? Я бы тогда попробовал их вручную поправить.
avatar
У меня была похожая проблема.
Зайди в админку, в комментарии к последним блокам. если там будет такая же проблема, я скажу как ее исправить…

Темы(блоги) удалял какие-то?
avatar
Что имеется в виду — «в админку, в комментарии к последним блокам» — это куда надо зайти?
Стандартной админки вроде как нет, имеется в виду какой-то плагин?
avatar
Действительно, проблема в нарушении целостности данных в базе — имеются комменты, ссылающиеся на удаленные топики. Почему-то скрипт конвертации, на который была ссылка выше, мне не помог. Пришлось удалять комментарии к несуществующим топикам вручную:

delete from prefix_comment_online where target_id not in (select topic_id
 from prefix_topic);


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

Подозреваю, что надо бы ещё почистить таблицу prefix_comment, где тоже есть комментарии к несуществующим топикам, но пока не стал этого делать, потому что не вижу ни одного негативного проявления.
avatar
Помогло.
Исчезли ошибки.
Но если зайти в прямой эфир подробнее, где все коменты, то там эта ошибка осталась.
Есть идеи как это удалить? Если есть подскажите пожалста
Вот тут
jnet.kz/comments/

вот такая ошибка
Fatal error: Call to a member function getBlog() on a non-object in /var/www/v-5935/data/www/jnet.kz/templates/compiled/jnet/%%18^18C^18C675C9%%comment_list.tpl.php on line 11
avatar
Аналогичная ситуация… fish-blog.ru/comments/
avatar
Ввиду актуальности данной темы рискну снова поднять оный вопрос :)
Если кратко: апдейтю свой 0.3.1 до 0.5.1. В результате натолкнулся на данную ошибку, причем только в поиске и только во вкладке «комментарии».
Проделал ВСЕ операции, рекомендованные на данном ресурсе: это и конвертер ORT-а, и всяческие запросы типа
select * from prefix_comment where target_id not in (select topic_id from prefix_topic) AND target_type = "topic"

Эффекта ноль (хотя около 1000 комментов «бесхозных» удалилось)

Отсюда вопрос — что еще можно предпринять для решения данной проблемы? Очевидно что суть несчастья в отсутствии привязки каких-то комментам к каким-то топикам, но как это еще можно выявить и устранить?

ЗЫ. Проблема возникла не только у меня, но и у товарища с проектом на LS. он правда апдейтил с 0.4.2 до 0.5.1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.