/** * Recursively apply custom design settings to product if it's container * category custom_use_for_products option is setted to 1. * If not or product shows not in category - applyes product's internal settings * * @deprecated after 1.4.2.0-beta1, functionality moved to Mage_Catalog_Model_Design * @param Mage_Catalog_Model_Category|Mage_Catalog_Model_Product $object * @param Mage_Core_Model_Layout_Update $update */ protected function _applyCustomDesignSettings($object, $update) { if ($object instanceof Mage_Catalog_Model_Category) { // lookup the proper category recursively if ($object->getCustomUseParentSettings()) { $parentCategory = $object->getParentCategory(); if ($parentCategory && $parentCategory->getId() && $parentCategory->getLevel() > 1) { $this->_applyCustomDesignSettings($parentCategory, $update); } return; } // don't apply to the product if (!$object->getCustomApplyToProducts()) { return; } } if ($this->_designProductSettingsApplied) { return; } $date = $object->getCustomDesignDate(); if (array_key_exists('from', $date) && array_key_exists('to', $date) && Mage::app()->getLocale()->isStoreDateInInterval(null, $date['from'], $date['to'])) { if ($object->getPageLayout()) { $this->_designProductSettingsApplied['layout'] = $object->getPageLayout(); } $this->_designProductSettingsApplied['update'] = $object->getCustomLayoutUpdate(); } }
/** * Recursively apply custom design settings to category if it's option * custom_use_parent_settings is setted to 1 while parent option is not * * @deprecated after 1.4.2.0-beta1, functionality moved to Mage_Catalog_Model_Design * @param Mage_Catalog_Model_Category $category * @param Mage_Core_Model_Layout_Update $update * * @return Mage_Catalog_CategoryController */ protected function _applyCustomDesignSettings($category, $update) { if ($category->getCustomUseParentSettings() && $category->getLevel() > 1) { $parentCategory = $category->getParentCategory(); if ($parentCategory && $parentCategory->getId()) { return $this->_applyCustomDesignSettings($parentCategory, $update); } } $validityDate = $category->getCustomDesignDate(); if (array_key_exists('from', $validityDate) && array_key_exists('to', $validityDate) && Mage::app()->getLocale()->isStoreDateInInterval(null, $validityDate['from'], $validityDate['to'])) { if ($category->getPageLayout()) { $this->getLayout()->helper('page/layout')->applyHandle($category->getPageLayout()); } $update->addUpdate($category->getCustomLayoutUpdate()); } return $this; }
protected function getSubcategoriesHeadingData(Mage_Catalog_Model_Category $startCategory) { $data = array(); $rootId = $this->getLayer()->getCurrentStore()->getRootCategoryId(); //Get parent category of the current category if ($rootId != $startCategory->getId()) { $parent = $startCategory->getParentCategory(); if ($parent->getId() != $rootId && !$this->isExcluded($parent->getId())) { $data[] = $this->_prepareItemData($parent, -1); } //Add current category $data[] = $this->_prepareItemData($startCategory, 0); } return $data; }
public function testGetParentCategory() { $category = $this->_model->getParentCategory(); $this->assertInstanceOf('Mage_Catalog_Model_Category', $category); $this->assertSame($category, $this->_model->getParentCategory()); }
protected function getSubcategoriesHeadingData(Mage_Catalog_Model_Category $startCategory) { $data = array(); $rootId = $this->getLayer()->getCurrentStore()->getRootCategoryId(); //Get parent category of the current category if ($rootId != $startCategory->getId()) { $parent = $startCategory->getParentCategory(); if ($parent->getId() != $rootId && !$this->isExcluded($parent->getId())) { $data[] = $this->_prepareItemData($parent, -1); } //Add current category //Workaround to load qty properly $current = $this->getChildrenData($startCategory->getParentCategory()); foreach ($current as $head) { if ($head['id'] == $startCategory->getId()) { $data[] = $head; break; } } } return $data; }