예제 #1
0
 /**
  * Do a 301 redirect
  *
  * @param $pageUrl string
  */
 public function do301Redirect($pageUrl)
 {
     $redirectMap = array();
     $this->_redirector->setCode(301);
     if (($redirectMap = $this->_cache->load('toaster_301redirects', '301redirects')) === null) {
         $redirectMap = Application_Model_Mappers_RedirectMapper::getInstance()->fetchRedirectMap();
         $this->_cache->save('toaster_301redirects', $redirectMap, '301redirects', array(), Helpers_Action_Cache::CACHE_LONG);
     }
     if (!empty($redirectMap)) {
         $pageUrl = $this->_website->getUrl() . $pageUrl;
         if (isset($redirectMap[$pageUrl]) && $redirectMap[$pageUrl]) {
             $this->_redirector->gotoUrl($redirectMap[$pageUrl]);
         }
     }
 }
예제 #2
0
 public function removeredirectAction()
 {
     if ($this->getRequest()->isPost()) {
         $ids = $this->getRequest()->getParam('id');
         $redirectMapper = Application_Model_Mappers_RedirectMapper::getInstance();
         if (is_array($ids)) {
             foreach ($ids as $id) {
                 $redirectMapper->delete($redirectMapper->find($id));
             }
         } else {
             $redirectMapper->delete($redirectMapper->find($ids));
         }
         $this->_helper->cache->clean('toaster_301redirects', '301redirects');
         $this->_helper->response->success($this->_helper->language->translate('Redirect(s) removed.'));
     }
 }
예제 #3
0
 private function _update301Redirects()
 {
     $mapper = Application_Model_Mappers_RedirectMapper::getInstance();
     $sessionHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('Session');
     $cacheHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('Cache');
     $websiteHelper = Zend_Controller_Action_HelperBroker::getStaticHelper('Website');
     if (!isset($sessionHelper->oldPageUrl) || !$sessionHelper->oldPageUrl) {
         return null;
     }
     if ($sessionHelper->oldPageUrl == $this->_object->getUrl()) {
         return null;
     }
     $mapper->deleteByRedirect($this->_object->getUrl(), $sessionHelper->oldPageUrl);
     $redirect = new Application_Model_Models_Redirect();
     $redirect->setFromUrl($sessionHelper->oldPageUrl);
     $redirect->setToUrl($this->_object->getUrl());
     $redirect->setPageId($this->_object->getId());
     $redirect->setDomainFrom($websiteHelper->getUrl());
     $redirect->setDomainTo($websiteHelper->getUrl());
     $mapper->save($redirect);
     $cacheHelper->clean('toaster_301redirects', '301redirects');
 }