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

Source for file Callback.php

Documentation is available at Callback.php

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  3.  
  4. /**
  5.  * Validates values using callback functions or methods
  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      Bertrand Mansion <bmansion@mamasam.com>
  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: Callback.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.  * Validates values using callback functions or methods
  31.  *
  32.  * @category    HTML
  33.  * @package     HTML_QuickForm
  34.  * @author      Bertrand Mansion <bmansion@mamasam.com>
  35.  * @version     Release: 3.2.13
  36.  * @since       3.2
  37.  */
  38. {
  39.     /**
  40.      * Array of callbacks
  41.      *
  42.      * Array is in the format:
  43.      * $_data['rulename'] = array('functionname', 'classname');
  44.      * If the callback is not a method, then the class name is not set.
  45.      *
  46.      * @var     array 
  47.      * @access  private
  48.      */
  49.     var $_data = array();
  50.  
  51.    /**
  52.     * Whether to use BC mode for specific rules
  53.     * 
  54.     * Previous versions of QF passed element's name as a first parameter
  55.     * to validation functions, but not to validation methods. This behaviour
  56.     * is emulated if you are using 'function' as rule type when registering.
  57.     * 
  58.     * @var array 
  59.     * @access private
  60.     */
  61.     var $_BCMode = array();
  62.  
  63.     /**
  64.      * Validates a value using a callback
  65.      *
  66.      * @param     string    $value      Value to be checked
  67.      * @param     mixed     $options    Options for callback
  68.      * @access    public
  69.      * @return    boolean   true if value is valid
  70.      */
  71.     function validate($value$options = null)
  72.     {
  73.         if (isset($this->_data[$this->name])) {
  74.             $callback $this->_data[$this->name];
  75.             if (isset($callback[1])) {
  76.                 return call_user_func(array($callback[1]$callback[0])$value$options);
  77.             elseif ($this->_BCMode[$this->name]{
  78.                 return $callback[0](''$value$options);
  79.             else {
  80.                 return $callback[0]($value$options);
  81.             }
  82.         elseif (is_callable($options)) {
  83.             return call_user_func($options$value);
  84.         else {
  85.             return true;
  86.         }
  87.     // end func validate
  88.  
  89.     /**
  90.      * Adds new callbacks to the callbacks list
  91.      *
  92.      * @param     string    $name       Name of rule
  93.      * @param     string    $callback   Name of function or method
  94.      * @param     string    $class      Name of class containing the method
  95.      * @param     bool      $BCMode     Backwards compatibility mode
  96.      * @access    public
  97.      */
  98.     function addData($name$callback$class = null$BCMode = false)
  99.     {
  100.         if (!empty($class)) {
  101.             $this->_data[$name= array($callback$class);
  102.         else {
  103.             $this->_data[$name= array($callback);
  104.         }
  105.         $this->_BCMode[$name$BCMode;
  106.     // end func addData
  107.  
  108.  
  109.     function getValidationScript($options = null)
  110.     {
  111.         if (isset($this->_data[$this->name])) {
  112.             $callback $this->_data[$this->name][0];
  113.             $params   ($this->_BCMode[$this->name]"'', {jsVar}"'{jsVar}'.
  114.                         (isset($options)? ", '{$options}'": '');
  115.         else {
  116.             $callback is_array($options)$options[1]$options;
  117.             $params   '{jsVar}';
  118.         }
  119.         return array(''"{jsVar} != '' && !{$callback}({$params})");
  120.     // end func getValidationScript
  121.  
  122. // end class HTML_QuickForm_Rule_Callback
  123. ?>

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