После небольшой обрабоки напильником разница в двух сходных функциях стала совсем незначительной
, из чего следует, что объединить их — как два байта переслать, что сейчас и сделаю. Критерий выбора того, что делать (рисовать пустую форму или пытаться обработать ввод) тоже несложен: если есть входные данные (1c1 < sub change : Local { --- > sub change_do : Local { 29,33c29,49 < # Write form to stash variable for use in template < $c->stash->{'widget_result'} = $w->result; < # Set the template < $c->stash->{'template'} = 'hw_form.tt2'; < $c->stash->{'title'} = 'Изменить пароль'; --- > > # process the form parameters > my $result = $w->process($c->req); > $c->stash->{'widget_result'} = $result; > > # if there are no errors save the form values to the object > if ($result->has_errors) { > $c->stash->{'title'} = 'Пароли неверны'; > $c->stash->{'message'} = 'Исправьте ошибки'; > $c->stash->{'message_class'} = 'excl'; > > # Set the template > $c->stash->{'template'} = 'hw_form.tt2'; > } > else { # Без ошибок > $user->update({ > 'password' => Digest::SHA1::sha1_hex($c->req->params->{'password'}) > }); > # Set a status message for the user > $c->forward('/message', ['Пароль успешно изменён', 'ok', '/user/show/' . $id]); > } # if 42c58 < } # sub change --- > } # sub change_do
$c->req->params не пуст) — обрабатываем, если нет — просто рисуем.
no subject
Date: 2007-08-03 06:45 am (UTC)+1
Free best online.
Date: 2008-04-23 05:48 pm (UTC)