HTML_QuickForm
[ class tree: HTML_QuickForm ] [ index: HTML_QuickForm ] [ all elements ]

Source for file Compare.php

Documentation is available at Compare.php

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  3.  
  4. /**
  5.  * Rule to compare two form fields
  6.  * 
  7.  * PHP versions 4 and 5
  8.  *
  9.  * LICENSE: This source file is subject to version 3.01 of the PHP license
  10.  * that is available through the world-wide-web at the following URI:
  11.  * http://www.php.net/license/3_01.txt If you did not receive a copy of
  12.  * the PHP License and are unable to obtain it through the web, please
  13.  * send a note to license@php.net so we can mail you a copy immediately.
  14.  *
  15.  * @category    HTML
  16.  * @package     HTML_QuickForm
  17.  * @author      Alexey Borzov <avb@php.net>
  18.  * @copyright   2001-2011 The PHP Group
  19.  * @license     http://www.php.net/license/3_01.txt PHP License 3.01
  20.  * @version     CVS: $Id: Compare.php 317587 2011-10-01 07:55:53Z avb $
  21.  * @link        http://pear.php.net/package/HTML_QuickForm
  22.  */
  23.  
  24. /**
  25.  * Abstract base class for QuickForm validation rules
  26.  */
  27. require_once 'HTML/QuickForm/Rule.php';
  28.  
  29. /**
  30.  * Rule to compare two form fields
  31.  * 
  32.  * The most common usage for this is to ensure that the password
  33.  * confirmation field matches the password field
  34.  * 
  35.  * @category    HTML
  36.  * @package     HTML_QuickForm
  37.  * @author      Alexey Borzov <avb@php.net>
  38.  * @version     Release: 3.2.13
  39.  * @since       3.2
  40.  */
  41. {
  42.    /**
  43.     * Possible operators to use
  44.     * @var array 
  45.     * @access private
  46.     */
  47.     var $_operators = array(
  48.         'eq'  => '===',
  49.         'neq' => '!==',
  50.         'gt'  => '>',
  51.         'gte' => '>=',
  52.         'lt'  => '<',
  53.         'lte' => '<=',
  54.         '=='  => '===',
  55.         '!='  => '!=='
  56.     );
  57.  
  58.  
  59.    /**
  60.     * Returns the operator to use for comparing the values
  61.     * 
  62.     * @access private
  63.     * @param  string     operator name
  64.     * @return string     operator to use for validation
  65.     */
  66.     function _findOperator($name)
  67.     {
  68.         if (empty($name)) {
  69.             return '===';
  70.         elseif (isset($this->_operators[$name])) {
  71.             return $this->_operators[$name];
  72.         elseif (in_array($name$this->_operators)) {
  73.             return $name;
  74.         else {
  75.             return '===';
  76.         }
  77.     }
  78.  
  79.  
  80.     function validate($values$operator = null)
  81.     {
  82.         $operator $this->_findOperator($operator);
  83.         if ('===' != $operator && '!==' != $operator{
  84.             $compareFn create_function('$a, $b''return floatval($a) ' $operator ' floatval($b);');
  85.         else {
  86.             $compareFn create_function('$a, $b''return strval($a) ' $operator ' strval($b);');
  87.         }
  88.         
  89.         return $compareFn($values[0]$values[1]);
  90.     }
  91.  
  92.  
  93.     function getValidationScript($operator = null)
  94.     {
  95.         $operator $this->_findOperator($operator);
  96.         if ('===' != $operator && '!==' != $operator{
  97.             $check = "!(Number({jsVar}[0]) {$operator} Number({jsVar}[1]))";
  98.         else {
  99.             $check = "!(String({jsVar}[0]) {$operator} String({jsVar}[1]))";
  100.         }
  101.         return array(''"'' != {jsVar}[0] && {$check}");
  102.     }
  103. }
  104. ?>

Documentation generated on Sat, 01 Oct 2011 09:00:08 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.