App-Cinema

 view release on metacpan or  search on metacpan

lib/App/Cinema/Controller/Menu.pm  view on Meta::CPAN

		@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) {
		push @result, ( map +{ $column => { -like => "%$_%" } }, @$tokens );
	}
	return @result;
}

sub about : Local {
	my ( $self, $c ) = @_;
	$c->stash->{error} = $c->config->{need_login_errmsg}
	  unless $c->user_exists();
}

sub howto : Local {
}

sub email : Local Form {
	my ( $self, $c ) = @_;

	unless ( $c->user_exists ) {
		$c->flash->{error} = $c->config->{need_login_errmsg};
		$c->res->redirect( $c->uri_for('/menu/howto') );
		return;
	}
	
	if ( $c->check_user_roles(qw/vipuser/) ) {
		$c->flash->{error} = "You're already a vipuser";
		$c->res->redirect( $c->uri_for('/menu/howto') );
		return;
	}

	my $form = $self->formbuilder;

	if ( $form->submitted && $form->validate ) {
		my $email = $c->user->obj->email_address;
		if ( !$email ) {
			$c->stash->{error} = $c->config->{email_null_errmsg};
			return;
		}
		my $subject =
		    "Upgrade to vipuser:"
		  . $c->user->obj->username . ':'
		  . time2iso(time);
		my $mailer = Mail::Mailer->new("sendmail");
		$mailer->open(
			{
				From    => $email,
				To      => $c->config->{SYSEMAIL},
				Subject => $subject,
			}
		) or die "Can't open: $!\n";
		my $body = $form->field('reason');
		print $mailer $body;
		$mailer->close();

		my $e = App::Cinema::Event->new();
		$e->uid( $c->user->obj->username );
		$e->desc(' request vipuser');
		$e->target('');
		$e->insert($c);

		$c->flash->{message} = 'Your email was sent to sysadmin.';
		$c->res->redirect( $c->uri_for('/menu/howto') );
	}
}

1;

=head1 NAME

App::Cinema::Controller::Menu - A controller that handles the request for the MENU link.

=head1 SYNOPSIS

You can call its actions in any template files either

    <a HREF="[% Catalyst.uri_for('/menu') %]">MENU</a>
    
or

    <a HREF="[% base %]menu">MENU</a>

You can also use them in any other controller modules like this:

    $c->res->redirect( $c->uri_for('/menu') );
		
=head1 DESCRIPTION

This is a controller that handles the request for the MENU link.

=head2 Methods

=over 12



( run in 0.711 second using v1.01-cache-2.11-cpan-39bf76dae61 )