You are here

RegistrationViewsController.php in Entity Registration 8.2

File

modules/registration_views/src/RegistrationViewsController.php
View source
<?php

namespace Drupal\registration_views;

class RegistrationViewsController extends EntityDefaultViewsController {
  public function views_data() {
    $data = parent::views_data();
    $data['registration']['view_registration'] = array(
      'field' => array(
        'title' => t('View link'),
        'help' => t('Provide a link to view a registration.'),
        'handler' => 'registration_handler_field_registration_link',
      ),
    );
    $data['registration']['edit_registration'] = array(
      'field' => array(
        'title' => t('Edit link'),
        'help' => t('Provide a link to edit a registration.'),
        'handler' => 'registration_handler_field_registration_link_edit',
      ),
    );
    $data['registration']['delete_registration'] = array(
      'field' => array(
        'title' => t('Delete link'),
        'help' => t('Provide a link to delete a registration.'),
        'handler' => 'registration_handler_field_registration_link_delete',
      ),
    );
    $data['registration']['state']['relationship']['base field'] = 'name';
    foreach (registration_get_types() as $registration_type) {
      $info = \Drupal::entityManager()
        ->getDefinition($registration_type->registrant_entity_type);
      $relationship_key = $registration_type->registrant_entity_type . '_' . $info['entity keys']['id'];
      $data['registration'][$relationship_key]['title'] = t('Registrant @entity', array(
        '@entity' => $info['label'],
      ));
      $data['registration'][$relationship_key]['help'] = t('The entity registered for this event.');
      $data['registration'][$relationship_key]['relationship'] = array(
        'handler' => 'views_handler_relationship',
        'base' => $info['base table'],
        'base field' => $info['entity keys']['id'],
        'label' => t('Registrant @entity', array(
          '@entity' => $info['label'],
        )),
        'relationship field' => 'registrant_id',
      );
    }
    $data['registration']['type']['relationship'] = array(
      'handler' => 'views_handler_relationship',
      'base' => 'registration_type',
      'base field' => 'name',
      'label' => t('Registration type'),
    );
    return $data;
  }

}

Classes