function image_field_caption_form_submit_handler in Image Field Caption 7
A #submit callback for node forms with image fields.
1 string reference to 'image_field_caption_form_submit_handler'
- image_field_caption_form_alter in ./
image_field_caption.module - Implements hook_form_alter().
File
- ./
image_field_caption.module, line 188 - Provides a caption textarea for image fields.
Code
function image_field_caption_form_submit_handler($form, &$form_state) {
// For each image field, iterate over each delta in the form state values
// for the image field. We only care about deltas that have a file id. If
// we have a caption, save the results in the database, otherwise delete
// any old records.
$image_fields = image_field_caption_get_image_fields('node', $form['type']['#value']);
if ($image_fields) {
foreach ($image_fields as $field_name => $field) {
$delta = 0;
while (isset($form_state['values'][$field_name]['und'][$delta]['fid'])) {
$fid = $form_state['values'][$field_name]['und'][$delta]['fid'];
if ($fid != 0 && isset($form_state['values'][$field_name]['und'][$delta]['caption'])) {
$caption = $form_state['values'][$field_name]['und'][$delta]['caption'];
if ($caption != '') {
$result = db_select('image_field_caption', 'ifc')
->fields('ifc', array(
'fid',
))
->condition('fid', $fid)
->execute()
->fetch();
if (isset($result->fid)) {
$result = db_update('image_field_caption')
->fields(array(
'caption' => $caption,
))
->condition('fid', $fid)
->execute();
}
else {
$result = db_insert('image_field_caption')
->fields(array(
'fid' => $fid,
'caption' => $caption,
))
->execute();
}
}
else {
if ($form_state['values']['nid']) {
db_delete('image_field_caption')
->condition('fid', $fid)
->execute();
}
}
}
$delta++;
}
}
}
}