Recent topics for JS - вывести последние темы форума phpBB на сайт

Небольшие заметки о html, css, sql, php

Модератор: Valery

Правила форума
Гость видит 250 символов 1 сообщения
Аватара пользователя
Valery
Без группы
Без группы
Сообщения: 22356
Зарегистрирован: 07.02.2005 10:00
Награды: 5
Из: Тридевятое царство

Обычная тема Recent topics for JS - вывести последние темы форума phpBB на сайт

Сообщение Valery »

Расширение позволяет вывести последние темы форума на любой странице сайта или форума.

Выбор необходимых форумов для отбора тем осуществляется из админки расширения:
3 способа подключения:

Если вывода html нет и в консоли ошибка:
Refused to execute script from '/forum/recent.php' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

Либо неправильно сортируются темы и отсутствуют новые, подсчет сообщений - исправления ниже.
Простая форма для вывода тем лаконичным списком - ниже.
По суше: велосипед, Соболь 4х4 самый западный и LR Defender 110.
Отдохнул – отчитайся, лучшее слово – дело.

Теги:
Аватара пользователя
Valery
Без группы
Без группы
Сообщения: 22356
Зарегистрирован: 07.02.2005 10:00
Награды: 5
Из: Тридевятое царство

Обычная тема Recent topics for JS - вывести последние темы форума phpBB на сайт

Сообщение Valery »

Найти ext\bb3mobi\recenttopics\controller\recent.php:

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

//header((string) $hname . ': ' . (string) $hval);
Заменить на:

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

header('Content-Type: text/javascript');
Подсчет сообщений в теме recent.php:

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

$replies = $phpbb_content_visibility->get_count('topic_posts', $row, $row['forum_id']) - 1;
Сортировка изначально в recent.php по столбцу topic_last_post_id, а нужна по последней дате сообщения, чтобы первыми в списке выводились новые посты.
recent.php найти // Fetching topics of public forums и заменить запрос на такой:

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

		// Fetching topics of public forums + t.topic_last_post_time,
		$sql = 'SELECT t.topic_id, t.forum_id, t.topic_title, t.topic_last_post_id, t.topic_last_post_time, t.topic_first_post_id, t.topic_posts_approved, t.topic_posts_unapproved, t.topic_posts_softdeleted, p.post_id, p.post_text, p.bbcode_uid, p.bbcode_bitfield, p.post_attachment
			FROM ' . TOPICS_TABLE . ' AS t, ' . POSTS_TABLE . ' AS p, ' . FORUMS_TABLE . " AS f
			WHERE t.forum_id = f.forum_id
				$sql_forums
				AND p.post_id = t.topic_first_post_id
				AND t.topic_moved_id = 0
			ORDER BY t.topic_last_post_time DESC";
Вывод сообщений простым списком recent_ajax_body.html:

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

<ul>
<!-- BEGIN topicrow -->
	<li>
		<a href="{topicrow.U_TOPIC}" title="{L_POSTS}{L_COLON} {topicrow.TOPIC_REPLIES}" target="_blank">{topicrow.TOPIC_TITLE}
		<!-- IF topicrow.TOPIC_REPLIES > 0 -->
			[{topicrow.TOPIC_REPLIES}]
		<!-- ENDIF -->
		</a>
	</li>
<!-- END topicrow -->
</ul>
По суше: велосипед, Соболь 4х4 самый западный и LR Defender 110.
Отдохнул – отчитайся, лучшее слово – дело.