fixed language selection for end-of-game summary email.
[e-DoKo.git] / include / functions.php
index b1c70891b566aff1f438a1ed03e15dfaf313922b..3142b02b78dc05bb602b1f497d7f149ab510f280 100644 (file)
@@ -122,22 +122,22 @@ function mymail($uid,$gameid=0,$type,$message)
       /* do we send the email right away or save it in the database? */
       $send_now = 1;
 
-      $name    = DB_get_name('userid',$uid);
-      $header  = sprintf(_('Hello %s'),$name);
-      $header .= "\n\n";
-
-      $To = DB_get_email('userid',$uid);
+      $name = DB_get_name('userid',$user);
+      $To   = DB_get_email('userid',$user);
 
       /* check if user wants email right away or if we should save it in
        * the database for later delivery
        */
 
-      $uidPREF = DB_get_PREF($uid);
+      $uidPREF = DB_get_PREF($user);
       if( $uidPREF['digest'] != 'digest-off' )
         $send_now = 0;
       /* use local language */
       set_language($uidPREF['language']);
 
+      $header  = sprintf(_('Hello %s'),$name);
+      $header .= "\n\n";
+
       /* add standard header and footer */
       $subject = "$EmailName ";
       if($gameid)
@@ -185,7 +185,7 @@ function mymail($uid,$gameid=0,$type,$message)
         }
 
       /* standard goodbye */
-      $footer  = "\n"._("Have a nice day\n   your E-Doko service department").
+      $footer  = "\n"._('Have a nice day')."\n   "._('your E-Doko service department').
         "\n\n".
         "-- \n".
         _('You can change your mail delivery mode in the preference menu.').
@@ -201,6 +201,7 @@ function mymail($uid,$gameid=0,$type,$message)
           DB_digest_insert_email($To,$message,$type,$gameid);
         }
     }
+
   /* reset language to original user*/
   set_language($PREF['language']);
 
@@ -217,6 +218,10 @@ function sendmail($To,$Subject,$message)
   if(isset($EMAIL_REPLY))
     $header .= "From: e-DoKo daemon <$EMAIL_REPLY>\r\n";
 
+  $header .= "Content-Type: text/plain; charset = \"UTF-8\";\r\n";
+  $header .= "Content-Transfer-Encoding: 8bit\r\n";
+  $header .= "\r\n";
+
   if($debug)
     {
       /* display email on screen,
@@ -227,15 +232,12 @@ function sendmail($To,$Subject,$message)
                              "<a href=\"$1\">$1</a>", $message);
 
       echo "<br />To: $To<br />";
-      if($header != "")
-       echo $header."<br />";
+      echo $header."<br />";
       echo "Subject: $Subject <br />$message<br />\n";
     }
   else
-    if($header != "")
-      mail($To,$Subject,$message,$header);
-    else
-      mail($To,$Subject,$message);
+    mail($To,$Subject,$message,$header);
+
   return;
 }
 
@@ -996,10 +998,10 @@ function display_table_begin ()
                     "        Hand.hash,       ".
                     "        User.timezone,    ".
                     "        User.email       ".
-                    "FROM Hand ".
-                    "LEFT JOIN User ON User.id=Hand.user_id ".
-                    "WHERE Hand.game_id='".$gameid."' ".
-                    "ORDER BY position ASC");
+                    " FROM Hand".
+                    " LEFT JOIN User ON User.id=Hand.user_id".
+                    " WHERE Hand.game_id=".DB_quote_smart($gameid).
+                    " ORDER BY position ASC");
 
   $row0 = DB_fetch_array($result);
   $row1 = DB_fetch_array($result);
@@ -1030,10 +1032,10 @@ function display_table_end ()
                     "        Hand.hash,       ".
                     "        User.timezone,    ".
                     "        User.email       ".
-                    "FROM Hand ".
-                    "LEFT JOIN User ON User.id=Hand.user_id ".
-                    "WHERE Hand.game_id='".$gameid."' ".
-                    "ORDER BY position ASC");
+                    " FROM Hand".
+                    " LEFT JOIN User ON User.id=Hand.user_id".
+                    " WHERE Hand.game_id=".DB_quote_smart($gameid).
+                    " ORDER BY position ASC");
 
   $row0 = DB_fetch_array($result);
   $row1 = DB_fetch_array($result);
@@ -1085,8 +1087,8 @@ function display_single_user($r,$start=0)
          $stop    = substr($vacation[1],0,10);
          $comment = $vacation[2];
 
-             $title = "begin: $start  end: $stop $comment";
-             echo "   <span class=\"vacation\" title=\"$title\">$gravatar (on vacation until $stop)</span> \n";
+         $title = _("begin:")." $start  "._("end:")." $stop $comment";
+             echo "   <span class=\"vacation\" title=\"$title\">$gravatar "._("(on vacation until $stop)")."</span> \n";
        }
       else
        echo "   $gravatar \n";
@@ -1207,15 +1209,15 @@ function display_single_user($r,$start=0)
       switch($wins)
        {
        case 0:
-         echo "#tricks 0"; break;
+         echo _('#tricks 0'); break;
        case 1:
-         echo "#tricks 1"; break;
+         echo _('#tricks 1'); break;
        case 2:
        case 3:
        case 4:
-         echo "#tricks few"; break;
+         echo _('#tricks few'); break;
        default:
-         echo "#tricks many"; break;
+         echo _('#tricks many'); break;
        }
       echo "</span>\n";
       echo "  </div>\n";
@@ -1229,16 +1231,16 @@ function display_user_menu($id, $skiphash=NULL)
   if($skiphash)
     $result = DB_query("SELECT Hand.hash,Hand.game_id,Game.player from Hand".
                       " LEFT JOIN Game On Hand.game_id=Game.id".
-                      " WHERE Hand.user_id='$id'".
-                      " AND Hand.hash!='$skiphash'".
+                      " WHERE Hand.user_id=".DB_quote_smart($id).
+                      " AND Hand.hash!=".DB_quote_smart($skiphash).
                       " AND ( Game.player='$id' OR ISNULL(Game.player) )".
                       " AND ( Game.status='pre' OR Game.status='play' )".
                       " ORDER BY Game.session" );
   else
     $result = DB_query("SELECT Hand.hash,Hand.game_id,Game.player from Hand".
                       " LEFT JOIN Game On Hand.game_id=Game.id".
-                      " WHERE Hand.user_id='$id'".
-                      " AND ( Game.player='$id' OR ISNULL(Game.player) )".
+                      " WHERE Hand.user_id=".DB_quote_smart($id).
+                      " AND ( Game.player=".DB_quote_smart($id)." OR ISNULL(Game.player) )".
                       " AND ( Game.status='pre' OR Game.status='play' )".
                       " ORDER BY Game.session" );
 
@@ -1292,7 +1294,7 @@ function generate_score_table($session)
 
   /* get player id from the first game */
   $result = DB_query("SELECT user_id from Hand".
-                    " WHERE Hand.game_id=".$gameids[0][0]);
+                    " WHERE Hand.game_id=".DB_quote_smart($gameids[0][0]));
   while( $r = DB_fetch_array($result))
     $player[$r[0]] = 0;
 
