You are here

statesrequired.inc in Clientside Validation 7.2

File

clientside_validation_states/plugins/validator/statesrequired.inc
View source
<?php

$plugin = array(
  'label' => t('States required'),
  'validator' => array(
    'class' => 'CvStatesRequiredValidator',
  ),
);
class CvStatesRequiredValidator extends ClientsideValidationValidator {
  public function supports(array $element, array &$form_state) {
    $supports = parent::supports($element, $form_state) && isset($element['#type']) && isset($element['#states']);
    if (!$supports) {
      return FALSE;
    }
    foreach ($element['#states'] as $state => $triggers) {
      while (strpos($state, '!') === 0) {
        $state = drupal_substr($state, 1);
      }
      if ($state == 'required' || $state == 'optional') {
        return TRUE;
      }
    }
    return FALSE;
  }
  public function getJavascriptSettings(array &$element, array &$form_state) {
    $name = $this
      ->getName($element);
    return array(
      'rules' => array(
        $name => array(
          'statesrequired' => TRUE,
        ),
      ),
    );
  }
  public function getMessage(array $element) {
  }
  public function jsFiles(array &$element) {
    $files = parent::jsFiles($element);
    $files[] = drupal_get_path('module', 'clientside_validation_states') . '/plugins/validator/js/states.cv.js';
    return $files;
  }

}

Classes