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 Drupal\config_overridden\Plugin\ConfigFormOverrider\ConfigFormOverriderDefault
  3. Change method ::getApplicableFormIds() and add your form with ID and mappings

Example:


namespace Drupal\mymodule\Plugin\ConfigFormOverrider;

use Drupal\config_overridden\Plugin\ConfigFormOverrider\ConfigFormOverriderDefault;

/**
 * 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',
        ],
      ],
    ];
  }
}

Supporting organizations: 
sponsored
sponsorship

Project information

Releases