<?php
include("../config.php3");
include($BIB."bib_generic.php3");
#include($BIB."bib_graphique.php3");


####################
# Administration script defaults
####################
# pas de timeout possible qql soit l'action effectuée
set_time_limit($TIME_LIMIT);

#############################
# CONSTANTS
#############################
$LOG_FILE = "stats";
$EXT = ".log";
$LOG_FILE_DATE_FORMAT = "d-m-Y";
$DATE_FORMAT = "Y-m-d H:i:s";

$Pas = $Pas_Heures * 3600;

#############################
# START functions
#############################
function lStrToTime($str)
{
	$t = split("[ :-]",$str);
	return mktime($t[3],$t[4],$t[5],$t[1],$t[2],$t[0]);
}

function TimeToStr($aTime)
{
	global $DATE_FORMAT;
	return date($DATE_FORMAT,$aTime);
}

function fileDateFormat($aTime)
{
	global $LOG_FILE_DATE_FORMAT;
	return date($LOG_FILE_DATE_FORMAT,$aTime);
}

function showRow($row)
{
	static $iColor;
	
	$color = ($iColor % 2 == 0)? "#FFFFFF":"#E8E8E8";
	$iColor++;

	$t = explode(";",$row);
	echo "<tr bgcolor=".$color.">";
	for($r=0;$r<count($t);$r++)
		echo "<td>".$t[$r]."</td>";
	echo "</tr>";
}
#############################
# END functions
#############################
?>
<html>
<head></head>
<link rel="stylesheet" href="admin.css">
<body rightmargin=0>
<div align=center class=trTitle>Statistiques - Evolution des joueurs</div>
<br>
<?php
if (isset($ok))
{
	# definition du nom du fichier de log
//	$fileName=$LOG_FILE.fileDateFormat(time()).$EXT;
	
	# on ouvre le fichier de log
//	$logFile = fopen($fileName,"w");
	
	# calcule la date max
	$dMax = db_fetch_array(main_db_query("SELECT MAX(Time) AS maxTime FROM Players"));
	$dMin = db_fetch_array(main_db_query("SELECT MIN(Time) AS minTime FROM Players"));

//	$dateSup = (time_diff($dMin["minTime"],$dateDepart)<0)?$dMin["minTime"]:$dateDepart;
//	$dateMax = (time_diff($dMax["maxTime"],$dateFin)>0)?$dMax["maxTime"]:$dateFin;
	if ( time_diff($dMax["maxTime"],$dateFin) > 0 )
	{
	  $year = intval(strtok($dMax["maxTime"], "- :"));
	  $month = intval(strtok("- :"));
	  $day = intval(strtok("- :"));
	  $hour = intval(strtok("- :"));
	  $minute = intval(strtok("- :"));
	  $second = intval(strtok("- :"));
	  $date_done = mktime($hour, $minute, $second, $month, $day, $year);
		$dateMax = date("Y-m-d 00:00:00", $date_done+86400+86400);
	}
	else
	{
		$dateMax = $dateFin;
	}

	if ( time_diff($dMin["minTime"],$dateDepart)<0 )
	{
	  $year = intval(strtok($dMin["minTime"], "- :"));
	  $month = intval(strtok("- :"));
	  $day = intval(strtok("- :"));
	  $hour = intval(strtok("- :"));
	  $minute = intval(strtok("- :"));
	  $second = intval(strtok("- :"));
	  $date_done = mktime($hour, $minute, $second, $month, $day, $year);
		$dateSup = date("Y-m-d 00:00:00", $date_done);
	}
	else
	{
		$dateSup = $dateDepart;
	}
	
?>
<div class=universBold align=center>
RESULTAT DE LA REQUETE</div>
<div class=universBold>
Date de debut : <?php echo $dateSup ?>
<br>
Date de fin   : <?php echo $dateMax ?>
</div>
<br>
<div align=left>
<b>Définition des termes :</b><br>
<br>
	Nb joueurs : nombre de joueurs total
<br>	Nb parrainés : nombre de joueurs total ayant été parrainés
<br>	ratio parrainés/total : -
<br>	gain en joueurs : nombre de joueurs en plus par rapport au pas précédent
<br>	gain en joueurs direct : nombre de joueurs inscrits directement (sans parrainage) en plus par rapport au pas précédent
<br>	gain en parrainés : nombre de joueurs (ayant été parrainés) en plus par rapport au pas précédent
<br>	ratio parrainés/direct : -
<br>	% gain en joueur : progression du nombre joueur en pourcentage
<br>	% gain en parrainés : progression du nombre de joueurs parrainés en pourcentage
</div>
<br><br>
<?php
flush();
?>

<table border=0 cellpadding=4 cellspacing=4 class=univers>
	<tr class=trTitle>
		<td>Date</td>
		<td>Nb joueurs</td>
		<td>Nb parrainés</td>
		<td>ratio parrainés/total</td>
		<td>gain en joueurs</td>
		<td>gain en joueurs direct</td>
		<td>gain en parrainés</td>
		<td>ratio parrainés/direct</td>
		<td>% gain en joueur</td>
		<td>% de gain en parrainés</td>
	</tr>
<?php
	$i=0;
	do
	{
		$i++;
		
		# nbr total de joueurs
		$nbPlayers = db_fetch_array(main_db_query("SELECT COUNT(Id) AS total FROM Players WHERE Time<='".$dateSup."'"));
		
		# nbr total de joueurs
		$nbFilleuls = db_fetch_array(main_db_query("SELECT COUNT(Id) AS total FROM Players WHERE Time<='".$dateSup."' AND FatherPId!='0'"));
		
		# progression en joueurs
		$nProgPlayers = ($nbPlayers[total]-$lastNbPlayers);
		
		# progression en % de joueurs
		$pProgPlayers = ($nbPlayers[total]==0)?0:number_format(100*(1-$lastNbPlayers/$nbPlayers[total]),2);
		
		# progression en filleuls
		$nProgFilleuls = ($nbFilleuls[total]-$lastNbFilleuls);
		
		# progression en % de filleuls
		$pProgFilleuls = ($nbFilleuls[total]==0)?0:number_format(100*(1-$lastNbFilleuls/$nbFilleuls[total]),2);
		
		# progression en joueur inscrits directement
		$nProgDirect = $nProgPlayers - $nProgFilleuls;
		
		# progression en % en joueur inscrits directement
		$ratioDirect = ($nProgDirect==0)?0:number_format(100*$nProgFilleuls/$nProgDirect,2);
		
		# ratio
		if ($nbFilleuls[total]==0)
			$ratio=0;
		else
			$ratio = number_format($nbFilleuls[total]/$nbPlayers[total]*100,2);
		
		# ecriture dans le log file
		$m = $dateSup.";".
			$nbPlayers[total].";".
			$nbFilleuls[total].";".
			$ratio.";".
			$nProgPlayers.";".
			$nProgDirect.";".
			$nProgFilleuls.";".
			$ratioDirect.";".
			$pProgPlayers.";".
			$pProgFilleuls.
			"\n";
			
//		fwrite($logFile,$m);
		
		# DEBUG écran
		showRow($m);
		flush();
		
		# incremente d'un pas
		$dateSup = TimeToStr(lStrToTime($dateSup)+$Pas);
		$lastNbPlayers = $nbPlayers[total];
		$lastNbFilleuls = $nbFilleuls[total];
		
		########### GRAPHS ###############
		/*
		$tabNbPlayers[0][strtotime($dateSup)] = $nbPlayers[total];
		$tabNbPlayers[1][strtotime($dateSup)] = $nbFilleuls[total];
		$tabNbPlayers[2][strtotime($dateSup)] = $ratio;
		$tabNbPlayers[3][strtotime($dateSup)] = $nProgPlayers;
		*/
		##################################
	}
	while(time_diff($dateMax,$dateSup)<0);	
	
	echo "</table>";
	
	########### GRAPHS ###############
	/*
	$tabType[0] = 1;
	$pRepereOptimal = 0;
	$RepereColors['width'] = 100 + 15*$i;
	$RepereColors['height'] = 400;
	$RepereColors['Margin'] = 60;
	$RepereColors['xIsDate'] = 1;
	$RepereColors['BgColor'] = "FFFFFF";
	$RepereColors['xColor'] = "000000";
	$RepereColors['yColor'] = "000000";
	$RepereColors['xValueColor'] = "33cc33";
	$RepereColors['yValueColor'] = "33cc33";
	$RepereColors['dotColor'] = "CCCCCC";
	*/
	//echo "Ici votre courbe de KF :<br>";
	//array_to_graphe($tabNbPlayers, 0, "FF0000", $tabType, $RepereColors, $pRepereOptimal, $G_BY_DAY, $G_ECART_TYPE, "../Public/nbPlayers");
	
	##################################
	
//	fclose($logFile);
	
	# mise à disposition du fichier
//	echo "<a href=\"".$SERVER_URL."stats/".$fileName."\">Fichier de résultats</a>";
}
?>
Cette console permet de suivre précisément<br>
l'évolution des joueurs inscrits entre deux date (<i>Date de début</i> et <i>Date de fin</i>),<br>
 avec un pas à définir (<i>pas</i>).<br><br>
Cas typique : pour avoir l'évolution complète du jeu jour après jour,<br>
Il suffit de cliquer sur le bouton.
<br>
<form>
<table class=universBold>
	<tr>
		<td>
Date de début : (AAAA-MM-JJ HH:MM:SS)
		</td>
		<td>
		<input type=text name=dateDepart value="<?php 
		if ($dateDepart == "")
			echo $DATE_START_GAME;
		else
			echo $dateDepart;
		?>">
		</td>
	</tr>
	<tr>
		<td>Date de fin : </td>
		<td><input type=text name=dateFin value="<?php 
		if ($dateDepart == "")
			echo $DATE_END_GAME;
		else
			echo $dateFin; ?>"></td>
	</tr>
	<tr>
		<td>Pas (en heures) :</td>
		<td><input type=text name=Pas_Heures value="<?php 
if ($Pas_Heures == "")
	echo "24";
else
	echo $Pas_Heures; ?>"></td>
	</tr>
	<tr>
		<td>
<input type=hidden name=ok value=1>
<br>
<input type=submit>
</form>
</td></tr></table>

</body>
</html>
