Разработка:storages/tags

Материал из DOF
Версия от 16:53, 11 декабря 2014; Polikarpov (обсуждение | вклад) (Классы:)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Плагин
Название 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 - объект для добавления в БД

Планы:

События:

В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.

Перехватываемые события

Генерируемые события