class_ContainerClass.inc.php 3.5 KB
<?php
/**
 * @file	ContainerClass.inc.php
 * @category freeSN
 * @mailto	code [at] netz.coop
 * @version 0.4.200901
 * @link http://netz.coop
 * 
 *  @copyright Copyright by netz.coop e.G. 2015
 *  
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */
class ContainerClass extends aLosp {
	private $ObjVarArray= array();

	private $ObjVarArrayDescript = array();

	private function __construct(array $param_ObjVarArrayDescript) {
		$this->ObjVarArrayDescript = $param_ObjVarArrayDescript;
	}

	public static function createNewInstance(array $param_ObjVarArrayDescript) {
		return new ContainerClass($param_ObjVarArrayDescript);
	}

	public function setData(Account &$param_HostAccount, iStorable &$param_iStorable, array $param_Data) {
		foreach($param_Data as $var_ObjVar => $var_Value) {
			$this->ObjVarArray[$var_ObjVar] = $var_Value;
		}
	}

	public function setObjVar($param_ObjVar, $param_Value) {
		if($param_ObjVar) {
			$this->ObjVarArray[$param_ObjVar] = $param_Value;
			return true;
		} else {
			return false;
		}
	}

	public function &getObjVar($param_ObjVar) {
		if($param_ObjVar && array_key_exists($param_ObjVar, $this->ObjVarArray)) {
			return $this->ObjVarArray[$param_ObjVar];
		} else {
			return false;
		}
	}

	public function getObjDOMElement(Account &$param_HostAccount, iStorable &$param_iStorable, DOMDocument $param_DOMDocument, $param_KindOf=null, array $param_DOMElemente=null) {
		$DOMElement = parent::getObjDOMElement($param_HostAccount, $param_iStorable, $param_DOMDocument, $param_KindOf, $param_DOMElemente);

		$var_ObjVarArray  = $this->ObjVarArray;
		foreach($this->ObjVarArrayDescript as $var_ObjVar => $var_Discript) {
			$var_OptionalValues = array(
				'label'			=>	Language::getWord($var_ObjVar),
				'objvar'		=>	$var_ObjVar,
				'show'			=>	true,
				'type'			=> $this->ObjVarArrayDescript[$var_ObjVar]['Type'],
				'form_Length'	=> $this->ObjVarArrayDescript[$var_ObjVar]['Length'],
			);



			if($param_KindOf=='form') {
				$var_OptionalValues['edit'] = true;
			}

			if(array_key_exists($var_ObjVar, $var_ObjVarArray)) {
				$var_OptionalValues['value'] = $var_ObjVarArray[$var_ObjVar];
				unset($var_ObjVarArray[$var_ObjVar]);
				$DOMElement->appendChild(DOMElementHelper::getDOMElementWithParameter($param_DOMDocument, 'Element', $var_OptionalValues, $var_OptionalValues['value']));
			} else {
				$DOMElement->appendChild(DOMElementHelper::getDOMElementWithParameter($param_DOMDocument, 'Element', $var_OptionalValues));
			}

				
		}

		foreach($var_ObjVarArray as $var_ObjVar => $var_Value) {
			$var_OptionalValues= array(
				'label'		=>	Language::getWord($var_ObjVar),
				'objvar'	=>	$var_ObjVar,
				'show'		=>	true,
				'value'		=>	$var_Value
			);

			if($param_KindOf=='form') {
				$var_OptionalValues['edit'] = true;
			}

			$DOMElement->appendChild(DOMElementHelper::getDOMElementWithParameter($param_DOMDocument, 'Element', $var_OptionalValues));
		}

		return $DOMElement;
	}

}

?>