next(); $vars['trace'] = implode('
', array_slice(explode('#', $vars['trace']), 1, -1)); return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log_error.tpl'), $vars);} public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_filter($filter = "%"){ $count = \SYSTEM\DBD\SYS_SAIMOD_LOG_FILTER_COUNT::Q1(array(mysql_escape_string($filter))); $res = \SYSTEM\DBD\SYS_SAIMOD_LOG_FILTER::QQ(array(mysql_escape_string($filter))); $now = microtime(true); $table=''; while($r = $res->next()){ //print_r($r); $r['class_row'] = self::tablerow_class($r['class']); $r['time'] = self::time_elapsed_string(strtotime($r['time'])); $r['message'] = substr($r['message'],0,255); $table .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log_table_row.tpl'),$r); } $vars = array(); $vars['count'] = $count['count']; $vars['table'] = $table; return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log_table.tpl'), $vars); } public static function sai_mod__SYSTEM_SAI_saimod_sys_log_action_log(){ $vars = array(); $vars['table'] = self::sai_mod__SYSTEM_SAI_saimod_sys_log_action_filter(); $vars['error_filter'] = self::generate_error_filters(); return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log_filter.tpl'), $vars); } private static function time_elapsed_string($ptime){ $etime = time() - $ptime; if ($etime < 1){ return '0 seconds';} $a = array( 12 * 30 * 24 * 60 * 60 => 'year', 30 * 24 * 60 * 60 => 'month', 24 * 60 * 60 => 'day', 60 * 60 => 'hour', 60 => 'minute', 1 => 'second'); foreach ($a as $secs => $str){ $d = $etime / $secs; if ($d >= 1){ $r = round($d); return $r . ' ' . $str . ($r > 1 ? 's' : '') . ' ago';} } } private static function generate_error_filters(){ $res = \SYSTEM\DBD\SYS_SAIMOD_LOG_FILTERS::QQ(); $result = ''; while($row = $res->next()){ $result .= '
  • '.$row['class'].'
  • ';} return $result; } public static function sai_mod__SYSTEM_SAI_saimod_sys_log(){ $vars = array(); $vars['PICPATH'] = \SYSTEM\WEBPATH(new \SYSTEM\PSAI(), 'modules/saimod_sys_log/img/'); return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log.tpl'), $vars); } private static function tablerow_class($class){ switch($class){ case 'SYSTEM\LOG\INFO': case 'INFO': case 'SYSTEM\LOG\COUNTER': return 'success'; case 'SYSTEM\LOG\DEPRECATED': case 'DEPRECATED': return 'info'; case 'SYSTEM\LOG\ERROR': case 'ERROR': case 'Exception': case 'SYSTEM\LOG\ERROR_EXCEPTION': case 'ErrorException': case 'SYSTEM\LOG\SHUTDOWN_EXCEPTION': return 'error'; case 'SYSTEM\LOG\WARNING': case 'WARNING': return 'warning'; default: return ''; } } public static function html_li_menu(){return '
  • Log
  • ';} public static function right_public(){return false;} public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} public static function sai_mod__SYSTEM_SAI_saimod_sys_log_flag_css(){} public static function sai_mod__SYSTEM_SAI_saimod_sys_log_flag_js(){ return \SYSTEM\LOG\JsonResult::toString( array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log.js')));} }