@@ -1448,7 +1450,7 @@ function format_score_table_ascii($score)
 
   /* truncate table if we have too many games */
   $max = sizeof($score);
-  if($max>6) $output.=" (table truncated to last 6 games)\n";
+  if($max>6) $output.=" "._("(table truncated to last 6 games)")."\n";
 
   /* output header */
   foreach($score[0]['players'] as $id=>$points)
@@ -1576,7 +1578,7 @@ function check_vacation($userid)
 {
   /* get start date */
   $result = DB_query_array("SELECT value FROM User_Prefs".
-                    " WHERE user_id='$userid' AND pref_key='vacation start'" );
+                          " WHERE user_id=".DB_quote_smart($userid)." AND pref_key='vacation start'" );
   if($result)
     $start = $result[0];
   else
@@ -1584,7 +1586,7 @@ function check_vacation($userid)
 
   /* get end date */
   $result = DB_query_array("SELECT value FROM User_Prefs".
-                    " WHERE user_id='$userid' AND pref_key='vacation stop'" );
+                          " WHERE user_id=".DB_quote_smart($userid)." AND pref_key='vacation stop'" );
   if($result)
     $stop = $result[0];
   else
@@ -1592,7 +1594,7 @@ function check_vacation($userid)
 
   /* get comment */
   $result = DB_query_array("SELECT value FROM User_Prefs".
-                    " WHERE user_id='$userid' AND pref_key='vacation comment'" );
+                          " WHERE user_id=".DB_quote_smart($userid)." AND pref_key='vacation comment'" );
   if($result)
     $comment = $result[0];
   else
@@ -1725,15 +1727,19 @@ function set_language($l,$type='lang')
       case 'de':
        putenv("LC_ALL=de_DE");
        setlocale(LC_ALL, "de_DE");
-       // Specify location of translation tables
-       bindtextdomain("edoko", "./locale");
-       // Choose domain
-       textdomain("edoko");
        break;
       default:
-       /* do nothing */
+       putenv("LC_ALL=en_US");
+       setlocale(LC_ALL, "en_US");
+       break;
       }
 
+    // Specify location of translation tables
+    bindtextdomain("edoko", "./locale");
+    bind_textdomain_codeset("edoko", 'UTF-8');
+    // Choose domain
+    textdomain("edoko");
+
     return;
 }