[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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 // | Author: Alexey Borzov <avb@php.net> | 17 // +----------------------------------------------------------------------+ 18 // 19 // $Id$ 20 21 require_once 'HTML/QuickForm/Rule.php'; 22 23 /** 24 * Rule to compare two form fields 25 * 26 * The most common usage for this is to ensure that the password 27 * confirmation field matches the password field 28 * 29 * @access public 30 * @package HTML_QuickForm 31 * @version $Revision$ 32 */ 33 class HTML_QuickForm_Rule_Compare extends HTML_QuickForm_Rule 34 { 35 /** 36 * Possible operators to use 37 * @var array 38 * @access private 39 */ 40 var $_operators = array( 41 'eq' => '==', 42 'neq' => '!=', 43 'gt' => '>', 44 'gte' => '>=', 45 'lt' => '<', 46 'lte' => '<=' 47 ); 48 49 50 /** 51 * Returns the operator to use for comparing the values 52 * 53 * @access private 54 * @param string operator name 55 * @return string operator to use for validation 56 */ 57 function _findOperator($name) 58 { 59 if (empty($name)) { 60 return '=='; 61 } elseif (isset($this->_operators[$name])) { 62 return $this->_operators[$name]; 63 } elseif (in_array($name, $this->_operators)) { 64 return $name; 65 } else { 66 return '=='; 67 } 68 } 69 70 71 function validate($values, $operator = null) 72 { 73 $operator = $this->_findOperator($operator); 74 if ('==' != $operator && '!=' != $operator) { 75 $compareFn = create_function('$a, $b', 'return floatval($a) ' . $operator . ' floatval($b);'); 76 } else { 77 $compareFn = create_function('$a, $b', 'return $a ' . $operator . ' $b;'); 78 } 79 80 return $compareFn($values[0], $values[1]); 81 } 82 83 84 function getValidationScript($operator = null) 85 { 86 $operator = $this->_findOperator($operator); 87 if ('==' != $operator && '!=' != $operator) { 88 $check = "!(Number({jsVar}[0]) {$operator} Number({jsVar}[1]))"; 89 } else { 90 $check = "!({jsVar}[0] {$operator} {jsVar}[1])"; 91 } 92 return array('', "'' != {jsVar}[0] && {$check}"); 93 } 94 } 95 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |