Рассказываю как делал я. Немного кривовато, но методика правильная:
Сначала делаем в template.php:
а в component.php :
ну и далее получаем список элементов (подразумевается, что $arFilter, $arSelect, $arNavParams и все остальное вы уже задали)
Сначала делаем в template.php:
Код |
---|
<? { <ul> <li style='color:black';>Сортировать: </li>"; if ($_GET['sort']=='') {$class_default="selected";} if ($_GET['sort']=='price') {$class_price="selected";} if ($_GET['sort']=='qty') {$class_qty="selected";} if ($_GET['sort']=='brand') {$class_brand="selected";} if ($_GET['sort']=='seazon') {$class_seazon="selected";} if ($_GET['sort']=='' AND $_GET['method']=='') {echo "<li class='".$class_default."'> <a href='".$APPLICATION->GetCurPageParam('sort=&method=',array('sort','method'),false)."'>По умолчанию</a></li>";} else { echo "<li class='".$class_default."'> <a href='".$APPLICATION->GetCurPageParam('sort=&method=',array('sort','method'),false)."'>По умолчанию</a></li>";} if ($_GET['sort']=='price' AND $_GET['method']=='asc') {echo "<li class='".$class_price."'> <a href='".$APPLICATION->GetCurPageParam('sort=price&method=desc',array('sort','method'),false)."'>Сначала дорогие</a></li>";} else { echo "<li class='".$class_price."'> <a href='".$APPLICATION->GetCurPageParam('sort=price&method=asc',array('sort','method'),false)."'>Сначала дешевые</a></li>";} if ($_GET['sort']=='qty' AND $_GET['method']=='desc') {echo "<li class='".$class_qty."'> <a href='".$APPLICATION->GetCurPageParam('sort=qty&method=asc',array('sort','method'),false)."'>По наличию ?</a></li>";} else { echo "<li class='".$class_qty."'> <a href='".$APPLICATION->GetCurPageParam('sort=qty&method=desc',array('sort','method'),false)."'>По наличию ?</a></li>";} if ($_GET['sort']=='brand' AND $_GET['method']=='asc') {echo "<li class='".$class_brand."'> <a href='".$APPLICATION->GetCurPageParam('sort=brand&method=desc',array('sort','method'),false)."'>По производителю (Я - А)</a></li>";} else { echo "<li class='".$class_brand."'> <a href='".$APPLICATION->GetCurPageParam('sort=brand&method=asc',array('sort','method'),false)."'>По производителю (А - Я)</a></li>";} echo "</ul>";} ?> |
Код |
---|
//сортировки if ($_GET['sort']=="price") { $arSort = array( "catalog_PRICE_32" => $_GET['method'] ); } elseif ($_GET['sort']=='qty') { $arSort = array ( "CATALOG_QUANTITY"=> $_GET['method'] ); } elseif ($_GET['sort']=='brand') $arSort = array ( "PROPERTY_MANUFACT" => $_GET['method'] ); else { $arSort = array( "catalog_PRICE_32" => "ASC", "SORT" => "ASC", ); } |
Код |
---|
$rsElements = CIBlockElement::GetList($arSort, $arFilter, false, $arNavParams, $arSelect); |