Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

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

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
вывод имени объекта
« : 31 Октября 2012, 16:21:18 »
Здравствуйте. Столкнулась с следующей проблемой. Необходимо вывести имя одного из объектов справочника. Знаю его id. Он у меня в коде вложен в переменную $marka. Если выводить так: <xsl:value-of select="$marka"/>, то выводит его @id. а мне надо @name. Как можно вывести?

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Re:вывод имени объекта
« Ответ #1 : 31 Октября 2012, 22:24:37 »
А можно для начала как то узнать каким образом информация об объекте попадает в переменную?

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:вывод имени объекта
« Ответ #2 : 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 это для красивой расстановки на странице...

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Re:вывод имени объекта
« Ответ #3 : 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" /> - = свое свойство объекта

*

Rodogor

  • ***
  • 189
  • +24/-0
    • Просмотр профиля
Re:вывод имени объекта
« Ответ #4 : 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..

*

niakriss

  • ***
  • 190
  • +2/-0
    • Просмотр профиля
Re:вывод имени объекта
« Ответ #5 : 02 Ноября 2012, 17:17:11 »
спасибо) поогло.. только надо было <xsl:value-of select="$object-info/udata/object/@name"/> а не <xsl:value-of select="$object-info/udata/object/name"/>