Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Поиск по каталогу (поиск товаров/объектов)

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

Ответов: 14
Просмотров: 8569
Последний ответ 26 Января 2015, 12:07:22
от Axiomateria
Изменение количества товара в списке товаров и карточке товара

Автор bepluyРаздел JS и AJAX

Ответов: 2
Просмотров: 2795
Последний ответ 14 Ноября 2015, 13:52:43
от bepluy
Импортировать "Опционные свойтва" товаров в UMIDump из CML 2.0. Хэлп!

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

Ответов: 3
Просмотров: 4623
Последний ответ 09 Февраля 2012, 13:08:00
от admin
Добавление тегов для товаров, и вывод блока с тегами в любом месте сайта

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

Ответов: 9
Просмотров: 5483
Последний ответ 26 Июля 2014, 10:58:09
от FelixTheCat
фильтр товаров с условием OR и поиск по нескольким (не всем) разделам каталога

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

Ответов: 3
Просмотров: 5478
Последний ответ 18 Мая 2012, 11:08:37
от web-industry

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

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
в шаблоне, рядом свызовом вывести данную переменную, чтобы её было видно
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsList/', '//$count//10/'))/udata" mode="layout_0" />
<xsl:value-of select="$count" />

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
в шаблоне, рядом свызовом вывести данную переменную, чтобы её было видно
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsList/', '//$count//10/'))/udata" mode="layout_0" />
<xsl:value-of select="$count" />

При таком варианте
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsList/', '//$count//10/'))/udata" mode="layout_0" />
<xsl:value-of select="$count" />
Не выводятся ни объекты, ни значение переменной,
а при таком
       <xsl:apply-templates select="document(concat('udata://catalog/getObjectsList/', '//8//10/,$count'))/udata" mode="layout_0" />
<xsl:value-of select="$count" />
выводятся только объекты, но значение переменной по прежнему не видно по прежнему...

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
тогда ответ прост, переменная ;count не определена (можно включить еще дебаг ошибок, скорее всего будет такое сообщение)

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
тогда ответ прост, переменная ;count не определена (можно включить еще дебаг ошибок, скорее всего будет такое сообщение)
Если речь идёт об этих настройках в config.ini
[debug]
enabled = "1"
show-backtrace = "1"
callstack.disabled = "0"

то он у меня включён и ошибок не выводится пока вообще ни каких.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
но тем не менее, при выводе результатов xslt шаблона, как только в шаблоне встречается переменная $count у вас все перестает выводиться, просто пустота.

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
но тем не менее, при выводе результатов xslt шаблона, как только в шаблоне встречается переменная $count у вас все перестает выводиться, просто пустота.
Да. Так и есть - проблема не видимая пока получается.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
это означает, что вам надо проcледить, действительно ли параметр $count у вас глобальный (находится в файле /templates/demodizzy/xslt/default.xsl)

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
это означает, что вам надо проcледить, действительно ли параметр $count у вас глобальный (находится в файле /templates/demodizzy/xslt/default.xsl)
Только что проверил и   <xsl:param name="count" select="''" />  на месте выше всех в списке переменных в этом самом файле
/templates/demodizzy/xslt/default.xsl

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Во всех вариациях, которые я описал чуть выше здесь http://umihelp.ru/forum/index.php/topic,1249.msg8645.html#msg8645
, как выяснилось, срабатывает шаблон такой
   <xsl:template match="udata[@method = 'getObjectsList'][total = '0']" mode="layout_0">
        в разделе нет товаров
    </xsl:template>
то есть всё-таки что-то происходит...  :)

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
может, просто в остальных есть переменная $count?

Только что проверил и   <xsl:param name="count" select="''" />  на месте выше всех в списке переменных в этом самом файле
/templates/demodizzy/xslt/default.xsl

приведите кусок этого файла от начала, до этой переменной

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
может, просто в остальных есть переменная $count?

Только что проверил и   <xsl:param name="count" select="''" />  на месте выше всех в списке переменных в этом самом файле
/templates/demodizzy/xslt/default.xsl

приведите кусок этого файла от начала, до этой переменной

