X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=include%2Ffunctions.php;h=43fbb24deeeb726e6154b5f0bdad84e8e1d75811;hp=0fec81ebc563e28513911a59378d846b073063b7;hb=c757506a0a598593115c377a6e4acf399f4d2b83;hpb=5edd63b115fe7712c6e220fc6a0b78dbace4f3cd diff --git a/include/functions.php b/include/functions.php index 0fec81e..43fbb24 100644 --- a/include/functions.php +++ b/include/functions.php @@ -54,10 +54,70 @@ function config_check() return; } -function mymail($To,$Subject,$message,$header="") +function mymail($uid,$subject,$message) { + global $EmailName; + + /* do we send the email right away or save it in the database? */ + $send_now = 1; + + /* add standard header and footer */ + $subject = "$EmailName".$subject; + + /* standard goodbye */ + $footer = "\nHave a nice day\n". + " your E-Doko service department\n\n". + "-- \n". + "You can change your mail delivery mode in the preference menu.\n". + 'web: http://doko.nubati.net '. + 'help: http://wiki.nubati.net/EmailDoko '. + 'bugs: http://wiki.nubati.net/EmailDokoIssues'; + + if(is_array($uid)) + { + /* send email to more than one person */ + + $header = "Hello all\n\n"; + + foreach($uid as $user) + { + $all[] = DB_get_email('userid',$user); + } + $To = implode(",",$all); + } + else + { + /* standard greeting */ + $name = DB_get_name('userid',$uid); + $header = "Hello $name\n\n"; + + $To = DB_get_email('userid',$uid); + + /* check if user wants email right away or if we should save it in + * the database for later delivery + */ + + $PREF = DB_get_PREF($uid); + if( $PREF['digest'] != 'digest-off' ) + $send_now = 0; + } + + if($send_now) + sendmail($To,$subject,$header.$message.$footer); + else + { + /* store email in database */ + DB_digest_insert_email($To,$message); + } +} + +function sendmail($To,$Subject,$message) +{ + /* this function sends the mail or outputs to the screen in case of debugging */ global $debug,$EMAIL_REPLY; + $header = ""; + if(isset($EMAIL_REPLY)) $header .= "From: e-DoKo daemon <$EMAIL_REPLY>\r\n"; @@ -104,7 +164,7 @@ function myisset() function myerror($message) { echo "".htmlspecialchars($message)."\n"; - mymail($ADMIN_EMAIL,$EmailName." Error in Code",$message); + sendmail($ADMIN_EMAIL,$EmailName." Error in Code",$message); return; } @@ -761,6 +821,7 @@ function display_table () $call = $r[5]; $hash = $r[7]; $timezone = $r[8]; + $wins = DB_get_number_of_tricks($gameid,$pos); date_default_timezone_set($defaulttimezone); $lastlogin = strtotime($r[6]); date_default_timezone_set($timezone); @@ -881,7 +942,25 @@ function display_table () echo "
\n"; echo " time info\n"; + "last login: ".date("Y-m-d H:i:s",$lastlogin)."\">". + "\"time". + "\n"; + + /* show how many tricks the person made */ + switch($wins) + { + case 0: + echo "#tricks 0"; break; + case 1: + echo "#tricks 1"; break; + case 2: + case 3: + case 4: + echo "#tricks few"; break; + default: + echo "#tricks many"; break; + } + echo " \n"; } @@ -900,7 +979,7 @@ function display_user_menu($id) " LEFT JOIN Game On Hand.game_id=Game.id". " WHERE Hand.user_id='$id'". " AND ( Game.player='$id' OR ISNULL(Game.player) )". - " AND Game.status<>'gameover'". + " AND ( Game.status='pre' OR Game.status='play' )". " ORDER BY Game.session" ); $i=0; @@ -1211,4 +1290,35 @@ function check_vacation($userid) return NULL; } +function cancel_game($why,$gameid) +{ + $gameid = DB_quote_smart($gameid); + + /* update the game table */ + switch($why) + { + case 'timedout': + DB_query("UPDATE Game SET status='cancel-timedout' WHERE id=$gameid"); + break; + case 'nines': + DB_query("UPDATE Game SET status='cancel-nines' WHERE id=$gameid"); + break; + case 'trump': + DB_query("UPDATE Game SET status='cancel-trump' WHERE id=$gameid"); + break; + case 'noplay': + DB_query("UPDATE Game SET status='cancel-noplay' WHERE id=$gameid"); + break; + } + /* set each player to gameover */ + $result = DB_query("SELECT id FROM Hand WHERE game_id=".DB_quote_smart($gameid)); + while($r = DB_fetch_array($result)) + { + $id = $r[0]; + DB_query("UPDATE Hand SET status='gameover' WHERE id=".DB_quote_smart($id)); + } + + return; +} + ?>