You are here

function xbbcode_custom_tags_submit in Extensible BBCode 5

File

./xbbcode-settings.php, line 121

Code

function xbbcode_custom_tags_submit($id, $form) {
  if ($form['op'] == t('Delete')) {
    if ($form['name'] && db_query("DELETE FROM {xbbcode_custom_tags} WHERE name='%s'", $form['name'])) {
      $del[$name] = TRUE;
    }
    foreach ($form as $name => $value) {
      if (!$value || !preg_match('/^delete_(.*)$/', $name, $match)) {
        continue;
      }
      if (db_query("DELETE FROM {xbbcode_custom_tags} WHERE name='%s'", $match[1])) {
        $del[$match[1]] = TRUE;
      }
    }
    foreach ($del as $name => $value) {
      drupal_set_message(t('Tag [!name] has been deleted.', array(
        '!name' => $name,
      )), 'status');
    }
  }
  if ($form['name']) {
    foreach ($form['options'] as $name => $value) {
      if ($value) {
        $form['options'][$name] = 1;
      }
    }
    if ($form['oldname']) {
      $sql = "UPDATE {xbbcode_custom_tags} SET name = '%s', replacewith = '%s', " . "description = '%s', sample = '%s', dynamic = %d, selfclosing = %d, multiarg = %d " . "WHERE name = '%s'";
      $message = t('Tag [%name] has been updated.', array(
        '%name' => $form['name'],
      ));
    }
    else {
      $sql = "INSERT INTO {xbbcode_custom_tags} " . "(name, replacewith, description, sample, dynamic, selfclosing, multiarg) " . "VALUES ('%s', '%s', '%s', '%s', %d, %d, %d)";
      $message = t('Tag [%name] has been added.', array(
        '%name' => $form['name'],
      ));
    }
    $success = db_query($sql, $form['name'], $form['replacewith'], $form['description'], $form['sample'], $form['options']['dynamic'], $form['options']['selfclosing'], $form['options']['multiarg'], $form['oldname']);
    if ($success) {
      drupal_set_message($message, 'status');
    }
  }
  return 'admin/settings/xbbcode/tags';
}