(Bnet-) Ladder Script v2.1(c) by zuLu.TrunkZ (trunks123@gmx.de, icq 96289014) MySQL Functions by Jérôme Poulin (PHPMyTourney: phpmytourney.servegame.com). visit www.z-tribe.de and zuLu-tourney.de for weekly 1on1 tourneys. -------------- Rechtliches: -------------- Ich übernehme keine Haftung für durch dieses Script entstandene Schäden! Benutzung erfolgt auf eigene Gefahr! Alle Bilder sowie Warcraft 3 sind (c) Blizzard Entertainment (www.blizzard.com). ------------- Anforderungen: ------------- - möglichst aktuelle PHP Version - MySQL Datenbank - (html Kenntnisse zur weiteren Anpassung des Skripts) ------------- Changelog: ------------- (-) = Bugfix, (+) neues Feature, (_) Änderung v. 2.1c (09.06.2004) ----- (-) Bug, durch den manche 4on4 Teams bei längerer Benutzung des Scripts mehrmals angezeigt wurden, gefixt. (thx to RD-Bartron) Hinweis: Zum Updaten reicht es, die alte ladderadmin.php durch die neue zu ersetzen. Falls ihr bereits ein Team mehrmals dort stehen habt, müsst ihr zuerst den table "ladder_4v4" über phpmyadmin löschen. Solltet ihr euch damit nicht auskenennen, kommt ihr um die Löschung der betroffenen Spieler nicht rum. v. 2.1b (24.05.2004) ----- (-) Bug, durch den BNet Ränge bei langen Spielernamen mit mehreren Sonderzeichen nicht gespeichert wurden, gefixt. (thx to dSt.wc3|LordInquisitor) Hinweis: Zum Updaten reicht es, die alte ladderadmin.php durch die neue zu ersetzen. v. 2.1 (27.03.2004) ----- (-) Bug beim Updaten der 4v4 Ladder (die Statistiken wurden nicht aktualisiert) gefixt. (thx to AoD-Power) v. 2.0 (20.03.2004) ----- (+) Anzahl der Spieler/Teams die standardmäßig angezeigt werden, kann nun eingestellt werden (+) Alle Rassenpics sind nun standardmäßig integriert (+) "Zeige x Spieler" stimmt nun auch, wenn die letzten Spieler der Ladder angezeigt werden (+) Das Script basiert nun auf Templates, welche über mysql gespeichert werden und über den Adminpanel geändert werden können (+) Einzelne Template "Addons", die besonders für Seiten mit schmalerem Content Bereich interessant sind (+) Neuer "Template Assistent", der das Installieren und Anpassen der Templates (+ "Addons") vereinfacht (Adminpanel) (+) Das Battle.net Design kann nun als Template über das adminpanel oder mit Hilfe der sql Datei eingefügt werden (-) Das Script läuft nun auch auf Servern, die $register_globals ausgeschaltet haben (-) Bug, durch den nur bis zu 255 Wins/Losses angezeigt wurden, wurde gefixed (_) Die install.php wurde rausgenommen, dafür können die MySQL Daten nun über den adminpanel installiert werden ------------- Features: ------------- - Komplette Farben- und Schriftanpassung der Ladderausgabeseite - Unterstützung von allen 6 Ladders (solo, rt, ffa, 2v2at, 3v3at, 4v4at) - Einzeln Spieler für bestimmte Ladders deaktivieren/aktivieren - Löschen und Adden von Spielern - Passwortgeschütztes AdminPanel - Automatisches Aktualisieren der Ladder nach Tastendruck - Über Adminpanel anpassbare Templates - Template Assistent, der das Installieren der Templates (+ "Addons") vereinfacht - Einstellen des Bnet Designs über Template - Einfache Anpassung des Designs an die eigene Seite ------------- Todo: ------------- - ID-basierendes Accountmanagement - Last Updated Info - Fixen von (wahrscheinlich auftretenden ^^) Bugs ------------- Bekannte Bugs/Fehler: ------------- - Beim Adden eines Accounts kommt bei vielen Free Providern der Fehler, dass er das Portrait nicht finden kann, obwohl der Account existiert. Dies liegt daran, dass kostenlose Providern, das Einlesen anderer Dateien (in dem Fall der Bnet Ladder Seite) deaktiviert haben. Um trotzdem in den Genuss der Ladder zu kommen, musst du einfach einen Apache Server für deinen PC (zB xampp: www.apachefriends.org) herunterladen und dort das Skript installieren. Wichtig hierbei sind nur die MySQL Einstellungen, den Rest könnt ihr theorethisch so lassen. Nun könnt ihr die Ladder über euren Apache Server updaten und über euren kostenlosen Provider ausgeben. Noch besser als ein eigener Apache Server wäre natürlich ein 2ter, der euch gehört und die file() Funktion unterstützt. ------------- Dateibeschreibungen: ------------- Name | Beschreibung | muss upgeloaded werden? ----------------------------------------------------------------------------- config.inc.php | Konfigurationsdatei | Ja bnet.css | CSS Datei | Ja*** functions.inc.php | Entählt die Funktionen | Ja ladder.php | Beispieldatei** | Nein** ladderadmin.php | AdminPanel | Ja readme.txt | Readme Datei | Nein show_ladder.php | Ausgabe Datei | Ja database/... | MySQL Dateien | Ja* images/ | Ordner mit Portraits | Ja * = Entweder ihr installiert die sql Dateien (zuerst die tables, dann ein Template) zB über phpmyadmin, oder ihr installiert sie Hilfe des Adminpanels. (in dem Fall müssen die *.sql Dateien upgeloaded werden, siehe Installation Schritt 3) Was den "Extra" Ordner angeht: Da einige Seiten (dazu gehört die meines Clans) nicht genug Platz bzw Breite im Content-Bereich verfügbar haben, um die Ladder bei 2v2, 3v3, oder 4v4 anzeigen zu können, habe ich ein paar Erweiterungen hinzugefügt, die ihr verwenden könnt. Auch diese sql Dateien könnt ihr über phpmyadmin oder über adminpanel (Template Assistent) (müssen dann geupped sein) installieren. ** = Die ladder.php Datei ist nur eine Beispieldatei, bei der man sehen kann, wie man die show_ladder.php per PHP includen kann. Natürlich könnt ihr auch einfach die ladder.php beibehalten und den Header- und Footertext durch euren html bzw php code ersetzen. Sonst müsst ihr die ladder.php nicht uploaden. (siehe Installation Schritt 4) Außerdem ist die ladder.php seit v2.0 für das battle.net Design angepasst. *** = Muss nur upgeloaded werden, wenn ihr das Battle.net Design verwenden wollt. Die Datei kann zB so integriert werden: (muss im Header stehen, d.h. zwischen "" und "".) (siehe "Beispiel Configs" für weitere Hinweise zum Bnet Design.) ------------- Installation: ------------- (1) - Neuinstallation --------------------------- 1. Anpassen der config.inc.php (für weitere Hilfe, s. unten). 2. Hochladen der Dateien (siehe Dateibeschreibungen). 3. a) Ausführen der tables.sql (im "database" Ordner) und einer template Datei über phpmyadmin oder ähnliche Programme. b) MySQL Installation über Adminpanel (*.sql Dateien müssen dafür auf dem Server sein!). 4. a) Einbinden der show_ladder.php in eine andere Datei. z.B bei php Dateien die Zeile include("show_ladder.php"); an die jeweilige Stelle einsetzen. Siehe Beispieldatei ladder.php . b) Durch eine andere php Datei (zB index.php), die die Page mit der Variable "site" steuert, die show_ladder.php aufrufen. In dem Fall hieße die URL dann: http://www.eurepage.de/index.php?site=show_ladder.php . (nur für erfahrenere PHP Coder.) Anschließend nicht vergessen die $ladder_path in der config.inc.php anzupassen! 5. Viel Spaß :) (2) - Updateinstallation --------------------------- (Es wird davon ausgegangen, dass alle Schritte in der Neuinstallation bereits in einer älteren Version erledigt wurden!) 1. Anpassen der config.inc.php (für weitere Hilfe, s. unten). 2. Hochladen der Dateien (alte Dateien müssen überschrieben werden, siehe Dateibeschreibungen). 3. a) Ausführen der update.sql und einer der ***-template.sql Dateien über phpmyadmin oder ähnliche Programme. b) MySQL Installation über Adminpanel (*.sql Dateien müssen dafür auf dem Server sein!). 4. HF! :D Hinweis: die config.inc.php muss im selben Verzeichnis wie die Datei, die show_ladder.php aufruft, sein. Gleiches gilt für functions.inc.php, außer man hat die Variable $functions_file in config.inc.php angepasst. Bei Problemen könnt ihr mich gerne unter trunks123@gmx.de oder unter ICQ (meine UIN: 96289014) fragen! ------------- config.inc.php: ------------- Hier noch ein paar Hinweise zur Konfiguration: Mysql Einstellungen: Falls ihr die Daten nicht kennt, solltet ihr besser mal euren Provider fragen. Meistens stimmen diese aber mit den FTP Daten überein (die Datenbank entspricht auch oft dem Username). Design Einstellungen: Sollte eigentlich klar sein. Bei den Farben könnt ihr sowohl die Bezeichnung der jeweiligen Farbe (zb "orange"), als auch den HEX Code eingeben (in dem Fall dann ein "#" vornedran). Sonstige Einstellungen (Laddereinstellungen): Falls ihr bestimmte Laddern ausgeschalten haben wollt, könnt ihr dies durch Einsetzen einer 0 unter active_xxxx tun. Jedoch gilt dies nur für die Ausgabedatei, im Adminpanel werden diese weiterhin aktualisiert (wird sich hoffentlich mit der nächsten Version ändern). Die einzelnen Bezeichnungen (bei der Ladderauswahl der Ladderausgabedatei) könnt ihr unter den Variablen "$bez_xxxx" ändern. Die erste Ladder könnt ihr unter $startladder ändern, indem ihr dort die Nummer der jewiligen Ladder eingebt. Beispiel 1: Ihr habt nur RT, 2v2 und 3v3 aktiviert. Dann steht die 0 bei Startladder für RT, die 1 für 2v2, die 2 für 3v3. Beispiel 2: Ihr habt Solo, RT und FFA aktiviert. Gebt ihr nun 0 ein, wird die Sololadder zuerst angezeigt. Bei 1 die RT Ladder, und bei 2 die FFA Ladder. ------------- Beispiel-Configs ------------- 1. Bnet Design (Stndardeinstellung): --------------- **************************************** // Allgemein: $dsgn_bordercolor = "#000000"; // Rahmenfarbe der Ladder Tabelle (= Hintergrundfarbe der ersten Tabelle) $dsgn_titlebgcolor = "#FFFFFF"; // Hintergrundfarbe der Zeile mit den Überschriften auf der Ladderseite $dsgn_bgcolor = ""; // Hintergrundfarbe der Zeilen mit den Spielern/Teams $dsgn_bgcolor1 = "#271A13"; // Hintergrundfarbe 1 und 2 der Zeilen mit den Spielern/Teams (wird ignoriert, wenn $dsgn_bgcolor2 = "#111111"; // $dsgn_bgcolor nicht leer ist. (ist zB für battle.net Design wichtig. $dsgn_titlecolor = "#000000"; // Farbe der Überschriften $dsgn_titlesize = ""; // Schriftgröße der Überschriften $dsgn_fontsize = ""; // Schriftgröße von allen Texten außer den Überschriften $dsgn_fontcolor = "#FFFFFF"; // Schriftfarbe von allen Texten außer den Überschriften und den Links $dsgn_rankcolor = ""; // Schriftfarbe des Rangs (kann leer gelassen werden) $dsgn_border = "1"; // Rahmenstärke der Tabelle (= cellspacing der 2. Tabelle) $dsgn_bnrankstyle = "1"; // Wenn aktiviert, wird bei den Rängen zB hinter 1, 21, 31.. etc "st", hinter 2, 22, 32.. "nd" etc. angehängt Gilt nur für die Ladder Ränge. $dsgn_bnrankstyle2 = "1"; // Siehe $dsgn_bnrankstyle. Gilt nur für die Bnet Ränge. // Hinweis: Falls ihr das Bnet Template an habt, ist es für Schriftgröße und Farbe sinnvoller, die CSS Datei zu verändern. // Levelbalken: $dsgn_lvlbordercolor= "#5A5D5A"; // Rahmenfarbe des Levelbalkens (Standard: "#5A5D5A") $dsgn_lvlbgcolor = "#000000"; // Hintergrundfarbe des Levelbalkens (standard: "#000000") //Sonstige Designeinstellungen: $dsgn_site = ""; // Wort, das vor der Seitenauswahl stehen soll (zB "Seite:", bei Bnet Design leer lassen) $dsgn_seperator = "|"; // Trennzeichen bei der Ladderauswahl $dsgn_seperator2 = "."; // Trennzeichen bei der Seitenauswahl $dsgn_showunranked = "Unranked"; // Falls diese Variable nicht leer ist, wird, wenn ein Spieler/Team unranked ist, der Inhalt dieser Variable // statt den Rang angezeigt (sinnvoll wäre z.B.: "Unranked", "NR" etc.). **************************************** Außerdem sollte: - der Hintergrund der Seite dunkel (am besten schwarz) sein - das bnet Template aktiv sein - die bnet.css integriert sein, zB so: (muss im Header stehen, d.h. zwischen "" und "".) 2. Standard Design ------------------ **************************************** // Allgemein: $dsgn_bordercolor = "#000000"; // Rahmenfarbe der Ladder Tabelle (= Hintergrundfarbe der ersten Tabelle) $dsgn_titlebgcolor = "#FFFFFF"; // Hintergrundfarbe der Zeile mit den Überschriften auf der Ladderseite $dsgn_bgcolor = "#FFFFFF"; // Hintergrundfarbe der Zeilen mit den Spielern/Teams $dsgn_bgcolor1 = "#271A13"; // Hintergrundfarbe 1 und 2 der Zeilen mit den Spielern/Teams (wird ignoriert, wenn $dsgn_bgcolor2 = "#111111"; // $dsgn_bgcolor nicht leer ist. (ist zB für battle.net Design wichtig. $dsgn_titlecolor = "#000000"; // Farbe der Überschriften $dsgn_titlesize = "9pt"; // Schriftgröße der Überschriften $dsgn_fontsize = "9pt"; // Schriftgröße von allen Texten außer den Überschriften $dsgn_fontcolor = "#000000"; // Schriftfarbe von allen Texten außer den Überschriften und den Links $dsgn_rankcolor = "orange"; // Schriftfarbe des BN-Rangs (kann leer gelassen werden) $dsgn_border = "1"; // Rahmenstärke der Tabelle (= cellspacing der 2. Tabelle) $dsgn_bnrankstyle = "0"; // Wenn aktiviert, wird bei den Rängen zB hinter 1, 21, 31.. etc "st", hinter 2, 22, 32.. "nd" etc. angehängt Gilt nur für die Ladder Ränge. $dsgn_bnrankstyle2 = "0"; // Siehe $dsgn_bnrankstyle. Gilt nur für die Bnet Ränge. // Hinweis: Falls ihr das Bnet Template an habt, ist es für Schriftgröße und Farbe sinnvoller, die CSS Datei zu verändern. // Levelbalken: $dsgn_lvlbordercolor= "#5A5D5A"; // Rahmenfarbe des Levelbalkens (Standard: "#5A5D5A") $dsgn_lvlbgcolor = "#000000"; // Hintergrundfarbe des Levelbalkens (standard: "#000000") //Sonstige Designeinstellungen: $dsgn_site = "Seite:"; // Wort, das vor der Seitenauswahl stehen soll (zB "Seite:", bei Bnet Design leer lassen) $dsgn_seperator = "|"; // Trennzeichen bei der Ladderauswahl $dsgn_seperator2 = "|"; // Trennzeichen bei der Seitenauswahl $dsgn_showunranked = ""; // Falls diese Variable nicht leer ist, wird, wenn ein Spieler/Team unranked ist, der Inhalt dieser Variable // statt den Rang angezeigt (sinnvoll wäre z.B.: "Unranked", "NR" etc.). **************************************** ------------- FAQ: ------------- 1. Q: Werden durch Löschen der Accounts auch deren Statistiken gelöscht? A: Ja, auch die AT's. 2. Q: Bei mir dauert das komplette Aktualisieren der Ladder mehrere Minuten, ist das normal? A: Ja, die Zeit hängt von der Erreichbarkeit der Bnet Seite und von der Anzahl der Accounts ab. 3. Q: Ich stehe mit meinem 2v2 AT Partner nicht in der Ladder, obwohl wir beide schon AT zusammen gespielt habe. Wieso? A: 1. Beide (!) Accounts müssen eingetragen, und für 2v2 aktiviert sein. 2. Euer AT muss auf der Profilseite zu sehen sein, während die Ladder aktualisiert wird. (Dort werden normalerweise immer nur die letzten 6 AT's angezeigt.) 4. Q: Ich bekomme den Fehler "....failed to open stream: No such file or directory.." sobald ich eine Datei starte. A: 1. Prüf nach, ob sich die Dateien config.inc.php und functions.inc.php im selben Verzeichnis wie die Datei, in der du den Fehler bekommst, befinden. Falls du die Datei show_ladder.php über eine andere Datei, die sich in einem anderen Ordner befindet, aufrufst, so müssen die beiden ***.inc.php in dem Verzeichnis der aufrufenden Datei sein. Also nicht in dem, in dem sich show_ladder.php befindet. 2. Prüf nochmal nach, ob die Variable $functions_file in der config.inc.php mit dem Dateinamen der Datei, die anfangs functions.inc.php hieß, übereinstimmt. (Wenn du den Namen oder den Pfad der config.inc.php ändern willst, musst du den include() befehl in den beiden Dateien ladderadmin.php und show_ladder.php anpassen.) 5. Q: Mein Clan spielt auf dem USWest Server. Wie kann ich das Script auf USWest umstellen? A: Die einzige Möglichkeit wäre, indem du überall (auch in dem Templates) "Europe" durch "USWest" (oder einen anderen Server) ersetzt. 6. Q: Ich bekomme folgende Fehlermeldung: "Warning: MySQL Connection Failed: Access denied for user..". A: Solltest du des Englischen mächtig sein, so solltest du normalerweise wissen, was dies bedeutet: Überprüf nochmal deine MySQL Daten, die du in der config.inc.php eingegeben hast. 7. Q: Ich habe ausversehen bei einem Account Solo aktiviert, obwohl dieser eigentlich nur für AT's gut sein soll. Nun hab ich aber leider die Ladder (und die Solo Statistiken) aktualisiert. Was kann ich nun tun? A: Durch das Löschen des Accs verschwinden, wie in der 1. Frage bereits erwähnt, automatisch auch alle Statistiken. Danach musst du nur noch den Acc neu hinzufügen. 8. Q: Das Anzeigen der ersten Ladder (Standard: solo) funktioniert einwandfrei. Sobald ich auf eine andere Ladder klicke oder die Spieler pro Seite ändern will, geht gar nichts mehr. A: 1. Prüf nochmal nach ob die Variable $ladderpath richtig eingestellt ist. Solltest du dir nicht sicher sein, so vergleich mal die URL in der Adressleiste von der Seite, die funktioniert und der, die nicht funktioniert. Im Normalfall sollten sie sich nur durch das Anhängen von "?ladder=xxx" oder "&ladder=xxx" (xxx=Bezeichnung von der aufgerufenen Ladder, zB solo,rt,ffa etc) unterscheiden. Sollte die funktionierende URL zB "index.php?action=ladder" und die nicht funktionierende "ladder.php?" heißen, so solltest du die Variable $ladderpath in der config.inc.php anpassen (wie das geht, steht in der config.inc.php). 2. Dein include Befehl darf nicht so lauten: "include("http://www.*****.**/ladder/show_ladder.php");". Du musst die Datei direkt includen, also zB so "include("ladder/show_ladder.php");" (ohne die gesamte Adresse). 3. Du darfst den include Befehl nicht in einer extra Funktion stehen haben (innerhalb von "function ****(**){" und "}"). Wenn doch, musst du wie bei der 2. Lösungsmöglichkeit einfach die Zeile "global $ladder,$pps,$page;" an den Anfang deiner Funktion setzen. 9. Q: Wenn ich show_ladder.php aufrufe, erscheint nur eine 0, statt der eigentlichen Ladder. A: Wahrscheinlich hast du kein Template installiert. Dies kannst du im Adminpanel jederzeit nachholen. Falls ihr sonst noch irgendwelche Probleme habt, könnt ihr mich gerne fragen. ------------- Kontakt: ------------- zuLu.TrunkZ www.z-tribe.de und www.zuLu-tourney.de ICQ: 96289014 eMail: trunks123@gmx.de