Example #1
0
 /**
  * Create Custom URL Rewrite for old product/category URL after url_key changed
  * It will perform permanent redirect from old URL to new URL
  *
  * @param array $rewriteData New rewrite data
  * @param Varien_Object $rewrite Rewrite model
  * @return Mage_Catalog_Model_Url
  */
 protected function _saveRewriteHistory($rewriteData, $rewrite)
 {
     if ($rewrite instanceof Varien_Object && $rewrite->getId()) {
         $rewriteData['target_path'] = $rewriteData['request_path'];
         $rewriteData['request_path'] = $rewrite->getRequestPath();
         $rewriteData['id_path'] = $this->generateUniqueIdPath();
         $rewriteData['is_system'] = 0;
         $rewriteData['options'] = 'RP';
         // Redirect = Permanent
         $this->getResource()->saveRewriteHistory($rewriteData);
     }
     return $this;
 }
Example #2
0
 /**
  * Save urlindexer rewrite URL
  *
  * @param array $rewriteData
  * @param int|Varien_Object $rewrite
  * @return Loewenstark_UrlIndexer_Model_Resource_Url
  */
 protected function _saveUrlIndexerRewrite($rewriteData, $rewrite)
 {
     // check if is a category
     if (isset($rewriteData['category_id']) && !empty($rewriteData['category_id']) && isset($rewriteData['is_system']) && intval($rewriteData['is_system']) == 1 && (isset($rewriteData['product_id']) && is_null($rewriteData['product_id']) || !isset($rewriteData['product_id']))) {
         $adapter = $this->_getWriteAdapter();
         try {
             $adapter->insertOnDuplicate($this->getTable('urlindexer/url_rewrite'), $rewriteData);
         } catch (Exception $e) {
             Mage::logException($e);
             Mage::throwException(Mage::helper('urlindexer')->__('An error occurred while saving the URL rewrite in urlindexer'));
         }
         // delete old entry!
         if ($rewrite && $rewrite->getId()) {
             if ($rewriteData['request_path'] != $rewrite->getRequestPath()) {
                 // Update existing rewrites history and avoid chain redirects
                 $where = array('target_path = ?' => $rewrite->getRequestPath());
                 if ($rewrite->getStoreId()) {
                     $where['store_id = ?'] = (int) $rewrite->getStoreId();
                 }
                 $adapter->delete($this->getTable('urlindexer/url_rewrite'), $where);
             }
         }
     }
 }
Example #3
0
 /**
  * Saves rewrite history
  *
  * @param array $rewriteData
  * @return Mage_Catalog_Model_Resource_Url
  */
 public function saveRewriteHistory($rewriteData)
 {
     $rewriteData = new Varien_Object($rewriteData);
     // check if rewrite exists with save request_path
     $rewrite = $this->getRewriteByRequestPath($rewriteData->getRequestPath(), $rewriteData->getStoreId());
     if ($rewrite === false) {
         // create permanent redirect
         $this->_getWriteAdapter()->insert($this->getMainTable(), $rewriteData->getData());
     }
     return $this;
 }
 /**
  * Get item URL
  *
  * In most cases should be overriden in descendant blocks
  *
  * @param Varien_Object $item
  * @return string
  */
 public function getItemUrl($item)
 {
     return $this->getBaseUrl() . $item->getRequestPath();
 }