diff --git a/commerce_coupon.info b/commerce_coupon.info index 5d30231..4ea346a 100644 --- a/commerce_coupon.info +++ b/commerce_coupon.info @@ -19,3 +19,4 @@ files[] = includes/views/handlers/commerce_coupon_handler_field_coupon_granted_a files[] = includes/views/handlers/commerce_coupon_handler_field_coupon_operations.inc files[] = includes/views/handlers/commerce_coupon_handler_field_coupon_order_remove.inc files[] = includes/views/handlers/commerce_coupon_handler_field_times_used.inc +files[] = includes/views/handlers/commerce_coupon_handler_area_cart_form.inc diff --git a/includes/views/commerce_coupon.views.inc b/includes/views/commerce_coupon.views.inc index d8ba316..b97d9fa 100644 --- a/includes/views/commerce_coupon.views.inc +++ b/includes/views/commerce_coupon.views.inc @@ -41,4 +41,14 @@ function commerce_coupon_views_data_alter(&$data) { ), ); } + + // Expose the coupon form item on the 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', + ), + ); + } diff --git a/includes/views/handlers/commerce_coupon_handler_area_cart_form.inc b/includes/views/handlers/commerce_coupon_handler_area_cart_form.inc new file mode 100644 index 0000000..0486950 --- /dev/null +++ b/includes/views/handlers/commerce_coupon_handler_area_cart_form.inc @@ -0,0 +1,130 @@ + 'textfield', + '#title' => t('Form item weight'), + '#default_value' => $this->options['weight'], + '#required' => TRUE, + ); + } + + function options_validate($form, &$form_state) { + $weight = $form_state['values']['options']['weight']; + // Weight must be an integer: + if (!is_null($weight )&& (!is_numeric($weight)) || (int) $weight != $weight) { + form_set_error('options][weight', t('!name field must be an integer.', array('!name' => $form['weight']['#title']))); + } + } + + + function render($values) { + // Render a Views form item placeholder. + // This causes Views to wrap the View in a form. + // Render a Views form item placeholder. + return ''; + } + + /** + * This handler never outputs data when the view is empty. + */ + function views_form_empty($empty) { + return $empty; + } + + /** + * Views form + */ + function views_form(&$form, &$form_state) { + + $form[$this->options['id']] = array( + '#type' => 'container', + '#prefix' => '