Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Прошу помощи с usel - необходимо отфильтровать новости по кастомному полю

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

Ответов: 11
Просмотров: 6570
Последний ответ 05 Марта 2012, 23:01:29
от Aksuk
Фильтр по полю типа выпадающий список с множественным выбором

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

Ответов: 5
Просмотров: 6609
Последний ответ 20 Мая 2013, 09:20:22
от admin
Сортировка товаров каталога - по цене, названию, популярности

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

Ответов: 26
Просмотров: 16819
Последний ответ 29 Декабря 2016, 19:17:07
от Axiomateria
Сортировка выпадающего списка в фильтре

Автор koroganРаздел Макросы UMI.CMS

Ответов: 4
Просмотров: 4819
Последний ответ 07 Июля 2012, 13:28:53
от korogan
Сортировка по дате объектов каталога

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

Ответов: 12
Просмотров: 6662
Последний ответ 09 Июля 2013, 17:20:00
от admin

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

*

webtrend

  • **
  • 89
  • +0/-0
    • Просмотр профиля
Сортировка по полю кнопка флажок
« : 20 Сентября 2016, 12:35:43 »
Добрый день, к стандартной сортировке шаблона demodizzy, необходимо добавить поле Лучшая цена, которое является у объектов полем-флажок. Как вывести поле и т.д. в принципе все понятно, но сортировка не происходит( в файле __coomon.js пишем следующий код
jQuery('a', '.view-product-list .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-rasp') ) {
jQuery.cookie('sort_field', 'Rasp', {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 {
var contain = jQuery('.view-product-list .catalog .product-list'),
objects = jQuery('li', contain),
targets = [], sorted = [], i = 0,
find = function(array, value) {
for(var i=0; i<array.length; i++) {
if (array[i] == value) return i;
}
return -1;
},
getRandomFloat = function(min, max) {
return Math.random() * (max - min) + min;
},
sorting = function(turn, sortFunc, targetType) {
objects.each(function() {
var _self = jQuery(this).removeClass('center').detach();

var avail = 1000;
if( jQuery('.notInStock', _self).length == 1 ) {
var avail = 1;
}

if( targetType == 'price' ) {
target =  +jQuery('div.content_price span', _self).text().match(/[-+]?[0-9]*\.?[0-9]+/);
} else if ( targetType == 'name') {
target = jQuery('a.title', _self).text().toLowerCase().trim();
} else if ( targetType == 'rasp') {
target = jQuery('div.group-price span', _self).label.toLowerCase().trim();
} else {
target = avail;
}
_rand = find(targets, target) != -1 ? getRandomFloat(0.01, 0.001) : 0;
sorted[target + _rand] = _self;
targets[targets.length] = target + _rand;
});

if( typeof( sortFunc ) == 'function' ) {
targets.sort(sortFunc);
} else {
targets.sort();
}

contain.html('');
if(turn) targets.reverse();

for(; i < targets.length; i++) {
contain.append(sorted[targets[i]]);
if(i % 3 == 1)
sorted[targets[i]].addClass('center');
else if (i % 3 == 2 && i != targets.length - 1)
contain.append('<hr />');
}
};
if (jQuery(this).hasClass('sort-price')) {
sorting(reactive, function(a,b){return a-b}, 'price');
jQuery.cookie('sort_field', 'Price', {path: '/'});
} else if (jQuery(this).hasClass('sort-name')) {
sorting(reactive, null, 'name');
jQuery.cookie('sort_field', 'Name', {path: '/'});
} else if (jQuery(this).hasClass('sort-name')) {
sorting(reactive, null, 'rasp');
jQuery.cookie('sort_field', 'Rasp', {path: '/'});
} else {
sorting(reactive);
jQuery.cookie('sort_field', 'Stock', {path: '/'});
}

jQuery('a', this.parentNode).removeClass('active').removeClass('reactive');
if (reactive) {
jQuery(this).addClass('active');
jQuery.cookie('sort_direction', '0', {path: '/'});
} else {
jQuery(this).addClass('reactive');
jQuery.cookie('sort_direction', '1', {path: '/'});
}
}
});

Думаю что проблема в этой строчке
} else if ( targetType == 'rasp') {
target = jQuery('div.group-price span', _self).label.toLowerCase().trim();
Помогите пожалуйста решить проблему