You are here

public static function RngEventType::courierContextCC in RNG - Events and Registrations 8.2

Same name and namespace in other branches
  1. 3.x src/Entity/RngEventType.php \Drupal\rng\Entity\RngEventType::courierContextCC()

Create or clean up courier_context if none exist for an entity type.

Parameters

string $entity_type: Entity type of the event type.

string $operation: An operation: 'create' or 'delete'.

Overrides EventTypeInterface::courierContextCC

2 calls to RngEventType::courierContextCC()
RngEventType::postDelete in src/Entity/RngEventType.php
Acts on deleted entities before the delete hook is invoked.
RngEventType::preSave in src/Entity/RngEventType.php
Acts on an entity before the presave hook is invoked.

File

src/Entity/RngEventType.php, line 369

Class

RngEventType
Defines the event type entity.

Namespace

Drupal\rng\Entity

Code

public static function courierContextCC($entity_type, $operation) {
  $event_types = \Drupal::service('rng.event_manager')
    ->eventTypeWithEntityType($entity_type);
  if (!count($event_types)) {
    $courier_context = CourierContext::load('rng_registration_' . $entity_type);
    if ($courier_context) {
      if ($operation == 'delete') {
        $courier_context
          ->delete();
      }
    }
    else {
      if ($operation == 'create') {
        $entity_type_info = \Drupal::entityTypeManager()
          ->getDefinition($entity_type);
        $courier_context = CourierContext::create([
          'label' => t('Event (@entity_type): Registration', [
            '@entity_type' => $entity_type_info
              ->getLabel(),
          ]),
          'id' => 'rng_registration_' . $entity_type,
          'tokens' => [
            $entity_type,
            'registration',
          ],
        ]);
        $courier_context
          ->save();
      }
    }
  }
}