summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2008-11-12 14:46:42 +0100
committerYorhel <git@yorhel.nl>2008-11-12 14:46:42 +0100
commit727714378e8eb8a8c1ebd8a4b7d69df0148a1e4e (patch)
treef409cdee87a24fae87ad95cf70a9d57b3645d0c8 /lib
parent55639ecf1be3a69f77f836daa1cc017ad6e8d4b1 (diff)
Expanded producer page with VN info and created a nice page layout
Diffstat (limited to 'lib')
-rw-r--r--lib/VNDB/DB/Producers.pm22
-rw-r--r--lib/VNDB/Handler/Producers.pm30
2 files changed, 49 insertions, 3 deletions
diff --git a/lib/VNDB/DB/Producers.pm b/lib/VNDB/DB/Producers.pm
index fda367f5..d8a46774 100644
--- a/lib/VNDB/DB/Producers.pm
+++ b/lib/VNDB/DB/Producers.pm
@@ -53,7 +53,27 @@ sub dbProducerGet {
$select, join(' ', @join), \%where,
);
- # TODO: get vn
+ if(@$r && $o{what} =~ /vn/) {
+ my %r = map {
+ $r->[$_]{vn} = [];
+ ($r->[$_]{id}, $_)
+ } 0..$#$r;
+
+ push @{$r->[$r{$_->{pid}}]{vn}}, $_ for (@{$self->dbAll(q|
+ SELECT MAX(vp.pid) AS pid, v.id, MAX(vr.title) AS title, MAX(vr.original) AS original, MIN(rr.released) AS date
+ FROM releases_producers vp
+ JOIN releases_rev rr ON rr.id = vp.rid
+ JOIN releases r ON r.latest = rr.id
+ JOIN releases_vn rv ON rv.rid = rr.id
+ JOIN vn v ON v.id = rv.vid
+ JOIN vn_rev vr ON vr.id = v.latest
+ WHERE vp.pid IN(!l)
+ AND v.hidden = FALSE
+ GROUP BY v.id
+ ORDER BY date|,
+ [ keys %r ]
+ )});
+ }
return wantarray ? ($r, $np) : $r;
}
diff --git a/lib/VNDB/Handler/Producers.pm b/lib/VNDB/Handler/Producers.pm
index 0ec582c5..2583ad13 100644
--- a/lib/VNDB/Handler/Producers.pm
+++ b/lib/VNDB/Handler/Producers.pm
@@ -14,14 +14,40 @@ YAWF::register(
sub page {
my($self, $pid) = @_;
- my $p = $self->dbProducerGet(id => $pid)->[0];
+ my $p = $self->dbProducerGet(id => $pid, what => 'vn')->[0];
return 404 if !$p->{id};
$self->htmlHeader(title => $p->{name});
$self->htmlMainTabs(p => $p);
- div class => 'mainbox';
+ div class => 'mainbox producerpage';
h1 $p->{name};
h2 class => 'alttitle', $p->{original} if $p->{original};
+ p class => 'center';
+ txt "$self->{languages}{$p->{lang}} \L$self->{producer_types}{$p->{type}}";
+ if($p->{website}) {
+ txt "\n";
+ a href => $p->{website}, $p->{website};
+ }
+ end;
+
+ p class => 'description', $p->{desc}
+ if $p->{desc};
+
+ end;
+ div class => 'mainbox producerpage';
+ h1 'Visual Novel Relations';
+ if(!@{$p->{vn}}) {
+ p 'We have currently no visual novels related to this producer.';
+ } else {
+ ul;
+ for (@{$p->{vn}}) {
+ li;
+ txt "$_->{date} ";
+ a href => "/v$_->{id}", title => $_->{original}, $_->{title};
+ end;
+ }
+ end;
+ }
end;
$self->htmlFooter;
}