Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
отображение запроса USEL в виде запроса SQL

Автор BaceHРаздел Custom макросы

Ответов: 5
Просмотров: 2522
Последний ответ 11 Января 2013, 19:48:58
от admin
Прошу помощи с usel - необходимо отфильтровать новости по кастомному полю

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

Ответов: 11
Просмотров: 4027
Последний ответ 05 Марта 2012, 23:01:29
от Aksuk
Вывод объектов каталога через USEL по элементу в справочнике

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

Ответов: 6
Просмотров: 2232
Последний ответ 20 Июля 2013, 20:31:56
от NOIRMAN
Выборка USEL с несколькими параметрами для одного поля

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

Ответов: 3
Просмотров: 1569
Последний ответ 29 Ноября 2012, 11:05:03
от niakriss
Вывод порядковый номер (нумерация) при usel выдачи

Автор atachРаздел Custom макросы

Ответов: 5
Просмотров: 1833
Последний ответ 25 Сентября 2013, 13:37:27
от admin

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

*

alex

  • **
  • 59
  • +0/-0
    • Просмотр профиля
    • Сергеев Александр Сергеевич
Фильтрация выборки USEL
« : 02 Мая 2011, 17:39:35 »
Вот вроде бы во всем разобрался, дак нет, стопорнулся вот на чем:

Мне нужно получить ссылку на страницу блога с конкретным id.
Сделал usel

<?xml version="1.0" encoding="utf-8"?>
<selection>
    <target result="pages">
        <type id="45" />
    </target>
</selection>

Он выводит мне вообще все записи конкретного блога (45).

Имею вид типа:

<udata xmlns:xlink="http://www.w3.org/TR/xlink" generation-time="0.033364">
<page id="95" parentId="89" link="/osnov/ferrari_250_gto-1/" is-active="1" object-id="541" type-id="45" update-time="1304342066" alt-name="ferrari_250_gto-1" xlink:href="upage://95">
<basetype id="26" module="blogs20" method="post">
Пост блога
</basetype>
<name>
Ferrari 250 GTO-1
</name>
</page>
<total>
24
</total>
</udata>

Собственно в таком виде мне выводятся абсолютно все посты.
Хочу добавить фильтр, чтобы выводило только те, у которых object-id="541",например.
Но если пишу
<property name="object-id" value="541"/>
Отвечают, что у поста такого свойства нет.

Вобщем как отфильтровать саму выборку?

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Фильтрация выборки USEL
« Ответ #1 : 02 Мая 2011, 20:49:55 »
usel делае выборку из базы, если тебе надо получить какой то конкретный объект или страницу, то usel тебе не нужна. она для этого просто не предназначена используй другие способы.

Если тебе нужно получить ссылку на страницу блога с конкретным page-id. например id=20

то используй <xsl:value-of select="document('upage://20')/udata/page/@link" />

*

alex

  • **
  • 59
  • +0/-0
    • Просмотр профиля
    • Сергеев Александр Сергеевич
Re:Фильтрация выборки USEL
« Ответ #2 : 02 Мая 2011, 21:07:17 »
С этим понятно....

<xsl:value-of select="document('upage://97')/udata/page/@link"/>

 вот если прямо в шаблоне записать, то выдает ссылку, а если через javascript сгенерировать и применеть к блоку (append), то в исходном коде просто тупо сама строчка
<xsl:value-of select="document('upage://97')/udata/page/@link"/>

Как сделать чтобы она применилась, ну обработалась? Лучше без перезагрузки
« Последнее редактирование: 02 Мая 2011, 21:24:48 от alex »

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Фильтрация выборки USEL
« Ответ #3 : 02 Мая 2011, 22:21:38 »
для этого существуют элементы xsl:variable и xsl:param почитай в инете о них

например делаешь <xsl:variable name="page_link" select="document('upage://97')/udata/page/@link"/>

а там где надо вставить вставляешь одним из двух способов

например используем оба <a href="{$page_link}">ссылка на страницу вида <xsl:value-of select="document('upage://97')/udata/page/@link"/></a>

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Re:Фильтрация выборки USEL
« Ответ #4 : 05 Ноября 2011, 17:47:51 »
А если используется TPL шаблонизатор, как быть?
У нас имеется каталог продукции. Через шаблоны данных сделали Производителей через дерево.
Сами производители идут в новостях.
Их мы вибираем при создании товара.
Как сделать что бы на самой странице было не только название но и оно было кликабельным и отправляло нас на страничку этого производителя.

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Фильтрация выборки USEL
« Ответ #5 : 06 Ноября 2011, 10:37:26 »
для того чтобы вывести ссылку на выбранного производителя (учитывая что поле "производитель" это поля с типом данных "ссылка на дерево"), смотрим документацию к макросам. Предположим, вы выводите значение поля "производитель" через макрос %data getProperty()%, в описании TPL шаблона этого макроса видно что:
Цитировать
symlink_item - Выводит отдельное значение для поля типа «Ссылка на дерево».

%value% - Выводит значение поля (в данном случае — название страницы).
%link% - Выводит ссылку на страницу.
%id% - Выводит id страницы. Можно использовать для вывода свойств страницы через макросы %data.getProperty%, %data.getPropertyGroup% или data.getAllGroups.
%object_id% - Выводит id объекта, который является объектом-источником данных для страницы. Можно использовать для вывода свойств страницы через макросы %data getPropertyOfObject()% , %data getPropertyGroupOfObject()% или %data getAllGroupsOfObject()% .
%quant% - Позволяет квантификатор (разделитель) между значениями. Использует блок symlink_quant .
%list-class-first% - в случае, если элемент первый, выводит "first"
%list-class-last% - в случае, если элемент последний, выводит "last"
%list-class-odd% - в случае, если элемент четный, выводит "odd"
%list-class-even% - в случае, если элемент нечетный, выводит "even"
%list-position% - вставляет порядковый номер в списке

используйте %link% чтобы вывести ссылку на элемент выбранный в поле "производитель"

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