function CheckProperties($iblockId)
{
$bRes = false;
$cachePath = $this->cachePath.'checked/';
$cacheId = $iblockId;
$cacheTime = 31536000; // 1 year
$cache = new CPHPCache;
if ($cache->InitCache($cacheTime, $cacheId, $cachePath))
{
$res = $cache->GetVars();
$bRes = $res['id'] == $iblockId;
}
if (!$bRes)
{
// Check properties for iblock element
$arProps = array(
array('CODE' => 'PERIOD_TYPE', 'TYPE' => 'S', 'NAME' => GetMessage('EC_PERIOD_TYPE')),
array('CODE' => 'PERIOD_COUNT', 'TYPE' => 'S', 'NAME' => GetMessage('EC_PERIOD_COUNT')),
array('CODE' => 'EVENT_LENGTH', 'TYPE' => 'S', 'NAME' => GetMessage('EC_EVENT_LENGTH')),
array('CODE' => 'PERIOD_ADDITIONAL', 'TYPE' => 'S', 'NAME' => GetMessage('EC_PERIOD_ADDITIONAL')),
array('CODE' => 'REMIND_SETTINGS', 'TYPE' => 'S', 'NAME' => GetMessage('EC_REMIND_SETTINGS')),
array('CODE' => 'IMPORTANCE', 'TYPE' => 'S', 'NAME' => GetMessage('EC_IMPORTANCE')),
array('CODE' => 'VERSION', 'TYPE' => 'S', 'NAME' => GetMessage('EC_VERSION')),
array('CODE' => 'IS_MEETING', 'TYPE' => 'S', 'NAME' => GetMessage('EC_IS_MEETING')),
array('CODE' => 'HOST_IS_ABSENT', 'TYPE' => 'S', 'NAME' => GetMessage('EC_HOST_IS_ABSENT')),
array('CODE' => 'MEETING_TEXT', 'TYPE' => 'S', 'USER_TYPE'=> 'HTML', 'NAME' => GetMessage('EC_MEETING_TEXT')),
array('CODE' => 'LOCATION', 'TYPE' => 'S', 'NAME' => GetMessage('EC_LOCATION')),
array('CODE' => 'ACCESSIBILITY', 'TYPE' => 'S', 'NAME' => GetMessage('EC_ACCESSIBILITY')),
array('CODE' => 'PRIVATE', 'TYPE' => 'S', 'NAME' => GetMessage('EC_PRIVATE'))
);
for ($i = 0, $l = count($arProps); $i < $l; $i++)
{
$code = $arProps[$i]['CODE'];
$rsProperty = CIBlockProperty::GetList(array(), array(
"IBLOCK_ID" => $iblockId,
"CODE" => $code
));
$arProperty = $rsProperty->Fetch();
if(!$arProperty)
{
$obProperty = new CIBlockProperty;
$obProperty->Add(array(
"IBLOCK_ID" => $iblockId,
"ACTIVE" => "Y",
"USER_TYPE" => $arProps[$i]['USER_TYPE'] ? $arProps[$i]['USER_TYPE'] : false,
"PROPERTY_TYPE" => $arProps[$i]['TYPE'],
"MULTIPLE" => $arProps[$i]['MULTIPLE'] == "Y" ? 'Y' : 'N',
"NAME" => $arProps[$i]['NAME'],
"CODE" => $arProps[$i]['CODE']
));
}
}
$cache->StartDataCache($cacheTime, $cacheId, $cachePath);
$cache->EndDataCache(array("id" => $iblockId));
}
}