diff options
author | David M <davidmj@users.sourceforge.net> | 2007-03-24 18:00:21 +0000 |
---|---|---|
committer | David M <davidmj@users.sourceforge.net> | 2007-03-24 18:00:21 +0000 |
commit | 6bc4b1412b42c275b0715ee47c5bf923ee3f2206 (patch) | |
tree | cb9b93f00944ee675e7a0aca76b3c9513e1128ba | |
parent | f269de0fd49481dae1dd28076d6e08115b9edba0 (diff) | |
download | forums-6bc4b1412b42c275b0715ee47c5bf923ee3f2206.tar forums-6bc4b1412b42c275b0715ee47c5bf923ee3f2206.tar.gz forums-6bc4b1412b42c275b0715ee47c5bf923ee3f2206.tar.bz2 forums-6bc4b1412b42c275b0715ee47c5bf923ee3f2206.tar.xz forums-6bc4b1412b42c275b0715ee47c5bf923ee3f2206.zip |
#5280
git-svn-id: file:///svn/phpbb/trunk@7229 89ea8834-ac86-4346-8a33-228a782c2dd0
-rw-r--r-- | phpBB/includes/functions_module.php | 38 | ||||
-rwxr-xr-x | phpBB/ucp.php | 75 |
2 files changed, 78 insertions, 35 deletions
diff --git a/phpBB/includes/functions_module.php b/phpBB/includes/functions_module.php index d45358327f..651e35032c 100644 --- a/phpBB/includes/functions_module.php +++ b/phpBB/includes/functions_module.php @@ -465,6 +465,44 @@ class p_master } /** + * Check if a module is active + */ + function is_active($id = false) + { + $icat = false; + + $category = false; + foreach ($this->module_ary as $row_id => $item_ary) + { + // If this is a module and it's selected, active + // If this is a category and the module is the first within it, active + // If this is a module and no mode selected, select first mode + // If no category or module selected, go active for first module in first category + if ( + (($item_ary['name'] === $id || $item_ary['id'] === (int) $id) && (($item_ary['mode'] == false && !$item_ary['cat']) || ($icat && $item_ary['cat']))) || + ($item_ary['parent'] === $category && !$item_ary['cat'] && !$icat && $item_ary['display']) || + (($item_ary['name'] === $id || $item_ary['id'] === (int) $id) && !$item_ary['cat']) || + (!$id && !$item_ary['cat'] && $item_ary['display']) + ) + { + if ($item_ary['cat']) + { + $id = $icat; + $icat = false; + + continue; + } + + return $item_ary['id']; + } + else if (($item_ary['cat'] && $item_ary['id'] === (int) $id) || ($item_ary['parent'] === $category && $item_ary['cat'])) + { + $category = $item_ary['id']; + } + } + } + + /** * Get parents */ function get_parents($parent_id, $left_id, $right_id, &$all_parents) diff --git a/phpBB/ucp.php b/phpBB/ucp.php index 2713f794eb..f4ddd55f6d 100755 --- a/phpBB/ucp.php +++ b/phpBB/ucp.php @@ -241,53 +241,58 @@ if (!$user->data['is_registered']) login_box('', $user->lang['LOGIN_EXPLAIN_UCP']); } +// Instantiate module system and generate list of available modules +$module->list_modules('ucp'); -// Output listing of friends online -$update_time = $config['load_online_time'] * 60; +// Check if the zebra module is set +$zebra_enabled = $module->is_active('zebra') ? true : false; -$sql = $db->sql_build_query('SELECT_DISTINCT', array( - 'SELECT' => 'u.user_id, u.username, u.username_clean, u.user_colour, u.user_allow_viewonline, MAX(s.session_time) as online_time, MIN(s.session_viewonline) AS viewonline', +if ($zebra_enabled) +{ + // Output listing of friends online + $update_time = $config['load_online_time'] * 60; - 'FROM' => array( - USERS_TABLE => 'u', - ZEBRA_TABLE => 'z' - ), + $sql = $db->sql_build_query('SELECT_DISTINCT', array( + 'SELECT' => 'u.user_id, u.username, u.username_clean, u.user_colour, u.user_allow_viewonline, MAX(s.session_time) as online_time, MIN(s.session_viewonline) AS viewonline', - 'LEFT_JOIN' => array( - array( - 'FROM' => array(SESSIONS_TABLE => 's'), - 'ON' => 's.session_user_id = z.zebra_id' - ) - ), + 'FROM' => array( + USERS_TABLE => 'u', + ZEBRA_TABLE => 'z' + ), - 'WHERE' => 'z.user_id = ' . $user->data['user_id'] . ' - AND z.friend = 1 - AND u.user_id = z.zebra_id', + 'LEFT_JOIN' => array( + array( + 'FROM' => array(SESSIONS_TABLE => 's'), + 'ON' => 's.session_user_id = z.zebra_id' + ) + ), - 'GROUP_BY' => 'z.zebra_id, u.user_id, u.username_clean, u.user_allow_viewonline, u.user_colour, u.username', + 'WHERE' => 'z.user_id = ' . $user->data['user_id'] . ' + AND z.friend = 1 + AND u.user_id = z.zebra_id', - 'ORDER_BY' => 'u.username_clean ASC', -)); + 'GROUP_BY' => 'z.zebra_id, u.user_id, u.username_clean, u.user_allow_viewonline, u.user_colour, u.username', -$result = $db->sql_query($sql); + 'ORDER_BY' => 'u.username_clean ASC', + )); -while ($row = $db->sql_fetchrow($result)) -{ - $which = (time() - $update_time < $row['online_time'] && $row['viewonline'] && $row['user_allow_viewonline']) ? 'online' : 'offline'; + $result = $db->sql_query($sql); - $template->assign_block_vars("friends_{$which}", array( - 'USER_ID' => $row['user_id'], + while ($row = $db->sql_fetchrow($result)) + { + $which = (time() - $update_time < $row['online_time'] && $row['viewonline'] && $row['user_allow_viewonline']) ? 'online' : 'offline'; - 'U_PROFILE' => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']), - 'USER_COLOUR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']), - 'USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']), - 'USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'])) - ); -} -$db->sql_freeresult($result); + $template->assign_block_vars("friends_{$which}", array( + 'USER_ID' => $row['user_id'], -// Instantiate module system and generate list of available modules -$module->list_modules('ucp'); + 'U_PROFILE' => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']), + 'USER_COLOUR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']), + 'USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']), + 'USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'])) + ); + } + $db->sql_freeresult($result); +} // Select the active module $module->set_active($id, $mode); |