Seite 1 von 1

Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 21.04.2011, 01:32
von Curuba
Hallo.
Ich benutze das Nickänderungsscript und es funktioniert auch alles perfekt.
Nur hab ich die frage ob es auch möglich ist dass der geänderte Name auch in der Raumliste auf der Startseite erscheinen kann? denn ich habe ne eigene startseite erstellt mit ner Raumliste als Iframe und möchte gerne dass auch dort der geänderte Name erscheint ist das möglich?

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 21.04.2011, 10:43
von 1. FC Keller
Wie hast du das Nickänderungsscript eingestellt? Kann jeder selbst seinen Nick ändern oder stellst du die geänderten Nicks fest im Script ein?

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 21.04.2011, 14:14
von Curuba
habs per script eingestellt, dass ich die namen eintragen muss

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 21.04.2011, 15:03
von 1. FC Keller
Das Nickänderungsscript selbst läuft per Javascript und wird in der Ankündigung eingebunden. Deshalb kann es auch nur von dort aus auf die Onlineliste zugreifen... Wenn die Onlineliste außerhalb des Chats eingebunden wird gibt es keinen Stream, keine Ankündigung und damit auch kein Nickänderungsscript, das die Namen ersetzen kann.

Es ist allerdings möglich per PHP die Onlineliste einzulesen und nach den eigenen Wünschen zu verändern... einige Scrips dazu sind im Thread "Eigene Loginseite" zu finden... evtl. auch schon eins mit Nickänderung... so genau habe ich da eben nicht nachgesehen... ich habe hier eins von der letzten Seite genommen da es die neue XML-API von Webkicks verwendet und damit auch den Rang, das Profil, den Raum in dem man sich aufhält etc. mit abfragen kann (im Gegensatz zu den alten Lösungen die direkt die Onlineliste, die man auch im Chat sieht auslesen)

Code: Alles auswählen

<?php
  $server=4;
  $cid="wktools";

  $nickAenderer=array(
    'deinNick'=>'deinNeuerNick',
    'andererNick'=>'andererNeuerNick'
  );

  $file=file("http://server$server.webkicks.de/$cid/api/get_onlinelist");
  $file=implode("", $file);

   preg_match_all("/<onlineuser>\n\s+<name>(\w+)<\/name>\n\s+<channel>(\w+)<\/channel>\n\s+<profil>([01])<\/profil>\n\s+<rang>(\w+)<\/rang>\n\s+<away>([01])<\/away>\n\s+<awayreason>([^<]*)<\/awayreason>\n\s+<\/onlineuser>/", $file, $m);
   

  $userOnline=count($m[1]);
 
  echo "Es sind momentan $userOnline Chatter online:<br>\n";
  foreach($m[1] as $i => $name){
    $raum = $m[2][$i];
    $profil = $m[3][$i];
    $rang = $m[4][$i];
    $away = $m[5][$i];
    $awayreason = htmlentities($m[6][$i]);
    if($profil==1)$profil="<a href='http://server$server.webkicks.de/$cid/pv/$name/open' onclick='window.open(this.href,"_blank","width=510,height=600");return false;'>(P)</a>";
    else $profil="";

    if($rang=="admin"){
      $color="#ff0000";
      $rangbild="<img src='http://deineDomain.de/admin.gif'>";
    }elseif($rang=="mod"){
      $color="#0000ff";
      $rangbild="<img src='http://deineDomain.de/mod.gif'>";
    }else{
      $color="#000000";
      $rangbild="";
    }
    
    if($away==1)$away=" style='font-style:italic;' title='$awayreason'";
    else $away="";

    if(isset($nickAenderer[$name]))$name=$nickAenderer[$name];

    echo "<font color='$color'$away>$name</font> $profil $rangbild<br>\n";
  }
