コード例 #1
0
ファイル: Group.php プロジェクト: whoople/magento2-testing
 /**
  * Perform actions before object save
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     if (!$object->getSortOrder()) {
         $object->setSortOrder($this->_getMaxSortOrder($object) + 1);
     }
     return parent::_beforeSave($object);
 }
コード例 #2
0
ファイル: Design.php プロジェクト: whoople/magento2-testing
 /**
  * Perform actions before object save
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     if ($date = $object->getDateFrom()) {
         $object->setDateFrom($this->dateTime->formatDate($date));
     } else {
         $object->setDateFrom(null);
     }
     if ($date = $object->getDateTo()) {
         $object->setDateTo($this->dateTime->formatDate($date));
     } else {
         $object->setDateTo(null);
     }
     if (!is_null($object->getDateFrom()) && !is_null($object->getDateTo()) && (new \DateTime($object->getDateFrom()))->getTimestamp() > (new \DateTime($object->getDateTo()))->getTimestamp()) {
         throw new \Magento\Framework\Exception\LocalizedException(__('The start date can\'t follow the end date.'));
     }
     $check = $this->_checkIntersection($object->getStoreId(), $object->getDateFrom(), $object->getDateTo(), $object->getId());
     if ($check) {
         throw new \Magento\Framework\Exception\LocalizedException(__('The date range for this design change overlaps another design change for the specified store.'));
     }
     if ($object->getDateFrom() === null) {
         $object->setDateFrom(new \Zend_Db_Expr('null'));
     }
     if ($object->getDateTo() === null) {
         $object->setDateTo(new \Zend_Db_Expr('null'));
     }
     parent::_beforeSave($object);
 }
コード例 #3
0
ファイル: Website.php プロジェクト: whoople/magento2-testing
 /**
  * Validate website code before object save
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     if (!preg_match('/^[a-z]+[a-z0-9_]*$/', $object->getCode())) {
         throw new \Magento\Framework\Exception\LocalizedException(__('Website code may only contain letters (a-z), numbers (0-9) or underscore (_),' . ' and the first character must be a letter.'));
     }
     return parent::_beforeSave($object);
 }
コード例 #4
0
ファイル: Template.php プロジェクト: whoople/magento2-testing
 /**
  * Set template type, added at and modified at time
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  */
 protected function _beforeSave(AbstractModel $object)
 {
     if ($object->isObjectNew()) {
         $object->setAddedAt($this->dateTime->formatDate(true));
     }
     $object->setModifiedAt($this->dateTime->formatDate(true));
     $object->setTemplateType((int) $object->getTemplateType());
     return parent::_beforeSave($object);
 }
コード例 #5
0
ファイル: Data.php プロジェクト: whoople/magento2-testing
 /**
  * Convert array to comma separated value
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     if (!$object->getId()) {
         $this->_checkUnique($object);
     }
     if (is_array($object->getValue())) {
         $object->setValue(join(',', $object->getValue()));
     }
     return parent::_beforeSave($object);
 }
コード例 #6
0
ファイル: Coupon.php プロジェクト: whoople/magento2-testing
 /**
  * Perform actions before object save
  *
  * @param AbstractModel $object
  * @return $this
  */
 public function _beforeSave(AbstractModel $object)
 {
     if (!$object->getExpirationDate()) {
         $object->setExpirationDate(null);
     } elseif ($object->getExpirationDate() instanceof \DateTimeInterface) {
         $object->setExpirationDate($object->getExpirationDate()->format('Y-m-d H:i:s'));
     }
     // maintain single primary coupon per rule
     $object->setIsPrimary($object->getIsPrimary() ? 1 : null);
     return parent::_beforeSave($object);
 }
コード例 #7
0
 /**
  * Method to run before save
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     // format height
     $height = $object->getContentHeight();
     $height = $this->filterManager->stripTags($height);
     if (!$height) {
         $height = '';
     }
     if ($height && preg_match('/[0-9]$/', $height)) {
         $height .= 'px';
     }
     $object->setContentHeight($height);
     return parent::_beforeSave($object);
 }
コード例 #8
0
 /**
  * Prepare rule's active "from" and "to" dates
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  */
 public function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     $fromDate = $object->getFromDate();
     if ($fromDate instanceof \DateTime) {
         $object->setFromDate($fromDate->format('Y-m-d H:i:s'));
     } elseif (!is_string($fromDate) || empty($fromDate)) {
         $object->setFromDate(null);
     }
     $toDate = $object->getToDate();
     if ($toDate instanceof \DateTime) {
         $object->setToDate($toDate->format('Y-m-d H:i:s'));
     } elseif (!is_string($toDate) || empty($toDate)) {
         $object->setToDate(null);
     }
     parent::_beforeSave($object);
     return $this;
 }
