contacts_events-8.x-1.x-dev/contacts_events.views.inc
contacts_events.views.inc
<?php
/**
* @file
* Views hook implementations for Contacts Events.
*/
use Drupal\Core\StringTranslation\TranslatableMarkup;
/**
* Implements hook_views_data().
*/
function contacts_events_views_data() {
$data['commerce_order']['booking_link'] = [
'group' => new TranslatableMarkup('Order'),
'title' => new TranslatableMarkup("Continue booking link"),
'real field' => 'order_id',
'field' => ['id' => 'contacts_events_booking_links'],
];
$data['commerce_order']['booking_relation_icons'] = [
'group' => new TranslatableMarkup('Order'),
'title' => new TranslatableMarkup('Booking relation icons'),
'help' => new TranslatableMarkup("Icons indicating the user's relationship to the booking."),
'real field' => 'order_id',
'field' => ['id' => 'contacts_events_booking_relation_icons'],
];
$data['commerce_order']['contacts_events_ticketholder_ticket_status'] = [
'group' => new TranslatableMarkup('Order'),
'title' => new TranslatableMarkup('Ticket State'),
'help' => new TranslatableMarkup("Ticket state for the current user."),
'real field' => 'order_id',
'field' => ['id' => 'contacts_events_ticketholder_ticket_status'],
];
$data['commerce_order']['user_bookings'] = [
'group' => new TranslatableMarkup('Order'),
'title' => new TranslatableMarkup("User's bookings"),
'help' => new TranslatableMarkup('Show all bookings for a given user ID, both booking manager and ticket holders.'),
'real field' => 'order_id',
'argument' => ['id' => 'contacts_events_user_bookings'],
];
$data['commerce_order']['contacts_events_balance'] = [
'title' => t('Order balance'),
'field' => [
'title' => t('Order balance'),
'help' => t('Displays the remaining balance for an order.'),
'id' => 'contacts_events_balance',
'real field' => 'order_id',
],
];
// Add field to order for "Ticketholder Names".
$data['commerce_order']['ticketholder_names'] = [
'title' => new TranslatableMarkup('Ticket holder names'),
'help' => new TranslatableMarkup('Names of all ticketholders in this booking'),
'real field' => 'order_id',
'field' => ['id' => 'contacts_events_booking_ticket_holders'],
];
$data['commerce_order_item__state']['table'] = [
'group' => new TranslatableMarkup('Order item'),
'join' => [
'commerce_order_item' => [
'left_field' => 'order_item_id',
'field' => 'entity_id',
'extra' => [
[
'field' => 'deleted',
'value' => 0,
'numberic' => TRUE,
],
],
],
],
'entity type' => 'commerce_order_item',
];
$data['commerce_order_item__state']['state_value'] = [
'group' => new TranslatableMarkup('Order item'),
'title' => new TranslatableMarkup('State'),
'field' => [
'id' => 'field',
],
'filter' => [
'id' => 'standard',
],
'entity field' => 'state',
];
// OrderItem::$confirmed.
$data['commerce_order_item__confirmed']['table'] = [
'group' => new TranslatableMarkup('Order item'),
'join' => [
'commerce_order_item' => [
'left_field' => 'order_item_id',
'field' => 'entity_id',
'extra' => [
[
'field' => 'deleted',
'value' => 0,
'numberic' => TRUE,
],
],
],
],
'entity type' => 'commerce_order_item',
];
$data['commerce_order_item__confirmed']['confirmed'] = [
'group' => new TranslatableMarkup('Order item'),
'title' => new TranslatableMarkup('Confirmed'),
'field' => [
'id' => 'field',
'field_name' => 'confirmed',
'entity_type' => 'contacts_ticket',
'real field' => 'confirmed_value',
'additional fields' => [
'delta',
'langcode',
'bundle',
'confirmed_value',
],
'element type' => 'div',
'is revision' => FALSE,
'click sortable' => TRUE,
],
];
$data['commerce_order_item__confirmed']['confirmed_value'] = [
'group' => new TranslatableMarkup('Order item'),
'title' => new TranslatableMarkup('Confirmed'),
'filter' => [
'id' => 'date',
'additional fields' => [
'bundle',
'deleted',
'entity_id',
'revision_id',
'langcode',
'delta',
'confirmed_value',
],
'field_name' => 'confirmed',
'entity_type' => 'contacts_ticket',
'allow empty' => TRUE,
],
'sort' => [
'id' => 'date',
'additional fields' => [
'bundle',
'deleted',
'entity_id',
'revision_id',
'langcode',
'delta',
'confirmed_value',
],
'field_name' => 'confirmed',
'entity_type' => 'contacts_ticket',
],
];
return $data;
}
/**
* Implements hook_views_data_alter().
*/
function contacts_events_views_data_alter(array &$data) {
$data['commerce_order_item__state']['state_value']['filter']['id'] = 'contacts_state_machine_state';
$data['commerce_order__event']['event_target_id']['filter']['id'] = 'contacts_events_order_event';
$data['users_field_data']['user_to_ticket'] = [
'relationship' => [
'title' => new TranslatableMarkup('Tickets for a User'),
'label' => new TranslatableMarkup('Ticket'),
'id' => 'standard',
'base' => 'contacts_ticket',
'base field' => 'contact',
'entity type' => 'contacts_ticket',
'relationship field' => 'uid',
'real field' => 'contact',
],
];
}