?>
Angepasst werden müssen Server, Chatname, das Array der zu ändernden Nicks ('deinNick'=>'deinNeuerNick', etc.) -> hier muss auf groß/kleinschreibung geachtet werden.. HTML ist im ersetzungs-Name auch möglich.
Außerdem enthält das Script gleich noch Grafiken und Farben für Admins und Mods. Bei den Grafiken muss die URL angepasst werden... wenn du irgendwas davon nicht brauchst könnte man das natürlich auch noch entfernen.

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 21.04.2011, 15:22
von Curuba
also wenn ich das so hochlade bekomme ich nur die fehlermeldung:
Parse error: syntax error, unexpected T_ARRAY, expecting T_STRING or T_VARIABLE or '$' in /home/www/cwcity/hosting/c/u/curuba/htdocs/UL.php on line 5

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 21.04.2011, 15:33
von 1. FC Keller
huch... da hab ich mal wieder JS mit PHP verwechselt.. bei JS verwendet man "new Array();".. in PHP ist es nur "array();". Habe den Code eben nochmal editiert. Jetzt sollte es passen.

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 21.04.2011, 15:49
von Curuba
mhm ok der fehler is beseitigt...
nun erscheint allerdings der nächste
Warning: file() [function.file]: URL file-access is disabled in the server configuration in /home/www/cwcity/hosting/c/u/curuba/htdocs/phpmybackup/ULN.php on line 12

