Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

CPS

No security coverage
View on drupal.org

CPS is a content publishing system that fundamentally changes how content revisions are managed. It introduces the concept of "site versions" to isolate changes from the live public view, allowing administrators to make edits in a separate environment before publishing them all at once. This system aims to provide a more controlled and predictable content workflow.

CPS, or the Content Publishing System, is a radical way of handling revisions for entities. It takes total control over revision management for all supported entities. For CPS-enabled entities, the revision tab is completely replaced and users are not allowed to manually create or move around revisions.

In order to manage revisions, CPS introduces the concept of a site version which will be considered to own all entity revisions. The default site version, known as the *Live* site version, is the only one accessible to non-privileged users, and it is considered to be the publically available state of the site.

Privileged users are not allowed to create, edit or delete content while viewing the Live changeset. Instead, users must create a site version and select it in the site version tool bar (which appears in the IIB bar just below the admin toolbar).

Once a site version is selected, all entity changes made will be stored in revisions that are attached to that changeset. The Live version of the site will not be affected. No matter how many changes are made to a single entity in a site version, only one revision for that site version will be stored.

Once content administrators are satisfied with a site version, administrators have the option of publishing the changeset. In that operation, all revisions in that site version are made live and the changeset is moved into an archived state for later use.

CPS modifies views and entity field queries automatically to try and make sure that the non-live state is presented accurately. Because of the way it works, nothing special needs to be done for preview, as simply activating a site version serves as a preview.

CPS can support nearly any entity that supports revisions. Each unique entity type needs a CPS plugin in order to make sure CPS can properly manage its revisions, and its published status if it supports that. It comes with bundled support for node and file_entity entities (the latter requires the file_entity_revision module).

It has been used extensively with custom entities based on entity module.

Requirements

  • CPS now requires the drafty module.

Screencasts

(about 5 minutes each)
Part 1
Part 2

Comparisons

  • SPS: Need to see how this compares to SPS.
  • Zariz: Zariz fills a very similar role, but instead of managing revisions, it duplicates entities and uses OG groups to manage branches, with more of an emphasis on merging.

Activity

Total releases
5
First release
Feb 2025
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 5
Maintenance
Dormant

Release Timeline

Releases

Version Type Release date
7.x-1.3-rc1 Pre-release Apr 7, 2025
7.x-1.2 Stable Apr 7, 2025
7.x-1.1 Stable Apr 7, 2025
7.x-1.1-rc1 Pre-release Feb 21, 2025
7.x-1.0 Stable Feb 21, 2025