| @@ 80-135 (lines=56) @@ | ||
| 77 | * @param array $page Array of URL components for routing |
|
| 78 | * @return bool |
|
| 79 | */ |
|
| 80 | function messages_page_handler($page) { |
|
| 81 | ||
| 82 | $current_user = elgg_get_logged_in_user_entity(); |
|
| 83 | if (!$current_user) { |
|
| 84 | register_error(elgg_echo('noaccess')); |
|
| 85 | elgg_get_session()->set('last_forward_from', current_page_url()); |
|
| 86 | forward(''); |
|
| 87 | } |
|
| 88 | ||
| 89 | elgg_load_library('elgg:messages'); |
|
| 90 | ||
| 91 | elgg_push_breadcrumb(elgg_echo('messages'), 'messages/inbox/' . $current_user->username); |
|
| 92 | ||
| 93 | if (!isset($page[0])) { |
|
| 94 | $page[0] = 'inbox'; |
|
| 95 | } |
|
| 96 | ||
| 97 | // Support the old inbox url /messages/<username>, but only if it matches the logged in user. |
|
| 98 | // Otherwise having a username like "read" on the system could confuse this function. |
|
| 99 | if ($current_user->username === $page[0]) { |
|
| 100 | $page[1] = $page[0]; |
|
| 101 | $page[0] = 'inbox'; |
|
| 102 | } |
|
| 103 | ||
| 104 | if (!isset($page[1])) { |
|
| 105 | $page[1] = $current_user->username; |
|
| 106 | } |
|
| 107 | ||
| 108 | $base_dir = elgg_get_plugins_path() . 'messages/pages/messages'; |
|
| 109 | ||
| 110 | switch ($page[0]) { |
|
| 111 | case 'inbox': |
|
| 112 | set_input('username', $page[1]); |
|
| 113 | include("$base_dir/inbox.php"); |
|
| 114 | break; |
|
| 115 | case 'notifications': |
|
| 116 | set_input('username', $page[1]); |
|
| 117 | include("$base_dir/notifications.php"); |
|
| 118 | break; |
|
| 119 | case 'sent': |
|
| 120 | set_input('username', $page[1]); |
|
| 121 | include("$base_dir/sent.php"); |
|
| 122 | break; |
|
| 123 | case 'read': |
|
| 124 | set_input('guid', $page[1]); |
|
| 125 | include("$base_dir/read.php"); |
|
| 126 | break; |
|
| 127 | case 'compose': |
|
| 128 | case 'add': |
|
| 129 | include("$base_dir/send.php"); |
|
| 130 | break; |
|
| 131 | default: |
|
| 132 | return false; |
|
| 133 | } |
|
| 134 | return true; |
|
| 135 | } |
|
| 136 | ||
| 137 | /** |
|
| 138 | * Display notification of new messages in topbar |
|
| @@ 1799-1854 (lines=56) @@ | ||
| 1796 | * wet4_messages_page_handler |
|
| 1797 | * Override page handler for wet4 theme - messages |
|
| 1798 | */ |
|
| 1799 | function wet4_messages_page_handler($page) |
|
| 1800 | { |
|
| 1801 | $current_user = elgg_get_logged_in_user_entity(); |
|
| 1802 | if (!$current_user) { |
|
| 1803 | register_error(elgg_echo('noaccess')); |
|
| 1804 | elgg_get_session()->set('last_forward_from', current_page_url()); |
|
| 1805 | forward(''); |
|
| 1806 | } |
|
| 1807 | ||
| 1808 | elgg_load_library('elgg:messages'); |
|
| 1809 | ||
| 1810 | elgg_push_breadcrumb(elgg_echo('messages'), 'messages/inbox/' . $current_user->username); |
|
| 1811 | ||
| 1812 | if (!isset($page[0])) { |
|
| 1813 | $page[0] = 'inbox'; |
|
| 1814 | } |
|
| 1815 | ||
| 1816 | // Support the old inbox url /messages/<username>, but only if it matches the logged in user. |
|
| 1817 | // Otherwise having a username like "read" on the system could confuse this function. |
|
| 1818 | if ($current_user->username === $page[0]) { |
|
| 1819 | $page[1] = $page[0]; |
|
| 1820 | $page[0] = 'inbox'; |
|
| 1821 | } |
|
| 1822 | ||
| 1823 | if (!isset($page[1])) { |
|
| 1824 | $page[1] = $current_user->username; |
|
| 1825 | } |
|
| 1826 | ||
| 1827 | $base_dir = elgg_get_plugins_path() . 'wet4/pages/messages'; |
|
| 1828 | ||
| 1829 | switch ($page[0]) { |
|
| 1830 | case 'inbox': |
|
| 1831 | set_input('username', $page[1]); |
|
| 1832 | include("$base_dir/inbox.php"); |
|
| 1833 | break; |
|
| 1834 | case 'notifications': |
|
| 1835 | set_input('username', $page[1]); |
|
| 1836 | include("$base_dir/notifications.php"); |
|
| 1837 | break; |
|
| 1838 | case 'sent': |
|
| 1839 | set_input('username', $page[1]); |
|
| 1840 | include("$base_dir/sent.php"); |
|
| 1841 | break; |
|
| 1842 | case 'read': |
|
| 1843 | set_input('guid', $page[1]); |
|
| 1844 | include("$base_dir/read.php"); |
|
| 1845 | break; |
|
| 1846 | case 'compose': |
|
| 1847 | case 'add': |
|
| 1848 | include("$base_dir/send.php"); |
|
| 1849 | break; |
|
| 1850 | default: |
|
| 1851 | return false; |
|
| 1852 | } |
|
| 1853 | return true; |
|
| 1854 | } |
|
| 1855 | ||
| 1856 | /* |
|
| 1857 | * enhanced_friendly_time_hook |
|