- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/event_calendar.php
- Класс: CEventCalendar
- Вызов: CEventCalendar::InitCalendarEntry
static function InitCalendarEntry($siteId)
{
$iblockId = self::GetUserCalendarIBlockId($siteId);
$arRequiredProps = array(
"BXDAVEX_LABEL" => array(
"PROPERTY_TYPE" => "S",
"NAME" => "Exchange sync label",
),
"BXDAVCD_LABEL" => array(
"PROPERTY_TYPE" => "S",
"NAME" => "CalDAV sync label",
),
);
$dbProperty = CIBlockProperty::GetList(
array(),
array(
"IBLOCK_ID" => $iblockId,
"TYPE" => "E",
"CHECK_PERMISSIONS" => "N"
)
);
while ($arProperty = $dbProperty->Fetch())
{
if (array_key_exists($arProperty["CODE"], $arRequiredProps))
unset($arRequiredProps[$arProperty["CODE"]]);
}
$property = new CIBlockProperty;
foreach ($arRequiredProps as $requiredPropKey => $requiredPropValue)
{
$arFields = array(
"IBLOCK_ID" => $iblockId,
"ACTIVE" => "Y",
"USER_TYPE" => false,
"MULTIPLE" => 'N',
"CODE" => $requiredPropKey,
"CHECK_PERMISSIONS" => "N"
);
$property->Add(array_merge($arFields, $requiredPropValue));
}
$arRequiredFields = array(
"UF_BXDAVEX_EXCH" => array(
"USER_TYPE_ID" => "string",
"SORT" => 100,
"EDIT_FORM_LABEL_DEFAULT_MESSAGE" => "Exchange calendar",
),
"UF_BXDAVEX_EXCH_LBL" => array(
"USER_TYPE_ID" => "string",
"SORT" => 100,
"EDIT_FORM_LABEL_DEFAULT_MESSAGE" => "Exchange calendar modification label",
),
"UF_BXDAVEX_CDAV_COL" => array(
"USER_TYPE_ID" => "integer",
"SORT" => 100,
"EDIT_FORM_LABEL_DEFAULT_MESSAGE" => "CalDAV connection",
),
"UF_BXDAVEX_CDAV" => array(
"USER_TYPE_ID" => "string",
"SORT" => 100,
"EDIT_FORM_LABEL_DEFAULT_MESSAGE" => "CalDAV calendar",
),
"UF_BXDAVEX_CDAV_LBL" => array(
"USER_TYPE_ID" => "string",
"SORT" => 100,
"EDIT_FORM_LABEL_DEFAULT_MESSAGE" => "CalDAV calendar modification label",
),
);
$arUserCustomFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("IBLOCK_".$iblockId."_SECTION");
foreach ($arUserCustomFields as $key => $value)
{
if (array_key_exists($key, $arRequiredFields))
unset($arRequiredFields[$key]);
}
foreach ($arRequiredFields as $requiredFieldKey => $requiredFieldValue)
{
$arFields = array(
"ENTITY_ID" => "IBLOCK_".$iblockId."_SECTION",
"FIELD_NAME" => $requiredFieldKey,
"SHOW_IN_LIST" => "N",
"IS_SEARCHABLE" => "N",
"SHOW_FILTER" => "N",
"EDIT_IN_LIST" => "N",
);
$dbLang = CLanguage::GetList();
while ($arLang = $dbLang->Fetch())
$arFields["EDIT_FORM_LABEL"][$arLang["LID"]] = $requiredFieldValue["EDIT_FORM_LABEL_DEFAULT_MESSAGE"];
$obUserField = new CUserTypeEntity;
$obUserField->Add(array_merge($arFields, $requiredFieldValue));
}
}