From 7c08f37c552781b45f4110dc78ef645dad8838ec Mon Sep 17 00:00:00 2001 From: TonyFord <tonyford@strategy-investor.de> Date: Fri, 5 Aug 2022 17:15:54 +0200 Subject: [PATCH] add Spielerdebuets add saison 35 --- html/35.php | 32 +++++++++ html/_data/global.yml | 2 +- html/_layouts/default.php | 124 +++++++++++++++++++++++++++++++++- html/assets/css/custom.scss | 21 ++++++ html/functions/db_methods.php | 93 ++++++++++++++++++++++--- 5 files changed, 261 insertions(+), 11 deletions(-) create mode 100644 html/35.php diff --git a/html/35.php b/html/35.php new file mode 100644 index 0000000..315c0f1 --- /dev/null +++ b/html/35.php @@ -0,0 +1,32 @@ +--- +layout: default +saison: 35 +date: '2022-08-11' +ligaspieltag: 7 +step: 1 +finals_step: 2 +finalteams: 8 +startliste: + - + - bw + - es + - is + - nl + - se + - co + - cm + - pl + - hr + +startliste_partien_pause: + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 2 + - 0 +--- diff --git a/html/_data/global.yml b/html/_data/global.yml index a4e9c0a..e872b39 100644 --- a/html/_data/global.yml +++ b/html/_data/global.yml @@ -1 +1 @@ -saison_now: 33 +saison_now: 35 diff --git a/html/_layouts/default.php b/html/_layouts/default.php index 1482352..c33ecca 100644 --- a/html/_layouts/default.php +++ b/html/_layouts/default.php @@ -10,6 +10,13 @@ include_once('functions/db_methods.php'); $csv=$_POST['csv']; $secret=''; +$UNKNOWN=[]; +$T = db_getFromTeams(); +foreach( $T as $t ){ + $u=db_getUnknownSpieler( $t['id'] ); + if( count($u) > 0 ) $UNKNOWN[]=$u; +} + if( !empty($csv) ){ $secret=$_POST['secret']; @@ -46,7 +53,7 @@ if( !empty($csv) ){ <head> <link rel="stylesheet" href="assets/css/all.min.css"> - <link rel="stylesheet" href="assets/css/custom.css?6"> + <link rel="stylesheet" href="assets/css/custom.css?7"> <script src="assets/js/jquery.min.js"></script> <script src="assets/js/script.js?2"></script> </head> @@ -58,6 +65,7 @@ if( !empty($csv) ){ var DATA={{ site.data | jsonify }}; var SAISON='{{ page.saison }}'; var SAISON_NOW='{{ site.data.global.saison_now }}'; + var TEAMS=<?=json_encode( db_getFromTeams() )?>; var T2ID={}; var FINALTEAMS={{ page.finalteams | default: 4 }}; @@ -79,6 +87,8 @@ if( !empty($csv) ){ ); } var SPIELER=<?=json_encode( db_getFromSpieler() )?>; + var UNKNOWN=<?=json_encode( $UNKNOWN )?>.reduce((a,b) => (a.concat(b))); + var NEUESPIELER=<?=json_encode( db_getLatestFromSpieler() )?>; var ERGEBNISSE=<?=json_encode( db_getFromErgebnisse() )?>; var STAT_SAISON=<?=json_encode( db_getFromStatistikBySaison(SAISON))?>; var STAT_ALL=<?=json_encode( db_getFromStatistik())?>; @@ -123,6 +133,7 @@ if( !empty($csv) ){ const STEP={{ page.step | default: '1' }}; const FINALS_STEP={{ page.finals_step | default: '0' }}; const LIGASPIELTAG={{ page.ligaspieltag | default: '1' }}; + const SAISON_START_DATE=new Date( '{{ page.date }}' ).toJSON(); // check ob alle Teams der Startliste in DB vorhanden sind var check= @@ -149,6 +160,102 @@ if( !empty($csv) ){ $('#tabelle_'+$(this).text().toLowerCase()).toggleClass('d-none',false); } ); + $('#news tbody').html(''); + UNKNOWN.forEach( + + function(v,i){ + + if( v.nt == 'xx' ) return; + var tr = document.createElement('tr'); + + var td = document.createElement('td'); + + var st=parseInt(( new Date() - new Date(v.zeitstempel) ) / 1000 / 3600 / 24); + + $(td).text( st == 1 ? 'vor ' + st + ' Tag' : 'vor ' + st + ' Tagen' ); + $(tr).append(td); + + var td = document.createElement('td'); + var img = document.createElement('img'); + img.src='images/flags/' + ( v.flag ? v.flag : v.nt ) + '.svg'; + img.classList='flags'; + $(td).append(img); + $(tr).append(td); + + var td = document.createElement('td'); + td.classList='mono'; + var a = document.createElement('a'); + a.href='https://ultrasoccer.de/playerprofile/?id='+v.SpielerID; + a.target='ultrasoccer'; + $(a).text(v.SpielerID); + $(td).append(a); + $(tr).append(td); + + var td = document.createElement('td'); + var a = document.createElement('a'); + a.href='https://ultrasoccer.de/players/?id='+v.teamID; + a.target='ultrasoccer'; + $(a).text(v.team); + $(td).append(a); + $(tr).append(td); + + $('#news tbody').append(tr); + + } + ); + + NEUESPIELER.forEach( + + function(v,i){ + var team=TEAMS.filter((a) => ( a.nt == v.nt ))[0]; + if( team == undefined ) return; + + var tr = document.createElement('tr'); + + var td = document.createElement('td'); + + var st=parseInt(( new Date() - new Date(v.zeitstempel) ) / 1000 / 3600 / 24); + + + $(td).text( st == 1 ? 'vor ' + st + ' Tag' : 'vor ' + st + ' Tagen' ); + $(tr).append(td); + + var td = document.createElement('td'); + var img = document.createElement('img'); + + img.src='images/flags/' + ( team.flag ? team.flag : team.nt ) + '.svg'; + img.src='images/flags/' + v.nt + '.svg'; + + img.classList='flags'; + $(td).append(img); + $(tr).append(td); + + var td = document.createElement('td'); + var a = document.createElement('a'); + a.href='https://ultrasoccer.de/playerprofile/?id='+v.id; + a.target='ultrasoccer'; + $(a).text(v.name); + var span=document.createElement('span'); + $(span).text(' ('+v.age+')'); + $(td).append(a); + $(td).append(span); + $(tr).append(td); + + var td = document.createElement('td'); + var a = document.createElement('a'); + a.href='https://ultrasoccer.de/players/?id='+v.teamID; + a.target='ultrasoccer'; + $(a).text(team.name); + $(td).append(a); + $(tr).append(td); + + + $('#news tbody').append(tr); + + } + ); + + } ); @@ -270,6 +377,19 @@ if( !empty($csv) ){ </tbody> </table> + <h3>Spielerdebüts</h3> + <table id="news"> + <thead> + <th>Zeit</th> + <th>Nt</th> + <th>Spieler</th> + <th>Team</th> + </thead> + <tbody> + + </tbody> + </table> + </div> <div id="partien" class="div_left"> @@ -284,6 +404,8 @@ if( !empty($csv) ){ + + </body> </html> diff --git a/html/assets/css/custom.scss b/html/assets/css/custom.scss index 024e1b2..84bfd10 100644 --- a/html/assets/css/custom.scss +++ b/html/assets/css/custom.scss @@ -340,3 +340,24 @@ td.n { color: firebrick; } } } } + +#news { + text-align: left; + thead { display: table; } + tbody { display: block; max-height: 200px; overflow: auto; } + tr > th,td { + &:nth-child(1) { width: 100px; } + &:nth-child(2) { width: 30px; } + &:nth-child(3) { width: 270px; } + &:nth-child(4) { width: 200px; } + } + tr > td:nth-child(1){ font-size: 0.7em; } + tr:nth-child(odd){ + background: whitesmoke; + } +} + +.mono { + font-family: monospace; + font-size: 1.2em; +} diff --git a/html/functions/db_methods.php b/html/functions/db_methods.php index 82fb623..385ce25 100644 --- a/html/functions/db_methods.php +++ b/html/functions/db_methods.php @@ -99,6 +99,13 @@ function db_addSpieler( $csv, $secret ){ $C[]=$user['id']; + if( $S=db_getFromSpielerById($C[2]) ){ + $C[]='"'.$S['zeitstempel'].'"'; + } else { + $C[]='NOW()'; + } + + $csv=implode($C,','); $db=new db; @@ -133,6 +140,8 @@ function db_addStatistik( $csv, $secret ){ $C[]=$user['id']; + $C[]='NOW()'; + $csv=implode($C,','); $db=new db; @@ -206,6 +215,19 @@ function db_getFromTeams(){ unset($db); return $ROW; +} +function db_getFromTeamsById($teamID){ + + $db=new db; + + $sql = 'SELECT * FROM Teams WHERE id='.$teamID; + $result = $db->query($sql); + + $row = $result->fetch_assoc(); + + unset($db); + return $row; + } function db_getIdNtFromTeams(){ @@ -241,6 +263,42 @@ function db_getFromSpieler(){ unset($db); return $ROW; +} +function db_getFromSpielerById($id){ + + $db=new db; + + $sql = 'SELECT * FROM Spieler WHERE id='.$id; + + $result = $db->query($sql); + + if( $row = $result->fetch_assoc() ){ + $row['id']=bin2hex($row['id']); + } else { + return false; + } + + unset($db); + return $row; + +} +function db_getLatestFromSpieler($limit=10){ + + $db=new db; + + $sql = 'SELECT * FROM Spieler ORDER BY zeitstempel DESC LIMIT '.$limit; + $result = $db->query($sql); + + $ROW=Array(); + + while( $row = $result->fetch_assoc() ){ + $row['id']=bin2hex($row['id']); + $ROW[]=$row; + } + + unset($db); + return $ROW; + } function db_getFromErgebnisse(){ @@ -312,15 +370,6 @@ function db_getFromStatistikBySaison($saison){ function db_getFromStatistik(){ $db=new db; - - /* - $sql = 'SELECT Statistik.MID, Statistik.SpielerID, Spieler.name, Spieler.nt, Spieler.age, Teams.id, SUM(Statistik.Tore) AS "Tore", SUM(Statistik.Assists) AS "Assists", SUM(Statistik.Zpos - Statistik.Zneg) AS "Zwkbilanz" FROM Statistik - INNER JOIN Ergebnisse ON Ergebnisse.MID = Statistik.MID - LEFT JOIN Spieler ON Spieler.id = Statistik.SpielerID - LEFT JOIN Teams ON Teams.id = Spieler.teamID - WHERE Ergebnisse.saison = '.$saison.' - GROUP BY SpielerID, MID'; - */ $sql='SELECT Statistik.MID, Statistik.SpielerID, Spieler.name, Spieler.nt, Spieler.attr, Spieler.age, Spieler.age_saison, Teams.id, Statistik.Tore, Statistik.Assists, Statistik.Zpos, Statistik.Zneg, Statistik.Zpos - Statistik.Zneg AS "Zwk" FROM Statistik INNER JOIN Ergebnisse ON Ergebnisse.MID = Statistik.MID LEFT JOIN Spieler ON Spieler.id = Statistik.SpielerID @@ -341,4 +390,30 @@ function db_getFromStatistik(){ } +function db_getUnknownSpieler($teamID){ + + $db=new db; + $sql='SELECT Statistik.SpielerID as "SpielerID", Statistik.teamID as "teamID", Statistik.zeitstempel as "zeitstempel" FROM Statistik + LEFT JOIN Spieler ON Spieler.ID = Statistik.SpielerID + WHERE Statistik.teamID='.$teamID.' AND Spieler.Name IS NULL + GROUP BY Statistik.SpielerID'; + + $result = $db->query($sql); + + $ROW=Array(); + + while( $row = $result->fetch_assoc() ){ + $row['SpielerID']=bin2hex($row['SpielerID']); + $t=db_getFromTeamsById($teamID); + $row['team']=$t['name']; + $row['nt']=$t['nt']; + $row['flag']=$t['flag']; + $ROW[]=$row; + } + + unset($db); + return $ROW; + +} + ?> -- GitLab