[Beta] WorldCup WebTip 2006 (WM Tippspiel)

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
jorymiller
Mitglied
Beiträge: 27
Registriert: 20.04.2006 19:20

Beitrag von jorymiller »

zweistein hat geschrieben:
Soki Sokrates hat geschrieben: Dann sollte es bei gleichem Punktstand alphabetisch sortiert sein und zwei gleichplatzierte den gleichen Platz inne haben.
Dafür hab ich bereits eine Lösung gecodet und weiter vorne auch schon gepostet. Muss jetzt leider weg.

Empfehle Dir die Suchfunktion. Ansonsten post ich morgen noch mal den Link auf meinen Beitrag.
Soki Sokrates
Mitglied
Beiträge: 130
Registriert: 22.04.2005 04:58

Beitrag von Soki Sokrates »

jorymiller hat geschrieben:
zweistein hat geschrieben:
Soki Sokrates hat geschrieben: Dann sollte es bei gleichem Punktstand alphabetisch sortiert sein und zwei gleichplatzierte den gleichen Platz inne haben.
Dafür hab ich bereits eine Lösung gecodet und weiter vorne auch schon gepostet. Muss jetzt leider weg.

Empfehle Dir die Suchfunktion. Ansonsten post ich morgen noch mal den Link auf meinen Beitrag.
O.K. Danke. ich such gleich mal. Ansonsten warte ich noch gespannt auf zweisteins Ranglisten. *hoff*
Einste1n
Mitglied
Beiträge: 520
Registriert: 09.06.2004 18:54

Beitrag von Einste1n »

Soki Sokrates
Mitglied
Beiträge: 130
Registriert: 22.04.2005 04:58

Beitrag von Soki Sokrates »

Hier noch ein weiterer Anreiz (für spätere MODs) (vielleicht kann ich das ja selbstr bis zur EM2008): http://www.onanierfreun.de/wm2006.php

Die Tabellen direkt sehen zu können, wäre sehr interessant (für später natürlich, muss nicht jetzt sein).

Ansonsten: DANKE hab das mit der Sortierung hingekriegt.
zweistein
Mitglied
Beiträge: 59
Registriert: 04.10.2003 18:32
Kontaktdaten:

Beitrag von zweistein »

@Soki Sokrates: Die Umsetzung der Tendenz hat mich gereizt. Die anderen beiden Statistik Add-ons werde ich wahrscheinlnich Do nachreichen....


Habe nun umgesetzt, dass man die Tendenz sieht:

[ externes Bild ]
(die Lupe ist ein weiteres Addon das ich ev. am Do poste)

ACHTUNG:
Für die Ermittlung der Ränge wird die Aufsplittung der Punkte benutztm daher sollte die Anzeige auch demenstprechend aussehen. Hier das Addon: http://www.phpbb.de/viewtopic.php?p=715103#715103

Features:
- zum Vergleich wird der Rang des letzten Tages mit einem Spiel verwendet
- unabhängig davon ob vorne bspw. (1, -, -, 2, -, 3,...) oder (1,2,3,4,5,...) angezeigt wird wird mit der absoluten Platzierung (1,2,3,4,5,...) verglichen


ACHTUNG:
- Ob die Tendenz tatsächlich richtig angezeigt wird muss die nächsten Tage noch überprft werden.


Hier die benötigten Grafiken (falls jemand schönere, ev rot grün hat, bitte melden):

http://wiwico.de/images/wm/stay.gif
http://wiwico.de/images/wm/up.gif
http://wiwico.de/images/wm/down.gif


Hier die Änderungen (von mehreren Personen bestätigt, siehe folgenden Posts):

Code: Alles auswählen

#
#-----[ COPY ]------------------------------------------
#
images/wm/up.gif
images/wm/stay.gif
images/wm/down.gif


#
#-----[ OPEN ]------------------------------------------
#

include/functions_wm.php

#
#-----[ FIND ]------------------------------------------
# 

	$db->sql_freeresult($result);

	return $wm_users;

 }


