'calendarToSchedulable') , array('schedulable') , array('filter' => array( '=' , 'calendar' , $calendar))); // // $eventsIds = array(); // foreach ($eventLinks as &$eventLink) // $eventsIds[] = $eventLink['schedulable']; // // $events = Controller::find(array('concept' => 'schedulable') , false , array('filter' => array('IN','id',$eventsIds) , 'deepness' => '2' )); // $ics = Controller::format( array( 'service' => 'iCal' ) , $events ); // // } // //} if( isset($params['calendar']) ) { $eventLinks = Controller::find(array('concept' => 'calendarToSchedulable') , array('schedulable') , array('filter' => array( '=' , 'calendar' , $params['calendar']))); $calendar = Controller::read(array('concept' => 'calendar' , 'id' => $params['calendar'])); $eventsIds = array(); foreach ($eventLinks as &$eventLink) $eventsIds[] = $eventLink['schedulable']; $events = Controller::find(array('concept' => 'schedulable') , false , array('filter' => array('IN','id',$eventsIds) , 'deepness' => '2' )); $ics = Controller::format( array( 'service' => 'iCal' ) , $events , array('defaultTZI' => $calendar['timezone']) ); header( 'Content-Type: text/calendar; charset=utf-8' ); header( 'Content-Length: '. mb_strlen($ics) ); header( 'Content-Disposition: attachment; filename="Calendar.ics"' ); header( 'Cache-Control: max-age=10' ); echo $ics; die(); } if( isset($params['event']) ) { $event = Controller::read(array('concept' => 'schedulable' , 'id' => $params['event'])); $attachmentRelation = Controller::find( array( 'concept' => 'schedulableToAttachment' ) , false ,array( 'filter' => array('=', 'schedulable' , $event['id']) )); if(is_array($attachmentRelation)){ $attachments = array(); foreach($attachmentRelation as $key => $value) if(isset($value['attachment']) || !!$value['attachment']) $attachments[$key] = $value['attachment']; //Pega os anexos sem source $event['attachments'] = Controller::find( array( 'concept' => 'attachment' ) , false ,array( 'filter' => array('IN', 'id' , $attachments) )); } $ics = Controller::format( array( 'service' => 'iCal' ) , array($event) , array('defaultTZI' => $event['timezone']) ); header( 'Content-Type: text/calendar; charset=utf-8' ); header( 'Content-Length: '. mb_strlen($ics) ); header( 'Content-Disposition: attachment; filename="'.$event['summary'].'.ics"' ); header( 'Cache-Control: max-age=10' ); echo $ics; die(); } ?>