umiHierarchy

Описание

Основной класс иерархической модели данных. Является коллекцией и предоставляет доступ к страницам сайта любого типа, а также содержит методы для изменения структуры сайта, которые позволяют создавать, удалять, копировать и перемещать страницы.

Класс самостоятельно работает с кэшем, а также следит за правами текущего пользователя на любые действия, позволяя разработчику, при необходимости, обрабатывать генерируемые исключения.

Класс является синглтоном, для получения экземпляра класса необходимо использовать статический метод getInstance().

Примеры использования

Пример 19. Получить экземпляр страницы с заранее известным идентификатором

<?php
       ...
       $page_id = 1;
       $hierarchy = umiHierarchy::getInstance(); 
       // получаем экземпляр коллекции
       $page = $hierarchy->getElement($page_id); 
       // получаем umiHierarchyElement, либо false, если страница не существует
       if (!$page instanceof umiHierarchyElement) {
               throw new publicException(getLabel('error-page-does-not-exist')); 
               // выбрасываем исключение
       }
       // TODO
       ...
?>

Пример 20. Получить список прямых потомков (на один уровень глубины) по отношению к текущей странице

<?php
       $current_page_id = cmsController::getInstance()->getCurrentElementId(); 
       // получаем id текущей страницы
       $hierarchy = umiHierarchy::getInstance(); 
       // получаем экземпляр коллекции
       $childs = $hierarchy->getChildrenTree($current_page_id); 
       // получаем список дочерних страниц, включая не активные и не видимые в меню.
       foreach ($childs as $child_id) {
               // TODO
               ....
       }
?>
  • isExists() — Проверяет, существует ли страница с заданным идентификатором
  • isLoaded() — Проверяет, загружена ли в память страница с заданным идентификатором
  • getElement() — Получить экземпляр страницы c заданным идентификатором
  • delElement() — Удалить страницу с указанным идентификатором
  • copyElement() — Создать виртуальную копию (подобие symlink в файловых системах) страницы с указанным идентификатором
  • cloneElement() — Создать копию страницы с указанным идентификатором вместе со всеми данными
  • getDeletedList() — Получить список удаленных страниц (страниц в корзине)
  • restoreElement() — Восстановить страницу из корзины
  • removeDeletedElement() — Навсегда удалить из корзины страницу (и из БД)
  • removeDeletedAll() — Удалить все страницы из корзины (и из БД)
  • getParent() — Получить идентификатор родительской страницы для страницы с указанным идентификатором
  • getAllParents() — Получить список всех родительских страниц
  • getChildrenTree() — Получить список дочерних страниц по отношению к указанной странице
  • getChildrenCount() — Получить количество дочерних страниц по отношению к указанной странице
  • forceAbsolutePath() — Переключить режим генерации урлов между относительным и полным (включать адрес домена даже если он совпадает с текущим доменом)
  • getPathById() — Получить адрес страницы по ее id
  • getIdByPath() — Получить id страницы по ее адресу
  • addElement() — Добавить новую страницу
  • getDefaultElementId() — Получить идентификатор страницы со статусом "по умолчанию" (главная страница) для указанного домена и языка
  • convertAltName() — Конвертирует предлагаемый псевдостатический адрес в транслит и убирает недопустимые символы
  • moveBefore() — Переместить страницу с указанным id в страницу $rel_id перед страницей $before_id
  • moveFirst() — Переместить страницу с указанным id в страницу c $rel_id в начало списка
  • isAllowed() — Проверить, есть ли права на чтение указанной страницы для текущего пользователя
  • getDominantTypeId() — Определить id типа данных, которому принадлежат больше всего дочерних страниц для указанной страницы
  • addUpdatedElementId() — Пометить страницу с указанным id как измененную в рамках текущей сессии
  • getUpdatedElements() — Получить список страниц, измененных в рамках текущей сессии
  • __destruct() — Деструктор
  • getCollectedElements() — Получить список страниц, которые были запрошены в текущей сессии
  • unloadElement() — Выгрузить экземпляр страницы с указанным id из памяти коллекции
  • getElementsLastUpdateTime() — Получить максимальное значение атрибута "дата последней модификации" для всех страниц, загруженных в текущей сессии
  • getObjectInstances() — Получить все страницы, использующие указанный объект (класс umiObject) в качестве источника данных
  • getDominantTplId() — Получить id шаблона, который больше всего используется у подстраниц указанной страницы
  • getLastUpdatedElements() — Получить список страниц, измененных с даты $timestamp
  • checkIsVirtual() — Проверить список страниц на предмет того, имеют ли они виртуальные копии
  • getInstance() — Возвращает umiHierarchy экземпляр класса umiHierarchy
  • getChildrenList() — Получить список id дочерних элементов на всю глубину вложенности.
  • loadElements() — Загружает элементы по переданному списку их ID
  • getOriginalPage() — Возвращает оригинальную (первую) страницу, связанную с заданным объектом