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=" ") – возвращает массив массивов для заданных тегов