Количество сообщений для определенного поста, а не топика!
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
Piercer
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 18 лет 4 месяца
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
Количество сообщений для определенного поста, а не топика!
Поискал, не обнаружил, задаю вопрос:
- есть, например, тема на форуме с 10-тю фотками в каждом сообщении
- тема отображается, сами понимаете, долго и некрасиво (10 сообщений по умолчанию * 10 фоток = 100 фоток = 3 минуты загрузки)
Требуется: вручную выставить для этой темы кол-во сообщений на странице - "1". И только для этой темы. Например, так реализована функция "Модерация темы" - можно поставить свое кол-во сообщений на странице. Но эта функция реализована для удобства модератора, т.е. только для модерации. А вот как бы сделать так, чтобы можно и для пользователя назначить показывать 1 сообщение на странице?
Еще раз подчеркиваю, что 1 сообщение для конкретной темы, а не для всего раздела форума или ветки форума. Спасибо!
Добавлено спустя 1 минуту 48 секунд:
Попытаюсь поставить мод http://www.phpbb.com/community/viewtopi ... ge+profile - но может быть кто-то другое подскажет?
Добавлено спустя 2 минуты 36 секунд:
Дело в том, что этот мод - Post Per Page - только для юзера. Т.е. не модератор и не админ, а сам юзер вручную может выставлять для себя, какое кол-во сообщений на странице ему показываться будет. А вот как бы для всех определить, причем только для конкретного одного сообщения - хз. Спасибо.
-
Nekstati
- Поддержка

- Сообщения: 3365
- Стаж: 17 лет 6 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 1454 раза
Re: Количество сообщений для определенного поста, а не топик
2. Или почему бы не постить по 1-2-3 фотки в каждом сообщении?
3. Указанный вами мод не годится, он меняет число постов на страницу во всех темах сразу.
4. Сделать-то оно можно, но сложно… Точно не скажу, но, по-моему, такого мода нет.
-
MAzZY
- Бывший член :)
- Сообщения: 2925
- Стаж: 21 год 4 месяца
- Благодарил (а): 79 раз
- Поблагодарили: 69 раз
- Забанен: Бессрочно
Re: Количество сообщений для определенного поста, а не топик
-
Палыч
- Former team member
- Сообщения: 9683
- Стаж: 20 лет 4 месяца
- Откуда: Питер
- Благодарил (а): 3 раза
- Поблагодарили: 454 раза
Re: Количество сообщений для определенного поста, а не топик
Думаю, такая тема у него не одна...
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
-
MAzZY
- Бывший член :)
- Сообщения: 2925
- Стаж: 21 год 4 месяца
- Благодарил (а): 79 раз
- Поблагодарили: 69 раз
- Забанен: Бессрочно
Re: Количество сообщений для определенного поста, а не топик
-
MIT
- Former team member
- Сообщения: 2500
- Стаж: 17 лет 6 месяцев
- Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
- Благодарил (а): 3 раза
- Поблагодарили: 351 раз
Re: Количество сообщений для определенного поста, а не топик
Добавлено спустя 1 час 59 минут 7 секунд:
Re: Количество сообщений для определенного поста, а не топика!
Piercer, вот тебе мод. Надеюсь я правильно понял чего тебе хоцца (а то мне не долго и переврать всё
Добавлено спустя 1 минуту 36 секунд:
Re: Количество сообщений для определенного поста, а не топика!
На то как оно работает можно глянуть тут: http://yuri.mittest.ru/viewtopic.php?f=2&t=9
Добавлено спустя 55 секунд:
Re: Количество сообщений для определенного поста, а не топика!
У каждого топика появилась персональная настройка, её можно задавать при создании темы и при редактировании первого поста.
Добавлено спустя 48 секунд:
Re: Количество сообщений для определенного поста, а не топика!
И это значение не может быть больше чем установленное в админке, что бы юзеры не баловались.
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
Re: Количество сообщений для определенного поста, а не топик
оперативно
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
-
Piercer
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 18 лет 4 месяца
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
Re: Количество сообщений для определенного поста, а не топик
не найду никак в коде, где эта настройка и установка? в админке где это поле должно появиться плиз! спсИ это значение не может быть больше чем установленное в админке, что бы юзеры не баловались.
Re: Количество сообщений для определенного поста, а не топик
MITMIT писал(а):mod_perPage.txt
Поставил на чистый 3012.
1. При нажатии на ярлычок "Перейти к последнему сообщению" кидает почему-то на первую страницу темы с ошибкой. Плюс, кодировка на этой странице сбита. Стоит перелистать туда-обратно и ошибка исчезает, кодировка восстанавливается.
2. После отправки сообщения аналогично редиректит на первую страницу темы с такой же ошибкой и сбоем кодировки. Исчезает так же.
3. После установки количество страниц в многостраничных темах многократно увеличилось с прежним количеством постов на странице. Т.е. добавились пустые страницы в темах.
Код ошибки:
Код: Выделить всё
[phpBB Debug] PHP Warning: in file [ROOT]/viewtopic.php on line 411: Division by zero
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4752: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4754: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4755: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4756: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887) Код: Выделить всё
ALTER TABLE `phpbb_topics` ADD posts_per_page MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0-
Татьяна5
- Поддержка

