Ejemplo n.º 1
0
 /**
  * Override URL rewrite data, basing on current CMS page
  *
  * @param Mage_Core_Model_Url_Rewrite $model
  */
 private function _handleCmsPageUrlRewrite($model)
 {
     /** @var $cmsPage Mage_Cms_Model_Page */
     $cmsPage = $this->_getCmsPage();
     if (!$cmsPage->getId()) {
         return;
     }
     /** @var $cmsPageUrlRewrite Mage_Cms_Model_Page_Urlrewrite */
     $cmsPageUrlRewrite = Mage::getModel('Mage_Cms_Model_Page_Urlrewrite');
     $idPath = $cmsPageUrlRewrite->generateIdPath($cmsPage);
     $model->setIdPath($idPath);
     // if redirect specified try to find friendly URL
     $generateTarget = true;
     if (Mage::helper('Mage_Core_Helper_Url_Rewrite')->hasRedirectOptions($model)) {
         /** @var $rewriteResource Mage_Catalog_Model_Resource_Url */
         $rewriteResource = Mage::getResourceModel('Mage_Catalog_Model_Resource_Url');
         /** @var $rewrite Mage_Core_Model_Url_Rewrite */
         $rewrite = $rewriteResource->getRewriteByIdPath($idPath, $model->getStoreId());
         if (!$rewrite) {
             Mage::throwException(Mage::helper('Mage_Adminhtml_Helper_Data')->__('Chosen cms page does not associated with the chosen store.'));
         } elseif ($rewrite->getId() && $rewrite->getId() != $model->getId()) {
             $model->setTargetPath($rewrite->getRequestPath());
             $generateTarget = false;
         }
     }
     if ($generateTarget) {
         $model->setTargetPath($cmsPageUrlRewrite->generateTargetPath($cmsPage));
     }
 }