Bueno he estado probando éste asunto, y creo que más o menos está aunque bueno, despuñes de hacer las modificaciones que te propongo siempre es bueno que hagas unas cuantas pruebas.
Primero debes de abrir el archivo
includes/page_header.php Y localizar este trozo (línea +/- 137)
Código PHP:
if ( $row['user_allow_viewonline'] )
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
$logged_visible_online++;
}
else
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
$logged_hidden_online++;
}
if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
{
$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
}
Y debes de sustituirlo por este otro:
Código PHP:
if ( $row['user_allow_viewonline'] )
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
if ( $row['user_level'] == MOD )
{
if (($userdata['user_id'] == $row['user_id'] ) || $userdata['user_level'] == ADMIN )
$logged_visible_online++;
}
else
{
$logged_visibleyy_online++;
}
}
else
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
if ( $row['user_level'] == MOD )
{
if (($userdata['user_id'] == $row['user_id'] ) || $userdata['user_level'] == ADMIN )
$logged_hidden_online++;
}
else
{
$logged_hidden_online++;
}
}
if ( ( $row['user_allow_viewonline'] && $row['user_level']!=MOD ) || $userdata['user_level'] == ADMIN || $userdata['user_id'] == $row['user_id'])
{
$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
}
Con esto en teoría sólo se verá al moderador si eres tu mismo o si es el admin, que creo si que lo debería de ver, por eso lo contemplé así.
Bien y ahora de lo que se trata es de modificar el archivo viewonline.php para que haga algo parecido:
Localizamos en la línea (+/- 124) el siguiente código:
Código PHP:
if ( !$row['user_allow_viewonline'] )
{
$view_online = ( $userdata['user_level'] == ADMIN ) ? true : false;
$hidden_users++;
$username = '<i>' . $username . '</i>';
}
Y lo cambiamos por este otro:
Código PHP:
if ( !$row['user_allow_viewonline'] || ( $row['user_level'] == MOD ) )
{
$view_online = ( $userdata['user_level'] == ADMIN || ( $row['user_id'] == $userdata['user_id'] ) ) ? true : false;
if ( $row['user_level'] == MOD )
{
if (($userdata['user_id'] == $row['user_id'] ) || $userdata['user_level'] == ADMIN )
$hidden_users++;
}
else
{
$hidden_users++;
}
$username = '<i>' . $username . '</i>';
}
Hace lo mismo que para el índice.
Haz unas cuantas pruebas y ya me dices si funciona.
Salu2 ;)