Модуль предназначен для размещения и управления темами и сообщениями форума.
Состоит из трех подмодулей: разделов тем / сообщений, непосредственно тем / сообщений и подмодуля импорта данных.
Фильтр содержит следующие элементы:
- Раздел.
- Дата темы / сообщения.
- Поле ввода фильтрации по ID сообщения.
- Поле ввода фильтрации по тексту сообщения.
- Флажок показа только закрытых тем.
- Поле ввода фильтрации по автору.
- Поле ввода фильтрации по IP-адресу разместившего тему / сообщение.
- Флажок показа тем, состоящих только из одного сообщения.
- Флажок показа только прикрепленных элементов.
Фильтр модуля «Форум» в режиме просмотра тем:

Рисунок 80
- Колонка групповой операции. Позволяет отметить элементы для выполнения групповых операций.
- Раздел.
- Тема.
- Автор темы.
- Последнее сообщение в теме.
- Количество ответов.
- Дата создания темы.
- Иконки операций над элементами. Содержат операции «Ответить», «Редактировать» и «Удалить».
Список тем в режиме просмотра тем :

Рисунок 81
Фильтр в режиме просмотра сообщений темы
Фильтр содержит следующие элементы:
- Раздел.
- Дата темы / сообщения.
- Поле ввода фильтрации по ID сообщения.
- Поле ввода фильтрации по тексту сообщения.
- Поле ввода фильтрации по автору.
- Поле ввода фильтрации по IP-адресу разместившего тему / сообщение.
Фильтр модуля «Форум» в режиме просмотра сообщений темы:

Рисунок 82
- Колонка групповой операции. Позволяет отметить элементы для выполнения групповых операций.
- Сообщение.
- Автор сообщения.
- Дата сообщения.
- Иконки операций над элементами. Содержат операции «Ответить», «Редактировать» и «Удалить».
Список тем в режиме просмотра сообщений темы:

Рисунок 83
Форма редактирования темы содержит следующие элементы:
- Статус элемента. Если флажок помечен, то элемент будет опубликован, если не помечен, то элемент будет недоступен на публичной части сайта.
- Тема закрыта. Если флажок помечен, то в тему нельзя добавлять сообщения с публичной части сайта.
- Дата-время. Поле нельзя редактировать.
- Раздел.
- Тема. Заголовок темы.
- Автор. Поле нельзя редактировать.
- IP. IP-адрес автора темы.
- Сообщение. Текст самого сообщения. При открытии темы на редактирование сообщение отображается в режиме предпросмотра. Для изменения текста воспользуйтесь кнопкой «Редактировать».
Форма редактирования темы (вкладка сообщение):

Рисунок 84
- Не отображать в списках. Располагается на закладке «Параметры». Флажок, позволяющий скрывать элемент в списках. Элемент доступен по ссылке на страницу просмотра темы.
- Отображать первым в списке (прикрепленный элемент). Располагается на закладке «Параметры».
- До. Располагается на закладке «Параметры». Дата, до которой элемент является прикрепленным.
- Ссылка. Располагается на закладке «Параметры». Ссылка в строке браузера редактируемого элемента относительно страницы, соответствующей модулю. Данное поле позволяет создавать удобную для восприятия древовидную структуру элементов.
- Заголовок страницы в браузере. Располагается на закладке «Параметры». Заголовок в браузере редактируемого элемента.
- Ключевые слова. Располагается на закладке «Параметры». Ключевые слова, характеризующие данный элемент. Данное поле будет выведено в мета тэг «keywords».
- Описание. Располагается на закладке «Параметры». Данное поле будет выведено в мета тэг «description».
Форма редактирования темы (вкладка параметры):

Рисунок 85
Форма редактирования сообщения
Форма редактирования сообщения содержит следующие элементы:
- Статус элемента. Если флажок помечен, то элемент будет опубликован, если не помечен, то элемент будет недоступен на публичной части сайта.
- Дата-время. Поле нельзя редактировать.
- Раздел.
- Тема. Заголовок темы.
- Автор. Поле нельзя редактировать.
- IP. IP-адрес автора темы.
- Сообщение. Текст самого сообщения. При открытии темы на редактирование сообщение отображается в режиме предпросмотра. Для изменения текста воспользуйтесь кнопкой «Редактировать».
Форма редактирования сообщения:

Рисунок 86
Поля на вкладке «Параметры» аналогичны полям формы редактирования объявления.
Фильтр
Фильтр содержит следующие элементы:
- Поле ввода фильтрации по названию.
- Прикрепленные. Отображать только прикрепленные разделы.
Фильтр списка разделов форума:

Рисунок 87
- Колонка групповой операции. Позволяет отметить элементы для выполнения групповых операций.
- Колонка позиции элемента. Позволяет менять позицию элемента (при сортировке по этой колонке).
- Колонка статуса элемента. Каждый элемент может быть опубликован либо скрыт. Статус элемента отражает соответствующая иконка в данной колонке.
- Название раздела.
- Анонс раздела. Отображается в списке разделов на сайте.
- Последнее сообщение в разделе.
- Количество элементов. Тем / сообщений в разделе.
- Иконки операций над элементами. Содержат операции «Редактировать» и «Удалить». При удалении раздела все темы и сообщения, принадлежащие к нему, удаляются.
Список разделов форума:

