mirror of
				https://github.com/devcode-it/openstamanager.git
				synced 2025-06-05 22:09:38 +02:00 
			
		
		
		
	Migrazione da SourceForge, partendo dal commit 1662 della carrtella trunk/openstamanager.
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace HTMLBuilder\Handler;
 | |
| 
 | |
| // Utilizzo della funzione prepareToField (PHP 5.6+)
 | |
| // use function \HTMLBuilder\prepareToField;
 | |
| 
 | |
| /**
 | |
|  * @since 2.3
 | |
|  */
 | |
| class ChoicesHandler implements HandlerInterface
 | |
| {
 | |
|     public function handle(&$values, &$extras)
 | |
|     {
 | |
|         $result = $this->{$values['type']}($values, $extras);
 | |
| 
 | |
|         return $result;
 | |
|     }
 | |
| 
 | |
|     protected function checkbox(&$values, &$extras)
 | |
|     {
 | |
|         unset($values['class'][0]);
 | |
| 
 | |
|         $values['value'] = (empty($values['value']) || $values['value'] == 'off') ? false : true;
 | |
| 
 | |
|         if (!empty($values['value']) && !in_array('checked', $extras)) {
 | |
|             $extras[] = 'checked';
 | |
|         }
 | |
| 
 | |
|         if (in_array('readonly', $extras)) {
 | |
|             $extras[] = 'disabled';
 | |
|         }
 | |
| 
 | |
|         $values['placeholder'] = (isset($values['placeholder'])) ? $values['placeholder'] : $values['label'];
 | |
| 
 | |
|         $result .= '
 | |
|     <div class="input-group">
 | |
|         <span class="input-group-addon">
 | |
|             <input |attr| onchange="$(this).parent().find(\'[type=hidden]\').val( + this.checked)">
 | |
|             <input type="hidden" name="|name|" value="|value|">
 | |
|         </span>
 | |
|         <input type="text" class="form-control" placeholder="|placeholder|" disabled>
 | |
|     </div>';
 | |
| 
 | |
|         return $result;
 | |
|     }
 | |
| 
 | |
|     protected function bootswitch(&$values, &$extras)
 | |
|     {
 | |
|         unset($values['class'][0]);
 | |
| 
 | |
|         $values['class'][] = 'bootstrap-switch';
 | |
| 
 | |
|         $values['value'] = (empty($values['value']) || $values['value'] == 'off') ? false : true;
 | |
| 
 | |
|         if (!empty($values['value']) && !in_array('checked', $extras)) {
 | |
|             $extras[] = 'checked';
 | |
|         }
 | |
| 
 | |
|         return '
 | |
|     <div class="input-group">
 | |
|         <input type="checkbox" |attr|>
 | |
|         <input type="hidden" name="checkbox['.\HTMLBuilder\prepareToField($values['name']).']" value="'.\HTMLBuilder\prepareToField($values['value']).'">
 | |
|     </div>';
 | |
|     }
 | |
| 
 | |
|     protected function radio(&$values, &$extras)
 | |
|     {
 | |
|         $result = '';
 | |
| 
 | |
|         $originalExtras = $extras;
 | |
| 
 | |
|         $radios = json_decode('{'.$values['values'].'}', true);
 | |
| 
 | |
|         $values['value'] = !array_key_exists($values['value'], $radios) ? array_keys($radios)[0] : $values['value'];
 | |
| 
 | |
|         foreach ($radios as $key => $value) {
 | |
|             $checked = false;
 | |
|             if ($key === $values['value']) {
 | |
|                 $checked = true;
 | |
|             }
 | |
| 
 | |
|             $result .= '
 | |
|         <input type="radio" class="bootstrap-switch" name="'.\HTMLBuilder\prepareToField($values['name']).'" id="'.\HTMLBuilder\prepareToField($values['id'].'_'.$key).'" value="'.\HTMLBuilder\prepareToField($key).'" data-label-text="'.\HTMLBuilder\prepareToField($value).'"'.($checked ? ' checked' : '').'>';
 | |
|         }
 | |
| 
 | |
|         return $result;
 | |
|     }
 | |
| }
 |