1 <?php 2 /* vim: set expandtab tabstop=4 shiftwidth=4: */ 3 // +----------------------------------------------------------------------+ 4 // | PHP version 4.0 | 5 // +----------------------------------------------------------------------+ 6 // | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group | 7 // +----------------------------------------------------------------------+ 8 // | This source file is subject to version 2.0 of the PHP license, | 9 // | that is bundled with this package in the file LICENSE, and is | 10 // | available at through the world-wide-web at | 11 // | http://www.php.net/license/2_02.txt. | 12 // | If you did not receive a copy of the PHP license and are unable to | 13 // | obtain it through the world-wide-web, please send a note to | 14 // | license@php.net so we can mail you a copy immediately. | 15 // +----------------------------------------------------------------------+ 16 // | Authors: Adam Daniel <adaniel1@eesus.jnj.com> | 17 // | Bertrand Mansion <bmansion@mamasam.com> | 18 // +----------------------------------------------------------------------+ 19 // 20 // $Id$ 21 22 require_once("HTML/QuickForm/element.php"); 23 24 /** 25 * Base class for input form elements 26 * 27 * @author Adam Daniel <adaniel1@eesus.jnj.com> 28 * @author Bertrand Mansion <bmansion@mamasam.com> 29 * @version 1.0 30 * @since PHP4.04pl1 31 * @access public 32 * @abstract 33 */ 34 class HTML_QuickForm_input extends HTML_QuickForm_element 35 { 36 // {{{ constructor 37 38 /** 39 * Class constructor 40 * 41 * @param string Input field name attribute 42 * @param mixed Label(s) for the input field 43 * @param mixed Either a typical HTML attribute string or an associative array 44 * @since 1.0 45 * @access public 46 * @return void 47 */ 48 public function __construct($elementName=null, $elementLabel=null, $attributes=null) { 49 parent::__construct($elementName, $elementLabel, $attributes); 50 } //end constructor 51 52 /** 53 * Old syntax of class constructor. Deprecated in PHP7. 54 * 55 * @deprecated since Moodle 3.1 56 */ 57 public function HTML_QuickForm_input($elementName=null, $elementLabel=null, $attributes=null) { 58 debugging('Use of class name as constructor is deprecated', DEBUG_DEVELOPER); 59 self::__construct($elementName, $elementLabel, $attributes); 60 } 61 62 // }}} 63 // {{{ setType() 64 65 /** 66 * Sets the element type 67 * 68 * @param string $type Element type 69 * @since 1.0 70 * @access public 71 * @return void 72 */ 73 function setType($type) 74 { 75 $this->_type = $type; 76 $this->updateAttributes(array('type'=>$type)); 77 } // end func setType 78 79 // }}} 80 // {{{ setName() 81 82 /** 83 * Sets the input field name 84 * 85 * @param string $name Input field name attribute 86 * @since 1.0 87 * @access public 88 * @return void 89 */ 90 function setName($name) 91 { 92 $this->updateAttributes(array('name'=>$name)); 93 } //end func setName 94 95 // }}} 96 // {{{ getName() 97 98 /** 99 * Returns the element name 100 * 101 * @since 1.0 102 * @access public 103 * @return string 104 */ 105 function getName() 106 { 107 return $this->getAttribute('name'); 108 } //end func getName 109 110 // }}} 111 // {{{ setValue() 112 113 /** 114 * Sets the value of the form element 115 * 116 * @param string $value Default value of the form element 117 * @since 1.0 118 * @access public 119 * @return void 120 */ 121 function setValue($value) 122 { 123 $this->updateAttributes(array('value'=>$value)); 124 } // end func setValue 125 126 // }}} 127 // {{{ getValue() 128 129 /** 130 * Returns the value of the form element 131 * 132 * @since 1.0 133 * @access public 134 * @return string 135 */ 136 function getValue() 137 { 138 return $this->getAttribute('value'); 139 } // end func getValue 140 141 // }}} 142 // {{{ toHtml() 143 144 /** 145 * Returns the input field in HTML 146 * 147 * @since 1.0 148 * @access public 149 * @return string 150 */ 151 function toHtml() 152 { 153 if ($this->_flagFrozen) { 154 return $this->getFrozenHtml(); 155 } else { 156 return $this->_getTabs() . '<input' . $this->_getAttrString($this->_attributes) . ' />'; 157 } 158 } //end func toHtml 159 160 // }}} 161 // {{{ onQuickFormEvent() 162 163 /** 164 * Called by HTML_QuickForm whenever form event is made on this element 165 * 166 * @param string $event Name of event 167 * @param mixed $arg event arguments 168 * @param object $caller calling object 169 * @since 1.0 170 * @access public 171 * @return void 172 * @throws 173 */ 174 function onQuickFormEvent($event, $arg, &$caller) 175 { 176 // do not use submit values for button-type elements 177 $type = $this->getType(); 178 if (('updateValue' != $event) || 179 ('submit' != $type && 'reset' != $type && 'image' != $type && 'button' != $type)) { 180 parent::onQuickFormEvent($event, $arg, $caller); 181 } else { 182 $value = $this->_findValue($caller->_constantValues); 183 if (null === $value) { 184 $value = $this->_findValue($caller->_defaultValues); 185 } 186 if (null !== $value) { 187 $this->setValue($value); 188 } 189 } 190 return true; 191 } // end func onQuickFormEvent 192 193 // }}} 194 // {{{ exportValue() 195 196 /** 197 * We don't need values from button-type elements (except submit) and files 198 */ 199 function exportValue(&$submitValues, $assoc = false) 200 { 201 $type = $this->getType(); 202 if ('reset' == $type || 'image' == $type || 'button' == $type || 'file' == $type) { 203 return null; 204 } else { 205 return parent::exportValue($submitValues, $assoc); 206 } 207 } 208 209 // }}} 210 } // end class HTML_QuickForm_element 211 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body