Главная > CMS > bitrix — реализация выборки статей по категориям (select)

bitrix — реализация выборки статей по категориям (select)

Суть такова: нужна сортировка элементов IBLOCK по их разделам. В примере сортировка статей по рубрикам.
В шаблоне перед списком элементов инфоблока добавляем форму:

<?
echo'<form method="get" id="s_change">';
echo'<select name="s_id" onchange="$(\'#s_change\').submit();">';
$options_array=array();
foreach($arResult["ITEMS"] as $array_section_id):
	if(!in_array($array_section_id["IBLOCK_SECTION_ID"],$options_array)):
		$options_array[]=$array_section_id["IBLOCK_SECTION_ID"];
	endif;
endforeach;
foreach($options_array as $option_id):
	$option_get_name=CIBlockSection::GetByID($option_id); 
	if($options_names_array=$option_get_name->GetNext()):
		$option_name=$options_names_array['NAME'];
	endif;
	if($_GET['s_id']==$option_id):
		$if_option_selected=' selected="selected"';
	else:
		$if_option_selected='';
	endif;
	echo'<option value="'.$option_id.'"'.$if_option_selected.'>'.$option_name.'</option>';
endforeach;
if(($_GET['s_id']=='all')||($_GET['s_id']==null)):
	$if_print_all_selected=' selected="selected"';
else:
	$if_print_all_selected='';
endif;
echo'<option value="all"'.$if_print_all_selected.'>Все рубрики</option>';
echo'</select>';
echo'</form>';
?>

Внутри foreach, в котором выводим сами статьи:

<?if(($_GET['s_id']!=null)&&($_GET['s_id']!='all')){
	$FL=$_GET['s_id'];
}
else {
	$FL=$arItem["IBLOCK_SECTION_ID"];
}
if($arItem["IBLOCK_SECTION_ID"]==$FL) {?>
	<!--рисуем элемент-->
<?}?>
Categories: CMS Tags:
  1. pgood
    Сентябрь 15th,2011 в 09:09 | #1

    Это называется не сортировка, а фильтрация

Похожие публикации