You are here

public function CvWebformDateMaxValidator::setDataAttributes in Clientside Validation 7.2

Overrides ClientsideValidationValidator::setDataAttributes

File

clientside_validation_webform/plugins/validator/webformdatemax.inc, line 64

Class

CvWebformDateMaxValidator

Code

public function setDataAttributes(array &$element, array &$form_state) {
  $js_settings = $this
    ->getJavascriptSettings($element, $form_state);
  if (isset($element['#year_end'])) {
    $name = $this
      ->getName($element['year']);
    foreach ($js_settings['rules'][$name] as $rulename => $rulearg) {
      $element['year']['#attributes']['data-rule' . drupal_ucfirst(drupal_strtolower($rulename))] = is_object($rulearg) || is_array($rulearg) ? drupal_json_encode($rulearg) : $rulearg;
      $element['year']['#attributes']['data-msg' . drupal_ucfirst(drupal_strtolower($rulename))] = $js_settings['messages'][$name][$rulename];
    }
  }
  else {
    $name = 'webform-component-' . str_replace('_', '-', implode('--', array_slice($element['#parents'], 1)));
    foreach (array(
      'day',
      'month',
      'year',
    ) as $child) {
      $name = $this
        ->getName($element[$child]);
      foreach ($js_settings['rules'][$name] as $rulename => $rulearg) {
        $element[$child]['#attributes']['data-rule' . drupal_ucfirst(drupal_strtolower($rulename))] = is_object($rulearg) || is_array($rulearg) ? drupal_json_encode($rulearg) : $rulearg;
        $element[$child]['#attributes']['data-msg' . drupal_ucfirst(drupal_strtolower($rulename))] = $js_settings['messages'][$name][$rulename];
      }
    }
  }
}