/** * @param \Symfony\Component\HttpFoundation\Request $request * * @return \Symfony\Component\HttpFoundation\JsonResponse */ public function reorderAction(Request $request) { $locale = $this->getFactory()->getCurrentLocale(); $categoryNodesToReorder = (array) json_decode($request->request->get('nodes'), true); $order = count($categoryNodesToReorder) - 1; foreach ($categoryNodesToReorder as $index => $nodeData) { $idNode = $nodeData['id']; $nodeEntity = $this->getQueryContainer()->queryNodeById($idNode)->findOne(); $nodeTransfer = new NodeTransfer(); $nodeTransfer->fromArray($nodeEntity->toArray()); $nodeTransfer->setNodeOrder($order); $this->getFacade()->updateCategoryNode($nodeTransfer, $locale); $order--; } return $this->jsonResponse(['code' => Response::HTTP_OK, 'message' => 'Category nodes successfully reordered']); }
/** * @param \Generated\Shared\Transfer\NodeTransfer $sourceNodeTransfer * @param \Generated\Shared\Transfer\NodeTransfer $destinationNodeTransfer * @param \Generated\Shared\Transfer\LocaleTransfer $localeTransfer * * @return void */ protected function moveCategoryNodes(NodeTransfer $sourceNodeTransfer, NodeTransfer $destinationNodeTransfer, LocaleTransfer $localeTransfer) { $categoryNodeCollection = $this->categoryQueryContainer->queryFirstLevelChildren($sourceNodeTransfer->getIdCategoryNode())->find(); foreach ($categoryNodeCollection as $categoryNode) { $nodeTransfer = new NodeTransfer(); $nodeTransfer->fromArray($categoryNode->toArray()); $nodeTransfer->setFkParentCategoryNode($destinationNodeTransfer->getIdCategoryNode()); $this->categoryFacade->updateCategoryNode($nodeTransfer, $localeTransfer); } }