Jump to content

Тегирование элементов контента

К элементам контента пользователи могут добавлять теги. Теги могут быть использованы для поиска других различных типов контента с такими же тегами. Префикс является одним из тегов элемента, который показывается выделенным и в начале заголовка элемента.

Как реализовать тегирование

Тегирование требует, чтобы ваши элементы контента находились внутри ноды контейнера. Во-первых, вам необходимо реализовать интерфейс тегирования:

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 вернёт префикс.



Messenger

    ×
    ×
    • Create New...

    Important Information

    By using our site you agree to our Privacy Policy