You are here

function xbbcode_settings_handlers_submit in Extensible BBCode 6

Same name and namespace in other branches
  1. 5 xbbcode-settings.php \xbbcode_settings_handlers_submit()
1 string reference to 'xbbcode_settings_handlers_submit'
xbbcode_filter in ./xbbcode.module

File

./xbbcode.admin.inc, line 360

Code

function xbbcode_settings_handlers_submit($form, $form_state) {
  $tags = $form_state['values']['tags'];
  $format = $form_state['values']['format'];
  if ($form_state['values']['format'] && $form_state['values']['override'] == 'global') {
    db_query("DELETE FROM {xbbcode_handlers} WHERE format = %d AND format != -1", $format);
    drupal_set_message(t('The format-specific settings were reset.'), 'status');
    return;
  }
  db_query('DELETE FROM {xbbcode_handlers} WHERE format = %d', $format);
  $args = array();
  $vals = array();
  foreach ($tags as $name => $settings) {
    $args[] = "('%s', %d, '%s', %d, %d)";
    if (!$settings['handler']) {
      $settings['handler'] = current($form['tags'][$name]['handler']['#options']);
    }
    array_push($vals, $name, $format, $settings['handler'], $settings['enabled'], $settings['weight']);
  }
  db_query('INSERT INTO {xbbcode_handlers} (name, format, module, enabled, weight) VALUES ' . implode(', ', $args), $vals);
  cache_clear_all('xbbcode_tags_' . $format, 'cache');
  drupal_set_message(t('Tag settings were updated.'), 'status');
}