Рисунок 88
Форма редактирования
Форма редактирования разделов форума содержит следующие поля:
- Статус элемента. Если флажок помечен, то раздел будет опубликована, если нет, то будет недоступен на сайте.
- Отображать как разделитель. Если флажок помечен, то раздел будет отображаться как название группы разделов.
- Название. Отображается в списке разделов и в детальном просмотре раздела.
- Анонс. Краткий анонс для раздела, отображается в общем списке разделов форума сайта. Ввод текста осуществляется с помощью визуального редактора.
- Текст. Содержит непосредственно основной текст раздела. Ввод текста осуществляется с помощью визуального редактора.
Визуальный редактор форума:

Рисунок 89
Поля на вкладке «Параметры» аналогичны полям формы редактирования сообщения форума.
Модуль «Обмен данными» позволяет выполнять импорт данных и аватар из форума phpBB 2.
Импорт
На вкладке «Импорт» можно выполнить импорт данных форума phpBB 2 из файла дампа БД, сформированного модулем резервного копирования форума phpBB 2. Необходимо указать файл с данными в указанном формате (.sql или архив .tar.gz) на компьютере или на сервере.
Форма редактирования обмена данными (вкладка импорт):

Рисунок 90
Вкладка «Импорт» содержит следующие поля:
- Формат данных. На текущий момент реализован только импорт из phpBB 2.
- Источник данных. Можно загрузить файл на сервер или выбрать файл из уже загруженных по FTP.
- Префикс таблиц базы данных. Префикс имен таблиц в импортируемом SQL-дампе phpBB 2 (изначально он указывается при установке форума phpBB 2).
- Удалить все сообщения и разделы форума перед импортом. Если флажок отмечен, то все сообщения и разделы форума будут удалены перед импортом.
- Импортировать аватары. Если флажок отмечен, то информация об аватарах будет импортирована в форум. Сами изображения в SQL-дампе не содержатся, для генерации аватар используется вкладка «Другое».
В процессе импорта данных форума phpBB 2 для изменения ссылок на старый форум в сообщениях вызывается функция CustomApplyVars из файла «_local/admin_functions.php».
Далее приведен пример кода, подменяющий ссылки на сообщения и темы самого же старого форума на ссылки обновленного форума:
function CustomApplyVars(&$vObject, $cThread, &$aVars, $pageId = 0){
global $LOCAL_FILES_PATH, $LOCAL_FILES_REL_PATH, $ROOT_PATH_WWW;
switch ($cThread){
// OTHER CODE //
case 'forum_bb2_imported':
$forumLink = $ROOT_PATH_WWW . $vObject->cms->Core->GetModFrontLink('forum') . '?';
$limit = 200;
$start = 0;
$sql = "SELECT `id`, `id_cat`, `message` FROM `cms_forum` ORDER BY `id` ASC LIMIT {$limit}";
$rs = &$vObject->db->select($sql);
while ($rs->numRows() > 0) {
while ($record = $rs->nextRecord()) {
@set_time_limit(29);
$link = $forumLink . ($record['id_cat'] ? 'catid=' . $record['id_cat'] . '&' : '') . 'id=';
$aSQL = array ();
if (preg_match_all("/forum\.amiro\.ru\/viewtopic\.php\?t\=(\d+)/", $record['message'], $matches)) {
$aSQL[] = "SELECT `id`, `id_new` FROM `cms_forum_bb_old_x_new` WHERE `id` IN (" . implode(',', array_unique($matches[1])) . ") AND `is_topic` = 1";
}
if (preg_match_all("/forum\.amiro\.ru\/viewtopic\.php\?p\=(\d+)/", $record['message'], $matches)) {
array_unique($matches[1]);
$aSQL[] = "SELECT `id`, `id_new` FROM `cms_forum_bb_old_x_new` WHERE `id` IN (" . implode(',', array_unique($matches[1])) . ") AND `is_topic` = 0";
}
foreach ($aSQL as $sql) {
$ids = array ();
$rs1 = &$vObject->db->select($sql);
while (list ($bbId, $messageId) = $rs1->nextRecord(MYSQL_NUM)) {
$ids[$bbId] = $messageId;
}
$message = preg_replace("/http\:\/\/forum\.amiro\.ru\/viewtopic\.php\?[tp]\=(\d+)(\&start=)?/e", '$link . "$ids[$1]" . ("$2" ? "&offset=" : "")',$record['message']);
$sql = $vObject->db->genUpdateSQL('cms_forum', array ('message' => $message), "WHERE `id` = " . $record['id']);
$vObject->db->execute($sql, DBC_RAW_QUERY);###
}
}
$start += $limit;
$sql = "SELECT `id`, `id_cat`, `message` FROM `cms_forum` ORDER BY `id` ASC LIMIT {$start}, {$limit}";
$rs = &$vObject->db->select($sql);
}
break;
}
return true;
}
|
На вкладке «Другое» можно создать аватары для форума с учетом текущих настроек размеров аватар из файлов, находящихся в папке "_mod_files/users".
Форма редактирования обмена данными (вкладка другое):

Рисунок 91
|