App-Cinema
view release on metacpan or search on metacpan
lib/App/Cinema/Controller/Menu.pm view on Meta::CPAN
package App::Cinema::Controller::Menu;
use Moose;
use namespace::autoclean;
use Mail::Mailer;
use HTTP::Date qw/time2iso/;
BEGIN {
extends qw/Catalyst::Controller::FormBuilder/;
our $VERSION = $App::Cinema::VERSION;
}
sub home : Local {
my ( $self, $c ) = @_;
my $result =
$c->model('MD::Item')
->search( undef, { rows => 1, order_by => { -desc => 'release_date' } } );
$c->stash->{items} = $result;
my $news =
$c->model('MD::News')
->search( undef, { rows => 1, order_by => { -desc => 'release_date' } } );
$c->stash->{news} = $news;
}
sub search : Local {
my ( $self, $c ) = @_;
my $genre = $c->req->params->{sel};
my $str = $c->req->params->{txt};
my $uri = '';
my @fields = undef;
if ( $genre eq 'item' ) {
$uri = '/item/view';
@fields = qw/title plot year/;
}
elsif ( $genre eq 'news' ) {
$uri = '/news/view';
@fields = qw/title content/;
}
elsif ( $genre eq 'event' ) {
$uri = '/user/history';
@fields = qw/target content/;
}
elsif ( $genre eq 'user' ) {
$uri = '/user/view';
@fields = qw/first_name last_name email_address username/;
}
my @tokens = $str;
@fields = cross( \@fields, \@tokens );
$c->session->{query} = \@fields;
#$c->session->{str} = $str;
$c->session->{genre} = $genre;
$c->res->redirect( $c->uri_for($uri) );
}
sub cross {
my $columns = shift || [];
my $tokens = shift || [];
map { s/%/\\%/g } @$tokens;
my @result;
foreach my $column (@$columns) {
( run in 0.631 second using v1.01-cache-2.11-cpan-39bf76dae61 )