Warning: file(http://server4.webkicks.de/curuba/api/get_onlinelist) [function.file]: failed to open stream: no suitable wrapper could be found in /home/www/cwcity/hosting/c/u/curuba/htdocs/phpmybackup/ULN.php on line 12

Warning: implode() [function.implode]: Invalid arguments passed in /home/www/cwcity/hosting/c/u/curuba/htdocs/phpmybackup/ULN.php on line 13


kenn mich auch bei php jetz nich wirklich aus... :(

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 21.04.2011, 16:33
von 1. FC Keller
oh... das ist ein schlechtes Zeichen... dein server ist so eingestellt, dass man keine Dateien von fremden Servern abfragen kann... davon unbeeinflusst ist allerdings die Funktion fsockopen... daher könnten wir es noch damit versuchen.

Code: Alles auswählen

<?php
  $server=4;
  $cid="wktools";

  $nickAenderer=array(
    'deinNick'=>'deinNeuerNick',
    'andererNick'=>'andererNeuerNick'
  );

  $file="";
  $fp = fsockopen("server$server.webkicks.de", 80, $errno, $errstr, 30);
  if(!$fp){
    echo "$errstr ($errno)<br />\n";
  }else{
    $out = "GET /$cid/api/get_onlinelist HTTP/1.1\r\n";
    $out .= "Host: server$server.webkicks.de\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
      $file.=fgets($fp, 128);
    }
    fclose($fp);
  }

   preg_match_all("/<onlineuser>\n\s+<name>(\w+)<\/name>\n\s+<channel>(\w+)<\/channel>\n\s+<profil>([01])<\/profil>\n\s+<rang>(\w+)<\/rang>\n\s+<away>([01])<\/away>\n\s+<awayreason>([^<]*)<\/awayreason>\n\s+<\/onlineuser>/", $file, $m);
   

  $userOnline=count($m[1]);

  echo "Es sind momentan $userOnline Chatter online:<br>\n";
  foreach($m[1] as $i => $name){
    $raum = $m[2][$i];
    $profil = $m[3][$i];
    $rang = $m[4][$i];
    $away = $m[5][$i];
    $awayreason = htmlentities($m[6][$i]);
    if($profil==1)$profil="<a href='http://server$server.webkicks.de/$cid/pv/$name/open' onclick='window.open(this.href,"_blank","width=510,height=600");return false;'>(P)</a>";
    else $profil="";

    if($rang=="admin"){
      $color="#ff0000";
      $rangbild="<img src='http://deineDomain.de/admin.gif'>";
    }elseif($rang=="mod"){
      $color="#0000ff";
      $rangbild="<img src='http://deineDomain.de/mod.gif'>";
    }else{
      $color="#000000";
      $rangbild="";
    }
   
    if($away==1)$away=" style='font-style:italic;' title='$awayreason'";
    else $away="";

    if(isset($nickAenderer[$name]))$name=$nickAenderer[$name];

    echo "<font color='$color'$away>$name</font> $profil $rangbild<br>\n";
  }
?>

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 21.04.2011, 16:48
von Curuba
danke für die bemühungen aber scheinbar is mein webspace dafür nich gemacht...
werd mal gucken ob ichs bei nem freund mal hochladen kann mal sehen obs dann klappt

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 06.05.2011, 18:56
von Curuba
so habs jetz hochgeladen bekommen...
ein paar "kleinigkeiten" noch...

1. kann man noch irgendwie einfügen,dass die liste sich automatisch aktualisiert?

2. Kann man die schriftfarbe bei "es sind momentan..." ändern? habs mit <font... probiert geht aber nich... dann funktioniert garnichts mehr.

3. kann man eventuell ein hintergrundbild einfügen?

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 15.06.2011, 13:34
von Curuba
Aktualisierung hab ich hinbekommen...
nun brauch ich nur noch entweder andere schriftfarben oder nen anderen hintergrund...
kann da jemand helfen?

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 15.06.2011, 14:21
von 1. FC Keller
font sollte schon funktionieren... du darfst nur für das color="farbe" keine doppelten anführungszeichen verwenden, sondern einfache:

Code: Alles auswählen

echo "<font color='red'>Es sind momentan $userOnline Chatter online:</font><br>\n";

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 12.08.2011, 17:44
von Curuba
Hallo!
Habe ein Problem und zwar hatte mein server einen großen Datenverlust und ich habe die Datei für die Onlineliste verloren. Kann sie auch nichtmehr herstellen.

Und wenn ich jetz folgenden code benutze:

Code: Alles auswählen

<?php
  $server=4;
  $cid="curuba";

  $nickAenderer=array(
    'deinNick'=>'deinNeuerNick',
    'andererNick'=>'andererNeuerNick'
  );

   $file=file("http://server$server.webkicks.de/$cid/api/get_onlinelist");
  $file=implode("", $file);

   preg_match_all("/<onlineuser>\n\s+<name>(\w+)<\/name>\n\s+<channel>(\w+)<\/channel>\n\s+<profil>([01])<\/profil>\n\s+<rang>(\w+)<\/rang>\n\s+<away>([01])<\/away>\n\s+<awayreason>([^<]*)<\/awayreason>\n\s+<\/onlineuser>/", $file, $m);

   preg_match_all("/<onlineuser>\n\s+<name>(\w+)<\/name>\n\s+<channel>(\w+)<\/channel>\n\s+<profil>([01])<\/profil>\n\s+<rang>(\w+)<\/rang>\n\s+<away>([01])<\/away>\n\s+<awayreason>([^<]*)<\/awayreason>\n\s+<\/onlineuser>/", $file, $m);
   

  $userOnline=count($m[1]);

  echo "Es sind momentan $userOnline Chatter online:<br>\n";
  foreach($m[1] as $i => $name){
    $raum = $m[2][$i];
    $profil = $m[3][$i];
    $rang = $m[4][$i];
    $away = $m[5][$i];
    $awayreason = htmlentities($m[6][$i]);
    if($profil==1)$profil="<a href='http://server$server.webkicks.de/$cid/pv/$name/open' onclick='window.open(this.href,"_blank","width=510,height=600");return false;'>(P)</a>";
    else $profil="";

    if($rang=="admin"){
      $color="#ff0000";
      $rangbild="<img src='http://deineDomain.de/admin.gif'>";
    }elseif($rang=="mod"){
      $color="#0000ff";
      $rangbild="<img src='http://deineDomain.de/mod.gif'>";
    }else{
      $color="#000000";
      $rangbild="";
    }
   
    if($away==1)$away=" style='font-style:italic;' title='$awayreason'";
    else $away="";

    if(isset($nickAenderer[$name]))$name=$nickAenderer[$name];

    echo "<font color='$color'$away>$name</font> $profil $rangbild<br>\n";
  }
?>
dann erscheint nur folgende seite: http://smalltalk-24.com/chat/OL.php

Re: Nickänderungsscript - Name auch bei Raumliste anzeigen?

Verfasst: 12.08.2011, 18:07
von Linus
Dann ist PHP deaktiviert.