You are here

commerce_coupon.views.inc in Commerce Coupon 7.2

Same filename and directory in other branches
  1. 7 includes/views/commerce_coupon.views.inc

Coupon views extra data.

File

includes/views/commerce_coupon.views.inc
View source
<?php

/**
 * @file
 * Coupon views extra data.
 */

/**
 * Alter the views data to enable some additional features for coupons in views.
 */
function commerce_coupon_views_data_alter(&$data) {
  if (isset($data['commerce_coupon'])) {
    $data['commerce_coupon']['table']['base']['access query tag'] = 'commerce_coupon_access';
    $data['commerce_coupon']['remove_from_order'] = array(
      'field' => array(
        'title' => t('Remove from Order'),
        'help' => t('Remove coupon from the order.'),
        'handler' => 'commerce_coupon_handler_field_coupon_order_remove',
      ),
    );
    $data['commerce_coupon']['discount_value_display'] = array(
      'field' => array(
        'title' => t('Discount value display'),
        'help' => t('Display text describing value of the discount(s) linked to this coupon.'),
        'handler' => 'commerce_coupon_handler_field_discount_value_display',
      ),
    );
    $data['commerce_coupon']['delete'] = array(
      'field' => array(
        'title' => t('Delete coupon'),
        'help' => t('Link to delete a coupon.'),
        'handler' => 'commerce_coupon_handler_field_coupon_delete',
      ),
    );
    $data['commerce_coupon']['edit'] = array(
      'field' => array(
        'title' => t('Edit coupon'),
        'help' => t('Link to edit a coupon.'),
        'handler' => 'commerce_coupon_handler_field_coupon_edit',
      ),
    );

    // Uid relationship.
    $data['commerce_coupon']['uid']['relationship'] = array(
      'handler' => 'views_handler_relationship',
      'base' => 'users',
      'field' => 'uid',
      'label' => t('Recipient'),
    );

    // Change created into a date field.
    $data['commerce_coupon']['created'] = array(
      'title' => t('Created date'),
      'help' => t('The date the order was created.'),
      'field' => array(
        'handler' => 'views_handler_field_date',
        'click sortable' => TRUE,
      ),
      'sort' => array(
        'handler' => 'views_handler_sort_date',
      ),
      'filter' => array(
        'handler' => 'views_handler_filter_date',
      ),
    );

    // Add a special code argument handler.
    $data['commerce_coupon']['code']['argument'] = array(
      'handler' => 'commerce_coupon_handler_argument_coupon_code',
    );

    // Add a special coupon id argument handler.
    $data['commerce_coupon']['coupon_id']['argument'] = array(
      'handler' => 'commerce_coupon_handler_argument_coupon_id',
    );

    // Add coupon code handlers.
    $data['commerce_coupon']['code'] = array(
      'title' => t('Code'),
      'help' => t('The coupon code.'),
      'field' => array(
        'handler' => 'views_handler_field',
        'click sortable' => TRUE,
      ),
      'filter' => array(
        'handler' => 'views_handler_filter_string',
      ),
    );

    // Expose the coupon form on the cart form.
    $data['commerce_order']['coupon_cart_form'] = array(
      'title' => t('Coupon cart form'),
      'help' => t('Coupon cart form'),
      'area' => array(
        'handler' => 'commerce_coupon_handler_area_cart_form',
      ),
    );
  }
}

/**
 * Get the argument order if present.
 *
 * @param views_handler $handler
 *   A views handler.
 *
 * @return bool|object
 *   Either an order entity or FALSE.
 */
function _commerce_coupon_load_argument_order(views_handler $handler) {

  // Determine if there is an order id argument. If multiple are present, use
  // the first found.
  if (isset($handler->view->argument)) {
    foreach ($handler->view->argument as $alias => $argument) {
      if ($argument instanceof commerce_order_handler_argument_order_order_id) {
        $order_id = (int) $handler->view->argument[$alias]->value[0];
        $order = commerce_order_load($order_id);
      }
    }
  }
  return isset($order) ? $order : FALSE;
}

Functions

Namesort descending Description
commerce_coupon_views_data_alter Alter the views data to enable some additional features for coupons in views.
_commerce_coupon_load_argument_order Get the argument order if present.