From: Arun Persaud Date: Tue, 21 Oct 2008 02:54:13 +0000 (-0700) Subject: BUGFIX: make user menu and personal notes appear again X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2666bb58429c385b716d2ffd5d5fe9a9e7af4f45;p=e-DoKo.git BUGFIX: make user menu and personal notes appear again had them only shown when player was logged in, but there is really no reason to not show them to players who are not logged in in an ongoing game (only the correct player should get to a page with an ongoing game) Signed-off-by: Arun Persaud --- 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 "game ".DB_format_gameid($r[1])."
\n"; + echo "game ".DB_format_gameid($r[1])."
\n"; if($i>4) { echo "...
\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 "
\n"; + echo "It's your turn in these games:
\n"; + echo "Please log in to see this information.\n"; + echo "
\n"; + } /* display rule set for this game */ echo "
\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 "
\n"; output_form_for_new_game($names); echo "
\n"; - display_user_menu(); + display_user_menu($myid); } else { @@ -182,7 +182,7 @@ else "Hello $PlayerD,\n".$message.$hashD); echo "
You started a new game. The emails have been sent out!
\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 "
Personal notes:
\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 @@ \n"; - + echo "

Generated ".date("Y-m-d H:i:s")." (server time)

"; - + /* total number of games */ echo "

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

\n"; - + echo "

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.

\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 "

The shortest game took only ".$short[0]." hours and was played by ".join(", ",$names).".
\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.

\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 "

The longest session is session ".$long[1]." with ".$long[0]. " games played by ".join(", ",$names).".

\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.idThe 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 "

 

\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 "
";