Описание

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

Каждая страница сайта (экземпляр 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()
  • getDomainId()
  • getTplId()
  • getTypeId()
  • getUpdateTime()
  • getOrd()
  • getAltName()
  • getIsDefault()
  • getObject()
  • getParentId()
  • getName()
  • getFieldId()
  • getValue()
  • getObjectTypeId()
  • getHierarchyType()
  • getObjectId()
  • getModule()
  • getMethod()
  • getIsBroken()
  • setValue()
  • setName()
  • setIsVisible()
  • setIsActive()
  • setIsDeleted()
  • setTypeId()
  • setLangId()
  • setTplId()
  • setDomainId()
  • setUpdateTime()
  • setOrd()
  • setRel()
  • setObject()
  • setAltName()
  • setIsDefault()
  • setIsUpdated()
  • updateSiteMap()
  • hasVirtualCopy()
  • isOriginal()