Seite 62 von 108

Verfasst: 06.06.2008 20:53
von buegelfalte
Svenson hat geschrieben:Ist das jetzt schlimm, wenn man nicht auf "get_first_gametime" umgestellt hat? Wo ist der Vorteil? Ich will eigentlich nicht so kurz vor der EM nochmal alles umstellen :-?
Es stehen dann keine statischen Zeiten mehr im Quelltext (was die Sache in Zukunft flexibler macht) - einige weiteren Änderungen bauen aber ebenfalls schon jetzt auf der Funktion auf (frag mich jetzt nicht, welche !).
Svenson hat geschrieben:Aber wäre trotzdem schön, wenn du deine Dateien mal zum Download anbieten würdest :wink:
Mache ich, Verwendung aber ohne Garantie - am besten wäre es, wenn die Dateien mit denen aus der 0.6.2 abgeglichen und daraus eine 0.7 gemergt würde ...


EDIT:

here u go:
http://ultrashare.de/f/0900/080606_euro ... e.zip.html

enthalten sind jetzt nur die PHP-Dateien aus dem root sowie die dazugehöigen TPL-Dateien und die functions_em
da sich an der Admin nichts geändert hat, habe ich die Dateien weggelassen, genauso wie die ganzen Bilder, auch ist kein SQL-Dump dabei, die Daten dürfte ja mittlerweile jeder haben

Verfasst: 06.06.2008 22:35
von buegelfalte
Nochmal ein Versuch zum Thema "Tendenzpfeile" (komplett anderes Thema, deswegen neuer Post) ...

Ich habe mir die ganze Geschichte mal angesehen (zum ersten Mal, übles Zeug :) ) und habe folgende Änderungen vorgenommen, die ich zum Nachvollziehen (für die-/denjenigen, die das ursprünglich gebaut haben) mal kommentiere.
Wäre nicht schlecht, wenn ein paar Leute das testen könnten, das scheint ja momentan die letzte Baustelle zu sein.

Datei: em_stats.php

folgender Code

Code: Alles auswählen

	// absolute position now
	$int_userpos_absolute = $i+1;

	// user position yesterday
	$int_userpos_yesterday = get_rank_of_yesterday($em_users_data[$i]['tipp_user']);

	// compare the absolute positions
	if($int_userpos_yesterday < $int_userpos_absolute )
	{
		$userpos_change = '<img src="./images/em/down.gif" alt="Down" border="0" />';
	}
	else if ($int_userpos_yesterday == $int_userpos_absolute )
	{
		$userpos_change = '<img src="./images/em/stay.gif" alt="Stay" border="0" />';
	}
	else if ($int_userpos_yesterday > $int_userpos_absolute )
	{
		$userpos_change = '<img src="./images/em/up.gif" alt="Up" border="0" />';
	}
	$int_userposalt = $int_userpos;
	$int_userpos = ($int_userpkt != $em_users_data[$i]['user_points']) ? $int_userpos + 1 : $int_userpos;
soll die aktuelle Position mit der vergleichen, die der User gestern gehabt hat.
Aber: die Variable $int_userpos_absolute enthält nur "$i+1" also die Position des Users im Array (+1). Das Array ist zwar bereits nach Punkten sortiert, es können aber mehrere User auf demselben Platz sein, was hierbei nicht berücksichtigt wird, es wird einfach das Array durchgezählt. Deswegen stimmt der Rangvergleich so nicht, und deswegen werden momentan - vor dem ersten Anstoß - bis auf den ersten User nur rote Pfeile angezeigt. Später im Turnier wird es dann wahrscheinlich auch immer so sein, daß nur der erste User, der sich einen Platz mit anderen teilt, die richtige Tendenz hat.

Daher habe ich den Code wie folgt abgeändert:

Code: Alles auswählen

	$int_userposalt = $int_userpos;
	$int_userpos = ($int_userpkt != $em_users_data[$i]['user_points']) ? $int_userpos + 1 : $int_userpos;

	// user position yesterday
	$int_userpos_yesterday = get_rank_of_yesterday($em_users_data[$i]['tipp_user']);

	// compare the absolute positions
	if($int_userpos_yesterday < $int_userpos )
	{
		$userpos_change = '<img src="./images/em/down.gif" alt="verschlechtert" title="verschlechtert" border="0" />';
	}
	else if ($int_userpos_yesterday == $int_userpos )
	{
		$userpos_change = '<img src="./images/em/stay.gif" alt="unverändert" title="unverändert" border="0" />';
	}
	else if ($int_userpos_yesterday > $int_userpos )
	{
		$userpos_change = '<img src="./images/em/up.gif" alt="verbessert" title="verbessert" border="0" />';
	}
Damit wird jetzt zuerst berechnet, wie denn die aktuelle Position überhaupt aussieht (mit Berücksichtigung, daß mehrere User auf demselben Platz sein können), dann wird die Position von gestern geholt und mit der aktuellen verglichen.

