|
|
Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Moderator: Moderatoren
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
von Dungeonwatcher » Do 03.Jan, 2008 12:58 • Beitrag als PDF
Hi große Meister der PHP Kunst!
Ich möchte die persönl. Statistik des Spielers mit auf die Spielseite einbinden. Das Template dazu ist fertig, nur bekomme ich es nicht gebacken den entsprechenden PHP Abschnitt in die knuffel.php einzubinden. :-?
Der entsprechende Abschnitt ist dieser:
- Code: Alles auswählen
// // get the personal score // $sql = "SELECT * FROM ". KNUFFEL_TABLE ." WHERE user = '". $submitid ."'"; if( !$result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Could not get player information.", "", __LINE__, __FILE__, $sql); } $r = $db -> sql_query($sql); $row = $db -> sql_fetchrow($r); $playerhighscore = $row['score']; $playerplayed = $row['played']; $playeraverage = $row['average']; $sql = "SELECT COUNT(*) AS total FROM ". KNUFFEL_TABLE ." WHERE score > ". $playerhighscore; if ( !($result = $db->sql_query($sql)) ) { message_die('Could not get player position', '', __LINE__, __FILE__, $sql); } if ( $total = $db->sql_fetchrow($result) ) { $playerposition = $total['total'] + 1; } $db->sql_freeresult($result);
// // time to get the top 10 // $i = 1; $sql = "SELECT * FROM ". KNUFFEL_TABLE ." WHERE played <> '0' ORDER BY score DESC LIMIT 0,10"; if( !$result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Could not get top 10 information.", "", __LINE__, __FILE__, $sql); } $r = $db -> sql_query($sql); while($row = $db -> sql_fetchrow($r)) { $highscorename = $row['name']; $highscorepoints = $row['score']; $highscoreplayed = $row['played']; $highscoreaverage = $row['average']; $row_class = ( !($i % 2) ) ? $theme['td_class2'] : $theme['td_class1']; if ( $i < 4 ) { $highscoreposition = "<b>".$i."</b>"; } else { $highscoreposition = $i; } $template -> assign_block_vars('highscore', array( 'POSITION' => $highscoreposition, 'NAME' => $highscorename, 'POINTS' => $highscorepoints, 'PLAYED' => $highscoreplayed, 'AVERAGE' => $highscoreaverage, 'ROW_CLASS' => $row_class)); $i++; }
Das ganze muss mit diesem Abschnitt verbunden werden: - Code: Alles auswählen
// // time to get the top 3 // $i = 1; $sql = "SELECT * FROM ". KNUFFEL_TABLE ." WHERE played <> '0' ORDER BY score DESC LIMIT 0,3"; if( !$result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Could not get top 10 information.", "", __LINE__, __FILE__, $sql); } $r = $db -> sql_query($sql); while($row = $db -> sql_fetchrow($r)) { $highscorename = $row['name']; $highscorepoints = $row['score']; $highscoreposition = "<img src=\"knuffel/images/rank/".$i.".gif\" alt=\"\" border=\"0\" />"; $template -> assign_block_vars('highscore', array( 'POSITION' => $highscoreposition, 'NAME' => $highscorename, 'POINTS' => $highscorepoints)); $i++; }

Zuletzt geändert von Dungeonwatcher am Do 03.Jan, 2008 12:58, insgesamt 1-mal geändert.
-

Dungeonwatcher
- User

-
- Beiträge: 1048
- Registriert: Sa 19.Feb, 2005 02:16
- Wohnort: Berlin
-
von oxpus » Do 03.Jan, 2008 14:10 • Beitrag als PDF
Der neue Block ist doch weitgehend umfangreich genug.
Warum ersetzt Du dann nicht einfach den bestehenden Code in der knuffel.php durch den neuen Code-Block?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert! No support per ICQ, Email or PM. Each unasked message will be ignored!
-

oxpus
- Administrator

-
- Beiträge: 28979
- Registriert: Mo 27.Jan, 2003 23:13
- Wohnort: Bad Wildungen
-
von Dungeonwatcher » Do 03.Jan, 2008 14:18 • Beitrag als PDF
oxpus";p="80293 hat geschrieben:Warum ersetzt Du dann nicht einfach den bestehenden Code in der knuffel.php durch den neuen Code-Block?
Daran dachte ich auch schon und hatte es schon mehrfach versucht. Nur leider wird dann die Seite nicht mehr kplt. angezeigt. D.h. außer Header und Footer fehlt alles. Und da es keinerlei Fehlermeldung gibt bin ich völlig ratlos. 
-

