summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2008-11-21 09:09:20 +0100
committerYorhel <git@yorhel.nl>2008-11-21 09:09:20 +0100
commit8b65887758505710ec306bc42810394bf741b9d2 (patch)
tree4f38b6237f7997b83becb69d18d62a5e87bca92a /lib
parent0bc99015d80e6b04ecc098e33acbe931e62cc378 (diff)
Producer summary to VN pages
Diffstat (limited to 'lib')
-rw-r--r--lib/VNDB/Handler/VNPage.pm31
1 files changed, 29 insertions, 2 deletions
diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm
index 36a19a45..ede9b4a5 100644
--- a/lib/VNDB/Handler/VNPage.pm
+++ b/lib/VNDB/Handler/VNPage.pm
@@ -86,11 +86,10 @@ sub page {
end;
}
+ _producers($self, \$i, $r);
_categories($self, \$i, $v) if @{$v->{categories}};
_relations($self, \$i, $v) if @{$v->{relations}};
_anime($self, \$i, $v) if @{$v->{anime}};
-
- # TODO: producers
end;
end;
@@ -113,6 +112,34 @@ sub page {
}
+sub _producers {
+ my($self, $i, $r) = @_;
+ return if !grep @{$_->{producers}}, @$r;
+
+ my @lang;
+ for my $l (@$r) {
+ push @lang, $l->{language} if !grep $l->{language} eq $_, @lang;
+ }
+
+ Tr ++$$i % 2 ? (class => 'odd') : ();
+ td 'Producers';
+ td;
+ for my $l (@lang) {
+ my %p = map { $_->{id} => $_ } map @{$_->{producers}}, grep $_->{language} eq $l, @$r;
+ my @p = values %p;
+ next if !@p;
+ acronym class => "icons lang $l", title => $self->{languages}{$l}, ' ';
+ for (@p) {
+ a href => "/p$_->{id}", title => $_->{original}||$_->{name}, shorten $_->{name}, 30;
+ txt ' & ' if $_ != $p[$#p];
+ }
+ txt "\n";
+ }
+ end;
+ end;
+}
+
+
sub _categories {
my($self, $i, $v) = @_;