diff options
Diffstat (limited to 'phpBB/viewonline.php')
| -rw-r--r-- | phpBB/viewonline.php | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/phpBB/viewonline.php b/phpBB/viewonline.php index 46f67b93fa..765599f165 100644 --- a/phpBB/viewonline.php +++ b/phpBB/viewonline.php @@ -89,10 +89,26 @@ if ($mode == 'whois' && $auth->acl_get('a_') && $session_id) } // Forum info -$sql = 'SELECT forum_id, forum_name, parent_id, forum_type, left_id, right_id - FROM ' . FORUMS_TABLE . ' - ORDER BY left_id ASC'; -$result = $db->sql_query($sql, 600); +$sql_ary = array( + 'SELECT' => 'f.forum_id, f.forum_name, f.parent_id, f.forum_type, f.left_id, f.right_id', + 'FROM' => array( + FORUMS_TABLE => 'f', + ), + 'ORDER_BY' => 'f.left_id ASC', +); + +/** +* Modify the forum data SQL query for getting additional fields if needed +* +* @event core.viewonline_modify_forum_data_sql +* @var array sql_ary The SQL array +* @since 3.1.5-RC1 +*/ +$vars = array('sql_ary'); +extract($phpbb_dispatcher->trigger_event('core.viewonline_modify_forum_data_sql', compact($vars))); + +$result = $db->sql_query($db->sql_build_query('SELECT', $sql_ary), 600); +unset($sql_ary); $forum_data = array(); while ($row = $db->sql_fetchrow($result)) @@ -166,6 +182,9 @@ $logged_visible_online = $logged_hidden_online = $counter = 0; /** @var \phpbb\controller\helper $controller_helper */ $controller_helper = $phpbb_container->get('controller.helper'); +/** @var \phpbb\group\helper $group_helper */ +$group_helper = $phpbb_container->get('group_helper'); + while ($row = $db->sql_fetchrow($result)) { if ($row['user_id'] != ANONYMOUS && !isset($prev_id[$row['user_id']])) @@ -177,7 +196,7 @@ while ($row = $db->sql_fetchrow($result)) if (!$row['session_viewonline']) { - $view_online = ($auth->acl_get('u_viewonline')) ? true : false; + $view_online = ($auth->acl_get('u_viewonline') || $row['user_id'] === $user->data['user_id']) ? true : false; $logged_hidden_online++; $username_full = '<em>' . $username_full . '</em>'; @@ -360,7 +379,7 @@ while ($row = $db->sql_fetchrow($result)) $row['session_page'] === 'app.' . $phpEx . '/help/bbcode') { $location = $user->lang['VIEWING_FAQ']; - $location_url = $controller_helper->route('phpbb_help_controller', array('mode' => 'faq')); + $location_url = $controller_helper->route('phpbb_help_faq_controller'); } break; } @@ -451,7 +470,7 @@ while ($row = $db->sql_fetchrow($result)) } else { - $legend .= (($legend != '') ? ', ' : '') . '<a style="color:#' . $row['group_colour'] . '" href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']) . '">' . (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']) . '</a>'; + $legend .= (($legend != '') ? ', ' : '') . '<a style="color:#' . $row['group_colour'] . '" href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']) . '">' . $group_helper->get_name($row['group_name']) . '</a>'; } } $db->sql_freeresult($result); |
