pdo->query("DELETE FROM ttrss_error_log"); } function getphpinfo() { ob_start(); phpinfo(); $info = ob_get_contents(); ob_end_clean(); print preg_replace( '%^.*(.*).*$%ms','$1', $info); } private function log_viewer(int $page, int $severity) { $errno_values = []; switch ($severity) { case E_USER_ERROR: $errno_values = [ E_ERROR, E_USER_ERROR, E_PARSE ]; break; case E_USER_WARNING: $errno_values = [ E_ERROR, E_USER_ERROR, E_PARSE, E_WARNING, E_USER_WARNING, E_DEPRECATED, E_USER_DEPRECATED ]; break; } if (count($errno_values) > 0) { $errno_qmarks = arr_qmarks($errno_values); $errno_filter_qpart = "errno IN ($errno_qmarks)"; } else { $errno_filter_qpart = "true"; } $limit = $this->log_page_limit; $offset = $limit * $page; $sth = $this->pdo->prepare("SELECT COUNT(id) AS total_pages FROM ttrss_error_log WHERE $errno_filter_qpart"); $sth->execute($errno_values); if ($res = $sth->fetch()) { $total_pages = (int)($res["total_pages"] / $limit); } else { $total_pages = 0; } print "
"; print "
"; print ""; $prev_page_disabled = $page <= 0 ? "disabled" : ""; print ""; print ""; $next_page_disabled = $page >= $total_pages ? "disabled" : ""; print ""; print ""; print "
"; print __("Severity:") . " "; print_select_hash("severity", $severity, [ E_USER_ERROR => __("Errors"), E_USER_WARNING => __("Warnings"), E_USER_NOTICE => __("Everything") ], 'dojoType="fox.form.Select" onchange="Helpers.EventLog.refresh()"'); print "
"; # pull-right print "
"; # toolbar print '
'; print ""; print ""; $sth = $this->pdo->prepare("SELECT errno, errstr, filename, lineno, created_at, login, context FROM ttrss_error_log LEFT JOIN ttrss_users ON (owner_uid = ttrss_users.id) WHERE $errno_filter_qpart ORDER BY ttrss_error_log.id DESC LIMIT $limit OFFSET $offset"); $sth->execute($errno_values); while ($line = $sth->fetch()) { print ""; foreach ($line as $k => $v) { $line[$k] = htmlspecialchars($v); } print ""; print ""; print ""; print ""; print ""; print ""; } print "
".__("Error")." ".__("Filename")." ".__("Message")." ".__("User")." ".__("Date")."
" . Logger::$errornames[$line["errno"]] . " (" . $line["errno"] . ")" . $line["filename"] . ":" . $line["lineno"] . "" . $line["errstr"] . "\n" . $line["context"] . "" . TimeHelper::make_local_datetime($line["created_at"], false) . "
"; } function index() { $severity = (int) ($_REQUEST["severity"] ?? E_USER_WARNING); $page = (int) ($_REQUEST["page"] ?? 0); print "
"; print "
"; if (LOG_DESTINATION == "sql") { $this->log_viewer($page, $severity); } else { print_notice("Please set LOG_DESTINATION to 'sql' in config.php to enable database logging."); } print "
"; # content pane print "
"; # container print "
"; # accordion pane print "
"; print ""; print "
" . __("Loading, please wait...") . "
"; print "
"; # accordion pane PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB, "prefSystem"); print "
"; #container } }