From c81c7401e5db346fb07aa54183c1e6456d044a9b Mon Sep 17 00:00:00 2001
From: Arun Persaud
Date: Sun, 7 Feb 2010 18:57:46 -0800
Subject: CLEANUP: removed ereg-functions (deprecated in newer php versions)
used strpos and preg_replace instead
---
include/functions.php | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
(limited to 'include')
diff --git a/include/functions.php b/include/functions.php
index 998ca02..16d094c 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -146,8 +146,8 @@ function sendmail($To,$Subject,$message)
* change txt -> html
*/
$message = str_replace("\n"," \n",$message);
- $message = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
- "\\0", $message);
+ $message = preg_replace("#(\w+://[^<>\s]+[\w/]*)#",
+ "$1", $message);
echo " To: $To ";
if($header != "")
@@ -980,21 +980,21 @@ function display_table ()
else
echo " ";
- if(ereg("solo",$GT) && $party=="re")
+ if( (strpos($GT,"solo")!==false) && $party=="re")
{
- if(ereg("queen",$GT))
+ if(strpos($GT,"queen")!==false)
echo " ";
- else if(ereg("jack",$GT))
+ else if(strpos($GT,"jack")!==false)
echo " ";
- else if(ereg("club",$GT))
+ else if(strpos($GT,"club")!==false)
echo " ";
- else if(ereg("spade",$GT))
+ else if(strpos($GT,"spade")!==false)
echo " ";
- else if(ereg("heart",$GT))
+ else if(strpos($GT,"heart")!==false)
echo " ";
- else if(ereg("trumpless",$GT))
+ else if(strpos($GT,"trumpless")!==false)
echo " ";
- else if(ereg("trump",$GT))
+ else if(strpos($GT,"trump")!==false)
echo " ";
}
--
cgit v1.2.3-18-g5258
From bb470d6deeb78f69eb3875f0280a59abfeaa8e7d Mon Sep 17 00:00:00 2001
From: Arun Persaud
Date: Sun, 7 Feb 2010 19:09:37 -0800
Subject: updated copyright notice in footer
---
include/output.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'include')
diff --git a/include/output.php b/include/output.php
index 06eb8de..ce72c4e 100644
--- a/include/output.php
+++ b/include/output.php
@@ -378,7 +378,7 @@ function output_footer()
echo "\n\n";
echo "\n";
/* show score */
@@ -400,7 +401,7 @@ switch($mystatus)
$mycards = DB_get_hand($me);
$mycards = mysort($mycards,$gametype);
- if(!myisset('solo','wedding','poverty','nines') )
+ if(!myisset('solo','wedding','poverty','nines','lowtrump') )
{
/* output sickness of other playes, in case the already selected and are sitting in front of the current player */
echo "\n
\n";
@@ -439,9 +440,10 @@ switch($mystatus)
/* check if someone selected more than one sickness */
$Nsickness = 0;
if($_REQUEST['solo']!='No') $Nsickness++;
- if($_REQUEST['wedding'] == 'yes') $Nsickness++;
- if($_REQUEST['poverty'] == 'yes') $Nsickness++;
- if($_REQUEST['nines'] == 'yes') $Nsickness++;
+ if($_REQUEST['wedding'] == 'yes') $Nsickness++;
+ if($_REQUEST['poverty'] == 'yes') $Nsickness++;
+ if($_REQUEST['nines'] == 'yes') $Nsickness++;
+ if($_REQUEST['lowtrump'] == 'yes') $Nsickness++;
if($Nsickness>1)
{
@@ -503,6 +505,16 @@ switch($mystatus)
" is playing solo, this game will be canceled. \n";
DB_set_sickness_by_hash($me,'nines');
}
+ else if($_REQUEST['lowtrump'] == 'yes')
+ {
+ if($RULES['lowtrump']=='cancel')
+ echo "What? You just don't want to play a game because you have low trump? Well, if no one".
+ " is playing solo, this game will be canceled. \n";
+ else
+ echo "Don't think you can win with low trumps...? ok, poverty chosen . \n";
+
+ DB_set_sickness_by_hash($me,'lowtrump');
+ }
echo "
\n";
@@ -592,7 +604,7 @@ switch($mystatus)
$startplayer = DB_get_startplayer_by_gameid($gameid);
/* check for sickness */
- $nines = 0;
+ $cancel = 0;
$poverty = 0;
$wedding = 0;
$solo = 0;
@@ -600,12 +612,13 @@ switch($mystatus)
{
$name = DB_get_name('userid',$user);
$usersick = DB_get_sickness_by_userid_and_gameid($user,$gameid);
- if($usersick == 'nines')
+ if($usersick == 'nines' || ($RULES['lowtrump']=='cancel' && $usersick=='lowtrump') )
{
- $nines = $user;
+ $cancel = $user;
+ $cancelsick = $usersick;
break; /* no need to check for other poverties, since only solo can win and that is already set */
}
- else if($usersick == 'poverty')
+ else if($usersick == 'poverty' || ($RULES['lowtrump']=='poverty' && $usersick=='lowtrump'))
$poverty++;
else if($usersick == 'wedding')
$wedding=$user;
@@ -618,13 +631,35 @@ switch($mystatus)
{
/* do nothing */
}
- else if($nines)
+ else if($cancel)
{
/* cancel game */
- $message = "The game has been canceled because ".DB_get_name('userid',$nines).
- " has five or more nines and nobody is playing solo.\n\n".
- "To redeal either start a new game or, in case the game was part of a tournament,\n".
- "go to the last game and use the link at the bottom of the page to redeal.\n\n";
+ if($cancelsick == 'nines')
+ {
+ $message = "The game has been canceled because ".DB_get_name('userid',$cancel).
+ " has five or more nines and nobody is playing solo.\n\n".
+ "To redeal either start a new game or, in case the game was part of a tournament,\n".
+ "go to the last game and use the link at the bottom of the page to redeal.\n\n";
+
+ /* update game status */
+ cancel_game('nines',$gameid);
+
+ echo "
The game has been canceled because ".DB_get_name('userid',$cancel).
+ " has five or more nines and nobody is playing solo.
\n";
+ }
+ else if ($cancelsick == 'lowtrump')
+ {
+ $message = "The game has been canceled because ".DB_get_name('userid',$cancel).
+ " has low trump and nobody is playing solo.\n\n".
+ "To redeal either start a new game or, in case the game was part of a tournament,\n".
+ "go to the last game and use the link at the bottom of the page to redeal.\n\n";
+
+ /* update game status */
+ cancel_game('lowtrump',$gameid);
+
+ echo "
The game has been canceled because ".DB_get_name('userid',$cancel).
+ " has low trump and nobody is playing solo.
\n";
+ };
$userids = DB_get_all_userid_by_gameid($gameid);
foreach($userids as $user)
@@ -633,11 +668,6 @@ switch($mystatus)
mymail($user,$subject,$message);
}
- /* update game status */
- cancel_game('nines',$gameid);
-
- echo "
The game has been canceled because ".DB_get_name('userid',$nines).
- " has five or more nines and nobody is playing solo.
\n";
echo "\n";
break;
}
@@ -649,7 +679,7 @@ switch($mystatus)
if(!$who)
{
$firstsick = DB_get_sickness_by_pos_and_gameid(1,$gameid);
- if($firstsick == 'poverty')
+ if($firstsick == 'poverty' || ($RULES['lowtrump']=='poverty' && $firstsick=='lowtrump'))
DB_set_sickness_by_gameid($gameid,2); /* who needs to be asked first */
else
DB_set_sickness_by_gameid($gameid,1); /* who needs to be asked first */
@@ -663,10 +693,10 @@ switch($mystatus)
if(!$who)
{
$firstsick = DB_get_sickness_by_pos_and_gameid(1,$gameid);
- if($firstsick == 'poverty')
+ if($firstsick == 'poverty' || ($RULES['lowtrump']=='poverty' && $firstsick=='lowtrump'))
{
- $seconsick = DB_get_sickness_by_pos_and_gameid(1,$gameid);
- if($secondsick == 'poverty')
+ $secondsick = DB_get_sickness_by_pos_and_gameid(1,$gameid);
+ if($secondsick == 'poverty' || ($RULES['lowtrump']=='poverty' && $secondsick=='lowtrump'))
DB_set_sickness_by_gameid($gameid,30); /* who needs to be asked first */
else
DB_set_sickness_by_gameid($gameid,20); /* who needs to be asked first */
@@ -726,7 +756,7 @@ switch($mystatus)
case 'dpoverty':
/* set person with poverty to play status */
$usersick = DB_get_sickness_by_userid_and_gameid($userid,$gameid);
- if($usersick == 'poverty')
+ if($usersick == 'poverty' || ($RULES['lowtrump']=='poverty' && $usersick=='lowtrump'))
DB_set_hand_status_by_hash($userhash,'play');
/* set status of first player to be asked to poverty */
@@ -806,6 +836,7 @@ switch($mystatus)
echo "\n";
break;
}
+ echo "\n";
case 'poverty':
/* user only gets here in a poverty game, several things have to be handled here:
* A) ask, if user wants to take trump
@@ -919,7 +950,7 @@ switch($mystatus)
$userhash = DB_get_hash_from_gameid_and_userid($gameid,$user);
$userparty = DB_get_party_by_hash($userhash);
- if($usersick=='poverty' && !$userparty)
+ if(($usersick=='poverty'|| ($RULES['lowtrump']=='poverty' && $usersick=='lowtrump')) && !$userparty)
{
$hash = DB_get_hash_from_gameid_and_userid($gameid,$user);
$cards = DB_get_hand($hash);
@@ -927,7 +958,10 @@ switch($mystatus)
$nrtrump = 0;
foreach($cards as $card)
if($card<27) $nrtrump++;
- echo "Player $name has $nrtrump trump. Do you want to take them?".
+ $low='';
+ if($usersick=='lowtrump')
+ $low='low';
+ echo "Player $name has $nrtrump $low trump. Do you want to take them?".
"Yes \n";
}
}
@@ -956,9 +990,9 @@ switch($mystatus)
/* don't ask people who have poverty */
$next=1;
- if($firstsick=='poverty')
+ if($firstsick=='poverty' || ($RULES['lowtrump']=='poverty' && $firstsick=='lowtrump'))
{
- if($secondsick=='poverty')
+ if($secondsick=='poverty'|| ($RULES['lowtrump']=='poverty' && $secondsick=='lowtrump'))
$next=3;
else
$next=2;
@@ -1073,8 +1107,8 @@ switch($mystatus)
$secondsick = (string) DB_get_sickness_by_pos_and_gameid($mypos+2,$gameid);
$next=1;
- if($firstsick=='poverty')
- if($secondsick=='poverty')
+ if($firstsick=='poverty'|| ($RULES['lowtrump']=='poverty' && $firstsick=='lowtrump'))
+ if($secondsick=='poverty'|| ($RULES['lowtrump']=='poverty' && $secondsick=='lowtrump'))
$next=3;
else
$next=2;
@@ -1097,7 +1131,7 @@ switch($mystatus)
echo "
The game has been canceled because one player wasn't responding.
If this was a mistake all 4 players need to send an Email to $ADMIN_NAME at $ADMIN_EMAIL requesting that the game should be restarted.
";
break;
case 'cancel-nines':
- case 'cancel-timedout':
echo "
The game has been canceled because one player had too many nines.
";
break;
+ case 'cancel-lowtrump':
+ echo "
The game has been canceled because one player had low trump.
";
+ break;
case 'cancel-trump':
echo "
The game has been canceled because nobody wanted to take the trump.
";
break;
diff --git a/include/newgame.php b/include/newgame.php
index d7a2d7f..f06bebe 100644
--- a/include/newgame.php
+++ b/include/newgame.php
@@ -40,7 +40,7 @@ else
DB_update_user_timestamp($myid);
- if( !myisset("PlayerA", "PlayerB","PlayerC","PlayerD","dullen","schweinchen","callrule" ))
+ if( !myisset("PlayerA", "PlayerB","PlayerC","PlayerD","dullen","schweinchen","callrule","lowtrump" ))
{
/* only get players that want to be in new games */
$names = DB_get_all_user_names_open_for_games();
@@ -80,6 +80,7 @@ else
$dullen = $_REQUEST["dullen"];
$schweinchen = $_REQUEST["schweinchen"];
$call = $_REQUEST["callrule"];
+ $lowtrump = $_REQUEST["lowtrump"];
/* get the emails addresses of the players */
$EmailA = DB_get_email('name',$PlayerA);
@@ -142,7 +143,7 @@ else
else /* no follow up, start a new session */
{
/* get ruleset information or create new one */
- $ruleset = DB_get_ruleset($dullen,$schweinchen,$call);
+ $ruleset = DB_get_ruleset($dullen,$schweinchen,$call,$lowtrump);
if($ruleset <0)
{
myerror("Error defining ruleset: $ruleset");
diff --git a/include/output.php b/include/output.php
index 018372b..135fe13 100644
--- a/include/output.php
+++ b/include/output.php
@@ -123,10 +123,19 @@ function output_form_for_new_game($names)
+
Low trump
+
+ Player can't trump a fox, that is none of his trump is higher than a fox.
+
+
Scoring-related
(not yet implemented)
@@ -205,10 +214,11 @@ function display_link_card($card,$dir="english",$type="card")
function output_check_for_sickness($me,$mycards)
{
+ global $RULES;
?>
Thanks for joining the game...
- do you want to play solo?
+ Do you want to play solo?
\n";
+ echo "\n"; /* end div message */
break;
}
else if($poverty==1) /* one person has poverty */
@@ -807,7 +807,7 @@ switch($mystatus)
}
}
else
- echo "
\n";
+ echo "Please, start the game. \n";
break;
}
- echo "\n";
+
case 'poverty':
/* user only gets here in a poverty game, several things have to be handled here:
* A) ask, if user wants to take trump
@@ -894,7 +894,7 @@ switch($mystatus)
/* get information so show the cards that have been handed over in a poverty game */
output_exchanged_cards();
- echo " \n \n"; /* end div trick, end li trick */
+ echo " \n \n\n\n"; /* end div trick, end li trick , end ul tricks */
}
/* end output pre-game trick */
--
cgit v1.2.3-18-g5258
From c05246b378470eab9c172d8d96328a821302a273 Mon Sep 17 00:00:00 2001
From: Arun Persaud
Date: Sun, 14 Mar 2010 11:11:38 -0700
Subject: CLEANUP: cleaned up code for Karlchen
---
include/game.php | 41 ++++++++++++++++++++++-------------------
1 file changed, 22 insertions(+), 19 deletions(-)
(limited to 'include')
diff --git a/include/game.php b/include/game.php
index b94ee90..db27bde 100644
--- a/include/game.php
+++ b/include/game.php
@@ -1524,28 +1524,31 @@ switch($mystatus)
/* same as for foxes, karlchen doesn't always make sense
* check what kind of game it is and set karlchen accordingly */
- $ok = 1; /* default: karlchen should be accounted for */
- if($tricknr != 12 )
- $ok = 0; /* Karlchen works only in the last trick */
- if($ok && DB_get_gametype_by_gameid($gameid)=='solo' )
+
+ if($tricknr == 12 ) /* Karlchen works only in the last trick */
{
- $solo = DB_get_solo_by_gameid($gameid);
- if($solo == 'trumpless' || $solo == 'jack' || $solo == 'queen' )
- $ok = 0; /* no Karlchen in these solos */
- }
+ /* check for solo */
+ $solo = 'none';
+ if(DB_get_gametype_by_gameid($gameid)=='solo' )
+ $solo = DB_get_solo_by_gameid($gameid);
- if($ok)
- foreach($play as $played)
- if ( $played['card']==11 || $played['card']==12 )
- if ($played['pos'] == $winner )
- {
- /* possible caught a fox, check party */
- $uid1 = DB_get_userid('gameid-position',$gameid,$winner);
- $party1 = DB_get_party_by_gameid_and_userid($gameid,$uid1);
+ /* no Karlchen in these solos */
+ if($solo != 'trumpless' && $solo != 'jack' && $solo != 'queen' )
+ {
+ foreach($play as $played)
+ if ( $played['card']==11 || $played['card']==12 )
+ if ($played['pos'] == $winner )
+ {
+ /* save Karlchen */
+ $uid1 = DB_get_userid('gameid-position',$gameid,$winner);
+ $party1 = DB_get_party_by_gameid_and_userid($gameid,$uid1);
+
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'karlchen')");
+ };
+ };
+ }; /* end scoring Karlchen */
- DB_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'karlchen')");
- }
/*
* check for doppelopf (>40 points)
***********************************/
--
cgit v1.2.3-18-g5258
From 83fc1a851c69e13808d14f2d5a284c3369409018 Mon Sep 17 00:00:00 2001
From: Arun Persaud
Date: Sun, 14 Mar 2010 14:11:52 -0700
Subject: NEW FEATURE: added localization support
using gettext to add support for localization
---
include/db.php | 7 +++++++
include/output.php | 24 +++++++++++++++++++++++-
include/preferences.php | 24 +++++++++++++++++++++++-
3 files changed, 53 insertions(+), 2 deletions(-)
(limited to 'include')
diff --git a/include/db.php b/include/db.php
index 2a927f5..ad6c6f0 100644
--- a/include/db.php
+++ b/include/db.php
@@ -772,6 +772,7 @@ function DB_get_PREF($myid)
$PREF['vacation_start'] = NULL;
$PREF['vacation_stop'] = NULL;
$PREF['vacation_comment'] = '';
+ $PREF['language'] = 'en';
/* get all preferences */
$r = DB_query('SELECT pref_key, value FROM User_Prefs'.
@@ -825,8 +826,14 @@ function DB_get_PREF($myid)
if($pref[1])
$PREF['vacation_comment'] = $pref[1];
break;
+
+ case 'language':
+ if($pref[1])
+ $PREF['language'] = $pref[1];
+ break;
}
}
+ $_SESSION['language'] = $PREF['language'];
return $PREF;
}
diff --git a/include/output.php b/include/output.php
index 135fe13..79e42c2 100644
--- a/include/output.php
+++ b/include/output.php
@@ -394,7 +394,9 @@ function output_header()
-
Welcome to E-Doko
+ '._('Welcome to E-Doko').' ';
+?>
"en",
+ "Deutsch" => "de" );
+
+ echo " \n";
+
+ return;
+}
+
+
function output_password_recovery($email,$password)
{
?>
diff --git a/include/preferences.php b/include/preferences.php
index 6648b99..3904899 100644
--- a/include/preferences.php
+++ b/include/preferences.php
@@ -43,6 +43,7 @@ $changed_openforgames = 0;
$changed_vacation = 0;
$changed_openid = 0;
$changed_digest = 0;
+$changed_language = 0;
display_user_menu($myid);
@@ -297,6 +298,25 @@ if(myisset("openid_url") && $_REQUEST['openid_url']!='')
DB_AttachOpenID($openid_url, $myid);
}
+if(myisset("language"))
+ {
+ $language = $_REQUEST['language'];
+ if($language != $PREF['language'])
+ {
+ /* check if we already have an entry for the user, if so change it, if not create new one */
+ $result = DB_query("SELECT * from User_Prefs".
+ " WHERE user_id='$myid' AND pref_key='language'" );
+ if( DB_fetch_array($result))
+ $result = DB_query("UPDATE User_Prefs SET value=".DB_quote_smart($language).
+ " WHERE user_id='$myid' AND pref_key='language'" );
+ else
+ $result = DB_query("INSERT INTO User_Prefs VALUES(NULL,'$myid','language',".
+ DB_quote_smart($language).")");
+ $changed_language = 1;
+ }
+ }
+
+
/* get infos again in case they have changed */
$PREF = DB_get_PREF($myid);
$timezone = DB_get_user_timezone($myid);
@@ -461,7 +481,9 @@ echo "