/** * Format url_key value * * @param Mage_Catalog_Model_Category $object * @return Mage_Catalog_Model_Category_Attribute_Backend_Urlkey */ public function beforeSave($object) { $attributeName = $this->getAttribute()->getName(); $urlKey = $object->getData($attributeName); if ($urlKey === false) { return $this; } if ($urlKey == '') { $urlKey = $object->getName(); } if (empty($urlKey)) { $urlKey = Mage::helper('core')->uniqHash(); } $object->setData($attributeName, $object->formatUrlKey($urlKey)); $this->_validateEntityUrl($object); return $this; }
/** * @param Mage_Catalog_Model_Category $object * @return $this|Convenient_CategoryCode_Model_Attribute_Backend_Code * * @author Luke Rodgers <*****@*****.**> */ public function beforeSave($object) { $attributeName = $this->getAttribute()->getName(); $code = $object->getData($attributeName); if ($code === false) { return $this; } if ($code == '') { $code = array(); $parents = $object->getParentCategories(); foreach ($parents as $parent) { if ($parent->getLevel() > 1 && $parent->getId() != $object->getId()) { $code[] = $parent->getName(); } } $code[] = $object->getName(); $code = implode('-', $code); } $object->setData($attributeName, $object->formatUrlKey($code)); return $this; }
/** * Format url key of category into valid form * * @param Mage_Catalog_Model_Category $category * @return Mage_Catalog_Model_Category */ protected function _formatUrlKey(Mage_Catalog_Model_Category $category) { if ($category->getUrlKey() == '') { $category->setUrlKey($category->formatUrlKey($category->getName())); } else { $category->setUrlKey($category->formatUrlKey($category->getUrlKey())); } return $category; }
public function testFormatUrlKey() { $this->assertEquals('test', $this->_model->formatUrlKey('test')); $this->assertEquals('test-some-chars-5', $this->_model->formatUrlKey('test-some#-chars^5')); $this->assertEquals('test', $this->_model->formatUrlKey('test-????????')); }