Показывать заголовки последних обсуждений phpBB
Скрипт для отображения заголовков последних постов на форуме phpBB (версия 2) на странице сайта, обычно на домашней странице.
Таблицы phpBB
Для получения информации для отображения потребуется посмотреть три таблицы: заголовок, автор и дата.
Билетный стол
post_id | post_time |
В этой таблице мы прочитаем идентификатор билета, который используется для связи между таблицами.
Мы также берем дату выпуска билета, который может быть показан, и будем использовать его для сортировки последних билетов.
Таблица топиков
post_id | topic_id | topic_first_post_id | topic_poster |
Она предоставляет идентификатор первого билета обсуждения, он будет использоваться для построения URL.
Идентификатор автора поста будет использоваться для доступа к данным из таблицы пользователей.
Таблица перечислителей
user_id | username |
Она содержит имена участников форума. User_id соответствует topic_poster в таблице топиков.
Определение запроса
Параметр FROM выбирает таблицы: Сообщения, топики, пользователи.
Полное имя строится путем добавления приставки.
Параметр SELECT определяет данные, которые будут возвращены и отображены, это по порядку идентификатор топика, тема билета, дата билета, имя отправившего его участника.
Билеты выбираются предложением WHERE, дополненным И. Выбираем билеты из тех, кто начинает обсуждение, и пользователей, соответствующих найденному в таблице топиков номеру.
$sql = "SELECT TOP.topic_id, TOP.topic_title, TOP.topic_time, USER.username
FROM $posts REF, $users USER, $top TOP
WHERE REF.post_id = TOP.topic_first_post_id
AND TOP.topic_poster = USER.user_id
ORDER BY REF.post_time DESC LIMIT $size";
Переменная $ size является параметром сценария, это максимальное количество отображаемых заголовков.
Получение параметров доступа к базе
Чтобы программа была более общей, параметры имени базы данных, пользователя и пароля извлекаются из файла set.php.
Для этого достаточно задать путь к конфигурационному файлу, в корень форума, и включить этот файл в наш скрипт: содержащиеся в нем переменные тогда будут принадлежать скрипту...
Показать данные
Ранее было видно, как извлечь данные, полученные в базе с помощью функции mysql_fetch_assoc.
Строка, отображающая данные, является лишь примером. Она отображает название билета, имя участника, дату.
echo "<a href='$url'>$title</a> by
<span class='cssuser'>$username</span>
<span class='cssdate'>$date</span>\n";
Его можно адаптировать по мере необходимости.
Использовать сценарий
Сценарий включается в страницу, где отображаются заголовки, и в том месте, где их нужно показать.
Его нужно настроить в зависимости от сайта:
$site = "http://www.scriptol.com/";
$forumdir = "forum/";
$formatflag = false;
При необходимости замените URL-адрес на URL-адрес сайта, каталог форума и установите параметр преобразования в true, если формат страницы отличается от формата форума.
Также можно выбрать количество заголовков для отображения с последней опцией функции отображения:
display($dbhost, $dbname , $dbuser, $dbpasswd , 10);
Обратите внимание, что переменные, формирующие другие параметры, исходят из включенного файла set.php.
Полный сценарий
- См. исходный код.
- Загрузить сценарий с демонстрационной страницей.
Форум, используемый для тестирования скрипта, находится на другом сайте, невозможно непосредственно показать демо (и этот сайт использует punBB, а не phpBB).
См. также