/** * Moves location identified by $sourceId into new parent identified by $destinationParentId. * * Performs a full move of the location identified by $sourceId to a new * destination, identified by $destinationParentId. Relations do not need * to be updated, since they refer to Content. URLs are not touched. * * @param mixed $sourceId * @param mixed $destinationParentId * * @return boolean */ public function move($sourceId, $destinationParentId) { $sourceNodeData = $this->locationGateway->getBasicNodeData($sourceId); $destinationNodeData = $this->locationGateway->getBasicNodeData($destinationParentId); $this->locationGateway->moveSubtreeNodes($sourceNodeData, $destinationNodeData); $this->locationGateway->updateNodeAssignment($sourceNodeData['contentobject_id'], $sourceNodeData['parent_node_id'], $destinationParentId, Gateway::NODE_ASSIGNMENT_OP_CODE_MOVE); }
/** * Update node assignment table * * @param int $contentObjectId * @param int $oldParent * @param int $newParent * @param int $opcode * * @return void */ public function updateNodeAssignment($contentObjectId, $oldParent, $newParent, $opcode) { try { return $this->innerGateway->updateNodeAssignment($contentObjectId, $oldParent, $newParent, $opcode); } catch (DBALException $e) { throw new RuntimeException('Database error', 0, $e); } catch (PDOException $e) { throw new RuntimeException('Database error', 0, $e); } }