Beispiel #1
0
 /**
  * Process group data before saving
  *
  * @param \Magento\Framework\Model\AbstractModel $object
  * @return $this
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
 {
     $connection = $this->getConnection();
     $select = $connection->select()->from($this->getTable('ves_brand_group'), 'url_key')->where('url_key = ?', $object->getUrlKey())->where('group_id != ?', $object->getId());
     $result = $connection->fetchCol($select);
     if (count($result) > 0) {
         throw new \Magento\Framework\Exception\LocalizedException(__('URL key already exists.' . count($result)));
     }
     return parent::_beforeSave($object);
 }
 /**
  * Build category URL path
  *
  * @param \Magento\Catalog\Api\Data\CategoryInterface|\Magento\Framework\Model\AbstractModel $category
  * @return string
  */
 public function getUrlPath($category)
 {
     if ($category->getParentId() == Category::TREE_ROOT_ID) {
         return '';
     }
     $path = $category->getUrlPath();
     if ($path !== null && !$category->dataHasChangedFor('url_key') && !$category->dataHasChangedFor('parent_id')) {
         return $path;
     }
     $path = $category->getUrlKey();
     if ($path === false) {
         return $category->getUrlPath();
     }
     if ($this->isNeedToGenerateUrlPathForParent($category)) {
         $parentPath = $this->getUrlPath($this->categoryRepository->get($category->getParentId()));
         $path = $parentPath === '' ? $path : $parentPath . '/' . $path;
     }
     return $path;
 }
 protected function isPostUrlKeyUnique(\Magento\Framework\Model\AbstractModel $object)
 {
     $post_id = $this->checkUrlKey($object->getUrlKey());
     return $post_id == $object->getData('post_id') || $post_id == null;
 }
 /**
  * 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);
 }
Beispiel #5
0
 public function checkUrlExits(\Magento\Framework\Model\AbstractModel $object)
 {
     $stores = $object->getStores();
     $connection = $this->getConnection();
     $select = $connection->select()->from($this->getTable('ves_brand'), 'brand_id')->where('url_key = ?', $object->getUrlKey())->where('brand_id != ?', $object->getId());
     $brandIds = $connection->fetchCol($select);
     if (count($brandIds) > 0 && is_array($stores)) {
         if (in_array('0', $stores)) {
             throw new \Magento\Framework\Exception\LocalizedException(__('URL key for specified store already exists.'));
         }
         $stores[] = '0';
         $select = $connection->select()->from($this->getTable('ves_brand_store'), 'brand_id')->where('brand_id IN (?)', $brandIds)->where('store_id IN (?)', $stores);
         $result = $connection->fetchCol($select);
         if (count($result) > 0) {
             throw new \Magento\Framework\Exception\LocalizedException(__('URL key for specified store already exists.'));
         }
     }
     return $this;
 }