Changeset 3196 for branches/2.2/calendar/inc/class.bocalendar.inc.php
- Timestamp:
- 09/01/10 16:16:35 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2/calendar/inc/class.bocalendar.inc.php
r1949 r3196 2731 2731 } 2732 2732 2733 function create_vcard($event_array) 2734 { 2735 if(!is_array($event_array)) 2736 return null; 2737 $tmpattach="BEGIN:VCALENDAR\n" 2738 ."PRODID:-//Expresso Livre//Calendar//EN\n" 2739 ."VERSION:1.0\n"; 2740 foreach ($event_array as $event) 2741 { 2742 // It translates int to string 2743 if (!is_object($event) && !is_array($event) || !array_key_exists ('end', $event)) 2744 $event = $event_array; 2745 if ( $event['end']['month'] < 10 ) 2746 $end_event_month="0".$event['end']['month']; 2747 else 2748 $end_event_month=$event['end']['month']; 2749 if ( $event['start']['month'] < 10 ) 2750 $start_event_month="0".$event['start']['month']; 2751 else 2752 $start_event_month=$event['start']['month']; 2753 if ( $event['end']['mday'] < 10 ) 2754 $end_event_day="0".$event['end']['mday']; 2755 else 2756 $end_event_day=$event['end']['mday']; 2757 if ( $event['start']['mday'] < 10 ) 2758 $start_event_day="0".$event['start']['mday']; 2759 else 2760 $start_event_day=$event['start']['mday']; 2761 if ( $event['start']['hour'] < 10) 2762 $start_event_hour="0".$event['start']['hour']; 2763 else 2764 $start_event_hour=$event['start']['hour']; 2765 if ( $event['end']['hour'] < 10) 2766 $end_event_hour="0".$event['end']['hour']; 2767 else 2768 $end_event_hour=$event['end']['hour']; 2769 2770 if ( $event['start']['min'] < 10) 2771 $start_event_min="0".$event['start']['min']; 2772 else 2773 $start_event_min=$event['start']['min']; 2774 if ( $event['end']['min'] < 10) 2775 $end_event_min="0".$event['end']['min']; 2776 else 2777 $end_event_min=$event['end']['min']; 2778 2779 2780 $tmpattach.="BEGIN:VEVENT\n" 2781 ."DTSTART:".$event['start'][year].$start_event_month.$start_event_day."T".$start_event_hour.$start_event_min."00Z\n" 2782 ."DTEND:".$event[end][year].$end_event_month.$end_event_day."T".$end_event_hour.$end_event_min."00Z\n" 2783 ."UID:Expresso-".$event[id].$event[uid]."\n" 2784 ."LAST-MODIFIED:".time()."\n" 2785 ."DESCRIPTION:".$event[description]."\n" 2786 ."SUMMARY:".$event[title]."\n" 2787 ."LOCATION:".$event[location]."\n" 2788 ."END:VEVENT"."\n"; 2789 } 2790 $tmpattach.="END:VCALENDAR\n"; 2733 function create_vcard($event_array) 2734 { 2735 if(!is_array($event_array)) 2736 return null; 2737 2738 $sy = $event_array['start']['year']; 2739 $sm = $event_array['start']['month']; 2740 $sd = $event_array['start']['mday']; 2741 $sh = $event_array['start']['hour']; 2742 $sn = $event_array['start']['min']; 2743 $dtstart = sprintf("%04d%02d%02dT%02d%02d00Z", $sy, $sm, $sd, $sh, $sn); 2744 2745 $ey = $event_array['end']['year']; 2746 $em = $event_array['end']['month']; 2747 $ed = $event_array['end']['mday']; 2748 $eh = $event_array['end']['hour']; 2749 $en = $event_array['end']['min']; 2750 $dtend = sprintf("%04d%02d%02dT%02d%02d00Z", $ey, $em, $ed, $eh, $en); 2751 2752 // Necessário espaços após quebra-de-linha, na descrição, caso contrário 2753 // ocorrerá erro ao importar o agendamento no Outlook (erro lunar). 2754 $description = str_replace("\n","\n ", $event_array['description']); 2755 2756 $tmpattach="BEGIN:VCALENDAR\r\n" 2757 ."PRODID:-//Expresso Livre//Calendar//EN\r\n" 2758 ."VERSION:1.0\r\n" 2759 ."BEGIN:VEVENT\r\n" 2760 ."DTSTART:".$dtstart."\r\n" 2761 ."DTEND:".$dtend."\r\n" 2762 ."LAST-MODIFIED:".gmdate("Ymd\THis\Z")."\r\n" //Hora no formato UTC 2763 ."UID:Expresso-".$event_array['id'].$event_array['uid']."\r\n" 2764 ."DESCRIPTION:".$description."\r\n" 2765 ."SUMMARY:".$event_array['title']."\r\n" 2766 ."LOCATION:".$event_array['location']."\r\n" 2767 ."END:VEVENT\r\n" 2768 ."END:VCALENDAR\r\n"; 2769 2791 2770 return $tmpattach; 2792 }2771 } 2793 2772 2794 2773 /*! … … 2802 2781 */ 2803 2782 function send_update($msg_type,$to_notify,$old_event,$new_event=False,$user=False) 2804 { 2805 2806 //echo "<p>bocalendar::send_update(type=$msg_type,to_notify="; print_r($to_notify); echo ", old_event="; print_r($old_event); echo ", new_event="; print_r($new_event); echo ", user=$user)</p>\n"; 2783 { 2807 2784 if (!is_array($to_notify)) 2808 2785 { … … 2947 2924 $mail->IsHTML(true); 2948 2925 2949 // Aqui ï¿œenviado o email2926 // Aqui e enviado o email 2950 2927 foreach($to_notify as $userid => $statusid) 2951 2928 { … … 3253 3230 else 3254 3231 $event_month="0".$GLOBALS['bocalendar']->so->cal->event[start][month]; 3255 //attach extern vca rd3232 //attach extern vcalendar/icalendar (ics) 3256 3233 // define('context','$GLOBALS.bocalendar.so.cal.event'); 3257 3234 $tmpattach = $this->create_vcard($GLOBALS['bocalendar']->so->cal->event); … … 3274 3251 $attach_fd = fopen($filename,"w+"); 3275 3252 fwrite($attach_fd,$tmpattach); 3276 $mail->AddAttachment($filename, "extern. vcard", "base64", "text/plain"); // "application/octet-stream"3253 $mail->AddAttachment($filename, "extern.ics", "base64", "text/plain"); // "application/octet-stream" 3277 3254 fclose($attach_fd); 3278 3255 }
Note: See TracChangeset
for help on using the changeset viewer.