From eb20bf1a0cae1192eb50c19220e72df8d971d8e7 Mon Sep 17 00:00:00 2001 From: Arun Persaud Date: Sat, 18 Oct 2008 11:33:36 -0700 Subject: [PATCH] NEW FEATURE: make it possible to view games where people played with the same hand had to change a few things and check more often if people are logge in, so that for example personal notes only show up when you are logged in and not when someone else is looking at your cards Signed-off-by: Arun Persaud --- css/{standard013.css => standard014.css} | 11 +++--- include/db.php | 10 +++++- include/functions.php | 23 ++++++++---- include/game.php | 27 +++++++++++--- include/login.php | 10 +++--- include/output.php | 7 ++-- include/user.php | 46 +++++++++++++----------- include/welcome.php | 8 ++--- 8 files changed, 96 insertions(+), 46 deletions(-) rename css/{standard013.css => standard014.css} (99%) diff --git a/css/standard013.css b/css/standard014.css similarity index 99% rename from css/standard013.css rename to css/standard014.css index 39172f5..913a18d 100644 --- a/css/standard013.css +++ b/css/standard014.css @@ -545,12 +545,11 @@ div span img.button { } .gamestatuspre { - padding: 0 0.3em; - - background-color: #fd8901; + padding: 0 0.3em; + background-color: #fd8901; } .gamestatusover { - padding:0 0.3em; + padding:0 0.3em; background-color: #f82c20 ; } .gamestatusplay { @@ -558,6 +557,10 @@ div span img.button { background-color: #15de26; } +.multi a{ + color: #fff; +} + .bigger { font-size:larger; } diff --git a/include/db.php b/include/db.php index 1e18f95..514bde2 100644 --- a/include/db.php +++ b/include/db.php @@ -1102,5 +1102,13 @@ function DB_get_exchanged_cards($hash) return $cards; } - +function DB_played_by_others($gameid) +{ + $gameids = array(); + $result = DB_query("SELECT id FROM Game WHERE randomnumbers=(SELECT randomnumbers from Game where id=$gameid) and status='gameover'"); + while($r = DB_fetch_array($result)) + if($r[0]!=$gameid) + $gameids[]=$r[0]; + return $gameids; +} ?> \ No newline at end of file diff --git a/include/functions.php b/include/functions.php index 82b4bb6..ca62cd9 100644 --- a/include/functions.php +++ b/include/functions.php @@ -846,7 +846,13 @@ function display_table () function display_user_menu() { - global $WIKI,$myid,$INDEX; + 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". @@ -1055,7 +1061,12 @@ function format_score_table_html($score,$userid) $i++; $output.=" "; $userhash = DB_get_hash_from_gameid_and_userid($game['gameid'],$userid); - $output.=" $i"; + /* create link to old games only if you are logged in and its your game*/ + if(isset($_SESSION['id']) && $_SESSION['id']==$userid) + $output.=" $i"; + else + $output.=" $i"; + foreach($game['players'] as $id=>$points) $output.="".$points.""; $output.="".$game['points']; @@ -1071,7 +1082,7 @@ function format_score_table_html($score,$userid) return $output; } -function createCache($content, $cacheFile) +function createCache($content, $cacheFile) { $fp = fopen($cacheFile,"w"); if($fp) @@ -1085,10 +1096,10 @@ function createCache($content, $cacheFile) return; } -function getCache($cacheFile, $expireTime) +function getCache($cacheFile, $expireTime) { - if( file_exists($cacheFile) && - filemtime($cacheFile )>( time() - $expireTime ) ) + if( file_exists($cacheFile) && + filemtime($cacheFile )>( time() - $expireTime ) ) { return file_get_contents($cacheFile); } diff --git a/include/game.php b/include/game.php index 06d75f3..49957b1 100644 --- a/include/game.php +++ b/include/game.php @@ -25,7 +25,8 @@ if(!$myid) global $GAME,$RULES,$CARDS; /* the user has done something, update the timestamp */ -DB_update_user_timestamp($myid); +if(isset($_SESSION['id'])) + DB_update_user_timestamp($_SESSION['id']); /* get some information from the DB */ $gameid = DB_get_gameid_by_hash($me); @@ -36,7 +37,7 @@ $myhand = DB_get_handid('hash',$me); $session = DB_get_session_by_gameid($gameid); /* get prefs and save them in a variable*/ -$PREF = DB_get_PREF($myid); +$PREF = DB_get_PREF(isset($_SESSION['id'])?$_SESSION['id']:$myid); /* get rule set for this game */ $RULES = DB_get_RULES($gameid); @@ -179,7 +180,10 @@ if($session) $lasthash=$hash; } $i--; - echo "This is game number $j of $i in session $session."; + if(isset($_SESSION['id']) && $_SESSION['id']==$myid) + echo "This is game number $j of $i in session $session."; + else + echo "This is game number $j of $i in session $session."; echo "\n"; } @@ -1946,11 +1950,26 @@ if($gamestatus == 'play' || $gameend < 60*60*24*7) echo "\n"; +/* has this hand been played by others? */ +$other_game_ids = DB_played_by_others($gameid); +if(sizeof($other_game_ids)>0 && $mystatus=='gameover') + { + $mypos = DB_get_pos_by_hash($me); + echo "

See how other played the same hand:
\n"; + foreach($other_game_ids as $id) + { + $otherhash = DB_get_hash_from_game_and_pos($id,$mypos); + $othername = DB_get_name('hash',$otherhash); + echo "$othername
"; + } + echo "

\n"; + } + echo "\n"; echo "\n"; -if($mystatus=='gameover' && DB_get_game_status_by_gameid($gameid)=='gameover' ) +if($mystatus=='gameover' && DB_get_game_status_by_gameid($gameid)=='gameover' && isset($_SESSION['id']) && $_SESSION['id']==$myid) { $session = DB_get_session_by_gameid($gameid); $result = DB_query("SELECT id,create_date FROM Game". diff --git a/include/login.php b/include/login.php index ea8d8ef..c1a0e42 100644 --- a/include/login.php +++ b/include/login.php @@ -6,14 +6,14 @@ if(!isset($HOST)) exit; /* check if login information is present */ -if(!myisset("email","password")) +if(!myisset('email','password')) { echo "can't log you in... missing login information."; } else { - $email = $_REQUEST["email"]; - $password = $_REQUEST["password"]; + $email = $_REQUEST['email']; + $password = $_REQUEST['password']; /* verify password and email */ if(strlen($password)!=32) @@ -28,7 +28,9 @@ else { /* user information is ok, set session variabel */ $myname = DB_get_name('email',$email); - $_SESSION["name"] = $myname; + $_SESSION['name'] = $myname; + $_SESSION['id'] = $myid; + $_SESSION['pass'] = $password; } } ?> \ No newline at end of file diff --git a/include/output.php b/include/output.php index dd2e535..1531c77 100644 --- a/include/output.php +++ b/include/output.php @@ -270,7 +270,7 @@ function output_header() e-Doko - +