if (!$nodeParent || !$selectedNodeParent) { return $module->handleError(eZError::KERNEL_NOT_AVAILABLE, 'kernel', array()); } if (!$nodeParent->canMoveTo($selectedObjectClassID)) { eZDebug::writeError("Cannot move an object of class {$selectedObjectClassID} to node {$nodeParentNodeID} (no create permission)"); return $module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel', array()); } if (!$selectedNodeParent->canMoveTo($objectClassID)) { eZDebug::writeError("Cannot move an object of class {$objectClassID} to node {$selectedNodeParentNodeID} (no create permission)"); return $module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel', array()); } // exchange contentobject ids and versions. if (eZOperationHandler::operationIsAvailable('content_swap')) { $operationResult = eZOperationHandler::execute('content', 'swap', array('node_id' => $nodeID, 'selected_node_id' => $selectedNodeID, 'node_id_list' => array($nodeID, $selectedNodeID)), null, true); } else { eZContentOperationCollection::swapNode($nodeID, $selectedNodeID, array($nodeID, $selectedNodeID)); } return $module->redirectToView('view', array($viewMode, $nodeID, $languageCode)); } else { if ($module->isCurrentAction('SwapNodeRequest')) { /* This action brings a browse screen up to select with which the selected * node should be swapped. It will not actually move the nodes. */ if (!$module->hasActionParameter('NodeID')) { eZDebug::writeError("Missing NodeID parameter for action " . $module->currentAction(), 'content/action'); return $module->redirectToView('view', array('full', 2)); } $nodeID = $module->actionParameter('NodeID'); $node = eZContentObjectTreeNode::fetch($nodeID); if (!$node) { return $module->handleError(eZError::KERNEL_NOT_AVAILABLE, 'kernel', array()); }