Это старая версия Справка/Разработчик/Дизайн/ObjTags за 2014-05-06 11:04:40..

ObjTags

Расширение ObjTags позволяет создавать и администрировать перекрестные ссылки (теги) на коллекции страниц, созданных с помощью WikiPatterns. Используется поверх расширения WikiPatterns.

Теги – это обычные страницы в стиле WikiPatterns, к которым инсталляция ObjTags добавляет следующий функционал:
  • виртуальные формы – удобные инструменты создания и хранения ссылок на эти страницы в других таблицах AdvOntology или страницах WikiPatterns;
  • экшены, визуализирующие прямые и обратные ссылки на теги;
  • небольшую библиотеку сервисных функций для создания списков прямых и обратных ссылок на теги.


Одно/многоуровневые теги

Теги, как было сказано, – это обычные страницы в стиле WikiPatterns, структура которых описывается в install.php, а визуализация – в smarty-шаблоне MyTags.txt.
При создании многоуровнего списка тегов smarty-шаблон MyTags.txt должен содержать экшены для создания и визуализации подтегов, например, так:
==={$data.name}==
{$data.desc}
{ldelim}{ldelim}templatesum pattern="MyTags" for="!" sortby="name" sortorder="ASC"{rdelim}{rdelim}
{ldelim}{ldelim}createpage pattern="MyTags"{rdelim}{rdelim}

Виртуальные формы

Виртуальные формы для создания ссылок на теги размещаются в админке таблицы tableview или конфигураторе шаблона install.php:
  • objtags pattern="MyTags" [root="Рубрики"] – для одноуровнего списка тегов
  • objtagstree pattern="MyTags" [root="Рубрики"] – для многоуровнего списка тегов
В обоих случаях ссылки на теги сохраняются в поле в формате :17::9:.

Списки тегов

  • {{showobjtags pattern="MyTags" [root="Авторы"] [style="br"]}} – ссылки на теги через br или,
  • {{backlinksobjtags pattern="MyTags" wpfield="authortag" tagid="12"}} – ссылки на страницы, на которых стоит заданный тег в формате списка (также для этих целей может использоваться templatesum или tableview с установленным фильтром по тегу)

Функции расширения ObjTags

  • $srvTags->getPageTagById($id) – возвращает имя страницы (tag)
  • $srvTags->getLinksByTags($pattern, $tags=":1::2:", $root=" ") – возвращает массив ссылок на страницы тегов данного типа
  • $srvTags->getAllLinksArr($pattern, $root="") – возвращает массив массивов вида array(«tag» => имя_страницы, “name” => имя_тега, “link” => ссылка_на_страницу) для тегов данного типа
  • $srvTags->getLinksByTagsArr($pattern, $tags=":1::2:", $root=" ") – возвращает массив массивов для заданных тегов