Модуль «Вопросы и ответы» для JohnCMS 9.2.0+
Особенности:
— Вопросы можно помечать несколькими тегами для удобной фильтрации
— Возможность голосовать за вопросы и ответы
— Присутствует поддержка выгрузки файлов
— Вопросы можно уточнять, а ответы комментировать
— Присутствует поиск
— Интеграция с уведомлениями: автор вопроса может указать, хочет ли он получать уведомления о новых ответах
Демонстрация: http://john.annimon.com/qa/
Скриншоты: https://imgur.com/a/hegy2i8
Установка:
1. Скачать архив и распаковать в корень сайта
2. Проверить наличие файла /config/routes.local.php
Создать /config/routes.local.php с содержимым:
<?php
$map->addRoute(['GET', 'POST'], '/qa/[{action}/[{param}]]', 'modules/qa/index.php');$map->addRoute(['GET', 'POST'], '/qa/[{action}/[{param}]]', 'modules/qa/index.php');3. Проверить наличие файла /config/places.local.php
<?php
return [
'/qa' => '<a href="#home#/qa/">Вопросы и ответы</a>',
'/qa/ask' => '<a href="#home#/qa/">Задаёт вопрос</a>',
];'/qa' => '<a href="#home#/qa/">Вопросы и ответы</a>',
'/qa/ask' => '<a href="#home#/qa/">Задаёт вопрос</a>',4. Проверить наличие файла /config/notifications.local.php
<?php
return [
'qa' => [
'name' => 'Вопросы и ответы',
'events' => [
'new_answer' => [
'name' => 'Новый ответ',
'message' => 'На ваш вопрос «#title#» ответили. <a class="alert-link" href="/qa/findanswer/#id#">Посмотреть ответ</a>.',
],
],
],
];'qa' => [
'name' => 'Вопросы и ответы',
'events' => [
'new_answer' => [
'name' => 'Новый ответ',
'message' => 'На ваш вопрос «#title#» ответили. <a class="alert-link" href="/qa/findanswer/#id#">Посмотреть ответ</a>.',
],
],
],5. Дать права 0777 для папки /upload/qa/
6. Перейти по адресу ваш.сайт/qa/install/
7. [Опционально] Добавить в themes/default/templates/system/app/sidebar-main-menu.phtml в удобное место следующие строки:
<li>
<a href="/qa/">
<svg class="icon">
<use xlink:href="<?= $this->asset('icons/qa.svg') ?>#qa"/>
</svg>
<span class="flex-grow-1">Вопросы и ответы</span>
<?php $qa_counters = di('qa_counters'); ?>
<?php if ($qa_counters['new'] > 0): ?>
<span class="badge badge-pill badge-danger">+ <?= $tools->formatNumber($qa_counters['new']) ?></span>
<?php endif ?>
</a>
</li>