Разработка:storages/tags
Плагин | |
Название | tags |
Тип | storages |
Таблица в базе данных
tags - теги (выборки объектов по определенным критериям). Каждому тегу формируется выборка объектов из деканата,
Подробный формат полей в таблице:
- id - идентификатор тега.
- class - класс тега. Все доступные классы хранятся в папке /classes/. Только латинские символы.
- parentid - идентификатор родительского тега.
- options - сериализованный объект с параметрами тега, на основе которых формируется выборка.
- cron - требуется ли запуск крона по расписанию(-1 - не требуется, 0 - при следующем запуске, timestamp - после указанного времени).
- crondone - дата выполнения прследнего крона.
- cronstatus - статус выполнения крона (пусто - не выполнен, ok - успешно, error - неуспешно).
- cronrepeate - периодичность повторения крона (0 - не повторять, 1 и больше - минимальный интервал в секундах между повторениями).
- about - описание тега.
- code - код тега. Уникален в рамках родителя. Только латинские символы.
- alias - Название тега для отображения.
- status - Статус тега.
API
get_list_tags($active = false, $order = 0, $limitfrom = 0, $limitnum = 0)
Метод предназначен для получения массива тегов из БД
Аргументы:
- $active(bool) - false, если хотим получить все теги и true, если хотим получить только со статусом active
- $order(int) - сортировка полученного результата по полю code, 0 - прямая, 1 - обратная
- $from(int) - смещение выборки из БД
- $limit(int) - число строк, полученных из БД (0 - получить все строки)
Возвращаемые значения:
- array - массив объектов тегов, хранящихся в БД
add_tag($class, $code, $department, $alias=, $about=, $parentid=0, $cron=-1, $cronrepeate=0, $options=NULL )
Метод для добавления тега в БД. На вход получает все необходимые данные для добавления тега.
Аргументы:
- @param string $class - класс тега, должен быть описан в папке /classes/#имя класса#/init.php .
- @param string $code - код тега. Уникален в рамках родителя. Только латинские символы.
- @param int $department - код подразделения.
- @param string $alias - алиас тега.
- @param string $about - описание тега.
- @param int $parentid - id родителького тега.
- @param int $cron - требуется ли запуск крона по расписанию(-1 - не требуется, 0 - при следующем запуске, timestamp - после указанного времени).
- @param int $cronrepeate - периодичность запуска крона. Следующий запуск вычисляется как crondone + cronrepeate.
- @param object $options - параметры тега, на основе которых формируется выборка
Возвращаемые значения:
- object - объект , готовый для вставки в БД. Если произошла ошибка - свойство объекта errorstatus становится равным true, а также добавляется свойство errortext, которое хранит в себе текст ошибки
tagclass($class, $tagobjectdb = NULL)
Создание объекта тега на основе класса
В зависимости от $tagobjectdb совершает действия
Если объект тега не передан
- Проверяем наличие класса
- Подключаем файл класса
- Возвращаем имя класса для запуска статических методов класса
Если $tagobjectdb передан
- Проверяем наличие класса
- Подключаем файл класса
- Создаем объект класса тега
Аргументы:
- $class(string) - класс тега
- $tagobjectdb(object) - объект тега из БД
Возвращаемые значения:
- object|bool|string объект класса тега, либо false в случае ошибки, либо имя класса
tag($tagid)
Возвращает объект тега по его ID
Аргументы:
- $tagid(int) - ID тега
Возвращаемые значения:
- object|bool объект класса тега и false в случае ошибки
set_croninfo($tagid)
Метод добавления тегу информации по прошедшей перелинковке
Аргументы:
- $sucсess(bool) - true при успешной пролинковке и false при ошибке
- $tagid(int) - ID тега
- $timestamp(int) - Время начала линковки
Возвращаемые значения:
- object|bool объект класса тега и false в случае ошибки
Приватные методы:
translit($lang, $string, $small = true, $clear = true)
Транслителировать строку в латиницу
Аргументы:
- string $lang - двухбуквенный код языка
- string $string - строка для транслитерации
- bool $small - true перевод в нижний регистр
- bool $clear - удаление всего, кроме букв. Формат строки названия класса и кода.
Возвращаемые значения:
- string - результат транслитерации
Классы:
Классы тегов позволяют разделить все теги по их функциональным возможностям. Все классы наследуются от абстрактного класса tags_tags
Абстрактный класс Tags:
Свойства:
- dof - Ссылка на объект $DOF
- id - ID тега
Статические методы:
get_tag_class()
Возвращает имя класса
Аргументы: Возвращаемые значения:
- string - имя класса.
is_manual_unlink()
Поддержка классом ручной отлинковки ссылок
Аргументы: Возвращаемые значения:
- bool - Поддерживает-ли класс ручную отлинковку ссылок.
get_tagoptions()
Возвращает массив параметров тега, которые заполняются пользователем при создании тега класса
Аргументы: Возвращаемые значения:
- array - массив опций класса
check_tag($code, $department, $alias=, $about=, $parentid=0, $cron=-1, $cronrepeate=0, $options = NULL, $tagid = 0 )
Проверяет опции тега на корректность и возвращает готовый объект для добавления в БД
Аргументы:
- $code(string) - код тега
- $department(string) - подразделение
- $alias(string) - алиас тега
- $about(string) - описание тега
- $parentid(int) - ID родительского тега
- $cron(int) - требуется ли запуск крона и когда
- $cronrepeate(int) - период устаревания тега
- $options(object) - опции тега
- $tagid(int) - ID тега
Возвращаемые значения: object - объект для добавления в БД
Планы:
События:
В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.