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 the hst-config.properties file that is active for the CMS (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 makes 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. These possibly copied templates, pages or components will be copied to the hst:workspace of the target channel. If the workspace does for example not yet contains hst:abstractpages, this node is automatically created.
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.