Example #1
0
 /**
  * Retrieve URL Rewrite Instance
  *
  * @return Mage_Core_Model_Url_Rewrite
  */
 public function getUrlRewrite()
 {
     if (null === $this->_urlRewrite) {
         $this->_urlRewrite = $this->_factory->getUrlRewriteInstance();
     }
     return $this->_urlRewrite;
 }
 /**
  * Join request_path column from url rewrite table
  *
  * @return Mage_Catalog_Model_Resource_Category_Flat_Collection
  */
 public function addUrlRewriteToResult()
 {
     /** @var $urlRewrite Mage_Catalog_Helper_Category_Url_Rewrite_Interface */
     $urlRewrite = $this->_factory->getCategoryUrlRewriteHelper();
     $urlRewrite->joinTableToCollection($this, $this->_getCurrentStoreId());
     return $this;
 }
Example #3
0
 /**
  * Add URL rewrites to collection
  *
  */
 protected function _addUrlRewrite()
 {
     $urlRewrites = null;
     if ($this->_cacheConf) {
         if (!($urlRewrites = Mage::app()->loadCache($this->_cacheConf['prefix'] . 'urlrewrite' . 'urlrewrite'))) {
             $urlRewrites = null;
         } else {
             $urlRewrites = unserialize($urlRewrites);
         }
     }
     if (!$urlRewrites) {
         $productIds = array();
         foreach ($this->_items as $item) {
             $productIds[] = $item->getEntityId();
         }
         #if (!count($productIds)) {
         #    return;
         #}
         $select = $this->_factory->getProductUrlRewriteHelper()->getTableSelect($productIds, $this->_urlRewriteCategory, Mage::app()->getStore()->getId());
         $urlRewrites = array();
         foreach (Mage::getSingleton('core/resource')->getConnection('core_read')->fetchAll($select) as $row) {
             if (!isset($urlRewrites[$row['product_id']])) {
                 $urlRewrites[$row['product_id']] = $row['request_path'];
             }
         }
         if ($this->_cacheConf) {
             Mage::app()->saveCache(serialize($urlRewrites), $this->_cacheConf['prefix'] . 'urlrewrite' . 'urlrewrite', array_merge($this->_cacheConf['tags'], array(Mage_Catalog_Model_Product_Url::CACHE_TAG)), $this->_cacheLifetime);
         }
     }
     foreach ($this->_items as $item) {
         if (empty($this->_urlRewriteCategory)) {
             $item->setDoNotUseCategoryId(true);
         }
         if (isset($urlRewrites[$item->getEntityId()])) {
             $item->setData('request_path', $urlRewrites[$item->getEntityId()]);
         } else {
             $item->setData('request_path', false);
         }
     }
 }
 /**
  * Joins url rewrite rules to collection
  *
  * @return Mage_Catalog_Model_Resource_Category_Collection
  */
 public function joinUrlRewrite()
 {
     $this->_factory->getCategoryUrlRewriteHelper()->joinTableToEavCollection($this, $this->_getCurrentStoreId());
     return $this;
 }
Example #5
0
 /**
  * Return parent categories of category
  *
  * @param Mage_Catalog_Model_Category $category
  * @param bool $isActive
  * @return array
  */
 public function getParentCategories($category, $isActive = true)
 {
     $categories = array();
     $select = $this->_getReadAdapter()->select()->from(array('main_table' => $this->getMainStoreTable($category->getStoreId())), array('main_table.entity_id', 'main_table.name'))->where('main_table.entity_id IN (?)', array_reverse(explode(',', $category->getPathInStore())));
     if ($isActive) {
         $select->where('main_table.is_active = ?', '1');
     }
     $select->order('main_table.path ASC');
     $urlRewrite = $this->_factory->getCategoryUrlRewriteHelper();
     $urlRewrite->joinTableToSelect($select, $category->getStoreId());
     $result = $this->_getReadAdapter()->fetchAll($select);
     foreach ($result as $row) {
         $row['id'] = $row['entity_id'];
         $categories[$row['entity_id']] = Mage::getModel('catalog/category')->setData($row);
     }
     return $categories;
 }