Notice: Undefined index: status in /home/exbb/exbb.info/www/community/topic.php on line 488 Notice: Undefined index: title in /home/exbb/exbb.info/www/community/topic.php on line 488 Notice: Undefined index: www in /home/exbb/exbb.info/www/community/topic.php on line 490 Notice: Undefined index: www in /home/exbb/exbb.info/www/community/topic.php on line 490 Notice: Undefined index: www in /home/exbb/exbb.info/www/community/topic.php on line 490 Notice: Undefined index: www in /home/exbb/exbb.info/www/community/topic.php on line 490 Notice: Undefined index: www in /home/exbb/exbb.info/www/community/topic.php on line 491 Notice: Undefined index: name in /home/exbb/exbb.info/www/community/topic.php on line 493 Notice: Undefined index: avatar in /home/exbb/exbb.info/www/community/topic.php on line 496 Notice: Undefined index: avatar in /home/exbb/exbb.info/www/community/topic.php on line 496 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 499 Notice: Undefined index: joined in /home/exbb/exbb.info/www/community/topic.php on line 500 Notice: Undefined index: location in /home/exbb/exbb.info/www/community/topic.php on line 501 Notice: Undefined index: name in /home/exbb/exbb.info/www/community/topic.php on line 502 Notice: Undefined index: icq in /home/exbb/exbb.info/www/community/topic.php on line 505 Notice: Undefined index: icq in /home/exbb/exbb.info/www/community/topic.php on line 506 Notice: Undefined index: aim in /home/exbb/exbb.info/www/community/topic.php on line 507 Notice: Undefined index: status in /home/exbb/exbb.info/www/community/topic.php on line 517 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: posts in /home/exbb/exbb.info/www/community/topic.php on line 550 Notice: Undefined index: showemail in /home/exbb/exbb.info/www/community/topic.php on line 557 Notice: Undefined index: visible in /home/exbb/exbb.info/www/community/topic.php on line 593 ExBB Community :: Неправильный переход на последнюю страницу
ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


 Страниц (2): [1] 2 »   

> Описание: при наличии прикрепленных сообщений
cynical2207
Отправлено: 25 августа 2013 — 05:30
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 16
Дата рег-ции: Авг. 2013  
Репутация: 0




В теме есть прикреплённое сообщение, если в разделе содержащем эту тему нажать "последняя страница" тема открывается где-то с середины, а не на последней странице.
(Добавление)
Версия PHP:5.2.17-0.dotdeb.0
Версия движка: ExBB FM 1.0 Final
 
 
Отправлено: 25 августа 2013 — 09:39
Post Id


Пользователь



Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A  
Репутация: 0




Что значит "прикреплённое сообщение"?
 
 
cynical2207
Отправлено: 25 августа 2013 — 09:46
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 16
Дата рег-ции: Авг. 2013  
Репутация: 0




NordWest, сообщение, которое всегда висит первым в теме, на каждой странице.
 
 
Отправлено: 25 августа 2013 — 10:02
Post Id


Пользователь



Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A  
Репутация: 0




Понял. Посмотрю на досуге...
 
 
Отправлено: 25 августа 2013 — 13:34
Post Id


Пользователь



Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A  
Репутация: 0




Не могу пока повторить вашу ситуацию - сложно создать более 60 страниц. Радость
При 20 страницах вроде всё ОК... Однако
(Добавление)
Создал 63 страницы - проблема не проявилась. Не знаю чем вам помочь, т.к. получается, что это не ошибка движка.
 
 
BON
Отправлено: 25 августа 2013 — 19:06
Post Id



Администратор
ExBB Team
Admin


Покинул форум
Сообщений всего: 2762
Дата рег-ции: Нояб. 2010  
Откуда: СССР/Белгород
Репутация: 72




cynical2207 пишет:
В теме есть прикреплённое сообщение, если в разделе содержащем эту тему нажать "последняя страница" тема открывается где-то с середины, а не на последней странице.

