Как реализовать популярность
Чтобы поддерживать возможность делать контент популярным в вашем приложении, вы сперва должны реализовать интерфейс в вашей модели элемента контента:
implements \IPS\Content\Featurable
Затем вам нужно добавить ключ в ваше свойство $databaseColumnMap, со значением, являющимся именем столбца в вашей таблице базы данных, в которой хранится статус популярности элемента.
Ну и наконец, вам нужно добавить поддержку в ваши шаблоны. Например:
{{if $item->canFeature()}} <a href='{$item->url()->setQueryString( array( 'do' => 'moderate', 'action' => 'feature' ) )}'>{lang="feature"}</a> {{endif}} {{if $item->canUnfeature()}} <a href='{$item->url()->setQueryString( array( 'do' => 'moderate', 'action' => 'unfeature' ) )}'>{lang="unfeature"}</a> {{endif}}
Изменения после реализации
После реализации интерфейса \IPS\Content\Featurable, модераторы с соответствующим разрешением смогут видеть и использовать инструменты для популяризации контента при выборе элементов в списке элементов контента.
Дополнительные доступные методы модели
\IPS\Patterns\AciveRecordIterator static featured( [ integer $limit [, string $order [, \IPS\Node\Model $container ] ] ] )
Возвращает популярные элементы. Если разрешения поддерживаются в вашей модели, возвращаются только те элементы, на просмотр которых у пользователя есть разрешение.
- $limit (integer, необязательный, по умолчанию 10) - Количество элементов для возврата.
- $order (string, необязательный, по умолчанию 'RAND()') - Порядок сортировки для использования в запросе.
- $container (\IPS\Node\Model, необязательный, по умолчанию NULL) - Если указано, будут возвращены только популярные элементы из данного контейнера.
boolean canFeature( \IPS\Member $member )
Указывает, имеет ли пользователь разрешение на установку элемента популярным. Этот метод учитывает, включен ли элемент. Этот метод учитывает, является ли уже элемент популярным.
- $member (\IPS\Member, необязательный) - Если предоставлено, будут проверять разрешения данного пользователя. По умолчанию, будет использован текущий авторизованный пользователь.
boolean canUnfeature( \IPS\Member $member )
Указывает, имеет ли пользователь разрешение на установку элемента НЕ популярным. Этот метод учитывает, является ли уже элемент не популярным.
- $member (\IPS\Member, необязательный) - Если предоставлено, будут проверять разрешения данного пользователя. По умолчанию, будет использован текущий авторизованный пользователь.