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(); } }