Рейтинги позволяют пользователям оценивать элементы контента из 5 или 10 (в зависимости от настроек) звёзд.
Как реализовать рейтинги
Во-первых, вам необходимо реализовать интерфейс рейтингов в своей модели контента, например:
implements \IPS\Content\Ratings
Далее добавьте следующие ключи в свойство $databaseColumnMap вашей модели. Это необязательно, но добавление их сделает ваше приложение намного более эффективным при возврате среднего рейтинга при просмотре. Как обычно, значение каждого ключа должно быть именем столбца базы данных, который содержит значение.
- rating_average - текущий средний рейтинг элемента.
- rating_total -общая сумма всех рейтингов элемента.
- rating_hits - количество полученных голосов элементом.
Наконец, отобразите рейтинг в шаблоне просмотра контента. Например:
{$item->rating()|raw}
Дополнительные доступные методы модели
boolean canRate( [ \IPS\Member $member ] )
Указывает, имеет ли пользователь разрешение на оценку этого элемента.
- $member (\IPS\Member, необязательный) - Пользователь, чьи разрешения должны быть проверены. По умолчанию используется текущий авторизованный пользователь.
float averageRating()
Возвращает средний рейтинг элементов (общий рейтинг, деленный на количество голосов).
string rating()
Отображает значки звездочек, представляющие текущий средний рейтинг. Если у пользователя есть разрешение на оценку элемента, эти значки будут интерактивными, позволяя пользователю кликнуть, чтобы оценить.