View all posts in Topic
View all posts in Topic
rxu, там событий выше нужной строки нет
View all posts in Topic
Татьяна5, просто неясно, почему именно такое место расположения
Ощущение, что случайно выбрано, тем более, что $config['posts_per_page'] первый раз встречается выше, в строке 366.
Давайте посмотрим на выбор места получше, чтобы и для других задач было применимо.
Код: Выделить всё
// Make sure $start is set to the last page if it exceeds the amountДавайте посмотрим на выбор места получше, чтобы и для других задач было применимо.
- HAMMER663
- Сообщения: 123
- Зарегистрирован: 22 янв 2014, 09:23
- Откуда: Москва
- Github repo: https://github.com/HAMMER663
View all posts in Topic
Вот в эту функцию validate_start нельзя событие как-то добавить? Конечно это конкретно под данный случай. В общем я пока еще не до конца разобрался с этими событиями 
View all posts in Topic
Пока смотрю, может, и без доп. события как-то обойтись. @pagination должно быть возможно подключить сервисом, тогда можно переопределить всё, что нужно, в существующих событиях.
View all posts in Topic
В config/services.yml добавьте
далее в список параметров конструктора в слушателе (соблюдаем тот же порядок, что и в конфиге)
и там же в конструкторе присваиваем
После этого в слушателе можно переопределять и сам $start, и его валидатор вот так
ну и параметр конфигурации тоже
Главное - выбрать правильное событие, возможно, core.viewtopic_get_post_data подойдет. Хотя, к этому моменту список постов уже отобран. Возможно, действительно нужно более раннее событие. Например, сразу после
Код: Выделить всё
- @pagination
Код: Выделить всё
\phpbb\pagination $paginationКод: Выделить всё
$this->pagination = $pagination;Код: Выделить всё
$start = $this->pagination->validate_start($start, $this->config['posts_per_page'], $total_posts);
Код: Выделить всё
$this->config['posts_per_page'] = 200;Код: Выделить всё
// Go ahead and pull all data for this topic
$sql = 'SELECT p.post_id
FROM ' . POSTS_TABLE . ' p' . (($join_user_sql[$sort_key]) ? ', ' . USERS_TABLE . ' u': '') . "
WHERE p.topic_id = $topic_id
AND " . $phpbb_content_visibility->get_visibility_sql('post', $forum_id, 'p.') . "
" . (($join_user_sql[$sort_key]) ? 'AND u.user_id = p.poster_id': '') . "
$limit_posts_time
ORDER BY $sql_sort_order";View all posts in Topic
Это из инструкции к модуrxu писал(а):Ощущение, что случайно выбрано
Подходит любое место с 405 (чуть выше рассчитывается $total_posts) до 604 строки (605 - генерируется пагинация)
Код: Выделить всё
$pagination->generate_template_pagination($base_url, 'pagination', 'start', $total_posts, $config['posts_per_page'], $start);964 строка, на пагинацию то событие не повлияет (или её можно заново сгенерировать в слушателе?)rxu писал(а):Например, сразу послеКод: Выделить всё
// Go ahead and pull all data for this topic $sql = 'SELECT p.post_id FROM ' . POSTS_TABLE . ' p' . (($join_user_sql[$sort_key]) ? ', ' . USERS_TABLE . ' u': '') . " WHERE p.topic_id = $topic_id AND " . $phpbb_content_visibility->get_visibility_sql('post', $forum_id, 'p.') . " " . (($join_user_sql[$sort_key]) ? 'AND u.user_id = p.poster_id': '') . " $limit_posts_time ORDER BY $sql_sort_order";
View all posts in Topic
Думаю можно генерировать, через объект pagination, о чем я писал выше.
View all posts in Topic
Если у кого-то есть возможность проверить это - проверьте плиз, я пока не смогу.
если сработает - сделаю ПР на событие.
если сработает - сделаю ПР на событие.
- HAMMER663
- Сообщения: 123
- Зарегистрирован: 22 янв 2014, 09:23
- Откуда: Москва
- Github repo: https://github.com/HAMMER663
View all posts in Topic
Дома вечером смогу проверить
- HAMMER663
- Сообщения: 123
- Зарегистрирован: 22 янв 2014, 09:23
- Откуда: Москва
- Github repo: https://github.com/HAMMER663
View all posts in Topic
Сервис - @pagination я вставил, но мод отказывается работать.