Content Layers and localisation
Content Studio is offering an advanced concept called Content Layers. A layer is essentially a Content project that inherits content from a parent project.
Inherited content can be edited in the local layer (localized), renamed, organized differently or even archived.
New content can be created, modified and published within a layer, just like for any other project.
You can have as many layers as you need, for instance: Project A can have a child project B which has a child project C (and so on).
There may also exist multiple child layers, so B' may also inherit from project A.
Content changes will be propagated through the different layers automatically.
For a single content item, propagation will stop if the content has been localized in a specific layer.
With the example above, any content created in A will be automatically appear in the child B and the grand-child C.
If the content is then modified in B it will no longer get updates from A, but new modifications will still be synchronised from B down to C.
If you modify a content in the layer C, it will stop inheriting content changes from the layer B. However, the same content in B still inherits content changes from its parent project A, until it’s localised in B as well.
To enable different actions on an while keeping as much of the inheritance going, there are 4 different types of values that are supported independently:
parent (location in content tree)
This means, for example, if a child layer B has inherited an entire website from its parent A, you can change sorting order of content items inside this site in B. This will stop inheritance of sorting from A, however inheritance of content data, name, and parent will still continue.
Another example, is that you can move a content to a different location in the tree (change parent content), but it will still be inheriting data, name and sorting.
In the Content Navigator localised content will be greyed out, providing visual difference from a local content manually created directly in this layer.
To localise (translate) an inherited content item, select it in the content tree and click Localise button in the Content Navigator toolbar
|Edit button is replaced with Localise for inherited content.|
|Language shown in brackets after content’s display name means shows that language of this content is different from language of the current layer.|
The Localize button will open the Content Wizard for the selected content item and set language of the current layer for the item. You can now translate the content to language of the layer or make any other changes. When you save the changes, the content item will no longer be considered inherited and changes made for this item in the parent project/layer will no longer be synchronised down to this layer.
In the example below, "Search" page from the parent project with English language was localised in the Norwegian layer and translated to "Søk".
|The purpose of the blue "cloud" icon over the content item icon is to distinguish localised inherited content from local content created directly in this layer (like "Local page" in the example above).|
As mentioned above, it’s possible to rearrange inherited content without localising it. The same goes for sorting. In the example below the "Search" page was moved under "Posts" folder but is still inheriting content changes from the parent project.
You can reset changes made for an inherited item and restore inheritance from the parent level by clicking Reset button in the Content Wizard.
|All changes made to the content item in the current layer will be lost.|
|The Layers widget is bundled with Content Studio+ application available only for users with Enonic license.|
The Layers widget enables user to see status of a specific content item in all existing layers in the system.
Box of the current layer is highlighted with blue border, and you can see how many layers there are above (Ascendants) and below (Descendants) the current one. Each box has an action button (Localise or Edit for the current layer and Open for other layers) which can be displayed if you expand the box with a left-click.
Boxes of parent layers where the content item is not localised are hidden by default and can be displayed by clicking on the Ascendants link.
|You can localise content in the current layer directly from the widget.|
Show all button at the bottom of the widget displays the total number of layers where this item exists. This number can be different from tbe number of boxes displayed in the widget, since the widget only displays the branch of the current layer. To see status of the content item in the entire tree of layers click the button to open the modal dialog.
Just like with the Layers widget, you can expand layer boxes in this dialog to either localise or edit the content in the current layer, or open it in other layers (given your user has sufficient permissions to access the layer).
|Read about the high-level concept of Content Layers here.|