Changeset 2655


Ignore:
Timestamp:
04/28/10 16:58:14 (14 years ago)
Author:
wmerlotto
Message:

Ticket #938 - Corrigida a importacao de agendamentos ICS, patrocinada pela Caixa Economica Federal

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/calendar/inc/class.boicalendar.inc.php

    r678 r2655  
    12751275                        if($this->line < count($ical_text)) 
    12761276                        { 
    1277                                 $str = str_replace("\r\n",'',$ical_text[$this->line]); 
     1277                                $str = str_replace(array("\r\n","\r","\n"), '', $ical_text[$this->line]); 
     1278 
    12781279                                $this->line = $this->line + 1; 
    12791280                                while(ereg("^[[:space:]]",$ical_text[$this->line])) 
     
    12821283                                        $this->line = $this->line + 1; 
    12831284                                } 
     1285                                // Corrige a codificacao dos caracteres 
     1286                                $str = utf8_decode ( trim ($str) ); 
    12841287                                $this->debug("LINE : ".$str); 
    12851288                                return $str; 
     
    14051408                function parse_parameters(&$event,$majortype,$value) 
    14061409                { 
     1410                        $this->debug ('value: '.$value); 
    14071411                        if(!ereg('[\=\;]',$value)) 
    14081412                        { 
     
    14511455                                } 
    14521456                        } 
     1457 
     1458                        $this->debug('parse_parameters array return_value: '._debug_array($return_value,False)); 
    14531459 
    14541460                        for($i=0;$i<count($return_value);$i++) 
     
    15281534                        if($this->property[$majortype][$mode]['multiples']) 
    15291535                        { 
    1530                                 $this->debug(_debug_array($var,False)); 
     1536                                $this->debug('parse_value var array: '._debug_array($var,False)); 
    15311537                                $event[$majortype][] = $var; 
    15321538                        } 
     
    15401546                                        $t_var = $var[$majortype]; 
    15411547                                        unset($var[$majortype]); 
    1542                                         reset($t_var); 
    1543                                         while(list($key,$val) = each($t_var)) 
    1544                                         { 
    1545                                                 $var[$key] = $val; 
    1546                                         } 
    1547                                         $this->debug($majortype.' : '._debug_array($var,False)); 
     1548                                        if ( $t_var ) 
     1549                                        { 
     1550                                                reset($t_var); 
     1551                                                while(list($key,$val) = each($t_var)) 
     1552                                                { 
     1553                                                        $var[$key] = $val; 
     1554                                                } 
     1555                                                $this->debug($majortype.' : '._debug_array($var,False)); 
     1556                                        } 
    15481557                                } 
    15491558                                $this->set_var($event,$majortype,$var); 
     
    22602269                function switch_partstat($var) 
    22612270                { 
    2262 //                      $this->debug_str = True; 
    22632271                        $this->debug('PARTSTAT = '.$var); 
    2264 //                      $this->debug_str = False; 
    22652272                        if(is_string($var)) 
    22662273                        { 
     
    25672574 
    25682575                                ereg($property_regexp,$text,$temp); 
     2576                                $this->debug ('Majortype dump: '._debug_array($temp, false) ); 
    25692577                                $majortype = str_replace('-','_',strtolower($temp[1])); 
    25702578                                $value = chop($temp[2]); 
     
    27672775                                elseif($state == 'optional' || $state == 'required') 
    27682776                                { 
    2769                                         $this->debug('Mode : '.$mode.' Majortype : '.$majortype); 
     2777                                        $this->debug('Mode : '.$mode.' Majortype : '.$majortype . ' Type : '.$type); 
    27702778                                        if($do_to_text) 
    27712779                                        { 
     
    30163024                                        break; 
    30173025                        } 
     3026                        $this->debug ('ical parse result: ' . _debug_array ($ical, false)); 
    30183027                        $c_events = count($ical['event']); 
    30193028                        for($i=0;$i<$c_events;$i++) 
     
    30563065                                                $so_event->set_ex_participants($ical['event'][$i]['ex_participants']['value']); 
    30573066                                        } 
     3067                                        // Compatibilidade com agendamentos vindos do outlook/exchange 
     3068                                        if ( isset ($ical['event'][$i]['attendee']) ) 
     3069                                        { 
     3070                                                $c_attendees = count($ical['event'][$i]['attendee']); 
     3071                                                $all_attendees = ''; 
     3072                                                for ( $a=0; $a < $c_attendees; $a++ ) 
     3073                                                { 
     3074                                                        $cname = '"'. $ical['event'][$i]['attendee'][$a]['cn'] .'"'; 
     3075                                                        $email = $ical['event'][$i]['attendee'][$a]['mailto']['user']; 
     3076                                                        if ( $email ) 
     3077                                                                $email = '<'. $email .'@'. $ical['event'][$i]['attendee'][$a]['mailto']['host'] .'>'; 
     3078                                                        else 
     3079                                                                $email = ''; 
     3080                                                         
     3081                                                        $all_attendees .= $cname . $email .', '; 
     3082                                                } 
     3083                                                $this->debug ('All attendees: ' . $all_attendees); 
     3084                                                $so_event->set_ex_participants($all_attendees); 
     3085                                        } 
     3086 
    30583087                                        if($ical['event'][$i]['location']['value']) 
    30593088                                        { 
     
    32963325                                        else 
    32973326                                        { 
    3298 //owner 
     3327                                                $so_event->add_attribute('participants','A',(int)$GLOBALS['phpgw_info']['user']['account_id']); 
    32993328                                        } 
    33003329 
     
    35853614                        if($this->debug_str) 
    35863615                        { 
    3587                                 echo $str."<br>\n"; 
     3616                                //echo $str."<br>\n"; 
     3617                                $log = fopen('/tmp/calendar.log', 'a') or die("nao foi possivel abrir o arquivo /tmp/calendar.log"); 
     3618                                fwrite($log, $str . "\n"); 
     3619                                fclose($log); 
    35883620                        } 
    35893621                } 
Note: See TracChangeset for help on using the changeset viewer.