ObjTags
Расширение ObjTags позволяет создавать и администрировать перекрестные ссылки (теги) на коллекции страниц, созданных с помощью WikiPatterns. Используется поверх расширения WikiPatterns.
Теги – это обычные страницы в стиле WikiPatterns, структура которых описывается в install.php, а визуализация – в smarty-шаблоне MyTags.txt. Инсталляция ObjTags добавляет к ним следующий функционал:
- виртуальные формы – удобные инструменты создания и хранения ссылок на эти страницы в других таблицах AdvOntology или страницах WikiPatterns;
- экшены, визуализирующие прямые и обратные ссылки на теги;
- небольшую библиотеку сервисных функций, формирующих прямые и обратные ссылки на теги.
Одно/многоуровневые теги
Как для одноуровневых, так и для многоуровневых тегов install.php задается тривиально:
<template>
<name>MyTags</name>
<field>
<name>name</name>
<description>Название</description>
<type>text</type>
</field>
<field>
<name>desc</name>
<description>Описание</description>
<type>textarea</type>
</field>
</template>
При создании многоуровнего списка тегов 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}
Возможности ObjTags
Виртуальные формы
Виртуальные формы для создания ссылок на теги размещаются в админке таблицы 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 с установленным фильтром по тегу)
Сервисные функции
- $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=" ") – возвращает массив массивов для заданных тегов