Это костыль для bitrix.news.list. Я просто кладу этот код в result modifire и все.
У меня есть еще вариант.
<?
$arSelect = Array("DATE_ACTIVE_FROM");
$arFilter = Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array(), $arSelect);
while($ob = $res->GetNextElement()) {
$arFields = $ob->GetFields();
$years[] = date("Y", strtotime($arFields['DATE_ACTIVE_FROM']));
}
$years = array_unique($years);
arsort($years);
?>
select onchange="window.location=this.value"
<?
foreach($years as $year) {
echo 'option value="'.$APPLICATION->GetCurPage().'?year='.$year.'">'.$year.'/option';
}
?>
/select
Этот код я прописываю в шаблоне bitrix news list