summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorArun Persaud <arun@nubati.net>2008-10-20 19:54:13 -0700
committerArun Persaud <arun@nubati.net>2008-10-20 20:34:17 -0700
commit2666bb58429c385b716d2ffd5d5fe9a9e7af4f45 (patch)
tree8b47bb79a20981ccc123d3e18587dcad4da89ebc /include
parente1b3eaa640a1e4249b8406e946bd65e902aadfb9 (diff)
downloade-DoKo-2666bb58429c385b716d2ffd5d5fe9a9e7af4f45.tar.gz
e-DoKo-2666bb58429c385b716d2ffd5d5fe9a9e7af4f45.tar.bz2
e-DoKo-2666bb58429c385b716d2ffd5d5fe9a9e7af4f45.zip
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 <arun@nubati.net>
Diffstat (limited to 'include')
-rw-r--r--include/functions.php15
-rw-r--r--include/game.php30
-rw-r--r--include/newgame.php4
-rw-r--r--include/output.php3
-rw-r--r--include/preferences.php2
-rw-r--r--include/stats.php60
-rw-r--r--include/user.php2
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&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";
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;\">&nbsp;</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\">";