Получение object id страницы зная element id (tpl-шаблоны)
При использовании xslt-шаблонизатора, object_id страницы мы найдем в результирующих данных текущей страницы, т.е. result -> page (object-id="XXX"). При использовании tpl шаблонов все несколько сложнее, придется воспользоваться кастомным макросом, который пропишем в файле classes/modules/custom.php, после слов //TODO:
public function object_id($element_id) {
$element = umiHierarchy::getInstance()->getElement($element_id);
if($element) return $element->getObjectId();
}
Данный макрос понадобится при использовании макроса data doSelection(), при поиске объектов, у которых в выпадающем списке выбрана текущая страница (в поле сохранено значение равное именно object_id).
Пример использования. Допустим, на странице с описанием компании-производителя, мы используем подобный макрос для поиска объектов каталога данного производителя:
%data doSelection('objectcompany', 'objectcompany', %custom object_id(%pid%)%)%
Шаблон usels/objectcompany.xml, может быть примерно следующим:
<?xml version="1.0" encoding="UTF-8"?>
<selection>
<target result="pages">
<type module="catalog" method="object" />
<category depth="5">45</category>
</target>
<property name="company">
<object>{1}</object>
</property>
</selection>
company - идентификатор поля "Производитель" в типе данных "Объект каталога"
Дополнительная информация по написанию xml-шаблонов поиска: Примеры использования макроса data doSelection()