[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