No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-01 10:58:24 +02:00
_config Add global enable/disable functionality for Page Status module 2026-05-06 16:18:08 +02:00
lang Add initial implementation of SilverStripe page status module 2026-05-06 16:03:05 +02:00
src Add global enable/disable functionality for Page Status module 2026-05-06 16:18:08 +02:00
.gitignore Add initial implementation of SilverStripe page status module 2026-05-06 16:03:05 +02:00
_config.php Add initial implementation of SilverStripe page status module 2026-05-06 16:03:05 +02:00
composer.json Add global enable/disable functionality for Page Status module 2026-05-06 16:19:47 +02:00
de.yml Add initial implementation of SilverStripe page status module 2026-05-06 16:03:05 +02:00
en.yml Add initial implementation of SilverStripe page status module 2026-05-06 16:03:05 +02:00
README.md Add global enable/disable functionality for Page Status module 2026-10-01 10:58:24 +02:00

silverstripe-page-status

Traffic light completion status for SilverStripe CMS pages. Gives editors a quick overview of which pages still need attention.

Requirements

  • SilverStripe CMS ^6
  • lekoala/silverstripe-cms-actions

Installation

composer require moritzsauer/silverstripe-page-status

Then run dev/build?flush=1.

What it does

Each page gets a PageStatus field with three states:

Key Default label Meaning
created Created Page exists, no content yet
progress In Progress Being filled, still incomplete
done Done Fully maintained

Where the status is visible and editable:

  • SiteTree — small coloured dot next to every page title (hover for tooltip)
  • Page edit form — dropdown in the action toolbar at the bottom
  • Batch actions — set status on multiple pages at once via the tree's multi-select
  • Reports — "Pflegestatus der Seiten" lists all pages filterable by status

Status changes create a new draft version but do not publish the page.

Configuration

Override statuses, colours and default in your project's YAML:

MoritzSauer\PageStatus\Service\StatusRegistry:
  default_status: created
  statuses:
    created:
      color: '#dc3545'
      text_color: '#ffffff'
      sort: 10
    progress:
      color: '#ffc107'
      text_color: '#212529'
      sort: 20
    done:
      color: '#28a745'
      text_color: '#ffffff'
      sort: 30

Override labels in your project's lang/de.yml:

de:
  MoritzSauer\PageStatus:
    STATUS_created: 'Mein Label'

Adding a custom status key requires only two steps:

  1. Add the key to the YAML config above
  2. Add the lang keys (STATUS_<key> and STATUS_<key>_DESC) — label falls back to the key name if omitted

The page-edit action button is registered automatically via allMethodNames(). For a matching batch action, add a subclass of AbstractSetPageStatusBatchAction and register it in _config.php.