public function Add($arParams) { global $USER; $res = null; $calendar_id = $arParams['calendar_id']; $calIblock = COption::GetOptionInt('intranet', 'iblock_calendar', null, $arParams['site_id']); $calIblockSection = CEventCalendar::GetSectionIDByOwnerId($USER->GetID(), 'USER', $calIblock); if (!$calendar_id) { $calendar_id = CUserOptions::GetOption('timeman', 'default_calendar', 0); } if ($calIblockSection > 0) { $arCalendars = CEventCalendar::GetCalendarList(array($calIblock, $calIblockSection, 0, 'USER')); if (count($arCalendars) == 1) { if ($calendar_id && $calendar_id != $arCalendars[0]['ID']) { CUserOptions::DeleteOption('timeman', 'default_calendar'); } $calendar_id = $arCalendars[0]['ID']; } else { $bCalendarFound = false; $arCalsList = array(); foreach ($arCalendars as $cal) { if ($cal['ID'] == $calendar_id) { $bCalendarFound = true; break; } $arCalsList[] = array('ID' => $cal['ID'], 'NAME' => $cal['NAME'], 'COLOR' => $cal['COLOR']); } if (!$bCalendarFound) { $bReturnRes = true; $res = array('error_id' => 'CHOOSE_CALENDAR', 'error' => array('TEXT' => GetMessage('TM_CALENDAR_CHOOSE'), 'CALENDARS' => $arCalsList)); } } } if (!$bReturnRes) { if (!$calIblockSection) { $calIblockSection = 'none'; } $today = CTimeMan::RemoveHoursTS(time()); $data = array('DATE_FROM' => $today + CTimeMan::MakeShortTS($arParams['from']), 'DATE_TO' => $today + CTimeMan::MakeShortTS($arParams['to']), 'NAME' => $arParams['name'], 'ABSENCE' => $arParams['absence'] == 'Y'); $obCalendar = new CEventCalendar(); $obCalendar->Init(array('ownerType' => 'USER', 'ownerId' => $USER->GetID(), 'bOwner' => true, 'iblockId' => $calIblock, 'bCache' => false)); $arPermissions = $obCalendar->GetPermissions(array('setProperties' => true)); $arRes = array('iblockId' => $obCalendar->iblockId, 'ownerType' => $obCalendar->ownerType, 'ownerId' => $obCalendar->ownerId, 'bNew' => true, 'fullUrl' => $obCalendar->fullUrl, 'userId' => $obCalendar->userId, 'pathToUserCalendar' => $obCalendar->pathToUserCalendar, 'pathToGroupCalendar' => $obCalendar->pathToGroupCalendar, 'userIblockId' => $obCalendar->userIblockId, 'calendarId' => $calendar_id, 'sectionId' => $calIblockSection, 'dateFrom' => ConvertTimeStamp($data['DATE_FROM'], 'FULL'), 'dateTo' => ConvertTimeStamp($data['DATE_TO'], 'FULL'), 'name' => $data['NAME'], 'desc' => '', 'prop' => array('ACCESSIBILITY' => $data['ABSENCE'] ? 'absent' : 'busy'), 'notDisplayCalendar' => true); if ($GLOBALS['BX_TIMEMAN_RECENTLY_ADDED_EVENT_ID'] = $obCalendar->SaveEvent($arRes)) { if ($_REQUEST['cal_set_default'] == 'Y') { CUserOptions::SetOption('timeman', 'default_calendar', $calendar_id); } } } return $res; }
protected function _GetPersonalSettings() { global $USER_FIELD_MANAGER; $arPersonalSettings = array(); $dbRes = CUser::GetByID($this->USER_ID); if ($arUser = $dbRes->Fetch()) { $arFields = array('UF_TM_MAX_START', 'UF_TM_MIN_FINISH', 'UF_REPORT_PERIOD', 'UF_LAST_REPORT', 'UF_TM_MIN_DURATION', 'UF_TM_REPORT_REQ', 'UF_TM_REPORT_TPL', 'UF_TM_FREE', 'UF_TM_ALLOWED_DELTA'); $arPersonalSettings = array('UF_TIMEMAN' => $arUser['UF_TIMEMAN'], 'UF_TM_MAX_START' => CTimeMan::MakeShortTS($arUser['UF_TM_MAX_START']), 'UF_TM_MIN_FINISH' => CTimeMan::MakeShortTS($arUser['UF_TM_MIN_FINISH']), 'UF_TM_MIN_DURATION' => CTimeMan::MakeShortTS($arUser['UF_TM_MIN_DURATION']), 'UF_TM_REPORT_REQ' => $arUser['UF_TM_REPORT_REQ'], 'UF_LAST_REPORT_DATE' => $arUser['UF_LAST_REPORT_DATE'], 'UF_REPORT_PERIOD' => $arUser['UF_REPORT_PERIOD'], 'UF_TM_REPORT_DATE' => $arUser['UF_TM_REPORT_DATE'], 'UF_TM_TIME' => $arUser['UF_TM_TIME'], 'UF_TM_DAY' => $arUser['UF_TM_DAY'], 'UF_TM_REPORT_TPL' => $arUser['UF_TM_REPORT_TPL'], 'UF_TM_FREE' => $arUser['UF_TM_FREE'], 'UF_TM_ALLOWED_DELTA' => $arUser['UF_TM_ALLOWED_DELTA']); $this->UF_DEPARTMENT = $arUser['UF_DEPARTMENT']; if ($arPersonalSettings['UF_TIMEMAN'] || $arPersonalSettings['UF_TM_REPORT_REQ'] || $arPersonalSettings['UF_TM_FREE'] || $arPersonalSettings['UF_REPORT_PERIOD']) { $arAllFields = $USER_FIELD_MANAGER->GetUserFields('USER'); if ($arPersonalSettings['UF_TIMEMAN']) { $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arAllFields['UF_TIMEMAN']['ID'], 'ID' => $arPersonalSettings['UF_TIMEMAN'])); if ($arRes = $dbRes->Fetch()) { $arPersonalSettings['UF_TIMEMAN'] = $arRes['XML_ID']; } } if ($arPersonalSettings['UF_REPORT_PERIOD']) { $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arAllFields['UF_REPORT_PERIOD']['ID'], 'ID' => $arPersonalSettings['UF_REPORT_PERIOD'])); if ($arRes = $dbRes->Fetch()) { $arPersonalSettings['UF_REPORT_PERIOD'] = $arRes['XML_ID']; } } if ($arPersonalSettings['UF_TM_REPORT_REQ']) { $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arAllFields['UF_TM_REPORT_REQ']['ID'], 'ID' => $arPersonalSettings['UF_TM_REPORT_REQ'])); if ($arRes = $dbRes->Fetch()) { $arPersonalSettings['UF_TM_REPORT_REQ'] = $arRes['XML_ID']; } } if ($arPersonalSettings['UF_TM_FREE']) { $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arAllFields['UF_TM_FREE']['ID'], 'ID' => $arPersonalSettings['UF_TM_FREE'])); if ($arRes = $dbRes->Fetch()) { $arPersonalSettings['UF_TM_FREE'] = $arRes['XML_ID']; } } } } return $arPersonalSettings; }