72 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Classes and functions for the template engine.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @author The phpLDAPadmin development team
							 | 
						||
| 
								 | 
							
								 * @package phpLDAPadmin
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Represents an attribute whose values are in a predefined list
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @package phpLDAPadmin
							 | 
						||
| 
								 | 
							
								 * @subpackage Templates
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class SelectionAttribute extends Attribute {
							 | 
						||
| 
								 | 
							
									protected $selection = array();
							 | 
						||
| 
								 | 
							
									protected $multiple;
							 | 
						||
| 
								 | 
							
									protected $default;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function __construct($name,$values,$server_id,$source=null) {
							 | 
						||
| 
								 | 
							
										# Call our parent constructor
							 | 
						||
| 
								 | 
							
										parent::__construct($name,$values,$server_id,$source);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										# Our values are set by parent(). If we do have values, and the source was XML, move them to our selection.
							 | 
						||
| 
								 | 
							
										if ($this->source == 'XML' && $this->values) {
							 | 
						||
| 
								 | 
							
											$this->selection = $this->values;
							 | 
						||
| 
								 | 
							
											$this->values = array();
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										if (isset($values['type']) && $values['type'] == 'multiselect')
							 | 
						||
| 
								 | 
							
											$this->multiple = true;
							 | 
						||
| 
								 | 
							
										else
							 | 
						||
| 
								 | 
							
											$this->multiple = false;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function addOption($value,$description) {
							 | 
						||
| 
								 | 
							
										$this->selection[$value] = $description;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function addValue($new_val,$i=-1) {
							 | 
						||
| 
								 | 
							
										if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
							 | 
						||
| 
								 | 
							
											debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										$this->addOption($new_val,$new_val);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function getOptionCount() {
							 | 
						||
| 
								 | 
							
										return count($this->selection);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function getSelection() {
							 | 
						||
| 
								 | 
							
										return $this->selection;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function autoValue($value) {
							 | 
						||
| 
								 | 
							
										$this->selection = $value;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function getDefault() {
							 | 
						||
| 
								 | 
							
										return $this->default;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function isMultiple() {
							 | 
						||
| 
								 | 
							
										return $this->multiple;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function setMultiple() {
							 | 
						||
| 
								 | 
							
										$this->multiple = true;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								?>
							 |