Как доработать сортировку чисел через сниппет в MODX REVO?

Такой вопрос, почему сортировка нормально работает с pagetitle, а с ценой криво?
Т.е. 12000 , 14000, 4000, 260000, 2000 и в обратном порядке?
Это связано с тем, что я что-то с типом даты напутал или ещё с чем-нибудь?
<div class="sort">
        Сортировать: 
        [[!sortLink? &url=`[[*uri]]` &field=`pagetitle` &name=`по названию`]]  
        [[!sortLink? &url=`[[*uri]]` &field=`price-tovar` &name=`по цене`]]
        </div>
        <div id="Collection-content">
        [[!getPage?
            &element=`pdoResources`
            &limit=`18`
            &showHidden=`1`
            &tpl=`tovar`
            &sortby=`pagetitle`
            &sortdir=`DESC`
            &includeTVs=`image-tovar,old-price-tovar,price-tovar`
            &where=`{"template":6}`
            &parents=`[[*id]]`
            &includeContent=`1`
            &hideContainers=`1`
            [[!Sort]]
        ]]


Собственно сам сниппет:
<?php
if($_GET['sort'] == $field and $_GET['dir'] == 'ASC') {$arr='&uarr;';}
if($_GET['sort'] == $field and $_GET['dir'] == 'DESC') {$arr='&darr;';}
if(!$_GET[$field]){
	if($_GET['dir'] == 'ASC'){
		$output = '<a style="color:#000" href="'.$url.'?'.$q.'sort='.$field.'&dir=DESC#prod">'.$name.''.$arr.'</a>';
	} else {
		$output = '<a style="color:#000" href="'.$url.'?'.$q.'sort='.$field.'&dir=ASC#prod">'.$name.''.$arr.'</a>';
	}
} else {
	$output = '<a style="color:#000" href="'.$url.'?'.$q.'sort='.$field.'&dir=ASC#prod">'.$name.'</a>';
}
return $output;

и его помошник:
<?php
$sort = $_GET['sort'];
if($sort == '') {
    $output='&sortby=`{"menuindex":"ASC"}`';
} else {
    $output = '&sortby=`{"'.$sort.'":"'.$_GET['dir'].'"}`';
}
return $output;
  • Вопрос задан
  • 388 просмотров
Решения вопроса 1
cimonlebedev
@cimonlebedev Автор вопроса
Разобрался была ошибка в заполнении, текст вместо чисел.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы