Seite 29 von 108

Verfasst: 26.05.2008 14:35
von Patch
Strichmaennli hat geschrieben: Kann ich einfach die Dateien auf dem Server austauschen?
- Wie sieht es mir der Datenbank aus, wenn schon Tipps erfasst wurden? Gibt es da Probleme bei update?
i
austauschen ist kein problem, allerdings wird es mit den tipps deiner user ein wenig problematisch.
in der db_update.php solltest du den part

Code: Alles auswählen

$sql[] = "DROP TABLE IF EXISTS `" . $table_prefix . "em_tipps`";
$sql[] = "CREATE TABLE `" . $table_prefix . "em_tipps` (
  `tipp_id` mediumint(8) NOT NULL auto_increment,
  `tipp_game` mediumint(8) NOT NULL default '0',
  `tipp_time` int(11) NOT NULL default '0',
  `tipp_user` mediumint(8) NOT NULL default '0',
  `tipp_home` mediumint(8) NOT NULL default '0',
  `tipp_away` mediumint(8) NOT NULL default '0',
  `tipp_points` mediumint(8) NOT NULL default '0',
  PRIMARY KEY  (`tipp_id`)
) TYPE=MyISAM AUTO_INCREMENT=1";
auskommentieren bzw. löschen. dann bleiben die tipps erhalten.

ansonsten sind soweit alle bekannten fehler behoben

Verfasst: 26.05.2008 14:59
von buegelfalte
Patch hat geschrieben:ansonsten sind soweit alle bekannten fehler behoben
nicht ganz


und:
in der em_usertipps.php sieht meine Zeile 175 statt so

Code: Alles auswählen

if (($finals_row[$j]['game_time'] < time()) || (($admin_sees_all == true) && ($userdata['user_level'] == ADMIN)))
so aus

Code: Alles auswählen

if (($finals_row[$j]['game_time'] < time()) || ($userdata['user_id'] == $int_userid) || (($admin_sees_all == true) && ($userdata['user_level'] == ADMIN)))
damit der User seine eigenen Tipps sehen kann.


EDIT:

1. em_round1.php und em_finals.php

in der Zeile

Code: Alles auswählen

$TORJAEGER .='</select></td>
fehlt ein "</tr>"

Da sind noch ein paar Tabellenfehler drin (einmal ein "<td>" ohne daß vorher ein "</td>" kam, einmal ein "</td></td>"), ich weiß nur noch nicht, wo die enstehen.
Vielleicht wäre es besser, den ganzen HTML-Kram in die TPL-Datei zu schreiben, so hat man den nur einmal (der ist ja bei round1 und finals identisch) und kann die Fehler leichter finden.

2. Es gibt einen "spoiler is not defined"-JavaScript-Fehler (obwohl das Umschalten der Bilder funktioniert).

3. Das hier funktioniert natürlich nur bei dir:

Code: Alles auswählen

$playerimage = '/userpix/2_nopic_1.jpg';
;)

4. Die Torschützen-Tipps werden nicht angezeigt, es scheint, als würde "{userrow.USER_SCORER_TIPP}" garnicht gefüllt. Auch wäre es nett, wenn man den Torschützen-Tipp unabhängig vom Europameister tippen würde (tippt man nur den Torschützen und nicht den Meister, wird der Torschütze nicht gespeichert).

Folgendes schafft Abhilfe für die fehlende Anzeige:
in der em_stats.php

hinter "$champion_tips = get_em_champion_tipps();" das hier einfügen:

Code: Alles auswählen

$scorer_tips = get_em_scorer_tipps();
und hinter "'USER_POINTS_DIFFERENCE' => $em_users_data[$i]['user_points_difference']," das hier

Code: Alles auswählen

'USER_SCORER_TIPP' => $scorer_tips[$em_users_data[$i]['tipp_user']],

EDIT 2:

den "spoiler"-Fehler habe ich so weggekriegt, dann funktioniert auch das Auf- und Zuklappen des DIVs:

