diff options
-rw-r--r-- | include/functions.php | 15 | ||||
-rw-r--r-- | include/game.php | 30 | ||||
-rw-r--r-- | include/newgame.php | 4 | ||||
-rw-r--r-- | include/output.php | 3 | ||||
-rw-r--r-- | include/preferences.php | 2 | ||||
-rw-r--r-- | include/stats.php | 60 | ||||
-rw-r--r-- | include/user.php | 2 |
7 files changed, 65 insertions, 51 deletions
diff --git a/include/functions.php b/include/functions.php index d09408c..ecb9811 100644 --- a/include/functions.php +++ b/include/functions.php @@ -857,20 +857,14 @@ function display_table () } -function display_user_menu() +function display_user_menu($id) { global $WIKI,$INDEX; - /* get the id we are looking for */ - if(isset($_SESSION['id'])) - $myid = $_SESSION['id']; - else - return; - $result = DB_query("SELECT Hand.hash,Hand.game_id,Game.player from Hand". " LEFT JOIN Game On Hand.game_id=Game.id". - " WHERE Hand.user_id='$myid'". - " AND ( Game.player='$myid' OR ISNULL(Game.player) )". + " WHERE Hand.user_id='$id'". + " AND ( Game.player='$id' OR ISNULL(Game.player) )". " AND Game.status<>'gameover'". " ORDER BY Game.session" ); @@ -884,7 +878,8 @@ function display_user_menu() } $i++; - echo "<a href=\"".$INDEX."?action=game&me=".$r[0]."\">game ".DB_format_gameid($r[1])." </a><br />\n"; + echo "<a href=\"".$INDEX."?action=game&me=".$r[0]. + "\">game ".DB_format_gameid($r[1])." </a><br />\n"; if($i>4) { echo "...<br />\n"; diff --git a/include/game.php b/include/game.php index 6141ab2..cfd1750 100644 --- a/include/game.php +++ b/include/game.php @@ -109,7 +109,15 @@ if( $mystatus!='gameover' ) if($note != '') DB_insert_note($note,$gameid,$myid); }; -output_user_notes($myid,$gameid,$mystatus); + +/* make sure that we don't show the notes to the wrong person + * (e.g. other people looking at an old game) + */ +if( $mystatus != 'gameover' || + ( $mystatus == 'gameover' && + isset($_SESSION['id']) && + $myid == $_SESSION['id'])) + output_user_notes($myid,$gameid,$mystatus); /* handle calls */ if(myisset('call') && $_REQUEST['call'] == '120' && can_call(120,$me)) @@ -1937,10 +1945,24 @@ switch($mystatus) default: myerror("error in testing the status"); } -/* output left menu */ -display_user_menu(); -/* output right menu */ +/* output other games where it is the users turn + * make sure that the people looking at old games don't see the wrong games here + */ +if( $mystatus != 'gameover' ) + display_user_menu($myid); +else if( $mystatus == 'gameover' && + isset($_SESSION['id']) ) + { + display_user_menu($_SESSION['id']); + } +else + { + echo "<div class=\"usermenu\">\n"; + echo "It's your turn in these games:<br />\n"; + echo "Please log in to see this information.\n"; + echo "</div>\n"; + } /* display rule set for this game */ echo "<div class=\"gameinfo\">\n"; diff --git a/include/newgame.php b/include/newgame.php index 8dbefdf..7349e7e 100644 --- a/include/newgame.php +++ b/include/newgame.php @@ -27,7 +27,7 @@ else echo "<div class=\"user\">\n"; output_form_for_new_game($names); echo "</div>\n"; - display_user_menu(); + display_user_menu($myid); } else { @@ -182,7 +182,7 @@ else "Hello $PlayerD,\n".$message.$hashD); echo "<div class=\"message\">You started a new game. The emails have been sent out!</div>\n"; - display_user_menu(); + display_user_menu($myid); } } diff --git a/include/output.php b/include/output.php index f26ab1b..47fddfe 100644 --- a/include/output.php +++ b/include/output.php @@ -437,9 +437,6 @@ function output_password_recovery($email,$password) function output_user_notes($userid,$gameid,$userstatus) { - /* make sure to only show these if the person is logged in */ - if(!isset($_SESSION['id']) || $userid != $_SESSION['id']) return; - echo "<div class=\"notes\"> Personal notes: <br />\n"; $notes = DB_get_notes_by_userid_and_gameid($userid,$gameid); foreach($notes as $note) diff --git a/include/preferences.php b/include/preferences.php index 613d965..77ad867 100644 --- a/include/preferences.php +++ b/include/preferences.php @@ -18,7 +18,7 @@ $changed_cards = 0; $changed_timezone = 0; $changed_autosetup = 0; -display_user_menu(); +display_user_menu($myid); /* get old infos */ $PREF = DB_get_PREF($myid); diff --git a/include/stats.php b/include/stats.php index 095296e..83c11ad 100644 --- a/include/stats.php +++ b/include/stats.php @@ -1,5 +1,5 @@ <?php -/* make sure that we are not called from outside the scripts, +/* make sure that we are not called from outside the scripts, * use a variable defined in config.php to check this */ if(!isset($HOST)) @@ -16,26 +16,26 @@ $PREF = DB_get_PREF($myid); DB_update_user_timestamp($myid); -display_user_menu(); +display_user_menu($myid); /* check if cached version exist */ if( !$content = getCache("cache/stats.html",60*60*24) ) { /* start caching */ - ob_start(); - + ob_start(); + /* start statistics*/ echo "<div class=\"user wide\">\n"; - + echo "<p>Generated ".date("Y-m-d H:i:s")." (server time) </p>"; - + /* total number of games */ echo "<p>The number of finished games on this server is: "; $r = DB_query_array("SELECT COUNT(*) from Game". " WHERE status='gameover'"); $GameN = $r[0]; echo " $GameN </p>\n"; - + echo "<p>The contra party wins in "; $result = DB_query("SELECT COUNT(*) from Score". " LEFT JOIN Game ON Game.id=game_id". @@ -44,19 +44,19 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) while( $r = DB_fetch_array($result)) echo $r[0]; echo " games.</p>\n"; - + /* longest and shortest game */ $r=DB_query("SELECT timediff(mod_date,create_date) ,session,id". " FROM Game WHERE status='gameover'". " ORDER BY time_to_sec(timediff(mod_date,create_date)) ASC LIMIT 1"); - + if($r) { $short= DB_fetch_array($r); $names = DB_get_all_names_by_gameid($short[2]); echo "<p> The shortest game took only ".$short[0]." hours and was played by ".join(", ",$names).".<br />\n"; } - + $r=DB_query("SELECT datediff(mod_date,create_date) ,session,id". " FROM Game WHERE status='gameover'". " ORDER BY time_to_sec(timediff(mod_date,create_date)) DESC LIMIT 1"); @@ -65,7 +65,7 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) $long= DB_fetch_array($r); echo "The longest game took ".$long[0]." days.</p>\n"; } - + $r=DB_query("SELECT COUNT(*) as c, session, id FROM Game ". " GROUP BY session ORDER BY c DESC LIMIT 1"); if($r) @@ -75,8 +75,8 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) echo "<p>The longest session is session ".$long[1]." with ".$long[0]. " games played by ".join(", ",$names).".</p>\n"; } - - + + /* number of solos */ $result = DB_query_array_all("SELECT type,COUNT(*) as c from Game". " WHERE status='gameover'". @@ -84,7 +84,7 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) " ORDER BY c DESC"); array_unshift($result,array("Type","Frequency")); echo output_table($result,"Game types","stats"); - + /* break up solos in types */ $result = DB_query_array_all("SELECT solo,COUNT(*) as c from Game". " WHERE status='gameover'". @@ -93,12 +93,12 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) " ORDER BY c DESC"); array_unshift($result,array("Type","Frequency")); echo output_table($result,"Kind of solos","stats"); - + /* 2 top user mit maximaler quote an solo (min 10 games) - + top scoring game: winning players - + game with the same cards: show 3 at random: player who won, points, what kind of game select g1.id, g2.id from game g1 left join game g2 on g1.randomnumbers=g2.randomnumbers where g1.id<g2.id order by g1.id @@ -114,7 +114,7 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) array_unshift($result,array("call","Frequency")); echo output_table($result,"Kind of call","stats"); - + /* most reminders */ $result = DB_query_array_all("SELECT fullname, COUNT(*) /" . " (SELECT COUNT(*) FROM Hand". @@ -125,7 +125,7 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) " ORDER BY c DESC LIMIT 5" ); array_unshift($result,array("Name","Reminders")); echo output_table($result,"Most reminders per game","stats"); - + /* fox */ $result = DB_query_array_all("SELECT fullname, COUNT(*) /" . " (SELECT COUNT(*) FROM Hand". @@ -137,7 +137,7 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) " ORDER BY c DESC LIMIT 5" ); array_unshift($result,array("Name","Number of foxes caught")); echo output_table($result,"Most caught foxes","stats"); - + $result = DB_query_array_all("SELECT fullname, COUNT(*) /" . " (SELECT COUNT(*) FROM Hand". " WHERE user_id=User.id) as c". @@ -148,7 +148,7 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) " ORDER BY c DESC LIMIT 5" ); array_unshift($result,array("Name","Number of foxes lost")); echo output_table($result,"Lost foxes (most)","stats"); - + $result = DB_query_array_all("SELECT fullname, COUNT(*) /" . " (SELECT COUNT(*) FROM Hand". " WHERE user_id=User.id) as c". @@ -159,7 +159,7 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) " ORDER BY c ASC LIMIT 5" ); array_unshift($result,array("Name","Number of foxes lost")); echo output_table($result,"Lost foxes (least)","stats"); - + /* which position wins the most tricks */ $result = DB_query_array_all("SELECT CASE winner ". " WHEN 1 THEN 'left' ". @@ -172,7 +172,7 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) " ORDER BY winner ASC " ); array_unshift($result,array("Position","Number of tricks")); echo output_table($result,"Tricks at the table","stats"); - + /* most games */ $result = DB_query_array_all("SELECT fullname, COUNT(*) as c " . " FROM Hand". @@ -181,7 +181,7 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) " ORDER BY c DESC LIMIT 7" ); array_unshift($result,array("Name","Number of games")); echo output_table($result,"Most games","stats"); - + /* most solos */ $result = DB_query_array_all("SELECT fullname as fname,". " COUNT(*), ". @@ -194,8 +194,8 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) " ORDER BY c DESC;"); array_unshift($result,array("Name","Number of solos","Solos/game")); echo output_table($result,"Most solos","stats"); - - + + /* most active games */ $result = DB_query_array_all("SELECT fullname, COUNT(*) as c " . " FROM Hand". @@ -206,10 +206,10 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) " ORDER BY c DESC LIMIT 7" ); array_unshift($result,array("Name","Number of active games")); echo output_table($result,"Active games","stats"); - + /* does the party win more often if they start - + echo "<p>The party playing first wins in"; $result = mysql_query("SELECT COUNT(*) from Score". " LEFT JOIN Game ON Game.id=game_id". @@ -223,11 +223,11 @@ if( !$content = getCache("cache/stats.html",60*60*24) ) $result = generate_global_score_table(); array_unshift($result,array("Name","Average score per game")); echo output_table($result,"Points per game","stats"); - + /* how often is the last trick a non-trump trick */ - + /* needs this so that all tables are within the div and don't float around */ echo "<p style=\"clear:both;\"> </p>\n"; diff --git a/include/user.php b/include/user.php index 67c720a..be0d68a 100644 --- a/include/user.php +++ b/include/user.php @@ -103,7 +103,7 @@ else DB_update_user_timestamp($myid); - display_user_menu(); + display_user_menu($myid); /* display all games the user has played */ echo "<div class=\"user\">"; |