diff options
Diffstat (limited to 'lib/VNDB/Handler/Producers.pm')
-rw-r--r-- | lib/VNDB/Handler/Producers.pm | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/lib/VNDB/Handler/Producers.pm b/lib/VNDB/Handler/Producers.pm deleted file mode 100644 index e25e3320..00000000 --- a/lib/VNDB/Handler/Producers.pm +++ /dev/null @@ -1,103 +0,0 @@ - -package VNDB::Handler::Producers; - -use strict; -use warnings; -use TUWF ':html', ':xml'; -use VNDB::Func; -use VNDB::Types; - - -TUWF::register( - qr{p/([a-z0]|all)} => \&list, - qr{xml/producers\.xml} => \&pxml, -); - - -sub list { - my($self, $char) = @_; - - my $f = $self->formValidate( - { get => 'p', required => 0, default => 1, template => 'page' }, - { get => 'q', required => 0, default => '' }, - ); - return $self->resNotFound if $f->{_err}; - - my($list, $np) = $self->dbProducerGet( - $char ne 'all' ? ( char => $char ) : (), - $f->{q} ? ( search => $f->{q} ) : (), - results => 150, - page => $f->{p} - ); - - $self->htmlHeader(title => 'Browse producers'); - - div class => 'mainbox'; - h1 'Browse producers'; - form action => '/p/all', 'accept-charset' => 'UTF-8', method => 'get'; - $self->htmlSearchBox('p', $f->{q}); - end; - p class => 'browseopts'; - for ('all', 'a'..'z', 0) { - a href => "/p/$_", $_ eq $char ? (class => 'optselected') : (), $_ eq 'all' ? 'ALL' : $_ ? uc $_ : '#'; - } - end; - end; - - my $pageurl = "/p/$char" . ($f->{q} ? "?q=$f->{q}" : ''); - $self->htmlBrowseNavigate($pageurl, $f->{p}, $np, 't'); - div class => 'mainbox producerbrowse'; - h1 $f->{q} ? 'Search results' : 'Producer list'; - if(!@$list) { - p 'No results found'; - } else { - # spread the results over 3 equivalent-sized lists - my $perlist = @$list/3 < 1 ? 1 : @$list/3; - for my $c (0..(@$list < 3 ? $#$list : 2)) { - ul; - for ($perlist*$c..($perlist*($c+1))-1) { - li; - cssicon 'lang '.$list->[$_]{lang}, $LANGUAGE{$list->[$_]{lang}}; - a href => "/p$list->[$_]{id}", title => $list->[$_]{original}, $list->[$_]{name}; - end; - } - end; - } - } - clearfloat; - end 'div'; - $self->htmlBrowseNavigate($pageurl, $f->{p}, $np, 'b'); - $self->htmlFooter; -} - - -# peforms a (simple) search and returns the results in XML format -sub pxml { - my $self = shift; - - my $f = $self->formValidate( - { get => 'q', required => 0, maxlength => 500 }, - { get => 'id', required => 0, multi => 1, template => 'id' }, - { get => 'r', required => 0, template => 'uint', min => 1, max => 50, default => 10 }, - ); - return $self->resNotFound if $f->{_err} || (!$f->{q} && !$f->{id} && !$f->{id}[0]); - - my($list, $np) = $self->dbProducerGet( - !$f->{q} ? () : $f->{q} =~ /^p([1-9]\d*)/ ? (id => $1) : (search => $f->{q}, sort => 'search'), - $f->{id} && $f->{id}[0] ? (id => $f->{id}) : (), - results => $f->{r}, - page => 1, - ); - - $self->resHeader('Content-type' => 'text/xml; charset=UTF-8'); - xml; - tag 'producers', more => $np ? 'yes' : 'no', query => $f->{q}||''; - for(@$list) { - tag 'item', id => $_->{id}, $_->{name}; - } - end; -} - - -1; - |