Code: Alles auswählen

$TORJAEGER .='<br><br>Spieler nicht vorhanden? <div class="spoiler">';
$TORJAEGER .='<div class="smallfont">';
$TORJAEGER .='<input type="button" value=" Spieler hinzufügen " class="liteoption" style="width:128;font-size:10px;margin:0px;padding:0px; height:21" onClick="if (this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display != \'\') { this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display = \'\'; this.innerText = \'\'; this.value = \' Ausblenden \'; } else { this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display = \'none\'; this.innerText = \'\'; this.value = \' Spieler hinzufügen \'; }">';
$TORJAEGER .='</div><div class="alt2">
<script language="JavaScript">
if (spoiler){document.write("<div>")}else{document.write("<div style="display: none;">")}</script><table border="0" width="100%">
	<tr>
		<td width="85">Name:</td>
		<td><input type="text" value="" name="koenigname" size="20"></td>
	</tr>
	<tr>
		<td width="85">Vorname:</td>
		<td><input type="text" value="" name="koenigvorname" size="20"></td>';
$TORJAEGER .='	</tr>
		<tr>
		<td width="85">Bildlink:</td>
		<td><input type="text" value="" name="bildlink" size="20"></td>
	</tr>
	<tr>
		<td width="85">Land: </td>
		<td><select name="spielerteam">';


        for ( $r = 0; $r < count($em_teams); $r++ ) {
            $TORJAEGER .= '<option value="' . $em_teams[$r]['team_name'] . '">' . $em_teams[$r]['team_name'] . '</option>';
        }

$TORJAEGER .='</select></td>
ersetzen mit

Code: Alles auswählen

$TORJAEGER .='<br><br>Spieler nicht vorhanden?&nbsp;';
$TORJAEGER .='<span class="smallfont">';
$TORJAEGER .='<input type="button" value=" Spieler hinzufügen " class="liteoption" style="width:128;font-size:10px;margin:0px;padding:0px; height:21" onClick="if (document.getElementById(\'spoiler\').style.display != \'\') { document.getElementById(\'spoiler\').style.display = \'\'; this.innerText = \'\'; this.value = \' Ausblenden \'; } else { document.getElementById(\'spoiler\').style.display = \'none\'; this.innerText = \'\'; this.value = \' Spieler hinzufügen \'; }">';
$TORJAEGER .='</span><div class="spoiler" id="spoiler" style="display: none;">
<table border="0" width="100%">
	<tr>
		<td width="85">Name:</td>
		<td><input type="text" value="" name="koenigname" size="20"></td>
	</tr>
	<tr>
		<td width="85">Vorname:</td>
		<td><input type="text" value="" name="koenigvorname" size="20"></td>';
$TORJAEGER .='	</tr>
		<tr>
		<td width="85">Bildlink:</td>
		<td><input type="text" value="" name="bildlink" size="20"></td>
	</tr>
	<tr>
		<td width="85">Land: </td>
		<td><select name="spielerteam">';


        for ( $r = 0; $r < count($em_teams); $r++ ) {
            $TORJAEGER .= '<option value="' . $em_teams[$r]['team_name'] . '">' . $em_teams[$r]['team_name'] . '</option>';
        }

$TORJAEGER .='</select></td></tr>

EDIT 3:

der Vollständigkeit halber: wenn man noch keinen Torschützen gewählt hat und wählt einen aus dem Dropdown, erscheint rechts das Bild, aber es lappt über (im Firefox):

[ externes Bild ]

Verfasst: 26.05.2008 19:55
von Sputum
Hallo!

was mir als erstes an dem neuen Paket aufgefallen ist:

die beiden letzten tabellen müssen auf jedenfall phpbb_ bleiben!
Weil das hardcoded in einigen Dateien ist...

Verfasst: 26.05.2008 20:14
von Strichmaennli
buegelfalte hat geschrieben: EDIT:

1. em_round1.php und em_finals.php

in der Zeile

