public FilterUninstallValidator::validate($module)
Determines the reasons a module can not be uninstalled.
Example implementation:
public function validate($module) {
$entity_types = $this->entityManager->getDefinitions();
$reasons = array();
foreach ($entity_types as $entity_type) {
if ($module == $entity_type->getProvider() && $entity_type instanceof ContentEntityTypeInterface && $this->entityManager->getStorage($entity_type->id())->hasData()) {
$reasons[] = $this->t('There is content for the entity type: @entity_type', array('@entity_type' => $entity_type->getLabel()));
}
}
return $reasons;
}
Parameters
string $module: A module name.
Return value
string[] An array of reasons the module can not be uninstalled, empty if it can. Each reason should not end with any punctuation since multiple reasons can be displayed together.
Overrides ModuleUninstallValidatorInterface::validate
See also
template_preprocess_system_modules_uninstall()
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;
}
Please login to continue.