Представляю Вашему вниманию модуль "Группы". Модуль полностью основан на модуле "Блог" и следовательно содержит следующий функционал:
- группы. Просмотр списка групп, просмотр группы, вступить/выйти из группы.
- записи группы. Просмотр/добавление записей по группам. Возможность добавления тегов к записям и просмотр записей по тегам.
Но есть и ряд упрощений, изменений, улучшений, доработок:
- ссылка на "вступить в группы/выйти из группы". Теперь при ajax запросе не передается параметр: groupId. Идентификация группы происходит на основе slug. Новый ссылки имею вид: /group/<slug>/join и /group/<slug>/leave;
- просмотр записей возможен только по группам. Нет функционала просмотра общего списка записей;
- js файл который используется в виджете JoinLeaveWidget вынесен из папки темы в папку модуля;
- стили, которые модуль "Блог" хранит в yupe.css вынесены в отдельный css файл. Этот файл так же и располагается в папке модуля;
- изменены типы групп. Если в блогах это: публичный и личный, то в группах это: открытая и закрытая. Просмотр закрытых групп разрешен только участникам этих групп;
- возможность создания группы на фронте. Созданным группам присваивается статус "Модерация". В административной части при редактировании можно утвердить созданную группу. При этом пользователь, создавший группы, добавляется в список участников группы;
- при вступлении к группу так же указывается роль пользователя. При вступлении с фронтэнда группа по умолчанию "User", при утверждении группы через бэкенд - "Administrator"
- возможность добавления записи на фронте;
- используется только часть виджетов из модуля "Блог": JoinGroupWidget, LastPostsOfGroupWidget, MembersOfGroupWidget, ShareWidget.
Модуль можно скачать с github.com. В скором времени модуль так же появиться и в Yupe Market.
P.S. Надеюсь кому-нибудь пригодятся мои наработки.
P.P.S. Буду рад ПР.