Current Path : C:/Users/Mahmood/Desktop/moodle8/lib/form/ |
Current File : C:/Users/Mahmood/Desktop/moodle8/lib/form/checkbox.php |
<?php // This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * checkbox form element * * Contains HTML class for a checkbox type element * * @package core_form * @copyright 2007 Jamie Pratt <me@jamiep.org> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once('HTML/QuickForm/checkbox.php'); require_once('templatable_form_element.php'); /** * HTML class for a checkbox type element * * Overloaded {@link HTML_QuickForm_checkbox} to add help button. Also, fixes bug in quickforms * checkbox, which lets previous set value override submitted value if checkbox is not checked * and no value is submitted * * @package core_form * @category form * @copyright 2007 Jamie Pratt <me@jamiep.org> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class MoodleQuickForm_checkbox extends HTML_QuickForm_checkbox implements templatable { use templatable_form_element { export_for_template as export_for_template_base; } /** @var string html for help button, if empty then no help */ var $_helpbutton=''; /** * Constructor * * @param string $elementName (optional) name of the checkbox * @param string $elementLabel (optional) checkbox label * @param string $text (optional) Text to put after the checkbox * @param mixed $attributes (optional) Either a typical HTML attribute string * or an associative array */ public function __construct($elementName=null, $elementLabel=null, $text='', $attributes=null) { parent::__construct($elementName, $elementLabel, $text, $attributes); } /** * Old syntax of class constructor. Deprecated in PHP7. * * @deprecated since Moodle 3.1 */ public function MoodleQuickForm_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); } /** * get html for help button * * @return string html for help button */ function getHelpButton(){ return $this->_helpbutton; } /** * 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 * @return bool */ function onQuickFormEvent($event, $arg, &$caller) { //fixes bug in quickforms which lets previous set value override submitted value if checkbox is not checked // and no value is submitted 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 case if ($caller->isSubmitted()) { $value = $this->_findValue($caller->_submitValues); } else { $value = $this->_findValue($caller->_defaultValues); } } //fix here. setChecked should not be conditional $this->setChecked($value); break; default: parent::onQuickFormEvent($event, $arg, $caller); } return true; } /** * Returns HTML for checbox form element. * * @return string */ function toHtml() { return '<span>' . parent::toHtml() . '</span>'; } /** * Returns the disabled field. Accessibility: the return "[ ]" from parent * class is not acceptable for screenreader users, and we DO want a label. * * @return string */ function getFrozenHtml() { //$this->_generateId(); $output = '<input type="checkbox" disabled="disabled" id="'.$this->getAttribute('id').'" '; if ($this->getChecked()) { $output .= 'checked="checked" />'.$this->_getPersistantData(); } else { $output .= '/>'; } return $output; } public function export_for_template(renderer_base $output) { $context = $this->export_for_template_base($output); $context['frozenvalue'] = $this->getValue(); return $context; } }