]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #4060 combined some page handlers for users lib
authorCash Costello <cash.costello@gmail.com>
Sat, 5 Nov 2011 11:30:30 +0000 (07:30 -0400)
committerCash Costello <cash.costello@gmail.com>
Sat, 5 Nov 2011 11:30:30 +0000 (07:30 -0400)
engine/lib/users.php
pages/account/login.php [new file with mode: 0644]

index 3aff2ca9d4e52337f5e0f5a4a60a32719beddbcd..ac507e060247b80a4704eff50e6f466e82e601b3 100644 (file)
@@ -1044,41 +1044,34 @@ function collections_submenu_items() {
 }
 
 /**
- * Page handler for friends
+ * Page handler for friends-related pages
  *
- * @param array $page_elements Page elements
+ * @param array  $segments URL segments
+ * @param string $handler  The first segment in URL used for routing
  *
  * @return bool
  * @access private
  */
-function friends_page_handler($page_elements) {
+function friends_page_handler($page_elements, $handler) {
+       elgg_set_context('friends');
+       
        if (isset($page_elements[0]) && $user = get_user_by_username($page_elements[0])) {
                elgg_set_page_owner_guid($user->getGUID());
        }
        if (elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) {
                collections_submenu_items();
        }
-       require_once(dirname(dirname(dirname(__FILE__))) . "/pages/friends/index.php");
-       return true;
-}
 
-/**
- * Page handler for friends of
- *
- * @param array $page_elements Page elements
- *
- * @return bool
- * @access private
- */
-function friends_of_page_handler($page_elements) {
-       elgg_set_context('friends');
-       if (isset($page_elements[0]) && $user = get_user_by_username($page_elements[0])) {
-               elgg_set_page_owner_guid($user->getGUID());
-       }
-       if (elgg_get_logged_in_user_guid() == elgg_get_page_owner_guid()) {
-               collections_submenu_items();
+       switch ($handler) {
+               case 'friends':
+                       require_once(dirname(dirname(dirname(__FILE__))) . "/pages/friends/index.php");
+                       break;
+               case 'friendsof':
+                       require_once(dirname(dirname(dirname(__FILE__))) . "/pages/friends/of.php");
+                       break;
+               default:
+                       return false;
        }
-       require_once(dirname(dirname(dirname(__FILE__))) . "/pages/friends/of.php");
        return true;
 }
 
@@ -1127,6 +1120,9 @@ function elgg_user_account_page_handler($page_elements, $handler) {
 
        $base_dir = elgg_get_root_path() . 'pages/account';
        switch ($handler) {
+               case 'login':
+                       require_once("$base_dir/login.php");
+                       break;
                case 'forgotpassword':
                        require_once("$base_dir/forgotten_password.php");
                        break;
@@ -1142,26 +1138,6 @@ function elgg_user_account_page_handler($page_elements, $handler) {
        return true;
 }
 
-/**
- * Display a login box.
- *
- * This is a fallback for non-JS users who click on the
- * dropdown login link.
- *
- * @return bool
- * @access private
- */
-function elgg_user_login_page_handler() {
-       if (elgg_is_logged_in()) {
-               forward('');
-       }
-
-       $login_box = elgg_view('core/account/login_box');
-       $content = elgg_view_layout('one_column', array('content' => $login_box));
-       echo elgg_view_page(elgg_echo('login'), $content);
-       return true;
-}
-
 /**
  * Sets the last action time of the given user to right now.
  *
@@ -1548,11 +1524,11 @@ function users_pagesetup() {
 function users_init() {
 
        elgg_register_page_handler('friends', 'friends_page_handler');
-       elgg_register_page_handler('friendsof', 'friends_of_page_handler');
+       elgg_register_page_handler('friendsof', 'friends_page_handler');
        elgg_register_page_handler('register', 'elgg_user_account_page_handler');
        elgg_register_page_handler('forgotpassword', 'elgg_user_account_page_handler');
        elgg_register_page_handler('resetpassword', 'elgg_user_account_page_handler');
-       elgg_register_page_handler('login', 'elgg_user_login_page_handler');
+       elgg_register_page_handler('login', 'elgg_user_account_page_handler');
        elgg_register_page_handler('avatar', 'elgg_avatar_page_handler');
        elgg_register_page_handler('profile', 'elgg_profile_page_handler');
        elgg_register_page_handler('collections', 'collections_page_handler');
diff --git a/pages/account/login.php b/pages/account/login.php
new file mode 100644 (file)
index 0000000..14f65cc
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Assembles and outputs a login page.
+ *
+ * This page serves as a fallback for non-JS users who click on the login
+ * drop down link.
+ *
+ * If the user is logged in, this page will forward to the front page.
+ *
+ * @package Elgg.Core
+ * @subpackage Accounts
+ */
+
+if (elgg_is_logged_in()) {
+       forward('');
+}
+
+$login_box = elgg_view('core/account/login_box');
+$content = elgg_view_layout('one_column', array('content' => $login_box));
+echo elgg_view_page(elgg_echo('login'), $content);