К элементам контента пользователи могут добавлять теги. Теги могут быть использованы для поиска других различных типов контента с такими же тегами. Префикс является одним из тегов элемента, который показывается выделенным и в начале заголовка элемента.
Как реализовать тегирование
Тегирование требует, чтобы ваши элементы контента находились внутри ноды контейнера. Во-первых, вам необходимо реализовать интерфейс тегирования:
implements \IPS\Content\Tags
Затем вы можете отображать префикс и теги в отображении для своего элемента, например:
{{if $item->prefix()}} <a href="{url="app=core&module=system&controller=tags&tag={$item->prefix()}" seoTemplate="tags"}">{$item->prefix()}</a> {{endif}} {{if count( $file->tags() )}} <ul> {{foreach $file->tags() as $tag}} <li> <a href="{url="app=core&module=system&controller=tags&tag={$tag}" seoTemplate="tags"}">{$tag}</a> </li> {{endforeach}} </ul> {{endif}}
Изменения после реализации
- Поле для ввода тегов будет добавлено в форму создания/редактирования.
- Префиксы и теги будут отображаться в списках контента.
Дополнительные доступные методы модели
boolean static canTag( [ \IPS\Member $member [, \IPS\Node\Model $container ] ] )
Указывает, имеет ли пользователь разрешение на тегирование элементов.
- $member (\IPS\Member, optional) - Если предоставлено, при проверке будут использоваться разрешения текущего пользователя. По умолчанию, будет использован текущий авторизованный пользователь.
- $container (\IPS\Node\Model, optional) - Если предоставлено, проверяет, может ли пользователь тегировать в этой конкретной ноде.
boolean static canPrefix( [ \IPS\Member $member [, \IPS\Node\Model $container ] ] )
Указывает, имеет ли пользователь разрешение на выбор тега в качестве префикса для элементов.
- $member (\IPS\Member, optional) - Если предоставлено, при проверке будут использоваться разрешения текущего пользователя. По умолчанию, будет использован текущий авторизованный пользователь.
- $container (\IPS\Node\Model, optional) - Если предоставлено, проверяет, может ли пользователь выбирать префикс к элементам в этой конкретной ноде.
array tags()
Возвращает массив тегов элемента.
string prefix( [ boolean $encode ] )
Возвращает префикс для элемента (NULL если элемент не имеет префикса).
- $encode (boolean, optional, default FALSE) - Если true, url-encode вернёт префикс.