Понедельник, 19.02.2018, 22:33
Приветствую Вас Гость | RSS

Bitrix программирование

Категории раздела
Статистика



Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Bitrix архив новостей

Каталог статей

Главная » Статьи » Программирование

Bitrix архив новостей

<? CModule::IncludeModule('iblock');
//Подключаем модуль инфо блоков

//IBLOCK_TYPE &nbsp;Установите свой тип
и&nbsp;IBLOCK_ID &nbsp;свой 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;

//Убираем из масива повторяющиеся елементы&nbsp;

$resultYear = array_keys(array_count_values($arrYear));//
Выводим года а в нутри те месяцы за которые есть новости

for($i = 0; $i < sizeof($resultYear); $i++):

$cYear = substr($resultYear[$i],0,4);// Выделяем
год&nbsp

$cMon = substr($resultYear[$i],5,2); // Выделяем
месяц&nbsp

$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"

Категория: Программирование | Добавил: Shak (30.07.2010)
Просмотров: 5294 | Теги: API, Bitrix архив новостей, фильтрация по датам, CIBlockElement::GetList, FILTER_NAME, bitrix:news.list | Рейтинг: 5.0/1
Поиск

Shak © 2018
Копирование материала без указания автора и ссылки на сайт запрещается.
Если вы разместили материал у себя на сайте обязательно свяжитесь со мной shakleinserg{собака}gmail.com
Создать бесплатный сайт с uCoz