Ejemplo n.º 1
0
 public function tracksAction()
 {
     $this->doNotRender();
     $centova_tracks = CentovaCast::fetchTracks($this->station);
     if (empty($centova_tracks)) {
         throw new \DF\Exception\DisplayOnly('Track list could not be loaded from CentovaCast.');
     }
     \DF\Export::csv($centova_tracks, false, $this->station->getShortName() . '_tracks_' . date('Ymd'));
 }
Ejemplo n.º 2
0
 /**
  * Signup Management
  */
 public function signupsAction()
 {
     $con = $this->_getConvention();
     switch ($this->getParam('format')) {
         case "csv":
             $export_data = array();
             $export_data[] = array('Pony/Badge Name', 'Legal Name', 'Phone Number', 'E-mail Address', 'PVL Affiliation', 'Travel Notes', 'Accommodation Notes');
             foreach ($con->signups as $row) {
                 $export_data[] = array($row->pony_name, $row->legal_name, $row->phone, $row->email, $row->pvl_affiliation, $row->travel_notes, $row->accommodation_notes);
             }
             \DF\Export::csv($export_data, TRUE, 'Signups - ' . $con->name);
             break;
         case "html":
         default:
             $this->view->signups = $con->signups;
             $this->render();
             break;
     }
 }
Ejemplo n.º 3
0
 public function timelineAction()
 {
     $stream_id = $this->getParam('stream');
     if (!$stream_id) {
         $default_stream = $this->station->getDefaultStream();
         $stream_id = $default_stream->id;
     }
     $this->view->stream_id = $stream_id;
     $songs_played_raw = $this->_getEligibleHistory($stream_id);
     // Get current events within threshold.
     $threshold = $songs_played_raw[0]['timestamp'];
     $events = \Entity\Schedule::getEventsInRange($this->station->id, $threshold, time());
     $songs = array();
     foreach ($songs_played_raw as $i => $song_row) {
         if (!isset($songs_played_raw[$i + 1])) {
             break;
         }
         $start_timestamp = $song_row['timestamp'];
         $song_row['stat_start'] = $song_row['listeners'];
         if ($i + 1 == count($songs_played_raw)) {
             $end_timestamp = $start_timestamp;
             $song_row['stat_end'] = $song_row['stat_start'];
         } else {
             $end_timestamp = $songs_played_raw[$i + 1]['timestamp'];
             $song_row['stat_end'] = $songs_played_raw[$i + 1]['listeners'];
         }
         $song_row['stat_delta'] = $song_row['stat_end'] - $song_row['stat_start'];
         foreach ($events as $event) {
             if ($event['end_time'] >= $start_timestamp && $event['start_time'] <= $end_timestamp) {
                 $song_row['event'] = $event;
                 break;
             }
         }
         $songs[] = $song_row;
     }
     $format = $this->getParam('format', 'html');
     if ($format == 'csv') {
         $this->doNotRender();
         $export_all = array();
         $export_all[] = array('Date', 'Time', 'Listeners', 'Delta', 'Likes', 'Dislikes', 'Track', 'Artist', 'Event');
         foreach ($songs as $song_row) {
             $export_row = array(date('Y-m-d', $song_row['timestamp']), date('g:ia', $song_row['timestamp']), $song_row['stat_start'], $song_row['stat_delta'], $song_row['score_likes'], $song_row['score_dislikes'], $song_row['song']['title'] ? $song_row['song']['title'] : $song_row['song']['text'], $song_row['song']['artist'], $song_row['event'] ? $song_row['event']['title'] : '');
             $export_all[] = $export_row;
         }
         \DF\Export::csv($export_all, true, $this->station->getShortName() . '_timeline_' . date('Ymd'));
         return;
     } else {
         $songs = array_reverse($songs);
         $pager = new \DF\Paginator($songs, $this->getParam('page', 1), 50);
         $this->view->pager = $pager;
     }
 }