function commerce_extra_quantity_form_alter in Commerce Extra 7
Implements hook_form_alter(). Adds additional theme wrappers for add to cart's quantity textfields.
File
- modules/
quantity/ commerce_extra_quantity.module, line 52 - Contains Commerce Quantity Plus-Minus module's functionality.
Code
function commerce_extra_quantity_form_alter(&$form, &$form_state, $form_id) {
// Load quantity cardinality setting
$quantity_cardinality = variable_get('commerce_extra_quantity_cardinality', 1);
// Add to cart form from field api
$str = 'commerce_cart_add_to_cart_form_';
if (drupal_substr($form_id, 0, drupal_strlen($str)) == $str) {
if (isset($form['quantity']) && $form['quantity']['#type'] == 'textfield') {
$form['#attached']['js'][] = drupal_get_path('module', 'commerce_extra_quantity') . '/commerce_extra_quantity.js';
$form['#attached']['css'][] = drupal_get_path('module', 'commerce_extra_quantity') . '/commerce_extra_quantity.css';
$form['quantity']['#theme_wrappers'] = array(
'quantity_plusminus_wrapper',
'form_element',
);
$form['quantity']['#amount'] = $quantity_cardinality;
$form['quantity']['#limit_down'] = 1;
$form['#validate'][] = 'commerce_extra_quantity_validate_cardinality';
}
}
// Quantity fields from views
$str = 'views_form_commerce_cart_form_';
if (drupal_substr($form_id, 0, drupal_strlen($str)) == $str) {
if (isset($form['edit_quantity'])) {
$form['#attached']['js'][] = drupal_get_path('module', 'commerce_extra_quantity') . '/commerce_extra_quantity.js';
$form['#attached']['css'][] = drupal_get_path('module', 'commerce_extra_quantity') . '/commerce_extra_quantity.css';
foreach ($form['edit_quantity'] as $key => $value) {
if (is_numeric($key) && drupal_substr($key, 0, 1) != '#' && is_array($value)) {
$form['edit_quantity'][$key]['#theme_wrappers'] = array(
'quantity_plusminus_wrapper',
'form_element',
);
$form['edit_quantity'][$key]['#limit_down'] = variable_get('commerce_extra_quantity_allow_zero_cart', FALSE) ? 0 : 1;
}
}
$form['#validate'][] = 'commerce_extra_quantity_validate_cardinality';
}
}
}