本文整理汇总了PHP中eZ\Publish\API\Repository\LocationService::moveSubtree方法的典型用法代码示例。如果您正苦于以下问题:PHP LocationService::moveSubtree方法的具体用法?PHP LocationService::moveSubtree怎么用?PHP LocationService::moveSubtree使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZ\Publish\API\Repository\LocationService
的用法示例。
在下文中一共展示了LocationService::moveSubtree方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: moveSubtree
/**
* Moves a subtree to a new location
*
* @param string $locationPath
*
* @throws \eZ\Publish\Core\REST\Server\Exceptions\BadRequestException if the Destination header cannot be parsed as location or trash
* @return \eZ\Publish\Core\REST\Server\Values\ResourceCreated
*/
public function moveSubtree($locationPath)
{
$locationToMove = $this->locationService->loadLocation($this->extractLocationIdFromPath($locationPath));
$destinationLocationId = null;
$destinationHref = $this->request->headers->get('Destination');
try {
// First check to see if the destination is for moving within another subtree
$destinationLocationId = $this->extractLocationIdFromPath($this->requestParser->parseHref($destinationHref, 'locationPath'));
// We're moving the subtree
$destinationLocation = $this->locationService->loadLocation($destinationLocationId);
$this->locationService->moveSubtree($locationToMove, $destinationLocation);
// Reload the location to get the new position is subtree
$locationToMove = $this->locationService->loadLocation($locationToMove->id);
return new Values\ResourceCreated($this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => rtrim($locationToMove->pathString, '/'))));
} catch (Exceptions\InvalidArgumentException $e) {
try {
$route = $this->requestParser->parse($destinationHref);
if (!isset($route['_route']) || $route['_route'] !== 'ezpublish_rest_loadTrashItems') {
throw new Exceptions\InvalidArgumentException('');
}
// Trash the subtree
$trashItem = $this->trashService->trash($locationToMove);
return new Values\ResourceCreated($this->router->generate('ezpublish_rest_loadTrashItem', array('trashItemId' => $trashItem->id)));
} catch (Exceptions\InvalidArgumentException $e) {
// If that fails, the Destination header is not formatted right
// so just throw the BadRequestException
throw new BadRequestException("{$destinationHref} is not an acceptable destination");
}
}
}
示例2: moveSubtree
/**
* Moves the subtree to $newParentLocation
*
* If a user has the permission to move the location to a target location
* he can do it regardless of an existing descendant on which the user has no permission.
*
* @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If the current user user is not allowed to move this location to the target
*
* @param \eZ\Publish\API\Repository\Values\Content\Location $location
* @param \eZ\Publish\API\Repository\Values\Content\Location $newParentLocation
*/
public function moveSubtree(Location $location, Location $newParentLocation)
{
$returnValue = $this->service->moveSubtree($location, $newParentLocation);
$this->signalDispatcher->emit(new MoveSubtreeSignal(array('locationId' => $location->id, 'newParentLocationId' => $newParentLocation->id)));
return $returnValue;
}