非常感謝依夢兒的推薦,這個mod裝起來十分之好,讓論壇看起來更有人氣了一些。
然而我因為自己的一些想法,而修改了部份程式碼。
又私心地以為,這樣的修改應該更貼近大多數人的想法,所以就把我的修改內容給放上來,希望各位前輩不要見笑。
修改重點:
一、雖然一般狀況看不到隱形會員的名單是一件很正常的事,然而除了系統管理員之外,這個mod也只讓人看到非隱形會員的登入「人數」,就很詭異,難道隱形的會員就不算會員了嗎?要是某論壇的會員都很自閉耍隱形的話,那麼看到的「人數」不就少得可憐了?
於是,
1.修改「人數」,讓登入人數包括註冊會員與隱形會員。
2.在名單最後顯示「有幾位隱形會員」,免得讓有在仔細算的人,以為程式算錯了。而系統管理員可以看到完整名單,所以我就覺得不用讓系統管理員看到這項統計了。
二、我覺得對絕大部分的論壇而言,在首頁顯示出最近沒有上站的人數與名單是件很悲涼的事,特別是會員很多,卻上站頻率不高的情況下……。
所以,我想既然用不太到,就乾脆把相關的程式碼都刪了,還改在SQL上直接搜尋符合條件的users,希望這樣子除了看起來比較清爽一點之外,還能減少運算時間。
於是,完整的安裝方法如下:
代碼: 選擇全部
#
#-----[ OPEN ]------------------------------------------
#
/templates/subSilver/index_body.tpl
#
#-----[ FIND ]------------------------------------------
#
<td class="row1" align="center" valign="middle" rowspan="2"><img src="templates/subSilver/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
#
#-----[ REPLACE WITH ]----------------------------------
# 這一段跟原來的一樣
<td class="row1" align="center" valign="middle" rowspan="3"><img src="templates/subSilver/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
#
#-----[ FIND ]------------------------------------------
#
<td class="row1" align="left"><span class="gensmall">{TOTAL_USERS_ONLINE} [ {L_WHOSONLINE_ADMIN} ] [ {L_WHOSONLINE_MOD} ]<br />{RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>
#
#-----[ AFTER, ADD ]-----------------------------------
# 我在這裡有做增加
</tr>
<tr>
<td class="row1" align="left"><span class="gensmall">{USERS_OF_THE_DAY_LIST} {HIDDEN_USERS_OF_THE_DAY}</span></td>
#
#-----[ OPEN ]------------------------------------------
#
/language/lang_chinese_traditional_taiwan/lang_main.php
#
#-----[ FIND ]------------------------------------------
#
$lang['Registered_users'] = '目前線上註冊會員:';
#
#-----[ BEFORE, ADD ]-----------------------------------
#
$lang['Day_users'] = '有<b> %d </b>位會員於最近 %d 小時內登入瀏覽 ::';
$lang['Day_hidden_users'] = '[ %d 位隱形 ]';
#
#-----[ OPEN ]------------------------------------------
#
/includes/page_header.php
#
#-----[ FIND ]------------------------------------------
#
'LOGGED_IN_USER_LIST' => $online_userlist,
#
#-----[ AFTER, ADD ]-----------------------------------
# 在這裡也有增加
'USERS_OF_THE_DAY_LIST' => $day_userlist,
'HIDDEN_USERS_OF_THE_DAY' => $day_hidden_users,
#
#-----[ FIND ]------------------------------------------
#
//
// Obtain number of new private messages
// if user is logged in
//
#
#-----[ BEFORE, ADD ]-----------------------------------
# 這邊改動的幅度很大,有裝舊的,建議直接覆蓋
//
// Users of the day MOD
//
// ############ Edit below ############
// #
$users_list_delay = 24; // change here to the number of hours wanted for the list
// #
// ############ Edit above ############
$sql = "SELECT user_id, username, user_allow_viewonline, user_level, user_session_time
FROM ".USERS_TABLE."
WHERE user_id > 0
AND user_session_time >= " . ( time() - $users_list_delay * 3600 ) . "
ORDER BY IF(user_level=1,3,user_level) DESC, username ASC";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
}
$day_userlist = '';
$day_users = 0;
$day_hidden_users = 0;
while( $row = $db->sql_fetchrow($result) )
{
$style_color = '';
if ( $row['user_level'] == ADMIN )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
}
else if ( $row['user_level'] == MOD )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
}
if ( $row['user_allow_viewonline'] )
{
$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
}
else
{
$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
}
$day_users++;
if ( !$row['user_allow_viewonline'] ) $day_hidden_users++;
if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) $day_userlist .= ( $day_userlist != '' ) ? ', ' . $user_day_link : $user_day_link;
}
$db->sql_freeresult($result);
$day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Day_users'], $day_users, $users_list_delay) ) . ' ' . $day_userlist;
$day_hidden_users = ( $userdata['user_level'] == ADMIN ) ? '' : sprintf($lang['Day_hidden_users'], $day_hidden_users);
//
// End of MOD
//
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
截圖:
還請各位前輩多多指教。
