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

Source for file checkbox.php

Documentation is available at checkbox.php

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  3.  
  4. /**
  5.  * HTML class for a checkbox type field
  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      Adam Daniel <adaniel1@eesus.jnj.com>
  18.  * @author      Bertrand Mansion <bmansion@mamasam.com>
  19.  * @author      Alexey Borzov <avb@php.net>
  20.  * @copyright   2001-2011 The PHP Group
  21.  * @license     http://www.php.net/license/3_01.txt PHP License 3.01
  22.  * @version     CVS: $Id: checkbox.php 317587 2011-10-01 07:55:53Z avb $
  23.  * @link        http://pear.php.net/package/HTML_QuickForm
  24.  */
  25.  
  26. /**
  27.  * Base class for <input /> form elements
  28.  */
  29. require_once 'HTML/QuickForm/input.php';
  30.  
  31. /**
  32.  * HTML class for a checkbox type field
  33.  * 
  34.  * @category    HTML
  35.  * @package     HTML_QuickForm
  36.  * @author      Adam Daniel <adaniel1@eesus.jnj.com>
  37.  * @author      Bertrand Mansion <bmansion@mamasam.com>
  38.  * @author      Alexey Borzov <avb@php.net>
  39.  * @version     Release: 3.2.13
  40.  * @since       1.0
  41.  */
  42. {
  43.     // {{{ properties
  44.  
  45.     /**
  46.      * Checkbox display text
  47.      * @var       string 
  48.      * @since     1.1
  49.      * @access    private
  50.      */
  51.     var $_text '';
  52.  
  53.     // }}}
  54.     // {{{ constructor
  55.  
  56.     /**
  57.      * Class constructor
  58.      * 
  59.      * @param     string    $elementName    (optional)Input field name attribute
  60.      * @param     string    $elementLabel   (optional)Input field value
  61.      * @param     string    $text           (optional)Checkbox display text
  62.      * @param     mixed     $attributes     (optional)Either a typical HTML attribute string
  63.      *                                       or an associative array
  64.      * @since     1.0
  65.      * @access    public
  66.      * @return    void 
  67.      */
  68.     function HTML_QuickForm_checkbox($elementName=null$elementLabel=null$text=''$attributes=null)
  69.     {
  70.         HTML_QuickForm_input::HTML_QuickForm_input($elementName$elementLabel$attributes);
  71.         $this->_persistantFreeze = true;
  72.         $this->_text $text;
  73.         $this->setType('checkbox');
  74.         $this->updateAttributes(array('value'=>1));
  75.         $this->_generateId();
  76.     //end constructor
  77.     
  78.     // }}}
  79.     // {{{ setChecked()
  80.  
  81.     /**
  82.      * Sets whether a checkbox is checked
  83.      * 
  84.      * @param     bool    $checked  Whether the field is checked or not
  85.      * @since     1.0
  86.      * @access    public
  87.      * @return    void 
  88.      */
  89.     function setChecked($checked)
  90.     {
  91.         if (!$checked{
  92.             $this->removeAttribute('checked');
  93.         else {
  94.             $this->updateAttributes(array('checked'=>'checked'));
  95.         }
  96.     //end func setChecked
  97.  
  98.     // }}}
  99.     // {{{ getChecked()
  100.  
  101.     /**
  102.      * Returns whether a checkbox is checked
  103.      * 
  104.      * @since     1.0
  105.      * @access    public
  106.      * @return    bool 
  107.      */
  108.     function getChecked()
  109.     {
  110.         return (bool)$this->getAttribute('checked');
  111.     //end func getChecked
  112.     
  113.     // }}}
  114.     // {{{ toHtml()
  115.  
  116.     /**
  117.      * Returns the checkbox element in HTML
  118.      * 
  119.      * @since     1.0
  120.      * @access    public
  121.      * @return    string 
  122.      */
  123.     function toHtml()
  124.     {
  125.         if (0 == strlen($this->_text)) {
  126.             $label '';
  127.         elseif ($this->_flagFrozen{
  128.             $label $this->_text;
  129.         else {
  130.             $label '<label for="' $this->getAttribute('id''">' $this->_text '</label>';
  131.         }
  132.         return HTML_QuickForm_input::toHtml($label;
  133.     //end func toHtml
  134.     
  135.     // }}}
  136.     // {{{ getFrozenHtml()
  137.  
  138.     /**
  139.      * Returns the value of field without HTML tags
  140.      * 
  141.      * @since     1.0
  142.      * @access    public
  143.      * @return    string 
  144.      */
  145.     function getFrozenHtml()
  146.     {
  147.         if ($this->getChecked()) {
  148.             return '<tt>[x]</tt>' .
  149.                    $this->_getPersistantData();
  150.         else {
  151.             return '<tt>[ ]</tt>';
  152.         }
  153.     //end func getFrozenHtml
  154.  
  155.     // }}}
  156.     // {{{ setText()
  157.  
  158.     /**
  159.      * Sets the checkbox text
  160.      * 
  161.      * @param     string    $text 
  162.      * @since     1.1
  163.      * @access    public
  164.      * @return    void 
  165.      */
  166.     function setText($text)
  167.     {
  168.         $this->_text $text;
  169.     //end func setText
  170.  
  171.     // }}}
  172.     // {{{ getText()
  173.  
  174.     /**
  175.      * Returns the checkbox text
  176.      * 
  177.      * @since     1.1
  178.      * @access    public
  179.      * @return    string 
  180.      */
  181.     function getText()
  182.     {
  183.         return $this->_text;
  184.     //end func getText
  185.  
  186.     // }}}
  187.     // {{{ setValue()
  188.  
  189.     /**
  190.      * Sets the value of the form element
  191.      *
  192.      * @param     string    $value      Default value of the form element
  193.      * @since     1.0
  194.      * @access    public
  195.      * @return    void 
  196.      */
  197.     function setValue($value)
  198.     {
  199.         return $this->setChecked($value);
  200.     // end func setValue
  201.  
  202.     // }}}
  203.     // {{{ getValue()
  204.  
  205.     /**
  206.      * Returns the value of the form element
  207.      *
  208.      * @since     1.0
  209.      * @access    public
  210.      * @return    bool 
  211.      */
  212.     function getValue()
  213.     {
  214.         return $this->getChecked();
  215.     // end func getValue
  216.  
  217.     // }}}
  218.     // {{{ onQuickFormEvent()
  219.  
  220.     /**
  221.      * Called by HTML_QuickForm whenever form event is made on this element
  222.      *
  223.      * @param     string    $event  Name of event
  224.      * @param     mixed     $arg    event arguments
  225.      * @param     object    &$caller calling object
  226.      * @since     1.0
  227.      * @access    public
  228.      * @return    void 
  229.      */
  230.     function onQuickFormEvent($event$arg&$caller)
  231.     {
  232.         switch ($event{
  233.             case 'updateValue':
  234.                 // constant values override both default and submitted ones
  235.                 // default values are overriden by submitted
  236.                 $value $this->_findValue($caller->_constantValues);
  237.                 if (null === $value{
  238.                     // if no boxes were checked, then there is no value in the array
  239.                     // yet we don't want to display default value in this case
  240.                     if ($caller->isSubmitted()) {
  241.                         $value $this->_findValue($caller->_submitValues);
  242.                     else {
  243.                         $value $this->_findValue($caller->_defaultValues);
  244.                     }
  245.                 }
  246.                 if (null !== $value || $caller->isSubmitted()) {
  247.                     $this->setChecked($value);
  248.                 }
  249.                 break;
  250.             case 'setGroupValue':
  251.                 $this->setChecked($arg);
  252.                 break;
  253.             default:
  254.                 parent::onQuickFormEvent($event$arg$caller);
  255.         }
  256.         return true;
  257.     // end func onQuickFormEvent
  258.  
  259.     // }}}
  260.     // {{{ exportValue()
  261.  
  262.    /**
  263.     * Return true if the checkbox is checked, null if it is not checked (getValue() returns false)
  264.     */
  265.     function exportValue(&$submitValues$assoc = false)
  266.     {
  267.         $value $this->_findValue($submitValues);
  268.         if (null === $value{
  269.             $value $this->getChecked()? true: null;
  270.         }
  271.         return $this->_prepareValue($value$assoc);
  272.     }
  273.     
  274.     // }}}
  275. //end class HTML_QuickForm_checkbox
  276. ?>

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