/info User

Fragen zu HTML, CSS, eigenen Erweiterungen etc.
Curuba
Beiträge: 48
Registriert: 13.03.2010, 13:20

/info User

Ungelesener Beitrag von Curuba » 26.09.2011, 20:08

Wäre es möglich ein skript zu entwickelt, welches bei eingabe eines Chatbefehls folgende Daten ausgibt:

USERNAME (online/offline)
Letzer Login: XXXXX / Befindet sich in Raum: XXXXX
Onlinezeit: XXXXXXXX
e-Mail: XXXXXXXXX
Homepage: XXXXXXX
Verwarnungen: X <--- evtl. mit dem Verwarnungsscript gekoppelt

Benutzeravatar
hamigra
Beiträge: 567
Registriert: 31.08.2006, 16:02
Wohnort: Werdau
Kontaktdaten:

Re: /info User

Ungelesener Beitrag von hamigra » 26.09.2011, 20:13

Bitte auch noch die Öffnungszeiten vom Fleischer meines Vertrauens mit ausgeben lassen.
Deutsche Sprache ist Freeware, aber nicht OpenSource! Du darfst sie benutzen, aber nicht verändern.

Benutzeravatar
Linus
Moderator
Beiträge: 1124
Registriert: 14.02.2005, 20:31
Wohnort: NRW
Kontaktdaten:

Re: /info User

Ungelesener Beitrag von Linus » 26.09.2011, 21:47

Hamigra, es wäre nett, wenn du solche Kommentare reduzieren könntest ;)

@Curuba: Wenn du die wkAPI nutzt (bzw. nutzen kannst), sollte das kein großes Problem sein. Wenn du die nutzen kannst (bitte schau dazu mal ins Forum zur wkAPI), werd ich die Tage mal schauen, ob ich das noch hinbekomm ;)
Kein Support per PN!

Benutzeravatar
hamigra
Beiträge: 567
Registriert: 31.08.2006, 16:02
Wohnort: Werdau
Kontaktdaten:

Re: /info User

Ungelesener Beitrag von hamigra » 26.09.2011, 22:57

Sicher kann ich das, aber zerpflücken wir mal das Gewünschte.
1. Mit der Eingabe /w sieht man wer online ist und in welchen Raum
2. Der letzte Login geht bestenfalls den Hauptadmin etwas an
3. Die Onlinezeit sieht man bei einem Blick in die Topliste. In etlichen Chats ist diese aber sogar deaktiviert, weil User mit Profil oder diversen Timeoutkillern nur eingeloggt sind um ihre Onlinezeit zu erhöhen obwohl sie gar nicht anwesen sind
4. Die User haben die Möglichkeit im Profil ihre E-Mail und ihre HP anzeigen zu lassen oder auch nicht. Mit diesem Script würde der erkennbare Wille der User ignoriert und umgangen
5. Verwarnungen - wem es Spaß macht .....

Es würden also mit dem Script chatinterne Möglichkeiten bestimmte Sachen anzeigen zu lassen oder auch nicht umgangen.
Und was wird wieder mal die nächste Frage sein? 'Ich möchte gerne den Chatverlauf nachlesen können auch wenn ich nicht im Chat war, wenn möglich auch das was geflüstert wurde'.
Deutsche Sprache ist Freeware, aber nicht OpenSource! Du darfst sie benutzen, aber nicht verändern.

Benutzeravatar
Linus
Moderator
Beiträge: 1124
Registriert: 14.02.2005, 20:31
Wohnort: NRW
Kontaktdaten:

Re: /info User

Ungelesener Beitrag von Linus » 27.09.2011, 17:52

So wie ich diesen Wunsch interpretiere, soll das ein Admin-Befehl sein (was sollen normale User auch mit Infos wie Verwarnungen (die ich so nicht reinbekomm)), dessen Ausgabe nur der ausführende zu Gesicht bekommt, alle anderen User sehen gar nichts. Zumindest würde ich es so umsetzen ;) Und wieso soll man nicht einfach auch mal mehrere Funktionen übersichtlich zusammenfassen? So ein Riesenaufwand ist das nun nicht (2 API-Funktionen)...

@Curuba: Wäre dir das so recht oder hab ich dich total missverstanden?
Kein Support per PN!

Curuba
Beiträge: 48
Registriert: 13.03.2010, 13:20

Re: /info User

Ungelesener Beitrag von Curuba » 29.09.2011, 18:50

ne is schon richtig verstanden so =)

Benutzeravatar
Linus
Moderator
Beiträge: 1124
Registriert: 14.02.2005, 20:31
Wohnort: NRW
Kontaktdaten:

Re: /info User

Ungelesener Beitrag von Linus » 01.10.2011, 20:00

Sehr schön! Das Script ist dann fertig ;)

Bitte beachte, dass du die neuste API-Version (ebenfalls von heute, welch ein Zufall :P) brauchst! Die bekommst du auf http://wkapi.wkprojects.org ;) Außerdem wird die Grundscriptsammlung benötigt.

