No description
- PHP 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| _config | ||
| lang | ||
| src | ||
| .gitignore | ||
| _config.php | ||
| composer.json | ||
| de.yml | ||
| en.yml | ||
| README.md | ||
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:
- Add the key to the YAML config above
- Add the lang keys (
STATUS_<key>andSTATUS_<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.