Configuring Live Copy
Assign live copy admins
Live Copies enable editors to create copies of content anywhere, on other sites.
While this is very powerful, it doesn’t copy content permissions (or restrictions) as configured by roles and access control lists (ACLs).
Since Live Copy 3.2.18
, only users with the livecopy-admin role may create and update live copies (i.e., propagate master changes).
Users with this role are responsible for maintaining consistency of access control, in combination with live copies, and should have visibility over the entire workspace.
To assign this role to a user:
-
Open the Security app.
-
Edit an existing user or add a new one.
-
Go to the Roles tab.
-
Select the
livecopy-admin
role on the left side of the table. -
Click > to grant it to the user.
-
Save changes.
Create live copy site definition
Coordinate with your authors to create a matching site definition for any live copy sites they create.
Go to Configuring a site definition to create a new one for your live copy. Duplicate the master site by making a copy in the Configuration app or a light module folder.
Internationalization
Configuring i18n involves configuring the locales in the site definition under <module_name>/sites/example.yaml
.
-
In the Site definition, use
info.magnolia.livecopy.i18n.LiveCopyI18nContentSupport
in the live copy site definition. This class processes the content of the live copy page based on the locale, programmatically retrieving the locale from the master page’s site definition.Before version 3.2.6, this class introduced a masterLocale
property which held the fallback language from the master copy. From Live Copy 3.2.6+masterLocale
is deprecated. For older versions of Live Copy, it is still used. -
In the Configuration app, enable multi-language authoring in
/config/server/i18n/authoring
and set the class toinfo.magnolia.livecopy.i18n.LiveCopyMultiSiteI18nAuthoringSupport
. -
If you only want to have one locale available in your live copy, delete the other locales from the live copy site definition.
For example, if you have English and German versions in the master, but you only want the German version of the site to be available to authors in the live copy, remove the en locale folder from the live copy site definitions and set the fallback locale to
de
:When the author then opens a live copy page, the language switcher does not appear at the bottom of the page and the content presented is the German version.
About locales
Locales are display languages on Magnolia instances. When you create a live copy of your page, this new page (live copy) adopts the same structure as the original (master). This means that the locales
of the master site definition are used to define the structure of both the master and live copy pages.
fallbackLocale
defines which language is used by default from the available locales and which content is served if the content is not available for the current locale.
In the example above, German is used as the default locale for the master page (fallbackLocale = de
). You can read the Internationalization page for more information about translated user interface texts (see examples in the table below).
Master | Live copy |
---|---|
title = Hello world |
title = Hello world |
title_de = Hallo Welt |
title_de = Hallo Welt |
Defining fallbackLocale does not affect the structure of the live copy or the master pages. For example, defining this property as de is like stating that the content of the live copy page will be rendered in the German locale by default when first loaded.
|
Create live copy action
You can configure the following for the Create live copy action:
-
Parallel or sequential creation
Allow users to create multiple live copies in parallel, or block the action (and the push changes actions) to prevent new creations once a creation operation has started. By default, live copy creation is set to run sequentially for performance reasons.
-
Child node copying
Allow users to create live copies of child nodes even when the parent node is already being copied. By default, users can’t create live copies of child nodes if the parent node is being copied.
IsLiveCopyRunningRule:
class: info.magnolia.livecopy.app.availability.IsLiveCopyRunningRuleDefinition
parallel: false (1)
recursive: true (2)
1 | The parallel property from info.magnolia.livecopy.app.availability.IsLiveCopyRunningRuleDefinition, set to false by default.
Once a create live copy action starts, you can’t perform any additional creation or push changes operations until it is complete.
Set to |
2 | The recursive property from info.magnolia.livecopy.app.availability.IsLiveCopyRunningRuleDefinition, set to true by default.
When the create live copy action is triggered for a parent node, both the node and its children are locked, making the action unavailable until the parent node live copy creation completes.
Set to |
Enable content deletion without protecting pages from master updates
Suppose your authors want to delete content, such as a specific component, from a live copy page but they don’t want to protect the whole page from master changes. In this case, what happens is the deleted content is added again when they push the master page.
To work around the content being added to the page again, you can add a no rendering option to the respective master component using an if
condition in its FTL file (example shown below).
[#if "${content.headline}" != "hide"]
<div class="card">
<h1>${content.headline}</h1>
[#assign myAsset = damfn.getAsset("jcr","/an-asset.jpg")!]
[#if myAsset??]
<img src="${myAsset.getLink()}" width="300px"/>
[/#if]
<p class="artwork_title">${content.text}</p>
[#assign myAssetLink = damfn.getAssetLink("jcr:20f53452-7e37-4e1b-b10d-c085a703809d")!]
<p class="webapp_link">${myAssetLink}</p>
<p class="webapp_link">${content.pageLink}</p>
</div>
[/#if]