Config overridden

Categories

Component ID

2911245

Component name

Config overridden

Component type

module

Maintenance status

Development status

Component security advisory coverage

not-covered

Downloads

70

Component created

Component changed

Component body

Psss.. hey, man.. Wanna highlight some overridden settings?

As you might already know Drupal 8 has a different system of overriding settings comparing to Drupal 7. More about that is accessible here. So it is not always obvious that your settings are overridden in settings.php and you kind of trying to change the settings via admin page and still see the same result as it was!

So I've started a project for adding some visualization for overridden values on all admin forms.

P.S: Currently in first release only "Site Information" form is supported. But I hope that soon I'll add more flexibility to this.

How to add support for your custom form.

  1. Create Plugin under directory src/Plugin/ConfigFormOverrider
  2. Inherit your own class from Drupalconfig_overriddenPluginConfigFormOverriderConfigFormOverriderDefault
  3. Change method ::getApplicableFormIds() and add your form with ID and mappings

Example:


namespace DrupalmymodulePluginConfigFormOverrider;

use Drupalconfig_overriddenPluginConfigFormOverriderConfigFormOverriderDefault;

/**
 * Class FormOverriderDefault
 *
 * @ConfigFormOverrider(
 *   id = "form_mymodule_admin_form",
 *   name = @Translation("My own custom admin form highlighter"),
 *   weight = 1000
 * )
 */
class MyModuleConfigFormOverrider extends ConfigFormOverriderDefault {
  /**
   * Overrides ConfigFormOverriderDefault::getApplicableFormIds().
   *
   * {@inheritdoc}
   */
  protected function getApplicableFormIds() {
    return [
      // Form id == $form->getFormId();
      'myown_form_id' => [
        // Main config name. Check SiteInformationForm::getEditableConfigNames()
        'config_name' => 'system.site',
        // search_prefix - (optional) If all elements on form are inside of key $form['all_config_values']['value1'] = 123; and etc. Mapping has more priority
        // 'search_prefix' => 'site_information.inner_block.and.etc',
        'map' => [
          // Key is config name (used in settings.php). Value is a path to form element to find it in $form object
          'name' => 'site_information.site_name',
          'slogan' => 'site_information.site_slogan',
          'mail' => 'site_information.site_mail',
          'page.front' => 'front_page.site_frontpage',
          'page.404' => 'error_page.site_404', // In this case $form['error_page']['site_404']
          'page.403' => 'error_page.site_403',
        ],
      ],
    ];
  }
}