55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\v\bs3\fo;
 | |
| 
 | |
| use nur\b\params\Tparametrable;
 | |
| use nur\v\v;
 | |
| 
 | |
| class ControlRadiobutton extends ControlVisual {
 | |
|   use Tparametrable;
 | |
| 
 | |
|   const PARAMETRABLE_PARAMS_SCHEMA = [
 | |
|     "text" => ["?content", null, "libellé du bouton radio"],
 | |
|     "checked" => ["?bool", null, "le bouton est-il sélectionné?"],
 | |
|     "naked_label" => ["?bool", null, "faut-il retourner le bouton avec le label en mode naked?"]
 | |
|   ];
 | |
| 
 | |
|   /** @var array|string */
 | |
|   protected $ppText;
 | |
| 
 | |
|   /** @var bool */
 | |
|   protected $ppChecked;
 | |
| 
 | |
|   /** @var bool */
 | |
|   protected $ppNakedLabel;
 | |
| 
 | |
|   function getControl(): array {
 | |
|     $name = $this->ppName;
 | |
|     $value = $this->ppValue;
 | |
|     $checked = $this->ppChecked;
 | |
|     $disabled = $this->ppDisabled;
 | |
|     $control = v::tag1("input", [
 | |
|       "type" => "radio",
 | |
|       "id" => $this->ppId,
 | |
|       "name" => $name,
 | |
|       "value" => $value,
 | |
|       "checked" => $checked? "checked": false,
 | |
|       "readonly" => $this->ppReadonly? "readonly": false,
 | |
|       "disabled" => $disabled ? "disabled": false,
 | |
|       "class" => $this->ppClass,
 | |
|       "style" => $this->ppStyle,
 | |
|       $this->ppAttrs,
 | |
|     ]);
 | |
|     if ($this->ppNaked && !$this->ppNakedLabel) return $control;
 | |
| 
 | |
|     $controlLabel = v::div([
 | |
|       "class" => ["radio", $disabled ? "disabled" : false],
 | |
|       v::tag("label", [
 | |
|         $control, " ", q($this->ppText),
 | |
|       ]),
 | |
|     ]);
 | |
|     if ($this->ppNaked) return $controlLabel;
 | |
| 
 | |
|     return $this->getFgsLayout($controlLabel);
 | |
|   }
 | |
| }
 |