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)
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.
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.
MyClass:
extensions:
- 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!
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.
Member:
extensions:
- Versioned("Stage")
- VersionHistoryExtension
version_history_hidden_fields:
- Password
- PasswordEncryption
- Salt
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.