fixed more language settings in email; marked more strings for translation
[e-DoKo.git] / include / user.php
index eb4f6c4c33dd8160c066491811546b3328bb75ae..a80fddd0a991e360ad70adbc176cc21f921d3b25 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/* Copyright 2006, 2007, 2008, 2009, 2010 Arun Persaud <arun@nubati.net>
+/* Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 Arun Persaud <arun@nubati.net>
  *
  *   This file is part of e-DoKo.
  *
@@ -25,20 +25,17 @@ if(!isset($HOST))
   exit;
 
 /* test id and password, should really be done in one step */
-if(!isset($_SESSION["name"]))
+if(isset($_SESSION['name']))
   {
-    $email     = $_REQUEST["email"];
-    $password  = $_REQUEST["password"];
-  }
-else
-  {
-    $name = $_SESSION["name"];
+    $name = $_SESSION['name'];
     $email     = DB_get_email('name',$name);
     $password  = DB_get_passwd_by_name($name);
   };
 
+global  $ADMIN_NAME;
+
 /* user has forgotten his password */
-if(myisset("forgot"))
+if(myisset('forgot'))
   {
     /* check if player is in the database */
     $ok = 1;
@@ -55,26 +52,25 @@ if(myisset("forgot"))
        /* if less than N recent ones, add a new one and send out email */
        if( $number < 5 )
          {
-           echo "Ok, I send you a new password. <br />";
+           echo _('Ok, I will send you a new password.').' <br />';
            if($number >1)
              echo "N.B. You tried this already $number times during the last day and it will only work ".
                " 5 times during a day.<br />";
-           echo "The new password will be valid for one day, make sure you reset it to something else.<br />";
+           echo _('The new password will be valid for one day, make sure you reset it to something else.').'<br />';
            echo "Back to the  <a href=\"$INDEX\">main page</a>.";
 
            /* create temporary password, use the fist 8 letters of a md5 hash */
            $TIME  = (string) time(); /* to avoid collisions */
-           $hash  = md5("Anewpassword".$email.$TIME);
+           $hash  = md5('Anewpassword'.$email.$TIME);
            $newpw = substr($hash,1,8);
 
-           $message = "Someone (hopefully you) requested a new password. \n".
-             "You can use this email and the following password: \n".
-             "   $newpw    \n".
+           $message = sprintf( _("Someone (hopefully you) requested a new password.\n".
+             "You can use this email and the following password:\n".
+             "   %s\n".
              "to log into the server. The new password is valid for 24h, so make\n".
              "sure you reset your password to something new. Your old password will\n".
-             "also still be valid until you set a new one.\n";
-           $subject = 'Recovery';
-           mymail($myid,$subject,$message);
+             "also still be valid until you set a new one.\n"), $newpw);
+           mymail($myid,0, GAME_RECOVERY, $message);
 
            /* we save these in the database */
            DB_set_recovery_password($myid,md5($newpw));
@@ -83,8 +79,8 @@ if(myisset("forgot"))
          {
            /* make it so that people (or a robot) can request thousands of passwords within a short time
             * and spam a user this way */
-           echo "Sorry you already tried 5 times during the last 24h.<br />".
-             "You need to use one of those passwords or wait to get a new one.<br />";
+           echo _('Sorry you already tried 5 times during the last 24h.<br />'.
+                  'You need to use one of those passwords or wait to get a new one.').'<br />';
            echo "Back to the <a href=\"$INDEX\">main page</a>.";
          }
       }
@@ -97,7 +93,7 @@ if(myisset("forgot"))
            "Please try <a href=\"$INDEX\">again</a>.";
        else /* default error message */
          echo "Couldn't find a player with this email! <br />".
-           "Please contact Arun, if you think this is a mistake <br />".
+           "Please contact $ADMIN_NAME, if you think this is a mistake <br />".
            "or else try <a href=\"$INDEX\">again</a>.";
       }
   }
