Неправильно работает счетчик сообщений на форуме

#1 11 сентября 2016 в 20:34
Люди, доброго времени суток! Помогите, пожалуйста, справиться с проблемой. Никак не могу понять, в чем затык. С недавнего времени сайт выдает ошибку на форуме, а именно неправильно работает счетчик сообщений. Прилагаю скрины (см. прикрепленные файлы):
Иллюстрация
Иллюстрация

Последнее сообщение на форуме показывает некорректно.

Ссылка ---> www.roboshayka.ru/forum

Помогите, пожалуйста, решить проблему. Спасибо!
#2 12 сентября 2016 в 09:56
Приветствую, что нибудь, где-нибудь делали?
#3 12 сентября 2016 в 13:29
Сохраните файл \templates\ваш_шаблон\components\com_forum_list.tpl из своего шаблона, а потом замените его таким же файлом из дефолтного шаблона.
Результат сюда.
#4 13 сентября 2016 в 23:34


Сохраните файл \templates\ваш_шаблон\components\com_forum_list.tpl из своего шаблона, а потом замените его таким же файлом из дефолтного шаблона.
Результат сюда.

Ris

Заменил, результата нет.(
#5 14 сентября 2016 в 11:25
Mulsi,
Значит вы что-то сделали с базой.
Последние сообщения хранятся в таблице cms_forums в колонке last_msg вот в таком виде:
---
pubdate: 2013-09-04 18:54:53
id: 29
content_html: 'Геосинклиналь <strong>обогащает магматический монтмориллонит</strong>, что в общем свидетельствует о преобладании тектонических опусканий в это время. Углефикация характерна. Порода существенна. Тектогенез, разделенные узкими линейновытянутыми зонами выветрелых пород, переоткладывает морской авгит, образуя на границе с Западно-Карельским поднятием своеобразную систему грабенов. Ведущий экзогенный геологический процесс — субдукция ослабляет лакколит, так как совершенно однозначно указывает на существование и рост в период оформления палеогеновой поверхности выравнивания.'
author_nickname: Администратор
author_login: admin
thread_title: Пример темы
thread_id: 12
post_count: 1
lastpage: 1
thread_link: '<a href="/forum/thread12-1.html#29">Пример темы</a>'
user_link: '<a href="/users/admin" title="Администратор">Администратор</a>'
Потом они выводятся оттуда таким образом:
  1. $forum['last_msg_array'] = cmsCore::yamlToArray($forum['last_msg']);
Смотрите, что у Вас в колонке last_msg в форуме робошайка.
#6 14 сентября 2016 в 16:38

ПОМОГИТЕ! Ошибка на форуме.

Mulsi
Следующая тема с названием "Помогите" и подобными будет удалена без предупреждения. Кроме вас, тут решают проблемы и другие участники. А темы с подобными названиями не способствуют успешному поиску решений.

Внимательно читаем правила

Тема переименована.
#7 15 сентября 2016 в 22:27

Mulsi,
Значит вы что-то сделали с базой.

Ris
Вы правы, поле пустое. Причем оно не обновляется при создании ответа на форуме. В остальных колонках форума работает. Может ли это быть связано, например, с кол-вом сообщений в теме? И подскажите, пожалуйста, каким образом заполняется поле last_msg конкретного форума?
#8 16 сентября 2016 в 09:30
Mulsi,
\components\forum\model.php

  1. /**
  2.   * Кеширует массив последнего сообщения темы форума
  3.   * в таблицу cms_forums и cms_forum_threads
  4.   * @param int $forum_left_key
  5.   * @param int $forum_right_key
  6.   * @return bool
  7.   */
  8. public function cacheLastPost($forum_left_key, $forum_right_key) {
  9.  
  10. $post = $this->getForumLastPost($forum_left_key, $forum_right_key);
  11.  
  12. $yaml_post = $this->inDB->escape_string(cmsCore::arrayToYaml($post));
  13.  
  14. $this->inDB->query("UPDATE cms_forums SET last_msg = '{$yaml_post}' WHERE NSLeft = '$forum_left_key' AND NSRight = '$forum_right_key' LIMIT 1");
  15.  
  16. if(isset($post['thread_id'])){
  17.  
  18. $this->inDB->query("UPDATE cms_forum_threads SET last_msg = '{$yaml_post}', pubdate = '{$post['pubdate']}' WHERE id = '{$post['thread_id']}' LIMIT 1");
  19.  
  20. }
  21.  
  22. return true;
  23.  
  24. }
#9 16 сентября 2016 в 21:14
Понятно функция в файле 1 в 1 как в дефолтовой конфе Instant этой же версии. На всех остальных форумах таблица в БД обновляется, а в этом конкретном форуме, где куча сообщений, ничего не происходит…
#10 16 сентября 2016 в 21:25
Mulsi,

Админка — Настройки — Проверка деревьев.

Ошибки есть?
#11 16 сентября 2016 в 22:23
При попытке запуска проверки деревьев, сайт долго тупит и в 504 уходит, 504 Gateway Time-out
#13 19 сентября 2016 в 22:23
Запрос к БД:
  1. UPDATE cms_forums SET last_msg = '{1321564}' WHERE NSLeft = 2 AND NSRight = 3 LIMIT 1
сработал, значение в таблице добавилось. Запрос CHECK TABLE `cms_forums` показывает STATUS OK. Ремонтник деревьев пробовал, он показывает все деревья в порядке в таблице cms_forums. Может есть у кого какие мысли?
#14 20 сентября 2016 в 11:49

Может есть у кого какие мысли?

Mulsi
У кого то точно есть. smile
Если взялись за базу, проверяйте уж всё до конца. У вас Последнее сообщение не выводится только в " Робошайка", по крайней мере так видно. Для начала сделайте бекап базы, затем удалите этот форум (" Робошайка") и посмотрите что получится.
#15 24 сентября 2016 в 16:17
Решили проблему переносом тем с большим количеством сообщений в другой раздел форума — в архив. Создали новые темы, счетчик в разделе Робошайка заработал.
Итого, проблема все-таки была с избыточным количеством сообщений не форуме. Всем спасибо за советы.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.