You are here

webformvalidationunique.inc in Clientside Validation 7.2

File

clientside_validation_webform_validation/plugins/validator/webformvalidationunique.inc
View source
<?php

$plugin = array(
  'label' => t('Unique'),
  'validator' => array(
    'class' => 'CvWebformValidationUniqueValidator',
    'constructor argument' => array(
      'js_rule' => 'notEqualTo',
      'webform_rule' => 'unique',
    ),
  ),
);
class CvWebformValidationUniqueValidator extends CvWebformValidationValidator {
  public function getJavascriptSettings(array &$element, array &$form_state) {
    $rule = _clientside_validation_get_webform_validation_rules($element, $form_state['complete form'], $this->webform_rule);
    $settings = array();
    $rule['components'];
    ksort($rule['components']);
    $firstone = reset($rule['components']);
    $group = $firstone['element_name'] . '_group';
    $name = $this
      ->getName($element);
    foreach ($rule['components'] as $component) {
      if ($component['element_name'] != $name) {
        $settings['rules'][$name]['notEqualTo'][] = ':input[name="' . $component['element_name'] . '"]';
      }
      $settings['groups'][$group][] = $component['element_name'];
    }
    $settings['messages'][$name]['notEqualTo'] = $this
      ->getMessage($element);
    return $settings;
  }
  public function getMessage(array $element) {
    return t('The value of !title is not unique.', array(
      '!title' => $element['#title'],
    ));
  }
  public function jsFiles(array &$element) {
    $files = parent::jsFiles($element);
    $files[] = drupal_get_path('module', 'clientside_validation_webform_validation') . '/plugins/validator/js/notequalto.cv.js';
    return $files;
  }

}