/** * Perform actions before object save * * @param Varien_Object $object */ protected function _beforeSave(Mage_Core_Model_Abstract $object) { if (!$object->getId()) { $object->setCreatedAt(Mage::getSingleton('core/date')->gmtDate()); } if ($object->hasData('stores') && is_array($object->getStores())) { $stores = $object->getStores(); $stores[] = 0; $object->setStores($stores); } elseif ($object->hasData('stores')) { $object->setStores(array($object->getStores(), 0)); } return $this; }
/** * Check for unique of identifier of manufacturer(s) to selected store(s). * * @param Mage_Core_Model_Abstract $object * @return bool */ public function getIsUniqueManufacturerToStores(Mage_Core_Model_Abstract $object) { if (Mage::app()->isSingleStoreMode() || !$object->hasData('store_ids')) { $stores = array(Mage_Core_Model_App::ADMIN_STORE_ID); } else { $stores = (array) $object->getData('store_ids'); } $selectId = $this->_getCommanManufacturer($object->getData('manufacturer'), $stores); $fetchedSelectId = $this->_getWriteAdapter()->fetchRow($selectId); if (!$object['manufacturer_id']) { if ($fetchedSelectId['manufacturer_id']) { return false; } } elseif ($object['manufacturer'] == $fetchedSelectId['manufacturer'] && $object['manufacturer_id'] != $fetchedSelectId['manufacturer_id']) { return false; } $select = $this->_getLoadByIdentifierSelect($object->getData('identifier'), $stores); if ($object->getId()) { $select->where('mps.manufacturer_id <> ?', $object->getId()); } if ($this->_getWriteAdapter()->fetchRow($select)) { return false; } return true; }
/** * @param string $attributeCode * @param Mage_Core_Model_Abstract $object * * @return null|string */ public function extractEavAttributeValue($attributeCode = null, Mage_Core_Model_Abstract $object) { if (!empty($attributeCode) && $object->hasData($attributeCode)) { return $object->getData($attributeCode); } return null; }
/** * Perform actions after object save * * @param Mage_Core_Model_Abstract $rule * * @return Mage_Core_Model_Mysql4_Abstract */ protected function _afterSave(Mage_Core_Model_Abstract $rule) { if ($rule->hasData('website_ids')) { $this->_saveWebsiteIds($rule); } if ($rule->hasData('store_messages')) { $this->_saveMessageData($rule); } return parent::_afterSave($rule); }
/** * Save the meta data associated with the user * * @param Mage_Core_Model_Abstract $object */ protected function _afterSave(Mage_Core_Model_Abstract $object) { if ($keys = $object->getLoadedMetaKeys()) { foreach ($keys as $key) { if ($object->hasData($key)) { $this->saveMeta($object, $key); } } } return parent::_afterSave($object); }
protected function _beforeSave(Mage_Core_Model_Abstract $object) { if ($object->isObjectNew() && !$object->hasCreatedAt()) { $object->setCreatedAt(Mage::getSingleton('core/date')->gmtDate()); } $object->setUpdatedAt(Mage::getSingleton('core/date')->gmtDate()); if ($object->hasData('area')) { $object->setData('areas_content', serialize($object->getData('area'))); } return parent::_beforeSave($object); }
/** * Perform actions after object save * * @param Mage_Core_Model_Abstract $object */ protected function _afterSave(Mage_Core_Model_Abstract $object) { $id = $object->getId(); $this->_getWriteAdapter()->delete($this->getTable('enterprise_customersegment/event'), array('segment_id = ?' => $id)); if ($object->getMatchedEvents() && is_array($object->getMatchedEvents())) { foreach ($object->getMatchedEvents() as $event) { $data = array('segment_id' => $id, 'event' => $event); $this->_getWriteAdapter()->insert($this->getTable('enterprise_customersegment/event'), $data); } } if ($object->hasData('website_ids')) { $this->_saveWebsiteIds($object); } return parent::_afterSave($object); }
protected function _beforeSave(Mage_Core_Model_Abstract $object) { if ($object->isObjectNew() && !$object->hasCreatedAt()) { $object->setCreatedAt(Mage::getSingleton('core/date')->gmtDate()); } if (!$object->hasStatus()) { $object->setStatus(Mirasvit_Email_Model_Queue::STATUS_PENDING)->setStatusMessage('Assignment of default status'); } if ($object->hasData('args')) { $object->setArgsSerialized(serialize($object->getData('args'))); } $this->_processHistory($object); $object->setUniqKeyMd5(md5($object->getUniqKey())); $object->setUpdatedAt(Mage::getSingleton('core/date')->gmtDate()); return parent::_beforeSave($object); }
/** * Add data to the comment that has not been set * * @param Mage_Core_Model_Abstract $object */ protected function _beforeSave(Mage_Core_Model_Abstract $object) { if (!$object->getCommentContent()) { throw new Exception('No content was set for the comment'); } $session = Mage::getSingleton('customer/session'); $user = Mage::getModel('wordpress/user'); if ($session->isLoggedIn()) { $customer = $session->getCustomer(); if (!$object->getCommentAuthor()) { $object->setCommentAuthor($customer->getName()); } if (!$object->getCommentAuthorEmail()) { $object->setCommentAuthorEmail($customer->getEmail()); } if ($user->loadCurrentLoggedInUser()) { $object->setUserId($user->getId()); } } elseif (Mage::helper('wordpress')->getWpOption('comment_registration')) { throw new Exception('You must be logged in to comment on this post'); } // Comment MUST have NAME & EMAIL if (Mage::helper('wordpress')->getWpOption('require_name_email')) { if (!$object->getCommentAuthor() || !$object->getCommentAuthorEmail()) { throw new Exception('Comment author name and email must be set'); } } /* * Set comment dates */ if (!$object->hasCommentDate()) { $object->setCommentDate(now()); } if (!$object->hasCommentDateGmt()) { $object->setCommentDateGmt(gmdate('Y-m-d H:i:s')); } /** * Set comment Author IP */ if (!$object->hasData('comment_author_IP')) { $object->setData('comment_author_IP', $_SERVER['REMOTE_ADDR']); } /** * Set comment status */ if (Mage::helper('wordpress')->getWpOption('comment_moderation')) { // Before a comment appears An administrator must always approve the comment $object->setCommentApproved(0); } else { if (Mage::helper('wordpress')->getWpOption('comment_whitelist')) { // Comment author must have a previously approved comment if ($user->getId()) { $select = $this->_getReadAdapter()->select()->from(Mage::helper('wordpress')->getTableName('comments'), 'comment_ID')->where('user_id=?', $user->getId())->where('comment_approved=?', 1)->limit(1); if (!$this->_getReadAdapter()->fetchOne($select)) { // User has no comments $object->setCommentApproved(0); } } else { // User isn't logged in so can't have a previous comment $object->setCommentApproved(0); } } } /** * Check for max links */ $maxLinks = (int) Mage::helper('wordpress')->getWpOption('comment_max_links'); if ($maxLinks > 0) { $matchedLinks = preg_match_all('/<a [^>]*href/i', $object->getCommentContent(), $output); if ($matchedLinks >= $maxLinks) { // Comment has too many links and is probably spam $object->setCommentApproved(0); } } return parent::_beforeSave($object); }
protected function _afterSave(Mage_Core_Model_Abstract $object) { if ($object->hasData('chain')) { $this->_saveChain($object); } }
/** * Bind reminder rule to and website(s). * Save store templates data. * * @param Mage_Core_Model_Abstract $rule * @return Enterprise_Reminder_Model_Resource_Rule */ protected function _afterSave(Mage_Core_Model_Abstract $rule) { if ($rule->hasWebsiteIds()) { $websiteIds = $rule->getWebsiteIds(); if (!is_array($websiteIds)) { $websiteIds = explode(',', (string) $websiteIds); } $this->bindRuleToEntity($rule->getId(), $websiteIds, 'website'); } if ($rule->hasData('store_templates')) { $this->_saveStoreData($rule); } parent::_afterSave($rule); return $this; }
protected function _decodeSecureFields(Mage_Core_Model_Abstract $object) { foreach ($this->_secureFields as $field) { if ($object->hasData($field)) { $value = $object->getData($field); $value = $this->_commonHelper()->getCore()->decrypt($value); $object->setData($field, $value); } } return $this; }
/** * Prepare data for save * * @param Mage_Core_Model_Abstract $object * @return array */ protected function _prepareDataForSave(Mage_Core_Model_Abstract $object) { $data = array(); $fields = $this->_getWriteAdapter()->describeTable($this->getMainTable()); foreach (array_keys($fields) as $field) { if ($object->hasData($field)) { $fieldValue = $object->getData($field); if ($fieldValue instanceof Zend_Db_Expr) { $data[$field] = $fieldValue; } else { if (null !== $fieldValue) { $data[$field] = $this->_prepareValueForSave($fieldValue, $fields[$field]['DATA_TYPE']); } elseif (!empty($fields[$field]['NULLABLE'])) { $data[$field] = null; } } } } return $data; }
/** * Perform actions before object save * * @param Mage_Core_Model_Abstract $object * @return Mage_Core_Model_Resource_Db_Abstract|Magpleasure_Common_Model_Resource_Abstract */ protected function _beforeSave(Mage_Core_Model_Abstract $object) { # Update Datetime Proceed if ($this->getUseUpdateDatetimeFilter()) { $now = new Zend_Date(); $now = $now->toString(Varien_Date::DATETIME_INTERNAL_FORMAT); if (!$object->getId()) { $object->setCreatedAt($now); } $object->setUpdatedAt($now); } # Serialize Serializable Fields foreach ($this->_serializable as $fieldName) { if ($object->hasData($fieldName)) { try { $object->setData($fieldName, serialize($object->getData($fieldName))); } catch (Exception $e) { $this->_commonHelper()->getException()->logException($e); } } } # Image Fields foreach ($this->_imageFields as $fieldName) { if ($object->hasData($fieldName . "_delete")) { $toDelete = $object->getData($fieldName . "_delete"); if ($toDelete && is_array($toDelete) && count($toDelete)) { foreach ($toDelete as $fileName) { try { $fileName = str_replace("/", DS, $fieldName); $fullPath = Mage::getBaseDir('media') . $fieldName; if (file_exists($fullPath)) { unlink($fullPath); } } catch (Exception $e) { $this->_commonHelper()->getException()->logException($e); } } } } } # Generate Unique HASH if need if ($this->getUseHashHelper() && !$object->getId()) { $object->setData($this->getUseHashHelper(), $this->_generateUniqueHash()); } parent::_beforeSave($object); return $this; }