UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: iankolotov от 07 Июля 2014, 12:32:50

Название: Вывод значений выпадающего списка в виде ссылок в фильтрах
Отправлено: iankolotov от 07 Июля 2014, 12:32:50
Доброго дня всем!

Никак не могу добиться корректного вывода значений выпадающего списка в виде ссылок в фильтрах по объектам каталога.
Что я делаю:
<xsl:template match="field[@data-type = 'relation']">
<xsl:value-of select="@title" />
<xsl:apply-templates select="values/item" />
</xsl:template>

<xsl:template match="field/values/item">
<a href="{@filter_link}"><xsl:value-of select="." /></a>
</xsl:template>
в итоге у значения формируется ссылка вида: ?umi_authorization=&amp;fields_filter%5Bproizvoditel%5D=382, но она не работает. При этом, при переходе по ней, она снова и снова добавляется к адресу.
Что делать - не знаю. Где копать? И еще хотелось бы понять что такое umi_authorization=&amp; и откуда это вылазит?!

Извиняюсь заранее, что не по теме xslt, но, в tpl шаблонизаторе, в свое время эту проблему я решил вот так:
$FORMS['search_block_line_relation'] = <<<END
%title%
%items%
END;

$FORMS['search_block_line_item_relation'] = <<<END
<a href="%content get_page_url(%category_id%)%%filter_link%" class="fitem%selected%">%object_name%</a>
END;
Название: Re:Вывод значений выпадающего списка в виде ссылок в фильтрах
Отправлено: iankolotov от 21 Июля 2014, 11:48:31
Ауу, ну кто-нибудь... подскажите как избавиться от ?umi_authorization=&amp; в параметре @filter_link? Всю башку сломал ???
Название: Re:Вывод значений выпадающего списка в виде ссылок в фильтрах
Отправлено: ilyar от 21 Июля 2014, 12:16:47
Ауу, ну кто-нибудь... подскажите как избавиться от ?umi_authorization=&amp; в параметре @filter_link? Всю башку сломал ???

этого быть не должно ( может umi_authorization изначально в адресе), что у тебя выдает макрос, должно быть:

<udata category_id="44" module="catalog" method="search" generation-time="0.005478">
  <group name="cenovye_svojstva" title="Ценовые свойства">
    <field name="price" title="Цена" data-type="price"/>
    <field name="akciya" title="akciya" data-type="boolean">
  </group>
  <group name="short_info" title="Краткая информация">
    <field name="ves" title="Вес" data-type="float" />
    <field unfilter_link="?" name="vid" title="Вид" data-type="relation">
      <values>
        <item id="27178" filter_link="?fields_filter%5Bvid%5D=27178" unfilter_link="?">Ангорский</item>
        <item id="27195" filter_link="?fields_filter%5Bvid%5D=27195" unfilter_link="?">Беговой</item>
        <item id="27188" filter_link="?fields_filter%5Bvid%5D=27188" unfilter_link="?">Безродный</item>
        <item id="27216" filter_link="?fields_filter%5Bvid%5D=27216" unfilter_link="?">Голодный</item>
        <item id="27204" filter_link="?fields_filter%5Bvid%5D=27204" unfilter_link="?">Джунгарский</item>
        <item id="27199" filter_link="?fields_filter%5Bvid%5D=27199" unfilter_link="?">Упитанный</item>
      </values>
    </field>
    <field unfilter_link="?" name="pol" title="Пол" data-type="relation">
      <values>
        <item id="27179" filter_link="?fields_filter%5Bpol%5D=27179" unfilter_link="?">Самец</item>
        <item id="27205" filter_link="?fields_filter%5Bpol%5D=27205" unfilter_link="?">Самка</item>
      </values>
    </field>
  </group>
</udata>
Название: Re:Вывод значений выпадающего списка в виде ссылок в фильтрах
Отправлено: iankolotov от 21 Июля 2014, 14:25:46
Да, не должно, но есть >:( У меня, в частности при обращении к udata, вот так http://сайт.ру/udata/catalog/search/айди_раздела
выдает в @unfilter_link="?scheme=udata" :o
Я уже начинаю думать, что как-то тут замешан .htaccess
Название: Re:Вывод значений выпадающего списка в виде &
Отправлено: ilyar от 21 Июля 2014, 14:46:09
Да, не должно, но есть >:( У меня, в частности при обращении к udata, вот так http://сайт.ру/udata/catalog/search/айди_раздела
выдает в @unfilter_link="?scheme=udata" :o
Я уже начинаю думать, что как-то тут замешан .htaccess

@unfilter_link="?scheme=udata" это нормально при при обращении к udata, вот так http://сайт.ру/udata/catalog/search/айди_раздела в рантайме этого не будет.

макрос %catalog search% строит filter_link примерно так   filter_link = origin_params + filter_params именно поэтому при обращении к макросу по протоколу http добавлен ?scheme=udata потому что оригинальный URL любого запроса http://сайт.ру/udata... это  http://сайт.ру/releaseStreams.php?scheme=$1&path=$3?%{QUERY_STRING}

В твоем случае где то к адресу подставляется ?umi_authorization= и поэтому это есть в @unfilter_link, действительно, возможно в этом учавствует .htaccess
Название: Re:Вывод значений выпадающего списка в виде ссылок в фильтрах
Отправлено: iankolotov от 19 Августа 2014, 09:41:16
Мытарства мои таки закончились :D наверное...
Нашел в файле .htaccsess вот такую строку:
RewriteRule ^(.*)$ index.php?path=$1&%{QUERY_STRING}&umi_authorization=%{HTTP:Authorization} [L]
ну и соответственно выкинул, нахрен, часть строки с umi_authorization - заработало всё как надо.

Но всё равно, хочется понять, зачем это всё нужно. Копание в гугле привело к какому-то контроллеру разавторизации пользователя. Дальше ничего немогу найти :(