в общем весь файл изнутри таков:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xlink="http://www.w3.org/TR/xlink">

    <xsl:output encoding="utf-8" method="html" indent="yes"/>

    <xsl:variable name="errors" select="document('udata://system/listErrorMessages')/udata"/>

    <xsl:variable name="lang-prefix" select="/result/@pre-lang" />
    <xsl:variable name="document-page-id" select="/result/@pageId" />
    <xsl:variable name="default-page" select="/result/page/@is-default" />
    <xsl:variable name="document-title" select="/result/@title" />
    <xsl:variable name="user-type" select="/result/user/@type" />
    <xsl:variable name="request-uri" select="/result/@request-uri" />
    <xsl:variable name="domain" select="/result/@domain" />
    <xsl:variable name="templates" select="'/templates/bs/'" />

    <xsl:variable name="parents" select="/result/parents" />
    <xsl:variable name="parentsTypeId1" select="$parents/page[1]/@type-id" />

    <xsl:variable name="site-info-id" select="document('upage://techno_contacts/')/udata/page/@id" />
    <xsl:variable name="site-info" select="document(concat('upage://',$site-info-id))//group[@name = 'transverse_data']/property" />
   
    <xsl:variable name="catalogPagesId" select="$site-info[@name = 'catalog_pages_count_default']/value/item/@id" />
    <xsl:param name="catalog_per_pages" select="number(concat('0',document(concat('uobject://', $catalogPagesId))/udata/object/properties/group/property/value))" />
    <xsl:param name="count" select="$catalog_per_pages" />

    <xsl:variable name="catalogLayoutId" select="$site-info[@name = 'catalog_default_layout']/value/item/@id" />
    <xsl:param name="catalog_layout" select="number(concat('0',document(concat('uobject://', $catalogLayoutId))/udata/object/properties/group/property/value))" />
 
    <xsl:variable name="user-id" select="/result/user/@id" />
    <xsl:variable name="user-info" select="document(concat('uobject://', $user-id))" />

    <xsl:variable name="module" select="/result/@module" />
    <xsl:variable name="method" select="/result/@method" />
   
    <xsl:decimal-format name="price" decimal-separator="," grouping-separator="&#160;"/>
    <xsl:variable name="currency-prefix" select="document('udata://emarket/cart/')/udata/summary/price/@prefix" />
    <xsl:variable name="currency-suffix" select="document('udata://emarket/cart/')/udata/summary/price/@suffix" />

    <xsl:param name="p">0</xsl:param>
    <xsl:param name="catalog" />
    <xsl:param name="search_string" />
   
    <xsl:include href="library/common.xsl" />
    <xsl:include href="layouts/default.xsl" />

    <xsl:include href="modules/users/common.xsl" />
    <xsl:include href="modules/content/common.xsl" />

    <xsl:include href="modules/catalog/common.xsl" />
    <xsl:include href="modules/data/common.xsl" />
    <xsl:include href="modules/emarket/common.xsl" />
    <xsl:include href="modules/search/common.xsl" />
    <xsl:include href="modules/webforms/common.xsl" />
    <xsl:include href="modules/filemanager/common.xsl" />
</xsl:stylesheet>
« Последнее редактирование: 14 Ноября 2014, 21:16:23 от Axiomateria »

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
А ещё я переделал переключатели
            <div class="sort_box mod_2">
                <dl class="sort_item">
                    <dt>Выводить по:</dt>
                    <dd class="sort_link_w active">
                        <a href="?count=20" class="sort_link">20</a>
                    </dd>
                    <dd class="sort_link_w">
                        <a href="?count=32" class="sort_link">32</a>
                    </dd>
                    <dd class="sort_link_w">
                        <a href="?count=40" class="sort_link">40</a>
                    </dd>
                    <dd class="sort_link_w">
                        <a href="?count=10000" class="sort_link">Все</a>
                    </dd>
                </dl>
            </div>

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
А вот так заработало:
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsList/', '//', $count, '//10/'))/udata" mode="layout_0" />
Теперь вот как-то надо додумать такой момент, что кроме выбора показа количества страниц, есть ещё и выбор показа "Плитка" "Список", которые так же через переменные вызываются в таком порядке:
                <dl class="sort_item mod_1">
                    <dt>&objectsview;</dt>
                    <dd>    
                        <a rel="nofollow" title="плитка" href="?catalog_layout=0&amp;">  
                            <xsl:attribute name="class">type type_1</xsl:attribute>
                            <xsl:if test="$catalog_layout = 0">
                                <xsl:attribute name="class">type type_1 active</xsl:attribute>
                            </xsl:if>
                        </a>
                    </dd>  
                    <dd>  
                        <a rel="nofollow" title="список" href="?catalog_layout=2&amp;">
                            <xsl:attribute name="class">type type_2</xsl:attribute>
                            <xsl:if test="$catalog_layout = 2">
                                <xsl:attribute name="class">type type_2 active</xsl:attribute>
                            </xsl:if>
                        </a>
                    </dd>          
                </dl>
и всё бы ни чего, да вот только при выборе одного или другого в строке браузера они конечно взаимоотменяюся,
 то есть либо выбираем показывать по сорок страниц: /?count=40
либо показывать плиткой /?catalog_layout=0

А надо бы конечно, что бы они были в один ряд в строке браузера, как например:
 /?catalog_layout=0&count=40&

Есть такая задумка срастить эти переменные в адресной строке <form> , где переменная $catalog_layout показывать плиткой "по умолчанию" у меня уже прописана:
 <xsl:template match="udata[@method = 'search'][group]">
        <form class="catalog_filter" action="/result_search_snowboards/">
            <input type="hidden" id="catalog_layout" name="catalog_layout" value="{$catalog_layout}" />
           <input type="hidden" id="count" name="count" value="{$count}" />
            <div class="left">
                <xsl:apply-templates select=".//field[not(@data-type = 'boolean')]" mode="search" />
            </div>
            <div class="right">
                <xsl:apply-templates select=".//field[@data-type = 'boolean']" mode="search" />
            </div>
            <div class="clear"></div>
            <div class="select-btns">
                <input class="button" type="submit" value="&apply;"/>
                <input class="button" type="button" value="&reset;" onclick="javascript: window.location = '/';" />
            </div>
        </form>
    </xsl:template>
« Последнее редактирование: 14 Ноября 2014, 21:14:59 от Axiomateria »