if ('Y' === $property['MULTIPLE'])
{
$elementValues[$code]['PROPERTY_VALUE_ID'] = false;
if (!isset($value[$property['ID']]) || empty($value[$property['ID']]))
{
$elementValues[$code]['DESCRIPTION'] = false;
$elementValues[$code]['VALUE'] = false;
if (!$getRawData)
{
$elementValues[$code]['~DESCRIPTION'] = false;
$elementValues[$code]['~VALUE'] = false;
}
if ($property['PROPERTY_TYPE'] == Iblock\PropertyTable::TYPE_LIST)
{
$elementValues[$code]['VALUE_ENUM_ID'] = false;
$elementValues[$code]['VALUE_ENUM'] = false;
$elementValues[$code]['VALUE_XML_ID'] = false;
$elementValues[$code]['VALUE_SORT'] = false;
}
}
else
{
$cntIBLOCK_List = 10;
$cache = new CPHPCache();
$cache_time = 3600;
$cache_id = 'arIBlockListID'.$cntIBLOCK_List;
$cache_path = '/arIBlockListID/';
if ($cache_time > 0 && $cache->InitCache($cache_time, $cache_id, $cache_path))
{
$res = $cache->GetVars();
if (is_array($res["arIBlockListID"]) && (count($res["arIBlockListID"]) > 0))
$arIBlockListID = $res["arIBlockListID"];
}
if (!is_array($arIBlockListID))
{
$res = CIBlock::GetList(
Array(),
Array(
'TYPE' => 'catalog',
'SITE_ID' => SITE_ID,
'ACTIVE' => 'Y',
"CNT_ACTIVE" => "Y",
"!CODE" => 'test%'
), true
);
while($ar_res = $res->Fetch())
{
if($ar_res['ELEMENT_CNT'] > 0)
$arIBlockListID[] = $ar_res['ID'];
}
//////////// end cache /////////
if ($cache_time > 0)
{
$cache->StartDataCache($cache_time, $cache_id, $cache_path);
$cache->EndDataCache(array("arIBlockListID"=>$arIBlockListID));
}
}
у них сначала стоит время, потом действие. Должно быть наоборот.