Post numbers для phpBB3 - Нумерация сообщений

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
***Blaze***
phpBB 2.0.7
Сообщения: 583
Стаж: 19 лет 8 месяцев
Откуда: Данков
Благодарил (а): 57 раз
Поблагодарили: 25 раз

Сообщение ***Blaze*** »

rxu писал(а):как у вас вообще мод работает, если $postrow[$i]['post_id'] в коде отсутствует в принципе?
Почему присутствует:

Код: Выделить всё

   $post_number = $i + $start;
   $post_number = $post_number + 1;
   $post_id = $postrow[$i]['post_id'];
AD писал(а):первое сообщение #23 (оно закреплено)
второе сообщение #1
третье сообщение #24

и так далее 25, 26, 27...
У меня так же. Вот можете посмотреть http://mstyle.z16.ru/forum/ftopic278.html
Мой сайт http://ublaze.ru/
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Сообщение rxu »

***Blaze*** писал(а):Почему присутствует:
Понятно, что в моде присутствует. А где присваивается значение самому $postrow[$i]['post_id'] во viewtopic.php? Полюбопытствуйте.

Добавлено спустя 4 минуты 52 секунды:
rxu писал(а):А посему, что-то всё же на вашей стороне, я так думаю.
Хотя, кажется, вы правы. Ещё раз перепроверю.
Изображение
Аватара пользователя
***Blaze***
phpBB 2.0.7
Сообщения: 583
Стаж: 19 лет 8 месяцев
Откуда: Данков
Благодарил (а): 57 раз
Поблагодарили: 25 раз

Сообщение ***Blaze*** »

rxu
viewtopic.php
Find

Код: Выделить всё