@@ -105,44 +101,50 @@ else
   { /* normal user page */
 
     /* verify password and email */
-    if(strlen($password)!=32)
-      $password = md5($password);
-
     $ok  = 1;
-    $myid = DB_get_userid('email-password',$email,$password);
-    if(!$myid)
+    if(isset($email, $password))
+      {
+       $myid = DB_get_userid('email-password',$email,$password);
+        if(!$myid)
+         $ok = 0;
+      }
+    else
       $ok = 0;
 
     if($ok)
       {
        /* user information is ok */
        $myname = DB_get_name('email',$email);
-       $_SESSION["name"] = $myname;
+       $_SESSION['name'] = $myname;
 
        $PREF = DB_get_PREF($myid);
+       /* set language chosen in preferences, will become active on the next reload (see index.php)*/
+       $_SESSION['language'] = $PREF['language'];
+       set_language($PREF['language']);
 
        DB_update_user_timestamp($myid);
 
        display_user_menu($myid);
 
        /* display all games the user has played */
-       echo "<div class=\"user\">";
+       echo '<div class="user">';
 
        if($myvacation = check_vacation($myid))
          {
            $vac_start   = $myvacation[0];
            $vac_stop    = $myvacation[1];
            $vac_comment = $myvacation[2];
-           echo "<p class=\"vacation\">Enjoy your vacation (don't forgot to change your settings once you're back). Between $vac_start and $vac_stop other users will see the following message: $vac_comment.</p>\n";
+           echo '<p class="vacation">'._("Enjoy your vacation (don't forgot to change your settings once you're back).").
+             " Between $vac_start and $vac_stop other users will see the following message: $vac_comment.</p>\n";
          }
 
-       echo "<h4>These are all your games:</h4>\n";
+       echo '<h4>'._('These are your games').":</h4>\n";
        /* output legend */
-       echo "<p>Games: \n";
-       echo "<span class=\"gamestatuspre\"> &nbsp; </span> =  pre-game phase ";
-       echo "<span class=\"gamestatusplay\"> &nbsp; </span> =  game in progess ";
-       echo "<span class=\"gamestatusover \"><a>N</a> </span> =  game over (N people played the same hand) <br />";
-       echo " Reminder: canceling a game can't be reversed!";
+       echo "<p>\n";
+       echo ' <span class="gamestatuspre"> &nbsp; </span> &nbsp;'._('pre-game phase');
+       echo ' <span class="gamestatusplay"> &nbsp; </span> &nbsp;'._('game in progess');
+       echo ' <span class="gamestatusover "><a>N</a> </span> &nbsp;'._('game over (N people played this hand)').' <br />';
+       echo ' '._("Reminder: canceling a game can't be reversed!");
        echo "</p>\n";
 
        /* get all games */
@@ -225,7 +227,7 @@ else
                          {
                            $output_active .= '<span class="turn">';
                            if($userid==$myid || !$userid)
-                             $output_active .= " <strong>your</strong> turn\n";
+                             $output_active .= ' <strong>'._('your turn')."</strong>\n";
                            else
                              {
                                $name = DB_get_name('userid',$userid);
@@ -243,7 +245,7 @@ else
                                /* check if we need to send out a reminder */
                                if(DB_get_reminder($userid,$gameid)==0)
                                  if(time()-strtotime($gamemoddate) > 60*60*24*7)
-                                   $output_active .= "<a href=\"$INDEX?action=reminder&amp;me=".$myhash."\">Send a reminder?</a> ";
+                                   $output_active .= "<a href=\"$INDEX?action=reminder&amp;me=".$myhash."\">"._('Send a reminder?').'</a> ';
 
                              };
                            $output_active .= '</span>';
@@ -254,7 +256,8 @@ else
 
                        if($maxgame>1)
                          {
-                           $output_active .= ' <span class="gameshidesession link">(hide/show) old</span><br />'."\n";
+                           $output_active .= ' <span class="gamesshowsession"><a href="#">'._('show old').'</a></span>'.
+                             '  <span class="gameshidesession"><a href="#">'._('hide old').'</a></span><br />'."\n";
                            $output_active .= ' <span class="gamessession">'.$sessionoutput.'</span>';
                          }
 
@@ -295,23 +298,23 @@ else
          }
 
        echo "<ul>\n ";
-       echo " <li><span class=\"gameshowall link\">show all</span> <span class=\"gamehideall link\">hide all</span></li>\n";
+       echo ' <li><span class="gameshowall"><a href="#">'._('show all').'</a></span> <span class="gamehideall"><a href="#">'._('hide all')."</a></span></li>\n";
        echo $output_active;
-       echo " <li><span class=\"gameshidesession link\">hide/show inactive</span><ul class=\"gamessession\">$output_inactive </ul></li>";
+       echo ' <li><span class="gamesshowsession"><a href="#">'._('show inactive').'</a></span><span class="gameshidesession"><a href="#">'._('hide inactive').'</a></span><ul class="gamessession">'."$output_inactive </ul></li>";
        echo "</ul>\n";
 
        /* give a hint for new players */
        if($count<10)
-         echo "<p class=\"newbiehint\">You can start new games using the link in the top right corner!</p>\n";
+         echo '<p class="newbiehint">'._('You can start new games using the link in the top right corner!')."</p>\n";
 
        /* display last 5 users that have signed up to e-DoKo */
        $names = DB_get_names_of_new_logins(5);
-       echo "<h4>New Players:</h4>\n<p>\n";
+       echo '<h4>'._('New Players').":</h4>\n<p>\n";
        echo implode(", ",$names).",...\n";
        echo "</p>\n";
 
        /* display last 5 users that logged on */
-       echo "<h4>Players last logged in:</h4>\n<p>\n";
+       echo '<h4>'._('Players last logged in').":</h4>\n<p>\n";
 
        $names  = DB_get_names_of_last_logins(7);
        $emails = DB_get_emails_of_last_logins(7);
@@ -325,7 +328,7 @@ else
       }
     else
       {
-       echo "<div class=\"message\">Sorry email and password don't match. Please <a href=\"$INDEX\">try again</a>. </div>";
+       echo '<div class="message">'."Sorry email and password don't match. Please <a href=\"$INDEX\">try again</a>.".' </div>';
       }
   };
 ?>
\ No newline at end of file