Configure Page Copy
Introduction
Goal
Configure the Page Copy functionality in the channel manager.
Background
Copying pages in the channel manager within and between channels is supported. By default only copying within the same channel is enabled. To enable cross-channel page copying you need to set an HST configuration property which is described below in the section Enable Page Copy across Channels.
Prerequisite
Only channels that have their own hst:workspace with hst:pages and hst:sitemap section will have the Make a copy of this page available. For example:
+ hst:hst + hst:configurations + myproject + hst:workspace + hst:sitemap + hst:pages
Enable Page Copy across Channels
To enable cross channel page copy support set the following property in your hst-config.properties file (see HST container configuration):
cross.channel.page.copy.supported = true
What happens if a user copies a page to another channel but the target channel does not have all HST configuration (templates, components) required for the page?
In that case the HST make sure to also copy over any missing template or component. This can be entire inherited pages below hst:abstractpages, or just a single component below hst:components. Note that these extra (compared to page copy within the same channel) copied templates and/or components are not copied below the hst:workspace but just directly to for example /hst:hst/hst:configurations/myproject/hst:templates. This is not ideal because in general you want to keep all changes that are made via the channel manager in the hst:workspace as explained in the HST workspace Configuration documentation. If you want to avoid this while still using the cross channel copy page functionality, you have to make sure that every channel configuration do have access to the same referenced components from a page, and have access to the same templates. A simple way to achieve this is by making use of HST configuration inheritance.
Locking
Just like after adding or modifying a page, a copied page is locked by the current user. Other users in general can also create a copy of the same page. There is however one possible catch in case of cross channel copying: When there are, say, also missing hst templates copied over to the target channel, then the hst:templates section also gets locked. Another user trying to copy then the same page to the same channel, will get a lock exception and an error message that the target channel already has hst:templates section locked. After the first user publishes their changes in the target channel, other users can also copy the same page. Note that after the first time a missing template has been added and published, this locking catch will not happen any more, because the target channel already contains all the templates (and components).
When a user copies a page to another channel, does the system also copy documents being used by that page from the source channel to the target channel?
Which documents to copy and how is domain specific and can differ per project. Hence, this is not by default provided by the HST. End projects can implement this themselves by adding a CopyPageEvent listener, and hook into the page copy action by also copying all page required documents from source channel to target channel. The forge project Channel Manager Page Management Support does also copy the documents for a page by adding a DocumentCopyingPageCopyEventListener. You can find the documentation at http://channel-pagesup.forge.onehippo.org.