// Output the posts
$first_unread = $post_unread = false;
for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
{
Add after

Код: Выделить всё

	$post_number = $i + $start;
	$post_number = $post_number + 1;
	$post_id = $postrow[$i]['post_id'];
Мой сайт http://ublaze.ru/
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Сообщение rxu »

***Blaze***
Вы не поняли. Чему равно $postrow[$i]['post_id'] на каждом шаге итерации? Откуда оно берётся?

AD
Действительно. Поправил пост, смотрите.
Изображение
Аватара пользователя
***Blaze***
phpBB 2.0.7
Сообщения: 583
Стаж: 19 лет 8 месяцев
Откуда: Данков
Благодарил (а): 57 раз
Поблагодарили: 25 раз

Сообщение ***Blaze*** »

$postrow[$i]['post_id'] равно $post_id. Берется из 'POST_ID' => $post_id
Мой сайт http://ublaze.ru/
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Сообщение rxu »

***Blaze*** писал(а):Берется из 'POST_ID' => $post_id
Такого кода нет. Есть

Код: Выделить всё

'POST_ID'			=> $row['post_id'],
Изображение
Аватара пользователя
***Blaze***
phpBB 2.0.7
Сообщения: 583
Стаж: 19 лет 8 месяцев
Откуда: Данков
Благодарил (а): 57 раз
Поблагодарили: 25 раз

Сообщение ***Blaze*** »

rxu писал(а):Такого кода нет.
Правильно его нет, так как я добавил его:
Find

Код: Выделить всё

		'POST_DATE'			=> $user->format_date($row['post_time']),
		'POST_SUBJECT'		=> $row['post_subject'],
		'MESSAGE'			=> $message,
Add after

Код: Выделить всё

		'POST_NUMBER' => $post_number,
		'POST_ID' => $post_id,
Мой сайт http://ublaze.ru/
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Сообщение rxu »

Ладно, дальше переубеждать вас не буду.
Код для совместимости со своим модом я привёл и поправил выше.
Изображение
Аватара пользователя
***Blaze***
phpBB 2.0.7
Сообщения: 583
Стаж: 19 лет 8 месяцев
Откуда: Данков
Благодарил (а): 57 раз
Поблагодарили: 25 раз

Сообщение ***Blaze*** »

Я внес изменения вo viewtopic.php ваш измененный код для совместимости, но её нет, получается идентично:
Найти:

Код: Выделить всё

// Output the posts
$first_unread = $post_unread = false;
for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
{
Добавить после:

Код: Выделить всё

   $post_number = $i + $start;
   $post_number = $post_number + 1;
   $post_id = $postrow[$i]['post_id'];
=

Найти:

Код: Выделить всё

$poster_id = $row['user_id'];
Добавить после:

Код: Выделить всё

   $post_id = $postrow[$i]['post_id'];
   $post_number = ($post_id == $topic_data['topic_first_post_id']) ? 1 : ($i + $start + 1);
Мой сайт http://ublaze.ru/
AD
phpBB 1.4.3
Сообщения: 86
Стаж: 18 лет 6 месяцев
Забанен: Бессрочно

Сообщение AD »

rxu писал(а):Просто если id поста равно id первого поста темы, то ему присваивается номер 1.
Так правильно, на посте ид 1 у второго поста, а закреплённый пост он с другой страницы. Поэтому и не у него ид 1.

Добавлено спустя 5 минут 13 секунд:
rxu писал(а):Попробуйте для совместимости с First post on every page следующий код:
Код

Код: Выделить всё

   $post_number = $i + $start; 
   $post_number = $post_number + 1; 
   $post_id = $postrow[$i]['post_id'];
удаляем.
Находим

Код: Выделить всё

	$poster_id = $row['user_id'];
и после добавляем

Код: Выделить всё

	$post_id = $postrow[$i]['post_id'];
	$post_number = ($post_id == $topic_data['topic_first_post_id']) ? 1 : ($i + $start + 1);
У меня все эти строчки есть. Я выполнил изменения, но всё осталось как было первоначально закреплённое сообщение #254, далее пошли сообщения #255, #256 и так далее...
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Сообщение rxu »

AD писал(а):У меня все эти строчки есть.
Какие все? Три строки мода удалили и две добавили в другом месте?
Изображение
AD
phpBB 1.4.3
Сообщения: 86
Стаж: 18 лет 6 месяцев
Забанен: Бессрочно

Сообщение AD »

rxu писал(а):Какие все? Три строки мода удалили и две добавили в другом месте?
Именно, то есть как вы и написали в поправке.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Сообщение rxu »

Н-да. Смотрите ещё раз.
Изображение
AD
phpBB 1.4.3
Сообщения: 86
Стаж: 18 лет 6 месяцев
Забанен: Бессрочно

Сообщение AD »

rxu писал(а):Н-да. Смотрите ещё раз.
Всё работает отлично теперь! Спасибо!

Добавлено спустя 1 минуту 58 секунд:

rxu

Только теперь пишет так 1 сообщенее - #1 на первой странице.

Далее идут от 1 до 10 - #1...10, а на следующей опять как надо #1, а потом не c #11 (как надо) начинается, а перескакивает и пишет #12.

То есть теряется опять один пост и на каждой странице нумерация накручивается на одно сообщение.
Аватара пользователя
***Blaze***
phpBB 2.0.7
Сообщения: 583
Стаж: 19 лет 8 месяцев
Откуда: Данков
Благодарил (а): 57 раз
Поблагодарили: 25 раз

Сообщение ***Blaze*** »

AD, rxu сделал максимум совместимости мода First post on every page с модом Post numbers для phpBB3, так как идет противоречие (можно назвать и багом) в коде Post numbers для phpBB3, тоесть с первого сообщения к номеру прибавляется единица и т. д. rxu лишь присвоил topic_first_post_id (первому закрепленному сообщению) значение равное единице, но алгоритм номерации остался тот же и он (алгоритм) считает, на каждой последующей страницы темы, topic_first_post_id сообщением и "мысленно" прибавляет единицу, оставляя значение равное 1:
AD писал(а):на следующей опять как надо #1, а потом не c #11 (как надо) начинается, а перескакивает и пишет #12
Возможно можно это исправить, а скорее увы нет...
Мой сайт http://ublaze.ru/

Вернуться в «Бета-версии модов для phpBB 3.0.x»