Ignore:
Timestamp:
03/13/12 18:23:02 (12 years ago)
Author:
natan
Message:

Ticket #2434 - Implementacao da repeticao de eventos na agenda e adicao de suporte a relacionamentos 1x1 na API

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/services/iCal.php

    r5682 r5715  
    3737                     
    3838                       $vevent = $ical->newComponent( 'vevent' ); 
    39                          
     39                                         
    4040                       $vevent->setProperty( 'summary' , $v['summary'] ); 
    4141                       $vevent->setProperty( 'description' , $v['description'] ); 
     
    4545                       $timezone = new DateTimeZone('UTC'); 
    4646                       $apTimezone = self::nomalizeTZID(( isset($v['timezone']) && $v['timezone'] != 'null' ) ? $v['timezone'] : $params['defaultTZI']); 
    47                           
     47                       $apTimezoneOBJ = new DateTimeZone($apTimezone); 
     48                        
    4849                       $sTime = new DateTime( '@'.(int)($v['startTime'] / 1000) , $timezone );                                     
    49                        $sTime->setTimezone(new DateTimeZone($apTimezone)); 
     50                       $sTime->setTimezone($apTimezoneOBJ); 
    5051                       $eTime = new DateTime( '@'.(int)($v['endTime'] / 1000) , $timezone );   
    51                        $eTime->setTimezone(new DateTimeZone($apTimezone)); 
     52                       $eTime->setTimezone($apTimezoneOBJ); 
     53                        
     54                       if(isset($v['repeat'])) 
     55                       { 
     56                           $repeat = array(); 
     57                            
     58                           foreach ($v['repeat'] as $ir => $rv)  
     59                           { 
     60                               if($rv) 
     61                               { 
     62                                   if($ir == 'frequency') 
     63                                      $repeat['FREQ'] =  $rv; 
     64                                   else if($ir == 'endTime' ) 
     65                                   { 
     66                                       $time = new DateTime( '@'.(int)($rv / 1000) , $timezone );                                     
     67                                       $time->setTimezone($apTimezoneOBJ); 
     68                                       $repeat['until'] = $time->format(DATE_RFC822); 
     69                                   } 
     70                                   else if($ir == 'count') 
     71                                    $repeat[$ir] = $rv; 
     72                                   else if($ir !== 'schedulable' && $ir !== 'id' && $ir !== 'startTime') 
     73                                    $repeat[$ir] = explode(',', $rv); 
     74                               } 
     75                           } 
     76                           
     77                           $vevent->setProperty('rrule' , $repeat); 
     78                       } 
    5279                        
    5380                       if( isset($v['allDay']) && $v['allDay'] == 1 ) 
     
    757784                    $repeat['schedulable'] = $eventID; 
    758785                    foreach($rrule as $i => $v) 
    759                        $repeat[strtolower($i)] = $v; 
    760  
    761                     //$interation['repeat://'.$repeatID] = $repeat; 
     786                    { 
     787                        if(strtolower($i) == 'freq') 
     788                            $repeat['frequency'] = $v; 
     789                        else if(strtolower($i) == 'until') 
     790                            $repeat['endTime'] = $v; 
     791                        else 
     792                            $repeat[strtolower($i)] = $v; 
     793                    } 
     794                     
     795                    $interation['repeat://'.$repeatID] = $repeat; 
    762796                } 
    763797 
Note: See TracChangeset for help on using the changeset viewer.