<? CModule::IncludeModule('iblock'); //Подключаем модуль инфо блоков //IBLOCK_TYPE Установите свой тип и IBLOCK_ID свой ID $arrNews = CIBlockElement::GetList(array('ACTIVE_FROM'=>'DESC'),array('IBLOCK_TYPE'=>'enewsletter', 'IBLOCK_ID'=>7, '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 '</div>'; // Это мы закрываем по цыклу див с месяцами echo '<b';//Текущий год выделен другим цветом if ($cYear != date("Y")) echo ' class="arch-year-link"'; '>'.$cYear.'</b><br /><div class="month-box">'; endif;//Выводим месяцы со ссылками echo '<a href="'.SITE_DIR.'enewsletter/arhiv_month.php?'.urlencode('DateFilter[>=DATE_ACTIVE_FROM]').'='.urlencode('01.'.$cMon.'.'.$linkYear).'&'.urlencode('DateFilter[<=DATE_ACTIVE_FROM]').'='.urlencode('31.'.$cMon.'.'.$linkYear).'">'.$cirMon[$cMon].'</a><br />'; $cc = $cYear; // Переприсваеваем для контроля повторения года endfor; echo '</div>'; // Закрывающий див месяцев (последний) ?> Создаем arhiv_month.php и в нем ставим модуль bitrix:news.list в значении "FILTER_NAME" ставим "DateFilter" "FILTER_NAME" ="DateFilter"
|