You are here

public function ConfigSubscriber::onOverrideChange in Acquia Content Hub 8.2

Enqueues candidate entity when a configuration override changed.

Enqueues candidate configuration entity for publishing on language override change - either on save or delete.

Parameters

\Drupal\language\Config\LanguageConfigOverrideCrudEvent $event: The language configuration override event.

Throws

\Exception

File

modules/acquia_contenthub_publisher/src/EventSubscriber/Config/ConfigSubscriber.php, line 43

Class

ConfigSubscriber
Event subscriber to enqueue candidate Config Entity for publishing.

Namespace

Drupal\acquia_contenthub_publisher\EventSubscriber\Config

Code

public function onOverrideChange(LanguageConfigOverrideCrudEvent $event) {
  $config_name = $event
    ->getLanguageConfigOverride()
    ->getName();

  /** @var \Drupal\Core\Config\Entity\ConfigEntityType $entity_type_definition */
  foreach (\Drupal::entityTypeManager()
    ->getDefinitions() as $entity_type => $entity_type_definition) {
    if (!$entity_type_definition instanceof ConfigEntityType) {
      continue;
    }
    $config_prefix = $entity_type_definition
      ->getConfigPrefix();
    if (0 === strpos($config_name, $config_prefix)) {
      $id = ConfigEntityStorage::getIDFromConfigName($config_name, $config_prefix);
      $entity = \Drupal::entityTypeManager()
        ->getStorage($entity_type)
        ->load($id);
      if (!$entity) {
        return;
      }
      _acquia_contenthub_publisher_enqueue_entity($entity, 'update');
      return;
    }
  }
}