| 1 | efrain | 1 | <?php
 | 
        
           |  |  | 2 | /* vim: set expandtab tabstop=4 shiftwidth=4: */
 | 
        
           |  |  | 3 | // +----------------------------------------------------------------------+
 | 
        
           |  |  | 4 | // | PHP version 4.0                                                      |
 | 
        
           |  |  | 5 | // +----------------------------------------------------------------------+
 | 
        
           |  |  | 6 | // | Copyright (c) 1997-2003 The PHP Group                                |
 | 
        
           |  |  | 7 | // +----------------------------------------------------------------------+
 | 
        
           |  |  | 8 | // | This source file is subject to version 2.0 of the PHP license,       |
 | 
        
           |  |  | 9 | // | that is bundled with this package in the file LICENSE, and is        |
 | 
        
           |  |  | 10 | // | available at through the world-wide-web at                           |
 | 
        
           |  |  | 11 | // | http://www.php.net/license/2_02.txt.                                 |
 | 
        
           |  |  | 12 | // | If you did not receive a copy of the PHP license and are unable to   |
 | 
        
           |  |  | 13 | // | obtain it through the world-wide-web, please send a note to          |
 | 
        
           |  |  | 14 | // | license@php.net so we can mail you a copy immediately.               |
 | 
        
           |  |  | 15 | // +----------------------------------------------------------------------+
 | 
        
           |  |  | 16 | // | Authors: Bertrand Mansion <bmansion@mamasam.com>                     |
 | 
        
           |  |  | 17 | // +----------------------------------------------------------------------+
 | 
        
           |  |  | 18 | //
 | 
        
           |  |  | 19 | // $Id$
 | 
        
           |  |  | 20 |   | 
        
           |  |  | 21 | require_once('HTML/QuickForm/Rule.php');
 | 
        
           |  |  | 22 |   | 
        
           |  |  | 23 | /**
 | 
        
           |  |  | 24 | * Validates values using range comparison
 | 
        
           |  |  | 25 | * @version     1.0
 | 
        
           |  |  | 26 | */
 | 
        
           |  |  | 27 | class HTML_QuickForm_Rule_Range extends HTML_QuickForm_Rule
 | 
        
           |  |  | 28 | {
 | 
        
           |  |  | 29 |     /**
 | 
        
           |  |  | 30 |      * Validates a value using a range comparison
 | 
        
           |  |  | 31 |      *
 | 
        
           |  |  | 32 |      * @param     string    $value      Value to be checked
 | 
        
           |  |  | 33 |      * @param     mixed     $options    Int for length, array for range
 | 
        
           |  |  | 34 |      * @access    public
 | 
        
           |  |  | 35 |      * @return    boolean   true if value is valid
 | 
        
           |  |  | 36 |      */
 | 
        
           |  |  | 37 |     function validate($value, $options = null)
 | 
        
           |  |  | 38 |     {
 | 
        
           |  |  | 39 |         $length = core_text::strlen($value);
 | 
        
           |  |  | 40 |         switch ($this->name) {
 | 
        
           |  |  | 41 |             case 'minlength': return ($length >= $options);
 | 
        
           |  |  | 42 |             case 'maxlength': return ($length <= $options);
 | 
        
           |  |  | 43 |             default:          return ($length >= $options[0] && $length <= $options[1]);
 | 
        
           |  |  | 44 |         }
 | 
        
           |  |  | 45 |     } // end func validate
 | 
        
           |  |  | 46 |   | 
        
           |  |  | 47 |   | 
        
           |  |  | 48 |     function getValidationScript($options = null)
 | 
        
           |  |  | 49 |     {
 | 
        
           |  |  | 50 |         switch ($this->name) {
 | 
        
           |  |  | 51 |             case 'minlength':
 | 
        
           |  |  | 52 |                 $test = '{jsVar}.length < '.$options;
 | 
        
           |  |  | 53 |                 break;
 | 
        
           |  |  | 54 |             case 'maxlength':
 | 
        
           |  |  | 55 |                 $test = '{jsVar}.length > '.$options;
 | 
        
           |  |  | 56 |                 break;
 | 
        
           |  |  | 57 |             default:
 | 
        
           |  |  | 58 |                 $test = '({jsVar}.length < '.$options[0].' || {jsVar}.length > '.$options[1].')';
 | 
        
           |  |  | 59 |         }
 | 
        
           |  |  | 60 |         return array('', "{jsVar} != '' && {$test}");
 | 
        
           |  |  | 61 |     } // end func getValidationScript
 | 
        
           |  |  | 62 |   | 
        
           |  |  | 63 | } // end class HTML_QuickForm_Rule_Range
 | 
        
           |  |  | 64 | ?>
 |