Dungeonwatcher
- User

-
- Beiträge: 1048
- Registriert: Sa 19.Feb, 2005 02:16
- Wohnort: Berlin
-
von oxpus » Do 03.Jan, 2008 14:22 • Beitrag als PDF
Dann poste doch mal den Template-Abschnitt.
Der neue müsste ja auch den alten ersetzen 
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert! No support per ICQ, Email or PM. Each unasked message will be ignored!
-

oxpus
- Administrator

-
- Beiträge: 28979
- Registriert: Mo 27.Jan, 2003 23:13
- Wohnort: Bad Wildungen
-
von Dungeonwatcher » Do 03.Jan, 2008 14:57 • Beitrag als PDF
So sieht das Original aus:
- Code: Alles auswählen
<table border="0" width="100%" cellspacing="1" cellpadding="1"> <tr> <th>{L_TOP_3}</th> </tr> <tr> <td class="row1" align="left" valign="middle"> <!-- BEGIN highscore --> <span class="genmed">{highscore.POSITION} <b>{highscore.POINTS}</b> {highscore.NAME}<br /></span> <!-- END highscore --> </td> </tr> <tr> <td class="row2" align="center"><br /><span class="nav"><b><a href="{U_KNUFFELHIGHSCORE}">{L_KNUFFELHIGHSCORE}</a></b></span><br /><br /></td> </tr> </table>
und so die aktuelle Version: - Code: Alles auswählen
<table border="0" width="100%" cellspacing="1" cellpadding="1"> <tr> <th colspan="5">{L_STATS}</th> </tr> <tr> <td class="row2" align="center" colspan ="2" width="30"><span class="explaintitle"><b>{L_POSITION}</b></span></td> <td class="row2" align="center"><span class="explaintitle"><b>{L_POINTS}</b></span></td> <td class="row2" align="center"><span class="explaintitle"><b>{L_PLAYED}</b></span></td> <td class="row2" align="center"><span class="explaintitle"><b>{L_AVERAGE}</b></span></td> </tr> <tr> <td class="row1" align="center" colspan ="2"><span class="gen"><b>{S_PLAYERPOSITION}</b><br/></span></td> <td class="row1" align="center"><span class="genmed">{S_PLAYERHIGHSCORE}</span></td> <td class="row1" align="center"><span class="genmed">{S_PLAYERPLAYED}</span></td> <td class="row1" align="center"><span class="genmed">{S_PLAYERAVERAGE}</span></td> </tr> </table> </td> </tr> </table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="forumline"> <tr> <td valign="top"> <table border="0" width="100%" cellspacing="1" cellpadding="1"> <tr> <th colspan="4">{L_TOP_3}</th> </tr> <tr> <th class="row2" align="center" width="25"><span class="explaintitle">{L_POSITION}</span></th> <th class="row2" align="center"><span class="explaintitle">{L_HIGHSCORENAME}</span></th> <th class="row2" align="center"><span class="explaintitle">{L_POINTS}</span></th> <th class="row2" align="center"><span class="explaintitle">{L_PLAYED}</span></th> </tr> <!-- BEGIN highscore --> <tr> <td class="{highscore.ROW_CLASS}" align="center"><span class="gen">{highscore.POSITION}</span></td> <td class="{highscore.ROW_CLASS}" align="center"><span class="genmed">{highscore.NAME}</span></td> <td class="{highscore.ROW_CLASS}" align="center"><span class="genmed">{highscore.POINTS}</span></td> <td class="{highscore.ROW_CLASS}" align="center"><span class="genmed">{highscore.PLAYED}</span></td> </tr> <!-- END highscore --> <tr> <td class="row2" align="center" colspan="4"><br /><span class="nav"><b><a href="{U_KNUFFELHIGHSCORE}">{L_KNUFFELHIGHSCORE}</a></b></span><br /><br /></td> </tr> </table> Nachtrag:Die Top 3 Tabelle inkl. den korrekten Einträgen habe ich nun schonmal hinbekommen: - Code: Alles auswählen
// // time to get the top 3 // $i = 1; $sql = "SELECT * FROM ". KNUFFEL_TABLE ." WHERE played <> '0' ORDER BY score DESC LIMIT 0,3"; if( !$result = $db->sql_query($sql) ) { message_die(GENERAL_ERROR, "Could not get top 10 information.", "", __LINE__, __FILE__, $sql); } $r = $db -> sql_query($sql); while($row = $db -> sql_fetchrow($r)) { $highscorename = $row['name']; $highscorepoints = $row['score']; $highscoreplayed = $row['played']; $row_class = ( !($i % 2) ) ? $theme['td_class2'] : $theme['td_class1']; if ( $i < 4 ) { $highscoreposition = "<img src=\"knuffel/images/rank/".$i.".gif\" alt=\"\" border=\"0\" />"; } $template -> assign_block_vars('highscore', array( 'POSITION' => $highscoreposition, 'NAME' => $highscorename, 'POINTS' => $highscorepoints, 'PLAYED' => $highscoreplayed, 'AVERAGE' => $highscoreaverage, 'ROW_CLASS' => $row_class)); $i++; }
Jetzt hängt es nur noch am o.g. Block " get the personal score". Sowie ich den einfüge bleibt die Siete kommentarlos leer.
Zuletzt geändert von Dungeonwatcher am Do 03.Jan, 2008 15:16, insgesamt 3-mal geändert.
-

