You are here

public function CvWebformDateMinValidator::getJavascriptSettings in Clientside Validation 7.2

Overrides ClientsideValidationValidator::getJavascriptSettings

1 call to CvWebformDateMinValidator::getJavascriptSettings()
CvWebformDateMinValidator::setDataAttributes in clientside_validation_webform/plugins/validator/webformdatemin.inc

File

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

Class

CvWebformDateMinValidator

Code

public function getJavascriptSettings(array &$element, array &$form_state) {
  $element_name = isset($element['#year_start']) ? $this
    ->getName($element) . '[year]' : 'webform-component-' . str_replace('_', '-', implode('--', array_slice($element['#parents'], 1)));
  $rule_name = isset($element['#year_start']) ? 'min' : 'datemin';
  $settings = array();
  if (isset($element['#year_start'])) {
    $settings = array(
      'rules' => array(
        $element_name => array(
          $rule_name => $element['#year_start'],
        ),
      ),
      '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['#start_date']);
      $settings['messages'][$name][$rule_name] = $this
        ->getMessage($element);
    }
  }
  return $settings;
}