You are here

function _clientside_validation_field_validation_ajax in Clientside Validation 7

Validates a field using a field validation rule.

2 string references to '_clientside_validation_field_validation_ajax'
clientside_validation_field_validation_js_info in clientside_validation_field_validation/clientside_validation_field_validation.module
Implements hook_js_info().
clientside_validation_field_validation_menu in clientside_validation_field_validation/clientside_validation_field_validation.module
Implements hook_menu().

File

clientside_validation_field_validation/clientside_validation_field_validation.module, line 408
Add clientside validation support for Field Validation

Code

function _clientside_validation_field_validation_ajax() {
  $data = _clientside_validation_field_validation_ajax_get_value();
  if (isset($data['value']) && isset($data['rules']) && is_array($data['rules'])) {

    // Fetch the rules to use and ensure the names are save.
    $rule_names = array_map('check_plain', array_keys($data['rules']));

    // Use ctools export API to fetch the rules.
    ctools_include('export');
    ctools_include('plugins');
    $rules = ctools_export_load_object('field_validation_rule', 'names', $rule_names);
    $errors = array();
    $value = filter_xss($data['value']);
    foreach ($rules as $rule_name => $rule) {
      if (isset($data['rules'][$rule_name])) {
        $settings = $data['rules'][$rule_name];
        _clientside_validation_field_validation($rule, $errors, $value, $settings['entity_id'], $settings['revision_id'], $settings['language'], $settings['delta']);
      }
    }
    if (!empty($errors)) {
      drupal_json_output(implode("\n", $errors));
      return;
    }
  }
  drupal_json_output(TRUE);
}