Publishing

Publishing means transferring content from a Magnolia author instance to public instances.

From author to public

Magnolia is distributed as two web applications: an author instance where editors work and a public instance where visitors access the website. Typically you have at least two public instances for load balancing and high availability reasons. Content is published from the author instance to the public instances.

Author and Public instances diagram

There are three publishing actions:

  • Publish: Publishes the selected node to the public instance.

  • Publish incl. subnodes: Publishes the selected node and its children to the public instance. This action typically runs asynchronously because it can take a while to publish lots of content.

  • Unpublish: Unpublishes (deactivates) the node from the public instance.

Apps typically display the publishing status in the workbench.

If you have a site structure like: node1 (unpublished) → node2 (published) → node3 (unpublished), it is not possible to publish node3 because an ancestor is unpublished. The screenshot below illustrates this in the UI. The publishing buttons on the right-hand side are inactive because the story page’s ancestor stories is unpublished.

Unpublished ancestors

Publication status
  • Publishing status icon - Published Published (solid green circle): Content was published from the author instance to the public instance. Identical content exists on both instances.

  • Publishing status icon - Modified Modified (amber circle with a dot): Content was modified since publication. The author instance is not in sync with the public.

  • Publishing status icon - Unpublished Unpublished (red circle): Content exists only on the author instance.

Scheduled publishing

With workflow you can schedule publishing to a future date and include approval steps. The editor who launches the publication workflow can add a comment for the reviewer and set a publication date.

Submit for publication scheduling confirmation

Publishers receive a task in the Tasks app. They can assign the task to themselves and approve or reject it. The system can also show what changed on the page.

List of scheduled tasks

Publishing changes only

When you publish a node and its children you often end up publishing content whose status is already Published. Such nodes don’t need to be published but it is often more convenient to just publish the whole tree than node-by-node.

To improve author instance performance, exclude already-published nodes from the action. Publish modified nodes only. This may help performance and scalability in cases where the author instance has a high concurrent load (many editors activating large amounts of content at the same time).

To publish only modified pages, add the modifiedOnly property under the params node in the dialog action definition and set it to true.

This is typically found under /pages/apps/pages-app.yaml file under the publishRecursive section.
pages/apps/pages-app.yaml
...
      publishRecursive:
        icon: icon-publish-incl-sub
        $type: jcrCommandAction
        command: publish
        asynchronous: true
        params:
          recursive: true
          modifiedOnly: true (1)
...
1 The modifiedOnly property is a Boolean that tells Magnolia to publish only modified pages (true) or publish all pages (false).
Table 1. Properties

modifiedOnly

Publishes only nodes that are modified or never published. Excludes nodes that are already published.

optional, default is false

You cannot assume that a page has the same state on author and public instance just because the publishing status is Published (green). It is possible to manipulate pages on the public instance after publishing.

For example, you can change content on a public instance by importing, cloning or via the REST API without the author instance knowing. If such non-publishing activity changes content on your public instances, you may want to allow editors to publish a page even if its status is green to override the non-publishing changes. In this case, set the modifiedOnly property to false.

Publishing campaigns

You can publish and control every aspect of a campaign using the Campaign Publisher module. Make a campaign, then add pages, assets, and other dependant content to the campaign, such as configuration, and click Publish.

Head over to Campaign Publisher to read more about it.

Feedback

DX Core