function lastfmchart() { $app = Reg::get('app'); $lastfmdata = Art\LastFM::request($app['conf'], "chart.getTopTracks", array("page" => 0, "limit" => 20)); $tracks = array(); if (isset($lastfmdata->tracks)) { $tracks = $lastfmdata->tracks->track; } $rtracks = array(); foreach ($tracks as $track) { $artist = $track->artist->name; $name = $track->name; $vtrack = $app['openplayer']->audioSearch("{$artist} - {$name}", 0, 1); $vtrack = $vtrack['result'][0]; $rtracks[] = array('vkid' => "{$vtrack['owner_id']}_{$vtrack['aid']}", 'lyrics_id' => $vtrack['lyrics_id'], 'artist' => $artist, 'title' => $name, 'duration' => $vtrack['duration']); } return $app['view']->render(null, "part/lastfmchart.phtml", array('tracks' => $rtracks)); }
<?php use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\RedirectResponse; $app->get('/', function (Request $request) use($app) { // old ver compatibility if ($q = $request->get('q')) { $query = $app->escape($q); return new RedirectResponse("./search/{$query}"); } $lastfmdata = Art\LastFM::request($app['conf'], "chart.getTopArtists", array("limit" => $app['conf']->getOption('app', 'catalogLimit', 100))); return $app['view']->render('layout.phtml', 'index/index.phtml', array('artists' => $lastfmdata)); }); $app->get('/about', function () use($app) { return $app['view']->render('layout.phtml', 'index/about.phtml', array()); }); $app->get('/discuss', function () use($app) { return $app['view']->render('layout.phtml', 'index/discuss.phtml', array()); }); $app->get('/contact', function () use($app) { return $app['view']->render('layout.phtml', 'index/contact.phtml', array()); }); $app->get('/forcopyrighters', function () use($app) { return $app['view']->render('layout.phtml', 'index/forcopyrighters.phtml', array()); });
$q = $app->escape($query); $seo = Reg::get('seo'); $seo['title'] = "Слушать {$q} онлайн."; Reg::set('seo', $seo); $p = $request->get('p', 1); $ipp = $app['conf']->getOption('app', 'itemsPerPage', 10); $pagerfanta = new Pagerfanta(new Art\OpenPlayerPagerfantaAdapter($app['openplayer'], $q, $p, $ipp)); $pagerfanta->setCurrentPage($p); $pagerfanta->setMaxPerPage($ipp); $view = new DefaultView(); $pagination = $view->render($pagerfanta, function ($page) use($q) { return "./search/{$q}?p={$page}"; }, array('proximity' => 5, 'next_message' => 'Вперед', 'previous_message' => 'Назад')); $similar = array(); if (!strpos($q, " ")) { $lastfmdata = Art\LastFM::request($app['conf'], "artist.getSimilar", array("limit" => 10, "artist" => $q)); if (isset($lastfmdata->similarartists)) { $similar = $lastfmdata->similarartists->artist; } } Reg::set('q', $q); return $app['view']->render('layout.phtml', 'search/list.phtml', array('res' => $pagerfanta, 'pagination' => $pagination, 'q' => $q, 'similar' => $similar)); }); $app->get('/track/{vkid}', function (Request $request, $vkid) use($app) { $vtrack = $app['openplayer']->audioGetById($vkid)->audio; $seo = Reg::get('seo'); $seo['title'] = "Слушать {$vtrack->artist} - {$vtrack->title} онлайн."; Reg::set('seo', $seo); $track = (array) $vtrack; $track['vkid'] = "{$vtrack->owner_id}_{$vtrack->aid}"; return $app['view']->render('layout.phtml', 'part/track.phtml', array('track' => $track));