<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
if(!isset($arParams["CACHE_TIME"]))
$arParams["CACHE_TIME"] = 300;
$arParams["IBLOCK_TYPE"] = trim($arParams["IBLOCK_TYPE"]);
if(strlen($arParams["IBLOCK_TYPE"])<=0)
$arParams["IBLOCK_TYPE"] = "news";
if($arParams["IBLOCK_TYPE"]=="-")
$arParams["IBLOCK_TYPE"] = "";
if(!is_array($arParams["IBLOCKS"]))
$arParams["IBLOCKS"] = array($arParams["IBLOCKS"]);
foreach($arParams["IBLOCKS"] as $k=>$v)
if(!$v)
unset($arParams["IBLOCKS"][$k]);
if(!is_array($arParams["FIELD_CODE"]))
$arParams["FIELD_CODE"] = array();
foreach($arParams["FIELD_CODE"] as $key=>$val)
if(!$val)
unset($arParams["FIELD_CODE"][$key]);
$arParams["SORT_BY1"] = trim($arParams["SORT_BY1"]);
if(strlen($arParams["SORT_BY1"])<=0)
$arParams["SORT_BY1"] = "ACTIVE_FROM";
$arParams["SORT_ORDER1"] = strtoupper($arParams["SORT_ORDER1"]);
if($arParams["SORT_ORDER1"]!="ASC")
$arParams["SORT_ORDER1"]="DESC";
if(strlen($arParams["SORT_BY2"])<=0)
$arParams["SORT_BY2"] = "SORT";
$arParams["SORT_ORDER2"] = strtoupper($arParams["SORT_ORDER2"]);
if($arParams["SORT_ORDER2"]!="DESC")
$arParams["SORT_ORDER2"]="ASC";
$arParams["NEWS_COUNT"] = intval($arParams["NEWS_COUNT"]);
if($arParams["NEWS_COUNT"]<=0)
$arParams["NEWS_COUNT"] = 20;
$arParams["DETAIL_URL"]=trim($arParams["DETAIL_URL"]);
$arParams["ACTIVE_DATE_FORMAT"] = trim($arParams["ACTIVE_DATE_FORMAT"]);
if(strlen($arParams["ACTIVE_DATE_FORMAT"])<=0)
$arParams["ACTIVE_DATE_FORMAT"] = $DB->DateFormatToPHP(CSite::GetDateFormat("SHORT"));
if($this->StartResultCache(false, ($arParams["CACHE_GROUPS"]==="N"? false: $USER->GetGroups())))
{
if(!CModule::IncludeModule("iblock"))
{
$this->AbortResultCache();
ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED"));
return;
}
$arSelect = array_merge($arParams["FIELD_CODE"], array(
"ID",
"IBLOCK_ID",
"ACTIVE_FROM",
"DETAIL_PAGE_URL",
"NAME",
));
$arFilter = array (
"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
"IBLOCK_ID"=> $arParams["IBLOCKS"],
"ACTIVE" => "Y",
"ACTIVE_DATE" => "Y",
"CHECK_PERMISSIONS" => "Y",
);
$arOrder = array(
$arParams["SORT_BY1"]=>$arParams["SORT_ORDER1"],
$arParams["SORT_BY2"]=>$arParams["SORT_ORDER2"],
);
if(!array_key_exists("ID", $arOrder))
$arOrder["ID"] = "DESC";
$arResult=array(
"ITEMS"=>array(),
);
$rsItems = CIBlockElement::GetList($arOrder, $arFilter, false, array("nTopCount"=>$arParams["NEWS_COUNT"]), $arSelect);
$rsItems->SetUrlTemplates($arParams["DETAIL_URL"]);
while($arItem = $rsItems->GetNext())
{
$arButtons = CIBlock::GetPanelButtons(
$arItem["IBLOCK_ID"],
$arItem["ID"],
0,
array("SECTION_BUTTONS"=>false, "SESSID"=>false)
);
$arItem["EDIT_LINK"] = $arButtons["edit"]["edit_element"]["ACTION_URL"];
$arItem["DELETE_LINK"] = $arButtons["edit"]["delete_element"]["ACTION_URL"];
if(strlen($arItem["ACTIVE_FROM"])>0)
$arItem["DISPLAY_ACTIVE_FROM"] = CIBlockFormatProperties::DateFormat($arParams["ACTIVE_DATE_FORMAT"], MakeTimeStamp($arItem["ACTIVE_FROM"], CSite::GetDateFormat()));
else
$arItem["DISPLAY_ACTIVE_FROM"] = "";
if(isset($arItem["PREVIEW_PICTURE"]))
$arItem["PREVIEW_PICTURE"] = CFile::GetFileArray($arItem["PREVIEW_PICTURE"]);
if(isset($arItem["DETAIL_PICTURE"]))
$arItem["DETAIL_PICTURE"] = CFile::GetFileArray($arItem["DETAIL_PICTURE"]);
$arResult["ITEMS"][]=$arItem;
$arResult[&q |