############################################################## ## MOD Title: online_status ## MOD Author: author_string ## MOD Description: Shows users online status wherever required ## module is used. ## MOD Version: 2.4.0 ## ## Installation Level: easy ## Installation Time: 5 Minutes ## Files To Edit: common.php, includes/page_header.php, templates/subSilver/subSilver.cfg ## Included Files: n/a ############################################################## ## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the ## latest version of this MOD. Downloading this MOD from other sites could cause malicious code ## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered ## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/ ############################################################## ## Author Notes: By itself this mod does nothing, this is a primer so the individual ## modules can be used. ## ############################################################## ## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD ############################################################## # # ------ [ OPEN ] ---- # common.php # # ------- [ FIND ] ------ # $board_config = array(); $userdata = array(); # # ----- [ AFTER, ADD ] ---- # $online_offline = array(); # # ------ [ OPEN ] ---- # includes/page_header.php # # ------ [ FIND ] ---- # $logged_hidden_online = 0; $guests_online = 0; $online_userlist = ''; # #-----[ AFTER, ADD ]------------------------------------------ # // ONLINE STATUS MOD if(defined('FETCH_ONLINE')) { $sql = 'SELECT u.user_id'; if($userdata['user_level'] != ADMIN) { $sql2 = ' AND u.user_allow_viewonline = 1'; } ELSE { $sql2 = ''; $sql .= ', u.user_allow_viewonline'; } $sql .= ' FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s WHERE u.user_id = s.session_user_id AND s.session_time >= '.( time() - 300 ) . $sql2; if( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $sql); } while( $row = $db->sql_fetchrow($result) ) { $online_status[$row['user_id']] = isset($row['user_allow_viewonline']) ? $row['user_allow_viewonline'] ? 1 : 2 : 1; } $online_status['-1'] = 3; // Force English terms if selected language is updated if(!isset($lang['Online'])) { $lang['Offline'] = "Offline"; $lang['Online'] = "Online"; $lang['Hidden'] = "Hidden"; } // Transplant language variables in strings if( is_array($online_offline) ) { while( list($k, $v) = each($online_offline) ) { while( list($k2, $v2) = each($online_offline[$k]) ) { eval("\$online_offline[$k][$k2]=\"$v2\";"); } } } } // END OF MOD # # ------ [ FIND ] ---- # // Skip multiple sessions for one user if( $row['user_id'] != $prev_user_id ) { # # ------ [ AFTER ADD ] ---- # $online_status[$row['user_id']] = $row['user_allow_viewonline'] ? 1 : $admin_switch; if( empty($forum_id) || ( $row['user_session_page'] == $forum_id || $row['session_page'] == $forum_id)) { # # ------ [ FIND ] ---- # if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) { $online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link; } # # ------ [ AFTER, ADD ] ---- # } # # ------ [ OPEN ] ---- # includes/functions.php # # ------ [ Find] ---- # function setup_style($style) { global $db, $board_config, $template, $images, $phpbb_root_path; # # ------ [ REPLACE with] ---- # function setup_style($style) { global $db, $board_config, $template, $images, $phpbb_root_path, $online_offline; # # ------ [ OPEN ] ---- # viewtopic.php # # ------ [ FIND ] ---- # define('IN_PHPBB', true); # # ------ [ AFTER, ADD ] ---- # define('FETCH_ONLINE', TRUE); # # ------ [ FIND ] ---- # 'MESSAGE' => $message, 'SIGNATURE' => $user_sig, 'EDITED_MESSAGE' => $l_edited_by, # # ------ [ AFTER, ADD ] ---- # 'ONLINE_STATUS0' => $online_offline[(isset($online_status[$poster_id]) || $poster_id == -1) ? $online_status[$poster_id] : 0][0], 'ONLINE_STATUS1' => $online_offline[(isset($online_status[$poster_id]) || $poster_id == -1) ? $online_status[$poster_id] : 0][1], 'ONLINE_STATUS2' => $online_offline[(isset($online_status[$poster_id]) || $poster_id == -1) ? $online_status[$poster_id] : 0][2], # # ------ [ OPEN ] ---- # templates/subsilver/viewtopic_body.tpl # # ------ [ FIND ] ---- # {postrow.POSTER_NAME}
{postrow.POSTER_RANK}
{postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

{postrow.POSTER_JOINED}
{postrow.POSTER_POSTS}
{postrow.POSTER_FROM}

# # ------ [ REPLACE WITH ] ---- # {postrow.POSTER_NAME}
{postrow.POSTER_RANK}
{postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}

{postrow.POSTER_JOINED}
{postrow.POSTER_POSTS}
{postrow.POSTER_FROM}
{postrow.ONLINE_STATUS1}

# # ------ [ OPEN ] ---- # includes/usercp_viewprofile.php # # ------ [ FIND ] ---- # define('IN_PHPBB', true); # # ------ [ AFTER, ADD ] ---- # define('FETCH_ONLINE', TRUE); # # ------ [ FIND ] ---- # 'L_OCCUPATION' => $lang['Occupation'], 'L_INTERESTS' => $lang['Interests'], # # ------ [ AFTER, ADD ] ---- # 'ONLINE_STATUS0' => $online_offline[(isset($online_status[$profiledata['user_id']]) || $poster_id == -1) ? $online_status[$profiledata['user_id']] : 0][0], 'ONLINE_STATUS1' => $online_offline[(isset($online_status[$profiledata['user_id']]) || $poster_id == -1) ? $online_status[$profiledata['user_id']] : 0][1], 'ONLINE_STATUS2' => $online_offline[(isset($online_status[$profiledata['user_id']]) || $poster_id == -1) ? $online_status[$profiledata['user_id']] : 0][2], # # ------ [ OPEN ] ---- # memberlist.php # # ------ [ FIND ] ---- # define('IN_PHPBB', true); # # ------ [ AFTER, ADD ] ---- # define('FETCH_ONLINE', TRUE); # # ------ [ FIND ] ---- # 'YIM_IMG' => $yim_img, 'YIM' => $yim, # # ------ [ AFTER, ADD ] ---- # 'ONLINE_STATUS0' => $online_offline[(isset($online_status[$user_id]) || $poster_id == -1) ? $online_status[$user_id] : 0][0], 'ONLINE_STATUS1' => $online_offline[(isset($online_status[$user_id]) || $poster_id == -1) ? $online_status[$user_id] : 0][1], 'ONLINE_STATUS2' => $online_offline[(isset($online_status[$user_id]) || $poster_id == -1) ? $online_status[$user_id] : 0][2], # # ------ [ OPEN ] ---- # templates/subsilver/memberlist_body.tpl # # ------ [ FIND ] ---- # {memberrow.USERNAME} # # ------ [ REPLACE WITH ] ---- # {memberrow.USERNAME}{memberrow.ONLINE_STATUS2} # # ------ [ OPEN ] ---- # templates/subsilver/profile_view_body.tpl # # ------ [ FIND ] ---- # {L_INTERESTS}: {INTERESTS} # # ------ [ AFTER, ADD ] ---- # {ONLINE_STATUS1} # # ------ [ OPEN ] ---- # templates/SubSilver/Subsilver.cfg # # ------ [ FIND ] ---- # $board_config['vote_graphic_length'] = 205; $board_config['privmsg_graphic_length'] = 175; # # ------ [ AFTER, ADD ] ---- # //Online Status extension - escape all quotes and use braces around variables! $online_offline[0][0] = '{$lang["Offline"]}'; $online_offline[1][0] = '{$lang["Online"]}'; $online_offline[2][0] = '{$lang["Hidden"]}'; $online_offline[3][0] = ''; $online_offline[0][1] = '\"{$lang["Offline"]}\"'; $online_offline[1][1] = '\"{$lang["Online"]}\"'; $online_offline[2][1] = '\"{$lang["Hidden"]}\"'; $online_offline[3][1] = ''; $online_offline[0][2] = '\"{$lang["Offline"]}\"'; $online_offline[1][2] = '\"{$lang["Online"]}\"'; $online_offline[2][2] = '\"{$lang["Hidden"]}\"'; # #-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ # # EoM