Remove games from digest where the player already moved
authorArun Persaud <arun@nubati.net>
Sat, 9 Jun 2012 15:53:39 +0000 (08:53 -0700)
committerArun Persaud <arun@nubati.net>
Sat, 9 Jun 2012 16:48:09 +0000 (09:48 -0700)
create_database.sql
digest.php
include/db.php
include/functions.php
update_db.php

index f7eb458d30cfd907dc803651dfd7bc3e9efca1ec..3d5a1d4a4b8ab889e7d3d1eaf6f61127eae649b9 100644 (file)
@@ -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)
index 07625192fd57e90ca9f18d69f1d1459c8bb12e3a..d501e0a253bbe383e4cbc8269138ac31a720e1ec 100644 (file)
@@ -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))
          {
index 0523fea4b675e3093dcc8ce0c3ef264b523d8504..1f02169f91cc589a408c6f3e0b4ad42e7801e3f3 100644 (file)
@@ -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;
 
index a17ce0811d28c018bac0d4b578f6d1cae297fcaf..897b20e6ebc5597e642a06cc04a850172103152c 100644 (file)
@@ -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);
     }
 }
 
index b47a94a42ec997c21996d70c343c118508e5d122..edb01f921dc05c8fbf3d62ec4c2d457bb13ced21 100644 (file)
@@ -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";
 
   }