3 namespace Drupal\bootstrap_layouts;
5 use Drupal\Core\Extension\ModuleUninstallValidatorInterface;
6 use Drupal\Core\StringTranslation\StringTranslationTrait;
9 * Class BootstrapLayoutsUninstallValidator
11 class BootstrapLayoutsUninstallValidator implements ModuleUninstallValidatorInterface {
13 use StringTranslationTrait;
16 * The BootstrapLayouts manager.
18 * @var \Drupal\bootstrap_layouts\BootstrapLayoutsManager
23 * Constructs a new ContentUninstallValidator.
25 * @param \Drupal\bootstrap_layouts\BootstrapLayoutsManager $manager
26 * The BootstrapLayouts manager.
28 public function __construct(BootstrapLayoutsManager $manager) {
29 $this->manager = $manager;
35 public function validate($module) {
38 if ($module === 'bootstrap_layouts') {
40 foreach ($this->manager->getHandlers() as $handler) {
41 foreach ($handler->loadInstances() as $storage_id => $layout) {
42 if ($layout->isBootstrapLayout()) {
43 $layouts[$layout->getId()][] = $handler->getPluginId() . ':' . $storage_id;
48 foreach ($layouts as $layout_id => $storage_ids) {
49 sort($storage_ids, SORT_NATURAL);
50 $reasons[] = $this->t('Using layout: @layout_id (@storage_ids)', [
51 '@layout_id' => $layout_id,
52 '@storage_ids' => implode(', ', $storage_ids),