$arrNews = CIBlockElement::GetList(array('ACTIVE_FROM'=>'DESC'),array('IBLOCK_TYPE'=>'news', 'IBLOCK_ID'=>19, 'ACTIVE'=>'Y', 'ACTIVE_DATE'=>'Y')); while ($prodtype = $arrNews->GetNext()): // записываем в масив года и месяцы в формате "год-месяц" $arrYear[] = substr($prodtype['ACTIVE_FROM'],6,4).'-'.substr($prodtype['ACTIVE_FROM'],3,2); endwhile; //Убираем из масива повторяющиеся елементы $resultYear = array_keys(array_count_values($arrYear)); // Выводим года а в нутри те месяцы за которые есть новости for($i = 0; $i < sizeof($resultYear); $i++): $cYear = substr($resultYear[$i],0,4);// Выделяем год $cMon = substr($resultYear[$i],5,2); // Выделяем месяц $cirMon = Array( // Кирилизируем месяцы '01'=>'Январь', '02'=>'Февраль', '03'=>'Март', '04'=>'Апрель', '05'=>'Май', '06'=>'Июнь', '07'=>'Июль', '08'=>'Август', '09'=>'Сентябрь', '10'=>'Октябрь', '11'=>'Ноябрь', '12'=>'Декабрь' ); if ($cc != $cYear): // Если год ещё не повторялся то выводим его $linkYear = $cYear; // Переприсваеваем для того что бы формировать ссылки if ($i != 0) echo ''; // Это мы закрываем по цыклу див с месяцами echo ''.$cYear.'
'; endif; //Выводим месяцы со ссылками echo ''.$cirMon[$cMon].'
'; $cc = $cYear; // Переприсваеваем для контроля повторения года endfor; echo '
'; // Закрывающий див месяцев (последний)