Контакты

Мы всегда готовы к встрече, но только по предварительной договоренности.

ул. Чапыгина, д.6-п, оф.19
Санкт-Петербург, Россия
+7 911 933-80-68
Пн.-Пт. 9:00-20:00
info@webevrika.ru
По всем вопросам

API UMI-CMS: Как получить ID страницы по ID объекта

API UMI-CMS: Как получить ID страницы по ID объекта

Для начала разберемся чем объекты в UMI.CMS отличаются от страниц и почему у них разные ID? Объекты - это основные сущности с которыми работает CMS. Объекты могут быть разных типов и иметь различные свойства.  Страницы это расширенные объекты, которые являются частью структуры сайта. Можно сказать, что страница - это некая надстройка над объектом, которая позволяет управлять его положением и состоянием в дереве сайта.

public function getPageByObjectId($object_id) { 
			$hierarchy = umiHierarchy::getInstance();
			$arrPages = $hierarchy->getObjectInstances($object_id); 
			if (isset($arrPages[0])) {
				$page_id = $arrPages[0];
				$page = $hierarchy->getElement($page_id);
				if (!$page instanceof iUmiHierarchyElement) return '';
				return $page_id;
			}
			else return '';
		}

Теперь появляется следующий вопрос: почему мы получаем массив страниц для одного объекта? Чаще всего в этом массиве будет всего один нулевой член, т.е. одному объекту будет соответствовать одна страница. Но возможны частные случаи, например страницы - виртуальные копии, будут использовать в качестве источника данных один объект. По логике - страница-оригинал должна оказаться в начале массива и наш макрос будет работать правильно в любом варианте.

Добавлять комментарии могут только зарегистрированные пользователи.

Если Вы еще не зарегистрированы на сайте, Вы можете зарегистрироваться.

Войти