function uc_object_options_form_submit in Ubercart 7.3
Same name and namespace in other branches
- 5 uc_attribute/uc_attribute.module \uc_object_options_form_submit()
- 6.2 uc_attribute/uc_attribute.admin.inc \uc_object_options_form_submit()
Form submission handler for uc_object_options_form().
See also
uc_object_options_form_validate()
File
- uc_attribute/
uc_attribute.admin.inc, line 1154 - Attribute administration menu items.
Code
function uc_object_options_form_submit($form, &$form_state) {
if ($form_state['values']['type'] == 'product') {
$attr_table = 'uc_product_attributes';
$opt_table = 'uc_product_options';
$id = 'nid';
}
elseif ($form_state['values']['type'] == 'class') {
$attr_table = 'uc_class_attributes';
$opt_table = 'uc_class_attribute_options';
$id = 'pcid';
}
foreach ($form_state['values']['attributes'] as $attribute) {
if (isset($attribute['default'])) {
db_update($attr_table)
->fields(array(
'default_option' => $attribute['default'],
))
->condition($id, $form_state['values']['id'])
->condition('aid', $attribute['aid'])
->execute();
}
if (isset($attribute['options'])) {
db_delete($opt_table)
->condition($id, $form_state['values']['id'])
->condition('oid', array_keys($attribute['options']), 'IN')
->execute();
foreach ($attribute['options'] as $oid => $option) {
if ($option['select']) {
$option[$id] = $form_state['values']['id'];
$option['oid'] = $oid;
drupal_write_record($opt_table, $option);
}
elseif ($form_state['values']['type'] == 'product') {
$aid = $attribute['aid'];
$match = 'i:' . $aid . ';s:' . strlen($oid) . ':"' . $oid . '";';
db_delete('uc_product_adjustments')
->condition('nid', $form_state['values']['id'])
->condition('combination', '%' . db_like($match) . '%', 'LIKE')
->execute();
}
}
}
}
drupal_set_message(t('The @type options have been saved.', array(
'@type' => $form_state['values']['type'] == 'product' ? t('product') : t('product class'),
)));
if ($form_state['values']['type'] == 'product') {
// Clear the page and block caches.
cache_clear_all();
}
}