function GetEwsCalFromToListItems($username, $password, $fromdate, $todate, $sortorder) { $rootpath = APPPATH . '\\libraries'; include $rootpath . '\\config_ews\\config_ews.php'; $a_date = explode('-', $fromdate); $ewsfromdate = $a_date[2] . '-' . $a_date[1] . '-' . $a_date[0] . 'T00:00:00'; $a_date = explode('-', $todate); $ewstodate = $a_date[2] . '-' . $a_date[1] . '-' . $a_date[0] . 'T23:59:59'; $ews = new ExchangeWebServices($hostmail, $username, $password); $request = new EWSType_FindItemType(); $request->Traversal = EWSType_ItemQueryTraversalType::SHALLOW; $request->ItemShape = new EWSType_ItemResponseShapeType(); $request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES; //$request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES; $request->CalendarView = new EWSType_CalendarViewType(); $request->CalendarView->BasePoint = 'Beginning'; $request->CalendarView->Offset = 0; //$request->CalendarView->StartDate = '2012-02-27T00:00:00'; //$request->CalendarView->EndDate = '2012-03-03T00:00:00'; $request->CalendarView->StartDate = $ewsfromdate; $request->CalendarView->EndDate = $ewstodate; $request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType(); $request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType(); $request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::CALENDAR; $a_rdv = array(); try { $response = $ews->FindItem($request); } catch (EWS_Exception $e) { if ($e->getCode() == 401) { $a_rdv['FAILT'] = array("REQUEST_RESULT" => false, 'EWS_ACTION' => 'LISTCALENDARITEM', 'STATUS_REQUEST' => 'CONNEXION_ERROR'); } else { $a_rdv['FAILT'] = array("REQUEST_RESULT" => false, 'EWS_ACTION' => 'LISTCALENDARITEM', 'STATUS_REQUEST' => $e->getMessage()); } return $a_rdv; } $DateTimeZone = timezone_open('UTC'); $DateTZ = timezone_open('Europe/Brussels'); $number_cal = $response->ResponseMessages->FindItemResponseMessage->RootFolder->TotalItemsInView; switch ($number_cal) { case 0: $a_rdv = array(); break; case 1: $a_rdv = array(); $cal_rdv = $response->ResponseMessages->FindItemResponseMessage->RootFolder->Items->CalendarItem; $a_temp = explode('T', $cal_rdv->Start); $a_date = explode('-', $a_temp[0]); $temp_start_date = $a_date[2] . '/' . $a_date[1] . '/' . $a_date[0]; $temp_start_heure = substr($a_temp[1], 0, 5); $a_temp = explode('T', $cal_rdv->End); $a_date = explode('-', $a_temp[0]); $temp_end_date = $a_date[2] . '/' . $a_date[1] . '/' . $a_date[0]; $temp_end_heure = substr($a_temp[1], 0, 5); $dateSrc = $cal_rdv->Start; $local_start = date_create($dateSrc); //date_timezone_set($local_start, $DateTimeZone); date_timezone_set($local_start, $DateTZ); $dateSrc = $cal_rdv->End; $local_end = date_create($dateSrc); //date_timezone_set($local_end, $DateTimeZone); date_timezone_set($local_end, $DateTZ); $temp_start_date = $local_start->format('d/m/Y'); $temp_start_heure = $local_start->format('H:i'); $temp_end_date = $local_end->format('d/m/Y'); $temp_end_heure = $local_end->format('H:i'); $key_array = $cal_rdv->Start . '||' . $cal_rdv->End . '||' . $cal_rdv->ItemId->Id . '||' . $cal_rdv->ItemId->ChangeKey; $a_rdv[$key_array] = array("ID" => $cal_rdv->ItemId->Id, "CHANGEKEY" => $cal_rdv->ItemId->ChangeKey, "EXCHANGE_DEBUT" => $cal_rdv->Start, "EXCHANGE_FIN" => $cal_rdv->End, "LOCAL_DEBUT" => $local_start->format('Y-m-d\\TH:i:s\\Z'), "LOCAL_FIN" => $local_end->format('Y-m-d\\TH:i:s\\Z'), "START_DATE" => $temp_start_date, "START_HEURE" => $temp_start_heure, "END_DATE" => $temp_end_date, "END_HEURE" => $temp_end_heure, "SUJET" => $cal_rdv->Subject, "OU" => $cal_rdv->Location); break; default: if ($number_cal < 1) { $a_rdv = array(); } else { $array_ech = $response->ResponseMessages->FindItemResponseMessage->RootFolder->Items->CalendarItem; for ($i = 0; $i < $number_cal; $i++) { $cal_rdv = $array_ech[$i]; //echo '<pre>'.print_r($cal_rdv, true).'</pre>'; //2012-02-27T08:30:00Z $a_temp = explode('T', $cal_rdv->Start); $a_date = explode('-', $a_temp[0]); $temp_start_date = $a_date[2] . '/' . $a_date[1] . '/' . $a_date[0]; $temp_start_heure = substr($a_temp[1], 0, 5); $a_temp = explode('T', $cal_rdv->End); $a_date = explode('-', $a_temp[0]); $temp_end_date = $a_date[2] . '/' . $a_date[1] . '/' . $a_date[0]; $temp_end_heure = substr($a_temp[1], 0, 5); $dateSrc = $cal_rdv->Start; $local_start = date_create($dateSrc); //date_timezone_set($local_start, $DateTimeZone); date_timezone_set($local_start, $DateTZ); $dateSrc = $cal_rdv->End; $local_end = date_create($dateSrc); //date_timezone_set($local_end, $DateTimeZone); date_timezone_set($local_end, $DateTZ); $temp_start_date = $local_start->format('d/m/Y'); $temp_start_heure = $local_start->format('H:i'); $temp_end_date = $local_end->format('d/m/Y'); $temp_end_heure = $local_end->format('H:i'); $key_array = $cal_rdv->Start . '||' . $cal_rdv->End . '||' . $cal_rdv->ItemId->Id . '||' . $cal_rdv->ItemId->ChangeKey; $a_rdv[$key_array] = array("ID" => $cal_rdv->ItemId->Id, "CHANGEKEY" => $cal_rdv->ItemId->ChangeKey, "EXCHANGE_DEBUT" => $cal_rdv->Start, "EXCHANGE_FIN" => $cal_rdv->End, "LOCAL_DEBUT" => $local_start->format('Y-m-d\\TH:i:s\\Z'), "LOCAL_FIN" => $local_end->format('Y-m-d\\TH:i:s\\Z'), "START_DATE" => $temp_start_date, "START_HEURE" => $temp_start_heure, "END_DATE" => $temp_end_date, "END_HEURE" => $temp_end_heure, "SUJET" => $cal_rdv->Subject, "OU" => $cal_rdv->Location); } } break; } if ($sortorder == 'D') { krsort($a_rdv); } else { ksort($a_rdv); } return $a_rdv; }
$class = explode('_', $class); if ($class[0] == 'EWSType') { require_once $class[0] . '/' . $class[1] . '.php'; } }); $ews = new ExchangeWebServices($host, $username, $password); $request = new EWSType_FindItemType(); $request->ItemShape = new EWSType_ItemResponseShapeType(); $request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES; $request->Traversal = EWSType_ItemQueryTraversalType::SHALLOW; $request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType(); $request->ParentFolderIds->FolderId = new EWSType_FolderIdType(); $request->ParentFolderIds->FolderId->Id = 'AAAUAHYtYmxvdEBsZWdhbGxhaXMuY29tAC4AAAAAAMPesS06BSxGv2vT074n9t0BAGVrQK4Od55NofVQDQdf3qoAAWioEzQAAA=='; $request->ParentFolderIds->FolderId->ChangeKey = 'AQAAABYAAABla0CuDneeTaH1UA0HX96qAAFosmUp'; // request $result = $ews->FindItem($request); if ($result->ResponseMessages->FindItemResponseMessage->ResponseCode == 'NoError' && $result->ResponseMessages->FindItemResponseMessage->ResponseClass == 'Success') { $count = $result->ResponseMessages->FindItemResponseMessage->RootFolder->TotalItemsInView; for ($i = 0; $i < $count; $i++) { $message_id = $result->ResponseMessages->FindItemResponseMessage->RootFolder->Items->Message[$i]->ItemId->Id; $request = new EWSType_GetItemType(); $request->ItemShape = new EWSType_ItemResponseShapeType(); $request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES; $request->ItemIds = new EWSType_NonEmptyArrayOfBaseItemIdsType(); $request->ItemIds->ItemId = new EWSType_ItemIdType(); $request->ItemIds->ItemId->Id = $message_id; $response = $ews->GetItem($request); //print_r($response);exit; if ($response->ResponseMessages->GetItemResponseMessage->ResponseCode == 'NoError' && $response->ResponseMessages->GetItemResponseMessage->ResponseClass == 'Success') { $message = $response->ResponseMessages->GetItemResponseMessage->Items->Message; if ($message) {
function GetEwsCalFromToListItems($username, $password, $fromdate, $todate, $sortorder) { $rootpath = addslashes($_SERVER["DOCUMENT_ROOT"]); include $rootpath . '\\config_ews\\config_ews.php'; $a_date = explode('-', $fromdate); $ewsfromdate = $a_date[2] . '-' . $a_date[1] . '-' . $a_date[0] . 'T00:00:00'; $a_date = explode('-', $todate); $ewstodate = $a_date[2] . '-' . $a_date[1] . '-' . $a_date[0] . 'T23:59:59'; $ews = new ExchangeWebServices($hostmail, $username, $password); $request = new EWSType_FindItemType(); $request->Traversal = EWSType_ItemQueryTraversalType::SHALLOW; $request->ItemShape = new EWSType_ItemResponseShapeType(); //$request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES; //$request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES; $request->CalendarView = new EWSType_CalendarViewType(); $request->CalendarView->BasePoint = 'Beginning'; $request->CalendarView->Offset = 0; //$request->CalendarView->StartDate = '2012-02-27T00:00:00'; //$request->CalendarView->EndDate = '2012-03-03T00:00:00'; $request->CalendarView->StartDate = $ewsfromdate; $request->CalendarView->EndDate = $ewstodate; $request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType(); $request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType(); $request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::CALENDAR; $a_rdv = array(); try { $response = $ews->FindItem($request); } catch (EWS_Exception $e) { if ($e->getCode() == 401) { $a_rdv['FAILT'] = array("REQUEST_RESULT" => false, 'STATUS_REQUEST' => 'CONNEXION_ERROR'); } else { $a_rdv['FAILT'] = array("REQUEST_RESULT" => false, 'STATUS_REQUEST' => $e->getMessage()); } return $a_rdv; } $number_cal = $response->ResponseMessages->FindItemResponseMessage->RootFolder->TotalItemsInView; $array_ech = $response->ResponseMessages->FindItemResponseMessage->RootFolder->Items->CalendarItem; for ($i = 0; $i < $number_cal; $i++) { $cal_rdv = $array_ech[$i]; //echo '<pre>'.print_r($cal_rdv, true).'</pre>'; //2012-02-27T08:30:00Z $a_temp = explode('T', $cal_rdv->Start); $a_date = explode('-', $a_temp[0]); $temp_start_date = $a_date[2] . '/' . $a_date[1] . '/' . $a_date[0]; $temp_start_heure = substr($a_temp[1], 0, 5); $a_temp = explode('T', $cal_rdv->End); $a_date = explode('-', $a_temp[0]); $temp_end_date = $a_date[2] . '/' . $a_date[1] . '/' . $a_date[0]; $temp_end_heure = substr($a_temp[1], 0, 5); $key_array = $cal_rdv->Start . '||' . $cal_rdv->End . '||' . $cal_rdv->ItemId->Id; $a_rdv[$key_array] = array("ID" => $cal_rdv->ItemId->Id, "CHANGEKEY" => $cal_rdv->ItemId->ChangeKey, "EXCHANGE_DEBUT" => $cal_rdv->Start, "EXCHANGE_FIN" => $cal_rdv->End, "START_DATE" => $temp_start_date, "START_HEURE" => $temp_start_heure, "END_DATE" => $temp_end_date, "END_HEURE" => $temp_end_heure, "SUJET" => $cal_rdv->Subject, "OU" => $cal_rdv->Location); } if ($sortorder == 'D') { krsort($a_rdv); } else { ksort($a_rdv); } return $a_rdv; }