. /** * Advanced checkbox type form element * * Contains HTML class for an advcheckbox type form element * * @package core_form * @copyright 2007 Jamie Pratt * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once('HTML/QuickForm/advcheckbox.php'); require_once('templatable_form_element.php'); /** * HTML class for an advcheckbox type element * * Overloaded {@link HTML_QuickForm_advcheckbox} with default behavior modified for Moodle. * This will return '0' if not checked and '1' if checked. * * @package core_form * @category form * @copyright 2007 Jamie Pratt * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class MoodleQuickForm_advcheckbox extends HTML_QuickForm_advcheckbox 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 will icon will be dispalyed. */ var $_helpbutton=''; /** @var string Group to which this checkbox belongs (for select all/select none button) */ var $_group; /** * 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 * @param mixed $values (optional) Values to pass if checked or not checked */ public function __construct($elementName=null, $elementLabel=null, $text=null, $attributes=null, $values=null) { if ($values === null){ $values = array(0, 1); } if (!empty($attributes['group'])) { $this->_group = 'checkboxgroup' . $attributes['group']; unset($attributes['group']); if (is_null($attributes)) { $attributes = array(); $attributes['class'] .= " $this->_group"; } elseif (is_array($attributes)) { if (isset($attributes['class'])) { $attributes['class'] .= " $this->_group"; } else { $attributes['class'] = $this->_group; } } elseif ($strpos = stripos($attributes, 'class="')) { $attributes = str_ireplace('class="', 'class="' . $this->_group . ' ', $attributes); } else { $attributes .= ' class="' . $this->_group . '"'; } } parent::__construct($elementName, $elementLabel, $text, $attributes, $values); $this->_type = 'advcheckbox'; } /** * Old syntax of class constructor. Deprecated in PHP7. * * @deprecated since Moodle 3.1 */ public function MoodleQuickForm_advcheckbox($elementName=null, $elementLabel=null, $text=null, $attributes=null, $values=null) { debugging('Use of class name as constructor is deprecated', DEBUG_DEVELOPER); self::__construct($elementName, $elementLabel, $text, $attributes, $values); } /** * get html for help button * * @return string html for help button */ function getHelpButton(){ return $this->_helpbutton; } /** * Returns HTML for advchecbox form element. * * @return string */ function toHtml() { return '' . parent::toHtml() . ''; } /** * 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 = '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['selectedvalue'] = $this->_values[1]; $context['deselectedvalue'] = $this->_values[0]; $context['frozenvalue'] = $this->getValue(); return $context; } }