From: Arun Persaud Date: Sat, 9 Jun 2012 15:53:39 +0000 (-0700) Subject: Remove games from digest where the player already moved X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=commitdiff_plain;h=5d1647f138763213a32e3e1ba426e3f86157f018;ds=sidebyside Remove games from digest where the player already moved --- diff --git a/create_database.sql b/create_database.sql index f7eb458..3d5a1d4 100644 --- a/create_database.sql +++ b/create_database.sql @@ -492,6 +492,8 @@ create table digest_email ( `id` int(11) NOT NULL auto_increment, `email` varchar(255) default null, `create_date` timestamp NOT NULL default '0000-00-00 00:00:00', + `type` enum('misc','your_turn') NOT NULL default 'misc', + `game_id` int(11) default NULL, `content` text, UNIQUE KEY `id` (`id`), index (email) diff --git a/digest.php b/digest.php index 0762519..d501e0a 100644 --- a/digest.php +++ b/digest.php @@ -105,6 +105,16 @@ foreach($users as $uid) // get messages $messages = DB_get_digest_message_by_email($email); + // check messages for outdated ones and delete those + foreach ($messages as $key=>$mess) + { + if($mess[2] == 'your_turn' && $uid != DB_get_player_by_gameid($mess[3]) ) + { + DB_digest_delete_message($mess[0]); + unset($messages[$key]); + } + } + // add them together if(sizeof($messages)) { diff --git a/include/db.php b/include/db.php index 0523fea..1f02169 100644 --- a/include/db.php +++ b/include/db.php @@ -30,7 +30,7 @@ if(!isset($HOST)) function DB_open() { - $version_needed = 3; + $version_needed = 4; global $DB,$DB_user,$DB_host,$DB_database,$DB_password; $DB = @mysql_connect($DB_host,$DB_user, $DB_password); @@ -1242,9 +1242,12 @@ function DB_get_number_of_tricks($gameid,$position) return $r[0]; } -function DB_digest_insert_email($To,$message) +function DB_digest_insert_email($To,$message,$type,$gameid) { - DB_query("INSERT INTO digest_email VALUES (NULL,".DB_quote_smart($To).",NULL,".DB_quote_smart($message).")"); + if($type == GAME_YOUR_TURN) + DB_query("INSERT INTO digest_email VALUES (NULL,".DB_quote_smart($To).",NULL,'your_turn',$gameid,".DB_quote_smart($message).")"); + else + DB_query("INSERT INTO digest_email VALUES (NULL,".DB_quote_smart($To).",NULL,'misc',NULL,".DB_quote_smart($message).")"); return; } @@ -1263,7 +1266,7 @@ function DB_get_digest_message_by_email($email) { $messages = array(); - $result = DB_query("SELECT id,content FROM digest_email Where email='$email'"); + $result = DB_query("SELECT id,content,type,game_id FROM digest_email Where email='$email'"); while($r = DB_fetch_array($result)) $messages[]=$r; diff --git a/include/functions.php b/include/functions.php index a17ce08..897b20e 100644 --- a/include/functions.php +++ b/include/functions.php @@ -196,7 +196,7 @@ function mymail($uid,$gameid=0,$type,$message) else { /* store email in database */ - DB_digest_insert_email($To,$message); + DB_digest_insert_email($To,$message,$type,$gameid); } } diff --git a/update_db.php b/update_db.php index b47a94a..edb01f9 100644 --- a/update_db.php +++ b/update_db.php @@ -38,7 +38,7 @@ if(isset($_SERVER['REMOTE_ADDR'])) exit(); $old_version = DB_get_version(); -$current_version = 3; +$current_version = 4; if($old_version < $current_version) echo "Will upgrade your database now:\n"; @@ -74,6 +74,13 @@ switch($old_version) " ADD COLUMN `game_id` int(11) default NULL AFTER play_id"); DB_query("UPDATE Version set version=3"); echo "Upgraded to version 3.\n"; + case 3: + DB_query("ALTER TABLE digest_email". + " ADD COLUMN `game_id` int(11) default NULL AFTER create_date"); + DB_query("ALTER TABLE digest_email". + " ADD COLUMN `type` enum('misc','your_turn') NOT NULL default 'misc' AFTER create_date"); + DB_query("UPDATE Version set version=4"); + echo "Upgraded to version 4.\n"; }