class_Logger.inc.php 4.26 KB
<?php
/**
 * @file	class_Logger.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 Logger extends aBasisElementAddon {
	protected $Obj;

	protected $Data;

	private $OnlyWithPOST = array('Edit', 'MakeNew');

	public static $count_Logger=0;

	public function __construct(iStorable &$param_DB, &$param_Obj) {
		Logger::$count_Logger++;
		$this->Obj =& $param_Obj;
		$this->DB =& $param_DB;
		$this->depth = CONFIG::getConfig(get_class($this).'Depth');
		$this->ThisClassName = get_class($this);
	}

	public function delete(){
		$var_BEADB = &$this->DB->getBasisElementAddonDataBase($this->ThisClassName);
		if($var_BEADB) {
			$var_BEADB->deleteAllHistory($this->DB->getObjVar('SRequest'), $this->Obj->getObjVar('ID'));
			$var_BEADB->deleteAllVisited($this->DB->getObjVar('SRequest'), $this->Obj->getObjVar('ID'));
		}
	}

	public function addOneToVisited(array $param_ParameterArray=null) {
		if(is_subclass_of($this->Obj, 'BasisElement')) {
			if(array_search($param_ParameterArray['LoadLevel'], $this->OnlyWithPOST)!==false && (empty($_POST))) {
				//				$param_ParameterArray['LoadLevel'] = $param_ParameterArray['LoadLevel'].'_before';
			} else {
				$var_BEADB = &$this->DB->getBasisElementAddonDataBase($this->ThisClassName);
				if($var_BEADB) {
					$var_BEADB->addOneToVisited($this->DB->getObjVar('SRequest'), $this->Obj->getObjVar('RequestProfileID'), $this->Obj->getObjVar('ID'), $param_ParameterArray['LoadLevel']);
				}
			}

		} else {
			D::h1('Logger ist nur für BasisElemente implementiert');
		}

	}

	public function insertToHistory(array $param_ParameterArray=null) {
		if(is_subclass_of($this->Obj, 'BasisElement')) {

			if(array_search($param_ParameterArray['LoadLevel'], $this->OnlyWithPOST)!==false && (empty($_POST))) {

			} else {
				$var_BEADB = &$this->DB->getBasisElementAddonDataBase($this->ThisClassName);
				if($var_BEADB) {
					$tmp_ProfileID = $this->Obj->getObjVar('RequestProfileID');
					if(array_key_exists('AuthorProfileID',$param_ParameterArray) && $param_ParameterArray['AuthorProfileID']){
						$tmp_ProfileID = $param_ParameterArray['AuthorProfileID'];
					}
					if(array_key_exists('p', $_GET)) {
						$var_BEADB->insertToHistory($this->DB->getObjVar('SRequest'), $tmp_ProfileID, $this->Obj->getObjVar('ID'), $_GET['p'], $param_ParameterArray['LoadLevel']);
					}
					
				}
			}



		} else if(is_subclass_of($this->Obj, 'BasisClipboard')) {

			$var_LoadLevel = $param_ParameterArray['LoadLevel'];

			$var_BEADB = &$this->DB->getBasisElementAddonDataBase($this->ThisClassName);
			if($var_BEADB) {
				$var_BEADB->insertToHistory($this->DB->getObjVar('SRequest'), $this->Obj->getObjVar('RequestProfileID'), $this->Obj->getObjVar('PartOfID'), $_GET['p'], $var_LoadLevel);
			}

		} else {
			D::h1('Logger ist nur für BasisElemente implementiert');
		}
	}

	public function insertVisit() {
		$var_BEADB = &$this->DB->getBasisElementAddonDataBase($this->ThisClassName);
		$var_BEADB->insertVisit($this->DB, $this->getObjVar('RequestProfileID'));
	}

	public function flushVisites() {
		$var_BEADB = &$this->DB->getBasisElementAddonDataBase($this->ThisClassName);
		$var_BEADB->flushVisites($this->DB->getObjVar('SRequest'), $this->getObjVar('RequestProfileID'));
	}

	public function setData(Account &$param_HostAccount, iStorable &$param_iStorable, array $param_Data) {
	}

	public static function getRequestMTextList(Account &$param_HostAccount, iStorable &$param_iStorable, $param_RequestValue, MultimediaText $param_PartOf, $param_BasisClipboardName=false, array $param_ConditionArray=null) {
	}

}
?>