t('Popup Cart Config'), 'description' => t('Configure the Commerce Popup Cart'), 'file' => 'commerce_popup_cart.admin.inc', 'page callback' => 'drupal_get_form', 'page arguments' => array('commerce_popup_cart_admin_form'), 'access arguments' => array('administer popup cart'), ); return $items; } /** * Implementation of hook_permission */ function commerce_popup_cart_permission(){ return array( 'administer popup cart' => array( 'title' => t('Administer the Commerce Popup Cart'), 'description' => t('Perform administration tasks for the Commerce Popup Cart module..'), ), ); } /** * Implements hook_block_info(). */ function commerce_popup_cart_block_info() { $blocks = array(); // Define the basic shopping cart block and hide it on the checkout pages. $blocks['commerce_popup_cart'] = array( 'info' => t('Popup Shopping cart'), 'cache' => DRUPAL_NO_CACHE, 'visibility' => 0, ); return $blocks; } /** * Implements hook_block_view(). */ function commerce_popup_cart_block_view($delta='') { $block = array(); switch($delta) { case 'commerce_popup_cart': global $user; // Default to an empty cart block message. $content = ''; // First check to ensure there are products in the shopping cart. if ($order = commerce_cart_order_load($user->uid)) { $wrapper = entity_metadata_wrapper('commerce_order', $order); // Build the variables array to send to the cart block template. $variables = array( 'order' => $order, 'contents_view' => commerce_embed_view('commerce_cart_block', 'defaults', array($order->order_id), $_GET['q']), ); $quantity = 0; foreach ($wrapper->commerce_line_items as $line_item) { if (!$line_item instanceof EntityMetadataWrapper) { $line_item = entity_metadata_wrapper('commerce_line_item', $line_item); } $types = commerce_popup_cart_selected_line_items(); if (in_array($line_item->type->value(), $types)) { $quantity += $line_item->quantity->value(); } } if ($quantity > 0){ if (variable_get('commerce_popup_cart_item_suffix', 0)){ $quantity = format_plural($quantity, '1 item', '@count items'); } $content = theme('commerce_popup_cart_cart', array( 'product_count' => $quantity, 'variables' => $variables, )); }elseif (variable_get('commerce_popup_cart_show_empty_cart', 0) == 1){ $content = commerce_popup_cart_block_view_get_empty_cart($variables); } }elseif (variable_get('commerce_popup_cart_show_empty_cart', 0) == 1){ $content = commerce_popup_cart_block_view_get_empty_cart($variables = array()); } // If the superfish module is not installed then add hoverintent script if (!module_exists('superfish')){ drupal_add_js(drupal_get_path('module','commerce_popup_cart') . '/js/jquery.hoverIntent.minified.js'); } return array('subject' => t('Shopping cart'), 'content' => $content); break; } return $block; } function commerce_popup_cart_block_view_get_empty_cart($variables){ return theme('commerce_popup_cart_empty', array( 'empty_cart_message' => variable_get('commerce_popup_cart_empty_cart_msg', 'Your cart is empty'), 'variables' => $variables, )); } function commerce_popup_cart_theme() { $default_template_path = drupal_get_path('module', 'commerce_popup_cart') . '/theme'; return array( 'commerce_popup_cart_cart' => array( 'variables' => array('product_count' => NULL, 'variables' => NULL), 'path' => $default_template_path, 'template' => 'commerce_popup_cart_cart', ), 'commerce_popup_cart_empty' => array( 'variables' => array('empty_cart_message' => NULL, 'variables' => NULL,), 'path' => $default_template_path, 'template' => 'commerce_popup_cart_empty', ), ); } function commerce_popup_cart_line_items() { $line_items = array(); $line_item_types = commerce_line_item_types(); foreach($line_item_types as $line_item) { $line_items[$line_item['type']] = t($line_item['name']); } return $line_items; } /* * Create array with line item types to be included in the counter * * @return array * Array with the selected line item types. */ function commerce_popup_cart_selected_line_items() { $line_item_types = variable_get('commerce_popup_cart_line_items_types', array('product' => 'product') ); $types = array(); foreach($line_item_types as $type => $value ) { if ($value != '0') { $types[] = $type; } } return $types; }