Получение object id страницы зная element id (tpl-шаблоны) — различия между версиями
VITL' (обсуждение | вклад) (Новая страница: «При использовании xslt-шаблонизатора, object_id страницы мы найдем в результирующих данных теку…») |
Mad grant (обсуждение | вклад) |
||
Строка 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()