This year at MODXpo Mark Hamstra presented a hands on demonstration on Developing Extras for MODX Revolution. The end result was ClientConfig, a fresh new MODX Add-on that you can find in the Extra Repository or GitHub. If you've found yourself making use of MODX System Settings, but loose sleep over the idea of your client landing on the System Setting page this Add-on is for you!
ClientConfig allows you to create your own Settings that can be referenced with the familiar System Settings syntax. ClientConfig settings are managed on their own custom components page, so managing these custom settings is much more user friendly than using System Settings. Also, there are a variety of Input Types currently available.
The ClientConfig Add-on page lists the following as potential uses cases:
- Regularly update a slogan or tag-line in header or footer
- Change call-to-action button colors based on the season
- Keep contact details updated in one central location
- Update the email-address a form sends notifications to.
And/or really anything you want to be a global setting and easy for your client to update!
By installing ClientConfig and visiting Components > Configuration you'll see an Admin button that allows you to create new groups and settings. (Well, assuming your user in part of the Administrator or a Sudo User that is.) If you'd like to give other User Groups Admin access to ClientConfig, you can do so by editing the clientconfig.admin_groups System Setting.
Once installed, simple add some groups and settings and reference your settings using the familiar System Settings syntax.
Gracefully Override System Settings
ClientConfig will override System Settings with the same name. This allows you to easily override and depreciate existing System Settings.
While ClientConfig Settings appear to act like MODX System Settings, they do differ when it comes to how they are cached. Unlike System Settings, the Resource Cache may need to be cleared for updates to settings to be reflected. For this reason Client Config has a clever cache feature. By default, ClientConfig automatically clears the necessary cache areas when you update a setting. To disable this, see the ClientConfig System Setting.