|
| 1 | +--- |
| 2 | +title: reComments |
| 3 | +description: Многоуровневые комментарии с пагинацией для MODX3 |
| 4 | +logo: https://file.modx.pro/files/a/9/4/a9499643bf99f8080a37405836d0a504.png |
| 5 | +author: Romanov Pavel |
| 6 | +modstore: https://modstore.pro/packages/utilities/rescomments |
| 7 | +--- |
| 8 | + |
| 9 | +# resComments |
| 10 | +Многоуровневые комментарии с пагинацией для ресурсов MODX3. |
| 11 | + |
| 12 | +## Основные свойства |
| 13 | +- Неограниченная вложенность |
| 14 | +- Несколько вызовов на странице |
| 15 | +- Оценка публикации ("звездный" рейтинг) |
| 16 | +- Оценки и рейтинг ответов |
| 17 | +- WYSIWYG-редактор [Pell](https://github.com/jaredreich/pell) |
| 18 | +- Разметка Schema.org |
| 19 | +- Возможность удаления собственных комментариев |
| 20 | +- Email-уведомления менеджеру сайта, автору публикации, автору комментария об ответах |
| 21 | +- Пагинация (с pdoPage) |
| 22 | +- Работает без jQuery (за исключением связки с pdoPage) |
| 23 | +- Настраиваемые всплывающие уведомления |
| 24 | +- Приложение в админке с поиском, фильтрацией и возможностью создания / удаления / редактирования (включая ответы разных уровней) |
| 25 | +- Вкладка "Комментарии" у ресурсов с указанными шаблонами |
| 26 | +- Вкладка "Комментарии" у ресурсов с указанными ID |
| 27 | + |
| 28 | +## Системные настройки |
| 29 | +| Параметр | Описание | Значение по умолчанию | |
| 30 | +| :----- | :----- |:------ | |
| 31 | +| **rc_antispam_field** | Поле для защиты от СПАМа (проверяется на пустоту) | comment_subject | |
| 32 | +| **rc_autopublish** | Автопубликация без модерации | 1 | |
| 33 | +| **rc_notifications** | Скрипт для всплывающих уведомлений.<br>Поддерживаются [Notyf](https://github.com/caroso1222/notyf) и [SweetAlert2](https://modstore.pro/packages/alerts-mailing/sweetalert2) (требуется установка). Также можно указать miniShop3, FetchIt или AjaxForm для использования уведомлений этих компонентов (если они установлены). | Notyf | |
| 34 | +| **rc_js_url** | Путь к JS-файлу от корня сайта. |`{assets_url}components/rescomments/js/web/default.min.js` | |
| 35 | +| **rc_css_url** | Путь к JS-файлу от корня сайта. | `{assets_url}components/rescomments/css/web/default.min.css` | |
| 36 | +| **rc_tab_tpl** | У каких шаблонов выводить вкладку "Комментарии", ID через запятую.<br>Поставьте `all`, чтобы вкладка выводилась для всех шаблонов, оставьте пустым, чтобы не выводить. | | |
| 37 | +| **rc_tab_resources** | У каких ресурсов выводить вкладку "Комментарии", ID через запятую. | | |
| 38 | +| **rc_email_send_createdby** | Уведомлять ли создателя ресурса о новых комментариях (определяется по createdby). | Нет | |
| 39 | +| **rc_email_send_manager** | Уведомлять ли менеджеров о новых комментариях. | Да | |
| 40 | +| **rc_email_send_user** | Уведомлять ли пользователей об ответах на их комментарии. | Да | |
| 41 | +| **rc_email_subject_createdby** | Тема письма автору о новом комментарии к его ресурсу | Новый комментарий к вашей публикации | |
| 42 | +| **rc_email_subject_manager** | Тема письма менеджерам о новом комментарии | Новый комментарий | |
| 43 | +| **rc_email_subject_user** |Тема письма пользователю о новом ответе на его комментарий. | Ответ на ваш комментарий | |
| 44 | +| **rc_email_tpl_createdby** | Чанк-шаблон письма автору публикации. | `rc_tpl_email_author` | |
| 45 | +| **rc_email_tpl_manager** | Чанк-шаблон письма менеджерам | `rc_tpl_email_manager`| |
| 46 | +| **rc_email_tpl_user** | Чанк-шаблон письма пользователю | `rc_tpl_email_user`| |
| 47 | + |
| 48 | +## Сниппет resComments |
| 49 | +Выводит комментарии к ресурсу, подключает все необходимые скрипты и стили. |
| 50 | +Вызывается некешированным: |
| 51 | +``` |
| 52 | +[[!resComments]] |
| 53 | +``` |
| 54 | +На Fenom: |
| 55 | +``` |
| 56 | +{'!resComments' | snippet : []} |
| 57 | +``` |
| 58 | + |
| 59 | +С **pdoPage**: |
| 60 | +``` |
| 61 | +<div id="pdopage"> |
| 62 | + <div class="rows"> |
| 63 | + [[!pdoPage? |
| 64 | + &element=`resComments` |
| 65 | + ]] |
| 66 | + </div> |
| 67 | + [[!+page.nav]] |
| 68 | +</div> |
| 69 | +``` |
| 70 | + |
| 71 | +Параметры сниппета (перекрывают системные настройки) |
| 72 | +| Параметр | Описание | Значение по умолчанию | |
| 73 | +| :----- | :----- | :----- | |
| 74 | +| **docid** | ID ресурса. | Текущий | |
| 75 | +| **topic** | Тема (ветка). Должна быть уникальна в рамках сайта. | comments-## (## - ID ресурса) | |
| 76 | +| **allowAll** | Все посетители могут добавлять комментарии (0 - только авторизованные).| 1 | |
| 77 | +| **maxLevel** | Максимальный уровень вложенности комментариев. | 50 | |
| 78 | +| **maxShiftLevel** | Максимальный уровень, после которого не будет происходить визуальный сдвиг ответов. | 10 | |
| 79 | +| **title** | Заголовок блока комментариев. | `[[%rescomments_block_title]]` | |
| 80 | +| **addText** | Текст на кнопке добавления комментария. | `[[%rescomments_add]]` | |
| 81 | +| **replyText** | Текст на кнопке ответа на комментарий. | `[[%rescomments_reply]]` | |
| 82 | +| **required | Обязательные поля для отправки формы. | `name, email, text, agree` | |
| 83 | +| **autopublish** | Публиковать ли комментарии и ответы сразу после добавления | 1 | |
| 84 | +| **antispamField** | Поле для защиты от СПАМа. | `comment_subject` | |
| 85 | +| **deleteTime** | Время в секундах, в течение которого пользователь может удалить свой комментарий (если на него не получен ответ). | 600 | |
| 86 | +| **hideReplies** | Скрывать ответы на комментарии при открытии страницы.<br>Выводятся только комментарии первого уровня. Если есть ответы, выводится их количество и кнопка "Развернуть". | 0 | |
| 87 | +| **sortby** | Сортировка в JSON-формате. | `{"createdon":"DESC"}` | |
| 88 | +| **limit** | Количество на страницу. | 10 | |
| 89 | +| **offset** | Сдвиг от начала. | 0 | |
| 90 | +| | | | |
| 91 | +| **Шаблоны** | | | |
| 92 | +| **tpl** | Чанк-шаблон комментария. | `rc_tpl_comment` | |
| 93 | +| **tplWrapper** | Чанк-шаблон обертки всех комментариев. | `rc_tpl_wrapper` | |
| 94 | +| **tplForm** | Чанк-шаблон формы добавления комментария. | `rc_tpl_form` | |
| 95 | +| **tplDelete** | Чанк-шаблон кнопки удаления комментария. | `rc_tpl_delete` | |
| 96 | +| **tplRepliesInfo** | Чанк-шаблон вывода блока количества ответов на комментарий и кнопки «Развернуть». | `rc_tpl_replies_info` | |
| 97 | +| | | | |
| 98 | +| **Уведомления** | | | |
| 99 | +| **emailTo** | адреса менеджеров | `[[++emailsender]]` | |
| 100 | +| **emailFrom** | отправитель уведомлений | `[[++site_name]]` | |
| 101 | +| **emailManager** | Уведомлять ли менеджеров о новых комментариях. | 1 | |
| 102 | +| **emailAuthor** | Уведомлять ли авторов публикаций о новых комментариях. | 1 | |
| 103 | +| **emailUser** | Тема ли авторов комментариев об ответах на их комментарии. | 0 | |
| 104 | +| **emailSubjectAuthor** | Тема письма автору о новом комментарии к его ресурсу. | Новый комментарий к вашей публикации | |
| 105 | +| **emailSubjectManager** | Тема письма менеджерам о новом комментарии. | Новый комментарий | |
| 106 | +| **emailSubjectUser** | Тема письма пользователю о новом ответе на его комментарий. | Ответ на ваш комментарий | |
| 107 | +| **emailTplAuthor** | Чанк-шаблон письма автору публикации. | `rc_tpl_email_author` | |
| 108 | +| **emailTplManager** | Чанк-шаблон письма менеджерам. | `rc_tpl_email_manager` | |
| 109 | +| **emailTplUser** | Чанк-шаблон письма пользователю. | `rc_tpl_email_user` | |
| 110 | + |
| 111 | +В чанках поддерживается стандартный синтаксис и Fenom. |
| 112 | +Шаблоны, идущие в комплекте, адаптированы под Bootstrap. |
| 113 | + |
| 114 | +## События плагинов |
| 115 | +| Событие | Описание | |
| 116 | +|---------|----------| |
| 117 | +| **rcOnBeforeCreateComment** | Вызывается перед созданием комментария.<br>Принимает массив `$data` с данными, отправленными из формы.<br>Можно обработать и вернуть через `$modx->event->returnedValues = $data;` | |
| 118 | +| **rcOnAfterCreateComment** | Вызывается после создания комментария. Принимает `$object` — объект созданного комментария. | |
0 commit comments