Live Copy 3.2 is planned for release shortly and will be compatible with the Magnolia 6.2.2+ branch
The Magnolia Special Feature Live Copy module helps you manage complex multisite installations that share similar content. It allows you to create live copies of master sites. The live copies are automatically updated when you make changes to the master. This means you only have to manage the master content and push it to the live copy pages. You do not need to manually copy similar pages to multiple locations in order to perform updates. Components on live copy pages can be changed individually and protected from master content changes.
Maven is the easiest way to install the module. Add the following dependencies to your webapp. All the other necessary dependencies will be brought in automatically:
<dependency> <groupId>info.magnolia.livecopy</groupId> <artifactId>magnolia-livecopy</artifactId> <version>3.1.1</version> </dependency>
Live Copy works by creating a copy of a master website. The master can be an entire site, a sub-tree or just a single page.
As a lot of content can be copied and linked, a single wrong action can have a negative impact on a big part of your website. Plan your content structure in detail before using Live Copy.
Give the rights to execute Live Copy actions to privileged users with sufficient instructions only.
Creating a live copy
To create a live copy:
- Open the Pages app.
- Select the site/tree/page you want to copy.
- Click Create live copy in the action bar.
- Choose a location for the live copy in the dialog.
- Finally, create a matching site definition for your freshly created live copy site.
In the Live Copy column of the Pages app, the two sites are indicated using an icon:
Note that the newly created live copy site follows the same naming conventions as the standard copy action. For example, if your master site is named
travel, then the new live copy site is named
travel0. We recommend you rename the live copy site.
You can copy just a sub-tree or a single page instead of a whole site. You have to move the copy to the correct location afterward in the chooser.
Typically your master site contains links that are internal to the master site. The links in your newly created live copy site will still point to that master content. This can be desirable in some situations. However, in many scenarios, the links should point to pages in the live copy site.
To automatically change the links so that they link to within your live copy site, use the Relink all pages to live copy pages action.
In the Relink all pages popup that appears, you have the option of disabling any master content updates on components that are relinked. This means the relinked live copy pages are protected from being overwritten when new content is pushed from the master. The relinked components appear as locked in the live copy pages. For example:
Pushing content from master to live copy pages
When you change content on your master page and want to push this content to the matching live copy page, use the Push master content changes or Push master content changes incl. subnodes actions.
In the Push master content changes popup that appears, you have the option of automatically relinking all links so that they point to within your live copy site, instead of leaving the links to point to the master site.
The content in the live copy page is updated as follows:
- Content including personalized content – This includes page properties, component ordering, added and/or removed components.
- Page position – If a child page in the master site is moved to a different location, then the equivalent live copy child page is moved too.
- Page links – Depending on the Automatically relink all pages to live copy pages option above.
If you have added a new page to the master site, you must create a live copy of the new page to create it in the copied site before you can push master content changes to it. Newly created pages are not added automatically upon pushing master content changes.
If you have deleted a page from the master site, you must delete the equivalent live copy page too if required. Pushing master content changes with or without including subnodes does not delete pages from the live copy.
Protecting content from master content changes
Components within a live copy page are marked with an extra icon:. This helps you to differentiate between live copy content and unlinked content.
You may not want all the content in your live copy pages to be overwritten when master content is pushed. You can protect the content in:
- Full pages – To protect a full page, select the live copy page and click Disable updates from master. The page is marked with an unlinked icon:
- Single components – To protect a component, edit the page, select the component, and click Disable updates from master. The component is marked with an unlinked icon:
- Single fields in your component – To protect a field within a component, edit the component then select the fields that should not be overwritten on the next content push from your master content:
The red icon in the screenshot above indicates that the field is not linked to the master content. The grey and white icon indicates that the field is linked to the master content.
Breaking and reattaching
You can break the link of the live copy pages. The linking of live copy pages to master content is done using a page property called
masterContentIdentifier. This is visible through the JCR Browser or via content export. To break this link, select a page and click Disable updates from master. After confirmation, the page no longer receives updates from the master page.
Breaking the link to master content is achieved through a page property called
liveCopyReferenceDropped. When this flag is set to true, the linking of content is turned off. However, the
masterContentIdentifier still remains and the content can be re-linked at any time. To reattach the live copy content to the master content, click Enable updates from master.
For single-tree multi-language websites, there is
info.magnolia.liveCopy.i18n.LiveCopyI18nContentSupport to be used in the Live Copy's site definition. This class introduces a
masterLocale property which holds the fallback language from the master copy.