예제 #1
0
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;
}
예제 #2
0
파일: index.php 프로젝트: VinceBLOT/php-ews
    $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) {
예제 #3
0
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;
}