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 )