diff --git a/actions/logout.php b/actions/logout.php
index 60aec3c83a..5394a38c9f 100644
--- a/actions/logout.php
+++ b/actions/logout.php
@@ -63,7 +63,7 @@ class LogoutAction extends ManagedAction
}
Event::handle('EndLogout', array($this));
- common_redirect(common_local_url('startpage'));
+ common_redirect(common_local_url('top'));
}
// Accessed through the action on events
diff --git a/actions/startpage.php b/actions/startpage.php
deleted file mode 100644
index 9ce00d9c53..0000000000
--- a/actions/startpage.php
+++ /dev/null
@@ -1,26 +0,0 @@
- $user->nickname)), 303);
- } elseif (common_config('public', 'localonly')) {
- common_redirect(common_local_url('public'), 303);
- } else {
- common_redirect(common_local_url('networkpublic'), 303);
- }
- }
-}
diff --git a/actions/top.php b/actions/top.php
index 39abe3df26..d30a40bafe 100644
--- a/actions/top.php
+++ b/actions/top.php
@@ -20,67 +20,29 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*
- * @category Top
- * @package StatusNet
- * @author Evan Prodromou
- * @copyright 2010 StatusNet, Inc.
- * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
- * @link http://status.net/
- */
-
-if (!defined('STATUSNET')) {
- // This check helps protect against security problems;
- // your code file can't be executed directly from the web.
- exit(1);
-}
-
-/**
- * An action to redirect to the top of the site
- *
* @category Action
- * @package StatusNet
+ * @package GNUsocial
* @author Evan Prodromou
+ * @author Mikael Nordfeldth
* @copyright 2010 StatusNet, Inc.
- * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
- * @link http://status.net/
+ * @copyright 2015 Free Software Foundation, Inc.
+ * @license https://www.gnu.org/licenses/agpl-3.0.html AGPL 3.0
+ * @link https://gnu.io/social
*/
-class TopAction extends Action
+if (!defined('GNUSOCIAL')) { exit(1); }
+
+class TopAction extends ManagedAction
{
- /**
- * For initializing members of the class.
- *
- * @param array $argarray misc. arguments
- *
- * @return boolean true
- */
-
- function prepare($argarray)
- {
- parent::prepare($argarray);
- return true;
- }
-
- /**
- * Handler method
- *
- * @param array $argarray is ignored since it's now passed in in prepare()
- *
- * @return void
- */
-
- function handle($argarray=null)
+ public function showPage()
{
if (common_config('singleuser', 'enabled')) {
- $url = common_local_url('showstream', array('nickname' => User::singleUserNickname()));
+ $user = User::singleUser();
+ common_redirect(common_local_url('showstream', array('nickname' => $user->getNickname())), 303);
+ } elseif (common_config('public', 'localonly')) {
+ common_redirect(common_local_url('public'), 303);
} else {
- $url = common_local_url('public');
+ common_redirect(common_local_url('networkpublic'), 303);
}
-
- // XXX: Permanent? I think so.
-
- common_redirect($url, 301);
-
- return;
}
}
diff --git a/lib/router.php b/lib/router.php
index ca8daf5a90..f6360377da 100644
--- a/lib/router.php
+++ b/lib/router.php
@@ -108,6 +108,11 @@ class Router
if (Event::handle('StartInitializeRouter', array(&$m))) {
+ // top of the menu hierarchy, sometimes "Home"
+ $m->connect('', array('action' => 'top'));
+
+ // public endpoints
+
$m->connect('robots.txt', array('action' => 'robotstxt'));
$m->connect('opensearch/people', array('action' => 'opensearch',
@@ -156,13 +161,13 @@ class Router
'deleteaccount',
'restoreaccount',
'top',
+ 'public',
);
foreach ($main as $a) {
$m->connect('main/'.$a, array('action' => $a));
}
- $m->connect('main/public', array('action' => 'public'));
$m->connect('main/all', array('action' => 'networkpublic'));
$m->connect('main/tagprofile/:id', array('action' => 'tagprofile'),
@@ -875,9 +880,6 @@ class Router
array('action' => 'rsd',
'nickname' => $nickname));
- $m->connect('',
- array('action' => 'startpage'));
-
// peopletags
$m->connect('peopletags',
@@ -930,9 +932,6 @@ class Router
}
}
- $m->connect('', array('action' => 'startpage'));
- $m->connect('main/public', array('action' => 'public'));
- $m->connect('main/all', array('action' => 'networkpublic'));
$m->connect('rss', array('action' => 'publicrss'));
$m->connect('featuredrss', array('action' => 'featuredrss'));
$m->connect('featured/', array('action' => 'featured'));