Changeset 7068 for trunk/prototype/services/iCal.php
- Timestamp:
- 08/20/12 11:15:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/services/iCal.php
r7028 r7068 58 58 $sTime = new DateTime('@' . (int) ($v['startTime'] / 1000), $timezone); 59 59 $sTime->setTimezone($apTimezoneOBJ); 60 $eTime = new DateTime('@' . (int) ($v['endTime'] / 1000), $timezone);61 $eTime->setTimezone($apTimezoneOBJ);62 60 63 61 if (( isset($v['repeat']) ) && ( isset($v['repeat']['frequency']) && $v['repeat']['frequency'] && $v['repeat']['frequency'] != 'none' )) … … 65 63 66 64 67 if (isset($v['allDay']) && $v['allDay'] == 1) {68 $vevent->setProperty('dtstart', $sTime->format(DATE_RFC822), array("VALUE" => "DATE")); 69 $vevent->setProperty('dtend', $eTime->format(DATE_RFC822), array("VALUE" => "DATE"));70 71 } else {72 $vevent->setProperty('dtstart', $sTime->format(DATE_RFC822), array('TZID' => $apTimezone)); 73 $vevent->setProperty('dtend', $eTime->format(DATE_RFC822), array('TZID' => $apTimezone));74 65 if (isset($v['allDay']) && $v['allDay'] == 1) 66 { 67 $vevent->setProperty('dtstart', $sTime->format(DATE_RFC822), array("VALUE" => "DATE")); 68 $vevent->setProperty('X-MICROSOFT-CDO-ALLDAYEVENT', 'TRUE'); 69 } else 70 { 71 $vevent->setProperty('dtstart', $sTime->format(DATE_RFC822), array('TZID' => $apTimezone)); 72 $vevent->setProperty('X-MICROSOFT-CDO-ALLDAYEVENT', 'FALSE'); 75 73 } 76 74 … … 137 135 } 138 136 137 ob_start(); 138 print_r( "\n dtStart \n"); 139 print_r($sTime->format(DATE_RFC822)); 140 print_r( "\n dtEnd \n"); 141 print_r( $eTime->format(DATE_RFC822)); 142 $output = ob_get_clean(); 143 file_put_contents( "/tmp/acoutinho.log", $output , FILE_APPEND); 144 139 145 if(isset($v['due']) && $v['due'] != '' && (int)$v['due'] > 0){ 140 146 $dueTime = new DateTime('@' . (int) ($v['due'] / 1000), $timezone); … … 182 188 break; 183 189 } 184 } 190 } 191 192 ob_start(); 193 print_r( "\n Ical Gerado \n"); 194 print_r( $ical->createCalendar()); 195 $output = ob_get_clean(); 196 file_put_contents( "/tmp/acoutinho.log", $output , FILE_APPEND); 185 197 186 198 return $ical->createCalendar(); … … 282 294 $sTime = new DateTime('@' . (int) ($v['startTime'] / 1000), $timezone); 283 295 $sTime->setTimezone($apTimezoneOBJ); 284 $eTime = new DateTime('@' . (int) ($v['endTime'] / 1000), $timezone);285 $eTime->setTimezone($apTimezoneOBJ);286 296 287 297 if (isset($v['allDay']) && $v['allDay'] == 1) { 288 298 $todo->setProperty('dtstart', $sTime->format(DATE_RFC822), array("VALUE" => "DATE")); 289 $todo->setProperty('dtend', $eTime->format(DATE_RFC822), array("VALUE" => "DATE"));290 299 //$todo->setProperty('X-MICROSOFT-CDO-ALLDAYEVENT', 'TRUE'); 291 300 } else { 292 301 $todo->setProperty('dtstart', $sTime->format(DATE_RFC822), array('TZID' => $apTimezone)); 293 $todo->setProperty('dtend', $eTime->format(DATE_RFC822), array('TZID' => $apTimezone));294 302 //$todo->setProperty('X-MICROSOFT-CDO-ALLDAYEVENT', 'FALSE'); 295 303 } … … 372 380 public function createAlarms($alarms, &$vevent) 373 381 { 374 foreach ($alarms as $ ia => $va)382 foreach ($alarms as $va) 375 383 { 376 384 $valarm = new valarm(); … … 1741 1749 $interation['schedulable://' . $eventID] = $schedulable; 1742 1750 1743 1744 1745 1746 1747 1751 return $interation; 1748 1752 } … … 1784 1788 1785 1789 /* Data de Termino */ 1786 $endTime = $component->getProperty('dtend', false, true); 1787 1788 $tzid = isset($endTime['params']['TZID']) ? $endTime['params']['TZID'] : $params['X-WR-TIMEZONE']; 1789 1790 if($tzid) 1791 $tzid = self::nomalizeTZID($tzid); 1792 1793 if (isset($endTime['params']['VALUE']) && $endTime['params']['VALUE'] === 'DATE') 1794 $schedulable['endTime'] = self::date2timestamp($endTime['value']) - self::_getTzOffset('UTC', $schedulable['timezone'], '@' . self::date2timestamp($endTime['value'])) . '000'; 1795 else if ($tzid && !isset($endTime['value']['tz'])) /* Caso não tenha um tz na data mais exista um parametro TZID deve ser aplicado o timezone do TZID a data */ 1796 $schedulable['endTime'] = self::date2timestamp($endTime['value']) - self::_getTzOffset('UTC', $tzid, '@' . self::date2timestamp($endTime['value'])) . '000'; 1797 else { 1798 $schedulable['endTime'] = self::date2timestamp($endTime['value']) . '000'; 1799 if (strpos($params['prodid'], 'Outlook') !== false) { 1800 //Se o ics veio em utc não aplicar horario de verão 1801 $eTime = new DateTime('@' . (int) ($schedulable['endTime'] / 1000), new DateTimeZone('UTC')); 1802 $eTime->setTimezone($objTimezone); 1803 if ($eTime->format('I')) 1804 $schedulable['endTime'] = $schedulable['endTime'] - 3600000; 1805 } 1806 } 1790 if($due = $component->getProperty('due', false, true)){ 1791 1792 $tzid = isset($due['params']['TZID']) ? $due['params']['TZID'] : $params['X-WR-TIMEZONE']; 1793 1794 if($tzid) 1795 $tzid = self::nomalizeTZID($tzid); 1796 1797 if (isset($due['params']['VALUE']) && $due['params']['VALUE'] === 'DATE') 1798 $schedulable['due'] = self::date2timestamp($due['value']) - self::_getTzOffset('UTC', $schedulable['timezone'], '@' . self::date2timestamp($due['value'])) . '000'; 1799 else if ($tzid && !isset($endTime['value']['tz'])) /* Caso não tenha um tz na data mais exista um parametro TZID deve ser aplicado o timezone do TZID a data */ 1800 $schedulable['due'] = self::date2timestamp($due['value']) - self::_getTzOffset('UTC', $tzid, '@' . self::date2timestamp($due['value'])) . '000'; 1801 else { 1802 $schedulable['due'] = self::date2timestamp($due['value']) . '000'; 1803 if (strpos($params['prodid'], 'Outlook') !== false) { 1804 //Se o ics veio em utc não aplicar horario de verão 1805 $dueTime = new DateTime('@' . (int) ($schedulable['due'] / 1000), new DateTimeZone('UTC')); 1806 $dueTime->setTimezone($objTimezone); 1807 1808 if ($dueTime->format('I')) 1809 $schedulable['due'] = $schedulable['due'] - 3600000; 1810 } 1811 } 1812 $schedulable['endTime'] = $schedulable['due']; 1813 }else 1814 $schedulable['endTime'] = $schedulable['startTime']; 1807 1815 1808 1816 $schedulable['type'] = '2'; //type schedulable … … 2003 2011 $interation['schedulable://' . $todoID] = $schedulable; 2004 2012 2005 2013 return $interation; 2006 2014 } 2007 2015
Note: See TracChangeset
for help on using the changeset viewer.