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! |