当前位置: 首页>>代码示例>>PHP>>正文


PHP CCalendar::ModifyEvent方法代码示例

本文整理汇总了PHP中CCalendar::ModifyEvent方法的典型用法代码示例。如果您正苦于以下问题:PHP CCalendar::ModifyEvent方法的具体用法?PHP CCalendar::ModifyEvent怎么用?PHP CCalendar::ModifyEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CCalendar的用法示例。


在下文中一共展示了CCalendar::ModifyEvent方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: Put

 public function Put($id, $siteId, $account, $arPath)
 {
     $calendarId = $this->GetCalendarId($siteId, $account, $arPath);
     if ($calendarId == null) {
         return '404 Not Found';
     }
     CDav::Report("CDavCalendarHandler::Put", "calendarId", $calendarId);
     $request = $this->groupdav->GetRequest();
     $oldEvent = $this->GetEntry('PUT', $id, $calendarId);
     if (!is_null($oldEvent) && !is_array($oldEvent)) {
         return $oldEvent;
     }
     $charset = "utf-8";
     $arContentParameters = $request->GetContentParameters();
     //CDav::Report("CDavCalendarHandler::Put", "arContentParameters", $arContentParameters);
     if (!empty($arContentParameters['CONTENT_TYPE'])) {
         $arContentType = explode(';', $arContentParameters['CONTENT_TYPE']);
         if (count($arContentType) > 1) {
             array_shift($arContentType);
             foreach ($arContentType as $attribute) {
                 $attribute = trim($attribute);
                 list($key, $value) = explode('=', $attribute);
                 if (strtolower($key) == 'charset') {
                     $charset = strtolower($value);
                 }
             }
         }
     }
     $content = $request->GetRequestBody();
     $content = htmlspecialcharsback($content);
     //CDav::Report("CDavCalendarHandler::Put", "content", $content);
     if (is_array($oldEvent)) {
         $eventId = $oldEvent['ID'];
     } else {
         // Search the same event without ID
         $eventId = 0;
     }
     $cs = CDav::GetCharset($siteId);
     if (is_null($cs) || empty($cs)) {
         $cs = "utf-8";
     }
     $content = $GLOBALS["APPLICATION"]->ConvertCharset($content, $charset, $cs);
     CDav::Report("CDavCalendarHandler::Put", "content (converted " . $charset . " -> " . $cs . ")", $content);
     $cal = new CDavICalendar($content, $siteId);
     $arEvents = $cal->GetComponents('VTIMEZONE', false);
     if (count($arEvents) <= 0) {
         return '404 Not Found';
     }
     $arFields = $this->ConvertICalToArray($arEvents[0], $cal);
     if ($eventId > 0) {
         $arFields['ID'] = $eventId;
     } else {
         $arFields['CREATED_BY'] = $arFields['MODIFIED_BY'];
     }
     if (isset($arFields['DAV_XML_ID'])) {
         $arFields['XML_ID'] = $arFields['DAV_XML_ID'];
     }
     CDav::Report("CDavCalendarHandler::Put", "arFields", $arFields);
     $eventId = CCalendar::ModifyEvent($calendarId, $arFields);
     if (is_bool($eventId)) {
         return $eventId;
     }
     if (!is_numeric($eventId)) {
         return false;
     }
     //header('ETag: '.$this->GetETag($calendarId, $xmlId));
     //$path = preg_replace('|(.*)/[^/]*|', '\1/', $request->GetPath());
     //header('Location: '.$request->GetBaseUri().$path.$this->GetPath($xmlId));
     return "201 Created";
 }
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:70,代码来源:calendar2handler.php

