AutorÃa | Ultima modificación | Ver Log |
<?php/* vim: set expandtab tabstop=4 shiftwidth=4: */// +----------------------------------------------------------------------+// | PHP version 4.0 |// +----------------------------------------------------------------------+// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |// +----------------------------------------------------------------------+// | This source file is subject to version 2.0 of the PHP license, |// | that is bundled with this package in the file LICENSE, and is |// | available at through the world-wide-web at |// | http://www.php.net/license/2_02.txt. |// | If you did not receive a copy of the PHP license and are unable to |// | obtain it through the world-wide-web, please send a note to |// | license@php.net so we can mail you a copy immediately. |// +----------------------------------------------------------------------+// | Authors: Adam Daniel <adaniel1@eesus.jnj.com> |// | Bertrand Mansion <bmansion@mamasam.com> |// +----------------------------------------------------------------------+//// $Id$require_once("HTML/QuickForm/input.php");/*** HTML class for a checkbox type field** @author Adam Daniel <adaniel1@eesus.jnj.com>* @author Bertrand Mansion <bmansion@mamasam.com>* @version 1.1* @since PHP4.04pl1* @access public*/class HTML_QuickForm_checkbox extends HTML_QuickForm_input{// {{{ properties/*** Checkbox display text* @var string* @since 1.1* @access private*/var $_text = '';// }}}// {{{ constructor/*** Class constructor** @param string $elementName (optional)Input field name attribute* @param string $elementLabel (optional)Input field value* @param string $text (optional)Checkbox display text* @param mixed $attributes (optional)Either a typical HTML attribute string* or an associative array* @since 1.0* @access public* @return void*/public function __construct($elementName=null, $elementLabel=null, $text='', $attributes=null) {parent::__construct($elementName, $elementLabel, $attributes);$this->_persistantFreeze = true;$this->_text = $text;$this->setType('checkbox');$this->updateAttributes(array('value'=>1));} //end constructor/*** Old syntax of class constructor. Deprecated in PHP7.** @deprecated since Moodle 3.1*/public function HTML_QuickForm_checkbox($elementName=null, $elementLabel=null, $text='', $attributes=null) {debugging('Use of class name as constructor is deprecated', DEBUG_DEVELOPER);self::__construct($elementName, $elementLabel, $text, $attributes);}// }}}// {{{ setChecked()/*** Sets whether a checkbox is checked** @param bool $checked Whether the field is checked or not* @since 1.0* @access public* @return void*/function setChecked($checked){if (!$checked) {$this->removeAttribute('checked');} else {$this->updateAttributes(array('checked'=>'checked'));}} //end func setChecked// }}}// {{{ getChecked()/*** Returns whether a checkbox is checked** @since 1.0* @access public* @return bool*/function getChecked(){return (bool)$this->getAttribute('checked');} //end func getChecked// }}}// {{{ toHtml()/*** Returns the checkbox element in HTML** @since 1.0* @access public* @return string*/function toHtml(){$this->_generateId(); // Seems to be necessary when this is used in a group.if (0 == strlen($this->_text)) {$label = '';} elseif ($this->_flagFrozen) {$label = $this->_text;} else {$label = '<label for="' . $this->getAttribute('id') . '">' . $this->_text . '</label>';}return HTML_QuickForm_input::toHtml() . $label;} //end func toHtml// }}}// {{{ getFrozenHtml()/*** Returns the value of field without HTML tags** @since 1.0* @access public* @return string*/function getFrozenHtml(){if ($this->getChecked()) {return '<tt>[x]</tt>' .$this->_getPersistantData();} else {return '<tt>[ ]</tt>';}} //end func getFrozenHtml// }}}// {{{ setText()/*** Sets the checkbox text** @param string $text* @since 1.1* @access public* @return void*/function setText($text){$this->_text = $text;} //end func setText// }}}// {{{ getText()/*** Returns the checkbox text** @since 1.1* @access public* @return string*/function getText(){return $this->_text;} //end func getText// }}}// {{{ setValue()/*** Sets the value of the form element** @param string $value Default value of the form element* @since 1.0* @access public* @return void*/function setValue($value){return $this->setChecked($value);} // end func setValue// }}}// {{{ getValue()/*** Returns the value of the form element** @since 1.0* @access public* @return bool*/function getValue(){return $this->getChecked();} // end func getValue// }}}// {{{ onQuickFormEvent()/*** Called by HTML_QuickForm whenever form event is made on this element** @param string $event Name of event* @param mixed $arg event arguments* @param object $caller calling object* @since 1.0* @access public* @return void*/function onQuickFormEvent($event, $arg, &$caller){switch ($event) {case 'updateValue':// constant values override both default and submitted ones// default values are overriden by submitted$value = $this->_findValue($caller->_constantValues);if (null === $value) {// if no boxes were checked, then there is no value in the array// yet we don't want to display default value in this caseif ($caller->isSubmitted()) {$value = $this->_findValue($caller->_submitValues);} else {$value = $this->_findValue($caller->_defaultValues);}}if (null !== $value) {$this->setChecked($value);}break;case 'setGroupValue':$this->setChecked($arg);break;default:parent::onQuickFormEvent($event, $arg, $caller);}return true;} // end func onQuickFormEvent// }}}// {{{ exportValue()/*** Return true if the checkbox is checked, null if it is not checked (getValue() returns false)*/function exportValue(&$submitValues, $assoc = false){$value = $this->_findValue($submitValues);if (null === $value) {$value = $this->getChecked()? true: null;}return $this->_prepareValue($value, $assoc);}// }}}} //end class HTML_QuickForm_checkbox?>