You are here

webformmin.inc in Clientside Validation 7.2

File

clientside_validation_webform/plugins/validator/webformmin.inc
View source
<?php

$plugin = array(
  'label' => t('Min'),
  'validator' => array(
    'class' => 'CvWebformMinValidator',
  ),
);
class CvWebformMinValidator extends CvWebformValidator {
  public function supports(array $element, array &$form_state) {
    return parent::supports($element, $form_state) && isset($element['#webform_component']['extra']['min']);
  }
  public function getJavascriptSettings(array &$element, array &$form_state) {
    $name = $this
      ->getName($element);
    $settings = $element['#webform_component']['extra'];
    $rule = isset($settings['step']) && !empty($settings['step']) && $settings['step'] != 'any' ? 'webformMin' : 'min';
    return array(
      'rules' => array(
        $name => array(
          $rule => $rule == 'min' ? floatval($settings['min']) : array(
            floatval($settings['min']),
            floatval($settings['step']),
          ),
        ),
      ),
      'messages' => array(
        $name => array(
          $rule => $this
            ->getMessage($element),
        ),
      ),
    );
  }
  public function getMessage(array $element) {
    $settings = $element['#webform_component']['extra'];
    return isset($settings['step']) && !empty($settings['step']) && $settings['step'] != 'any' ? t('!title field has to be greater than @min and must be dividable by @step.', array(
      '!title' => $element['#title'],
      '@min' => $settings['min'],
      '@step' => $settings['step'],
    )) : t('!title field has to be greater than @min.', array(
      '!title' => $element['#title'],
      '@min' => $settings['min'],
    ));
  }
  public function jsFiles(array &$element) {
    $files = parent::jsFiles($element);
    $files[] = drupal_get_path('module', 'clientside_validation_webform') . '/plugins/validator/js/min_max.cv.js';
    return $files;
  }

}

Classes