Ejemplo n.º 1
0
 /**
  * Implement logic of custom rewrites
  *
  * @return bool
  */
 protected function _rewriteDb()
 {
     if (null === $this->_rewrite->getStoreId() || false === $this->_rewrite->getStoreId()) {
         $this->_rewrite->setStoreId($this->_app->getStore()->getId());
     }
     $requestCases = $this->_getRequestCases();
     $this->_rewrite->loadByRequestPath($requestCases);
     $fromStore = $this->_request->getQuery('___from_store');
     if (!$this->_rewrite->getId() && $fromStore) {
         $stores = $this->_app->getStores(false, true);
         if (!empty($stores[$fromStore])) {
             /** @var $store Mage_Core_Model_Store */
             $store = $stores[$fromStore];
             $fromStoreId = $store->getId();
         } else {
             return false;
         }
         $this->_rewrite->setStoreId($fromStoreId)->loadByRequestPath($requestCases);
         if (!$this->_rewrite->getId()) {
             return false;
         }
         // Load rewrite by id_path
         $currentStore = $this->_app->getStore();
         $this->_rewrite->setStoreId($currentStore->getId())->loadByIdPath($this->_rewrite->getIdPath());
         $this->_setStoreCodeCookie($currentStore->getCode());
         $targetUrl = $currentStore->getBaseUrl() . $this->_rewrite->getRequestPath();
         $this->_sendRedirectHeaders($targetUrl, true);
     }
     if (!$this->_rewrite->getId()) {
         return false;
     }
     $this->_request->setAlias(Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS, $this->_rewrite->getRequestPath());
     $this->_processRedirectOptions();
     return true;
 }
Ejemplo n.º 2
0
 /**
  * Save CMS page URL rewrite additional information
  *
  * @param Mage_Core_Model_Url_Rewrite $model
  */
 private function _handleCmsPageUrlRewriteSave($model)
 {
     /** @var $cmsPage Mage_Cms_Model_Page */
     $cmsPage = $this->_getCmsPage();
     if (!$cmsPage->getId()) {
         return;
     }
     /** @var $cmsRewrite Mage_Cms_Model_Page_Urlrewrite */
     $cmsRewrite = Mage::getModel('Mage_Cms_Model_Page_Urlrewrite');
     $cmsRewrite->load($model->getId(), 'url_rewrite_id');
     if (!$cmsRewrite->getId()) {
         $cmsRewrite->setUrlRewriteId($model->getId());
         $cmsRewrite->setCmsPageId($cmsPage->getId());
         $cmsRewrite->save();
     }
 }
Ejemplo n.º 3
0
 /**
  * Prevent loading disallowed urlrewrites
  *
  * @param Mage_Core_Model_Url_Rewrite $model
  */
 public function coreUrlRewriteLoadAfter($model)
 {
     if (!$model->getId()) {
         return;
     }
     if (!$this->_role->hasStoreAccess($model->getStoreId())) {
         $this->_throwLoad();
     }
 }
Ejemplo n.º 4
0
 public function saveRewrite(Mage_Core_Model_Url_Rewrite $rewrite)
 {
     if (!$rewrite->getId()) {
         $old = Mage::getModel('core/url_rewrite')->setStoreId($rewrite->getStoreId())->loadByIdPath($rewrite->getIdPath());
         if (!$old) {
             $old->loadByRequestPath($rewrite->getRequestPath());
         }
         if ($old) {
             $rewrite->setId($old->getId());
         }
     }
     $rewrite->save();
     $this->_rewrites[$rewrite->getStoreId()][$rewrite->getIdPath()] = $rewrite;
     $this->_paths[$rewrite->getStoreId()][$rewrite->getRequestPath()] = $rewrite->getIdPath();
     return $this;
 }