/** * Build charts list. * * @return Model_Music_Track[] */ protected function _charts() { $tracks = array(); foreach ($this->tracks['this'] as $rank => $track_id) { $track = Model_Music_Track::factory($track_id); if (!$track->loaded()) { continue; } $tracks[] = array('rank' => $rank, 'last' => array_search($track_id, $this->tracks['last']), 'track' => $track); } return $tracks; }
/** * Get anchor to newsfeed item target. * * @static * @param Model_NewsfeedItem $item * @return string */ public static function get_link(Model_NewsfeedItem $item) { $text = ''; switch ($item->type) { case self::TYPE_MIX: case self::TYPE_TRACK: $track = Model_Music_Track::factory($item->data['track_id']); if ($track->loaded()) { $text = HTML::anchor(Route::model($track), '<i class="fa fa-music"></i> ' . HTML::chars($track->name), array('title' => $track->name)); } break; } return $text; }
/** * Controller default action */ public function action_index() { $this->view = new View_Page(__('Charts')); // Set actions $this->view->tab = 'charts'; $this->_set_page_actions(); // Top charts $this->view->add(View_Page::COLUMN_LEFT, $this->section_charts(Model_Music_Track::factory()->find_top_weekly(Model_Music_Track::TYPE_MIX, 10), __('Top Mixtapes'))); $this->view->add(View_Page::COLUMN_RIGHT, $this->section_charts(Model_Music_Track::factory()->find_top_weekly(Model_Music_Track::TYPE_TRACK, 10), __('Top Tracks'))); // New $section = $this->section_list(Model_Music_Track::factory()->find_new(Model_Music_Track::TYPE_MIX, 10), __('New mixtapes')); $section->class = 'col-sm-6'; $this->view->add(View_Page::COLUMN_BOTTOM, $section); $section = $this->section_list(Model_Music_Track::factory()->find_new(Model_Music_Track::TYPE_TRACK, 10), __('New tracks')); $section->class = 'col-sm-6'; $this->view->add(View_Page::COLUMN_BOTTOM, $section); }