возможно из-за того, что сообщение которое прикреплено размещалось где то на середине страницы
 
 
cynical2207
Отправлено: 26 августа 2013 — 03:53
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 16
Дата рег-ции: Авг. 2013  
Репутация: 0




BON пишет:
возможно из-за того, что сообщение которое прикреплено размещалось где то на середине страницы


Видимо нет. Попробовал следующее: скопировал весь бб-код из верхнего сообщения, удалил его, создал новое сообщение со скопированным кодом (т.е. с настоящими датой/временем), прикрепил. В результате то же самое, переходит именно на 56 страницу из 62.
 
 
Отправлено: 26 сентября 2013 — 17:54
Post Id


Пользователь



Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A  
Репутация: 0




Проблема в коде есть - вылезла и на моём форуме.
Вызвана тем, что при расчёте номера последней страницы не учитываются прикреплённые посты. Пока думаю как поправить.
 
 
1Bot
Отправлено: 26 сентября 2013 — 18:43
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




NordWest пишет:
Проблема в коде есть - вылезла и на моём форуме.
Вызвана тем, что при расчёте номера последней страницы не учитываются прикреплённые посты. Пока думаю как поправить.


Совершенно верно, при расчете количества страниц (P) учитывается только общее количество постов в теме (N) и количество сообщений на странице (n), которое задается в профиле у каждого пользователя
CODE:
P = 1 + floor( N / n )

где функция floor() - округление в меньшую сторону

При наличии (m) прикрепленных сообщений в теме (отображаются вверху на каждой странице) количество страниц правильнее считать по формуле
CODE:
P1 = 1 + floor( (N - m) / (n - m) )


Пример
CODE:
58 сообщений, 3 прикрепленных, 15 сообщений на странице
N = 58, m = 3, n = 15

P = 1 + floor( N / n ) = 1 + floor( 58 / 15 ) = 1 + floor( 3,866666666666667 ) = 1 + 3 = 4

P1 = 1 + floor( (N - m) / (n - m) ) = 1 + floor( (58 - 3) / (15 - 3) ) =
= 1 + floor( 55 / 13 ) = 1 + floor( 4,230769230769231 ) = 1 + 4 = 5


P.S. Обязательно нужно делать проверку что n > m!
 
 
Отправлено: 26 сентября 2013 — 18:59
Post Id


Пользователь



Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A  
Репутация: 0




1Bot пишет:
которое задается в профиле у каждого пользователя
CODE:P = 1 + floor( N / n )
где функция floor() - округление в меньшую сторону
В коде используется функция ceil которая округляет в большую сторону
CODE:
ceil($totalposts/intval($fm->user['posts2page']))

но суть от этого остаётся та же.

1Bot пишет:
При наличии (m) прикрепленных сообщений в теме (отображаются вверху на каждой странице)
Вот с получением количества прикреплённых сообщений и есть пока главная засада. Я нигде на форуме не нашел, что бы отображалось количество (может конечно плохо искал, есть такой косяк - невнимателен бываю).
В базе то же вроде нет места, где бы хранилась конкретная цифра. Похоже придётся перебирать все посты, искать в них прикреплённые и плюсовать. Но процедура то получается ресурсоёмкая и по сути лишняя - нужно эту цифру в базе сразу хранить, а не пересчитывать каждый раз.
 
 
1Bot
Отправлено: 26 сентября 2013 — 19:08
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




NordWest пишет:
Вот с получением количества прикреплённых сообщений и есть пока главная засада. Я нигде на форуме не нашел, что бы отображалось количество (может конечно плохо искал, есть такой косяк - невнимателен бываю).


Посмотрите на структуру файла с информацией о сообщениях темы в первом сообщении темы есть массив
CODE:
[pinmsg] => Array // массив прикрепленных к верху сообщений в порядке вывода


соответственно
CODE:
m = count( $pinmsg );
 
 
CAB
Отправлено: 26 сентября 2013 — 19:11
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 629
Дата рег-ции: Февр. 2011  
Откуда: Москва
Репутация: 30




