Using Site Studio with Acquia Content Hub
Acquia Content Hub is a cloud-based, centralized content distribution and syndication solution allowing you to share content across sites and other content sources.
As of Site Studio 6.7.0 functionality related to Acquia ContentHub has now been split into a separate module named “Site Studio Contenthub”. The module can be downloaded via composer and contains submodules for ContentHub “Publishing” and “Subscriber” sites.
Requirements
To install “sitestudio_contenthub” module the following versions are required:
- PHP 7.4 with "intl” extension
- Acquia ContentHub version 2.28.0 or higher, information on how to install is available here
- Acquia ContentHub subscription and credentials (as with any non Site Studio site that uses Acquia ContentHub)
Installation
The Site Studio Contenthub module is hosted at https://github.com/acquia/sitestudio_contenthub and can be downloaded via composer:composer require acquia/sitestudio_contenthub
The “Site Studio Contenthub” module itself is just a “wrapper” module and should not be enabled. It is intentionally hidden from the module list in the Drupal UI. Enabling it will add no benefit or any additional functionality to the site.
Instead, one or both of the submodules (“sitestudio_contenthub_publisher” and “sitestudio_contenthub_subscriber”) should be enabled.
These submodules are used in the same way as ContentHub submodules for publishing (“contenthub_publisher”) and subscribing (“contenthub_subscriber”).
Setup for Publisher site
If a website with Site Studio needs to publish its content via Acquia ContentHub as a “Publisher” site, then "Site Studio ContentHub Publisher" should be enabled.
Once the 'Site Studio Contenthub' module has been downloaded, the “Site Studio ContentHub Publisher” submodule can be enabled via the Drupal UI under the “Extend” menu or by running the following Drush command:drush pm-enable sitestudio_contenthub_publisher -y
Setup for Subscriber site
If a website with Site Studio needs to receive content as a “Subscriber” site from Acquia ContentHub, then the "Site Studio ContentHub Subscriber" module should be enabled.
Once the 'Site Studio Contenthub' module has been downloaded, the “Site Studio ContentHub Subscriber” submodule can be enabled via the Drupal UI under the “Extend” menu or by running the following Drush command:drush pm-enable sitestudio_contenthub_subscriber -y
Setup for site that needs to be both Publisher and Subscriber
If a website needs to be both a Publisher and a Subscriber, then both submodules should be enabled.
Once the 'Site Studio Contenthub' module has been downloaded, both the “Site Studio ContentHub Subscriber” and “Site Studio ContentHub Publisher” submodule can be enabled via the Drupal UI under the “Extend” menu or by running the following Drush command:drush pm-enable sitestudio_contenthub_publisher -y
drush pm-enable sitestudio_contenthub_subscriber -y
Using Content Hub with Site Studio
Content created using the Layout Canvas has dependencies on CSS styles, components and templates which are not included and distributed with the content using Content Hub. When syndicating content the relevant config entities need to be in place on the subscriber site.
When using Content Hub to syndicate content that has been created using Site Studio there are some very important features that you should understand. These are:
- The default module behaviour is different from the Site Studio versions before 6.7.0. The new "Site Studio Contenthub" module intentionally prevents any Site Studio Config entities from being published via Acquia ContentHub. This is by design and is there to prevent the layout and styling of the publisher site ‘Site Studio theme’ from overriding your Subscriber site ‘Site Studio theme’.
- When publishing content entities built with Site Studio, the “Subscriber Site” needs to have the required config entities in advance. This applies to all Site Studio config entities, such as Components, Base Styles, Custom Styles, Templates, Style Guide, Style Guide Manager settings etc.
- The actual values of the config entities can differ, but they need to exist with the same machine names and uuids for Syndication to work properly.
- When syndicating a page that uses Site Studio components, it's important that the subscriber website has the component configuration and any dependencies available. This includes any dependencies a component field may have. For example: If a component includes a color picker field then the subscriber site must have the same color variables available as the publisher site. If it doesn't, a color selected on the publisher may not appear on the subscriber site so the element it's applied too will be invisible.
- When syndicating a page that uses Site Studio components, all the content within the components is stored within a single layout canvas field. This means that when a publisher updates a page, the entire Layout canvas content will be replaced on the subscriber site.
- To ensure your subscriber site has what it needs, a rule of thumb would be to ensure the Publisher and Subscriber sites use the same Site Studio config entities by exporting a Package from the Publisher site and importing the Package into the Subscriber site.
- Rebuilding Site Studio config entities does not result in them being added to the Publisher site export queue.
- Any Content entity references in the Layout Canvas on a published Content Entity are also included in the dependency list.
- If a "Subscriber" site has the "Site Studio Contenthub subscriber" submodule enabled when importing content entities from ContentHub, any entity references used in the Layout Canvas fields will be automatically updated to refer to the relevant entity IDs.