umiHierarchyElement

Описание

Класс иерархической модели данных, который предоставляет доступ к определенной странице сайта и содержит методы для получения и изменения ее свойств и атрибутов.

Каждая страница сайта (экземпляр umiHierarchyElement) имеет набор атрибутов (псевдостатический адрес, активность, видимость в меню и т.д.), которые определяют ее положение и значимость в структуре сайта, а так же набор свойств из источника данных определенного типа (umiObject). У нескольких страниц сайта может быть указан общий источник данных, тогда такие страницы называются "виртуальные копии". Эти страницы могут иметь разные атрибуты, но свойства у них будут общие.

Важно

Класс umiHierarchyElement является членом коллекции umiHierarchy, поэтому получать экземпляр класса необходимо именно у нее, используя метод umiHierarchy::getElement()

Пример 21. Получить необходимые свойства и атрибуты у текущей страницы

<?php

  // получаем id текущей страницы
  $current_page_id = cmsController::getInstance()->getCurrentElementId(); 
  // получаем экземпляр коллекции
  $hierarchy = umiHierarchy::getInstance();
  // получаем umiHierarchyElement, либо false, если страница не существует
  $page = $hierarchy->getElement($current_page_id); 

  if (!$page instanceof umiHierarchyElement) {
    // выбрасываем исключение
    throw new publicException(getLabel('error-page-does-not-exist')); 
  }

  // получаем атрибуты страницы

  // можно запрашивать через соответствующие методы:
  $active = $page->getIsActive();// активность
  $parent_id = $page->getParentId();// id родительской страницы

  // а можно и более удобно, используя геттеры:
  $id = $page->id;// id текущей страницы
  $name = $page->name;// имя текущей страницы

  ...

  // получаем свойства страницы
  $content = $page->getValue('content');
  $title = $page->getValue('title');
  $price = $page->getValue('price');

  // или используя геттеры:
  $h1 = $page->header;
  $description = $page->description;

?>

Пример 22. Установить необходимые свойства и атрибуты у какой-либо страницы

<?php

  $page_id = 1; // заранее полученный идентификатор страницы
  // получаем экземпляр коллекции
  $hierarchy = umiHierarchy::getInstance(); 
  // получаем umiHierarchyElement, либо false, если страница не существует
  $page = $hierarchy->getElement($page_id); 

  if (!$page instanceof umiHierarchyElement) {
    // выбрасываем исключение
    throw new publicException(getLabel('error-page-does-not-exist')); 
  }

  // записываем атрибуты страницы

  // можно через соответствующие методы:
  $page->setName("New page name");// изменяем имя страницы
  $page->setIsActive(true); // изменяем активность

  ...

  // а можно и более удобно, используя сеттеры:
  $page->altName = 'mypage';
  $page->isVisible = true;

  // записываем свойства страницы
  $page->setValue('content', 'Hello world!');
  $page->setValue('price', 456);

  // или используя сеттеры:
  $page->description = 'My page description';

  // чтобы применить совершенные изменения, необходимо вызвать
  $page->commit();

?>
  • commit() — Применить все изменения сделанные с этой страницей
  • delete() — Удалить страницу (поместить в Корзину).
  • getIsDeleted() — Узнать, удалена ли страница в корзину или нет
  • getIsActive() — Узнать, активна страница или нет
  • getIsVisible() — Узнать, видима ли страница в меню или нет
  • getLangId() — Получить id языка (класс lang), к которому привязана страница
  • getDomainId() — Получить id домена (класс domain), к которому привязана страница
  • getTplId() — Получить id шаблона дизайна (класс template), по которому отображается страница
  • getTypeId() — Получить id базового типа (класс umiHierarchyType), который определяет поведение страницы на сайте
  • getUpdateTime() — Получить время последней модификации страницы
  • getOrd() — Получить порядок страницы относительно соседних страниц
  • getAltName() — Получить псевдостатический адрес страницы, по которому строится ее адрес
  • getIsDefault() — Получить флаг "по умолчанию" у страницы
  • getObject() — Получить объект (класс umiObject), который является источником данных для страницы
  • getParentId() — Получить id родительской страницы.
  • getName() — Получить название страницы
  • getFieldId() — Получить id поля по его строковому идентификатору
  • getValue() — Получить значение свойства $prop_name
  • getObjectTypeId() — Получить id типа данных (класс umiObjectType), к которому относится объект (класс umiObject) источник данных.
  • getHierarchyType() — Получить базовый тип, к которому относится страница
  • getObjectId() — Получить id объекта (класс umiObject), который служит источником данных для страницы
  • getModule() — Получить название модуля базового типа страницы
  • getMethod() — Получить название метода базового типа страницы
  • getIsBroken() — Узнать, все ли в порядке с этим экземпляром
  • setValue() — Изменить значение свойства $prop_name на $prop_value
  • setName() — Изменить название страницы
  • setIsVisible() — Установить флаг, означающий, что страница может быть видима в меню
  • setIsActive() — Установить флаг активности
  • setIsDeleted() — Установить флаг "удален", который сигнализирует о том, что страница помещена в корзину
  • setTypeId() — Изменить id базового типа (класс umiHierarchyType), который определяет поведение страницы на сайте
  • setLangId() — Изменить id языка (класс lang), к которому привязана страница
  • setTplId() — Изменить шаблон дизайна, по которому отображается страница на сайте
  • setDomainId() — Изменить домен (класс domain), к которому привязана страница
  • setUpdateTime() — Изменить время последней модификации страницы
  • setOrd() — Изменить номер порядка следования страницы в структуре относительно других страниц
  • setRel() — Изменить родителя страницы
  • setObject() — Изменить объект-источник данных страницы
  • setAltName() — Изменить псевдостатический адрес, который участвует в формировании адреса страницы
  • setIsDefault() — Изменить значение флаг "по умолчанию"
  • setIsUpdated() — Изменить флаг измененности. Если экземпляр не помечен как измененный, метод commit() блокируется.
  • updateSiteMap() — Обновить часть sitemap для данной страницы
  • hasVirtualCopy() — проверяет есть ли у страницы виртуальные копии
  • isOriginal() — Проверяет является ли страница "оригинальной" по отношению к ее виртуальным копиям