[mb-commits] r9777 - in mb_server/branches/ReleaseTrack: cgi-bin/MusicBrainz/Server htdocs/comp htdocs/comp/layout htdocs/show/artist

root at musicbrainz.org root at musicbrainz.org
Sun Mar 16 16:35:12 UTC 2008


Author: luks
Date: 2008-03-16 16:35:12 +0000 (Sun, 16 Mar 2008)
New Revision: 9777

Added:
   mb_server/branches/ReleaseTrack/htdocs/show/artist/tracks.html
Modified:
   mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Artist.pm
   mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Track.pm
   mb_server/branches/ReleaseTrack/htdocs/comp/artisttitle
   mb_server/branches/ReleaseTrack/htdocs/comp/layout/topmenu
Log:
Add a page with artist's tracks

Modified: mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Artist.pm
===================================================================
--- mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Artist.pm	2008-03-16 16:09:01 UTC (rev 9776)
+++ mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Artist.pm	2008-03-16 16:35:12 UTC (rev 9777)
@@ -1234,5 +1234,13 @@
     return 0;
 }
 
+sub FindTracks
+{
+	my ($self, $offset, $limit) = @_;
+
+	require MusicBrainz::Server::Track;
+	return MusicBrainz::Server::Track->FindByArtistId($self->{DBH}, $self->GetId, $offset, $limit);
+}
+
 1;
 # eof Artist.pm

Modified: mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Track.pm
===================================================================
--- mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Track.pm	2008-03-16 16:09:01 UTC (rev 9776)
+++ mb_server/branches/ReleaseTrack/cgi-bin/MusicBrainz/Server/Track.pm	2008-03-16 16:35:12 UTC (rev 9777)
@@ -555,5 +555,29 @@
 	return MusicBrainz::Server::ReleaseTrack->FindByTrackId($self->{DBH}, $self->GetId);
 }
 
+# Find all tracks by an artist ID
+sub FindByArtistId {
+	my ($class, $dbh, $artistid, $offset, $limit) = @_;
+
+	my $sql = Sql->new($dbh);
+	$sql->Select("
+		SELECT id, gid, name, artist, length, modpending
+		FROM track WHERE artist = ? ORDER BY name OFFSET ?
+		", $artistid, $offset);
+
+	my @tracks;
+	while ($limit--) {
+		my $row = $sql->NextRowHashRef or last;
+		my $track = $class->new($dbh);
+		$track->LoadFromRow($row);
+		push @tracks, $track;
+	}
+
+	my $count = $sql->Rows;
+	$sql->Finish;
+	
+	return (\@tracks, $offset + $count);
+}
+
 1;
 # eof Track.pm

Modified: mb_server/branches/ReleaseTrack/htdocs/comp/artisttitle
===================================================================
--- mb_server/branches/ReleaseTrack/htdocs/comp/artisttitle	2008-03-16 16:09:01 UTC (rev 9776)
+++ mb_server/branches/ReleaseTrack/htdocs/comp/artisttitle	2008-03-16 16:35:12 UTC (rev 9777)
@@ -132,6 +132,7 @@
 		if ($id != &ModDefs::VARTIST_ID)
 		{
 			$m->out(qq! | <a href="/show/artist/?artistid=$id" title="Releases of this artist">Releases</a>!);
+			$m->out(qq! | <a href="/show/artist/tracks.html?artistid=$id" title="Tracks of this artist">Tracks</a>!);
 			$m->out(qq! | <a href="/show/artist/appears-on.html?artistid=$id" title="All releases this artist appears on">Appears on</a>!);
 		}
 		else

Modified: mb_server/branches/ReleaseTrack/htdocs/comp/layout/topmenu
===================================================================
--- mb_server/branches/ReleaseTrack/htdocs/comp/layout/topmenu	2008-03-16 16:09:01 UTC (rev 9776)
+++ mb_server/branches/ReleaseTrack/htdocs/comp/layout/topmenu	2008-03-16 16:35:12 UTC (rev 9777)
@@ -162,6 +162,7 @@
 			{ url => "/show/artist/aliases.html" },
 			{ url => "/show/artist/similar.html" },
 			{ url => "/show/artist/appears-on.html" },
+			{ url => "/show/artist/tracks.html" }, 
 
 			# label
 			{ url => "/showlabel.html" },

Added: mb_server/branches/ReleaseTrack/htdocs/show/artist/tracks.html




More information about the MusicBrainz-commits mailing list