You are here

public function EventSubscriber::alterConfiguration in Opigno certificate 3.x

Same name and namespace in other branches
  1. 8 src/EventSubscriber/EventSubscriber.php \Drupal\opigno_certificate\EventSubscriber\EventSubscriber::alterConfiguration()

Sets paper orientation depending to certificate paper_orientation field.

File

src/EventSubscriber/EventSubscriber.php, line 22

Class

EventSubscriber
Class EventSubscriber.

Namespace

Drupal\opigno_certificate\EventSubscriber

Code

public function alterConfiguration(GenericEvent $event) {
  $route_name = \Drupal::routeMatch()
    ->getRouteName();
  if ($route_name == 'certificate.entity.pdf') {
    $route_params = \Drupal::routeMatch()
      ->getParameters();
    $type = $route_params
      ->get('entity_type');
    if ($type == 'group') {
      $id = $route_params
        ->get('entity_id');
      $group = Group::load($id);
      if ($group) {
        $certificate_id = $group
          ->get('field_certificate')->target_id;
        $certificate = OpignoCertificate::load($certificate_id);
        if ($certificate && $certificate
          ->hasField('paper_orientation')) {
          $orientation = $certificate
            ->get('paper_orientation')->value;
          $configuration = $event
            ->getArgument('configuration');
          $configuration['default_paper_orientation'] = $configuration['orientation'] = !empty($orientation) ? $orientation : 'portrait';
          $event
            ->setArgument('configuration', $configuration);
        }
      }
    }
  }
}