diff options
author | Yorhel <git@yorhel.nl> | 2008-11-14 12:25:20 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2008-11-14 12:25:20 +0100 |
commit | 46fb3641fd0c516061858c8af028404c71608920 (patch) | |
tree | 3d8ccddecd37fb62170a88dad44b8cd8441d2040 /lib/VNDB/Handler/Producers.pm | |
parent | e5d79246f94a08ebd8f421b84735416cf942c44a (diff) |
Added producer list + search
Although the actual listing of producers is still pending...
Diffstat (limited to 'lib/VNDB/Handler/Producers.pm')
-rw-r--r-- | lib/VNDB/Handler/Producers.pm | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/VNDB/Handler/Producers.pm b/lib/VNDB/Handler/Producers.pm index 4cecdaa7..822fb084 100644 --- a/lib/VNDB/Handler/Producers.pm +++ b/lib/VNDB/Handler/Producers.pm @@ -11,6 +11,7 @@ YAWF::register( qr{p([1-9]\d*)(?:\.([1-9]\d*))?} => \&page, qr{p(?:([1-9]\d*)/edit|/new)} => \&edit, qr{p([1-9]\d*)/(lock|hide)} => \&mod, + qr{p/([a-z0]|all)} => \&list, ); @@ -164,5 +165,49 @@ sub mod { } +sub list { + my($self, $char) = @_; + + my $f = $self->formValidate( + { name => 'p', required => 0, default => 1, template => 'int' }, + { name => 'q', required => 0, default => '' }, + ); + return 404 if $f->{_err}; + + my($list, $np) = $self->dbProducerGet( + $char ne 'all' ? ( char => $char ) : (), + $f->{q} ? ( search => $f->{q} ) : (), + results => 50, + page => $f->{p} + ); + + $self->htmlHeader(title => 'Browse producers'); + + div class => 'mainbox'; + h1 'Browse producers'; + form class => 'search', action => '/p/all', 'accept-charset' => 'UTF-8', method => 'get'; + fieldset; + input type => 'text', name => 'q', id => 'q', class => 'text'; + input type => 'submit', class => 'submit', value => 'Search!'; + end; + end; + p class => 'browseopts'; + for ('all', 'a'..'z', 0) { + a href => "/p/$_", $_ eq $char ? (class => 'optselected') : (), $_ ? 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'; + p $_->{name} for (@$list); + end; + $self->htmlBrowseNavigate($pageurl, $f->{p}, $np, 'b'); + $self->htmlFooter; +} + + 1; |