• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/event_calendar.php
  • Класс: CEventCalendar
  • Вызов: CEventCalendar::CheckProperties
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));
	}
}