BUGFIX: fix mysql insert statements (null values for timestamps didn't work anymore)
[e-DoKo.git] / include / reminder.php
1 <?php
2 /* Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Arun Persaud <arun@nubati.net>
3  *
4  *   This file is part of e-DoKo.
5  *
6  *   e-DoKo is free software: you can redistribute it and/or modify
7  *   it under the terms of the GNU General Public License as published by
8  *   the Free Software Foundation, either version 3 of the License, or
9  *   (at your option) any later version.
10  *
11  *   e-DoKo is distributed in the hope that it will be useful,
12  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *   GNU General Public License for more details.
15  *
16  *   You should have received a copy of the GNU General Public License
17  *   along with e-DoKo.  If not, see <http://www.gnu.org/licenses/>.
18  *
19  */
20
21 /* make sure that we are not called from outside the scripts,
22  * use a variable defined in config.php to check this
23  */
24 if(!isset($HOST))
25   exit;
26
27 if(!myisset("me"))
28   {
29     echo "Hmm, you really shouldn't mess with the urls.<br />\n";
30     return;
31   }
32
33 $me = $_REQUEST["me"];
34
35 /* test for valid ID */
36 $myid = DB_get_userid('hash',$me);
37 if(!$myid)
38   {
39     echo "Can't find you in the database, please check the url.<br />\n";
40     echo "perhaps the game has been canceled, check by login in <a href=\"$INDEX\">here</a>.";
41     return;
42   }
43
44 DB_update_user_timestamp($myid);
45 set_language($myid,'uid');
46
47 /* get some information from the DB */
48 $gameid   = DB_get_gameid_by_hash($me);
49 $myname   = DB_get_name('hash',$me);
50
51 /* check if player hasn't done anything in a while */
52 $r = DB_query_array("SELECT mod_date,player,status from Game WHERE id='$gameid' " );
53 if( (time()-strtotime($r[0]) > 60*60*24*7)  && ($r[2]!='gameover') ) /* = 1 week */
54   {
55     $uid  = $r[1];
56     $name = DB_get_name('userid',$uid);
57     $userhash = DB_get_hash_from_gameid_and_userid($gameid,$uid);
58
59     /* make sure we don't send too many reminders to one person */
60     if(DB_get_reminder($uid,$gameid)>0)
61       {
62         echo '<p>'._('An email has already been sent out.')."</p>\n";
63       }
64     else
65       {
66         set_language($uid,'uid');
67         $message = _("It's your turn in game ").DB_format_gameid($gameid)." \n".
68           _("Actually everyone else is waiting for you for more than a week now ;)")."\n\n".
69           _("Please visit this link now to continue").": \n".
70           " ".$HOST.$INDEX."?action=game&me=".$userhash."\n\n" ;
71
72         DB_set_reminder($uid,$gameid);
73         mymail($r[1],$gameid, GAME_REMINDER, $message);
74         set_language($myid,'uid');
75
76         echo '<p>'._('Game')." ".DB_format_gameid($gameid).': '.
77           _('an email has been sent out.')."<br /><br /></p>\n";
78       }
79   }
80  else
81    echo '<p>'._('You need to wait longer before you can send out a reminder...')."</p>\n";
82 ?>