<?php
class Logger {

	public static function addAll($controller, $akce, $args, $popis) {
		
		$registry = Registry::getInstance();
		$array = array();
		$args = implode(DIRSEP,$args);

		try {
  		dibi::query('INSERT INTO [LOG] SET ID_UZIVATEL = %i, CONTROLLER = %sn,
  			AKCE = %sn, PARAM = %sn, GET = %sn, POPIS = %sn, CAS = NOW()',
  			$registry->user->id, $controller,
  			$akce, $args, print_r($_GET, true), $popis);
  
  		return dibi::insertId();
		}
		catch(DibiDriverException $e){
  		Debug::addPoint('Chyba při zápisu logu do databáze.');
  	}
  	catch(DibiException $e) {
  		Debug::addPoint('Chyba při zápisu logu do databáze.');
  	}
	}

	public static function add($popis) {
		
		$registry = Registry::getInstance();
		$appl = $registry->application;
		$array = array();
		$args = implode(DIRSEP,$appl->myController('args'));

		try {
  		dibi::query('INSERT INTO [LOG] SET ID_UZIVATEL = %i, CONTROLLER = %sn,
  			AKCE = %sn, PARAM = %sn, GET = %sn, POPIS = %sn, CAS = NOW()',
  			$registry->user->id, $appl->myController('controller'),
  			$appl->myController('action'), $args, print_r($_GET, true), $popis);
  
  		return dibi::insertId();
		}
		catch(DibiDriverException $e){
  		Debug::addPoint('Chyba při zápisu logu do databáze.');
  	}
  	catch(DibiException $e) {
  		Debug::addPoint('Chyba při zápisu logu do databáze.');
  	}
	}
	
	public static function errorAll($log_err_code = 2, $controller, $akce, $args, $popis = '') {
		$zaznam  = print_r(Debug::backtrace(), true);
		$zaznam .= '$_GET = '.print_r($_GET, true);
		$zaznam .= '$_POST = '.print_r($_POST, true);
		$zaznam .= '$_SERVER = '.print_r($_SERVER, true);
		$zaznam .= '$_FILES = '.print_r($_FILES, true);
		$zaznam .= 'Debug = '.Debug::getDebug(true);

		$registry = Registry::getInstance();
		$appl = $registry->application;
		$array = array();
		$args = implode(DIRSEP,$args);

		try {
  		dibi::query('INSERT INTO [LOG] SET ID_UZIVATEL = %i, CONTROLLER = %sn,
  			AKCE = %sn, PARAM = %sn, GET = %sn, ID_LEC = %i, ZAZNAM = %sn, POPIS = %sn, CAS = NOW()',
  			$registry->user->id, $controller,
  			$akce, $args, print_r($_GET, true), $log_err_code, $zaznam, $popis);
  
  		return dibi::insertId();
		}
		catch(DibiDriverException $e){
  		Debug::addPoint('Chyba při zápisu logu do databáze.',$e->getMessage());
  	}
  	catch(DibiException $e) {
  		Debug::addPoint('Chyba při zápisu logu do databáze.',$e->getMessage());
  	}
	}

	public static function error($log_err_code = 2, $popis = '') {
		$zaznam  = print_r(Debug::backtrace(), true);
		$zaznam .= '$_GET = '.print_r($_GET, true);
		$zaznam .= '$_POST = '.print_r($_POST, true);
		$zaznam .= '$_SERVER = '.print_r($_SERVER, true);
		$zaznam .= '$_FILES = '.print_r($_FILES, true);
		$zaznam .= 'Debug = '.Debug::getDebug(true);

		$registry = Registry::getInstance();
		$array = array();
		$args = implode(DIRSEP,Application::myController('args'));

		try {
  		dibi::query('INSERT INTO [LOG] SET ID_UZIVATEL = %i, CONTROLLER = %sn,
  			AKCE = %sn, PARAM = %sn, GET = %sn, ID_LEC = %i, ZAZNAM = %sn, POPIS = %sn, CAS = NOW()',
  			$registry->user->id, Application::myController('controller'),
  			Application::myController('action'), $args, print_r($_GET, true), $log_err_code, $zaznam, $popis);
  
  		return dibi::insertId();
		}
		catch(DibiDriverException $e){
  		Debug::addPoint('Chyba při zápisu logu do databáze.',$e->getMessage());
  	}
  	catch(DibiException $e) {
  		Debug::addPoint('Chyba při zápisu logu do databáze.',$e->getMessage());
  	}
	}

}

?>