source: trunk/prototype/modules/calendar/export.php @ 5341

Revision 5341, 2.3 KB checked in by wmerlotto, 12 years ago (diff)

Ticket #2434 - Commit inicial do novo módulo de agenda do Expresso - expressoCalendar

Line 
1<?php
2require_once '../../app/controller.php';
3$params = $_GET;
4
5//if( isset($params['calendars']) )
6//{
7//    if(!is_array($params['calendars']))
8//       $params['calendars'] = array($params['calendars']);
9//   
10//   foreach ($params['calendars'] as &$calendar)
11//   {
12//       $eventLinks = Controller::find(array('concept' => 'calendarToSchedulable') , array('schedulable') , array('filter' => array( '=' , 'calendar' , $calendar)));
13//       
14//       $eventsIds = array();
15//       foreach ($eventLinks as &$eventLink)
16//           $eventsIds[] = $eventLink['schedulable'];
17//       
18//       $events = Controller::find(array('concept' => 'schedulable') , false , array('filter' => array('IN','id',$eventsIds) , 'deepness' => '2' ));
19//       $ics = Controller::format( array( 'service' => 'iCal' ) , $events );
20//       
21//   }
22//
23//}
24
25if( isset($params['calendar']) )
26{
27    $eventLinks = Controller::find(array('concept' => 'calendarToSchedulable') , array('schedulable') , array('filter' => array( '=' , 'calendar' , $params['calendar'])));
28    $calendar = Controller::read(array('concept' => 'calendar' , 'id' => $params['calendar']));
29    $eventsIds = array();
30    foreach ($eventLinks as &$eventLink)
31       $eventsIds[] = $eventLink['schedulable'];
32
33    $events = Controller::find(array('concept' => 'schedulable') , false , array('filter' => array('IN','id',$eventsIds) , 'deepness' => '2' ));
34    $ics = Controller::format( array( 'service' => 'iCal' ) , $events , array('defaultTZI' => $calendar['timezone']) );
35
36    header( 'Content-Type: text/calendar; charset=utf-8' );
37    header( 'Content-Length: '.  mb_strlen($ics) );
38    header( 'Content-Disposition: attachment; filename="Calendar.ics"' );
39    header( 'Cache-Control: max-age=10' );
40    echo $ics;
41    die();
42}
43
44if( isset($params['event']) )
45{   
46    $event = Controller::read(array('concept' => 'schedulable' , 'id' => $params['event']));
47    $ics = Controller::format( array( 'service' => 'iCal' ) , array($event) , array('defaultTZI' => $event['timezone']) );
48   
49    header( 'Content-Type: text/calendar; charset=utf-8' );
50    header( 'Content-Length: '.  mb_strlen($ics) );
51    header( 'Content-Disposition: attachment; filename="'.$event['summary'].'.ics"' );
52    header( 'Cache-Control: max-age=10' );
53    echo $ics;
54    die();
55}
56
57?>
Note: See TracBrowser for help on using the repository browser.