UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: niakriss от 31 Октября 2012, 16:21:18

Название: вывод имени объекта
Отправлено: niakriss от 31 Октября 2012, 16:21:18
Здравствуйте. Столкнулась с следующей проблемой. Необходимо вывести имя одного из объектов справочника. Знаю его id. Он у меня в коде вложен в переменную $marka. Если выводить так: <xsl:value-of select="$marka"/>, то выводит его @id. а мне надо @name. Как можно вывести?
Название: Re:вывод имени объекта
Отправлено: NOIRMAN от 31 Октября 2012, 22:24:37
А можно для начала как то узнать каким образом информация об объекте попадает в переменную?
Название: Re:вывод имени объекта
Отправлено: niakriss от 01 Ноября 2012, 11:27:58
у меня сделана форма поиска товара по марке... в форме селекторное поле... в нем отображаются элементы справочника... выбираю например марку honda и он мне выдает товары только у которых в админке отмечено honda... в админке поле типа Выбор из списка. ищутся товары при помощи выборки usel... форма передает данные методом get.. таким образом в адресной строке появляется мой_сайт/?marka=2253
где 2253 это id элемента справочника...

вот моя форма для наглядности:

<form action="/test" method="get">
        <span class="title">Сортировать по бренду:</span>
<select id="dropdown-type" name="marka">
<option value=""></option>
<!-- Пункты справочника -->
<xsl:apply-templates select="document('usel://getSpravElems/208')//udata/item" mode="options_file_type"/>
</select>
<br/><br/><button type="submit"><div>Искать</div></button>
</form>

а так вывожу список товаров:
<xsl:variable name="brend" select="document(concat('usel://getBrends/', '?marka=', $marka))//udata/page" />
<xsl:apply-templates select="$brend[position() mod $row-limit = 1]"  mode="short-view">  
<xsl:with-param name="row-limit" select="$row-limit" />
<xsl:with-param name="cart_items" select="document('udata://emarket/cart/')/udata/items" />
</xsl:apply-templates>

ну row-limi это для красивой расстановки на странице...
Название: Re:вывод имени объекта
Отправлено: NOIRMAN от 01 Ноября 2012, 12:47:24
У Вас известен id страницы. Возьмите в переменную всю страницу и выводите все что пожелаете ))
<xsl:variable name="rezpage" select="document(concat('upage://', $marka))/udata" />
<xsl:value-of select="$rezpage//@name" /> - имя объекта
<xsl:value-of select="$rezpage//property[@name='custom_property']/value" /> - = свое свойство объекта
Название: Re:вывод имени объекта
Отправлено: Rodogor от 01 Ноября 2012, 12:52:34
Так и не увидел переменную marka, но вообщем ничто не мешает получить содержимое объекта имея его id и вывести его название.
<xsl:variable name="object-info" select="document(concat('uobject://',$marka))/>
<xsl:value-of select="$object-info/udata/object/name"/>

Другой вопрос что возможно этот или похожий запрос уже выполнялся, оттуда и получили ID..
Название: Re:вывод имени объекта
Отправлено: niakriss от 02 Ноября 2012, 17:17:11
спасибо) поогло.. только надо было <xsl:value-of select="$object-info/udata/object/@name"/> а не <xsl:value-of select="$object-info/udata/object/name"/>