You are here

function stringoverrides_advanced_translate_edit_form_submit in String Overrides Advanced 7

Process string editing form submissions.

Saves all translations of one string submitted from a form.

File

./stringoverrides_advanced.admin.inc, line 314

Code

function stringoverrides_advanced_translate_edit_form_submit($form, &$form_state) {
  $lid = $form_state['values']['lid'];
  foreach ($form_state['values']['translations'] as $key => $value) {
    $translation = db_query("SELECT translation FROM {stringoverrides_advanced_target} WHERE lid = :lid AND language = :language", array(
      ':lid' => $lid,
      ':language' => $key,
    ))
      ->fetchField();
    if (!empty($value)) {

      // Only update or insert if we have a value to use.
      if (!empty($translation)) {
        db_update('stringoverrides_advanced_target')
          ->fields(array(
          'translation' => $value,
        ))
          ->condition('lid', $lid)
          ->condition('language', $key)
          ->execute();
      }
      else {
        db_insert('stringoverrides_advanced_target')
          ->fields(array(
          'lid' => $lid,
          'translation' => $value,
          'language' => $key,
        ))
          ->execute();
      }
    }
    elseif (!empty($translation)) {

      // Empty translation entered: remove existing entry from database.
      db_delete('stringoverrides_advanced_target')
        ->condition('lid', $lid)
        ->condition('language', $key)
        ->execute();
    }
  }
  drupal_set_message(t('The string has been saved.'));
  cache_clear_all('advancedStringOverrides:', 'cache', TRUE);
  $form_state['redirect'] = 'admin/config/regional/stringoverrides_advanced';
  return;
}