Битрикс: выборка годов

25.08.2016  09:53

Задача: на сайте на Битриксе выбрать годы из новостей.

Решение:
function GetYears($IBLOCK_ID = 6,$sel) {	
if(CModule::IncludeModule("iblock")) {
	$arFilter = Array('IBLOCK_ID'=>$IBLOCK_ID, 'GLOBAL_ACTIVE'=>'Y');
	$iReq = CIBlockElement::GetList(array("ACTIVE_FROM" => "desc"),$arFilter, false, false, array('ACTIVE_FROM'));
	while($iRes = $iReq->GetNextElement()){
		$iFild = $iRes->GetFields();
		list($date,$time) = explode(' ',$iFild['ACTIVE_FROM']);
		list($d,$m,$y) = explode('.',$date);
		$arr[$y] = $y;
	}
}
return $arr;
}


Ну, решение не шибко красивое, можно похитрее додумать, не выбирая все записи, а группируя.

Фильтрация записей по годам:
global $arrFilterNews;
$arrFilterNews = array(
">=DATE_ACTIVE_FROM"=>date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0,0,0,1,1,$year)),
"<=DATE_ACTIVE_FROM"=>date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(23,59,59,12,31,$year)), 
);


Готово.


перейти в Блог | Блог (стр. 4)

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 20  PHP 29  web-программирование 46  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю:
Имя


email (не публикуется)