function FilterUninstallValidator::validate

Same name in this branch
  1. 11.x core/modules/filter/src/ProxyClass/FilterUninstallValidator.php \Drupal\filter\ProxyClass\FilterUninstallValidator::validate()
Same name and namespace in other branches
  1. 9 core/modules/filter/src/ProxyClass/FilterUninstallValidator.php \Drupal\filter\ProxyClass\FilterUninstallValidator::validate()
  2. 9 core/modules/filter/src/FilterUninstallValidator.php \Drupal\filter\FilterUninstallValidator::validate()
  3. 8.9.x core/modules/filter/src/ProxyClass/FilterUninstallValidator.php \Drupal\filter\ProxyClass\FilterUninstallValidator::validate()
  4. 8.9.x core/modules/filter/src/FilterUninstallValidator.php \Drupal\filter\FilterUninstallValidator::validate()
  5. 10 core/modules/filter/src/ProxyClass/FilterUninstallValidator.php \Drupal\filter\ProxyClass\FilterUninstallValidator::validate()
  6. 10 core/modules/filter/src/FilterUninstallValidator.php \Drupal\filter\FilterUninstallValidator::validate()

Overrides ModuleUninstallValidatorInterface::validate

File

core/modules/filter/src/FilterUninstallValidator.php, line 51

Class

FilterUninstallValidator
Prevents uninstallation of modules providing used filter plugins.

Namespace

Drupal\filter

Code

public function validate($module) {
    $reasons = [];
    // Get filter plugins supplied by this module.
    if ($filter_plugins = $this->getFilterDefinitionsByProvider($module)) {
        $used_in = [];
        // Find out if any filter formats have the plugin enabled.
        foreach ($this->getEnabledFilterFormats() as $filter_format) {
            $filters = $filter_format->filters();
            foreach ($filter_plugins as $filter_plugin) {
                if ($filters->has($filter_plugin['id']) && $filters->get($filter_plugin['id'])->status) {
                    $used_in[] = $filter_format->label();
                    break;
                }
            }
        }
        if (!empty($used_in)) {
            $reasons[] = $this->t('Provides a filter plugin that is in use in the following filter formats: %formats', [
                '%formats' => implode(', ', $used_in),
            ]);
        }
    }
    return $reasons;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.