/** * Show PHP-Fusion Performance * @param bool $queries * @return string */ function showrendertime($queries = TRUE) { global $mysql_queries_count; $locale = array(); include LOCALE . LOCALESET . "global.php"; $db = DatabaseFactory::getConnection(); if ($db) { $mysql_queries_count = $db->getGlobalQueryCount(); } if (fusion_get_settings('rendertime_enabled') == 1 || fusion_get_settings('rendertime_enabled') == 2 && iADMIN) { $render_time = substr(microtime(TRUE) - START_TIME, 0, 7); $_SESSION['performance'][] = $render_time; if (count($_SESSION['performance']) > 5) { array_shift($_SESSION['performance']); } $average_speed = $render_time; $diff = 0; if (isset($_SESSION['performance'])) { $average_speed = substr(array_sum($_SESSION['performance']) / count($_SESSION['performance']), 0, 7); $previous_render = array_values(array_slice($_SESSION['performance'], -2, 1, TRUE)); $diff = $render_time - (!empty($previous_render) ? $previous_render[0] : 0); } $res = sprintf($locale['global_172'], $render_time) . " | " . sprintf($locale['global_175'], $average_speed . " ({$diff})"); $res .= $queries ? " | " . ucfirst($locale['global_173']) . ": {$mysql_queries_count}" : ""; return $res; } else { return ""; } }
function setError($error_level, $error_message, $error_file, $error_line, $error_context) { global $userdata, $_errorHandler; $showError = TRUE; $db = DatabaseFactory::getConnection(); $result = $db->query("SELECT error_id, error_status FROM " . DB_ERRORS . "\n\t\tWHERE error_message = :message AND error_file = :file AND error_line = :line AND error_status != '1'\n\t\tORDER BY error_timestamp DESC LIMIT 1", array(':message' => $error_message, ':file' => $error_file, ':line' => $error_line)); if ($db->countRows($result) == 0) { $db->query("INSERT INTO " . DB_ERRORS . " (\n\t\t\t\terror_level, error_message, error_file, error_line, error_page,\n\t\t\t\terror_user_level, error_user_ip, error_user_ip_type, error_status, error_timestamp\n\t\t\t) VALUES (\n\t\t\t\t:level, :message, :file, :line,\n\t\t\t\t'" . TRUE_PHP_SELF . "', '" . $userdata['user_level'] . "', '" . USER_IP . "', '" . USER_IP_TYPE . "',\n\t\t\t\t'0', '" . time() . "'\n\t\t\t)", array(':level' => $error_level, ':message' => $error_message, ':file' => $error_file, ':line' => $error_line)); $errorId = $db->getLastId(); } else { $data = $db->fetchAssoc($result); $errorId = $data['error_id']; if ($data['error_status'] == 2) { $showError = FALSE; } } if ($showError) { $_errorHandler[] = array("id" => $errorId, "level" => $error_level, "file" => $error_file, "line" => $error_line); } }
/** * Custom error handler for PHP processor * @param $error_level * @param $error_message * @param $error_file * @param $error_line * @param $error_context */ public function setError($error_level, $error_message, $error_file, $error_line, $error_context) { global $userdata; $showLiveError = TRUE; // directly show error - push to another instance $data = array(); $db = DatabaseFactory::getConnection(); $result = $db->query("SELECT error_id, error_status FROM " . DB_ERRORS . "\n WHERE error_message = :message AND error_file = :file AND error_line = :line AND error_status != '1' AND error_page = :page\n ORDER BY error_timestamp DESC LIMIT 1", array(':message' => $error_message, ':file' => $error_file, ':page' => FUSION_REQUEST, ':line' => $error_line)); if ($db->countRows($result) == 0) { $db->query("INSERT INTO " . DB_ERRORS . " (\n\t\t\t\terror_level, error_message, error_file, error_line, error_page,\n\t\t\t\terror_user_level, error_user_ip, error_user_ip_type, error_status, error_timestamp\n\t\t\t) VALUES (\n\t\t\t\t:level, :message, :file, :line, :page,\n\t\t\t\t'" . $userdata['user_level'] . "', '" . USER_IP . "', '" . USER_IP_TYPE . "',\n\t\t\t\t'0', '" . time() . "'\n\t\t\t)", array(':level' => $error_level, ':message' => $error_message, ':file' => $error_file, ':page' => FUSION_REQUEST, ':line' => $error_line)); $errorId = $db->getLastId(); } else { $data = $db->fetchAssoc($result); $errorId = $data['error_id']; if ($data['error_status'] == 2) { $showLiveError = FALSE; } } if ($showLiveError) { $this->new_errors[$errorId] = array("error_id" => $errorId, "error_level" => $error_level, "error_file" => $error_file, "error_line" => $error_line, "error_page" => FUSION_REQUEST, "error_message" => $error_message, "error_timestamp" => time(), "error_status" => 0); } }
/** * Get the AbstractDatabase instance * * @return AbstractDatabaseDriver */ function dbconnection() { return DatabaseFactory::getConnection('default'); }