Code: Alles auswählen

$TORJAEGER .='</select></td>
fehlt ein "</tr>"

Da sind noch ein paar Tabellenfehler drin (einmal ein "<td>" ohne daß vorher ein "</td>" kam, einmal ein "</td></td>"), ich weiß nur noch nicht, wo die enstehen.
Vielleicht wäre es besser, den ganzen HTML-Kram in die TPL-Datei zu schreiben, so hat man den nur einmal (der ist ja bei round1 und finals identisch) und kann die Fehler leichter finden.

2. Es gibt einen "spoiler is not defined"-JavaScript-Fehler (obwohl das Umschalten der Bilder funktioniert).

3. Das hier funktioniert natürlich nur bei dir:

Code: Alles auswählen

$playerimage = '/userpix/2_nopic_1.jpg';
;)

4. Die Torschützen-Tipps werden nicht angezeigt, es scheint, als würde "{userrow.USER_SCORER_TIPP}" garnicht gefüllt. Auch wäre es nett, wenn man den Torschützen-Tipp unabhängig vom Europameister tippen würde (tippt man nur den Torschützen und nicht den Meister, wird der Torschütze nicht gespeichert).

Folgendes schafft Abhilfe für die fehlende Anzeige:
in der em_stats.php

hinter "$champion_tips = get_em_champion_tipps();" das hier einfügen:

Code: Alles auswählen

$scorer_tips = get_em_scorer_tipps();
und hinter "'USER_POINTS_DIFFERENCE' => $em_users_data[$i]['user_points_difference']," das hier

Code: Alles auswählen

'USER_SCORER_TIPP' => $scorer_tips[$em_users_data[$i]['tipp_user']],

EDIT 2:

den "spoiler"-Fehler habe ich so weggekriegt, dann funktioniert auch das Auf- und Zuklappen des DIVs:

Code: Alles auswählen

$TORJAEGER .='<br><br>Spieler nicht vorhanden? <div class="spoiler">';
$TORJAEGER .='<div class="smallfont">';
$TORJAEGER .='<input type="button" value=" Spieler hinzufügen " class="liteoption" style="width:128;font-size:10px;margin:0px;padding:0px; height:21" onClick="if (this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display != \'\') { this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display = \'\'; this.innerText = \'\'; this.value = \' Ausblenden \'; } else { this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display = \'none\'; this.innerText = \'\'; this.value = \' Spieler hinzufügen \'; }">';
$TORJAEGER .='</div><div class="alt2">
<script language="JavaScript">
if (spoiler){document.write("<div>")}else{document.write("<div style="display: none;">")}</script><table border="0" width="100%">
	<tr>
		<td width="85">Name:</td>
		<td><input type="text" value="" name="koenigname" size="20"></td>
	</tr>
	<tr>
		<td width="85">Vorname:</td>
		<td><input type="text" value="" name="koenigvorname" size="20"></td>';
$TORJAEGER .='	</tr>
		<tr>
		<td width="85">Bildlink:</td>
		<td><input type="text" value="" name="bildlink" size="20"></td>
	</tr>
	<tr>
		<td width="85">Land: </td>
		<td><select name="spielerteam">';


        for ( $r = 0; $r < count($em_teams); $r++ ) {
            $TORJAEGER .= '<option value="' . $em_teams[$r]['team_name'] . '">' . $em_teams[$r]['team_name'] . '</option>';
        }

$TORJAEGER .='</select></td>
ersetzen mit

Code: Alles auswählen

