You are here

function msnf_step_update_fields in Multistep Nodeform 7

Same name and namespace in other branches
  1. 6 includes/msnf.steps.inc \msnf_step_update_fields()

Update field mapping for steps.

1 call to msnf_step_update_fields()
msnf_save_step in includes/msnf.steps.inc
Saves a step for a content-type.

File

includes/msnf.steps.inc, line 197
Step crud functions.

Code

function msnf_step_update_fields($form_values) {
  if ($form_values['step']) {

    // Parent is a fieldgroup!
    if (strpos($form_values['step'], 'group_') > -1) {

      // If fieldgroup module is not enabled at this point, do nothing.
      if (module_exists('fieldgroup')) {

        // Prepare form values for fieldgroup update.
        $form_values['group'] = $form_values['step'];

        // Update field parenting.
        fieldgroup_update_fields($form_values);

        // Remove field from msnf_step_fields (if it exists there).
        db_query("DELETE FROM {msnf_step_fields} WHERE type_name = '%s' AND field_name = '%s'", $form_values['type_name'], $form_values['field_name']);
      }
    }
    else {

      // Get existing entry.
      $default = _msnf_field_get_step($form_values['type_name'], $form_values['field_name']);
      if ($default) {
        db_query("UPDATE {msnf_step_fields} SET step_name = '%s', weight = %d WHERE type_name = '%s' AND field_name = '%s'", $form_values['step'], $form_values['weight'], $form_values['type_name'], $form_values['field_name']);
      }
      else {
        db_query("INSERT INTO {msnf_step_fields} (type_name, step_name, field_name, weight) VALUES ('%s', '%s', '%s', %d)", $form_values['type_name'], $form_values['step'], $form_values['field_name'], $form_values['weight']);
      }
      if (module_exists('fieldgroup')) {

        // Remove field from fieldgroup table.
        db_query('DELETE FROM {' . fieldgroup_fields_tablename() . "} WHERE type_name = '%s' AND field_name = '%s'", $form_values['type_name'], $form_values['field_name']);
      }
    }
  }
  else {

    // Remove field from tables.
    if (module_exists('fieldgroup')) {
      db_query('DELETE FROM {' . fieldgroup_fields_tablename() . "} WHERE type_name = '%s' AND field_name = '%s'", $form_values['type_name'], $form_values['field_name']);
    }
    db_query("DELETE FROM {msnf_step_fields} WHERE type_name = '%s' AND field_name = '%s'", $form_values['type_name'], $form_values['field_name']);
  }
  cache_clear_all('msnf_step_data:', 'cache', TRUE);
}