You are here

public function CvCoreRequiredValidator::getJavascriptSettings in Clientside Validation 7.2

Overrides ClientsideValidationValidator::getJavascriptSettings

1 call to CvCoreRequiredValidator::getJavascriptSettings()
CvCoreRequiredValidator::setDataAttributes in plugins/validator/required.inc

File

plugins/validator/required.inc, line 20

Class

CvCoreRequiredValidator

Code

public function getJavascriptSettings(array &$element, array &$form_state) {
  $name = $this
    ->getName($element);
  if ($element['#type'] == 'checkboxes') {
    $settings = array();
    $options = $element['#options'];
    ksort($options);
    reset($options);
    $firstone = key($options);
    $class = drupal_clean_css_identifier($this
      ->getName($element[$firstone]) . '_group');
    $element['#attributes']['class'][] = $class;
    foreach (array_keys($element['#options']) as $child) {
      $settings['rules'][$this
        ->getName($element[$child])]['require_from_group'] = array(
        1,
        '.' . $class . ' input[type="checkbox"]',
      );
      $settings['messages'][$this
        ->getName($element[$child])]['require_from_group'] = $this
        ->getMessage($element);
      $settings['groups'][$class][] = $this
        ->getName($element[$child]);
    }
    return $settings;
  }
  if ($element['#type'] == 'select') {

    // Use blacklist to avoid the '_none' value used as empty value by Drupal.
    $settings['rules'][$name]['blacklist'] = array(
      '',
      '_none',
    );
    $settings['messages'][$name]['blacklist'] = $this
      ->getMessage($element);
    return $settings;
  }
  return array(
    'rules' => array(
      $name => array(
        'required' => TRUE,
      ),
    ),
    'messages' => array(
      $name => array(
        'required' => $this
          ->getMessage($element),
      ),
    ),
  );
}