'Cart links settings', 'description' => 'Configure and craft special product add to cart links.', 'page callback' => 'drupal_get_form', 'page arguments' => array('uc_cart_links_settings_form'), 'access arguments' => array('administer cart links'), 'type' => MENU_NORMAL_ITEM, 'file' => 'uc_cart_links.admin.inc', ); $items['admin/store/reports/cart_links'] = array( 'title' => 'Cart links clicks', 'description' => 'Track clicks through cart links.', 'page callback' => 'uc_cart_links_report', 'access arguments' => array('view cart links report'), 'type' => MENU_NORMAL_ITEM, 'file' => 'uc_cart_links.admin.inc', ); $items['admin/store/help/cart_links'] = array( 'title' => 'Creating cart links', 'description' => 'Learn how to create cart links for your products.', 'page callback' => 'uc_cart_links_creation_help', 'access arguments' => array('administer store'), 'type' => MENU_NORMAL_ITEM, 'file' => 'uc_cart_links.admin.inc', ); $items['cart/add/%'] = array( 'title' => 'Add to cart', 'page callback' => 'drupal_get_form', 'page arguments' => array('uc_cart_links_form', 2), 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, 'file' => 'uc_cart_links.pages.inc', ); return $items; } /** * Implementation of hook_perm(). */ function uc_cart_links_perm() { return array('administer cart links', 'view cart links report'); } /** * Implementation of hook_add_to_cart(). */ function uc_cart_links_add_to_cart($nid, $qty, $data) { if (user_access('administer cart links') && variable_get('uc_cart_links_add_show', FALSE)) { $cart_link = 'p'. $nid .'_q'. $qty; if (!empty($data['attributes'])) { foreach ($data['attributes'] as $attribute => $option) { if (is_array($option)) { // Checkbox options are stored in an array foreach ($option as $oid => $ovalue) { if ($ovalue != 0) { $cart_link .= '_a'. $attribute .'o'. $oid; } } } else { // Textfield, Select, or Radio options $cart_link .= '_a'. $attribute .'o'. $option; } } } drupal_set_message(t('Cart link product action: @cart_link', array('@cart_link' => $cart_link))); } }