Поддерживая механизм жалоб в вашем приложении, пользователи смогут жаловаться на ваши элементы контента модераторам, которые смогут рассматривать их в центре жалоб.
Как реализовать жалобы
Во-первых, вам необходимо реализовать интерфейс жалоб в вашей модели элементов контента, например:
implements \IPS\Content\ReportCenter
Затем добавьте статическое свойство в модель вашего элемента контента. Это свойство является названием иконки FontAwesome, которая будет представлять ваши элементы контента при просмотре в центре жалоб:
public static $icon = 'string';
Наконец, включите ссылку жалоб в свой HTML код. В этом случае вы не должны вызывать метод canReport(), поскольку он является ресурсоемким. Вместо этого проверьте наличие возможности у группы создавать жалобы, а так же, чтобы пользователь не являлся автором этого элемента контента. Например:
{{if !\IPS\Member::loggedIn()->group['gbw_no_report'] and $item->author()->member_id != \IPS\Member::loggedIn()->member_id }} <a href='{$item->url('report')}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="report_post"}" data-ipsDialog- flashMessage="{lang="node_error"}" title='{lang="report_post"}'><i class='icon-exclamation-sign'></i> {lang="report_post"}</a> {{endif}}
Дополнительные доступные методы модели
boolean canReport( [ \IPS\Member $member ] )
Указывает, сможет ли пользователь жаловаться на элемент. Рассматривает наличие у группы пользователя разрешения на подачу жалоб, может ли пользователь просматривать контент и имеет ли уже отправленную жалобу на элемент.
- $member (\IPS\Member, optional) - Пользователь, чьи разрешения должны быть проверены. По умолчанию используется текущий авторизованный пользователь.
\IPS\core\Reports\Report report( string $reportContent )
Отправляет и возвращает жалобу на элемент.
- $reportContent (string, required) - Контент жалобы.