Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Переход на последнюю страницу темы

Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
romaamor
phpBB 3.0.3
Сообщения: 2157
Стаж: 12 лет 1 месяц
Откуда: Одесса
Благодарил (а): 623 раза
Поблагодарили: 144 раза

Переход на последнюю страницу темы

Сообщение romaamor »

Доброго времени суток.
Сейчас на форуме, если клацнуть на кнопку перейти к последнему сообщению кидает в самый конец темы -
image.png
Как сделать что бы перекидывало не к последнему сообщению а на последнюю страницу темы ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16384
Стаж: 18 лет
Откуда: Красноярск
Благодарил (а): 524 раза
Поблагодарили: 1749 раз

Re: Переход на последнюю страницу темы

Сообщение rxu »

Дописывать много кода в нескольких местах, или писать расширение.
Изображение
Аватара пользователя
romaamor
phpBB 3.0.3
Сообщения: 2157
Стаж: 12 лет 1 месяц
Откуда: Одесса
Благодарил (а): 623 раза
Поблагодарили: 144 раза

Re: Переход на последнюю страницу темы

Сообщение romaamor »

rxu писал(а): 27.04.2023 20:30 Дописывать много кода в нескольких местах, или писать расширение.
Ого, всё настолько плохо ?

Отправлено спустя 31 минуту 26 секунд:
Спросил в ChatGPT -
Как в коде форума PHPBB3 сменить функцию перейти к последнему сообщению темы на функцию перейти к последней страницы темы ?
Получил такой ответ -
Для смены функции перейти к последнему сообщению темы на функцию перейти к последней странице темы в PHPBB3 вам нужно внести изменения в файл viewtopic.php.

Откройте файл viewtopic.php и найдите следующий код:

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

if ($mode == 'lastview') {
    redirect("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&view=unread#$last_post_id");
}
Замените его на следующий код:

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

if ($mode == 'lastview') {
    $last_page = ceil(($topic_data['topic_replies'] + 1) / $board_config['posts_per_page']);
    redirect("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&page=$last_page#$last_post_id");
}
Сохраните файл и загрузите его на сервер.
Этот код заменит функцию перехода к последнему сообщению в теме на функцию перехода к последней странице темы. Теперь, когда пользователь нажимает на ссылку "перейти к последнему сообщению", он будет перенаправлен на последнюю страницу темы, где находится последнее сообщение.

Сам не проверял. Получится то что но советует для моих хотелок ?

