]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - index.php
Add urlshortenerplugin2.php to solve some @todo's and adding exceptions
[quix0rs-gnu-social.git] / index.php
index 850208c9d1501a80337a7a8d568a85aa88100527..82be959455933141957f2eb12bc9f5a4a2ff987b 100644 (file)
--- 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;
 }
 
 /**
@@ -193,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;
 
@@ -254,8 +242,6 @@ function main()
     }
     global $user, $action;
 
-    Snapshot::check();
-
     if (!_have_config()) {
         $msg = sprintf(
             // TRANS: Error message displayed when there is no StatusNet configuration file.
@@ -307,7 +293,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'));
@@ -348,14 +334,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();