Перейти к контенту
  • 0

Автор последнего сообщения отображается как гость


fetxp

Вопрос

Авторы всех последних сообщений в списке отображаются как Гость. Если кто-то добавит сообщение, то показывается реальный автор. Если через админцентр сделать синхронизацию тем, то вновь последние авторы отображаются как гости. Подскажите как победить эту проблему.

 

Обновлялся с клиентцентра, последняя версия IP.Board 3.3.4

Изменено пользователем fetxp
Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
У всех тем или только у скрытых? Я пробовал, вроде только у скрытых тем такая проблема (у старых тем, после обновления до 3.3), так как структура базы данных опять изменилась (уже задолбали).
Ссылка на комментарий
Поделиться на других сайтах

  • 0

У всех тем :(

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Вроде оно: http://community.invisionpower.com/resources/bugs.html/_/ip-board/inconsistent-data-in-topic-feed-block-r38168

Порекомендовали провести синхронизацию тем / сообщений (видимо в Пересчёте и обновлении).

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Как раз таки после синхронизации такая ж и получилась. После проведения все последние авторы тоже попадают в Гости

 

Как раз таки после синхронизации такая ж и получилась. После проведения все последние авторы тоже попадают в Гости

 

P.S.: У меня практически такая же проблема

 

 

и сходные во всем симптомы. Только решения там так и нет.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Решение я нашел на трекере: http://community.inv...t-in-vnc-r37726

Файл /admin/applications/forums/sources/classes/topics.php

 

Ищем:

$last_poster_name = $last_post['members_display_name'] ? $last_post['members_display_name'] : $last_post['archive_author_name'];

 

Заменяем на:

$last_poster_name = $last_post['members_display_name'] ? $last_post['members_display_name'] : $last_post['author_name'];

 

Но это я делал для версии 3.3.3, до версии 3.3.4 я еще не обновлялся.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
К сожалению не помогло. Возожно проблема кроется где-то глубже, возможно в самой базе, она у нас очень старая и пережила кучу версий и обновлений.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

У меня база тоже старая, еще начинал со 2-х версий.

Может быть надо после изменений в коде сделать очистку кеша и пересчет постов или тем.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Кстати говоря, вы стили сверяли? Возьмите стандартный стиль IPB и сверяйте со своим (каждый шаблон поочерёдно).

Только сначала попробуйте на стандартном стиле IPB посмотреть есть ли ошибка, может проблема не в этом.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

в таблице ibf_topics поле last_poster_name указано как "Гость", хотя last_poster_id указано верно

происходит такое после перекеширования или после скрытия, удаления постов модератором

 

Выводится, соответственно, "Гость" как последний постивший. У кого-то есть такие симптомы? Как бороться?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

решил сначала посмотреть немного сам

 

за синхронизацию тем с админки отвечает

admin/applications/core/modules_admin/tools/rebuild.php

 

В котором видно, что для синхронизации подключается модуль модерации

admin/applications/forums/sources/classes/moderate.php

 

Который в свою очередь подключает работу с топиками

admin/applications/forums/sources/classes/topics.php

 

Функция public function rebuildTopic( $tid ) класса app_forums_classes_topics. Находится в районе 271 строки.

В этой функции есть проверка: в архиве ли топик

У меня получилось почему-то: если топик в архиве, то должно правильно обрабатывать имя последнего постившего в тему.

А если нет, то имя ставится гостевое.

 

добавил у себя после строки (371):

$last_post = array_pop( $_post );

 

вот такую:

$last_poster_name = $last_post['members_display_name'] ? $last_post['members_display_name'] : $last_post['author_name'];

 

P.S. не проверял будет ли нормально отображаться имя последнего разместившего ответ после действий модераторов, думаю должно

Ссылка на комментарий
Поделиться на других сайтах

  • 0

если бы у меня так там было - я бы написал

а у меня получилось, что в дальнейшем апдейте базы есть "'last_poster_name' => $_last_poster_name,"

но сама $_last_poster_name не указана

это что касается не архивного

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Да, действительно, во второй части условия для не архивных тем не определяется переменная $last_poster_name. Я что-то смотрел в первой части, где архивы. Изменено пользователем siv1987
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Это же давно подтвержденный баг.

 

находим второе включение

 

 

$last_poster_name = $last_post['members_display_name'] ? $last_post['members_display_name'] : $last_post['author_name'];

 

и перед ним ставим

 

$_last_poster_name = $last_poster_name ? $last_poster_name : ( $pcount > 0 ? $this->lang->words['global_guestname'] : $first_poster_name );

 

http://community.inv...t-in-vnc-r37726

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.