- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/event_calendar.php
- Класс: CEventCalendar
- Вызов: CEventCalendar::GetConfirmedID
public function GetConfirmedID($iblockId, $xml_id)
{
$bCache = true;
if ($bCache)
{
$cache = new CPHPCache;
$cachePath = "event_calendar/iblock_confirmed_id/";
$cacheTime = 86400;
$cacheId = $iblockId."_".$xml_id;
if ($cache->InitCache($cacheTime, $cacheId, $cachePath))
{
$res = $cache->GetVars();
$id = $res['id'];
}
}
if (!$bCache || empty($res['id']))
{
if(!is_array($this->arConfirmedID))
{
$this->arConfirmedID = array();
}
$arConfirmedID = $this->arConfirmedID;
if(!array_key_exists($iblockId, $arConfirmedID))
{
$rsProperty = CIBlockProperty::GetList(array(), array(
'IBLOCK_ID' => $iblockId,
'CODE' => 'CONFIRMED',
));
$arProperty = $rsProperty->Fetch();
if(!$arProperty)
{
$obProperty = new CIBlockProperty;
$obProperty->Add(array(
"IBLOCK_ID" => $iblockId,
"ACTIVE" => "Y",
"PROPERTY_TYPE" => "L",
"MULTIPLE" => "N",
"NAME" => GetMessage("EC_PROP_CONFIRMED_NAME"),
"CODE" => "CONFIRMED",
"VALUES" => array(
array("SORT" => 10, "XML_ID" => "Q", "VALUE" => GetMessage("EC_PROP_CONFIRMED_UNK")),
array("SORT" => 20, "XML_ID" => "Y", "VALUE" => GetMessage("EC_PROP_CONFIRMED_YES")),
array("SORT" => 30, "XML_ID" => "N", "VALUE" => GetMessage("EC_PROP_CONFIRMED_NO")),
),
));
}
$arConfirmedID[$iblockId] = array();
$rsEnumValues = CIBlockProperty::GetPropertyEnum("CONFIRMED", array(), array(
"IBLOCK_ID" => $iblockId,
));
while($arEnum = $rsEnumValues->Fetch())
$arConfirmedID[$iblockId][$arEnum["XML_ID"]] = $arEnum["ID"];
}
$id = $arConfirmedID[$iblockId][$xml_id];
if ($bCache)
{
$cache->StartDataCache($cacheTime, $cacheId, $cachePath);
$cache->EndDataCache(array("id" => $id));
}
}
return $id;
}