<?php

include_once('config.php');

//error_reporting(0);					// Vypni interní obsluhu chyb

function CustomErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
  global $Config;
  
  $dt = date("Y-m-d H:i:s");		// časové razítko položky
  $errortype = array(
    1 => "Error",
    2 => "Warning",
    4 => "Parsing Error",
    8 => "Notice",
    16 => "Core Error",
    32 => "Core Warning",
    64 => "Compile Error",
    128 => "Compile Warning",
    256 => "User Error",
    512 => "User Warning",
    1024 => "User Notice"
  );
  $UserErrors = E_ALL;  //E_ERROR | E_WARNING | E_PARSE;
  
  if(($UserErrors & $errno))
  {
    $Error = '# '.$dt.' : '.$errmsg." on line ".$linenum."\n";
    $Backtrace = debug_backtrace();
    array_shift($Backtrace);
    //array_shift($Backtrace);
    //print_r($Backtrace);
    foreach($Backtrace as $Item)
    {
      $Error .= ' '.$Item['file'].'('.$Item['line'].")\t".$Item['function'];
      $Arguments = '';
      if(array_key_exists('args', $Item))
      if(is_array($Item['args']))
      foreach($Item['args'] as $Arg)
      {
        if(is_array($Arg)) $Arguments .= "'".serialize($Arg)."',";
        else $Arguments .= "'".$Arg."',";
      }
      if(strlen($Arguments) > 0) $Error .= '('.substr($Arguments, 0, -1).")";
      $Error .= "\n";
     
    }
    $Error .= "\n";
    //echo('Uvnitř'.$errno);
    //error_log($err, 3, $Config['Web']['ErrorLogFile']);				// Ulož do chybového protokolu
	  //$err = "Datum: ".$dt."\nHlášení: ".$errmsg."\nSkript: ".$filename."\nŘádek: ".$linenum;
    // mail($Config['Web']['AdminEmail'], $Config['Web']['Title'].' - Chybové hlášení', $err);		// Pošli mi zprávu (pokud je to kritická chyba)
  	if($Config['Web']['ShowPHPError'] == 1) 
	  echo('<pre>'.$Error.'</pre><br />');			// V případě ladění chybu i zobraz    

      WriteLog($Error, 10);

    if((E_ERROR | E_PARSE) & $errno) die(); 
  }// else echo($errmsg.'<br>');
}

set_error_handler('CustomErrorHandler');				// Aktivuj novou obsluhu chyb

?>
