...
Like we do when creating a new Content item, we need to get a new LocationCreateStruct. We will use it to set our new Location's properties. The new Location's parent ID is provided as a parameter to .LocationService::newLocationCreateStruct
In this example, we use the default values for the various LocationCreateStruct properties. We could of course have set custom values, like setting the Location as hidden ($location->hidden = true), or changed the remoteId ($location->remoteId = $myRemoteId).
| Code Block | ||
|---|---|---|
| ||
$contentInfo = $contentService->loadContentInfo( $contentId ); |
...
| Code Block | ||
|---|---|---|
| ||
$newLocation = $locationService->createLocation( $contentInfo, $locationCreateStruct ); |
We finally use LocationService::createLocation(), providing the ContentInfo obtained above, together with our LocationCreateStruct. The method returns the newly created Location Value Object.
...
We mentioned earlier that a Location's visibility could be set while creating the Location, using the hidden property of the LocationCreateStruct. Changing a Location's visibility may have a large impact in the Repository: doing so will affect the Location's subtree visibility. For this reason, a LocationUpdateStruct doesn't let you toggle this property. You need to use the LocationService to do so.
| Code Block | ||
|---|---|---|
| ||
$hiddenLocation = $locationService->hideLocation( $location ); $unhiddenLocation = $locationService->unhideLocation( $hiddenLocation ); |
There are two methods for this: LocationService::hideLocation, and LocationService::unhideLocation(). Both expect the LocationInfo as their argument, and return the modified Location Value Object.
| Note |
|---|
The explanation above is valid for most Repository objects. Modification of properties that affect other parts of the system will require that you use a custom service method. |
Deleting a
...
Location
Deleting Locations can be done in two ways: delete, or trash.
...
| Note |
|---|
The |
Setting a content item's main Location
This is done using the ContentService, by updating the ContentInfo with a ContentUpdateStruct that sets the new main location:
...
