Loading src/Form/SettingsForm.php +20 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,13 @@ class SettingsForm extends ConfigFormBase { */ protected $entityTypeManager; /** * The cache tags invalidator to be used. * * @var \Drupal\Core\Cache\CacheTagsInvalidatorInterface $cacheTagsInvalidator */ protected $cacheTagsInvalidator; /** * {@inheritdoc} */ Loading @@ -30,6 +37,7 @@ class SettingsForm extends ConfigFormBase { $instance = parent::create($container); $instance->entityTypeManager = $container->get('entity_type.manager'); $instance->cacheTagsInvalidator = $container->get('cache_tags.invalidator'); return $instance; } Loading Loading @@ -99,9 +107,21 @@ class SettingsForm extends ConfigFormBase { $trailless_menus = array_filter($trailless_menus); sort($trailless_menus); $trailless_menu_map = array_fill_keys($trailless_menus, TRUE); $existing_trailless_menu = $config->get(static::TRAILLESS_MENUS_SETTING); $config->set(static::TRAILLESS_MENUS_SETTING, $trailless_menu_map); $config->save(); if ($existing_trailless_menu !== $trailless_menu_map) { $diff_array = array_diff_key($existing_trailless_menu, $trailless_menu_map) + array_diff_key($trailless_menu_map, $existing_trailless_menu); $tags = []; foreach ($diff_array as $item => $value) { $tags[] = 'config:system.menu.' . $item; } $this->cacheTagsInvalidator->invalidateTags($tags); } parent::submitForm($form, $form_state); } Loading Loading
src/Form/SettingsForm.php +20 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,13 @@ class SettingsForm extends ConfigFormBase { */ protected $entityTypeManager; /** * The cache tags invalidator to be used. * * @var \Drupal\Core\Cache\CacheTagsInvalidatorInterface $cacheTagsInvalidator */ protected $cacheTagsInvalidator; /** * {@inheritdoc} */ Loading @@ -30,6 +37,7 @@ class SettingsForm extends ConfigFormBase { $instance = parent::create($container); $instance->entityTypeManager = $container->get('entity_type.manager'); $instance->cacheTagsInvalidator = $container->get('cache_tags.invalidator'); return $instance; } Loading Loading @@ -99,9 +107,21 @@ class SettingsForm extends ConfigFormBase { $trailless_menus = array_filter($trailless_menus); sort($trailless_menus); $trailless_menu_map = array_fill_keys($trailless_menus, TRUE); $existing_trailless_menu = $config->get(static::TRAILLESS_MENUS_SETTING); $config->set(static::TRAILLESS_MENUS_SETTING, $trailless_menu_map); $config->save(); if ($existing_trailless_menu !== $trailless_menu_map) { $diff_array = array_diff_key($existing_trailless_menu, $trailless_menu_map) + array_diff_key($trailless_menu_map, $existing_trailless_menu); $tags = []; foreach ($diff_array as $item => $value) { $tags[] = 'config:system.menu.' . $item; } $this->cacheTagsInvalidator->invalidateTags($tags); } parent::submitForm($form, $form_state); } Loading