Location: PHPKode > projects > Content*Builder > contentbuilder/lib/CB_option.class.php
<?php

/**
* Options
* 
* Mit dieser Klasse können Optionen aus der Datenbank abgefragt werden
*
* @package               CB Media Management 
* @access                public
* @author                Jörg Stöber <hide@address.com>
* @author                Sascha Dückers <hide@address.com> 
* @version               0.1 ($Id: CB_option.class.php,v 1.2 2004/07/21 13:21:31 cb_fog Exp $)
*/
class CBOption {
	var $option = array();
	var $module = "";
	var $parameter;
	
	function CBOption($restrictParam = false) {
		if($restrictParam) {
			$this->parameter = $restrictParam;
		}
	}
	/**
	* Limitierung der Optionen auf ein Modul. Es werden nur die Datensätze geliefert,
	* die diesem Modul zugeordnet sind
	*
	* @access       public	
	* @param        string $module Modul
	*/
	function setModule($module) {
		$this->module = $module;
	}
	
	/**
	* Optionen aus Datenbank abholen. Limitierung der Results auf die des gesetzten Moduls 
	* @access		public
	*/
	function getOptionList() {
		/* 
		* Limitierung auf das gesetzte Modul
		*/
		$limitByModule = "";
		if($this->module != "") {
			$limitByModule = "module = '$this->module'";			
		}
		
		/*
		* Mit $restrictParam kann man die Datensätze auf einen bestimmten 
		* gespeicherten Parameter einschränken. Reduziert die Abfragen
		*/
		$limitByParam = "";
		if(isset($this->parameter)) {
			$limitByParam = "parameter = '".$this->parameter."'";
		}
		
		/*
		* Zusammenbau des Where Statements für die SQL Optionen Abfrage
		*/
		if($limitByParam || $limitByModule) {
			$limitWhere = "WHERE ";
			$_tempSet = false;
			if($limitByModule) {
				$limitWhere .= $limitByModule;
				$_tempSet = true;
			}
			if($limitByParam) {
				if($_tempSet) {
					$limitWhere .= " AND ";
				}
				$limitWhere .= $limitByParam;
			}
		}
		
		/*
		* Abfrage der Daten
		*/
		$this->option = array();
		$optionQuery = mysql_query("SELECT * FROM ".TABLE."_options $limitWhere");
		while($optionRow = mysql_fetch_object($optionQuery)) {
			/*
			* wenn $restrictParam angegeben wurde, ist es, als ob kein 
			* Parameter gesetzt wurde
			*/
			if($this->parameter) {
				$optionRow->parameter = $this->parameter;
			}
			
			if($optionRow->parameter == "") {
				$this->option[$optionRow->name]['empty'] = $optionRow->value;
			} else {
				$this->option[$optionRow->name][$optionRow->parameter] = $optionRow->value;
			}
		}
	}

	/**
	* Abholen einer bestimmten Option
	*
	* @access       public	
	* @param        string $key Schlüsselname der Option
	* @return       string $value
	*/
	function getSingleOption($key, $parameter = "") {
		if(isset($this->parameter)) {
			$parameter = $this->parameter;
		}
		
		$returnValue = false;
		if($parameter != "") {
			if(isset($this->option[$key][$parameter])) {
				$returnValue = $this->option[$key][$parameter];
			}
		} else {
			if(isset($this->option[$key]['empty'])) {
				$returnValue = $this->option[$key]['empty'];
			}
		}
		return $returnValue;
	}

	/**
	* Abholen einer bestimmten Option
	*
	* @access       public	
	* @param        string $key Schlüsselname der Option
	* @return       array $value
	*/
	function getMultipleOption($key) {
		if( is_array($this->option[$key] )) {
			foreach($this->option[$key] as $k => $v) {
				$returnValue[$k] = $v;
			}
		}
		if(!is_array($returnValue)) {
			$returnValue = 0;
		}
		return $returnValue;
	}

	/**
	* Aktualisieren einer bestimmten Option in die Datenbank. 
	* Es wird das aktuell gesetzte Modul genommen
	*
	* @access       public	
	* @param        string $name Schlüsselname der Option
	* @param        string $value Wert der Option
	*/
	function updateOption($name, $value, $parameter = "") {
		$module = $this->module;
		if($this->checkOption($name, $parameter) == false) {
			$result = $this->insertOption($name, $value, $parameter);
		} else {
			if($parameter != "") {
				$result = mysql_query("UPDATE ".TABLE."_options SET value = '$value' WHERE name = '$name' AND module = '$module' AND parameter = '$parameter'");
			} else {
				$result = mysql_query("UPDATE ".TABLE."_options SET value = '$value' WHERE name = '$name' AND module = '$module'");
			}
		}
		return $result;
	}
	
	/**
	* Screiben einer bestimmten Option in die Datenbank. 
	* Es wird das aktuell gesetzte Modul genommen
	*
	* @access       public	
	* @param        string $name Schlüsselname der Option
	* @param        string $value Wert der Option
	*/
	function insertOption($name, $value, $parameter = "") {
		$module = $this->module;
		if($parameter != "") {
			$result = mysql_query("INSERT INTO ".TABLE."_options (name, value, module, parameter) VALUES ('$name', '$value', '$module', '$parameter')");
		} else {
			$result = mysql_query("INSERT INTO ".TABLE."_options (name, value, module) VALUES ('$name', '$value', '$module')");
		}
		return $result;
	}
	
	/**
	* Check ob Option gesetzt ist. Optinen Liste muss vorher abgerufen 
	* worden sein
	*
	* @access       public	
	* @param        string $name Schlüsselname der Option
	* @param        string $parameter Parameter der Option
	* @return       boolean $result
	*/
	function checkOption($name, $parameter = "") {
		$module = $this->module;
		$result = false;
		if($parameter == "") {
			if($this->getSingleOption($name) !== false) {
				$result = true;
			}
		} else {
			if($this->getSingleOption($name, $parameter) !== false) {
				$result = true;
			}
		}
		return $result;
	}
}

?>
Return current item: Content*Builder