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

Source for file radio.php

Documentation is available at radio.php

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  3.  
  4. /**
  5.  * HTML class for a radio type element
  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.  * @copyright   2001-2011 The PHP Group
  20.  * @license     http://www.php.net/license/3_01.txt PHP License 3.01
  21.  * @version     CVS: $Id: radio.php 317587 2011-10-01 07:55:53Z avb $
  22.  * @link        http://pear.php.net/package/HTML_QuickForm
  23.  */
  24.  
  25. /**
  26.  * Base class for <input /> form elements
  27.  */
  28. require_once 'HTML/QuickForm/input.php';
  29.  
  30. /**
  31.  * HTML class for a radio type element
  32.  * 
  33.  * @category    HTML
  34.  * @package     HTML_QuickForm
  35.  * @author      Adam Daniel <adaniel1@eesus.jnj.com>
  36.  * @author      Bertrand Mansion <bmansion@mamasam.com>
  37.  * @version     Release: 3.2.13
  38.  * @since       1.0
  39.  */
  40. {
  41.     // {{{ properties
  42.  
  43.     /**
  44.      * Radio display text
  45.      * @var       string 
  46.      * @since     1.1
  47.      * @access    private
  48.      */
  49.     var $_text '';
  50.  
  51.     // }}}
  52.     // {{{ constructor
  53.  
  54.     /**
  55.      * Class constructor
  56.      * 
  57.      * @param     string    Input field name attribute
  58.      * @param     mixed     Label(s) for a field
  59.      * @param     string    Text to display near the radio
  60.      * @param     string    Input field value
  61.      * @param     mixed     Either a typical HTML attribute string or an associative array
  62.      * @since     1.0
  63.      * @access    public
  64.      * @return    void 
  65.      */
  66.     function HTML_QuickForm_radio($elementName=null$elementLabel=null$text=null$value=null$attributes=null)
  67.     {
  68.         $this->HTML_QuickForm_element($elementName$elementLabel$attributes);
  69.         if (isset($value)) {
  70.             $this->setValue($value);
  71.         }
  72.         $this->_persistantFreeze = true;
  73.         $this->setType('radio');
  74.         $this->_text $text;
  75.         $this->_generateId();
  76.     //end constructor
  77.     
  78.     // }}}
  79.     // {{{ setChecked()
  80.  
  81.     /**
  82.      * Sets whether radio button 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 radio button is checked
  103.      * 
  104.      * @since     1.0
  105.      * @access    public
  106.      * @return    string 
  107.      */
  108.     function getChecked()
  109.     {
  110.         return $this->getAttribute('checked');
  111.     //end func getChecked
  112.         
  113.     // }}}
  114.     // {{{ toHtml()
  115.  
  116.     /**
  117.      * Returns the radio 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 radio text
  160.      * 
  161.      * @param     string    $text  Text to display near the radio button
  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 radio 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.     // {{{ onQuickFormEvent()
  188.  
  189.     /**
  190.      * Called by HTML_QuickForm whenever form event is made on this element
  191.      *
  192.      * @param     string    $event  Name of event
  193.      * @param     mixed     $arg    event arguments
  194.      * @param     object    &$caller calling object
  195.      * @since     1.0
  196.      * @access    public
  197.      * @return    void 
  198.      */
  199.     function onQuickFormEvent($event$arg&$caller)
  200.     {
  201.         switch ($event{
  202.             case 'updateValue':
  203.                 // constant values override both default and submitted ones
  204.                 // default values are overriden by submitted
  205.                 $value $this->_findValue($caller->_constantValues);
  206.                 if (null === $value{
  207.                     $value $this->_findValue($caller->_submitValues);
  208.                     if (null === $value{
  209.                         $value $this->_findValue($caller->_defaultValues);
  210.                     }
  211.                 }
  212.                 if (!is_null($value&& $value == $this->getValue()) {
  213.                     $this->setChecked(true);
  214.                 else {
  215.                     $this->setChecked(false);
  216.                 }
  217.                 break;
  218.             case 'setGroupValue':
  219.                 if ($arg == $this->getValue()) {
  220.                     $this->setChecked(true);
  221.                 else {
  222.                     $this->setChecked(false);
  223.                 }
  224.                 break;
  225.             default:
  226.                 parent::onQuickFormEvent($event$arg$caller);
  227.         }
  228.         return true;
  229.     // end func onQuickFormLoad
  230.  
  231.     // }}}
  232.     // {{{ exportValue()
  233.  
  234.    /**
  235.     * Returns the value attribute if the radio is checked, null if it is not
  236.     */
  237.     function exportValue(&$submitValues$assoc = false)
  238.     {
  239.         $value $this->_findValue($submitValues);
  240.         if (null === $value{
  241.             $value $this->getChecked()$this->getValue(): null;
  242.         elseif ($value != $this->getValue()) {
  243.             $value = null;
  244.         }
  245.         return $this->_prepareValue($value$assoc);
  246.     }
  247.     
  248.     // }}}
  249. //end class HTML_QuickForm_radio
  250. ?>

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