Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Вывод количества объектов в категории. XSLT

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

Ответов: 6
Просмотров: 1770
Последний ответ 18 Октября 2014, 17:39:24
от idu.kuru
Вывод разных валют в разных доменах у каталога

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

Ответов: 3
Просмотров: 1638
Последний ответ 04 Апреля 2013, 22:05:40
от admin
Как добавить вывод информации и редактирование информации в профиль

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

Ответов: 7
Просмотров: 1631
Последний ответ 28 Апреля 2014, 08:13:27
от rellai
Вывод объектов каталога с отдельными характеристиками объектов в таблице

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

Ответов: 19
Просмотров: 4935
Последний ответ 16 Июля 2013, 16:53:58
от thecoder
Вывод ссылками названия тем "Входит в сюжеты" на главной странице новостей

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

Ответов: 4
Просмотров: 1447
Последний ответ 01 Ноября 2013, 22:41:58
от Axiomateria

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

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
Добрый день.
есть ряд вопросов, которые пока не уложились в голове в виде структурированных знание, а отсюда и проблемы с реализацией требуемых вещей.

1)необходимо вывести отдельным меню список производителей (бренды)
(меню/список: картинка + название производителя и все это ссылка на подробное описание производителя)
На странице описания производителя помимо самого описания необходимо вывести товары из каталога, где сей производитель был указан.

а)через что лучше в данном случае создавать эти объекты - страницы контента / разделы каталога / объекты каталога.
б)как прописать свой шаблон для вывода требуемых данных (логотип, описание + товары)

Меню/списк создается и выводится как надо, а вот дальше... уходя по ссылке: если через "страница контента" то выводится по шаблону content/common.xsl и выводит общее для всех - описание. а хотелось бы что бы выводилось картинка, описание ну и товары, но вот как и где прописать что бы подхватывался нужный шаблон...

в) как лучше организовать вывод товаров, если Тип в Шаблонах данных указан как "Справочник" и его значения используются для указания Производителя в товарах.
Проверка через usel... как передать в выборку нужный параметр означающий производителя.

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
в продолжении разговора:
характеристики товара о производителе выводятся
<property id="399" name="proizvoditel" type="relation">
<title>Производитель</title>
<value>
<item id="16622" name="Sylvanian families" type-id="318" ownerId="10" xlink:href="uobject://16622"/>
</value>
</property>

как при этом правильно прописать выборку USEL?

<selection>
<target result="pages">
<type module="catalog" method="object" />
</target>
<property name="proizvoditel">
{}
</property>
</selection>

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Тег "object"
Используется для фильтрации по полям типа "выпадающий список" и "выпадающий список со множественным выбором".

Находится внутри тега property и может указываться там несколько раз. В этом случае значения будут объединены логическим "ИЛИ". Внутри тега object указывается id объекта.

<!-- найти все объекты или страницы, у которых свойство "delivery_address" равно "26564" -->

<property name="delivery_address">
 <object>26564</object>
</property>


т.е. тебе нужно передать в тег object  - id твоего производителя

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
Этот раздел я уже на help-dev был прочитан не один раз.
я не понимаю как мне выцепить этот самый id производителя, и что мне указать в фигурных скобках:
<selection>
<target result="pages">
<type module="catalog" method="object" />
</target>
<property name="proizvoditel">
<object>{}</object>
</property>
</selection>

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
т.к. даже если тестово вместо скобок поставить имеющийся id производителя, как в указанном коде
<item id="16622" name="Sylvanian families" type-id="318" ownerId="10" xlink:href="uobject://16622"/>
он равен 16622

то выборка нулевая. ни одного товара нет. значит что то не то.

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Давай по порядку:
берешь любой товар, выводишь его в xml формате: localhost/upage/64
находишь там <property id="16622" name="proizvoditel" type="relation">
в фигурных скобках поставь цифру1, т.е.
<property name="proizvoditel">
<object>{1}</object>
</property>

набираешь в браузере: localhost/usel/имя_usela/16622
должен попасть твой товар (как минимум)

1. Проверь чтобы имя свойства (в usel) совпадало с именем свойства у товара, а лучше скопировать
2. В выборке убери другие <property>, если есть
3. Проверь тип свойства, т.е. должен быть type="relation"
4  выложи полный текст выборки


