public function exportVideoReport(SS_HTTPRequest $request) { try { $query_string = $request->getVars(); $venues = isset($query_string['venues']) ? $query_string['venues'] : ''; $tracks = isset($query_string['tracks']) ? html_entity_decode($query_string['tracks']) : 'all'; $start_date = isset($query_string['start_date']) && $query_string['start_date'] ? date('Y-m-d', strtotime($query_string['start_date'])) : ''; $end_date = isset($query_string['end_date']) && $query_string['end_date'] ? date('Y-m-d', strtotime($query_string['end_date'])) : ''; $search_term = isset($query_string['term']) ? $query_string['term'] : ''; $summit_id = intval($request->param('SUMMIT_ID')); $summit = $this->summit_repository->getById($summit_id); if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } $filename = "video_report-" . date('Ymd') . ".xlsx"; $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("OpenStack"); $objPHPExcel->getProperties()->setTitle("Video Output List"); // day sheets $days = $summit->getDates(); foreach ($days as $day) { $active_sheet = $objPHPExcel->createSheet(); $active_sheet->setTitle(date('n-d', strtotime($day->Date))); $active_sheet->fromArray(array('Date', 'Time', 'Tags', 'Event', 'Description', 'Room', 'Venue', 'Display', 'YoutubeID'), NULL, 'A1'); $day_report = $this->presentation_repository->getPresentationMaterialBySummitAndDay($summit_id, $day->Date, $tracks, $venues, $start_date, $end_date, $search_term); foreach ($day_report as $key2 => $val) { $row = $key2 + 2; $start_time = $summit->convertDateFromUTC2TimeZone($val['start_date'], 'g:ia'); $end_time = $summit->convertDateFromUTC2TimeZone($val['end_date'], 'g:ia'); $date = $summit->convertDateFromUTC2TimeZone($val['start_date'], 'm/d/Y'); $time = $start_time . ' - ' . $end_time; unset($val['start_date']); unset($val['end_date']); unset($val['id']); $val['date'] = $date; $val['time'] = $time; $val['tags'] .= ',' . $val['speakers'] . ',OpenStack Summit Austin'; unset($val['speakers']); $active_sheet->fromArray($val, NULL, 'A' . $row); } } $objPHPExcel->removeSheetByIndex(0); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); header('Content-type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename="' . $filename . '"'); $objWriter->save('php://output'); return; } catch (NotFoundEntityException $ex2) { SS_Log::log($ex2->getMessage(), SS_Log::WARN); return $this->notFound($ex2->getMessage()); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::ERR); return $this->serverError(); } }
public function getVideoReport(SS_HTTPRequest $request) { try { $summit_id = intval($request->param('SUMMIT_ID')); $summit = $this->summit_repository->getById($summit_id); $query_string = $request->getVars(); $report = $this->report_repository->getByName('video_report'); $tracks = ''; if (isset($query_string['tracks']) && $query_string['tracks'] != '') { $tracks = html_entity_decode($query_string['tracks']); } else { if ($report) { $tracks = $report->getConfigByName('Tracks'); } } $venues = isset($query_string['venues']) ? $query_string['venues'] : ''; $start_date = isset($query_string['start_date']) && $query_string['start_date'] ? date('Y-m-d', strtotime($query_string['start_date'])) : ''; $end_date = isset($query_string['end_date']) && $query_string['end_date'] ? date('Y-m-d', strtotime($query_string['end_date'])) : ''; $search_term = isset($query_string['search_term']) ? $query_string['search_term'] : ''; if (is_null($summit)) { throw new NotFoundEntityException('Summit', sprintf(' id %s', $summit_id)); } $days = $summit->getDates(); $report_array = array(); foreach ($days as $day) { $day_report = $this->presentation_repository->getPresentationMaterialBySummitAndDay($summit_id, $day->Date, $tracks, $venues, $start_date, $end_date, $search_term); $report_array[$day->Label] = array(); foreach ($day_report as $videos) { $report_array[$day->Label][] = array('id' => intVal($videos['id']), 'date' => $summit->convertDateFromUTC2TimeZone($videos['start_date'], 'm/d/Y'), 'start_time' => $summit->convertDateFromUTC2TimeZone($videos['start_date'], 'g:ia'), 'end_time' => $summit->convertDateFromUTC2TimeZone($videos['end_date'], 'g:ia'), 'tags' => $videos['tags'] . ',' . $videos['speakers'] . ',OpenStack Summit Austin', 'title' => $videos['event'], 'description' => $videos['description'], 'room' => $videos['room'], 'venue' => $videos['venue'], 'display' => intval($videos['display']), 'youtube' => $videos['youtube_id']); } } $return_array['tracks'] = $tracks ? explode(',', $tracks) : ''; $return_array['report'] = $report_array; return $this->ok($return_array); } catch (NotFoundEntityException $ex2) { SS_Log::log($ex2->getMessage(), SS_Log::WARN); return $this->notFound($ex2->getMessage()); } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::ERR); return $this->serverError(); } }