/** * @param \Generated\Shared\Transfer\NodeTransfer $categoryNode * * @return void */ public function update(NodeTransfer $categoryNode) { $nodeEntity = $this->queryContainer->queryNodeById($categoryNode->getIdCategoryNode())->findOne(); if ($nodeEntity) { $nodeEntity->fromArray($categoryNode->toArray()); $nodeEntity->save(); } }
/** * @param int $idCategory * @param \Generated\Shared\Transfer\LocaleTransfer $localeTransfer * * @return void */ public function deleteCategoryRecursive($idCategory, LocaleTransfer $localeTransfer) { $this->connection->beginTransaction(); $this->removeMappings($idCategory); $categoryNodes = $this->categoryQueryContainer->queryAllNodesByCategoryId($idCategory)->find(); foreach ($categoryNodes as $node) { $this->cmsFacade->updateBlocksAssignedToDeletedCategoryNode($node->getIdCategoryNode()); //TODO: https://spryker.atlassian.net/browse/CD-540 $children = $this->categoryQueryContainer->queryFirstLevelChildren($node->getIdCategoryNode())->find(); foreach ($children as $child) { $this->deleteCategoryRecursive($child->getFkCategory(), $localeTransfer); } $nodeExists = $this->categoryQueryContainer->queryNodeById($node->getIdCategoryNode())->count() > 0; if ($nodeExists) { $this->categoryFacade->deleteNode($node->getIdCategoryNode(), $localeTransfer, true); } } $this->categoryFacade->deleteCategory($idCategory); $this->connection->commit(); }
/** * @param int $idNode * * @return \Orm\Zed\Category\Persistence\SpyCategoryNode */ public function getNodeById($idNode) { return $this->queryContainer->queryNodeById($idNode)->findOne(); }