Получение object id страницы зная element id (tpl-шаблоны) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «При использовании xslt-шаблонизатора, object_id страницы мы найдем в результирующих данных теку…»)
 
 
Строка 33: Строка 33:
  
 
Дополнительная информация по написанию xml-шаблонов поиска: [http://wiki.umisoft.ru/Примеры_использования_макроса_data_doSelection Примеры использования макроса data doSelection()]
 
Дополнительная информация по написанию xml-шаблонов поиска: [http://wiki.umisoft.ru/Примеры_использования_макроса_data_doSelection Примеры использования макроса data doSelection()]
 +
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]

Текущая версия на 12:49, 5 июня 2013

При использовании 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()