$TORJAEGER .='<br><br>Spieler nicht vorhanden?&nbsp;';
$TORJAEGER .='<span class="smallfont">';
$TORJAEGER .='<input type="button" value=" Spieler hinzufügen " class="liteoption" style="width:128;font-size:10px;margin:0px;padding:0px; height:21" onClick="if (document.getElementById(\'spoiler\').style.display != \'\') { document.getElementById(\'spoiler\').style.display = \'\'; this.innerText = \'\'; this.value = \' Ausblenden \'; } else { document.getElementById(\'spoiler\').style.display = \'none\'; this.innerText = \'\'; this.value = \' Spieler hinzufügen \'; }">';
$TORJAEGER .='</span><div class="spoiler" id="spoiler" style="display: none;">
<table border="0" width="100%">
	<tr>
		<td width="85">Name:</td>
		<td><input type="text" value="" name="koenigname" size="20"></td>
	</tr>
	<tr>
		<td width="85">Vorname:</td>
		<td><input type="text" value="" name="koenigvorname" size="20"></td>';
$TORJAEGER .='	</tr>
		<tr>
		<td width="85">Bildlink:</td>
		<td><input type="text" value="" name="bildlink" size="20"></td>
	</tr>
	<tr>
		<td width="85">Land: </td>
		<td><select name="spielerteam">';


        for ( $r = 0; $r < count($em_teams); $r++ ) {
            $TORJAEGER .= '<option value="' . $em_teams[$r]['team_name'] . '">' . $em_teams[$r]['team_name'] . '</option>';
        }

$TORJAEGER .='</select></td></tr>

EDIT 3:

der Vollständigkeit halber: wenn man noch keinen Torschützen gewählt hat und wählt einen aus dem Dropdown, erscheint rechts das Bild, aber es lappt über (im Firefox):

[ externes Bild ]
Das mit dem Torjäger ist in welcher Version drin? Musste die 5.0 installieren, da mein Provider nur MySQL 4.0.xx unterstützt..

Verfasst: 26.05.2008 20:21
von buegelfalte
buegelfalte hat geschrieben:

Code: Alles auswählen

'USER_SCORER_TIPP' => $scorer_tips[$em_users_data[$i]['tipp_user']],
Noch besser ist natürlich das:

Code: Alles auswählen

'USER_SCORER_TIPP' => ((time() < 1212854400) && ($em_users_data[$i]['tipp_user'] != $userdata['user_id']) && ($userdata['user_level'] != ADMIN)) ? $lang['Hidden_email'] : $scorer_tips[$em_users_data[$i]['tipp_user']],
dann kann man (außer Admin) vorher nicht kucken, was die anderen getippt haben

Verfasst: 26.05.2008 20:28
von Sputum
Gut so Buegelfalte, ich ziehe jede deiner Änderungen sofort nach! Finde ich echt super! Gemeinsam entwickelt ihr das Top Produkt!

DANKE an ALLE!!!!

edit: Sorry, Buegelfalte, aber mir ist die Antwort auf meine Frage bereits gegeben worden...

Verfasst: 26.05.2008 20:42
von buegelfalte
Sputum hat geschrieben:Frage noch: Ich würde geren den EM-Gewinner und Torschützentipp genrell aus der Finals entferne, dort braucht man den eh nicht tippen! Wo fange ich da an und höre ich auf?
Das hier sorgt sowieso dafür, daß man die beiden Tipps nur bis zum Beginn der EM abgeben kann:

Code: Alles auswählen

if  (time() < $first_game[0]['game_time']){
danach ist das also hinfällig.


EDIT: @Sputum: super, die Frage noch schnell wieder weg-editiert !? ;)

EDIT 2: @Patch: für das nächste Archiv BITTE auch mit Update-File, ich hab heute allein 3h gebraucht, um meine Versionen zu mergen und nachher die TPLs wieder an mein Template anzupassen ...

Verfasst: 26.05.2008 21:08
von fluidman
kurze frage...

was muss man in der em_usertips.php ändern damit user die spiel tips der anderen user nicht sehen können?

Verfasst: 26.05.2008 21:09
von buegelfalte
kurze Antwort: zurückblättern und nachlesen
oder eher: updaten, denn eingentlich geht das überhaupt nicht (mehr) ...

Verfasst: 26.05.2008 21:13
von Strichmaennli
Hat jemand auf meine Frage eine Antwort?

siehe Eintrag von 20:14, danke