コード例 #9
0
ファイル: Page.php プロジェクト: whoople/magento2-testing
 /**
  * Process page data before saving
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     /*
      * For two attributes which represent timestamp data in DB
      * we should make converting such as:
      * If they are empty we need to convert them into DB
      * type NULL so in DB they will be empty and not some default value
      */
     foreach (['custom_theme_from', 'custom_theme_to'] as $field) {
         $value = !$object->getData($field) ? null : $object->getData($field);
         $object->setData($field, $this->dateTime->formatDate($value));
     }
     if (!$this->isValidPageIdentifier($object)) {
         throw new \Magento\Framework\Exception\LocalizedException(__('The page URL key contains capital letters or disallowed symbols.'));
     }
     if ($this->isNumericPageIdentifier($object)) {
         throw new \Magento\Framework\Exception\LocalizedException(__('The page URL key cannot be made of only numbers.'));
     }
     if ($object->isObjectNew() && !$object->hasCreationTime()) {
         $object->setCreationTime($this->_date->gmtDate());
     }
     $object->setUpdateTime($this->_date->gmtDate());
     return parent::_beforeSave($object);
 }
コード例 #10
0
ファイル: User.php プロジェクト: whoople/magento2-testing
 /**
  * Set created/modified values before user save
  *
  * @param \Magento\Framework\Model\AbstractModel $user
  * @return $this
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $user)
 {
     if ($user->isObjectNew()) {
         $user->setCreated($this->dateTime->formatDate(true));
     }
     $user->setModified($this->dateTime->formatDate(true));
     return parent::_beforeSave($user);
 }
コード例 #11
0
ファイル: Consumer.php プロジェクト: whoople/magento2-testing
 /**
  * Set updated_at automatically before saving
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  */
 public function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     $object->setUpdatedAt($this->_dateTime->formatDate(time()));
     return parent::_beforeSave($object);
 }
コード例 #12
0
 /**
  * Validate attribute data before save
  *
  * @param EntityAttribute|AbstractModel $object
  * @return $this
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 protected function _beforeSave(AbstractModel $object)
 {
     $frontendLabel = $object->getFrontendLabel();
     if (is_array($frontendLabel)) {
         if (!isset($frontendLabel[0]) || $frontendLabel[0] === null || $frontendLabel[0] == '') {
             throw new \Magento\Framework\Exception\LocalizedException(__('The storefront label is not defined.'));
         }
         $object->setFrontendLabel($frontendLabel[0])->setStoreLabels($frontendLabel);
     }
     /**
      * @todo need use default source model of entity type !!!
      */
     if (!$object->getId()) {
         if ($object->getFrontendInput() == 'select') {
             $object->setSourceModel('Magento\\Eav\\Model\\Entity\\Attribute\\Source\\Table');
         }
     }
     return parent::_beforeSave($object);
 }
コード例 #13
0
 /**
  * Before save
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     $connection = $this->getConnection();
     $select = $connection->select()->from($this->getMainTable(), 'key_id')->where('string = :string')->where('store_id = :store_id');
     $bind = ['string' => $object->getString(), 'store_id' => \Magento\Store\Model\Store::DEFAULT_STORE_ID];
     $object->setId($connection->fetchOne($select, $bind));
     return parent::_beforeSave($object);
 }
コード例 #14
0
ファイル: Template.php プロジェクト: whoople/magento2-testing
 /**
  * Perform actions before object save
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     if ($this->checkCodeUsage($object)) {
         throw new \Magento\Framework\Exception\LocalizedException(__('Duplicate template code'));
     }
     if (!$object->hasTemplateActual()) {
         $object->setTemplateActual(1);
     }
     if (!$object->hasAddedAt()) {
         $object->setAddedAt($this->_date->gmtDate());
     }
     $object->setModifiedAt($this->_date->gmtDate());
     return parent::_beforeSave($object);
 }