*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
Re:Вывод списка производителей с отфильтро
« Ответ #6 : 19 Апреля 2012, 19:50:47 »
беру товар, нашла там код, который уже указывался во втором сообщении.
<property id="399" name="proizvoditel" type="relation">
<title>Производитель</title>
<value>
<item id="16022" name="Sylvanian families" type-id="321" ownerId="10" xlink:href="uobject://16022"/>
</value>
</property>

содержимое Usel-овского файла тоже уже указывала:
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="catalog" method="object" />
</target>
<property name="proizvoditel">
<object>{1}</object>
</property>
</selection>

так вот мне надо сделать выборку всех товаров у которых указан производитель
name="Sylvanian families
и его id =
id="16022"
т.е. по тем данным что хранятся в полученном ITEM
« Последнее редактирование: 19 Апреля 2012, 19:53:10 от shoto »

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Вы не написали самого главного, что выдает запрос, приведите полностью текст ответа.
Еще важное условие: нужно чтобы это поле было индескируемое (в шаблонах галка ставится), но он бы тогда выдавал, что поле не найдено, можете фильтруемое тоже поставить

Еще попробуйте сделать выборку в определенной категории, т.е.
<?xml version="1.0" encoding="utf-8"?>
<selection>
   <target result="pages">
      <type module="catalog" method="object" />
      <category depth="3">{2}</category>
   </target>
   <property name="proizvoditel">
      <object>{1}</object>
   </property>
</selection>

Посмотрите в товаре parent_id, и подставьте в запрос: localhost/usel/имя_usela/ИД_производителя/ИД_родителя

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
И Индексируемое стоит галочка, и фильтруемое и Видимое.
При запросе localhost/usel/item_brend/16622 ответ:
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="usel" method="item_brend" generation-time="0.019147">
<total>0</total>
</udata>

в ново предложенном варианте тоже выводится такой же результат что выше

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
смоделировал ситуацию, у меня все работает, usel выдает

<udata module="usel" method="brand" generation-time="0.058945"><page id="266" parentId="195" link="/shop/kompressornoe_oborudovanie/porshnevye_bezmaslyannye/kompressor_avtomobil_nyj_bm-250/" is-active="1" object-id="728" type-id="227" update-time="1334900554" alt-name="kompressor_avtomobil_nyj_bm-250" xlink:href="upage://266"><basetype id="49" module="catalog" method="object">Объекты каталога</basetype><name>Компрессор автомобильный BM-250</name></page><total>1</total></udata>
 сам usel
<?xml version="1.0" encoding="utf-8"?>
<selection>
   <target result="pages">
      <type module="catalog" method="object" />
      <category depth="3">{1}</category>
   </target>
   <property name="torgovaya_marka">
      <object>{2}</object>
   </property>
</selection>

запрос
http://localhost/usel/brand/195/729

В шаблонах, в объекте каталога, создайте поле "brand" (для эксперимента), поставьте тип, все галочки, и вручную создайте пару брендов, заполните пару товаров, и запустите выборку (конечно поле "proizvoditel" заменить на brand в выборке)

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
а как выводится у вас xml товара?
тот кусок где производитель указывается.
и какой вы берете <category depth="3">{1}</category> то бишь id-родителя

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
так, проблема найдена.
дополнительная группа параметров была создана в дочернем шаблоне Объекта каталога, а не в самом шаблоне Объект каталога. Потому и не находил. сейчас находит.

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
Остался только вопрос синтаксиса правильный.
когда я нахожусь на странице Бренда, надо выцепить его id как объекта и вставить в вызов
<xsl:apply-templates select="document('usel://item_brend/')" mode="item_brend" />
т.е. что дописать и как правильно передать значения id объекта производителя, если в xml странице производителя данный параметр содержится в этой строчке:
<page id="16386" parentId="16384" link="/brendy1/sylvanian_families/" is-visible="1" is-active="1" object-id="16622" type-id="321" update-time="1334307438" alt-name="sylvanian_families">
object-id="16622"

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
как-то так
select="document(concat('usel://item_brend/', page/@object-id))"

в usel'e этот параметр будет {1}

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
спасибо.
как раз сейчас ковырялась, пыталась использовать concat.