X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=index.php;h=2b27845e59dcbce9ed64e69bda2ba9c028a8a2d3;hb=71978a84fdc7028f1ffe300ce6f8ff36047575ea;hp=3534739bface4334914d14a07dbb700363d3f974;hpb=0dbdcf2936a00282114f1368ead2f5edebc6ae61;p=quix0rs-gnu-social.git diff --git a/index.php b/index.php index 3534739bfa..2b27845e59 100644 --- a/index.php +++ b/index.php @@ -41,29 +41,37 @@ $_startTime = microtime(true); $_perfCounters = array(); define('INSTALLDIR', dirname(__FILE__)); -define('STATUSNET', true); -define('LACONICA', true); // compatibility +define('GNUSOCIAL', true); +define('STATUSNET', true); // compatibility $user = null; $action = null; function getPath($req) { + $p = null; + if ((common_config('site', 'fancy') || !array_key_exists('PATH_INFO', $_SERVER)) && array_key_exists('p', $req) ) { - return $req['p']; + $p = $req['p']; } else if (array_key_exists('PATH_INFO', $_SERVER)) { $path = $_SERVER['PATH_INFO']; $script = $_SERVER['SCRIPT_NAME']; if (substr($path, 0, mb_strlen($script)) == $script) { - return substr($path, mb_strlen($script)); + $p = substr($path, mb_strlen($script) + 1); } else { - return $path; + $p = $path; } } else { - return null; + $p = null; } + + // Trim all initial '/' + + $p = ltrim($p, '/'); + + return $p; } /** @@ -116,16 +124,14 @@ function handleError($error) common_config('site', 'name'), common_config('site', 'email') ); + + $dac = new DBErrorAction($msg, 500); + $dac->showPage(); } else { - // TRANS: Error message. - $msg = _('An important error occured, probably related to email setup. '. - 'Check logfiles for more info.' - ); + $sac = new ServerErrorAction($error->getMessage(), 500, $error); + $sac->showPage(); } - $dac = new DBErrorAction($msg, 500); - $dac->showPage(); - } catch (Exception $e) { // TRANS: Error message. echo _('An error occurred.'); @@ -195,29 +201,9 @@ function setupRW() return; } -function checkMirror($action_obj, $args) -{ - global $config; - - if (common_config('db', 'mirror') && $action_obj->isReadOnly($args)) { - if (is_array(common_config('db', 'mirror'))) { - // "load balancing", ha ha - $arr = common_config('db', 'mirror'); - $k = array_rand($arr); - $mirror = $arr[$k]; - } else { - $mirror = common_config('db', 'mirror'); - } - - // everyone else uses the mirror - - $config['db']['database'] = $mirror; - } -} - function isLoginAction($action) { - static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp', 'opensearch', 'rsd', 'hostmeta'); + static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp', 'opensearch', 'rsd'); $login = null; @@ -309,7 +295,7 @@ function main() Event::handle('ArgsInitialize', array(&$args)); - $action = $args['action']; + $action = basename($args['action']); if (!$action || !preg_match('/^[a-zA-Z0-9_-]*$/', $action)) { common_redirect(common_local_url('public')); @@ -350,14 +336,8 @@ function main() $cac = new ClientErrorAction(_('Unknown action'), 404); $cac->showPage(); } else { - $action_obj = new $action_class(); - - checkMirror($action_obj, $args); - try { - if ($action_obj->prepare($args)) { - $action_obj->handle($args); - } + call_user_func("$action_class::run", $args); } catch (ClientException $cex) { $cac = new ClientErrorAction($cex->getMessage(), $cex->getCode()); $cac->showPage();