anpera.net
https://anpera.homeip.net/phpbb3/

Onlineanzeige von Eliwood
https://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=4289
Seite 1 von 1

Autor:  The Core [ Mo 21 Jan, 2008 12:19 ]
Betreff des Beitrags:  Onlineanzeige von Eliwood

Hallo,
ich benutze die Online Anzeige von Eliwood.
Das Problem ist aber das Moderatoren als User angezeigt werden.
Ich habe folgende Gruppen:
- 0 : USER
- 1 : Moderator
- 2 : Super-Moderator
- 3 : Administrator

Wie muss ich den Code verändern damits gehts? Moderatoren und SuperModeratoren können in der gleichen Gruppe Angezeigt werden.

$this->bbcode_second_pass_code('', '/* Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood */
$onlinecount = 0; $users = 0; $mods = 0; $admins = 0;
$sql="SELECT name,superuser FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
$result = db_query($sql) or die(db_error($sql));
while ($row = db_fetch_assoc($result)){
switch($row['superuser']):
case 0:
case 1:
$text.="`^$row[name]`n";
$users++;
break;

case 2:
//case 3:
$text2.="`^$row[name]`n";
$mods++;
break;
//case 4:
//case 5:
case 3:
$text3.="`^$row[name]`n";
$admins++;
break;
endswitch;
$onlinecount++;
}
$ret.=appoencode("`@$users Spieler Online:`n");
$ret.=appoencode($text."`0");
if ($users==0) $ret.=appoencode("`iKeine Spieler Online`i`n");

$ret.=appoencode("`n`@$mods Moderatoren Online:`n");
$ret.=appoencode($text2."`0");
if ($mods==0) $ret.=appoencode("`iKeine Moderatoren Online`i`n");

$ret.=appoencode("`n`\$$admins Admins Online:`n");
$ret.=appoencode($text3."`0");
if ($admins==0) $ret.=appoencode("`iKeine Admins Online`i`n");

db_free_result($result);
$ret.=(getsetting("maxonline",10)>0?grafbar(getsetting("maxonline",10),(getsetting("maxonline",10)-$onlinecount),180):"");
return $ret;
}')

Autor:  MySql [ Mo 21 Jan, 2008 16:41 ]
Betreff des Beitrags:  Re: Onlineanzeige von Eliwood

PHP lernen... :!:

$this->bbcode_second_pass_code('', 'case 0:
case 1:')

Case 0 -> Normale Spieler!
Case 1 -> Moderatoren!

Case 0 und Case 1 teilen sich die gleiche Fläche. D.h. Spieler und Moderatoren werden zusammen ausgegeben und nicht getrennt!

Autor:  The Core [ Mo 21 Jan, 2008 17:21 ]
Betreff des Beitrags:  Re: Onlineanzeige von Eliwood

Wie denn jetzt? Ich lerne gerade PHP, addnav Links gehen schon :D
Kannst du nicht einfach den Code hinschreiben?

Autor:  MySql [ Mo 21 Jan, 2008 17:43 ]
Betreff des Beitrags:  Re: Onlineanzeige von Eliwood

$this->bbcode_second_pass_code('', '/* Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood */
$onlinecount = 0; $users = 0; $mods = 0; $sumods = 0; $admins = 0;
$sql="SELECT name,superuser FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
$result = db_query($sql) or die(db_error($sql));
while ($row = db_fetch_assoc($result)){
switch($row['superuser']):
case 0:
$text.="`^$row[name]`n";
$users++;
break;

case 1:
$text2.="`^$row[name]`n";
$mods++;
break;

case 2:
$text3.="`^$row[name]`n";
$mods++;
break;

case 3:
$text4.="`^$row[name]`n";
$admins++;
break;
endswitch;
$onlinecount++;
}
$ret.=appoencode("`@$users Spieler Online:`n");
$ret.=appoencode($text."`0");
if ($users==0) $ret.=appoencode("`iKeine Spieler Online`i`n");

$ret.=appoencode("`n`@$mods Moderatoren Online:`n");
$ret.=appoencode($text2."`0");
if ($mods==0) $ret.=appoencode("`iKeine Moderatoren Online`i`n");

$ret.=appoencode("`n`\$$sumods Super-Moderatoren Online:`n");
$ret.=appoencode($text3."`0");
if ($sumods==0) $ret.=appoencode("`iKeine Super-Moderatoren Online`i`n");

$ret.=appoencode("`n`\$$admins Admins Online:`n");
$ret.=appoencode($text4."`0");
if ($admins==0) $ret.=appoencode("`iKeine Admins Online`i`n");

db_free_result($result);
$ret.=(getsetting("maxonline",10)>0?grafbar(getsetting("maxonline",10),(getsetting("maxonline",10)-$onlinecount),180):"");
return $ret;
}')

Autor:  Drazaar [ Fr 25 Jan, 2008 00:23 ]
Betreff des Beitrags:  Re: Onlineanzeige von Eliwood

MySql hat geschrieben:
$this->bbcode_second_pass_code('', '/* Spieler; Moderatoren; Admin; Onlineanzeige by Eliwood */
$onlinecount = 0; $users = 0; $mods = 0; $sumods = 0; $admins = 0;
$sql="SELECT name,superuser FROM accounts WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC";
$result = db_query($sql) or die(db_error($sql));
while ($row = db_fetch_assoc($result)){
switch($row['superuser']):
case 0:
$text.="`^$row[name]`n";
$users++;
break;

case 1:
$text2.="`^$row[name]`n";
$mods++;
break;

case 2:
$text3.="`^$row[name]`n";
$mods++;
break;

case 3:
$text4.="`^$row[name]`n";
$admins++;
break;
endswitch;
$onlinecount++;
}
$ret.=appoencode("`@$users Spieler Online:`n");
$ret.=appoencode($text."`0");
if ($users==0) $ret.=appoencode("`iKeine Spieler Online`i`n");

$ret.=appoencode("`n`@$mods Moderatoren Online:`n");
$ret.=appoencode($text2."`0");
if ($mods==0) $ret.=appoencode("`iKeine Moderatoren Online`i`n");

$ret.=appoencode("`n`\$$sumods Super-Moderatoren Online:`n");
$ret.=appoencode($text3."`0");
if ($sumods==0) $ret.=appoencode("`iKeine Super-Moderatoren Online`i`n");

$ret.=appoencode("`n`\$$admins Admins Online:`n");
$ret.=appoencode($text4."`0");
if ($admins==0) $ret.=appoencode("`iKeine Admins Online`i`n");

db_free_result($result);
$ret.=(getsetting("maxonline",10)>0?grafbar(getsetting("maxonline",10),(getsetting("maxonline",10)-$onlinecount),180):"");
return $ret;
}')

Er wird dir aber bei der Ausgabe immer die selbe Anzahl an Moderatoren wie Supermoderatoren anzeigen, da du einmal vergessen hast $mods zu ändern:

$this->bbcode_second_pass_code('', 'case 2:
$text3.="`^$row[name]`n";
$mods++;
break;')
muss wohl
$this->bbcode_second_pass_code('', 'case 2:
$text3.="`^$row[name]`n";
$sumods++;
break;')
heißen.

MfG Draz

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/