You are here

commerce_cart_view_override.module in Commerce Cart View Override 7

Provides the ability to override the default cart page view for Commerce.

File

commerce_cart_view_override.module
View source
<?php

/**
 * @file
 * Provides the ability to override the default cart page view for Commerce.
 */

/**
 * Implements hook_menu()
 */
function commerce_cart_view_override_menu() {
  $items = array();
  $items['admin/commerce/config/cart-overrides'] = array(
    'title' => 'Cart Overrides',
    'description' => 'Configure overrides for various aspects of the cart.',
    'type' => MENU_NORMAL_ITEM,
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'commerce_cart_view_override_admin_settings',
    ),
    'access arguments' => array(
      'administer checkout',
    ),
    'file' => 'includes/commerce_cart_view_override.admin.inc',
    'weight' => 55,
    'menu_name' => 'management',
  );
  return $items;
}

/**
 * Implements hook_menu_alter()
 */
function commerce_cart_view_override_menu_alter(&$items) {
  if (isset($items['cart'])) {
    $items['cart'] = array(
      'page callback' => 'commerce_cart_view_override_commerce_cart_view',
      'file' => 'includes/commerce_cart_view_override.pages.inc',
      'file path' => drupal_get_path('module', 'commerce_cart_view_override'),
    ) + $items['cart'];
  }
}

/**
 * Returns an array of eligible cart views suitable for an HTML options list
 *
 * @return
 *   The array of view names, keyed by the view machine name.
 */
function commerce_cart_view_override_options_list() {
  $options = array();
  foreach (views_get_all_views() as $view_name => $view) {
    if ($view_name != 'commerce_cart_form' && strpos($view_name, 'commerce_cart_form_') !== 0) {
      continue;
    }
    if ($view->base_table == 'commerce_order' && !empty($view->display['default']) && !empty($view->display['default']->display_options['arguments'])) {
      $first_arg = reset($view->display['default']->display_options['arguments']);
      if (strpos($first_arg['id'], 'order_id') === 0) {
        $options[$view_name] = isset($view->human_name) ? check_plain($view->human_name) : $view_name;
      }
    }
  }

  // Move the default view to the top
  if (isset($options['commerce_cart_form'])) {
    $options = array(
      'commerce_cart_form' => t('!label (default)', array(
        '!label' => $options['commerce_cart_form'],
      )),
    ) + $options;
  }
  return $options;
}

Functions

Namesort descending Description
commerce_cart_view_override_menu Implements hook_menu()
commerce_cart_view_override_menu_alter Implements hook_menu_alter()
commerce_cart_view_override_options_list Returns an array of eligible cart views suitable for an HTML options list