Отправлено спустя 48 минут 31 секунду:
romaamor писал(а): 27.04.2023 21:24 Сам не проверял.
Проверил. Тупит ИИ. Нет там такого кода. :(
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5285
Стаж: 19 лет 4 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Переход на последнюю страницу темы

Сообщение Siava »

romaamor писал(а): 27.04.2023 22:12 Как в коде форума PHPBB3
Спрашивайте точнее номер версии движка.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
romaamor
phpBB 3.0.3
Сообщения: 2157
Стаж: 12 лет 1 месяц
Откуда: Одесса
Благодарил (а): 623 раза
Поблагодарили: 144 раза

Re: Переход на последнюю страницу темы

Сообщение romaamor »

Siava писал(а): 28.04.2023 1:09 Спрашивайте точнее номер версии движка.
Спросил. Всё равно нет точного совпадения.

Не подходит. У меня PHPBB3 версии 3.3.4
Для изменения функции перехода к последнему сообщению на переход к последней странице темы в PHPBB3 версии 3.3.4 вам нужно выполнить следующие шаги:

Откройте файл /includes/functions_display.php.


Найдите функцию generate_topic_review(), которая создает список сообщений в теме.

В этой функции найдите следующий код:

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

if ($forum_id != $row['forum_id'])
{
    $forum_id = $row['forum_id'];
    $forum_name = $row['forum_name'];
    $forum_link = "<a href=\"" . append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']) . "\">" . $forum_name . "</a>";
}

$last_post_id = $row['topic_last_post_id'];
$last_unread_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", POST_TOPIC_URL . "=$topic_id&amp;view=unread#$last_post_id");
Замените его на следующий код:

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

if ($forum_id != $row['forum_id'])
{
    $forum_id = $row['forum_id'];
    $forum_name = $row['forum_name'];
    $forum_link = "<a href=\"" . append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']) . "\">" . $forum_name . "</a>";
}

$last_post_id = $row['topic_last_post_id'];
$last_page = ceil(($row['topic_replies'] + 1) / $board_config['posts_per_page']);
$last_page_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", POST_TOPIC_URL . "=$topic_id&amp;page=$last_page#$last_post_id");

Сохраните файл.
Этот код заменит функцию перехода к последнему сообщению в теме на функцию перехода к последней странице темы. Теперь, когда пользователь нажимает на ссылку "перейти к последнему сообщению", он будет перенаправлен на последнюю страницу темы, где находится последнее сообщение.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16384
Стаж: 18 лет
Откуда: Красноярск
Благодарил (а): 524 раза
Поблагодарили: 1749 раз

Re: Переход на последнюю страницу темы

Сообщение rxu »

Не понимает ИИ этот код, путает переменные шаблона с константами :D
Изображение
Аватара пользователя
KEMnEP
phpBB 2.0.17
Сообщения: 1127
Стаж: 9 лет 1 месяц
Благодарил (а): 42 раза
Поблагодарили: 284 раза

Re: Переход на последнюю страницу темы

Сообщение KEMnEP »

Он только учится и php пока не его конёк. Сам признавался мне :D
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12457
Стаж: 12 лет 9 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2484 раза

Re: Переход на последнюю страницу темы

Сообщение Татьяна5 »

rxu писал(а): 28.04.2023 5:20 Не понимает ИИ этот код
Он вообще код не понимает. Любой и на любом языке. "Потолок" - выдать направление, в котором стоит подумать, по материалам из интернета
Впрочем, он и более-менее сложный запрос на русском не понимает, начинает нести ерунду по смыслу
Аватара пользователя
romaamor
phpBB 3.0.3
Сообщения: 2157
Стаж: 12 лет 1 месяц
Откуда: Одесса
Благодарил (а): 623 раза
Поблагодарили: 144 раза

Re: Переход на последнюю страницу темы

Сообщение romaamor »

Татьяна5 писал(а): 28.04.2023 9:08 Он вообще код не понимает.
Но упрямый. :D
>>>>>
Нет такого кода.
Если у вас нет кода, который я предложил вам в предыдущем ответе, то, возможно, вы используете другую версию PHPBB3 или у вас была произведена какая-то модификация кода.

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

Для PHPBB3 версии 3.3.4 код, который отвечает за функцию перехода к последнему сообщению в теме, находится в файле viewtopic.php.

Откройте файл viewtopic.php в текстовом редакторе.

Найдите следующий код:

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

if ($mode == 'lastpost')
{
    $redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'p=' . $topic_data['topic_last_post_id'] . '#p' . $topic_data['topic_last_post_id']);
    redirect($redirect_url);
}
Замените его на следующий код:

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

if ($mode == 'lastpost')
{
    $last_page = ceil(($topic_data['topic_replies'] + 1) / $board_config['posts_per_page']);
    $last_post_id = $topic_data['topic_last_post_id'];
    $redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", POST_TOPIC_URL . "=$topic_id&amp;page=$last_page#$last_post_id");
    redirect($redirect_url);
}
Сохраните файл.
Этот код заменит функцию перехода к последнему сообщению в теме на функцию перехода к последней странице темы. Теперь, когда пользователь нажимает на ссылку "перейти к последнему сообщению", он будет перенаправлен на последнюю страницу темы, где находится последнее сообщение.
Аватара пользователя
KEMnEP
phpBB 2.0.17
Сообщения: 1127
Стаж: 9 лет 1 месяц
Благодарил (а): 42 раза
Поблагодарили: 284 раза

Re: Переход на последнюю страницу темы

Сообщение KEMnEP »

Татьяна5 писал(а): 28.04.2023 9:08 Он вообще код не понимает
почему же. Если ему логично объяснить с доказательствами, он извиняется и запоминает. Больше эту ошибку не повторяя. Вопрос времени когда у него накопится достаточная база. В отличии от людей- компы не забывают сами. Можно запретить говорить, но не забудут😄
Пс: хотя сейчас столько "аналогов" развелось. Иногда стойкое чувство, что говорим о разных :roll:

Отправлено спустя 8 минут 17 секунд:
Пока даже продвинутые на уровне детей средней школы. Не вондуркиндов. В прочем, иногда похожи :D
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16384
Стаж: 18 лет
Откуда: Красноярск
Благодарил (а): 524 раза
Поблагодарили: 1749 раз

Re: Переход на последнюю страницу темы

Сообщение rxu »

romaamor писал(а): 28.04.2023 10:11 Замените его на следующий код
Код нерабочий. $last_page - переменная логического типа, а POST_TOPIC_URL не константа.
Изображение

Вернуться в «Поддержка phpBB 3.3.x»