1Bot, NordWest, Вы не уловили суть проблемы. Ну это понятно, я тоже потратил кучу времени пока не понял. Проблема не в учёте приклеплённых сообщений, они учитываются. Проблема в том, что если прикреплённое сообщение старше искомого, то одну страницу оно не занимает - оно там уже и так было изначально.
Посмотрите мои наработки http://exbb.info/community/topic...=6&topic=368
 
 
Отправлено: 26 сентября 2013 — 19:11
Post Id


Пользователь



Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A  
Репутация: 0




1Bot пишет:
Посмотрите на структуру файла с информацией о сообщениях темы в первом сообщении темы есть массив
Я же говорю - невнимателен. Пропустил. Однако
Сейчас попробую реализовать предложенный вами алгоритм.
(Добавление)
CAB
Обязательно посмотрю и ваши наработки, но похоже уже завтра...

PS: а чего никто топикстартера не ткнул в темы, где эта проблема обсуждалась? Я думал это новый глюк, а оказывается это уже давняя головная боль.
 
 
CAB
Отправлено: 26 сентября 2013 — 19:32
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 629
Дата рег-ции: Февр. 2011  
Откуда: Москва
Репутация: 30




NordWest пишет:
а чего никто топикстартера не ткнул в темы, где эта проблема обсуждалась? Я думал это новый глюк, а оказывается это уже давняя головная боль
Лично у меня просто нет решений для ExBB FM 1.0 Final - те наработки для RC1, которые кому-то надо адаптировать для финала.
 
 
Отправлено: 26 сентября 2013 — 19:41
Post Id


Пользователь



Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A  
Репутация: 0




Ясно, попробую адаптировать в меру сил и возможностей.
(Добавление)
Применил только алгоритм предложенный 1Bot - вроде правильно работает.

Открываем файл forums.php в котором ищем

CODE:
$totalpages = ceil($totalposts/intval($fm->user['posts2page']));


которую меняем кодом

CODE:
if ($totalposts > $fm->user['posts2page'])
{
$threads = $fm->_Read('forum'.$forum_id.'/'.$topic_id.'-thd.php',FALSE);
$threads_keys = array_keys($threads);
$f_thread = $threads [$threads_keys[0]];
$pinmsg = (isset($f_thread['pinmsg'])) ? count( $f_thread['pinmsg'] ) : 0 ;
$totalpages = 1 + floor(($totalposts-$pinmsg)/(intval($fm->user['posts2page'])-$pinmsg));
}
else {$totalpages = ceil($totalposts/intval($fm->user['posts2page']));}


Код вероятно не идеален. Скорее всего можно было проще получить количество прикреплённых постов, но главное что я так или иначе до этой цифры добрался.
У меня работает верно, но у меня форум крохотный и постов мало....
 
 
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Решение проблем »

> Похожие темы: Неправильный переход на последнюю страницу
Темы Форум Информация о теме Обновление
Доработка стандартного мода объявлений на форуме
Позволяет вывести заголовки нескольких новостей на главную страницу и т п.
Модификации и дополнения Ответов: 58
Автор темы: yura3d
31 марта 2017 — 16:54
Автор: Lord Dewl
Дополнение: Пагинатор как на шкурке Invision2 от SkinStore
Изменение внешнего вида ссылок перехода по страницам
Модификации и дополнения Ответов: 38
Автор темы: electron
22 января 2012 — 16:00
Автор: BON
Не работает админпанель
Установил последнюю версию форума. Не работает админпанель
Решение проблем Ответов: 9
Автор темы: FlyRus
2 июня 2013 — 18:08
Автор: electron
Переход к последнему посту
Наблюдается глюк с переходом на последний пост.
Решение проблем Ответов: 9
Автор темы: Zeg
1 апреля 2009 — 19:10
Автор: yura3d
Перспективы дальнейшего развития
Отказ от ExBB FM 1.0 и переход на ExBB FM 1.1 и ExBB 2.0
Новости Ответов: 217
Автор темы: yura3d
24 июля 2012 — 16:59
Автор: electron
 



Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0932]     [ ]