ContentRepository

The content-repository was developed to query the content raw-data. The developer can decide which properties will be loaded.

The main goal of the repository is to centralize the core features ghost, shadow and internal links. These things will be handled full automatically. If you are using this repository.

Usage

There are two ways to use it. One in the front-end over an rest-api and one with a backend service.

API

The URL of the API is /admin/api/pages or /admin/api/pages/<uuid>.

The mandatory parameters are:

Name

Example

Description

locale

de

Localization which will be used.

webspace

sulu_io

Webspace from which content will be loaded.

fields

‘’

Comma separated list of properties.

Note

If the parameter fields is not set the content will be resolved with the slow legacy system (which is deprecated).

You can specify following optional parameters:

Name

Default

Description

exclude-ghosts

false

If true ghost will be filtered.

exclude-shadows

false

If true shadows will be filtered.

Over the mapping you can specify which properties will be loaded by the repository (for example: ‘title,order,article’).

The list endpoint also accepts a parent parameter. If this parameter is set the given page will be used to query for children else the webspace root is default.

Service

The id of the service is sulu_page.content_repository. The methods can be used as described in the phpdocs.

The mapping variable contains information for the mapping process.

Name

Description

hydrateShadow

if this is false no shadow pages will be returned.

hydrateGhost

if this is false no ghost pages will be returned.

followInternalLink

if this is false the link will not be resolved.

properties

List of hydrated properties

You can build this mapping over the mapping builder:

$mapping = MappingBuilder::create()
    ->setHydrateGhost()
    ->setHydrateShadow()
    ->addProperties(['title'])
    ->getMapping();