You are here

private static function TypeSettingsStorage::sanitizeFields in Node Accessibility 8

Initializes and sanitizes the array of fields to assign.

All existing values are reset to defaults before assigning fields.

Parameters

array $fields: An array of all fields to assign.

return array An array of initialized and sanitized fields.

1 call to TypeSettingsStorage::sanitizeFields()
TypeSettingsStorage::merge in src/TypeSettingsStorage.php
Insert or Update an entry to the database.

File

src/TypeSettingsStorage.php, line 575

Class

TypeSettingsStorage
Class TypeSettingsStorage.

Namespace

Drupal\node_accessibility

Code

private static function sanitizeFields(array $fields) {
  $sanitized = [];
  $sanitized['node_type'] = NULL;
  $sanitized['enabled'] = static::DEFAULT_ENABLED;
  $sanitized['method'] = static::DEFAULT_METHOD;
  $sanitized['format_content'] = '';
  $sanitized['format_results'] = '';
  $sanitized['title_block'] = '';
  $sanitized['standards'] = json_encode([]);
  if (!empty($fields['node_type']) && is_string($fields['node_type'])) {
    $sanitized['node_type'] = $fields['node_type'];
  }
  if (!empty($fields['method']) && is_string($fields['method'])) {
    $methods = QuailApiSettings::get_validation_methods_list();
    if (array_key_exists($fields['method'], $methods)) {
      $sanitized['method'] = $fields['method'];
    }
  }
  if (!empty($fields['format_content']) && is_string($fields['format_content'])) {
    $sanitized['format_content'] = $fields['format_content'];
  }
  if (!empty($fields['format_results']) && is_string($fields['format_results'])) {
    $sanitized['format_results'] = $fields['format_results'];
  }
  if (!empty($fields['title_block']) && is_string($fields['title_block'])) {
    if (in_array($fields['title_block'], self::$title_block_options)) {
      $sanitized['title_block'] = $fields['title_block'];
    }
  }
  if (!empty($fields['enabled']) && is_string($fields['enabled'])) {
    if ($fields['enabled'] == 'disabled' || $fields['enabled'] == 'optional' || $fields['enabled'] == 'required') {
      $sanitized['enabled'] = $fields['enabled'];
    }
  }
  if (!empty($fields['standards']) && is_array($fields['standards'])) {
    $standards = QuailApiSettings::get_standards_list();
    $standards_array = array();
    foreach ($fields['standards'] as $standard_name => $standard_value) {
      if (is_numeric($standard_value)) {
        continue;
      }
      if (array_key_exists($standard_name, $standards)) {
        $standards_array[$standard_name] = $standard_name;
      }
    }
    $sanitized['standards'] = json_encode($standards_array);
  }
  return $sanitized;
}