You are here

public function CvWebformDateMaxValidator::getJavascriptSettings in Clientside Validation 7.2

Overrides ClientsideValidationValidator::getJavascriptSettings

1 call to CvWebformDateMaxValidator::getJavascriptSettings()
CvWebformDateMaxValidator::setDataAttributes in clientside_validation_webform/plugins/validator/webformdatemax.inc

File

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

Class

CvWebformDateMaxValidator

Code

public function getJavascriptSettings(array &$element, array &$form_state) {
  $element_name = isset($element['#year_end']) ? $this
    ->getName($element) . '[year]' : 'webform-component-' . str_replace('_', '-', implode('--', array_slice($element['#parents'], 1)));
  $rule_name = isset($element['#year_end']) ? 'max' : 'datemax';
  $settings = array();
  if (isset($element['#year_end'])) {
    $settings = array(
      'rules' => array(
        $element_name => array(
          $rule_name => $element['#year_end'],
        ),
      ),
      'messages' => array(
        $element_name => array(
          $rule_name => $this
            ->getMessage($element),
        ),
      ),
    );
  }
  else {
    $settings['groups'][$element_name] = array(
      $this
        ->getName($element) . '[year]',
      $this
        ->getName($element) . '[month]',
      $this
        ->getName($element) . '[day]',
    );
    foreach ($settings['groups'][$element_name] as $name) {
      $settings['rules'][$name][$rule_name] = explode('-', $element['#end_date']);
      $settings['messages'][$name][$rule_name] = $this
        ->getMessage($element);
    }
  }
  return $settings;
}