Плагин создает на сайте полноценный форум, позволяющий комюзерам вести дискуссии. Рабочий пример форума.
Плагин может совместно работать с плагинами:
Profile: Плагин личного кабинета комюзера profile2 для MaxSite CMS.
Сomuser uploader: Загрузка файлов комъюзерами - плагин для MaxSite CMS.
Загрузки.
Плагин форума для MaxSite CMS: dialog_2-1.zip
Архив с плагинами dialog, comuser_uploader, profile, которые сразу работают вместе: plugins_forum_maxsite.zip
В форуме участвуют только комюзеры (аккаунты таблицы comusers).
В момент первого посещения комюзером страниц форума для него создается запись в таблице пользователей форума.
Для того, чтобы владелец сайта мог участвовать в форуме - он должен зарегистрировать себе аккаунт комюзера.
Модерирование комментариев и дискуссий осуществляется со страниц форума (не с админки сайта) пользователями с правами "администратор" или "модератор".
Права пользователям форума присваиваются в админ-панели сайта. Владелец сайта заходит в админку сайта и присваивает своему аккаунту комюзера права администратора.
Удаление на страницах форума приводит к изменению статуса, но не к физическому удалению.
Удалять физически из таблиц пользователей, комментариев и дискуссий можно в админ-панели сайта.
Структура дискуссий задается в админ-панели сайта и представляет собой двухуровневую иерархию: Форум-Категория.
Дискуссии могут принадлежать категориям форумов.
Для полноценного представления форума необходим плагин личный кабинет комюзера.
Для загрузок файов комюзерами в сообщения форума необходимо установить плагин загрузок файлов пользователями.
Хлебные крошки.
Чтобы отображались хлебные крошки форума в таком же виде, как и на всем сайте, необходимо заменить компонент Top1 на Top1_1. Иначе вторым элементом хлебных крошек будет "404. Ничего не найдено", ведь страницы форума выводятся по хуку 404.
Или не включать этот компонент хлебных крошек.
В текущей версии MaxSite (106) появился компонент breadcrumbs (не путать с _breadcrumbs).
Этот компонент позволяет добавлять свои элементы в вывод хлебных крошек (github.com/maxsite/cms/issues/393).
Поэтому пришлось добавить поддержку такого варианта.
Получилось сразу три способа вывода хлебных крошек.
Вывод хлебных крошек шаблонными файлами самого плагина можно отключить, если осуществляется вывод компонентом.
В итоге код формирования хлебных крошек получился такой:
// хлебные крошки
$discussion_link = '<a href="' . $siteurl . $options['discussion_slug'] .'/' . $comment_discussion_id . '">' . $discussion_title . '</a>';
$comment_link = '<a href="' . $siteurl . $options['goto_slug'] . dialog_get_url($comment_discussion_id , $comment_id) . '" title ="' . $options['comment_page'] . '">' . $options['comment_number'] . $comment_id . '</a>';
// вывод отключается по опции
if ($options['bread_out'])
echo '<div class="breadcrumbs">' . $main_link . $options['breadcrumbs_razd'] . $discussion_link . $options['breadcrumbs_razd'] . $comment_link . $options['breadcrumbs_razd'] . $options['title_edit_comment_form'] . '</div>';
// для компонента хлебных крошек top1_1
$breadcrumbs2 = '<span class="i-angle-right mar10-l">' . $main_link .'</span>';
$breadcrumbs3 = '<span class="i-angle-right mar10-l">' . $discussion_link .'</span>';
$breadcrumbs4 = '<span class="i-angle-right mar10-l">' . $comment_link .'</span>';
$breadcrumbs3 = '<span class="i-angle-right mar10-l bold">' . $options['title_edit_comment_form'] .'</span>';
// для компонента хлебных крошек breadcrumbs
$comp_breadcrumbs_add = array();
$comp_breadcrumbs_add[$options['name']] = $siteurl . $options['main_slug'];
$comp_breadcrumbs_add[$discussion_title] = $siteurl . $options['discussion_slug'] .'/' . $comment_discussion_id;
$comp_breadcrumbs_add[$options['comment_number'] . $comment_id] = $siteurl . $options['goto_slug'] . dialog_get_url($comment_discussion_id , $comment_id);
$comp_breadcrumbs_add[$options['title_edit_comment_form']] = '';
// переворачиваем, если указано в опциях
if ($options['reverse_breadcrumbs']) array_reverse($comp_breadcrumbs_add);
mso_set_val('comp_breadcrumbs_add', $comp_breadcrumbs_add);