You are here

public function MaestroNonInteractiveExampleTaskUninstallValidator::validate in Maestro 8.2

Same name in this branch
  1. 8.2 modules/examples/maestro_noninteractive_task_plugin_example/src/MaestroNonInteractiveExampleTaskUninstallValidator.php \Drupal\maestro_noninteractive_task_plugin_example\MaestroNonInteractiveExampleTaskUninstallValidator::validate()
  2. 8.2 modules/examples/maestro_noninteractive_task_plugin_example/src/ProxyClass/MaestroNonInteractiveExampleTaskUninstallValidator.php \Drupal\maestro_noninteractive_task_plugin_example\ProxyClass\MaestroNonInteractiveExampleTaskUninstallValidator::validate()
Same name and namespace in other branches
  1. 3.x modules/examples/maestro_noninteractive_task_plugin_example/src/MaestroNonInteractiveExampleTaskUninstallValidator.php \Drupal\maestro_noninteractive_task_plugin_example\MaestroNonInteractiveExampleTaskUninstallValidator::validate()

Determines the reasons a module can not be uninstalled.

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

modules/examples/maestro_noninteractive_task_plugin_example/src/MaestroNonInteractiveExampleTaskUninstallValidator.php, line 31

Class

MaestroNonInteractiveExampleTaskUninstallValidator
Prevents example task module from being uninstalled when the task is bound in a template.

Namespace

Drupal\maestro_noninteractive_task_plugin_example

Code

public function validate($module) {
  $reasons = [];
  if ($module == 'maestro_noninteractive_task_plugin_example') {

    // Cycle through all of the Maestro templates and determine if any of the tasks are of type MaestroNonIntExample.
    $templates = MaestroEngine::getTemplates();
    foreach ($templates as $template) {
      foreach ($template->tasks as $task) {
        if ($task['tasktype'] == 'MaestroNonIntExample') {
          $reasons[] = $this
            ->t('To uninstall the Non Interactive Plugin Task Example module, remove the Non Interactive Example task from the <em>:template</em> template.', [
            ':template' => $template->label,
          ]);
        }
      }
    }
  }
  return $reasons;
}