ajout de la partie slam dans le dossier web
This commit is contained in:
		
							
								
								
									
										62
									
								
								ap23/web/doku/inc/Form/CheckableElement.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								ap23/web/doku/inc/Form/CheckableElement.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| <?php | ||||
| namespace dokuwiki\Form; | ||||
|  | ||||
| /** | ||||
|  * Class CheckableElement | ||||
|  * | ||||
|  * For Radio- and Checkboxes | ||||
|  * | ||||
|  * @package dokuwiki\Form | ||||
|  */ | ||||
| class CheckableElement extends InputElement { | ||||
|  | ||||
|     /** | ||||
|      * @param string $type The type of this element | ||||
|      * @param string $name The name of this form element | ||||
|      * @param string $label The label text for this element | ||||
|      */ | ||||
|     public function __construct($type, $name, $label) { | ||||
|         parent::__construct($type, $name, $label); | ||||
|         // default value is 1 | ||||
|         $this->attr('value', 1); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Handles the useInput flag and sets the checked attribute accordingly | ||||
|      */ | ||||
|     protected function prefillInput() { | ||||
|         global $INPUT; | ||||
|         list($name, $key) = $this->getInputName(); | ||||
|         $myvalue = $this->val(); | ||||
|  | ||||
|         if(!$INPUT->has($name)) return; | ||||
|  | ||||
|         if($key === null) { | ||||
|             // no key - single value | ||||
|             $value = $INPUT->str($name); | ||||
|             if($value == $myvalue) { | ||||
|                 $this->attr('checked', 'checked'); | ||||
|             } else { | ||||
|                 $this->rmattr('checked'); | ||||
|             } | ||||
|         } else { | ||||
|             // we have an array, there might be several values in it | ||||
|             $input = $INPUT->arr($name); | ||||
|             if(isset($input[$key])) { | ||||
|                 $this->rmattr('checked'); | ||||
|  | ||||
|                 // values seem to be in another sub array | ||||
|                 if(is_array($input[$key])) { | ||||
|                     $input = $input[$key]; | ||||
|                 } | ||||
|  | ||||
|                 foreach($input as $value) { | ||||
|                     if($value == $myvalue) { | ||||
|                         $this->attr('checked', 'checked'); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user