Provides an Editor UI and Developer API for managing custom settings
Provides an Editor UI and Developers API for setting/getting content that needs to be all over the place but isn't exactly config, and isn't exactly entity stuff.
Technically you create config keys (eg global
or site-settings
). This key gets linked directly to exactly one bundle in the settings
entity type.
Developers are free to create bundles/fields in the entity type settings
themselves, and create keys to refer to them.
On /admin/config/wmsettings
one can add settings. A setting effectively links a machine name to a specific entity id. The entity gets autocreated.
You can also add configs by directly writing config files I suppose, for the brave that feel up to it. Just follow the wmsettings.schema.yml for that.
The administrative interface for editors is at admin/content/wmsettings
. Note that:
- The
administer wmsettings content
permission + edit permissions for thesettings
entity type will be required to edit the settings - Editors should only be able to edit these autocreated entities. Do NOT provide direct access to creation/deletion of settings entitites.
There are several ways to access the entity for a key.
$entity = Drupal::service('wmsettings.settings')
->read('my_key');
wmsettings_get('my_key');
Returns a quick flattened array of all values in a setting, given field names and field types. Not a lot of field types are supported now.
$variables['copy'] = Drupal::service('wmsettings.settings')
->fill($global_copy, ['field_name' => 'textarea']);
Drupal requires at least two tasks to show them, so for the sake of completeness this example loads two tasks too:
wmcustom.home_controller_home.home:
title: 'View'
route_name: wmcustom.home_controller_home
base_route: wmcustom.home_controller_home
wmcustom.home_controller_home.edit:
title: 'Edit'
route_name: wmsettings.settings.redirect
route_parameters:
key: 'homepage'
anchor: 'edit-group-hero-image'
destination: 'wmcustom.home_controller_home'
base_route: wmcustom.home_controller_home
All notable changes to this project will be documented in the CHANGELOG file.
If you discover any security-related issues, please email security@wieni.be instead of using the issue tracker.
Distributed under the MIT License. See the LICENSE file for more information.