(Zusätzlich habe ich die alt-Texte der Bilder verändert, aber das ist ja pure Kosmetik.)

Vorausgesetzt, daß die Funktion get_rank_of_yesterday korrekt funktioniert (die ist, genau wie der jetzt von mir korrigierte Code, nicht von mir und wurde von mir nicht geprüft), sollte das meinem Verständnis nach jetzt korrekt funktionieren.

Bei mir sind nach dieser Änderung alle User auf "unverändert", trage ich ein erstes Ergebnis ein, ist der komplette erste Platz auf "unverändert", alle folgende stehen auf "verschlechtert" - soweit stimmt das.
Eine Verifikation auf einem anderen System (wenn möglich mit Durchspielen mehrere Spieltage inkl. Datumsänderungen) wäre nicht schlecht.

Soweit von mir, mir qualmt die Rübe ... :)

B.

Verfasst: 07.06.2008 11:45
von Gismo110
Hi
ist das normal das bei einem nicht admin user die torschützenstatistik so angezeigt wird?

Code: Alles auswählen

1  	[ Versteckt ]  	   	4  	0
also als admin sieht man die bilder...das meine ich

oder blick ichs nich?

gruß und danke für den support hier im forum

echt toll
gismo

Verfasst: 07.06.2008 12:11
von buegelfalte
Gismo110 hat geschrieben:ist das normal das bei einem nicht admin user die torschützenstatistik so angezeigt wird?
also als admin sieht man die bilder...das meine ich
Nunja ... was nützt dir, den Namen des Spielers (für Nicht-Admins) zu verstecken, aber sein Bild anzuzeigen ??



So, und hier noch meine last-minute-snippets, kurz vor Anstoß (<6h) !!

#1

hier noch ein paar zusätzliche Sicherungen für das Tippspiel, so daß nur eingeloggte User reinkommen:

em_stats.php UND em_winnerstat.php UND em_tjstat.php

finden (überall gleich)

Code: Alles auswählen

include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_em.'.$phpEx);
danach einfügen

em_stats.php

Code: Alles auswählen

if ( !$userdata['session_logged_in'] )
{
	redirect(append_sid("login.$phpEx?redirect=em_stats.$phpEx"));
}
em_winnerstat.php

Code: Alles auswählen

if ( !$userdata['session_logged_in'] )
{
	redirect(append_sid("login.$phpEx?redirect=em_winnerstat.$phpEx"));
}
em_tjstat.php

Code: Alles auswählen

if ( !$userdata['session_logged_in'] )
{
	redirect(append_sid("login.$phpEx?redirect=em_tjstat.$phpEx"));
}
#2

das hier zeigt eine Summenzeile (Gesamtzahl der Tipps) am Ende der Tabelle mit den Europameister-Tipps


em_winnerstat.php

finden

Code: Alles auswählen

$int_firsttime = get_first_gametime();
$int_faktor = round($int_maxbar/($int_max/$anz_tips));
foreach($arr_data as $key => $value)
{
ersetzen durch

Code: Alles auswählen

$int_firsttime = get_first_gametime();
$int_numtipps = 0;
$int_faktor = round($int_maxbar/($int_max/$anz_tips));
foreach($arr_data as $key => $value)
{
	$int_numtipps += intval($value['anzahl']);
finden

Code: Alles auswählen

'L_ANZAHL'			=> $lang['em_st_number'],
danach einfügen

Code: Alles auswählen

'L_NUMTIPPS'		=> $int_numtipps,

templates/subSilver/em_winnerstat.tpl

finden

Code: Alles auswählen

<!-- END teamrow -->
dahinter einfügen (darauf achten: neue Zeile !)

Code: Alles auswählen

<tr>
    <td class="cat" colspan="3">&nbsp;</td>
    <td class="cat" align="center"><strong><span class="genmed">{L_NUMTIPPS}</span></strong></td>
    <td class="cat" colspan="2">&nbsp;</td>
  </tr>
#3

das hier zeigt eine Summenzeile (Gesamtzahl der Tipps) am Ende der Tabelle mit den Torjäger-Tipps


em_tjstat.php

finden

Code: Alles auswählen

'L_ANZAHL'			=> $lang['em_st_number'],
danach einfügen

Code: Alles auswählen

'L_NUMTIPPS'		=> $anz_tips,

templates/subSilver/em_tjstat.tpl

finden

Code: Alles auswählen

<!-- END playerrow -->
dahinter einfügen (darauf achten: neue Zeile !)

Code: Alles auswählen

<tr>
    <td class="cat" colspan="3">&nbsp;</td>
    <td class="cat" align="center"><strong><span class="genmed">{L_NUMTIPPS}</span></strong></td>
    <td class="cat" colspan="2">&nbsp;</td>
  </tr>
#4

hiermit werden die "nicht getippt"-Texte in rot angezeigt (muß nicht bei jedem Template klappen, einige haben sehr aggressive CSS-Styles ;) )


em_stat.php

finden (2x !)

Code: Alles auswählen

$lang['l_em_winner_not_set']
ersetzen mit

Code: Alles auswählen

'<span style="color:Red;">'.$lang['l_em_winner_not_set'].'</span>'
#5

dieses Snippet bewirkt, daß der Torjäger-Tipp in der Rangliste als ein Tipp mitgezählt wird (so wie der Europameister-Tipp):


em_stat.php

finden

Code: Alles auswählen

'USER_EM_MADE'           => $em_users_data[$i]['user_total_tipps'],
ersetzen mit

Code: Alles auswählen

'USER_EM_MADE'           => $em_users_data[$i]['user_total_tipps'] + (!empty($scorer_tips[$em_users_data[$i]['tipp_user']])),
Viel Spaß damit.


Da ich nichts mehr über meine Tendenzpfeil-Änderung gehört habe, nehme ich mal an, daß das jetzt überall geht ... nennen wir das Ding also jetzt 1.0 8)

