史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   論壇程式討論區 (http://forum.slime.com.tw/f79.html)
-   -   在後台控制面板內顯示誰在線上 (http://forum.slime.com.tw/thread151923.html)

貝斯特 2005-06-21 02:56 PM

在後台控制面板內顯示誰在線上
 
套件功能說明
這個修改將增加一個自定義區塊並顯示目前線上人員在論壇控制台中,並在會員名稱中顯示超連結指向該會員的個人資料。

經過此修改論壇並不會影響太多伺服器資源,而且僅是個相當簡單的改動。

安裝過程說明
安裝時間 : 約 2 分鐘
資料庫查詢 : 0 次
需修改檔案 : 1
/admincp/index.php
需修改模板 : 0
需新增模板 : 0
需新增短語 : 0

如果想要正確無誤的完成套件安裝,請務必詳細閱讀安裝說明文件。
※在套件安裝前,請不要忘記先做備份動作!

編輯檔案 admincp/index.php

===========================
搜尋 :
===========================

PHP代碼:
// *************************************
// Administrator Notes

print_form_header('index', 'notes');
print_table_header($vbphrase['administrator_notes'], 1);
print_description_row("<textarea name=\"notes\" style=\"width: 90%\" rows=\"25\">$bbuserinfo[notes]</textarea>", false, 1, '', 'center');
print_submit_row($vbphrase['save'], 0, 1);



===========================
在上面加上 :
===========================

PHP代碼:
// *************************************
// Whos Online Function
function fetch_online_status(&$user, $setstatusimage = false)
{
global $bbuserinfo, $permissions, $vboptions, $stylevar, $vbphrase;
static $buddylist, $datecut;

// get variables used by this function
if (!is_array($buddylist))
{
$datecut = TIMENOW - $vboptions['cookietimeout'];

if ($bbuserinfo['buddylist'] = trim($bbuserinfo['buddylist']))
{
$buddylist = preg_split('/\s+/', $bbuserinfo['buddylist'], -1, PREG_SPLIT_NO_EMPTY);
}
else
{
$buddylist = array();
}
}

// is the user on bbuser's buddylist?
if (in_array($user['userid'], $buddylist))
{
$user['buddymark'] = '+';
}
else
{
$user['buddymark'] = '';
}

// set the invisible mark to nothing by default
$user['invisiblemark'] = '';

$onlinestatus = 0;
// now decide if we can see the user or not
if ($user['lastactivity'] > $datecut AND $user['lastvisit'] != $user['lastactivity'])
{
if ($user['invisible'])
{
if (($permissions['genericpermissions'] & CANSEEHIDDEN) OR $user['userid'] == $bbuserinfo['userid'])
{
// user is online and invisible BUT bbuser can see them
$user['invisiblemark'] = '*';
$onlinestatus = 2;
}
}
else
{
// user is online and visible
$onlinestatus = 1;
}
}

if ($setstatusimage)
{
eval('$user[\'onlinestatus\'] = "' . fetch_template('postbit_onlinestatus') . '";');
}

return $onlinestatus;
}

// *************************************
// Show Whos Online

ECHO "<table cellpadding=\"4\" cellspacing=\"0\" border=\"0\" align=\"center\" width=\"90%\" class=\"tborder\">";
ECHO "<tr>";
ECHO "<td class=\"tcat\" align=\"center\" colspan=\"2\"><b>$vbphrase[whos_online]</b></td>";
ECHO "</tr>";
ECHO "<tr valign=\"top\">";
ECHO "<td class=\"alt1\">";

$activeusers = '';
$datecut = TIMENOW - $vboptions['cookietimeout'];
$numbervisible = 0;
$numberregistered = 0;
$numberguest = 0;

$forumusers = $DB_site->query("
SELECT
user.username, (user.options & $_USEROPTIONS[invisible]) AS invisible, user.usergroupid,
session.userid, session.inforum, session.lastactivity,
IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
FROM " . TABLE_PREFIX . "session AS session
LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)
WHERE session.lastactivity > $datecut
" . iif($vboptions['displayloggedin'] == 1, "ORDER BY username ASC") . "
");

// fakes the user being online for an initial page view of index.php
$bbuserinfo['joingroupid'] = iif($bbuserinfo['displaygroupid'], $bbuserinfo['displaygroupid'], $bbuserinfo['usergroupid']);
$userinfos = array
(
$bbuserinfo['userid'] => array
(
'userid' => $bbuserinfo['userid'],
'username' => $bbuserinfo['username'],
'invisible' => $bbuserinfo['invisible'],
'inforum' => 0,
'lastactivity' => TIMENOW,
'usergroupid' => $bbuserinfo['usergroupid'],
'displaygroupid' => $bbuserinfo['displaygroupid'],
)
);
$inforum = array();

while ($loggedin = $DB_site->fetch_array($forumusers))
{
$userid = $loggedin['userid'];
if (!$userid)
{ // Guest
$numberguest++;
$inforum["$loggedin[inforum]"]++;
}
else if (empty($userinfos["$userid"]) OR ($userinfos["$userid"]['lastactivity'] < $loggedin['lastactivity']))
{
$userinfos["$userid"] = $loggedin;
}
}

foreach($userinfos AS $userid => $loggedin)
{
$numberregistered++;
if ($userid != $bbuserinfo['userid'])
{
$inforum["$loggedin[inforum]"]++;
}
$loggedin['musername'] = fetch_musername($loggedin);

if (fetch_online_status($loggedin))
{
ECHO "<a href=\"user.php?do=edit&userid=$loggedin[userid]\">$loggedin[musername]</a>, ";
}

}
ECHO "</td></tr>";
ECHO "</table>";



===========================
套件安裝完成!
===========================


所有時間均為台北時間。現在的時間是 03:52 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1