Рассказываю как делал я. Немного кривовато, но методика правильная:
Сначала делаем в template.php:
[CODE]<?
{
<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>";}
?>
[/CODE]а в component.php :
[CODE] //сортировки
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",
);
}
[/CODE]ну и далее получаем список элементов (подразумевается, что $arFilter, $arSelect, $arNavParams и все остальное вы уже задали)
[CODE] $rsElements = CIBlockElement::GetList($arSort, $arFilter, false, $arNavParams, $arSelect);
[/CODE]