protected function _beforeSave() { if ($this->isRoot()) { $this->setIdentifier(''); } else { if ($this->getPageId()) { // Edit existant page $identifiers = explode('/', $this->getIdentifier()); array_pop($identifiers); } else { // Add new page $parent = $this->getParentPage(); $identifiers = explode('/', $parent->getIdentifier()); $this->getResource()->increaseChildrenCount($this, $parent->getPathIds()); $this->setCreateDefaultPermission(true); } $identifier = $this->getUrlKey() ? $this->getUrlKey() : $this->getTitle(); array_push($identifiers, $this->formatUrlKey($identifier)); $this->setIdentifier(trim(implode('/', $identifiers), '/')); } parent::_beforeSave(); $oldPage = Mage::getModel('cms/page')->load($this->getPageId()); // old page data if (!$this->isRoot() && Mage::helper('cms/page')->isCreatePermanentRedirects($this->getStoreId())) { // 301 Redirects $this->getResource()->updatePermanentRedirects($oldPage, $this); } $this->getResource()->updateChildrenIdentifiers($oldPage, $this->getIdentifier()); return $this; }
protected function _beforeSave() { parent::_beforeSave(); Mage::getSingleton('index/indexer')->processEntityAction($this, self::ENTITY, Mage_Index_Model_Event::TYPE_SAVE); return $this; }