B.

Verfasst: 07.06.2008 12:25
von heidelust
didi5000 hat geschrieben:@bügelfalte: sehr, sehr geil, super dass das noch geklappt hat
eine kleine aufmerksamkeit an paypal@beehave.de ist unterwegs :D
von mir jetzt aber auch, das ist ja der HAMMER, was du hier kurz vor "tor"schluss noch alles raushaust :grin:

danke danke danke!!

Verfasst: 07.06.2008 13:07
von wwwthomasbauerattf
VERSION 0.7 verfügbar

Download Link:
http://bauerthomas.ba.funpic.de/Forum/d ... php?cat=23

Änderungen
Hoffentlich alle Änderungsvorschläge die hier auf den Seiten 54 bis 62 gepostet wurden

Snipppets
* Punktesystem auf der Vorrunden- und Finalrundenseite anzeigen lassen (neu)
* Weltmeistertipps nicht sichtbar
* Torjaegertipps nicht sichtbar
* EM-Notify

Testen könnt ihr auf meiner Website:
www.THOMASBAUER.cc

Für das Update von 0.6.2 auf 0.7 ist kein Datenbank-Update erforderlich bzw. verfügbar...

Verfasst: 07.06.2008 13:17
von Fiessi
Hut ab an alle die da mitgewirkt haben auch wenn ich persönlich wohl nicht in den Genuss des ganzen Mods kommen werde!
Ich habe glaube den 3er mit den Änderungen bis Seite ca. 23
Daher nur kurz eine Frage kann ich diesen Mod ändern auf den letzten stand der dinge ohne das ich bereits getippte Spiele verliere?
Allerdings bin ich in solchen dingen nicht der beste daher müsste mir man es gut erklären wenn es gehen sollte :wink:
Danke für Antworten im vorraus und auch für den tollen Support hier über 60 Seiten!

Verfasst: 07.06.2008 13:17
von Fiessi
Hut ab an alle die da mitgewirkt haben auch wenn ich persönlich wohl nicht in den Genuss des ganzen Mods kommen werde!
Ich habe glaube den 3er mit den Änderungen bis Seite ca. 23
Daher nur kurz eine Frage kann ich diesen Mod ändern auf den letzten stand der dinge ohne das ich bereits getippte Spiele verliere?
Allerdings bin ich in solchen dingen nicht der beste daher müsste mir man es gut erklären wenn es gehen sollte :wink:
Danke für Antworten im vorraus und auch für den tollen Support hier über 60 Seiten!

Sorry für den doppelpost :-?

Verfasst: 07.06.2008 13:20
von wwwthomasbauerattf
Fiessi hat geschrieben:Hut ab an alle die da mitgewirkt haben auch wenn ich persönlich wohl nicht in den Genuss des ganzen Mods kommen werde!
Ich habe glaube den 3er mit den Änderungen bis Seite ca. 23
Daher nur kurz eine Frage kann ich diesen Mod ändern auf den letzten stand der dinge ohne das ich bereits getippte Spiele verliere?
Allerdings bin ich in solchen dingen nicht der beste daher müsste mir man es gut erklären wenn es gehen sollte :wink:
Danke im für Antworten im vorraus und auch für den tollen Support hier über 60 Seiten!
in der version 0.6.0 gibts ein db_update.
das hochladen. dort werden alle tabellen gelöscht und neu erstellt bis auf die em_tipps. d.h. die tipps der user bleiben erhalten

nachdem du das db_update gemacht hast, kannst du alle neuen dateien von 0.6.2 hochladen (inkl. kleiner änderung in includes/constants.php)
und dann sollte auch alles funktionieren

Verfasst: 07.06.2008 13:24
von buegelfalte
wwwthomasbauerattf hat geschrieben:VERSION 0.7 verfügbar
Nicht wirklich: [ externes Bild ]