У меня этот мод. Таблица с сессиями в среднем заполнена на 2000-2500 записей. На форуме в среднем постоянно сидит 20 человек, в максимуме до 40 онлайн.

а мне оч.хотелось бы устроить вывод таким образом:хх зарегистрированных пользователей посетили форум за последние 24 часа: _перечисление_пользователей_
помогите плз кто знает как доработать?Сегодня наш форум поcетило пользователей: хх :: зарегистрированных: 10, скрытых: 0 и гостей: 56 , из них 23 в течение последнего часа.
Зарегистрированные пользователи: _перечисление_пользователей_
Итак, 2 вопроса:Наши пользователи оставили сообщений: (кол-во)
Всего зарегистрированных пользователей: (кол-во)
Последний зарегистрированный пользователь: (ник)
--------------------------------------------------------------------
Сегодня наш форум поcетило пользователей: xx :: зарегистрированных: 10, скрытых: 0 и гостей: 56 , из них 23 в течение последнего часа.
Зарегистрированные пользователи: _список_пользователей_
--------------------------------------------------------------------
Сейчас посетителей на форуме: xx, из них зарегистрированных: 0, скрытых: 0 и гостей: 3 [ Администратор ] [ Модератор ]
Больше всего посетителей одновременно (xx) здесь было Пн Мая 16, 2005 11:25 am.
Зарегистрированные пользователи: _список_пользователей_
... а остальные моднуть по инстркции.. Что из этого выйдет? все будет ок или завернется каша?## memberlist.php
## includes/usercp_viewprofile.php
## templates/subSilver/member_body.tpl
## templates/subSilver/profile_view_body.tpl
Добавлено спустя 29 минут 17 секунд:## Files To Edit: 14
## index.php
## memberlist.php
## search.php
## admin/admin_board.php
## includes/functions.php
## includes/page_header.php
## includes/sessions.php
## includes/usercp_viewprofile.php
## language/lang_english/lang_admin.php
## language/lang_english/lang_main.php
## templates/subSilver/index_body.tpl
## templates/subSilver/member_body.tpl
## templates/subSilver/profile_view_body.tpl
## templates/subSilver/admin/board_config_body.tpl
## MOD Version: 1.2.8
## MOD Compatibility: 2.0.5->2.0.6
Код: Выделить всё
if ( $user_id != ANONYMOUS )
{// ( $userdata['user_session_time'] > $expiry_time && $auto_create ) ? $userdata['user_lastvisit'] : (
$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time;
if (!$admin)
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit
WHERE user_id = $user_id";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);
}
}
Код: Выделить всё
// if ( $user_id != ANONYMOUS )
// {
$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time;
if (!$admin)
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit, user_lastlogon = " . time() . ", user_totallogon=user_totallogon+1
WHERE user_id = $user_id";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);
}
}
$userdata['user_lastvisit'] = $last_visit;
//
// Regenerate the auto-login key
//
if ($enable_autologin)
{
list($sec, $usec) = explode(' ', microtime());
mt_srand(hexdec(substr($session_id, 0, 8)) + (float) $sec + ((float) $usec * 1000000));
$auto_login_key = uniqid(mt_rand(), true);
if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '')
{
$sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "
SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time
WHERE key_id = '" . md5($sessiondata['autologinid']) . "'";
}
else
{
$sql = 'INSERT INTO ' . SESSIONS_KEYS_TABLE . "(key_id, user_id, last_ip, last_login)
VALUES ('" . md5($auto_login_key) . "', $user_id, '$user_ip', $current_time)";
}
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating session key', '', __LINE__, __FILE__, $sql);
}
$sessiondata['autologinid'] = $auto_login_key;
unset($auto_login_key);
}
else
{
$sessiondata['autologinid'] = '';
}
// $sessiondata['autologinid'] = (!$admin) ? (( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '') : $sessiondata['autologinid'];
$sessiondata['userid'] = $user_id;
// }
Код: Выделить всё
#
#-----[ FIND ]---------------------------------------------
# Line 646
// Finish building query (for all combinations)
// and run it ...
//
$sql = "SELECT session_id
FROM " . SESSIONS_TABLE;
if ( $result = $db->sql_query($sql) )
{
$delete_search_ids = array();
while( $row = $db->sql_fetchrow($result) )
{
$delete_search_ids[] = "'" . $row['session_id'] . "'";
}
if ( count($delete_search_ids) )
{
$sql = "DELETE FROM " . SEARCH_TABLE . "
WHERE session_id NOT IN (" . implode(", ", $delete_search_ids) . ")";
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete old search id sessions', '', __LINE__, __FILE__, $sql);
}
}
#
#-----[ REPLACE WITH ]---------------------------------------------
#
// Delete old data from the search result table
//
$sql = 'DELETE FROM ' . SEARCH_TABLE . '
WHERE search_time < ' . ($current_time - (int) $board_config['session_length']);
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete old search id sessions', '', __LINE__, __FILE__, $sql);
#
#-----
Код: Выделить всё
// СТРОКА 731 !!!! Finish building query (for all combinations)
// and run it ...
//
// Start replacement - Last visit MOD
$expiry_time = $current_time - $board_config['session_length'];
$sql = "SELECT session_id
FROM " . SESSIONS_TABLE ." WHERE session_time>$expiry_time";
// Start replacement - Last visit MOD
if ( $result = $db->sql_query($sql) )
{
$delete_search_ids = array();
while( $row = $db->sql_fetchrow($result) )
{
$delete_search_ids[] = "'" . $row['session_id'] . "'";
}
if ( count($delete_search_ids) )
{
$sql = "DELETE FROM " . SEARCH_TABLE . "
WHERE session_id NOT IN (" . implode(", ", $delete_search_ids) . ")";
if ( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete old search id sessions', '', __LINE__, __FILE__, $sql);
}
}
}
//
// Store new result data СТРОКА 761 !!!!
Код: Выделить всё
// Start replacement - Last visit MOD
$expiry_time = $current_time - $board_config['session_length'];
$sql = "SELECT session_id
FROM " . SESSIONS_TABLE ." WHERE session_time>$expiry_time";
// Start replacement - Last visit MOD
Код: Выделить всё
Всего 81 человек побывало на форуме сегодня :: зарегистрированных: 0, скрытых: 1 и гостей: 80 , 11 из них за последний час
Зарегистрированные пользователи: Нет