Changeset 3195 for branches/2.0
- Timestamp:
- 09/01/10 16:12:47 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.0/calendar/inc/class.bocalendar.inc.php
r1955 r3195 2642 2642 } 2643 2643 2644 function create_vcard($event_array) 2645 { 2646 if(!is_array($event_array)) 2647 return null; 2648 $tmpattach="BEGIN:VCALENDAR\n" 2649 ."PRODID:-//Expresso Livre//Calendar//EN\n" 2650 ."VERSION:1.0\n"; 2651 foreach ($event_array as $event) 2652 { 2653 // It translates int to string 2654 if (!is_object($event) && !is_array($event) || !array_key_exists ('end', $event)) 2655 $event = $event_array; 2656 if ( $event['end']['month'] < 10 ) 2657 $end_event_month="0".$event['end']['month']; 2658 else 2659 $end_event_month=$event['end']['month']; 2660 if ( $event['start']['month'] < 10 ) 2661 $start_event_month="0".$event['start']['month']; 2662 else 2663 $start_event_month=$event['start']['month']; 2664 if ( $event['end']['mday'] < 10 ) 2665 $end_event_day="0".$event['end']['mday']; 2666 else 2667 $end_event_day=$event['end']['mday']; 2668 if ( $event['start']['mday'] < 10 ) 2669 $start_event_day="0".$event['start']['mday']; 2670 else 2671 $start_event_day=$event['start']['mday']; 2672 if ( $event['start']['hour'] < 10) 2673 $start_event_hour="0".$event['start']['hour']; 2674 else 2675 $start_event_hour=$event['start']['hour']; 2676 if ( $event['end']['hour'] < 10) 2677 $end_event_hour="0".$event['end']['hour']; 2678 else 2679 $end_event_hour=$event['end']['hour']; 2680 2681 if ( $event['start']['min'] < 10) 2682 $start_event_min="0".$event['start']['min']; 2683 else 2684 $start_event_min=$event['start']['min']; 2685 if ( $event['end']['min'] < 10) 2686 $end_event_min="0".$event['end']['min']; 2687 else 2688 $end_event_min=$event['end']['min']; 2689 2690 2691 $tmpattach.="BEGIN:VEVENT\n" 2692 ."DTSTART:".$event['start'][year].$start_event_month.$start_event_day."T".$start_event_hour.$start_event_min."00Z\n" 2693 ."DTEND:".$event[end][year].$end_event_month.$end_event_day."T".$end_event_hour.$end_event_min."00Z\n" 2694 ."UID:Expresso-".$event[id].$event[uid]."\n" 2695 ."LAST-MODIFIED:".time()."\n" 2696 ."DESCRIPTION:".$event[description]."\n" 2697 ."SUMMARY:".$event[title]."\n" 2698 ."LOCATION:".$event[location]."\n" 2699 ."END:VEVENT"."\n"; 2700 } 2701 $tmpattach.="END:VCALENDAR\n"; 2644 function create_vcard($event_array) 2645 { 2646 if(!is_array($event_array)) 2647 return null; 2648 2649 $sy = $event_array['start']['year']; 2650 $sm = $event_array['start']['month']; 2651 $sd = $event_array['start']['mday']; 2652 $sh = $event_array['start']['hour']; 2653 $sn = $event_array['start']['min']; 2654 $dtstart = sprintf("%04d%02d%02dT%02d%02d00Z", $sy, $sm, $sd, $sh, $sn); 2655 2656 $ey = $event_array['end']['year']; 2657 $em = $event_array['end']['month']; 2658 $ed = $event_array['end']['mday']; 2659 $eh = $event_array['end']['hour']; 2660 $en = $event_array['end']['min']; 2661 $dtend = sprintf("%04d%02d%02dT%02d%02d00Z", $ey, $em, $ed, $eh, $en); 2662 2663 // Necessário espaços após quebra-de-linha, na descrição, caso contrário 2664 // ocorrerá erro ao importar o agendamento no Outlook (erro lunar). 2665 $description = str_replace("\n","\n ", $event_array['description']); 2666 2667 $tmpattach="BEGIN:VCALENDAR\r\n" 2668 ."PRODID:-//Expresso Livre//Calendar//EN\r\n" 2669 ."VERSION:1.0\r\n" 2670 ."BEGIN:VEVENT\r\n" 2671 ."DTSTART:".$dtstart."\r\n" 2672 ."DTEND:".$dtend."\r\n" 2673 ."LAST-MODIFIED:".gmdate("Ymd\THis\Z")."\r\n" //Hora no formato UTC 2674 ."UID:Expresso-".$event_array['id'].$event_array['uid']."\r\n" 2675 ."DESCRIPTION:".$description."\r\n" 2676 ."SUMMARY:".$event_array['title']."\r\n" 2677 ."LOCATION:".$event_array['location']."\r\n" 2678 ."END:VEVENT\r\n" 2679 ."END:VCALENDAR\r\n"; 2680 2702 2681 return $tmpattach; 2703 }2682 } 2704 2683 2705 2684 /*! … … 2713 2692 */ 2714 2693 function send_update($msg_type,$to_notify,$old_event,$new_event=False,$user=False) 2715 { 2716 2717 //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"; 2694 { 2718 2695 if (!is_array($to_notify)) 2719 2696 { … … 2858 2835 $mail->IsHTML(true); 2859 2836 2860 // Aqui ï¿œenviado o email2837 // Aqui e enviado o email 2861 2838 foreach($to_notify as $userid => $statusid) 2862 2839 { … … 3157 3134 else 3158 3135 $event_month="0".$GLOBALS['bocalendar']->so->cal->event[start][month]; 3159 //attach extern vca rd3136 //attach extern vcalendar/icalendar (ics) 3160 3137 // define('context','$GLOBALS.bocalendar.so.cal.event'); 3161 3138 $tmpattach = $this->create_vcard($GLOBALS['bocalendar']->so->cal->event); … … 3178 3155 $attach_fd = fopen($filename,"w+"); 3179 3156 fwrite($attach_fd,$tmpattach); 3180 $mail->AddAttachment($filename, "extern. vcard", "base64", "text/plain"); // "application/octet-stream"3157 $mail->AddAttachment($filename, "extern.ics", "base64", "text/plain"); // "application/octet-stream" 3181 3158 fclose($attach_fd); 3182 3159 }
Note: See TracChangeset
for help on using the changeset viewer.