diff options
author | Yorhel <git@yorhel.nl> | 2008-11-21 09:09:20 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2008-11-21 09:09:20 +0100 |
commit | 8b65887758505710ec306bc42810394bf741b9d2 (patch) | |
tree | 4f38b6237f7997b83becb69d18d62a5e87bca92a /lib | |
parent | 0bc99015d80e6b04ecc098e33acbe931e62cc378 (diff) |
Producer summary to VN pages
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VNDB/Handler/VNPage.pm | 31 |
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) = @_; |