moritz-sauer-13/silverstripe-page-status

Traffic light page completion status indicators for SilverStripe CMS editors

Maintainers

Package info

github.com/moritz-sauer-13/silverstripe-page-status

Type:silverstripe-vendormodule

pkg:composer/moritz-sauer-13/silverstripe-page-status

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.1 2026-05-06 14:19 UTC

This package is auto-updated.

Last update: 2026-05-06 14:23:16 UTC


README

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.