Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Perl by InveR ( 17 years ago )
package homm::Controller::Message;
use strict;
use warnings;
#use parent 'Catalyst::Controller';
use base 'Catalyst::Controller::FormBuilder';
use base 'Catalyst::Controller::BindLex';
use Data::Dumper;
sub index :Path :Args(0) {
my ( $self, $c ) = @_;
$c->stash->{template} = 'index.tt2';
$c->forward('list');
}
sub list :Local Form('message/edit') {
my ( $self, $c, $status ) = @_;
my $messages = $c->model('HommDB::messages');
my $s = $c->stash;
my $form = $self->formbuilder;
$form->action('/message/add');
#if( $status == 1 ){ $s->{messl} = '????????? ??? ????, ??????????!';}
#elsif( $status == 2 ){ $s->{messl} = '??????? ?? ?????????!';}
$s->{user} = $c->get_user();
$s->{messages} = $messages;
$s->{form} = $form;
if( $c->check_user_roles('admin') ) { $s->{template} = 'list_admin.tt2'; }
else { $s->{template} = 'list.tt2'; }
}
sub delete :Local {
my ( $self, $c, $id ) = @_;
my $mess = $c->model('HommDB::messages')->find({id => $id});
$c->stash->{mess} = $mess;
if ($mess) {
$c->stash->{messl} = '????????? ?? '.$mess->name.' ???????!';
$mess->delete;
}
else {
$c->stash->{messl} = "???? ????????? ? id = $id";
}
$c->response->redirect($c->uri_for('list'));
}
sub edit : Local Form {
my ( $self, $c, $id ) = @_;
my $form = $self->formbuilder;
my $s = $c->stash;
my $message = $c->model('HommDB::messages')->find_or_new({id => $id});
$s->{form} = $form;
$s->{template} = 'edit.tt2';
if ( $form->submitted && $form->validate ) {
$message->name($form->field('name'));
$message->message($form->field('message'));
$message->update_or_insert;
#$s->{messl} = ( $id > 0 ? '?????????' : '??????? ?? ?????????!' ).$message->name;
$c->response->redirect( $c->uri_for('list'));
$c->detach();
} else {
$form->field( name => 'name',
value => $message->name);
$form->field( name => 'message',
value => $message->message);
#$c->response->redirect( $c->uri_for('list') );
#$c->detach();
}
}
sub add : Local Form('/message/edit') {
my ( $self, $c ) = @_;
$c->stash->{template} = 'edit.tt2';
$c->forward('edit', []);
}
1;
Revise this Paste