X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=include%2Fuser.php;h=6169495e1c54b6fd0ef7e309e06947993bb20283;hp=67c720a2b6562ecc841f39e5cae218b4ade78871;hb=34745273b4e8935b4423a0db050dcd75bc672209;hpb=e1b3eaa640a1e4249b8406e946bd65e902aadfb9;ds=sidebyside
diff --git a/include/user.php b/include/user.php
index 67c720a..6169495 100644
--- a/include/user.php
+++ b/include/user.php
@@ -1,4 +1,23 @@
+ *
+ * This file is part of e-DoKo.
+ *
+ * e-DoKo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * e-DoKo is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with e-DoKo. If not, see
";
+ echo _('Ok, I will send you a new password.').'
';
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.
";
- echo "The new password will be valid for one day, make sure you reset it to something else.
";
- echo "Back to the main page.";
+ echo sprintf(_("N.B. You tried this already %s times during the last day and it will only work".
+ " 5 times during a day."),$number)."
\n";
+ echo _('The new password will be valid for one day, make sure you reset it to something else.').'
';
+ echo sprintf(_('Back to the main page.'),$INDEX);
/* 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";
- mymail($email,$EmailName."recovery ",$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));
@@ -63,9 +81,9 @@ 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.
".
- "You need to use one of those passwords or wait to get a new one.
";
- echo "Back to the main page.";
+ echo _('Sorry you already tried 5 times during the last 24h.
'.
+ 'You need to use one of those passwords or wait to get a new one.').'
';
+ echo sprintf(_('Back to the main page.'),$INDEX);
}
}
else
@@ -73,123 +91,251 @@ if(myisset("forgot"))
/* no email given? */
if($email=="")
- echo "You need to give me an email address!
".
- "Please try again.";
+ echo _('You need to give me an email address!')."
".
+ sprintf(_('Please try again.'),$INDEX);
else /* default error message */
- echo "Couldn't find a player with this email!
".
- "Please contact Arun, if you think this is a mistake
".
- "or else try again.";
+ echo _("Couldn't find a player with this email!")."
".
+ sprintf(_('Please contact %s, if you think this is a mistake '.
+ 'or else try again.'),$ADMIN_NAME, $INDEX );
}
}
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();
+ display_user_menu($myid);
/* display all games the user has played */
- echo "
Session:
\n";
- echo " p = pre-game phase ";
- echo "P = game in progess ";
- echo "F = game finished ";
- echo " N = game finished, hand played by others too
";
+ echo '
'._("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.")."
\n"; + } + + echo '\n";
+ echo ' '._('pre-game phase');
+ echo ' '._('game in progess');
+ echo ' N '._('game over (N people played this hand)').'
';
+ echo ' '._("Reminder: canceling a game can't be reversed!");
echo "
\n"; - while( $r = DB_fetch_array($result)) + /* sort into active and passive sessions */ + $count = 0; /* count number of games to check for beginner status */ + $session = -1; + $maxgame = 0; + $output_active = ""; + $output_inactive = ""; + $sessionoutput = ""; + $gameoutput = ""; + $keep_going = 2; + while( $keep_going ) { - $game = DB_format_gameid($r[1]); - $gamenr = (int) $game; - if($gamenrold < $gamenr) + /* get next element */ + $r = DB_fetch_array($result); + + if($r) + $count++; + else { - if($gamenrold!=-1) - echo " | ||
$gamenr: | \n"; - else - echo "$gamenr:\n"; - $gamenrold = $gamenr; - echo "\n"; + /* need to run the while loop one more time when we run out of elements in the database */ + $keep_going--; + $r[0] = NULL; + $r[1] = NULL; + $r[2] = NULL; + $r[3] = NULL; + $r[4] = NULL; + $r[5] = NULL; + $r[6] = -2; } - $Multi = ($r[5]>1) ? "multi" : ""; - if($r[4]=='pre') - echo " p \n"; - else if ($r[4]=='gameover') - { - echo " "; - if($r[5]<2) - echo "F "; - else - echo $r[5]; - echo "\n"; - } - else - echo " P \n"; - if($r[4] != 'gameover') + if( $r[6]==$session ) { - echo " | \n\n ";
- if($r[3]==$myid || !$r[3])
- echo "(it's your turn)\n";
- else
+ /* same session, update information */
+ $maxgame++;
+ $myhash = $r[0];
+ $gameid = $r[1];
+ $gamemoddate = $r[2];
+ $userid = $r[3];
+ $gamestatus = $r[4];
+ $gamefrequence = $r[5];
+
+ /* create output */
+ $sessionoutput .= $gameoutput;
+ $gameoutput = " "
+ .$gamefrequence."\n";
+ }
+ else
+ { /* new session */
+
+ /* output old session if available */
+ if($maxgame)
{
- $name = DB_get_name('userid',$r[3]);
- $gameid = $r[1];
- if(DB_get_reminder($r[3],$gameid)==0)
- if(time()-strtotime($r[2]) > 60*60*24*7)
- echo "Send a reminder.";
- echo "(it's $name's turn)\n";
- };
- if(time()-strtotime($r[2]) > 60*60*24*30)
- echo "Cancel?".
- " (clicking here is final and can't be restored)";
+ /* is session active? */
+ if($gamestatus == 'pre' || $gamestatus== 'play' || time()-strtotime($gamemoddate) < 60*60*24*5 )
+ {
+ $output_active .= " '."\n"; + $output_active .= ' '.$sessionoutput.''; + } + + $output_active .= " |
'._('You can start new games using the link in the top right corner!')."
\n"; /* display last 5 users that have signed up to e-DoKo */ $names = DB_get_names_of_new_logins(5); - echo "\n"; + echo '
\n"; echo implode(", ",$names).",...\n"; echo "
\n"; /* display last 5 users that logged on */ - $names = DB_get_names_of_last_logins(5); - echo "\n"; - echo implode(", ",$names).",...\n"; + echo '
\n"; + + $names = DB_get_names_of_last_logins(7); + $emails = DB_get_emails_of_last_logins(7); + for($i=0;$i<7;$i++) + { + echo '\n"; + } echo "
\n"; echo "