Описание
Класс для генерации ссылок на страницы (umiHierarchyElement).
Собранные данные класс хранит в своих свойствах, можно сбросить кэш как для отдельной страницы, так и для всех.
Класс является синглтоном, для получения экземпляра класса необходимо использовать статический метод getInstance().
Примеры использования
Получить адрес отдельной страницы
$umiHierarchy = umiHierarchy::getInstance();
$umiLinksHelper = umiLinksHelper::getInstance();
$page = $umiHierarchy->getElement(123);
$pageLink = '';
if ($page instanceof iUmiHierarchyElement) {
$pageLink = $umiLinksHelper->getLink($page);
}
echo $pageLink;
Сформировать данные для адресов набора страниц
//есть массив идентификаторов страниц
$pagesIds = array(1, 2, 3, 4, 5, 6, 7);
$umiLinksHelper = umiLinksHelper::getInstance();
//загружаем данные для формирования адресов
$umiLinksHelper->loadLinkPartForPages($pagesIds);
$umiHierarchy = umiHierarchy::getInstance();
$umiLinksHelper = umiLinksHelper::getInstance();
$page = $umiHierarchy->getElement(1);
$pageLink = '';
if ($page instanceof iUmiHierarchyElement) {
//получаем адрес из загруженных данных
$pageLink = $umiLinksHelper->getLinkByParts($page);
}
echo $pageLink;
Примечание
Данный класс задействован в классе selector, если в нем запросить страницы, то автоматически будут сгенерированы данные для формирования адресов, средствами метода loadLinkPartForPages():
//Запрашиваем страницы
$pages = new selector('pages');
$pages->types('hierarchy-type')->name('catalog', 'object');
$pages = $pages->result();
$umiLinksHelper = umiLinksHelper::getInstance();
foreach ($pages as $page) {
if (!$page instanceof iUmiHierarchyElement) {
continue;
}
//Получаем ссылку
echo $umiLinksHelper->getLinkByParts($page);
}