From 5f0a3741d0a549849b503eca7b6d7b87d9903069 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 13 Dec 2011 14:49:11 +0400 Subject: add Public_Handler misc code cleanup --- public.php | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) (limited to 'public.php') diff --git a/public.php b/public.php index 3b0d064b6..2cec82962 100644 --- a/public.php +++ b/public.php @@ -16,10 +16,8 @@ $_REQUEST = array_map('stripslashes_deep', $_REQUEST); } - $op = $_REQUEST["op"]; - require_once "functions.php"; - if ($op != "share") require_once "sessions.php"; + require_once "sessions.php"; require_once "sanity_check.php"; require_once "config.php"; require_once "db.php"; @@ -33,30 +31,37 @@ $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); - if (!$link) { - if (DB_TYPE == "mysql") { - print mysql_error(); - } - // PG seems to display its own errors just fine by default. - return; + if (!init_connection($link)) return; + + if (ENABLE_GZIP_OUTPUT) { + ob_start("ob_gzhandler"); } - init_connection($link); + function __autoload($class) { + $file = "classes/".strtolower(basename($class)).".php"; + if (file_exists($file)) { + require $file; + } + } - $method = $_REQUEST["method"]; - $mode = $_REQUEST["mode"]; + $method = $_REQUEST["op"]; - if ((!$op || $op == "rss" || $op == "dlg") && !$_REQUEST["noxml"]) { - header("Content-Type: application/xml; charset=utf-8"); - } else { - header("Content-Type: text/plain; charset=utf-8"); - } + $handler = new Public_Handler($link, $_REQUEST); - if (ENABLE_GZIP_OUTPUT) { - ob_start("ob_gzhandler"); + if ($handler) { + if ($handler->before()) { + if ($method && method_exists($handler, $method)) { + $handler->$method(); + } else if (method_exists($handler, 'index')) { + $handler->index(); + } + $handler->after(); + return; + } } - handle_public_request($link, $op); + header("Content-Type: text/plain"); + print json_encode(array("error" => array("code" => 7))); // We close the connection to database. db_close($link); -- cgit v1.2.3