コード例 #1
0
 /**
  * Copies a subtree to a new destination.
  *
  * @param string $locationPath
  *
  * @return \eZ\Publish\Core\REST\Server\Values\ResourceCreated
  */
 public function copySubtree($locationPath, Request $request)
 {
     $location = $this->locationService->loadLocation($this->extractLocationIdFromPath($locationPath));
     $destinationLocation = $this->locationService->loadLocation($this->extractLocationIdFromPath($this->requestParser->parseHref($request->headers->get('Destination'), 'locationPath')));
     $newLocation = $this->locationService->copySubtree($location, $destinationLocation);
     return new Values\ResourceCreated($this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => trim($newLocation->pathString, '/'))));
 }
コード例 #2
0
 /**
  * Copies the subtree starting from $subtree as a new subtree of $targetLocation
  *
  * Only the items on which the user has read access are copied.
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If the current user user is not allowed copy the subtree to the given parent location
  * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If the current user user does not have read access to the whole source subtree
  * @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException if the target location is a sub location of the given location
  *
  * @param \eZ\Publish\API\Repository\Values\Content\Location $subtree - the subtree denoted by the location to copy
  * @param \eZ\Publish\API\Repository\Values\Content\Location $targetParentLocation - the target parent location for the copy operation
  *
  * @return \eZ\Publish\API\Repository\Values\Content\Location The newly created location of the copied subtree
  */
 public function copySubtree(Location $subtree, Location $targetParentLocation)
 {
     $returnValue = $this->service->copySubtree($subtree, $targetParentLocation);
     $this->signalDispatcher->emit(new CopySubtreeSignal(array('subtreeId' => $subtree->id, 'targetParentLocationId' => $targetParentLocation->id, 'targetNewSubtreeId' => $returnValue->id)));
     return $returnValue;
 }