public function processAction()
 {
     if (!$this->_request->isXmlHttpRequest() || !$this->_request->isPost()) {
         $this->_redirect('/admin/tools/');
     }
     $return = array();
     $redirectGateway = new Tools_Model_RedirectGateway();
     if ($this->_request->getParam('redirect_id')) {
         $form = $redirectGateway->getForm('ModifyRedirect');
     } else {
         $form = $redirectGateway->getForm('CreateRedirect');
     }
     if ($form->isValid($this->_request->getPost())) {
         $redirect = $redirectGateway->create($form->getValues());
         $redirect->save();
         $flashMessenger = $this->_helper->getHelper('FlashMessenger');
         $flashMessenger->setNamespace('notifications')->addMessage('Redirect updated.');
         $return['notification']['target'] = '.notifications';
         $return['notification']['content'] = $this->view->displayMessages(true);
         $return['redirect']['location'] = '/admin/tools/redirection';
     } else {
         $return['formErrors'] = $form->getMessages();
     }
     $this->_helper->json->sendJson($return);
 }
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     $updateService = new FFR_Service_Update();
     if ($updateService->currentSchemaVersion('tools') < 4) {
         return;
     }
     $currentUrl = $request->getRequestUri();
     $redirectGateway = new Tools_Model_RedirectGateway();
     if ($requestedPage = $redirectGateway->evaluateURLForRedirect($currentUrl)) {
         $this->_redirector = new Zend_Controller_Action_Helper_Redirector();
         $this->_redirector->setCode((int) $requestedPage->redirect_code)->setExit(true)->setGoToUrl($requestedPage->redirect_target);
         $dateTime = new FFR_View_Helper_DateTime();
         $requestedPage->redirect_count++;
         $requestedPage->redirect_last_source = $currentUrl;
         $requestedPage->redirect_time = $dateTime->dateTime(null, 'YYYY-MM-dd hh:mm:ss');
         $requestedPage->save();
         $this->_redirector->redirectAndExit();
     }
 }