You are here

function _agreement_extract_values_to_type in Agreement 7.2

Extract form values into an agreement type.

Parameters

array $values: Form state values.

Return value

array An agreement type array.

1 call to _agreement_extract_values_to_type()
agreement_settings_form_submit in ./agreement.admin.inc
Agreement settings form submit callback.

File

./agreement.admin.inc, line 409
Agreement administration page callback.

Code

function _agreement_extract_values_to_type($values) {
  $keys = array(
    'settings',
    'name',
    'type',
    'path',
    'agreement',
  );
  $role_values = isset($values['settings']['role']) ? $values['settings']['role'] : array();
  $values['settings']['role'] = array();
  foreach ($role_values as $key => $value) {
    if ($value) {
      $values['settings']['role'][] = $key;
    }
  }
  $info = drupal_map_assoc($keys, function ($key) use ($values) {
    if (isset($values[$key])) {
      if ($key === 'agreement') {
        return $values[$key]['value'];
      }
      return $values[$key];
    }
    return NULL;
  });
  $info['settings']['format'] = $values['agreement']['format'];

  // Enforce data types on options values.
  $options_keys = array(
    'frequency',
    'visibility_settings',
  );
  foreach ($options_keys as $option) {
    $info['settings'][$option] = (int) $info['settings'][$option];
  }
  return $info;
}