Dungeonwatcher
- User

-
- Beiträge: 1048
- Registriert: Sa 19.Feb, 2005 02:16
- Wohnort: Berlin
-
von oxpus » Do 03.Jan, 2008 15:58 • Beitrag als PDF
Öhm, zeige doch mal ein paar Screenshots.
Ich bin bei dem MOD überhaupt nicht im Bilde...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert! No support per ICQ, Email or PM. Each unasked message will be ignored!
-

oxpus
- Administrator

-
- Beiträge: 28979
- Registriert: Mo 27.Jan, 2003 23:13
- Wohnort: Bad Wildungen
-
von Dungeonwatcher » Do 03.Jan, 2008 16:15 • Beitrag als PDF
So sieht es jetzt aktuell aus. Die Tabelle "Deine Statistik" ist neu hinzugekommen und die "Top 3" sah vorher einfach bescheiden aus.
Beide Tabellen zusammen gibt es auch als einziges Template, welches zum Ende des jeweiligen Spiels nach dem Eintragen des Ergebnisses angezeigt wird. Dazu wird eine neue PHP Datei (knuffelscore.php) aufgerufen. Diese Seite lässt sich nicht einzeln aufrufen. Wenn ich die knuffel.php und die knuffelscore.php so vergleiche, dann dürfte das Problem wohl in den "unterschiedlichen" Sessiondaten/-aufrufen liegen.
Vieleicht siehst du da ja besser in den beiden PHP Dateien durch. Ich bin mal so frei und hänge sie mit ran. 
Zuletzt geändert von Dungeonwatcher am Do 03.Jan, 2008 16:31, insgesamt 1-mal geändert.
-

Dungeonwatcher
- User

-
- Beiträge: 1048
- Registriert: Sa 19.Feb, 2005 02:16
- Wohnort: Berlin
-
von oxpus » Do 03.Jan, 2008 17:07 • Beitrag als PDF
Was soll denn unter "Deine Statistik" überhaupt angezeigt werden?
Nur eine Zeile oder die letzten X Spiele?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert! No support per ICQ, Email or PM. Each unasked message will be ignored!
-

oxpus
- Administrator

-
- Beiträge: 28979
- Registriert: Mo 27.Jan, 2003 23:13
- Wohnort: Bad Wildungen
-
von Dungeonwatcher » Do 03.Jan, 2008 17:13 • Beitrag als PDF
Nur eine einzige Zeile mit diesen persönlichen Statistikdaten. Bei mir währen das dann:
Rang: 2
Punkte: 1733
Gespielt: 16
Durchschnitt: 1336
Wobei der Rang bei Platz 1-3 die Grafik anzeigen sollte.
-

Dungeonwatcher
- User

-
- Beiträge: 1048
- Registriert: Sa 19.Feb, 2005 02:16
- Wohnort: Berlin
-
von oxpus » Do 03.Jan, 2008 18:32 • Beitrag als PDF
Nun, soweit ist zunächst alles korrekt (ausser, daß die Grafiken fehlen).
Nur:
In dem Script verwendest Du $submitid u. a. in dieser Abfrage hier:
- Code: Alles auswählen
$sql = "SELECT * FROM ". KNUFFEL_TABLE ." WHERE user = '". $submitid ."'";
Nach dem Script wird das so definiert: - Code: Alles auswählen
$submitid = $_SESSION['playerid'];
Ist das wirklich korrekt oder wird hier nicht eher die User-ID des Spielers verwendet?
Dann könnte ich nämlich die fehlenden Angaben in der Anzeige verstehen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert! No support per ICQ, Email or PM. Each unasked message will be ignored!
-

oxpus
- Administrator

