Такая ошибка может возникнуть, когда удаляешь топик с комментариями. Причем при удалении топика комментарии не удаляются и нарушаются связи в базе данных (БД).
В phpmyadmin (или в другом менеджере БД сайта) сделайте запрос:
select * from prefix_comment where target_id not in (select topic_id from prefix_topic) AND target_type = "topic"
Если появится список таких непривязанных комментариев — можете их удалить вручную (по одному) или попытаться удалить командой:
delete from prefix_comment where target_id = XXX
, где ХХХ — это ID-шник удаленного топика, от которого остались висеть комментарии (его номер Вы можете увидеть в таблице вывода предыдущего запроса — у «висящих» комментариев target_id обычно один и тот же, вот его и надо указывать в ХХХ).
Если было удалено несколько топиков, то у «висящих» комментариев будут несколько разных target_id. Следовательно нужно сделать несколько запросов delete…
Если среди «висящих» комментариев есть вложенные, то удалить сразу все такие комментарии одной командой не получится. В таком случае можно вывести список:
select * from prefix_comment where target_id = XXX
и удалять вручную по несколько штук, начиная с последнего комментария (обратная сортировка по comment_id).
Внимание: delete выполняйте на СВОЙ страх и риск. Если Вы хорошо не разбираетесь в MySQL, то нечаянно этой командой Вы можете грохнуть БД сайта.
Сам вначале разбирался около часа, потом (если возникает) делаю за пару минут.
А что именно вызывает проблемы?
В экшенах ищем: $this->Viewer_AddBlocks('right',array('comments','blogs','tags'));
Вот это самое и правим до полного удовлетворения.
Вообще, этот вопрос многократно обсуждался. С примерами. Первые же результаты поиска:
В phpmyadmin (или в другом менеджере БД сайта) сделайте запрос:
Если появится список таких непривязанных комментариев — можете их удалить вручную (по одному) или попытаться удалить командой:
, где ХХХ — это ID-шник удаленного топика, от которого остались висеть комментарии (его номер Вы можете увидеть в таблице вывода предыдущего запроса — у «висящих» комментариев target_id обычно один и тот же, вот его и надо указывать в ХХХ).
Если было удалено несколько топиков, то у «висящих» комментариев будут несколько разных target_id. Следовательно нужно сделать несколько запросов delete…
Если среди «висящих» комментариев есть вложенные, то удалить сразу все такие комментарии одной командой не получится. В таком случае можно вывести список:
и удалять вручную по несколько штук, начиная с последнего комментария (обратная сортировка по comment_id).
Внимание: delete выполняйте на СВОЙ страх и риск. Если Вы хорошо не разбираетесь в MySQL, то нечаянно этой командой Вы можете грохнуть БД сайта.
Сам вначале разбирался около часа, потом (если возникает) делаю за пару минут.
потом в header перед
добавь
далее создай файл leftbar.tpl и туда пиши что хочешь
В экшенах ищем: $this->Viewer_AddBlocks('right',array('comments','blogs','tags'));
Вот это самое и правим до полного удовлетворения.
Вообще, этот вопрос многократно обсуждался. С примерами. Первые же результаты поиска:
1.
2.
3.
И так далее. Все очень подробно и понятно.