track.php 2.17 KB
Newer Older
jurgbohn's avatar
jurgbohn committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
<?php

/* Libre.fm -- a free network service for sharing your music listening habits

   Copyright (C) 2009 Libre.fm Project

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU Affero General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU Affero General Public License for more details.

   You should have received a copy of the GNU Affero General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.

*/

22
require_once('database2.php');
clint's avatar
clint committed
23 24 25 26
require_once('templating.php');
require_once('data/sanitize.php');
require_once('data/Server.php');
require_once('data/TagCloud.php');
jurgbohn's avatar
jurgbohn committed
27

jurgbohn's avatar
jurgbohn committed
28
$track = new Track(urldecode($_GET['track']), urldecode($_GET['artist']));
elleo's avatar
elleo committed
29
$smarty->assign('track', $track);
jurgbohn's avatar
jurgbohn committed
30

31
$album = new Album($track->album_name, $track->artist_name);
elleo's avatar
elleo committed
32
$smarty->assign('album', $album);
clint's avatar
clint committed
33

34
$artist = new Artist($track->artist_name);
elleo's avatar
elleo committed
35
$smarty->assign('artist', $artist);
jurgbohn's avatar
jurgbohn committed
36

clint's avatar
clint committed
37
// no idea how this would be track-relevant
38
$aTagCloud = TagCloud::GenerateTagCloud(TagCloud::scrobblesTable(), 'artist');
clint's avatar
clint committed
39 40 41 42
if (!PEAR::isError ($aTagCloud)) {
        $smarty->assign('tagcloud', $aTagCloud);
}

43 44
$adodb->SetFetchMode(ADODB_FETCH_ASSOC);
$res = $adodb->GetAll('SELECT * FROM Track WHERE lower(artist_name) = ' . $adodb->qstr(mb_strtolower($track->artist_name, 'UTF-8')) . ' AND lower(name) = ' . $adodb->qstr(mb_strtolower($track->name, 'UTF-8')));
clint's avatar
clint committed
45

clint's avatar
clint committed
46
$aOtheralbums = array();
47
$i = 0;
clint's avatar
clint committed
48

49
foreach($res as &$row) {
50
	$trow = sanitize($row);
elleo's avatar
elleo committed
51 52
	if ($trow['album']) {
		$aOtherAlbums[$i++] = new Album($trow['album'], $trow['artist']);
53
	}
54
}
clint's avatar
clint committed
55

elleo's avatar
elleo committed
56
$smarty->assign('albums', $aOtherAlbums);
clint's avatar
clint committed
57

58 59 60 61 62
$smarty->assign('extra_head_links', array(
		array(
			'rel' => 'meta',
			'type' => 'application/rdf+xml' ,
			'title' => 'Track Metadata',
tobyink's avatar
tobyink committed
63
			'href' => $base_url.'/rdf.php?fmt=xml&page='.urlencode(str_replace($base_url, '', $track->getURL()))
64 65 66
			)
	));

elleo's avatar
elleo committed
67
$smarty->display('track.tpl');
jurgbohn's avatar
jurgbohn committed
68
?>