예제 #1
0
 /**
  * Process category data after save category object
  * save related products ids and update path value
  *
  * @param \Magento\Framework\DataObject $object
  * @return $this
  */
 protected function _afterSave(\Magento\Framework\DataObject $object)
 {
     /**
      * Add identifier for new category
      */
     if (substr($object->getPath(), -1) == '/') {
         $object->setPath($object->getPath() . $object->getId());
         $this->_savePath($object);
     }
     $this->_saveCategoryProducts($object);
     return parent::_afterSave($object);
 }
 /**
  * @param \Magento\Framework\DataObject $object
  * @return $this
  */
 public function deleteChildren(\Magento\Framework\DataObject $object)
 {
     $adapter = $this->getConnection();
     $pathField = $adapter->quoteIdentifier('path');
     $select = $adapter->select()->from($this->getMainTable(), ['category_id'])->where($pathField . ' LIKE :c_path');
     $childrenIds = $adapter->fetchCol($select, ['c_path' => $object->getPath() . '/%']);
     if (!empty($childrenIds)) {
         $adapter->delete($this->getMainTable(), ['category_id IN (?)' => $childrenIds]);
     }
     /**
      * Add deleted children ids to object
      * This data can be used in after delete event
      */
     $object->setDeletedChildrenIds($childrenIds);
     return $this;
 }
예제 #3
0
 /**
  * Prepare category parentId
  *
  * @param \Magento\Framework\DataObject $category
  * @return $this
  */
 protected function _prepareCategoryParentId(\Magento\Framework\DataObject $category)
 {
     if ($category->getPath() != $category->getId()) {
         $split = explode('/', $category->getPath());
         $category->setParentId($split[count($split) - 2]);
     } else {
         $category->setParentId(0);
     }
     return $this;
 }
예제 #4
0
 /**
  * {@inheritdoc}
  */
 protected function _afterSave(DataObject $object)
 {
     /** @var \Mirasvit\Blog\Model\Category $object */
     if (substr($object->getPath(), -1) == '/' || !$object->getPath()) {
         $object->setPath($object->getPath() . $object->getId());
         $this->savePath($object);
     }
     if ($object->dataHasChangedFor('parent_id')) {
         $newParent = \Magento\Framework\App\ObjectManager::getInstance()->create('Mirasvit\\Blog\\Model\\Category')->load($object->getParentId());
         $this->changeParent($object, $newParent);
     }
     return parent::_afterSave($object);
 }