Перейти к контенту
  • 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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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