X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=include%2Ffunctions.php;h=b476f6de7eb8e6ab151908c61db6c24359edade2;hp=b1c70891b566aff1f438a1ed03e15dfaf313922b;hb=65de9655c6002bbfee76f1c3c45b312615fb375a;hpb=46140faa11b97252647178a811da22509256d6c4 diff --git a/include/functions.php b/include/functions.php index b1c7089..b476f6d 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1,5 +1,5 @@ +/* Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Arun Persaud * * This file is part of e-DoKo. * @@ -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) "$1", $message); echo "
To: $To
"; - if($header != "") - echo $header."
"; + echo $header."
"; echo "Subject: $Subject
$message
\n"; } else - if($header != "") - mail($To,$Subject,$message,$header); - else - mail($To,$Subject,$message); + mail($To,$Subject,$message,$header); + return; } @@ -983,23 +985,22 @@ function can_call($what,$hash) function display_table_begin () { - global $gameid, $GT, $debug,$INDEX,$defaulttimezone,$session; - global $RULES,$GAME,$gametype; - - $result = DB_query("SELECT User.fullname as name,". - " Hand.position as position, ". - " User.id, ". - " Hand.party as party, ". - " Hand.sickness as sickness, ". - " Hand.point_call, ". - " User.last_login, ". - " 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"); + global $gameid; + + $result = DB_query('SELECT User.fullname as name,'. + ' Hand.position as position,'. + ' User.id,'. + ' Hand.party as party,'. + ' Hand.sickness as sickness,'. + ' Hand.point_call,'. + ' User.last_login,'. + ' Hand.hash,'. + ' User.timezone,'. + ' User.email'. + ' 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); @@ -1015,25 +1016,26 @@ function display_table_begin () return; } + + function display_table_end () { - global $gameid, $GT, $debug,$INDEX,$defaulttimezone,$session; - global $RULES,$GAME,$gametype; - - $result = DB_query("SELECT User.fullname as name,". - " Hand.position as position, ". - " User.id, ". - " Hand.party as party, ". - " Hand.sickness as sickness, ". - " Hand.point_call, ". - " User.last_login, ". - " 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"); + global $gameid; + + $result = DB_query('SELECT User.fullname as name,'. + ' Hand.position as position,'. + ' User.id,'. + ' Hand.party as party,'. + ' Hand.sickness as sickness,'. + ' Hand.point_call,'. + ' User.last_login,'. + ' Hand.hash,'. + ' User.timezone,'. + ' User.email'. + ' 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); @@ -1051,8 +1053,8 @@ function display_single_user($r,$start=0) { /* start=1, mark starting player, default=0, so the player on the left is not marked */ - global $gameid, $GT, $debug,$INDEX,$defaulttimezone,$session; - global $RULES,$GAME,$gametype; + global $gameid, $debug,$INDEX,$defaulttimezone; + global $RULES,$GAME, $gametype_raw; $name = $r[0]; $pos = $r[1]; @@ -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 " $gravatar (on vacation until $stop) \n"; + $title = _("begin:")." $start "._("end:")." $stop $comment"; + echo " $gravatar "._("(on vacation until $stop)")." \n"; } else echo " $gravatar \n"; @@ -1094,11 +1096,11 @@ function display_single_user($r,$start=0) echo" \n"; /* add hints for poverty, wedding, solo, etc */ - if( $gametype != "solo") + if( $gametype_raw != "solo") if( $RULES["schweinchen"]=="both" && $GAME["schweinchen-who"]==$hash ) echo " Schweinchen.
"; - if($GT=="poverty" && $party=="re") + if($gametype_raw=="poverty" && $party=="re") if($sickness=="poverty" || ($RULES['lowtrump']=='poverty' && $sickness=='lowtrump')) { $userhash = DB_get_hash_from_gameid_and_userid($gameid,$user); @@ -1115,7 +1117,7 @@ function display_single_user($r,$start=0) echo " \n"; - if($GT=="dpoverty") + if($gametype_raw=="dpoverty") if($party=="re") if($sickness=="poverty" || ($RULES['lowtrump']=='poverty' && $sickness=='lowtrump')) { @@ -1149,28 +1151,31 @@ function display_single_user($r,$start=0) echo " \" title=\"poverty2 partner\" />\n"; - if($GT=="wedding" && $party=="re") + if($gametype_raw=="wedding" && $party=="re") if($sickness=="wedding") echo " \"wedding\"\n"; else echo " \n"; - if( (strpos($GT,"solo")!==false) && $party=="re") + if( $gametype_raw=='solo' && $party=="re") { - if(strpos($GT,"queen")!==false) + $solotype = DB_get_solo_by_gameid($gameid); + $GT = get_display_gametype($gameid); + + if($solotype=='queen') echo " \"$GT\"\n"; - else if(strpos($GT,"jack")!==false) + else if($solotype=='jack') echo " \"$GT\"\n"; - else if(strpos($GT,"club")!==false) + else if($solotype=='club') echo " \"$GT\"\n"; - else if(strpos($GT,"spade")!==false) + else if($solotype=='spade') echo " \"$GT\"\n"; - else if(strpos($GT,"heart")!==false) + else if($solotype=='heart') echo " \"$GT\"\n"; - else if(strpos($GT,"trumpless")!==false) + else if($solotype=='trumpless') echo " \"$GT\"\n"; - else if(strpos($GT,"trump")!==false) + else if($solotype=='trump') echo " \"$GT\"\n"; } @@ -1207,15 +1212,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 "\n"; echo " \n"; @@ -1229,18 +1234,18 @@ 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) )". + $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='.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" ); + ' ORDER BY Game.session' ); $i=0; while( $r = DB_fetch_array($result)) @@ -1291,8 +1296,8 @@ function generate_score_table($session) $player_party = array(); /* get player id from the first game */ - $result = DB_query("SELECT user_id from Hand". - " WHERE Hand.game_id=".$gameids[0][0]); + $result = DB_query('SELECT user_id from Hand'. + ' WHERE Hand.game_id='.DB_quote_smart($gameids[0][0])); while( $r = DB_fetch_array($result)) $player[$r[0]] = 0; @@ -1308,18 +1313,18 @@ function generate_score_table($session) foreach($player as $id=>$points) { $party = $player_party[$id][$i][0]; - if($party == "re") - if($gametype=="solo") + if($party == 're') + if($gametype=='solo') $player[$id] += 3*$re_score; else $player[$id] += $re_score; - else if ($party == "contra") + else if ($party == 'contra') $player[$id] -= $re_score; } $score[$i]['gameid'] = $gameid[0] ; $score[$i]['players'] = $player; $score[$i]['points'] = abs($re_score); - $score[$i]['solo'] = ($gametype=="solo"); + $score[$i]['solo'] = ($gametype=='solo'); $i++; } @@ -1448,7 +1453,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 +1581,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 +1589,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 +1597,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,16 +1730,72 @@ 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; } +function get_display_gametype($gameid) +{ + /* return a readable string that can be displayed to show the game type + * this means hiding silent solo from the user + */ + + $gametype = DB_get_gametype_by_gameid($gameid); + + if ($gametype == 'normal') + $GT = _('normal'); + else if($gametype=='solo') + { + $solotype = DB_get_solo_by_gameid($gameid); + + switch($solotype) + { + case 'trumpless': + $GT = _('trumpless solo'); + break; + case 'jack': + $GT = _('jack solo'); + break; + case 'queen': + $GT = _('queen solo'); + break; + case 'trump': + $GT = _('trump solo'); + break; + case 'club': + $GT = _('club solo'); + break; + case 'spade': + $GT = _('spade solo'); + break; + case 'heart': + $GT = _('heart solo'); + break; + case 'silent': + $GT = _('normal'); /* this is change compared to $gametype */ + break; + } + } + else if ($gametype == 'wedding') + $GT = _('wedding'); + else if ($gametype == 'poverty') + $GT = _('poverty'); + else if ($gametype == 'dpoverty') + $GT = _('double poverty'); + + return $GT; +} + ?>