Такой вопрос, почему сортировка нормально работает с 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='↑';}
if($_GET['sort'] == $field and $_GET['dir'] == 'DESC') {$arr='↓';}
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;