X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=include%2Ffunctions.php;h=0559895fbd1ef3684a0c618cf0ab1f83ed5ec1ec;hp=b4c344d244e436946d830bdc95c722491a7d15f4;hb=8e50d2401a3379114bf58d9532589af0a5bae2ca;hpb=c1585e23cb3ea757674c234c9193889b4f2f2090 diff --git a/include/functions.php b/include/functions.php index b4c344d..0559895 100644 --- a/include/functions.php +++ b/include/functions.php @@ -54,10 +54,50 @@ function config_check() return; } -function mymail($To,$Subject,$message,$header="") +function mymail($uid,$subject,$message) { + global $EmailName; + + /* check if user wants email right away or if we should save it in + * the database for later delivery + */ + if(0) + { + /* send to database (not yet implemented)*/ + } + else + { + /* send email right away */ + + /* add standard header and footer */ + $subject = "$EmailName".$subject; + + /* standard greeting */ + $name = DB_get_name('userid',$uid); + $header = "Hello $name\n\n"; + + /* and 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'; + + $To = DB_get_email('userid',$uid); + + sendmail($To,$subject,$header.$message.$footer); + } +} + +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 +144,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; } @@ -881,7 +921,9 @@ function display_table () echo "
\n"; echo " time info\n"; + "last login: ".date("Y-m-d H:i:s",$lastlogin)."\">". + "". + "\n"; echo " \n"; } @@ -987,14 +1029,15 @@ function generate_global_score_table() $gameids = DB_get_gameids_of_finished_games_by_session(0); if($gameids == NULL) - return ""; + return ''; /* get player id, names... from the User table */ $player = array(); - $result = DB_query("SELECT User.id, User.fullname FROM User"); + $result = DB_query('SELECT User.id, User.fullname FROM User'); + /* save information in an array */ while( $r = DB_fetch_array($result)) - $player[] = array( 'id' => $r[0], 'name'=> $r[1], 'points' => 0 ,'nr' => 0); + $player[$r[0]] = array('name'=> $r[1], 'points' => 0 ,'nr' => 0); /* get points and generate table */ foreach($gameids as $gameid) @@ -1002,19 +1045,21 @@ function generate_global_score_table() $re_score = DB_get_score_by_gameid($gameid); $gametype = DB_get_gametype_by_gameid($gameid); - /* TODO: this shouldn't loop over all players, just the 4 players that are in the game */ - foreach($player as $key=>$pl) + /* get players involved in this game */ + $result = DB_query('SELECT user_id FROM Hand WHERE game_id='.DB_quote_smart($gameid)); + while($r = DB_fetch_array($result)) { - $party = DB_get_party_by_gameid_and_userid($gameid,$pl['id']); - if($party == "re") - if($gametype=="solo") - $player[$key]['points'] += 3*$re_score; + $id = $r[0]; + $party = DB_get_party_by_gameid_and_userid($gameid,$id); + if($party == 're') + if($gametype=='solo') + $player[$id]['points'] += 3*$re_score; else - $player[$key]['points'] += $re_score; - else if ($party == "contra") - $player[$key]['points'] -= $re_score; + $player[$id]['points'] += $re_score; + else if ($party == 'contra') + $player[$id]['points'] -= $re_score; if($party) - $player[$key]['nr']+=1; + $player[$id]['nr']+=1; } } @@ -1030,13 +1075,13 @@ function generate_global_score_table() return 0; return ($a > $b) ? -1 : 1; } - usort($player,"cmp"); + usort($player,'cmp'); foreach($player as $pl) { /* limit to players with at least 10 games */ if($pl['nr']>10) - $return[] = array( $pl['name'], round($pl['points']/$pl['nr'],3) ); + $return[] = array( $pl['name'], round($pl['points']/$pl['nr'],3), $pl['points'],$pl['nr']); } return $return;