This section covers the following topics:
This extended publication has new states and new profiles that are enabled in Content.
Profiles
Author: This profile can edit a content and mark this content as redacted.
Approver: This profile approves a pending content (marked by the Author).
Publisher: This profile publishes contents or marks them as "Ready for publication" in multi-server mode.
Archiver: An administrative profile which moves contents to an archive storage.
States
enrolled: It is a pure technical state, generally used for content creation.
draft (Author): Content is in editing phase.
pending (Author): The author validates the content.
approved (Approver): A content is approved by the manager.
inreview (Manager): This state can be used when a second approval state is needed (for i18 translation for example).
staged (Publisher): A content is ready for publication (multi-server mode).
published (Publisher or Automatic): A content is published and visible in the Live mode.
unpublished (Publisher or Automatic): A content is not visible in the Live mode.
obsolete: A content can still be published but it is not in an editing lifecycle anymore.
archived (Automatic): A content is archived and ready to be moved in the archive workspace if enabled.
In most cases, you do not want to publish a content directly, but at a defined date and you can also want the content to be unpublished automatically after that. New properties are added to the new publication plugin, that allows you to manage this:
publication:startPublishedDate
publication:endPublishedDate
The Content rendering engine does not know anything about publication dates, so another service needs to manage that. When the publisher sets start/end publication dates, he can "stage" the content. The content will go automatically to the "published" state when the start date arrives and to the "unpublished" state after end date. A cron job checks every hour (or less) all contents which need to be published (the start date in the past and the "staged" state) or unpublished (the end date in the past and the "published" state).
Thus, the publication dates are not mandatory and a content can go to:
Staged: in multi-server mode, the publisher can only put the content to the "staged" state and wait for auto-publication.
Published: in single-server mode, the publisher can directly publish a content (with or without publication dates).
<nodeType hasOrderableChildNodes="false" isMixin="true" name="publication:authoringPublication" primaryItemName="">
<supertypes>
<supertype>publication:stateAndVersionBasedPublication</supertype>
</supertypes>
<propertyDefinitions>
<propertyDefinition autoCreated="false" mandatory="true" multiple="false" name="publication:startPublishedDate" onParentVersion="IGNORE" protected="false" requiredType="Date">
<valueConstraints/>
</propertyDefinition>
<propertyDefinition autoCreated="false" mandatory="true" multiple="false" name="publication:endPublishedDate" onParentVersion="IGNORE" protected="false" requiredType="Date">
<valueConstraints/>
</propertyDefinition>
</propertyDefinitions>
</nodeType>
Note that some labels containing special or non-ASCII characters could not be well displayed in the publication UI. You can extend the width of the current UI State button by adding:
.UIPublicationPanel .StatusTable .ActiveStatus { width: 75px !important;}
Also, for the publication date inputs, UIPublicationPanel should not initialize the dates to any default value. The publishing and unpublish CRON jobs will do this:
A staged document with null publication start date is published instantly.
A document with null publication end date is published forever.
See the export section for more information about the CRON jobs.