-
- Beiträge: 28979
- Registriert: Mo 27.Jan, 2003 23:13
- Wohnort: Bad Wildungen
-
von Dungeonwatcher » Do 03.Jan, 2008 18:41 • Beitrag als PDF
oxpus";p="80311 hat geschrieben:Ist das wirklich korrekt oder wird hier nicht eher die User-ID des Spielers verwendet?
Hmmm, ich bin da ehrlich überfragt.  Das sind die Original Dateien. Aber korrekt währe wohl die User-ID des Spielers.
-

Dungeonwatcher
- User

-
- Beiträge: 1048
- Registriert: Sa 19.Feb, 2005 02:16
- Wohnort: Berlin
-
von oxpus » Do 03.Jan, 2008 22:37 • Beitrag als PDF
Dann müsste dort und in der nächsten Abfrage wohl eher $userdata['user_id'] rein.
Probiers aus.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert! No support per ICQ, Email or PM. Each unasked message will be ignored!
-

oxpus
- Administrator

-
- Beiträge: 28979
- Registriert: Mo 27.Jan, 2003 23:13
- Wohnort: Bad Wildungen
-
von oxpus » Sa 05.Jan, 2008 18:32 • Beitrag als PDF
Na, wer sagt's denn...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert! No support per ICQ, Email or PM. Each unasked message will be ignored!
-

oxpus
- Administrator

-
- Beiträge: 28979
- Registriert: Mo 27.Jan, 2003 23:13
- Wohnort: Bad Wildungen
-
von Holger » Mo 07.Jan, 2008 16:57 • Beitrag als PDF
Wo kann ich Knuffel runterladen?
Real men don’t back up, they learn data recovery. ;-) http://www.mysqldumper.de http://www.mysqldumper.se
-
Holger
- User

-
- Beiträge: 2253
- Registriert: Mi 17.Mär, 2004 19:09
von Holger » Di 08.Jan, 2008 17:02 • Beitrag als PDF
Funktioniert das nur mit Orion?
Real men don’t back up, they learn data recovery. ;-) http://www.mysqldumper.de http://www.mysqldumper.se
-
Holger
- User

-
- Beiträge: 2253
- Registriert: Mi 17.Mär, 2004 19:09
von KeineAhnung » Di 08.Jan, 2008 20:47 • Beitrag als PDF
Holger";p="80414 hat geschrieben:Funktioniert das nur mit Orion?
In Der Mod Beschreibung steht folgendes: ## This MOD was developed for cback's ORION 2 but ## should work with any phpbb without any problem.
-

KeineAhnung
- User

-
- Beiträge: 349
- Registriert: Di 29.Mai, 2007 17:35
- Wohnort: NRW
-
von Dungeonwatcher » Di 08.Jan, 2008 20:49 • Beitrag als PDF
Hi!
Holger";p="80414 hat geschrieben:Funktioniert das nur mit Orion?
Nööö, auch unter Vanilla tut es bestens.
Mir gefiel das Design mit den grafischen Rahmen nicht besonders, da habe ich es dem reinen phpBB2 Design und bis auf einen Fehler auch W3C konform angepasst. Den Code schaue ich morgen am Tage noch mal durch und lade es dem Programmierer hoch. Mal schauen was er dazu sagt.
Bye
-

Dungeonwatcher
- User

-
- Beiträge: 1048
- Registriert: Sa 19.Feb, 2005 02:16
- Wohnort: Berlin
-
von ZMANN » Di 08.Jan, 2008 21:45 • Beitrag als PDF
Wie sieht es mit einem Addon für den Color Group Mod aus, das wäre klasse wenn die User auch ihre Farbe hätten.
Gruß
-

ZMANN
- User

-
- Beiträge: 99
- Registriert: Sa 21.Jul, 2007 00:31
- Wohnort: Pfungstadt
-
von Dungeonwatcher » Mi 09.Jan, 2008 14:12 • Beitrag als PDF
Hi!
Ich habe die von mir an das phpBB2 Design angepasste Version inkl. einem Screenshot eben auf http://forum4u.biz/ hoch geladen. Wer es testen will, braucht nur alle Dateien ersetzen. Bis auf einen Fehler im JavaScript ist das ganze jetzt auch W3C konform.
Bye
-

Dungeonwatcher
- User

-
- Beiträge: 1048
- Registriert: Sa 19.Feb, 2005 02:16
- Wohnort: Berlin
-
von oxpus » Mi 09.Jan, 2008 14:24 • Beitrag als PDF
Bis auf einen Fehler im JavaScript
Und welcher wäre das?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert! No support per ICQ, Email or PM. Each unasked message will be ignored!
-

