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

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

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

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

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

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

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

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

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

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

Ответов: 5
Просмотров: 1908
Последний ответ 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

  • *****
  • 2421
  • +172/-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

  • *****
  • 2421
  • +172/-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

  • *****
  • 2421
  • +172/-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% чтобы вывести ссылку на элемент выбранный в поле "производитель"

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