Folgendes Script muss nun in eine .php-Datei auf deinem Webspace:
Script:Zeigen

Code: Alles auswählen

<?
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Datum in der Vergangenheit
require("wkapi.php");
$chat = new Webkicks("CID",2,"NICK","PASSWORT");
$teamarray = $chat->getTeam(); // Team-Liste auslesen
$chatteam = array_merge($teamarray[0],$teamarray[1]); // Hauptadmin und Admins zusammenfassen, Mods dürfen nicht!

//Daten aus Referer holen
preg_match_all("%http://server([0-4])\.webkicks\.de/([a-zA-Z0-9]{2,10})/(guest_stream|chatstream|stream)/([0-9A-Za-z_]{2,20})/%",$_SERVER['HTTP_REFERER'],$chatdata);
$server = $chatdata[1][0];
$cid = $chatdata[2][0];
$gast = ($chatdata[3][0] == "guest_stream")?true:false;
$mynick = $chatdata[4][0];

//Gültigkeit der Daten überprüfen
if ($server == "" || $cid == ""){ //Kommt die Anfrage wirklich aus dem Chat?
    die(); // Wenn nein, Script abbrechen
}elseif (strtolower($mynick) != strtolower(preg_replace('/[^a-zA-Z0-9_]/','',$_GET['me']))){ //Ist der User, der dieses Script geöffnet hat, der, der den Befehl ausgeführt hat?
    die('t=document.getElementsByTagName("table"); t[t.length-1].style.display="none";'); // Wenn nein, Zeile ausblenden
}elseif (!in_array($mynick, array_map("strtolower",$chatteam))){ // Ist der User, der dieses Script aufruft, im Team?
    die('document.write("Dieser Befehl ist nur für das Team gedacht!");'); // Wenn nein, User darauf hinweisen
}

//Die Anfrage ist anscheinend gültig, also weiter gehts!
$user = preg_replace('/[^a-zA-Z0-9_]/','',$_GET['user']); // Ungültige Zeichen aus Usernamen entfernen, um JS-Injections vorzubeugen!!
$users_registered = $chat->getAllUsers(); // Alle User einlesen
$toplist = $chat->getToplist(); // Topliste einlesen
if (!in_array(strtolower($user),array_map("strtolower",$users_registered))){
    $ausgabe=$user.' ist nicht registriert!';
}else{
    $is_online = false;
    $channel = false;
    $users_online = $chat->getExtendedOnlinelist();
    foreach ($users_online AS $dataset){
        if (strtolower($dataset['name']) == strtolower($user)){
            $is_online = true;
            $channel = ($dataset['channel']=="main")?"Hauptchat":$dataset['channel'];
            break;
        }
    }
    $details=$chat->getDetails($user);
    $ausgabe = '<table><tr><td>Username</td><td>'.$details['name'].'</td></tr><tr><td>Status</td><td>'.(($is_online)?'<span style="color:#00AA00;">online</span>':'<span style="color:#AA0000;">offline</span>').'</td></tr><tr><td>'.(($is_online)?"Raum":"Zuletzt online").'</td><td>'.(($is_online)?$channel:$details['lastlogin']).'</td></tr><tr><td>Chatzeit</td><td>'.$toplist[$user].'</td></tr><tr><td>eMail-Adresse</td><td>'.$details['mail'].'</td></tr><tr><td>Homepage</td><td>'.$details['hp'].'</td></tr></table>';
}
echo 'if (myNick.toLowerCase() == "'.preg_replace('/[^a-zA-Z0-9_]/','',$_GET['me']).'".toLowerCase()){document.write(\''.$ausgabe.'\');}else{t=document.getElementsByTagName("table"); t[t.length-1].style.display="none";}';
?>
Anzupassen ist der Pfad zur API-Datei (Zeile 3) sowie die API-Daten (Zeile 4). Außerdem wird folgender Chat-Befehl gebraucht:

Code: Alles auswählen

<script src="http://DEINE-SEITE.TLD/PFAD/ZUR/info.php?user=%text%&me=%myname%"></script>
Diesen Befehl gibst du nur für Admins frei, da normale User vom Script her schon ausgeschlossen sind ;)

PS: @Alle "alten Hasen": Stand die Chat-Zeit nicht auch mal in der Detailansicht im Admin-Menü? o.O
Kein Support per PN!

Benutzeravatar
bine_1
Beiträge: 197
Registriert: 26.05.2011, 20:30

Re: /info User

Ungelesener Beitrag von bine_1 » 12.10.2011, 18:52

Hey.

Man kann im Admin-Menü sehen, wer sich wann zuletzt eingeloggt hat :wink:
Uhrzeit steht auch dort^^

Bild ;-)

Für alle Administratoren ist es ein Vorteil, lesen zu können - nicht böse gemeint. ;-)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 39 Gäste