You are here

function scald_admin_type_form_submit in Scald: Media Management made easy 7

Submit function for admin settings for Scald Types.

Updated values are written directly back to the database and then the Scald Configuration Object is rebuilt from the db.

File

includes/scald.admin.inc, line 196

Code

function scald_admin_type_form_submit($form, &$form_state) {
  $scald_atom_defaults = variable_get('scald_atom_defaults', array());
  $type = $form_state['values']['atom_type'];
  if (empty($scald_atom_defaults[$type])) {
    $scald_atom_defaults[$type] = new stdClass();
  }
  foreach ($form_state['values'] as $key => $value) {
    if (drupal_substr($key, 0, 5) == 'type_') {
      $setting = substr($key, strlen(_scald_parse_machine_name($key)) + 1);
      switch ($setting) {
        case 'title':
          db_update('scald_types')
            ->fields(array(
            'title' => $value,
          ))
            ->condition('type', $type)
            ->execute();
          break;
        case 'thumb':
          $scald_atom_defaults[$type]->thumbnail_source = $value;
          break;
        case 'descr':
          $scald_atom_defaults[$type]->description = $value;
          break;
        case 'utype':
          $scald_atom_defaults[$type]->upload_type = $value;
          break;
        case 'actin':
          $actions = scald_actions();
          $bitmask = 0;
          foreach ($actions as $name => $action) {
            if (!empty($value[$name])) {
              $bitmask |= $action['bitmask'];
            }
          }
          $scald_atom_defaults[$type]->actions = $bitmask;
          break;
      }
    }
  }
  drupal_set_message(t('Atom settings changed'));
  variable_set('scald_atom_defaults', $scald_atom_defaults);
  scald_types(TRUE);
}