- Сообщения: 13159
- Стаж: 15 лет 1 месяц
- Благодарил (а): 236 раз
- Поблагодарили: 3750 раз
Re: Количество сообщений для определенного поста, а не топик
Код: Выделить всё
$posts_per_page = ($topic_data['posts_per_page']>0) ? min($config['posts_per_page'], $topic_data['posts_per_page']) : $topic_data['posts_per_page'];Код: Выделить всё
$posts_per_page = ($topic_data['posts_per_page']>0) ? min($config['posts_per_page'], $topic_data['posts_per_page']) : $config['posts_per_page'];Re: Количество сообщений для определенного топика/темы
Нашел ещё один баг. При выдаче результата по search.php("Ваши сообщения", "Активные темы" и т.д.) аналогично в многостраничных темах прибавилось пустых страниц.
Т.е. необходимо повторить правку viewforum.php для search.php
В результате имеем:
Код: Выделить всё
ALTER TABLE `phpbb_topics` ADD posts_per_page MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT 0Find
Код: Выделить всё
$forum_id = (int) $topic_data['forum_id'];Код: Выделить всё
$posts_per_page = ($topic_data['posts_per_page']>0) ? min($config['posts_per_page'], $topic_data['posts_per_page']) : $config['posts_per_page'];Код: Выделить всё
$start = floor(($topic_data['prev_posts']) / $config['posts_per_page']) * $config['posts_per_page'];Код: Выделить всё
$start = floor(($topic_data['prev_posts']) / $posts_per_page) * $posts_per_page;Код: Выделить всё
$start = ($start < 0) ? 0 : floor(($total_posts - 1) / $config['posts_per_page']) * $config['posts_per_page'];Код: Выделить всё
$start = ($start < 0) ? 0 : floor(($total_posts - 1) / $posts_per_page) * $posts_per_page;Код: Выделить всё
$pagination = generate_pagination(append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id" . ((strlen($u_sort_param)) ? "&$u_sort_param" : '') . (($highlight_match) ? "&hilit=$highlight" : '')), $total_posts, $config['posts_per_page'], $start);Код: Выделить всё
$pagination = generate_pagination(append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id" . ((strlen($u_sort_param)) ? "&$u_sort_param" : '') . (($highlight_match) ? "&hilit=$highlight" : '')), $total_posts, $posts_per_page, $start);Код: Выделить всё
'PAGE_NUMBER' => on_page($total_posts, $config['posts_per_page'], $start),Код: Выделить всё
'PAGE_NUMBER' => on_page($total_posts, $posts_per_page, $start),Код: Выделить всё
$sql_limit = $config['posts_per_page'];Код: Выделить всё
$sql_limit = $posts_per_page;Код: Выделить всё
if ($start + $config['posts_per_page'] > $total_posts)Код: Выделить всё
if ($start + $posts_per_page > $total_posts)Код: Выделить всё
$sql_limit = min($config['posts_per_page'], max(1, $total_posts - $start));Код: Выделить всё
$sql_limit = min($posts_per_page, max(1, $total_posts - $start));Код: Выделить всё
$last_page = ((floor($start / $config['posts_per_page']) + 1) == max(ceil($total_posts / $config['posts_per_page']), 1)) ? true : false;Код: Выделить всё
$last_page = ((floor($start / $posts_per_page) + 1) == max(ceil($total_posts / $posts_per_page), 1)) ? true : false;Find
Код: Выделить всё
'PAGINATION' => topic_generate_pagination($replies, $view_topic_url),Код: Выделить всё
'PAGINATION' => topic_generate_pagination2($replies, $view_topic_url, $row['posts_per_page']),Find
Код: Выделить всё
'PAGINATION' => topic_generate_pagination($replies, $view_topic_url),Код: Выделить всё
'PAGINATION' => topic_generate_pagination2($replies, $view_topic_url, $row['posts_per_page']),Find
Код: Выделить всё
// Store message, sync countersКод: Выделить всё
$posts_per_page = 0;
if ($mode == 'post' || ($mode == 'edit' && $post_id == $post_data['topic_first_post_id']))
{
if (isset($_POST['posts_per_page']))
{
$posts_per_page = (int)$_POST['posts_per_page'];
if ($posts_per_page < 0)
{
$error[] = $user->lang['POSTS_PER_PAGE_ERR1'];
}
else if ($posts_per_page > $config['posts_per_page'])
{
$error[] = $user->lang['POSTS_PER_PAGE_ERR2'];
}
}
}Код: Выделить всё
'post_approved' => (isset($post_data['post_approved'])) ? $post_data['post_approved'] : false,Код: Выделить всё
'posts_per_page' => $posts_per_page,Код: Выделить всё
// Start assigning vars for main posting page ...
$template->assign_vars(array(Код: Выделить всё
'SHOW_PPP_OPTION' => ($mode == 'post') || ($post_id == $post_data['topic_first_post_id']),
'POSTS_PER_PAGE' => (($mode == 'post') || ($post_id == $post_data['topic_first_post_id'])) ? ((isset($_POST['posts_per_page'])) ? (int)$_POST['posts_per_page'] : (int)$post_data['posts_per_page']) : false,Find
Код: Выделить всё
'topic_attachment' => (!empty($data['attachment_data'])) ? 1 : 0,Код: Выделить всё
'posts_per_page' => $data['posts_per_page'],Код: Выделить всё
'topic_attachment' => (!empty($data['attachment_data'])) ? 1 : (isset($data['topic_attachment']) ? $data['topic_attachment'] : 0),Код: Выделить всё
'posts_per_page' => $data['posts_per_page'],Find
Код: Выделить всё
function topic_generate_pagination($replies, $url)
{
global $config, $user;
// Make sure $per_page is a valid value
$per_page = ($config['posts_per_page'] <= 0) ? 1 : $config['posts_per_page'];Код: Выделить всё
function topic_generate_pagination($replies, $url)
{
// Make sure $per_page is a valid value
return topic_generate_pagination2($replies, $url, ($config['posts_per_page'] <= 0) ? 1 : $config['posts_per_page']);
}
function topic_generate_pagination2($replies, $url, $per_page)
{
global $config, $user;
// Make sure $per_page is a valid value
if ($per_page <= 0) $per_page = ($config['posts_per_page'] <= 0) ? 1 : $config['posts_per_page'];
Find
Код: Выделить всё
<!-- IF S_TYPE_TOGGLE -->Код: Выделить всё
<!-- IF SHOW_PPP_OPTION -->
<dl>
<dt><label for="posts_per_page">{L_POSTS_PER_PAGE}:</label></dt>
<dd><label for="posts_per_page"><input type="text" name="posts_per_page" id="posts_per_page" size="3" maxlength="3" value="{POSTS_PER_PAGE}" class="inputbox autowidth" /></label></dd>
</dl>
<!-- ENDIF -->Find
Код: Выделить всё
'POST_TOPIC_AS' => 'Статус создаваемой темы',Код: Выделить всё
'POSTS_PER_PAGE' => 'Сообщений на страницу',
'POSTS_PER_PAGE_ERR1' => 'Количество сообщений должно быть больше нуля (или нуль, для игнорирования параметра)',
'POSTS_PER_PAGE_ERR2' => 'Количество сообщений не может быть больше установленного администратором!',А так, очень полезный мод. Спасибо MITу!
Re: Количество сообщений для определенного поста, а не топик
Дебагер ругается на эту строчку при старте новой темы:
Код: Выделить всё
'POSTS_PER_PAGE' => (($mode == 'post') || ($post_id == $post_data['topic_first_post_id'])) ? ((isset($_POST['posts_per_page'])) ? (int)$_POST['posts_per_page'] : (int)$post_data['posts_per_page']) : false,Код: Выделить всё
[phpBB Debug] PHP Notice: in file [ROOT]/posting.php on line 1441: Undefined index: posts_per_page
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4752: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4754: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4755: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4756: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)-
Татьяна5
- Поддержка

- Сообщения: 13159
- Стаж: 15 лет 1 месяц
- Благодарил (а): 236 раз
- Поблагодарили: 3750 раз
Re: Количество сообщений для определенного поста, а не топик
Код: Выделить всё
'POSTS_PER_PAGE' => (($mode == 'post') || ($post_id == $post_data['topic_first_post_id'])) ? ((isset($_POST['posts_per_page'])) ? (int)$_POST['posts_per_page'] : (int)$post_data['posts_per_page']) : false,Код: Выделить всё
'POSTS_PER_PAGE' => (($mode == 'post') || ($post_id == $post_data['topic_first_post_id'])) ? ((isset($_POST['posts_per_page'])) ? (int)$_POST['posts_per_page'] : (int)$data['posts_per_page']) : false,Re: Количество сообщений для определенного поста, а не топик
Код: Выделить всё
[phpBB Debug] PHP Notice: in file [ROOT]/posting.php on line 1441: Undefined variable: data
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4752: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4754: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4755: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4756: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)Спасибо!

