BUGFIX: make user menu and personal notes appear again
authorArun Persaud <arun@nubati.net>
Tue, 21 Oct 2008 02:54:13 +0000 (19:54 -0700)
committerArun Persaud <arun@nubati.net>
Tue, 21 Oct 2008 03:34:17 +0000 (20:34 -0700)
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 <arun@nubati.net>
include/functions.php
include/game.php
include/newgame.php
include/output.php
include/preferences.php
include/stats.php
include/user.php

index d09408cd43094b0c0e4ca00b5b460b2442297fbb..ecb9811a4028bade70286e75b56e22d9d47cb21b 100644 (file)
@@ -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&amp;me=".$r[0]."\">game ".DB_format_gameid($r[1])." </a><br />\n";
+      echo "<a href=\"".$INDEX."?action=game&amp;me=".$r[0].
+       "\">game ".DB_format_gameid($r[1])." </a><br />\n";
       if($i>4)
        {
          echo "...<br />\n";
index 6141ab231e699bc3815c32cce1738602773ada7f..cfd1750e9c393babecf117372b6ee60776d381bb 100644 (file)
@@ -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";
index 8dbefdff70ee571ce0b3009a5c5794cf2bd2d287..7349e7ef2d074f2af3d78fefb98229c10dc623de 100644 (file)
@@ -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);
       }
   }
 
index f26ab1b9d76cc8f5c892dfaacf10c42e1e8639e5..47fddfea50ae2aeab4261edf75cd4c1f9fbb1af8 100644 (file)
@@ -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)
index 613d96543371e37d0084b935ddc5a1026c756394..77ad8671d6ff383cc59ff6790ac92ae8efa9128b 100644 (file)
@@ -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);
index 095296edcd919223a5d340fc646a6a06c8a66d54..83c11ad1ce1f091f25fe548bdb3c5212f554b453 100644 (file)
@@ -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;\">&nbsp;</p>\n";
 
index 67c720a2b6562ecc841f39e5cae218b4ade78871..be0d68a5b08740252cbe3f7af9fa13f236b3b5db 100644 (file)
@@ -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\">";