, если действия вашей формы пуст , он будет публиковать для себя.
Но, возможно, вы не хотите проверять каждую страницу, если рассылка отправляется.
Попробуйте использовать Controller Plugin, проверить объект запроса для поля ввода, назовите его уникальным, как email_newsletter, если не пусто, делать свою логику.
Файл: приложение/плагины/Newsletter.php
class Application_Plugin_Newsletter extends Zend_Controller_Plugin_Abstract {
//before dispatching starts
public function preDispatch(Zend_Controller_Request_Abstract $request) {
$email = $request->getParam('email_newsletter',NULL);
if(!is_null($mail)) {
//check if is valid
if(Zend_Validate::is($email,'')) {
//do your logic
}
else {
//set some error messages
//maybe use helper flashMessenger
}
}
}
}
Файл: Bootrap.php
protected function _initPlugins() {
$this->bootstrap('frontController');
//Get FrontController Instance
$frontController = $this->getResource('frontController');
$frontController->registerPlugin(new Application_Plugin_Newsletter());
return $frontController;
}
ИЛИ
Установить действие формы, как «/ бюллетень/подписаться. Затем в контроле «информационный бюллетень» действие «подписаться» проверяет форму и перенаправляет на страницу отправки.
Возможно, вам стоит сохранить sth как последнюю страницу, посещенную на сессии, или добавить скрытый ввод в эту форму для рассылки новостей, представляющую текущую страницу, которую вы хотите перенаправить, после того, как подписка на рассылку новостей будет выполнена.