function commerce_price_table_field_widget_form in Commerce Price Table 7
Implements hook_field_widget_form().
File
- ./
commerce_price_table.module, line 64
Code
function commerce_price_table_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
// Use the default currency if the setting is not present.
if (empty($instance['widget']['settings']['currency_code']) || $instance['widget']['settings']['currency_code'] == 'default') {
$default_currency_code = NULL;
}
else {
$default_currency_code = $instance['widget']['settings']['currency_code'];
}
// If a price has already been set for this instance prepare default values.
if (isset($items[$delta]['amount'])) {
$currency = commerce_currency_load($items[$delta]['currency_code']);
// Round the default value.
$default_amount = commerce_currency_amount_to_decimal($items[$delta]['amount'], $currency['code']);
// Run it through number_format() to add the decimal places in if necessary.
if (strpos($default_amount, '.') === FALSE || strpos($default_amount, '.') > strlen($default_amount) - $currency['decimals']) {
$default_amount = number_format($default_amount, $currency['decimals'], '.', '');
}
$default_currency_code = $items[$delta]['currency_code'];
}
else {
$default_amount = NULL;
}
// Load the default currency for this instance.
$default_currency = commerce_currency_load($default_currency_code);
$element['#attached']['css'][] = drupal_get_path('module', 'commerce_price_table') . '/theme/commerce_price_table.css';
if ($instance['widget']['type'] == 'commerce_price_table_multiple') {
$element['amount'] = array(
'#type' => 'textfield',
'#title' => t('Price'),
'#default_value' => $default_amount,
'#size' => 10,
'#field_suffix' => $default_currency['code'],
);
$element['currency_code'] = array(
'#type' => 'value',
'#default_value' => $default_currency['code'],
);
$element['min_qty'] = array(
'#type' => 'textfield',
'#title' => t('Minimum quantity'),
'#default_value' => isset($items[$delta]['min_qty']) ? $items[$delta]['min_qty'] : 0,
'#size' => 10,
);
$element['max_qty'] = array(
'#type' => 'textfield',
'#title' => t('Maximum quantity'),
'#description' => t('Use -1 for no upper limit.'),
'#default_value' => isset($items[$delta]['max_qty']) ? $items[$delta]['max_qty'] : 0,
'#size' => 10,
);
}
$element['data'] = array(
'#type' => 'value',
'#default_value' => !empty($items[$delta]['data']) ? $items[$delta]['data'] : array(
'components' => array(),
),
);
$element['#element_validate'][] = 'commerce_price_table_field_widget_validate';
return $element;
}