oxpus
- Administrator

-
- Beiträge: 28979
- Registriert: Mo 27.Jan, 2003 23:13
- Wohnort: Bad Wildungen
-
von Dungeonwatcher » Mi 09.Jan, 2008 15:02 • Beitrag als PDF
Hi!
Es betrifft diese vier Codezeilen in der knuffel.php:
- Code: Alles auswählen
// // for knuffel we need dice! // $dice_one = "<a href=\"javascript:Hold(0)\"><img id=\"0\" border=\"0\" width=\"32\" height=\"32\" src=\"knuffel/images/dice/blank.gif\" alt=\"\"/></a>"; $dice_two = "<a href=\"javascript:Hold(1)\"><img id=\"1\" border=\"0\" width=\"32\" height=\"32\" src=\"knuffel/images/dice/blank.gif\" alt=\"\" /></a>"; $dice_three = "<a href=\"javascript:Hold(2)\"><img id=\"2\" border=\"0\" width=\"32\" height=\"32\" src=\"knuffel/images/dice/blank.gif\" alt=\"\" /></a>"; $dice_four = "<a href=\"javascript:Hold(3)\"><img id=\"3\" border=\"0\" width=\"32\" height=\"32\" src=\"knuffel/images/dice/blank.gif\" alt=\"\" /></a>"; $dice_five = "<a href=\"javascript:Hold(4)\"><img id=\"4\" border=\"0\" width=\"32\" height=\"32\" src=\"knuffel/images/dice/blank.gif\" alt=\"\" /></a>";
Validome.org sagt dazu folgendes:
Der Wert vom Attribut `id` ist ungültig, da er nicht mit einer Zahl beginnen darf.
Die W3 Regeln sagen dazu: Der Wert eines solchen Attributs muss mit einem Buchstaben A-Z oder a-z beginnen, und darf in der weiteren Zeichenkette ebenfalls nur Buchstaben A-Z und a-z, Ziffern 0-9, Bindestriche (-), Unterstriche (_), Doppelpunkte (:) und Punkte (.) enthalten. Nicht erlaubt sind Sonderzeichen, Leerzeichen oder andere Interpunktionszeichen.
Es müsste so geändert werden, das die bemängelten IDs z.B. so lauten " img0", " img1" etc.
Dazu müsste u.a. die knuffel220.js geändert werden, nur da finde ich nicht mal die entsprechenden Stellen.
Bye
-

Dungeonwatcher
- User

-
- Beiträge: 1048
- Registriert: Sa 19.Feb, 2005 02:16
- Wohnort: Berlin
-
von oxpus » Mi 09.Jan, 2008 15:36 • Beitrag als PDF
Sollte so gehen: Füge in der knuffel.php vor die Zahlen z. B. "d" an, so daß diese Zeile rauskommt (Beispiel ist erste Zeile): - Code: Alles auswählen
$dice_one = "<a href=\"javascript:Hold(0)\"><img id=\"d0\" border=\"0\" width=\"32\" height=\"32\" src=\"knuffel/images/dice/blank.gif\" alt=\"\"/></a>";
In der knuffel220.js dann die Zeilen - Code: Alles auswählen
function ShowHold(nr) { if (flag[nr]){document.getElementById(nr).style.backgroundColor = "red";} else document.getElementById(nr).style.backgroundColor = "transparent"; }
ersetzen durch - Code: Alles auswählen
function ShowHold(nr) { if (flag[nr]){document.getElementById('d'+nr).style.backgroundColor = "red";} else document.getElementById('d'+nr).style.backgroundColor = "transparent"; }
Damit sollte der w3c Validator nicht mehr meckern und dennoch eine richtigen Werte verwendet werden. BTW: Du kannst auch die Aufrufe der Funktion ShowHold ändern, indem Du jedesmal das so schreibst: - Code: Alles auswählen
ShowHold('d'+nr);
bzw. - Code: Alles auswählen
ShowHold('d'+i);
Wären aber mehr Stellen zu berücksichtigen und auch anderweitig könnte ein anderes Script in einer anderen Datei dann auch Fehler erzeugen. Also besser die Funktion selber anpassen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert! No support per ICQ, Email or PM. Each unasked message will be ignored!
-

oxpus
- Administrator

-
- Beiträge: 28979
- Registriert: Mo 27.Jan, 2003 23:13
- Wohnort: Bad Wildungen
-
Zurück zu phpBB 2 Support Board + Modifikationen
Wer ist online?
Mitglieder in diesem Forum: Google [Bot] und 0 Gäste
|