| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | 
							- <?php
 
- /**
 
- * Manage application and plugins configurations with key/value pair
 
- * 
 
- * **nb:** It's possible to specify namespace in order to distinct global configuration to plugin custom configuration
 
- * @author valentin carruesco
 
- * @category Core
 
- * @license copyright
 
- */
 
- class Configuration extends Entity{
 
- 	protected $id,$key,$value,$confTab;
 
- 	protected $fields = 
 
- 	array(
 
- 		'id'=>'key',
 
- 		'key'=>'longstring',
 
- 		'value'=>'longstring'
 
- 	);
 
- 	/**
 
- 	* Get all configurations from database OR session if it was yet loaded
 
- 	* This function is called at start of program and global var '$conf' is filled with response, so use global $conf instead of call this function.
 
- 	* #### Example
 
- 	* ```php
 
- 	* $confs = Configuration::getAll();
 
- 	* var_dump($confs);
 
- 	* ```
 
- 	* @return array Array of configurations
 
- 	*/
 
- 	public function getAll(){
 
- 		
 
- 		if(!isset($_SESSION['configuration'])){
 
- 	
 
- 		$configurationManager = new Configuration();
 
- 		$configs = $configurationManager->populate();
 
- 		$confTab = array();
 
- 		foreach($configs as $config){
 
- 			$this->confTab[$config->getKey()] = Functions::decrypt($config->getValue());
 
- 		}
 
- 		$_SESSION['configuration'] = serialize($this->confTab);
 
- 		
 
- 		}else{
 
- 			$this->confTab = unserialize($_SESSION['configuration']);
 
- 		}
 
- 		
 
- 	}
 
- 	/**
 
- 	* Get configuration value from it key
 
- 	* #### Example
 
- 	* ```php
 
- 	* global $conf; // global var, contain configurations
 
- 	* echo $conf->get('myConfigKey'); // print myConfigKey value
 
- 	* ```
 
- 	* @param string configuration key
 
- 	* @param string configuration namespace (default is 'conf')
 
- 	* @return string valeur de la configuration
 
- 	*/
 
- 	public function get($key){
 
- 		return (isset($this->confTab[$key])?$this->confTab[$key]:'');
 
- 	}
 
- 	/**
 
- 	* Update or insert configuration value in database with specified key
 
- 	* #### Example
 
- 	* ```php
 
- 	* global $conf; // global var, contain configurations
 
- 	* echo $conf->put('myNewConfigKey','hello!'); //create configuration myNewConfigKey with value 'hello!'
 
- 	* echo $conf->put('myNewConfigKey','hello 2!'); //update configuration myNewConfigKey with value 'hello2!'
 
- 	* ```
 
- 	* @param string configuration key
 
- 	* @param string configuration value
 
- 	* @param string configuration namespace (default is 'conf')
 
- 	*/
 
- 	public function put($key,$value){
 
- 		$secured_value = Functions::crypt($value);
 
- 		$configurationManager = new Configuration();
 
- 		if (isset($this->confTab[$key])){
 
- 			$configurationManager->change(array('value'=>$secured_value),array('key'=>$key));
 
- 		} else {
 
- 			$configurationManager->add($key,$secured_value);	
 
- 		}
 
- 		$this->confTab[$key] = $value;
 
- 		unset($_SESSION['configuration']);
 
- 	}
 
- 	/**
 
- 	* Remove configuration value in database with specified key
 
- 	* #### Example
 
- 	* ```php
 
- 	* global $conf; // global var, contain configurations
 
- 	* echo $conf->remove('myNewConfigKey'); //delete myNewConfigKey from 'conf' default namespace 
 
- 	* echo $conf->remove('myNewConfigKey','myCustomPluginConfig'); //delete myNewConfigKey from 'myCustomPluginConfig' namespace
 
- 	* ```
 
- 	* @param string configuration key
 
- 	* @param string configuration namespace (default is 'conf')
 
- 	*/
 
- 	public function add($key,$value){
 
- 		$config = new Configuration();
 
- 		$config->setKey($key);
 
- 		$config->setValue($value);
 
- 		$config->save();
 
- 		$this->confTab[$key] = $value;
 
- 		unset($_SESSION['configuration']);
 
- 	}
 
- 	
 
- 	
 
- 	function getId(){
 
- 		return $this->id;
 
- 	}
 
- 	function getKey(){
 
- 		return $this->key;
 
- 	}
 
- 	function setKey($key){
 
- 		$this->key = $key;
 
- 	}
 
- 	function getValue(){
 
- 		return $this->value;
 
- 	}
 
- 	function setValue($value){
 
- 		$this->value = $value;
 
- 	}
 
- }
 
- ?>
 
 
  |