Hallo zäme,
ich habe anhand der von Tobias geposteten Anleitung unsere "all-time records" aktualisiert. Früher hatte ich eine separate Statistik Tabelle geführt, wo ich die Daten alle aus den vorhandenen Ligen mühsam zusammengetragen habe. Heute funktioniert dies anhand der Anleitung von Tobias alles automatisch und auch Spielrunden aktuell - Herzlichen Dank!
Ich hatte aber einige Änderungen vorgenommen, da ich das ganze in Typo3 umgesetzt habe.
- Als erstes hatte ich das ganze php script in ein eigenes "php_content" Inhaltselement eingefügt:
Code:
<?php
$Saisonfile = "ehcballtime";
$liga0 = "typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcballtime.stat";
$liga = array(
"typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcb0102.stat",
"typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcb0203.stat",
"typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcb0304.stat",
"typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcb0405.stat",
"typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcb0506.stat",
"typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcb0607.stat",
"typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcb0708.stat",
"typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcb0809.stat"
);
$handle0 = fopen($liga0, "w+");
$Spalten ="Name§T§A§P§Punkte§2M§5M§10M§SD§MS§S§Strafen"; // frei auf eure Bedürfnisse anpassbar
fputs($handle0,$Spalten."\n");
foreach ($liga as $ligaeinzeln) {
$handle1 = fopen($ligaeinzeln, "r");
fgets($handle1, 300);
fgets($handle1, 300);
while (!feof($handle1)) {
$zeile = fgets($handle1, 300);
$teile = explode("§", $zeile);
$teilewrite = $teile[0]."§".$teile[2]."§".$teile[3]."§0§".$teile[4]."§".$teile[5]."§".$teile[6]."§".$teile[7]."§".$teile[8]."§".$teile[9]."§0§".$teile[10]; // müssen hier genauso viele Teile sein, wie oben Spalten angegeben wurden
if (!eregi ("\n",$teilewrite)) {
//$teilewrite = $teilewrite."\n";
}
if (!eregi ("§§§", $teilewrite)) {
fwrite($handle0, $teilewrite);
}
} // while
} // foreach
$liga = array(
"typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcb_early_years.stat"
);
foreach ($liga as $ligaeinzeln) {
$handle1 = fopen($ligaeinzeln, "r");
fgets($handle1, 300);
while (!feof($handle1)) {
$zeile = fgets($handle1, 300);
$teile = explode("§", $zeile);
$teilewrite = $teile[0]."§0§0§".$teile[1]."§".$teile[1]."§0§0§0§0§0§".$teile[2]."§".$teile[2]; // müssen hier genauso viele Teile sein, wie oben Spalten angegeben wurden
if (!eregi ("\n",$teilewrite)) {
$teilewrite = $teilewrite."\n";
}
if (!eregi ("§§§", $teilewrite)) {
fwrite($handle0, $teilewrite);
}
} // while
} // foreach
fclose($handle0); // damit ist die erste Gesamt-stat-Datei geschrieben, diese wird im folgenden auf mehrfach vorkommende Spieler geprüft
$dataarray = file($liga0);
$anzahlarray = count($dataarray);
$handle2 = fopen($liga0, "w+");
fputs($handle2, $Spalten."\n");
for($i = 1; $i < $anzahlarray; $i++) {
$zeilearray = explode("§", $dataarray[$i]);
$name[$i] = $zeilearray[0];
$t[$i] = $zeilearray[1];
$a[$i] = $zeilearray[2];
$p[$i] = $zeilearray[3];
$punkte[$i] = $zeilearray[4];
$zwei[$i] = $zeilearray[5];
$fuenf[$i] = $zeilearray[6];
$zehn[$i] = $zeilearray[7];
$sd[$i] = $zeilearray[8];
$ms[$i] = $zeilearray[9];
$s[$i] = $zeilearray[10];
$strafen[$i] = $zeilearray[11]; // diese letzten 11 Zeilen müsst ihr wieder genau auf eure Bedürfnisse anpassen
for($j = $i + 1; $j < $anzahlarray; $j++) {
$zeilearray = explode("§", $dataarray[$j]);
$name[$j] = $zeilearray[0];
$t[$j] = $zeilearray[1];
$a[$j] = $zeilearray[2];
$p[$j] = $zeilearray[3];
$punkte[$j] = $zeilearray[4];
$zwei[$j] = $zeilearray[5];
$fuenf[$j] = $zeilearray[6];
$zehn[$j] = $zeilearray[7];
$sd[$j] = $zeilearray[8];
$ms[$j] = $zeilearray[9];
$s[$j] = $zeilearray[10];
$strafen[$j] = $zeilearray[11];// bitte wieder auf eure Bedürfnisse anpassen
if ($name[$j] == $name[$i] and $name[$i] != "") { // Prüfung ob gleiche Namen vorhanden sind
$t[$i] = $t[$i] + $t[$j]; // hier werden die tore addiert
$a[$i] = $a[$i] + $a[$j]; // hier werden die assists addiert
$p[$i] = $p[$i] + $p[$j]; // hier werden die früheren punkte addiert
$punkte[$i] = $punkte[$i] + $punkte[$j]; // hier werden alle punkte addiert
$zwei[$i] = $zwei[$i] + $zwei[$j]; // hier werden die zweiin addiert
$fuenf[$i] = $fuenf[$i] + $fuenf[$j]; // hier werden die fuenfin addiert
$zehn[$i] = $zehn[$i] + $zehn[$j]; // hier werden die zehnin addiert
$sd[$i] = $sd[$i] + $sd[$j]; // hier werden die spieldauer addiert
$ms[$i] = $ms[$i] + $ms[$j]; // hier werden die matchstrafen addiert
$s[$i] = $s[$i] + $s[$j]; // hier werden die früheren strafen addiert
$strafen[$i] = $strafen[$i] + $strafen[$j]; // hier werden alle punkte addiert
$dataarray[$j] = "";
}
}
$zeilealles[$i] = $name[$i]."§".$t[$i]."§".$a[$i]."§".$p[$i]."§".$punkte[$i]."§".$zwei[$i]."§".$fuenf[$i]."§".$zehn[$i]."§".$sd[$i]."§".$ms[$i]."§".$s[$i]."§".$strafen[$i]; // hier wird die Datenzeile letztlich geschrieben, bitte wieder genau an eure Bedürfnisse anpassen
if (!eregi ("\n",$zeilealles[$i])) {
$zeilealles[$i] = $zeilealles[$i]."\n";
}
if (!eregi ("§§§", $zeilealles[$i])) {
fwrite($handle2, $zeilealles[$i]);
}
}
fclose($handle2);
?>
Beachtet dabei ganz oben die Pfade nach
Code:
typo3conf/ext/ligamanager4/lmo/addon/spieler/stats/ehcballtime.stat
Jetz muss nur noch eine "dummy"-liga erstellt werden, welche gleich heisst wie die stat-Datei und schon könnt ihr die Datei zur Not auch mal im Backend von Typo3 kontrollieren oder editieren und die dazugehörende cfg-Datei erstellen.
Anschliessend braucht es auf der Seite noch ein ContentElement mit dem PlugIn des Ligamanagers und der Funktion Spielerstatistik und dem Liganamen in meinem Fall ehcballtime.l98 und schon könnt ihr die normalen Statistikfunktionen der ligamanager4 Extension benutzen. Damit das alles funktioniert müssen die Dateien aber eben im Verzeichnis
Code:
spieler/stats
liegen und nicht in einem parallelen Verzeichnis
Code:
spieler-verein/stats
, zum testen empfiehlt sich aber das paralelle Verzeichnis allemal.
Hier
http://www.ehcbellmund.ch/index.php?id=63 könnt ihr euch das ganze mal anschauen, ich habe das php script ganz unten auf der Seite platziert, so stört es nicht sonderlich. Die Statisitkdatei wird aber so erst geschrieben wenn die Daten der Statistik bereits geladen sind, es gibt so also eine "Aktualisierungsverschiebung" von einem Seitenaufruf, mit dem kann ich aber gut leben.