NEW FEATURE: addicted people can turn of a lot of the email spam and just check...
authorArun Persaud <arun@nubati.net>
Thu, 8 Nov 2007 19:58:20 +0000 (20:58 +0100)
committerArun Persaud <arun@nubati.net>
Thu, 8 Nov 2007 21:46:49 +0000 (22:46 +0100)
all emails saying: it's your turn can be turned off now by a user preference

db.php
index.php
output.php

diff --git a/db.php b/db.php
index db1910f13e6b613c486b32ba1fd27f828e97d017..f5f6673cde706add1050d499f3e6a3bf08cc49e5 100644 (file)
--- a/db.php
+++ b/db.php
@@ -792,20 +792,68 @@ function DB_get_PREF($myid)
 {
   global $PREF;
 
-    $result = mysql_query("SELECT value from User_Prefs".
-                         " WHERE user_id='$myid' AND pref_key='cardset'" );
-    $r = mysql_fetch_array($result,MYSQL_NUM);
-    if($r)
-      {
-       if($r[0]=="germancards" && (time()-strtotime( "2009-12-31 23:59:59")<0) ) /* licence only valid until then */
-         $PREF["cardset"]="altenburg";
-       else
-         $PREF["cardset"]="english";
-      }
-    else
-      $PREF["cardset"]="english";
+  /* Cardset */
+  $result = mysql_query("SELECT value from User_Prefs".
+                       " WHERE user_id='$myid' AND pref_key='cardset'" );
+  $r = mysql_fetch_array($result,MYSQL_NUM);
+  if($r)
+    {
+      if($r[0]=="germancards" && (time()-strtotime( "2009-12-31 23:59:59")<0) ) /* licence only valid until then */
+       $PREF["cardset"]="altenburg";
+      else
+       $PREF["cardset"]="english";
+    }
+  else
+    $PREF["cardset"]="english";
 
-    return;
+  /* Email */
+  $result = mysql_query("SELECT value FROM User_Prefs".
+                       " WHERE user_id='$myid' AND pref_key='email'" );
+  $r = mysql_fetch_array($result,MYSQL_NUM);
+  if($r)
+    {
+      if($r[0]=="emailaddict")
+       $PREF["email"]="emailaddict";
+      else
+       $PREF["email"]="emailnonaddict";
+    }
+  else
+    $PREF["email"]="emailnonaddict";
+
+  return;
+}
+
+function DB_get_email_pref_by_hash($hash)
+{
+  $result = mysql_query("SELECT value FROM Hand".
+                       " LEFT JOIN User_Prefs ON Hand.user_id=User_Prefs.user_id".
+                       " WHERE hash='$hash' AND pref_key='email'" );
+  $r = mysql_fetch_array($result,MYSQL_NUM);
+  if($r)
+    {
+      if($r[0]=="emailaddict")
+       return "emailaddict";
+      else
+       return "emailnonaddict";
+    }
+  else
+    return "emailnonaddict";
+}
+
+function DB_get_email_pref_by_uid($uid)
+{
+  $result = mysql_query("SELECT value FROM User_Prefs ".
+                       " WHERE user_id='$uid' AND pref_key='email'" );
+  $r = mysql_fetch_array($result,MYSQL_NUM);
+  if($r)
+    {
+      if($r[0]=="emailaddict")
+       return "emailaddict";
+      else
+       return "emailnonaddict";
+    }
+  else
+    return "emailnonaddict";
 }
 
 function DB_get_unused_randomnumbers($userstr)
index cf14fbd6b616daf3a5e2b93804d59e2ed48851ae..bf96982f7a61e653a13b43df8631d604d086fb9c 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1048,7 +1048,7 @@ else if(myisset("me"))
              $who         = DB_get_userid_by_email($email);
              DB_set_player_by_gameid($gameid,$who);
 
-             if($hash!=$me)
+             if($hash!=$me && DB_get_email_pref_by_hash($hash)!="emailaddict")
                {
                  /* email startplayer) */
                  $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n".
@@ -1441,7 +1441,8 @@ else if(myisset("me"))
                  $message = "A card has been played in game ".DB_format_gameid($gameid).".\n\n".
                    "It's your turn  now.\n".
                    "Use this link to play a card: ".$host."?me=".$next_hash."\n\n" ;
-                 mymail($email,$EmailName."a card has been played in game ".DB_format_gameid($gameid),$message);
+                 if( DB_get_email_pref_by_uid($who)!="emailaddict" )
+                   mymail($email,$EmailName."a card has been played in game ".DB_format_gameid($gameid),$message);
                }
              else /* send out final email */
                {
@@ -1603,7 +1604,8 @@ else if(myisset("me"))
                      $hash = DB_get_hash_from_gameid_and_userid($gameid,$user);
 
                      $link = "Use this link to have a look at game ".DB_format_gameid($gameid).": ".$host."?me=".$hash."\n\n" ;
-                     mymail($To,$EmailName."game over (game ".DB_format_gameid($gameid).") part 2(2)",$link);
+                     if( DB_get_email_pref_by_uid($user) != "emailaddict" )
+                       mymail($To,$EmailName."game over (game ".DB_format_gameid($gameid).") part 2(2)",$link);
                    }
                }
            }
@@ -1910,6 +1912,18 @@ else if( myisset("email","password") || isset($_SESSION["name"]) )
                                           DB_quote_smart($setpref).")");
                   echo "Ok, changed you preferences for the cards.\n";
                   break;
+                case "emailaddict":
+                case "emailnonaddict":
+                  $result = mysql_query("SELECT * from User_Prefs".
+                                        " WHERE user_id='$myid' AND pref_key='email'" );
+                  if( mysql_fetch_array($result,MYSQL_NUM))
+                    $result = mysql_query("UPDATE User_Prefs SET value=".DB_quote_smart($setpref).
+                                          " WHERE user_id='$myid' AND pref_key='email'" );
+                  else
+                    $result = mysql_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','email',".
+                                          DB_quote_smart($setpref).")");
+                  echo "Ok, changed you preferences for sending out emails.\n";
+                  break;
                 }
             }
           else if(myisset("passwd"))
index a8d6bf14ee266fce394a61717619219d18531d60..39f67b06c7ddc1d430918fc1d0f2bd68a693f94f 100644 (file)
@@ -10,11 +10,18 @@ function output_user_settings()
   echo "<h4> Settings </h4>\n";
   echo "<a href=\"index.php?passwd=ask\">change password</a><br />";
 
+  echo "<h5> Card set </h5>\n";
   if( $PREF["cardset"] == "english" )
     echo "<a href=\"index.php?setpref=germancards\">use german cards</a><br />";
   else
     echo "<a href=\"index.php?setpref=englishcards\">use english cards</a> <br />";
 
+  echo "<h5> Email </h5>\n";
+  if( $PREF["email"] == "emailaddict" )
+    echo "<a href=\"index.php?setpref=emailnonaddict\">I'm not addicted (emails for each move)</a><br />";
+  else
+    echo "<a href=\"index.php?setpref=emailaddict\">Addicted (minimal amount of emails)</a> <br />";
+
   echo "</div>\n";
 
   return;