Страница «Новые сообщения» с текстами сообщений

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Страница «Новые сообщения» с текстами сообщений

Сообщение Nekstati »

На странице «Новые сообщения» отображаются заголовки тем, содержащих новые сообщения. А мне нужно, чтобы отображались не только заголовки, но и сами тексты сообщений — последнего из каждой темы. В принципе отображение сообщений включается легко — добавлением параметра &sr=posts к ссылке search.php?search_id=newposts. Пример. Такая ссылка выводит все новые сообщения, считая с момента последнего визита юзера.

Вопрос: как сделать, чтобы отображались не все новые сообщения, а только одно самое последнее сообщение для каждой темы?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Сообщение Nekstati »

А вот и ответ.

Открыть search.php

Найти около строки 347

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

				$show_results = (request_var('sr', 'topics') == 'posts') ? 'posts' : 'topics';

Заменить на

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

				$show_results = 'posts';
Найти около строки 356

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

				if ($show_results == 'posts')
				{
					$sql = 'SELECT p.post_id
						FROM ' . POSTS_TABLE . ' p
						WHERE p.post_time > ' . $user->data['user_lastvisit'] . "
							$m_approve_fid_sql
							" . ((sizeof($ex_fid_ary)) ? ' AND ' . $db->sql_in_set('p.forum_id', $ex_fid_ary, true) : '') . "
						$sql_sort";
					$field = 'post_id';
				}
Заменить на

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

				if ($show_results == 'posts')
				{
					$sql = 'SELECT p.post_id
						FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t
						WHERE p.post_time > ' . $user->data['user_lastvisit'] . '
							AND p.post_id = t.topic_last_post_id
							' . $m_approve_fid_sql . '
							' . ((sizeof($ex_fid_ary)) ? ' AND ' . $db->sql_in_set('p.forum_id', $ex_fid_ary, true) : '') . "
						$sql_sort";
					$field = 'post_id';
				}

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