Пример #1
0
 /**
  * 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;
 }
Пример #4
0
 /**
  * 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);
 }
Пример #5
0
 /**
  * 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);
 }
Пример #7
0
 /**
  * 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);
 }
Пример #8
0
 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);
 }
Пример #9
0
 /**
  * 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;
 }
Пример #12
0
 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;
 }
Пример #13
0
 /**
  * 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;
 }
Пример #14
0
 /**
  * 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;
 }