UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Sumrakrnd от 18 Августа 2016, 13:42:02

Название: В одном разделе работает сортировк, в другом нет.
Отправлено: Sumrakrnd от 18 Августа 2016, 13:42:02
Доброго времени суток.

Очень странное поведение.
Если здесь выбрать сортировку по цене
http://ruki24.ru/magazin/ehlektroinstrument/ - оставляет 2 товара из 7 (у них разный тип данных для фильтра сделан)
А здесь работает нормально
http://ruki24.ru/magazin/sadovaya-tehnika/ - нормально сортирует все 39 товаров (так же разные типы данных)

Вот код, стоит для всех одинаковый, поле с ценой фильтруемое.

Цитировать
<xsl:apply-templates select="document(concat('udata://catalog/getSmartCatalog//', page/@id, '///5/', document('utype://catalog-object')//field[@name='price']/@name  ,'/', $sort_direction,'/'))/udata" />
Цитировать
   <xsl:template match="/result[@method = 'category'][count(/result/parents/page) &gt; 0]">
        <xsl:choose>
            <xsl:when test="$sort_field = 'Price'">
            <xsl:apply-templates select="document(concat('udata://catalog/getSmartCatalog//', page/@id, '///5/', document('utype://catalog-object')//field[@name='price']/@name  ,'/', $sort_direction,'/'))/udata" />
            </xsl:when>
            <xsl:when test="$sort_field = 'Name'">
            <xsl:apply-templates select="document(concat('udata://catalog/getSmartCatalog//', page/@id, '///5/', document('utype://catalog-object')//field[@name='title']/@name  ,'/', $sort_direction,'/'))/udata" />
            </xsl:when>
            <xsl:otherwise>
            
                <xsl:apply-templates select="document(concat('udata://catalog/getSmartCatalog//', page/@id, '///5/'))/udata" />
            </xsl:otherwise>
        </xsl:choose>
   </xsl:template>

P.S.: Интересно, что сортировка по цене на общей странице http://ruki24.ru/magazin/ работает корректно
Название: Re: В одном разделе работает сортировк, в другом нет.
Отправлено: admin от 18 Августа 2016, 15:10:29
Для начала, обратите внимание что там, где сортировка работает корректно, есть перезагрузка страницы.
А затем, посмотрите js код, который делает это без перезагрузки http://ruki24.ru/templates/demodizzy/js/__common.js

P.S. Логотип огонь )
Название: Re: В одном разделе работает сортировк, в другом нет.
Отправлено: Sumrakrnd от 18 Августа 2016, 15:38:53
Для начала, обратите внимание что там, где сортировка работает корректно, есть перезагрузка страницы.
А затем, посмотрите js код, который делает это без перезагрузки http://ruki24.ru/templates/demodizzy/js/__common.js

P.S. Логотип огонь )

Немного не поняла, а что надо сделать? ><
Просто я нигде не ставила перезагрузку станицы, так же как и не убирала :(

P.S.: за логотип спасибо :D

Название: Re: В одном разделе работает сортировк, в другом нет.
Отправлено: admin от 18 Августа 2016, 16:14:35
ну, в demodizzy есть js код, который делает сортировку. И срабатывает он при наличии определенных css классов и определенной структуры.

И тут надо понять для начала, вы хотите чтобы сортировка была с перезагрузкой или нет?
В первом случае, надо отрубать этот js код. Во втором, разбираться как его заставить работать полноценно.

P.S. js код в файле, указанном в предыдущем сообщении, начинается со строк:
jQuery('a', '.catalog .change .sort').click(function() {
var reactive = jQuery(this).hasClass('reactive');
...
Название: Re: В одном разделе работает сортировк, в другом нет.
Отправлено: Sumrakrnd от 18 Августа 2016, 16:32:10
Да, кусочек кода я нашла...
Думаю с перегрузкой лучше будет.

А что менять?
Я сперва думала, может какой-то класс удалила, но посмотрела и все нормально, т.е. шаблон одни.


Но я очень боюсь в этих js что-то менять, я в basket.js с такими матюками ковырялась >.<
Название: Re: В одном разделе работает сортировк, в другом нет.
Отправлено: admin от 18 Августа 2016, 16:36:07
там где работает, просто ломается js' ка  поэтому js сортировки и не работает
Попробуйте уберать класс sort с блока с сортировкой.
Название: Re: В одном разделе работает сортировк, в другом нет.
Отправлено: Sumrakrnd от 18 Августа 2016, 16:43:33
Убрала, теперь не работает @_@
Название: Re: В одном разделе работает сортировк, в другом нет.
Отправлено: Sumrakrnd от 18 Августа 2016, 18:09:07
Блин... да что за фигня...
Все страницы должны перегружаться, основа для js тронута не была, почему главная магазина и один раздел перегружаются и нормально сортируются.
А в остальные нет? =_=
Весь код перерыла @_@

P.S.: некоторые внутренние разделы тоже не перегружаются...
Название: Re: В одном разделе работает сортировк, в другом нет.
Отправлено: Sumrakrnd от 19 Августа 2016, 15:24:59
В общем решила проблему, ну ооочень костыльным способом, поставив location.reload(true); в конце этого кусочка кода.

Цитировать
   jQuery('a', '.catalog .change .sort').click(function() {
      var reactive = jQuery(this).hasClass('reactive');
      if(jQuery('.content .numpages').get(0)) {
         if(jQuery(this).hasClass('sort-price')) {
            jQuery.cookie('sort_field', 'Price', {path: '/'});
         } else if( jQuery(this).hasClass('sort-name') ) {
            jQuery.cookie('sort_field', 'Name', {path: '/'});
         } else if( jQuery(this).hasClass('sort-stock') ) {
            jQuery.cookie('sort_field', 'Stock', {path: '/'});
         }
         if(reactive) {
            jQuery.cookie('sort_direction', '0', {path: '/'});
         } else {
            jQuery.cookie('sort_direction', '1', {path: '/'});
         }
         location.reload(true);

      } else {
      ....................
      }
      location.reload(true);
   });

Надеюсь найду еще другой способ, т.к. само по себе странно на мой взгляд работает этот модуль
Название: Re: В одном разделе работает сортировк, в другом нет.
Отправлено: aghigay от 19 Августа 2016, 21:50:48
нда...