Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Работа с данными переданными через форму

Автор thecoderРаздел Шаблоны XSLT

Ответов: 7
Просмотров: 4772
Последний ответ 16 Августа 2011, 19:42:47
от guest
Уведомление менеджеру о заказе со всеми данными

Автор krestxРаздел Разработка модулей

Ответов: 1
Просмотров: 2977
Последний ответ 21 Сентября 2012, 23:09:29
от admin
Обмен данными. Как составить XML файл

Автор albionРаздел Настройка системы и модулей

Ответов: 0
Просмотров: 2624
Последний ответ 24 Мая 2011, 12:06:15
от albion
Выгрузка заказов в 1С с контактными данными?

Автор muldyРаздел Шаблоны XSLT

Ответов: 3
Просмотров: 3659
Последний ответ 19 Августа 2013, 12:15:41
от admin

0 Пользователей и 1 Гость просматривают эту тему.

*

SID

  • *
  • 1
  • +0/-0
    • Просмотр профиля
Знакомства с данными и привязками
« : 11 Августа 2011, 11:31:47 »
стояла задача, сделать контентные страницы с "Производителям"  
я создал шаблон данных производители с типом "Страница контента"
и возможностью юзать как справочник.

для теста я создал страницу производителя одну, и привязал этого производителя к продукту.
на выходе у меня получилось такой xml
куча свойств.+ моя привязка к продукту
<group id="4771" name="catalog_option_props">
 <title>Опционные свойства</title>
<property type="relation" id="10720" name="manufacturers">
 <title>Производитель</title>
<value>
    <item xlink:href="uobject://97793" id="97793" type-id="1120" name="Aquanord 1" ownerId="73054"/>
 </value>
</property>
 </group>

теперь встала задача из этой строки получить ссылку на страницу... но тут не указан id upage и что делать?
как зная id uobject узнать id upage или как обратится к upage и узнать link зная только uobject?

помогите пожалуйста решить задачку


*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Знакомства с данными и привязками
« Ответ #1 : 06 Октября 2011, 22:36:06 »
напиши кастомный скрипт в classes/modules/custom.php

public function takeObjLink($object_id=NULL,$link=false){
    if(!$object_id) return;
    $elements_arr = umiHierarchy::getInstance()->getObjectInstances($object_id);
    $element = umiHierarchy::getInstance()->getElement($elements_arr[0]);
    if(!$element) return ;
    if($link) return umiHierarchy::getInstance()->getPathById($elements_arr[0]);
    return $elements_arr[0];
}

вывод ссылки элемента
<xsl:value-of select="document(concat('udata://custom/takeObjLink/',//property[@name='manufacturers']/value/item/@id,'/1'))/udata"/>

вывод id элемента
<xsl:value-of select="document(concat('udata://custom/takeObjLink/',//property[@name='manufacturers']/value/item/@id,'/0'))/udata"/>