#
#-----[ ADD, AFTER ]------------------------------------------
# 
  // Get wm users data and points 	up to yesterday
 // for historical information
 function get_wm_user_points_up_to_yesterday() {

        global $db;

	// Load Config
		$wm_config    = array();  // Config values
		$wm_config    = get_wm_config();
		
	$timestamp_last_game_before_this_day = get_timestamp_for_ranking_history();

    //
	// Get users data
	//
	
	$sql = "SELECT A.tipp_user , sum( A.tipp_points ) AS user_points, count( A.tipp_points ) AS user_total_tipps, count( B.tipp_points ) AS user_points_tendency, count( C.tipp_points ) AS user_points_difference, count( D.tipp_points ) AS user_points_result 
		 FROM  " . WM_TIPPS_TABLE . " A 
		 LEFT JOIN " . WM_TIPPS_TABLE . " B ON A.tipp_id = B.tipp_id 
		 AND A.tipp_points = " . $wm_config['points_tendency'] . " 
		 LEFT JOIN " . WM_TIPPS_TABLE . " C ON A.tipp_id = C.tipp_id 
		 AND A.tipp_points = " . $wm_config['points_tordiff'] . " 
		 LEFT JOIN " . WM_TIPPS_TABLE . " D ON A.tipp_id = D.tipp_id 
		 AND A.tipp_points = " . $wm_config['points_match'] . "
		 WHERE A.tipp_time < ". $timestamp_last_game_before_this_day ."
		 GROUP BY A.tipp_user 
		 ORDER BY user_points DESC, user_points_result DESC, user_points_difference DESC, user_points_tendency DESC";


				
	if( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not get historical user tipps data', '', __LINE__, __FILE__, $sql);
	}

	$wm_user_points_up_to_yesterday = array();
	while ( $row = $db->sql_fetchrow($result) )
	{
	//	$wm_users[][$row['tipp_user']] = $row;
	   $wm_user_points_up_to_yesterday[] = $row['tipp_user'];
	}
	$db->sql_freeresult($result);

	return $wm_user_points_up_to_yesterday;

 }
 
 function get_timestamp_for_ranking_history(){

    global $db;
		
	$timestamp_now=time();
	
	$month = strftime("%m",$timestamp_now);
	$day = strftime("%d",$timestamp_now);
	$year = strftime("%Y",$timestamp_now);
	
	$timestamp_today_begin = mktime(0,0,0,$month,$day,$year);
	$timestamp_today_end = mktime(23,59,0,$month,$day,$year);
	
	$timestamp_first_game_of_today;
	$timestamp_first_game_of_last_day_with_a_game;
	$timestamp_last_game_of_last_day_with_a_game;
	
	// get playing times of today
	$sql = "SELECT game_time 
		FROM  " . WM_GAMES_TABLE . "
		WHERE game_time > ". $timestamp_today_begin ." 
			AND game_time < ". $timestamp_today_end ." 
        ORDER BY game_time ASC";
		
	if( !($result_times = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not get playing times of today', '', __LINE__, __FILE__, $sql);
	}	
	
	$row_times = $db->sql_fetchrow($result_times);
	$timestamp_first_game_of_today = $row_times['game_time'];


	if($timestamp_first_game_of_today < $timestamp_now){
		// first game of today has started -> use all results before this game
		return $timestamp_first_game_of_today;
	}else{
		// first game of today is not started 
		// saerch the first game of last playing day
		$sql = "SELECT game_time 
			FROM  " . WM_GAMES_TABLE . "
			WHERE game_time < ". $timestamp_today_begin ." 
			ORDER BY game_time DESC";
		if( !($result_times = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not get playing times of today', '', __LINE__, __FILE__, $sql);
		}	
		
		$row_times = $db->sql_fetchrow($result_times);
		$timestamp_last_game_of_last_day_with_a_game = $row_times['game_time'];
			
		$month_last_day_with_a_game = strftime("%m",$timestamp_last_game_of_last_day_with_a_game);
		$day_last_day_with_a_game = strftime("%d",$timestamp_last_game_of_last_day_with_a_game);
		$year_last_day_with_a_game = strftime("%Y",$timestamp_last_game_of_last_day_with_a_game);
		
		$timestamp_last_day_with_a_game_begin = mktime(0,0,0,$month_last_day_with_a_game,$day_last_day_with_a_game,$year_last_day_with_a_game);
		$timestamp_last_day_with_a_game_end = mktime(23,59,0,$month_last_day_with_a_game,$day_last_day_with_a_game,$year_last_day_with_a_game);
			
		
		$sql = "SELECT game_time 
			FROM  " . WM_GAMES_TABLE . "
			WHERE game_time > ". $timestamp_last_day_with_a_game_begin ." 
				AND game_time < ". $timestamp_last_day_with_a_game_end ." 
			ORDER BY game_time ASC";
		if( !($result_times = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not get playing times of today', '', __LINE__, __FILE__, $sql);
		}	
		
		$row_times = $db->sql_fetchrow($result_times);
		$timestamp_first_game_of_last_day_with_a_game = $row_times['game_time'];

		return $timestamp_first_game_of_last_day_with_a_game+1; // +1 becaouse of the < comparison
	}

 }
 
 
 function get_rank_of_yesterday($userid){
 
	$wm_user_points_up_to_yesterday = get_wm_user_points_up_to_yesterday();
	
	$rank_of_yesterday = array_search($userid, $wm_user_points_up_to_yesterday) + 1; // +1 because erray starts with index 0	
 	 
	 return $rank_of_yesterday;	
 }



#
#-----[ OPEN ]------------------------------------------
#
wm_stats.php

#
#-----[ FIND ]------------------------------------------
# 

for ( $i = 0; $i < count($wm_users_data); $i++ )
{

#
#-----[ ADD, AFTER ]------------------------------------------
# 

	// absolute position now
	$int_userpos_absolute = $i+1;
	
	// user position yesterday
	$int_userpos_yesterday = get_rank_of_yesterday($wm_users_data[$i]['tipp_user']);

	// compare the absolute positions
	if($int_userpos_yesterday < $int_userpos_absolute ){
		$userpos_change = '<img src="./images/wm/down.gif" alt="Down" border="0" />';	
	}else if ($int_userpos_yesterday == $int_userpos_absolute ){
		$userpos_change = '<img src="./images/wm/stay.gif" alt="Stay" border="0" />';		
	}else if ($int_userpos_yesterday > $int_userpos_absolute ){
		$userpos_change = '<img src="./images/wm/up.gif" alt="Up" border="0" />';	
	} 


#
#-----[ FIND ]------------------------------------------
# 

      'USER_WM_MADE'      => $wm_users_data[$i]['user_total_tipps'],

#
#-----[ ADD, AFTER ]------------------------------------------
# 

	  'USER_WM_POS_CHANGE' => $userpos_change,


#
#-----[ OPEN ]------------------------------------------
#
wm_stats_body.tpl


#
#-----[ FIND ]------------------------------------------
# 

><span class="cattitle"><a href="#">{L_WM_TITLE}</a></span></td>

#
#-----[ ATTENTION - special change ]------------------------------------------
#

Count up the colspan, for example

CHANGE <td class="cat" colspan="8"> 
TO     <td class="cat" colspan="9">

#
#-----[ FIND ]------------------------------------------
# 

    <td class="row2" align="center" nowrap="nowrap" valign="middle">  <strong><span class="genmed">{L_WM_STATS_POS}</span></strong>  </td>

#
#-----[ ADD, AFTER ]------------------------------------------
# 

    <td class="row2" align="center" nowrap="nowrap" valign="middle"> </td>


#
#-----[ FIND ]------------------------------------------
# 

    <td class="row1" align="center" nowrap="nowrap" valign="middle">  <strong><span class="genmed">{userrow.USER_POS}</span></strong>  </td>


#
#-----[ ADD, AFTER ]------------------------------------------
# 

    <td class="row1" align="center" nowrap="nowrap" valign="middle"> {userrow.USER_WM_POS_CHANGE}</td>

Zuletzt geändert von zweistein am 14.06.2006 13:15, insgesamt 3-mal geändert.
SoLo1905

Beitrag von SoLo1905 »

[ externes Bild ]

*klick* dann auf der seite in der mitte :P selber gemacht ^^
Soki Sokrates
Mitglied
Beiträge: 130
Registriert: 22.04.2005 04:58

Beitrag von Soki Sokrates »

Schade, dann warte ich bis Donnerstag sehnsüchtigst.

Andererseits super, dass du dich an die Tendenzanzeige gesetzt hast. Bau ich gleich mal ein und feedbacke!
Soki Sokrates
Mitglied
Beiträge: 130
Registriert: 22.04.2005 04:58

Beitrag von Soki Sokrates »

Klappt wunderbar! BRAVO.

Ein grüner Pfeil wäre wohl wirklich schöner, jedoch hat der gepostete Pfeil von Solo1905 den Nachteil an entsprechender Stelle nicht transparent zu sein und somit etwas unschön zu sein auf z.B. ockergelben Background. Habe deshalb wieder den blauen genommen.

BRAVO, BRAVO!

Weiter so. Vielleicht bist du ja schneller als Don. 8)
Soki Sokrates
Mitglied
Beiträge: 130
Registriert: 22.04.2005 04:58

Beitrag von Soki Sokrates »

Mir ist grad was aufgefallen in meiner Rangliste:

1 1ter Brasilien 3x 6x 2x 37
2 2ter Brasilien 3x 4x 3x 33
3 3ter A Deutschland 4x 2x 3x 32
3ter B Deutschland 3x 1x 7x 32

Wegen den 4 richtigen Tippen müsste 3ter A nicht nur bei der Sortierung (hier ja richtig) vor 3ter B liegen, Sondern und vor allem einen eigenen Platz inne haben, weil er trotz der Punkte bessere Perfect-Tips hatte.

Also 3ter A als einzigster 3. und 3ter B eigentlich 4ter.

Kann man das also nicht nur in der Sortierfolge sondern auch der Rangfolge einbauen?

Ausserdem versteh ich nicht wieso da immer stehen muss wieviel Tips jeder abgegeben hat. Dient zwar a bissel der Errinerung, falls man noch was tippen muss, aber so richtig nützen tut es nicht. Viel eher fände ich es gut, (muss ja auch nicht in einer Spalte sein) die Anzeige wieviele Spiele bereits vorbei sind und in die Wertung eingegangen sind. Durch die leichte Benotung (5Pkt.) könnte man dann schnell sehen, wieviel max. Punkte bereits mögich waren (vielleicht auch wieviele noch möglich sind).

Wenn Spalte, dann könnte man zeigen, bei wievielen erfolgten Spielen man auch wirklichmitgetippt hat, dann kann man vielleicht noch sehen, dass ein Schussel vergessen hat 3 Spiele zu tippen und zumindest relativ gesehen ein sehr guter Tipper ist.

Nur so Ideen, die mir morgens so durch den Kopf gehen. Vielleicht sind diese ja auch Humbuck.

Ach so: Was ich noch endlustig fände, wäre wenn man die Geschlechtszeichen aus der Datenbank entziehen kann und neben dem Namen in die Rangliste ausführen kann. Einige haben es im Profil zwar nicht angegeben, aber wenn es doch viele machen, sieht man wer beim Kampf der Geschlechter besser tippt.

[ externes Bild ]
[ externes Bild ]
Benutzeravatar
plACEbo
Mitglied
Beiträge: 538
Registriert: 16.12.2003 12:22

Beitrag von plACEbo »

Soki Sokrates hat geschrieben:Klappt wunderbar! BRAVO.

Ein grüner Pfeil wäre wohl wirklich schöner, jedoch hat der gepostete Pfeil von Solo1905 den Nachteil an entsprechender Stelle nicht transparent zu sein und somit etwas unschön zu sein auf z.B. ockergelben Background. Habe deshalb wieder den blauen genommen.

BRAVO, BRAVO!

Weiter so. Vielleicht bist du ja schneller als Don. 8)
Hier der Pfeil in grün mit Transparenz in den Aussenbereichen:
[ externes Bild ] http://www.poplatschky.de/images/wm/up.gif

mfg
Vorwärts immer, Rückwärts nimmer!
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“