Changeset 3429


Ignore:
Timestamp:
10/28/10 15:16:29 (10 years ago)
Author:
eduardoalex
Message:

Ticket #1234 - adicionada correcao na escrita do horario do evento

Location:
branches/2.2/calendar/inc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/calendar/inc/class.bocalendar.inc.php

    r3419 r3429  
    27382738                function create_vcard($event_arrays) 
    27392739                { 
    2740                     if(!is_array($event_arrays)) 
    2741                         return null; 
    2742                     $tmpattach="BEGIN:VCALENDAR\n" 
    2743                         ."PRODID:-//Expresso Livre//Calendar//EN\n" 
    2744                         ."VERSION:1.0\n"; 
    2745                     foreach ($event_arrays as $event_array) 
    2746                     { 
    2747                         $sy = $event_array['start']['year']; 
    2748                         $sm = $event_array['start']['month']; 
    2749                         $sd = $event_array['start']['mday']; 
    2750                         $sh = $event_array['start']['hour']; 
    2751                         $sn = $event_array['start']['min']; 
    2752                         $dtstart = sprintf("%04d%02d%02dT%02d%02d00Z", $sy, $sm, $sd, $sh, $sn); 
    2753                          
    2754                         $ey = $event_array['end']['year']; 
    2755                         $em = $event_array['end']['month']; 
    2756                         $ed = $event_array['end']['mday']; 
    2757                         $eh = $event_array['end']['hour']; 
    2758                         $en = $event_array['end']['min']; 
    2759                         $dtend = sprintf("%04d%02d%02dT%02d%02d00Z", $ey, $em, $ed, $eh, $en); 
    2760  
    2761                         // Necessário espaços após quebra-de-linha, na descrição, caso contrário  
    2762                         // ocorrerá erro ao importar o agendamento no Outlook (erro lunar). 
    2763                         $description = str_replace("\n","\n ", $event_array['description']); 
    2764                          
    2765                         $tmpattach.="BEGIN:VEVENT\r\n" 
    2766                         ."DTSTART:".$dtstart."\r\n" 
    2767                         ."DTEND:".$dtend."\r\n" 
    2768                         ."LAST-MODIFIED:".gmdate("Ymd\THis\Z")."\r\n" //Hora no formato UTC 
    2769                         ."UID:Expresso-".$event_array['id'].$event_array['uid']."\r\n" 
    2770                         ."DESCRIPTION:".$description."\r\n" 
    2771                         ."SUMMARY:".$event_array['title']."\r\n" 
    2772                         ."LOCATION:".$event_array['location']."\r\n" 
    2773                         ."END:VEVENT\r\n"; 
    2774                     } 
     2740            if(!is_array($event_arrays)) 
     2741                                return null; 
     2742 
     2743                        $tmpattach="BEGIN:VCALENDAR\n" 
     2744                        ."PRODID:-//Expresso Livre//Calendar//EN\n" 
     2745                        ."VERSION:1.0\n"; 
     2746            foreach ($event_arrays as $event) 
     2747            { 
     2748                                // It translates int to string 
     2749                                if (!is_object($event) && !is_array($event) || !array_key_exists  ('end', $event)) 
     2750                                        $event = $event_arrays; 
     2751 
     2752                                //set to GMT 
     2753                                //Aqui estou pegando o horário do evento e setando para GMT de acordo com o fuso horário estabelecido nas configurações do expresso. 
     2754                                $start_time = mktime($event['start']['hour'],$event['start']['min'],$event['start']['sec'],$event['start']['month'],$event['start']['mday'],$event['start']['year']) - $GLOBALS['phpgw']->datetime->tz_offset; 
     2755                                $end_time = mktime($event['end']['hour'],$event['end']['min'],$event['end']['sec'],$event['end']['month'],$event['end']['mday'],$event['end']['year']) - $GLOBALS['phpgw']->datetime->tz_offset; 
     2756                                 
     2757                                $start_time = date("Ymd\THis\Z", $start_time); 
     2758                                $end_time = date("Ymd\THis\Z", $end_time); 
     2759         
     2760                                // Necessário espaços após quebra-de-linha, na descrição, caso contrário  
     2761                                // ocorrerá erro ao importar o agendamento no Outlook (erro lunar). 
     2762                                $description = str_replace("\n","\n ", $event['description']); 
     2763                                 
     2764                                $tmpattach.="BEGIN:VEVENT\r\n" 
     2765                                ."DTSTART:".$start_time."\r\n" 
     2766                                ."DTEND:".$end_time."\r\n" 
     2767                                ."LAST-MODIFIED:".gmdate("Ymd\THis\Z")."\r\n" //Hora no formato UTC 
     2768                                ."UID:Expresso-".$event['id'].$event['uid']."\r\n" 
     2769                                ."DESCRIPTION:".$description."\r\n" 
     2770                                ."SUMMARY:".$event['title']."\r\n" 
     2771                                ."LOCATION:".$event['location']."\r\n" 
     2772                                ."END:VEVENT\r\n"; 
     2773                        } 
    27752774                    $tmpattach.="END:VCALENDAR\r\n"; 
    27762775                    return $tmpattach; 
  • branches/2.2/calendar/inc/class.boicalendar.inc.php

    r3207 r3429  
    29652965                        return $filename; 
    29662966                } 
     2967                 
     2968                function print_r2($val){ 
     2969                echo "<pre>"; 
     2970                print_r($val); 
     2971                echo  "</pre>"; 
     2972                }                
    29672973 
    29682974                function import($mime_msg='', $from_ajax = false) 
     
    31263132                                                { 
    31273133                                                        $temp_time = $so_event->maketime($ical['event'][$i][$i_datevar]) + $GLOBALS['phpgw']->datetime->tz_offset; 
     3134                                                         
     3135                                                        //verifica se o vcard importado tem a referência do timezone 
     3136                                                        if($ical['event'][$i][$i_datevar]['tzid']) { 
     3137                                                                $dateTimeZone = new DateTimeZone( $ical['event'][$i][$i_datevar]['tzid'] ); 
     3138                                                                $dateTime = new DateTime("now", $dateTimeZone); 
     3139                                                                $timeOffset = $dateTimeZone->getOffset($dateTime);       
     3140                                                                 
     3141                                                                //tira o time zone do vcard para só ficar o time zone do sistema 
     3142                                                                $temp_time = $temp_time - $timeOffset; 
     3143                                                        } 
     3144                                                         
    31283145                                                        @reset($date_array); 
    31293146                                                        while(list($key,$var) = each($date_array)) 
Note: See TracChangeset for help on using the changeset viewer.