From 4b622dbdb85fbb3512a881ec4786a05f6cd4701c Mon Sep 17 00:00:00 2001 From: Arun Persaud Date: Thu, 15 Jan 2009 21:40:35 -0800 Subject: [PATCH] NEW FEATURE: new user settings allows people to not be available for new games Players who set their preference on this setting to 'no' are not considered as players in a new game. --- include/db.php | 29 ++++++++++++++++++++++++++++- include/newgame.php | 12 +++++++++++- include/output.php | 5 ++++- include/preferences.php | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+), 3 deletions(-) diff --git a/include/db.php b/include/db.php index e5699f6..6d4080c 100644 --- a/include/db.php +++ b/include/db.php @@ -439,6 +439,24 @@ function DB_get_all_names() $names = array(); $result = DB_query("SELECT fullname FROM User"); + + while($r = DB_fetch_array($result)) + $names[] = $r[0]; + + return $names; +} + +function DB_get_all_user_names_open_for_games() +{ + $names = array(); + + DB_query("DROP TEMPORARY TABLE IF EXISTS Usertmp;"); + DB_query("CREATE TEMPORARY TABLE Usertmp SELECT id,fullname FROM User;"); + DB_query("DELETE FROM Usertmp WHERE id IN (SELECT user_id FROM User_Prefs WHERE pref_key='open for games' and value='no')"); + + $result = DB_query("SELECT fullname FROM Usertmp"); + DB_query("DROP TEMPORARY TABLE IF EXISTS Usertmp;"); + while($r = DB_fetch_array($result)) $names[] = $r[0]; @@ -737,6 +755,15 @@ function DB_get_PREF($myid) else $PREF['sorting']='high-low'; + /* Open for new games */ + $r = DB_query_array("SELECT value FROM User_Prefs". + " WHERE user_id='$myid' AND pref_key='open for games'" ); + if($r) + $PREF['open_for_games'] = $r[0]; + else + $PREF['open_for_games']='yes'; + + return $PREF; } @@ -1118,7 +1145,7 @@ function DB_get_exchanged_cards($hash) 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'"); + $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]; diff --git a/include/newgame.php b/include/newgame.php index 7349e7e..7a88a80 100644 --- a/include/newgame.php +++ b/include/newgame.php @@ -23,10 +23,20 @@ else if( !myisset("PlayerA", "PlayerB","PlayerC","PlayerD","dullen","schweinchen","callrule" )) { - $names = DB_get_all_names(); + /* only get players that want to be in new games */ + $names = DB_get_all_user_names_open_for_games(); + + /* add player if he is not open for games */ + if(!in_array($names,$_SESSION["name"])) + $names[]=$_SESSION["name"]; + + /* add some randomness */ + shuffle($names); + echo "
\n"; output_form_for_new_game($names); echo "
\n"; + display_user_menu($myid); } else diff --git a/include/output.php b/include/output.php index 9564b82..e4a06e8 100644 --- a/include/output.php +++ b/include/output.php @@ -39,8 +39,11 @@ function output_form_for_new_game($names)
table \n"; echo " \n"; if($changed_sorting) echo "changed"; echo " \n"; +echo " Open for new games: "; + +echo " \n"; +if($changed_openforgames) echo "changed"; +echo " \n"; echo " Card set: "; echo "