示例2: DoDataSync

 public static function DoDataSync($paramUserId, &$lastError)
 {
     if (DAV_EXCH_DEBUG) {
         CDav::WriteToLog("Starting EXCHANGE sync...", "SYNCE");
     }
     $exchangeScheme = COption::GetOptionString("dav", "exchange_scheme", "http");
     $exchangeServer = COption::GetOptionString("dav", "exchange_server", "");
     $exchangePort = COption::GetOptionString("dav", "exchange_port", "80");
     $exchangeUsername = COption::GetOptionString("dav", "exchange_username", "");
     $exchangePassword = COption::GetOptionString("dav", "exchange_password", "");
     if (empty($exchangeServer)) {
         CAgent::RemoveAgent("CDavExchangeCalendar::DataSync();", "dav");
         COption::SetOptionString("dav", "agent_calendar", "N");
         return null;
     }
     static $arWeekDayMap = array("sunday" => 6, "monday" => 0, "tuesday" => 1, "wednesday" => 2, "thursday" => 3, "friday" => 4, "saturday" => 5);
     $exchange = new CDavExchangeCalendar($exchangeScheme, $exchangeServer, $exchangePort, $exchangeUsername, $exchangePassword);
     if (GW_DEBUG) {
         $exchange->Debug();
     }
     $exchangeMailbox = COption::GetOptionString("dav", "exchange_mailbox", "");
     $exchangeUseLogin = COption::GetOptionString("dav", "exchange_use_login", "Y");
     self::InitUserEntity();
     $maxNumber = 15;
     $index = 0;
     $bShouldClearCache = null;
     $paramUserId = intval($paramUserId);
     $arUserFilter = array("ACTIVE" => "Y", "!UF_DEPARTMENT" => false);
     if ($paramUserId > 0) {
         $arUserFilter["ID_EQUAL_EXACT"] = $paramUserId;
     }
     if ($exchangeUseLogin == "N") {
         $arUserFilter["!UF_BXDAVEX_MAILBOX"] = false;
     }
     $dbUserList = CUser::GetList($by = "UF_BXDAVEX_CALSYNC", $order = "asc", $arUserFilter, array("SELECT" => array("ID", "LOGIN", "UF_BXDAVEX_MAILBOX", "UF_BXDAVEX_CALSYNC")));
     while ($arUser = $dbUserList->Fetch()) {
         $index++;
         if ($index > $maxNumber) {
             break;
         }
         if (DAV_EXCH_DEBUG) {
             CDav::WriteToLog("Processing user [" . $arUser["ID"] . "] " . $arUser["LOGIN"], "SYNCE");
         }
         $GLOBALS["USER_FIELD_MANAGER"]->Update("USER", $arUser["ID"], array("UF_BXDAVEX_CALSYNC" => ConvertTimeStamp(time(), FULL)));
         $mailbox = $exchangeUseLogin == "Y" ? $arUser["LOGIN"] . $exchangeMailbox : $arUser["UF_BXDAVEX_MAILBOX"];
         if (empty($mailbox)) {
             $lastError = GetMessage("DAV_EC_EMPTY_MAILBOX");
             continue;
         }
         $arCalendarsList = $exchange->GetCalendarsList(array("mailbox" => $mailbox));
         $arErrorsTmp = $exchange->GetErrors();
         if (count($arErrorsTmp) > 0) {
             $txt = '';
             foreach ($arErrorsTmp as $v) {
                 if (!empty($txt)) {
                     $txt .= ", ";
                 }
                 $txt .= "[" . $v[0] . "] " . $v[1];
             }
             if (DAV_EXCH_DEBUG) {
                 CDav::WriteToLog("ERROR: " . $txt, "SYNCE");
             }
             $lastError = $txt;
             continue;
         }
         if (!is_array($arCalendarsList)) {
             $lastError = "Incorrect Data from Exchange Server";
             continue;
         }
         $bShouldClearCache = false;
         $arUserCalendars = array(array("XML_ID" => "calendar_" . $arUser["ID"], "NAME" => GetMessage("DAV_EC_CALENDAR"), "MODIFICATION_LABEL" => ""));
         foreach ($arCalendarsList as $value) {
             $arUserCalendars[] = array("XML_ID" => $value["XML_ID"], "NAME" => $value["NAME"], "MODIFICATION_LABEL" => $value["MODIFICATION_LABEL"]);
         }
         $tmpNumCals = count($arUserCalendars);
         $arUserCalendars = CCalendar::SyncCalendars("exchange", $arUserCalendars, "user", $arUser["ID"]);
         $tmpNumItems = 0;
         foreach ($arUserCalendars as $userCalendar) {
             $userCalendarXmlId = $userCalendar["XML_ID"];
             $userCalendarXmlId = $userCalendarXmlId == "calendar_" . $arUser["ID"] ? "calendar" : $userCalendarXmlId;
             $arCalendarItemsList = $exchange->GetList(array("mailbox" => $mailbox, "CalendarId" => $userCalendarXmlId), array("ItemShape" => "IdOnly"));
             $arUserCalendarItems = array();
             foreach ($arCalendarItemsList as $value) {
                 $arUserCalendarItems[] = array("XML_ID" => $value["XML_ID"], "MODIFICATION_LABEL" => $value["MODIFICATION_LABEL"]);
             }
             $arModifiedUserCalendarItems = CCalendar::SyncCalendarItems("exchange", $userCalendar["CALENDAR_ID"], $arUserCalendarItems);
             $tmpNumItems += count($arModifiedUserCalendarItems);
             if (is_array($arModifiedUserCalendarItems)) {
                 foreach ($arModifiedUserCalendarItems as $value) {
                     $arModifiedCalendarItem = $exchange->GetById($value["XML_ID"]);
                     if (is_array($arModifiedCalendarItem) && count($arModifiedCalendarItem) > 0) {
                         $arModifiedCalendarItem = $arModifiedCalendarItem[0];
                         $arModifyEventArray = array("ID" => $value["ID"], "NAME" => $arModifiedCalendarItem["NAME"], "DESCRIPTION" => $arModifiedCalendarItem["DESCRIPTION"], "XML_ID" => $arModifiedCalendarItem["XML_ID"], "PROPERTY_LOCATION" => $arModifiedCalendarItem["PROPERTY_LOCATION"], "DATE_FROM" => $arModifiedCalendarItem["ACTIVE_FROM"], "DATE_TO" => $arModifiedCalendarItem["ACTIVE_TO"], "SKIP_TIME" => $arModifiedCalendarItem["SKIP_TIME"], "PROPERTY_IMPORTANCE" => $arModifiedCalendarItem["PROPERTY_IMPORTANCE"], "PROPERTY_ACCESSIBILITY" => $arModifiedCalendarItem["PROPERTY_FREEBUSY"], "PROPERTY_REMIND_SETTINGS" => $arModifiedCalendarItem["PROPERTY_REMIND_SETTINGS"], "PROPERTY_PERIOD_TYPE" => "NONE", "PROPERTY_BXDAVEX_LABEL" => $arModifiedCalendarItem["MODIFICATION_LABEL"], "PRIVATE_EVENT" => strtolower($arModifiedCalendarItem["PROPERTY_SENSITIVITY"]) == 'private');
                         if ($arModifiedCalendarItem["IS_RECURRING"]) {
                             if ($arModifiedCalendarItem["RECURRING_TYPE"] == "MONTHLY_ABSOLUTE" || $arModifiedCalendarItem["RECURRING_TYPE"] == "MONTHLY_RELATIVE" || $arModifiedCalendarItem["RECURRING_TYPE"] == "MONTHLY") {
                                 $arModifyEventArray["PROPERTY_PERIOD_TYPE"] = "MONTHLY";
                             } elseif ($arModifiedCalendarItem["RECURRING_TYPE"] == "YEARLY_ABSOLUTE" || $arModifiedCalendarItem["RECURRING_TYPE"] == "YEARLY_RELATIVE" || $arModifiedCalendarItem["RECURRING_TYPE"] == "YEARLY") {
                                 $arModifyEventArray["PROPERTY_PERIOD_TYPE"] = "YEARLY";
                             } elseif ($arModifiedCalendarItem["RECURRING_TYPE"] == "WEEKLY") {
                                 $arModifyEventArray["PROPERTY_PERIOD_TYPE"] = "WEEKLY";
//.........这里部分代码省略.........
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:101,代码来源:exchangecalendar2.php

示例3: DataSync

 public static function DataSync($paramEntityType = null, $paramEntityId = 0)
 {
     if (DAV_CALDAV_DEBUG) {
         CDav::WriteToLog("Starting CalDAV sync", "SYNCC");
     }
     self::InitUserEntity();
     $maxNumber = 5;
     $index = 0;
     $bShouldClearCache = false;
     $paramEntityId = intval($paramEntityId);
     $arConnectionsFilter = array("ACCOUNT_TYPE" => 'caldav');
     if (!is_null($paramEntityType) && $paramEntityId > 0) {
         $arConnectionsFilter["ENTITY_TYPE"] = $paramEntityType;
         $arConnectionsFilter["ENTITY_ID"] = $paramEntityId;
     }
     $dbConnections = CDavConnection::GetList(array("SYNCHRONIZED" => "ASC"), $arConnectionsFilter, false, false, array("ID", "ENTITY_TYPE", "ENTITY_ID", "SERVER_SCHEME", "SERVER_HOST", "SERVER_PORT", "SERVER_USERNAME", "SERVER_PASSWORD", "SERVER_PATH", "SYNCHRONIZED"));
     while ($arConnection = $dbConnections->Fetch()) {
         $index++;
         if ($index > $maxNumber) {
             break;
         }
         if (DAV_CALDAV_DEBUG) {
             CDav::WriteToLog("Connection [" . $arConnection["ID"] . "] " . $arConnection["ENTITY_TYPE"] . "/" . $arConnection["ENTITY_ID"], "SYNCC");
         }
         CDavConnection::SetLastResult($arConnection["ID"], "[0]");
         $client = new CDavGroupdavClientCalendar($arConnection["SERVER_SCHEME"], $arConnection["SERVER_HOST"], $arConnection["SERVER_PORT"], $arConnection["SERVER_USERNAME"], $arConnection["SERVER_PASSWORD"]);
         if (CDav::UseProxy()) {
             $arProxy = CDav::GetProxySettings();
             $client->SetProxy($arProxy["PROXY_SCHEME"], $arProxy["PROXY_HOST"], $arProxy["PROXY_PORT"], $arProxy["PROXY_USERNAME"], $arProxy["PROXY_PASSWORD"]);
         }
         //$client->Debug();
         if (!$client->CheckWebdavServer($arConnection["SERVER_PATH"])) {
             $t = '';
             $arErrors = $client->GetErrors();
             foreach ($arErrors as $arError) {
                 if (strlen($t) > 0) {
                     $t .= ', ';
                 }
                 $t .= '[' . $arError[0] . '] ' . $arError[1];
             }
             CDavConnection::SetLastResult($arConnection["ID"], strlen($t) > 0 ? $t : "[404] Not Found");
             if (DAV_CALDAV_DEBUG) {
                 CDav::WriteToLog("ERROR: " . $t, "SYNCC");
             }
             continue;
         }
         $arCalendarsList = $client->GetCalendarList($arConnection["SERVER_PATH"]);
         if (count($arCalendarsList) <= 0) {
             CDavConnection::SetLastResult($arConnection["ID"], "[204] No Content");
             continue;
         }
         $arUserCalendars = array();
         foreach ($arCalendarsList as $value) {
             $arUserCalendars[] = array("XML_ID" => $value["href"], "NAME" => $value["displayname"], "DESCRIPTION" => $value["calendar-description"], "COLOR" => $value["calendar-color"], "MODIFICATION_LABEL" => $value["getctag"]);
         }
         $tmpNumCals = count($arUserCalendars);
         $tmpNumItems = 0;
         $arUserCalendars = CCalendar::SyncCalendars("caldav", $arUserCalendars, $arConnection["ENTITY_TYPE"], $arConnection["ENTITY_ID"], $arConnection["ID"]);
         foreach ($arUserCalendars as $userCalendar) {
             $bShouldClearCache = true;
             $arCalendarItemsList = $client->GetCalendarItemsList($userCalendar["XML_ID"]);
             $arUserCalendarItems = array();
             if (is_array($arCalendarItemsList)) {
                 foreach ($arCalendarItemsList as $value) {
                     if (strpos($value["getcontenttype"], "text/calendar") !== false && strpos($value["getcontenttype"], "component=vevent") !== false && isset($value["getetag"])) {
                         $arUserCalendarItems[] = array("XML_ID" => basename($value["href"], ".ics"), "MODIFICATION_LABEL" => $value["getetag"]);
                     }
                 }
             }
             $arUserCalendarItems = CCalendar::SyncCalendarItems("caldav", $userCalendar["CALENDAR_ID"], $arUserCalendarItems);
             $arHrefs = array();
             $arIdMap = array();
             foreach ($arUserCalendarItems as $value) {
                 $h = $client->GetRequestEventPath($userCalendar["XML_ID"], $value["XML_ID"]);
                 $arHrefs[] = $h;
                 $arIdMap[$h] = $value["ID"];
             }
             $arCalendarItemsList = $client->GetCalendarItemsList($userCalendar["XML_ID"], $arHrefs, true);
             $tmpNumItems += count($arCalendarItemsList);
             foreach ($arCalendarItemsList as $value) {
                 if (!array_key_exists($value["href"], $arIdMap)) {
                     continue;
                 }
                 $arModifyEventArray = array("ID" => $arIdMap[$value["href"]], "NAME" => $value["calendar-data"]["NAME"], "DETAIL_TEXT" => $value["calendar-data"]["DETAIL_TEXT"], "DETAIL_TEXT_TYPE" => $value["calendar-data"]["DETAIL_TEXT_TYPE"], "XML_ID" => basename($value["href"], ".ics"), "PROPERTY_LOCATION" => $value["calendar-data"]["PROPERTY_LOCATION"], "DT_FROM_TS" => $value["calendar-data"]["DT_FROM_TS"], "DT_TO_TS" => $value["calendar-data"]["DT_TO_TS"], "DT_LENGTH" => $value["calendar-data"]["DT_LENGTH"], "SKIP_TIME" => $value["calendar-data"]["SKIP_TIME"], "PROPERTY_IMPORTANCE" => $value["calendar-data"]["PROPERTY_IMPORTANCE"], "PROPERTY_ACCESSIBILITY" => $value["calendar-data"]["PROPERTY_ACCESSIBILITY"], "PROPERTY_REMIND_SETTINGS" => $value["calendar-data"]["PROPERTY_REMIND_SETTINGS"], "PROPERTY_PERIOD_TYPE" => "NONE", "PROPERTY_BXDAVCD_LABEL" => $value["getetag"], "VERSION" => $value["calendar-data"]["VERSION"]);
                 if (isset($value["calendar-data"]["PROPERTY_PERIOD_TYPE"]) && $value["calendar-data"]["PROPERTY_PERIOD_TYPE"] != "NONE") {
                     $arModifyEventArray["PROPERTY_PERIOD_TYPE"] = $value["calendar-data"]["PROPERTY_PERIOD_TYPE"];
                     $arModifyEventArray["PROPERTY_PERIOD_COUNT"] = $value["calendar-data"]["PROPERTY_PERIOD_COUNT"];
                     $arModifyEventArray["PROPERTY_PERIOD_ADDITIONAL"] = $value["calendar-data"]["PROPERTY_PERIOD_ADDITIONAL"];
                     $arModifyEventArray["PROPERTY_EVENT_LENGTH"] = $value["calendar-data"]["PROPERTY_EVENT_LENGTH"];
                 }
                 $k = CCalendar::ModifyEvent($userCalendar["CALENDAR_ID"], $arModifyEventArray);
             }
         }
         if (DAV_CALDAV_DEBUG) {
             CDav::WriteToLog("Sync " . intval($tmpNumCals) . " calendars, " . intval($tmpNumItems) . " items", "SYNCC");
         }
         CDavConnection::SetLastResult($arConnection["ID"], "[200] OK");
     }
     if ($bShouldClearCache) {
         CCalendar::SyncClearCache();
//.........这里部分代码省略.........
开发者ID:mrdeadmouse,项目名称:u136006,代码行数:101,代码来源:groupdavclientcalendar2.php


注:本文中的CCalendar::ModifyEvent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。