| Краткое описание | Пользователи создают коллекции связанных тем | |
| Ссылка на репозиторий | https://github.com/Alteras1/discourse-collections | |
| Руководство по установке | Как устанавливать плагины в Discourse |
Предпросмотр
Мобильная версия
Коллекции
Этот плагин позволяет пользователям создавать коллекции тем, которые отображаются при просмотре соответствующих тем. В коллекции можно добавлять любые URL-адреса, и они будут видны на любой связанной теме. Коллекции можно организовывать по разделам, и любые изменения в коллекции отражаются на всех связанных темах. Нет никаких ограничений на темы, которые можно связать, поэтому пользователи могут создавать коллекции, охватывающие различные категории или теги.
Заголовок и описание
Необязательное поле для ввода. Если оно заполнено, эти данные будут отображаться в верхней части списка.
Разделы
Необязательная функция организации. Добавление заголовка раздела позволяет делить коллекцию на секции, что обеспечивает возможность сворачивания разделов.
Подколлекции
Пользователи также могут создавать подколлекции, которые отображаются только для одной конкретной темы. Это позволяет связывать релевантные URL-адреса (например, конкретные сообщения или внешние ресурсы) исключительно для этой темы. Добавленные URL-адреса тем не будут создаваться как ссылки.
Разрешения
Плагин позволяет любому пользователю создавать коллекции для своих собственных тем. По умолчанию пользователи могут ссылаться только на свои темы и должны добавлять других пользователей в качестве кураторов, которые смогут добавлять свои темы в коллекцию. Этот параметр можно отключить, предоставив полный контроль над любыми коллекциями только определенным группам (по умолчанию: сотрудники и TL4).
Демонстрация разрешений
Настройки
| Название | Описание |
|---|---|
| collections enabled | Включить/отключить плагин. По умолчанию: true |
| collection by topic owner | Разрешить создателю темы создавать коллекции. По умолчанию: true |
| collection by topic owner allow groups | Ограничить круг создателей тем, которые могут создавать коллекции. Ограничивает параметр collection by topic owner. По умолчанию: TL1 |
| subcollection by topic owner allow groups | Ограничить круг создателей тем, которые могут создавать подколлекции. Ограничивает параметр collection by topic owner. По умолчанию: TL1 |
| collection modification by allowed groups | Группы, которым разрешено создавать/изменять любые коллекции. По умолчанию: Admin Moderators TL4. |
| sections in subcollection | Разрешить заголовки разделов в подколлекциях. По умолчанию: true |
Альтернативы
Этот плагин во многом вдохновлен (и на определенном этапе базировался) на плагине Discourse Doc Categories. Хотя плагин Doc Categories обладает хорошим механизмом индексации и отличным отображением, его дизайн ориентирован на страницы в стиле вики, где всё собрано в одной категории. Аналогично, индексация в нем зависит от форматированного текстового ввода в отдельной теме, что имеет свои плюсы и минусы.
Тематический компонент DiscoTOC - automatic table of contents также позволяет организовывать ссылки вне тела сообщения, но он ограничен рамками одной темы.
Если ваша цель — организация в стиле вики, то Discourse Doc Categories будет более подходящим вариантом. Если вам нужно связывать темы только на некоторых страницах, лучше подойдет DiscoTOC - automatic table of contents.
Примечания
Изначально этот плагин разрабатывался для поддержки миграции форума, участником которого я являюсь, на платформу Discourse. Поскольку это форум, ориентированный на написание текстов, пользователи поддерживают отдельные темы для разных целей, что приводит к ситуации, когда ссылки между темами из разных категорий практически необходимы. Чтобы облегчить этот процесс, я создал этот плагин, чтобы помочь пользователям самостоятельно организовывать контент.
Существовала альтернативная версия, где это был бы просто тематический компонент, а индексация происходила бы с помощью пользовательских div-элементов с URL-адресами других сообщений. Но после разработки 90% инструментов, мастеров и кода для этого я понял, что это не стоит усилий, и пользователи, скорее всего, проигнорируют все руководства и будут жаловаться на то, что ничего не работает. Поэтому этот путь был отброшен. Честно говоря, это не такое уж плохое решение, так как оно было бы гораздо легче, чем плагин, но оно возложило бы на пользователей ненужную нагрузку по обеспечению правильного форматирования не в одном сообщении, а во многих.
В настоящее время я пометил этот плагин как experimental, так как я еще не окончательно определился с функциями интерфейса (например, иконками) и системой разрешений. Также мне нужно добавить автоматические модульные тесты.

