Пример #1
0
 protected function _beforeSave(Mage_Core_Model_Abstract $object)
 {
     if (!$object->getId() && $object->getStatus() == $object->getApprovedStatus()) {
         $searchTag = new Varien_Object();
         $this->loadByName($searchTag, $object->getName());
         if ($searchTag->getData($this->getIdFieldName()) && $searchTag->getStatus() == $object->getPendingStatus()) {
             $object->setId($searchTag->getData($this->getIdFieldName()));
         }
     }
     if (Mage::helper('core/string')->strlen($object->getName()) > 255) {
         $object->setName(Mage::helper('core/string')->substr($object->getName(), 0, 255));
     }
     return parent::_beforeSave($object);
 }
Пример #2
0
 public function getName()
 {
     $storeId = Mage::app()->getStore()->getStoreId();
     if ($storeId) {
         $labels = $this->getStoreLabels();
         if (isset($labels[$storeId]) && $labels[$storeId]) {
             return $labels[$storeId];
         }
     }
     return parent::getName();
 }
Пример #3
0
 /**
  * Action before save
  *
  * @param Mage_Core_Model_Abstract $role
  * @return Mage_Api_Model_Resource_Roles
  */
 protected function _beforeSave(Mage_Core_Model_Abstract $role)
 {
     if ($role->getId() == '') {
         if ($role->getIdFieldName()) {
             $role->unsetData($role->getIdFieldName());
         } else {
             $role->unsetData('id');
         }
     }
     if ($role->getPid() > 0) {
         $row = $this->load($role->getPid());
     } else {
         $row = array('tree_level' => 0);
     }
     $role->setTreeLevel($row['tree_level'] + 1);
     $role->setRoleName($role->getName());
     return $this;
 }
Пример #4
0
 /**
  * Process role before saving
  *
  * @param Mage_Core_Model_Abstract $role
  * @return Mage_Admin_Model_Resource_Roles
  */
 protected function _beforeSave(Mage_Core_Model_Abstract $role)
 {
     if ($role->getId() == '') {
         if ($role->getIdFieldName()) {
             $role->unsetData($role->getIdFieldName());
         } else {
             $role->unsetData('id');
         }
     }
     if ($role->getPid() > 0) {
         $select = $this->_getReadAdapter()->select()->from($this->getMainTable(), array('tree_level'))->where("{$this->getIdFieldName()} = :pid");
         $binds = array('pid' => (int) $role->getPid());
         $treeLevel = $this->_getReadAdapter()->fetchOne($select, $binds);
     } else {
         $treeLevel = 0;
     }
     $role->setTreeLevel($treeLevel + 1);
     $role->setRoleName($role->getName());
     return $this;
 }
Пример #5
0
 /**
  * Process cmspage data before saving
  * prepare path and increment children count for parent cmspages
  *
  * @access protected
  * @param Varien_Object $object
  * @return Ibrams_CmsExtended_Model_Resource_Cmspage
  * @author Ultimate Module Creator
  */
 protected function _beforeSave(Mage_Core_Model_Abstract $object)
 {
     $accessroles = $object->getAccessroles();
     if (is_array($accessroles)) {
         $object->setAccessroles(implode(',', $accessroles));
     }
     $permittedroleactions = $object->getPermittedroleactions();
     if (is_array($permittedroleactions)) {
         $object->setPermittedroleactions(implode(',', $permittedroleactions));
     }
     if (!$object->getInitialSetupFlag()) {
         $urlKey = $object->getData('url_key');
         if ($urlKey == '') {
             $urlKey = $object->getName();
         }
         $urlKey = $this->formatUrlKey($urlKey);
         $validKey = false;
         while (!$validKey) {
             $entityId = $this->checkUrlKey($urlKey, $object->getStoreId(), false);
             if ($entityId == $object->getId() || empty($entityId)) {
                 $validKey = true;
             } else {
                 $parts = explode('-', $urlKey);
                 $last = $parts[count($parts) - 1];
                 if (!is_numeric($last)) {
                     $urlKey = $urlKey . '-1';
                 } else {
                     $suffix = '-' . ($last + 1);
                     unset($parts[count($parts) - 1]);
                     $urlKey = implode('-', $parts) . $suffix;
                 }
             }
         }
         $object->setData('url_key', $urlKey);
     }
     parent::_beforeSave($object);
     if (!$object->getChildrenCount()) {
         $object->setChildrenCount(0);
     }
     if ($object->getLevel() === null) {
         $object->setLevel(1);
     }
     if (!$object->getId() && !$object->getInitialSetupFlag()) {
         $object->setPosition($this->_getMaxPosition($object->getPath()) + 1);
         $path = explode('/', $object->getPath());
         $level = count($path);
         $object->setLevel($level);
         if ($level) {
             $object->setParentId($path[$level - 1]);
         }
         $object->setPath($object->getPath() . '/');
         $toUpdateChild = explode('/', $object->getPath());
         $this->_getWriteAdapter()->update($this->getMainTable(), array('children_count' => new Zend_Db_Expr('children_count+1')), array('entity_id IN(?)' => $toUpdateChild));
     }
     return $this;
 }