Provides a basic audit trail interface for Versioned objects

Fund package maintenance!

Installs: 2 583

Dependents: 0

Suggesters: 0

Security: 0

Stars: 6

Watchers: 4

Forks: 8

Open Issues: 2


v1.1.0 2018-11-12 19:35 UTC

This package is auto-updated.

Last update: 2024-03-28 01:24:23 UTC


This ports some of the functionality from the History tab of the page editing interface in SilverStripe and makes it available for other classes.



SilverStripe 3.1+ (3.4 tested)


Composer (best practice)

Packagist listing and installation instructions


I promise it's worth your time to learn how to use Composer. If painless updating isn't your thing though you can download and extract this project, rename the module folder 'version-history', place it in your project root and run a dev/build?flush=1.

How to use

Just apply the VersionHistoryExtension extension to your class (which also has the Versioned extension) and a History tab will be added to the CMS fields.

    - Versioned("Stage")
    - VersionHistoryExtension

This module currently doesn't distinguish between staged and published versions, nor does it support rolling back to a previous version, because I'm using it simply to track changes. If you want to expand the functionality though, feel free to open a pull request!

Hide some fields from the history tab

If you want to hide some fields from the history tab, you can set the version_history_hidden_fields configuration attribute on your DataObject. The following YML configuration applies the VersionHistoryExtenion to the Member DataObject, but hides sensitive information like the Salt and Password fields.

    - Versioned("Stage")
    - VersionHistoryExtension
    - Password
    - PasswordEncryption
    - Salt

Maintainer contact

Jono Menz


If you want to boost morale of the maintainer you're welcome to make a small monthly donation through GitHub, or a one time donation through PayPal. ❤️ Thank you!

Please also feel free to get in touch if you want to hire the maintainer to develop a new feature, or discuss another opportunity.