Описание

Класс для генерации ссылок на страницы (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);
	}
  • getInstance()
  • getLink()
  • getLinkByParts()
  • loadLinkPartForPages()
  • isLoadedPage()
  • unloadPage()
  • clearCache()