/** * Process role before saving * * @param \Magento\Framework\Model\AbstractModel $role * @return $this */ protected function _beforeSave(\Magento\Framework\Model\AbstractModel $role) { if (!$role->getId()) { $role->setCreated($this->dateTime->formatDate(true)); } $role->setModified($this->dateTime->formatDate(true)); if ($role->getId() == '') { if ($role->getIdFieldName()) { $role->unsetData($role->getIdFieldName()); } else { $role->unsetData('id'); } } if (!$role->getTreeLevel()) { if ($role->getPid() > 0) { $select = $this->getConnection()->select()->from($this->getMainTable(), ['tree_level'])->where("{$this->getIdFieldName()} = :pid"); $binds = ['pid' => (int) $role->getPid()]; $treeLevel = $this->getConnection()->fetchOne($select, $binds); } else { $treeLevel = 0; } $role->setTreeLevel($treeLevel + 1); } if ($role->getName()) { $role->setRoleName($role->getName()); } return $this; }
/** * {@inheritdoc} */ protected function _beforeSave(AbstractModel $tag) { /** @var \Mirasvit\Blog\Model\Tag $tag */ if (!$tag->getData('url_key')) { $tag->setData('url_key', $this->filter->translitUrl($tag->getName())); } return parent::_beforeSave($tag); }
/** * Process post data before saving * * @param \Smart2Pay\GlobalPay\Model\Country $object * @return $this * @throws \Magento\Framework\Exception\LocalizedException */ protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) { if (!$object->getCode()) { throw new \Magento\Framework\Exception\LocalizedException(__('Please provide country code.')); } if (!$object->getName()) { throw new \Magento\Framework\Exception\LocalizedException(__('Please provide country name.')); } if ($this->checkCode($object)) { throw new \Magento\Framework\Exception\LocalizedException(__('Country code already exists in database.')); } return parent::_beforeSave($object); }
/** * Retrieve model name * @param boolean $plural * @return string */ protected function _getModelName(\Magento\Framework\Model\AbstractModel $model) { return $model->getName() ?: $model->getTitle(); }
/** * before save callback * * @param AbstractModel|\Sample\News\Model\Author $object * @return $this */ protected function _beforeSave(AbstractModel $object) { foreach (['dob'] as $field) { $value = !$object->getData($field) ? null : $object->getData($field); $object->setData($field, $this->dateTime->formatDate($value)); } $object->setUpdatedAt($this->date->gmtDate()); if ($object->isObjectNew()) { $object->setCreatedAt($this->date->gmtDate()); } $urlKey = $object->getData('url_key'); if ($urlKey == '') { $urlKey = $object->getName(); } $urlKey = $object->formatUrlKey($urlKey); $object->setUrlKey($urlKey); $validKey = false; while (!$validKey) { if ($this->getIsUniqueAuthorToStores($object)) { $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); } } return parent::_beforeSave($object); }
/** * before save callback * * @param \Magento\Framework\Model\AbstractModel|\Mageplaza\Blog\Model\Topic $object * @return $this */ protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) { $object->setUpdatedAt($this->date->date()); if ($object->isObjectNew()) { $object->setCreatedAt($this->date->date()); } //Check Url Key if ($object->isObjectNew()) { $count = 0; $objName = $object->getName(); if ($object->getUrlKey()) { $urlKey = $object->getUrlKey(); } else { $urlKey = $this->generateUrlKey($objName, $count); } while ($this->checkUrlKey($urlKey)) { $count++; $urlKey = $this->generateUrlKey($urlKey, $count); } $object->setUrlKey($urlKey); } else { $objectId = $object->getId(); $count = 0; $objName = $object->getName(); if ($object->getUrlKey()) { $urlKey = $object->getUrlKey(); } else { $urlKey = $this->generateUrlKey($objName, $count); } while ($this->checkUrlKey($urlKey, $objectId)) { $count++; $urlKey = $this->generateUrlKey($urlKey, $count); } $object->setUrlKey($urlKey); } return parent::_beforeSave($object); }