X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=include%2Foutput.php;h=29a6d7d38c556b7113bb3c03923b1ab62dc630f2;hp=6d7deb7e69f3e08c5d87ac04d92a74e121324a1e;hb=1091c169df7d9ea3c68adbdd15a223efc4adb328;hpb=5aa7d5dd2d0b487188fef191c6e5ef38f13e38f7 diff --git a/include/output.php b/include/output.php index 6d7deb7..29a6d7d 100644 --- a/include/output.php +++ b/include/output.php @@ -1,5 +1,24 @@ + * + * This file is part of e-DoKo. + * + * e-DoKo is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * e-DoKo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with e-DoKo. If not, see . + * + */ + +/* make sure that we are not called from outside the scripts, * use a variable defined in config.php to check this */ if(!isset($HOST)) @@ -7,119 +26,167 @@ if(!isset($HOST)) /* functions which only ouput html */ -function output_user_settings() -{ - global $PREF; - - echo "
\n"; - echo "

Settings

\n"; - echo "Change password
"; - - echo "
Card set
\n"; - if( $PREF["cardset"] == "english" ) - echo "Change to German cards
"; - else - echo "Change to English cards
"; - - echo "
Email
\n"; - if( $PREF["email"] == "emailaddict" ) - echo "Change to non-addicted mode (emails for each move)
"; - else - echo "Change to addicted mode (minimal amount of emails)
"; - - echo "
\n"; - - return; -} - function output_ask_for_new_game($playerA,$playerB,$playerC,$playerD,$oldgameid) { global $RULES; echo "
\n
\n"; - echo "Do you want to continue playing?(This will start a new game, with the next person as dealer.)\n"; + $output = sprintf(_('Do you want to continue playing? (This will start a new game, with %s starting the game.)'),$playerA); + echo $output."\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; echo " \n"; - echo " \n"; + echo " \n"; echo "
\n
"; return; } function output_form_for_new_game($names) { -?> -

Players

-

Please select four players (or use the randomly pre-selected names)

-

Remember: you need to be one of the players ;)

-
+ $copy_names = $names; /* local copy, so that we can delete names from it + * after we selected them to make sure that each name + * only shows up once + */ + echo ' '; + echo '

'._('Select players (Remember: you need to be one of the players)').'

'; + echo '
'; + echo ' table'; -
- table -\n"; + /* pick 3 names at random and put the players name on position D*/ + if($i<3) + { + $randkey = array_rand($copy_names); + $rand = $copy_names[$randkey]; + /* delete this name from the list of possible names */ + unset($copy_names[$randkey]); + } + else + { + $rand = $_SESSION["name"]; + } + + echo "
\n"; $i++; - echo " Name: \n \n"; foreach($names as $name) { if($name==$rand) { - echo " \n"; + echo " \n"; } else - echo " \n"; + echo " \n"; } - echo " \n
\n"; + echo " \n
\n"; } -?> -
-

Rules

-

Some areas are grayed out which means that the rule is not implemented yet and therefore cannot be selected

-

Ten of hearts: -

-

-

Schweinchen (both foxes), only in normal games or silent solos: -

-

-

Call Re/Contra, etc.: -

-

- -
-'; + echo ''; + echo '

'._('Rules').'

'; + echo '

'._('Gameplay-related').'

'; + echo '

'._('Ten of hearts').':

'; + echo '

'; + echo ' '; + echo '

'; + echo '

'._('Schweinchen (both foxes), only in normal games or silent solos').':

'; + echo '

'; + echo ' '; + echo '

'; + echo '

'._('Call Re/Contra, etc.').':

'; + echo '

'; + echo ' '; + echo '

'; + echo '

'._('Low trump').'

'; + echo '

'; + echo ' '._('Player can\'t trump a fox, that is none of his trump is higher than a fox.'); + echo ' '; + echo '

'; + echo '

'._('Scoring-related').'

'; + echo '

'._('(not yet implemented)').'

'; + echo '

'; + echo ' '; + +} + +function output_table($data,$caption="",$class="",$id="") +{ + + $HTML = "\n\n"; else echo "\"".DB_get_card_name($card-1)."\"\n"; @@ -135,214 +202,229 @@ function display_card($card,$dir="english") return; } -function display_link_card($card,$dir="english",$type="card") +function display_link_card($card,$dir="english",$type="card", $selected=0) { + if($selected) + $selected = 'checked="checked"'; + if( $card/2 - (int)($card/2) == 0.5) - echo "
\"".DB_get_card_name($card)."\"
\n"; + echo "
\"".DB_get_card_name($card)."\"
\n"; else - echo "
\"".DB_get_card_name($card-1)."\"
\n"; + echo "
\"".DB_get_card_name($card-1)."\"
\n"; return; } function output_check_for_sickness($me,$mycards) { - ?> -
Thanks for joining the game...
- - do you want to play solo? - -
- - '._('Thanks for joining the game').'...
'; + echo ''; + echo ' '._('Do you want to play solo?').''; + echo ' '; + echo '
'; + + echo _('Wedding?'); if(check_wedding($mycards)) { - echo " yes"; - echo " no
\n"; + echo ' '._('yes').""; + echo ' '._('no')."
\n"; } else { - echo " no
\n"; + echo ' '._('no')."
\n"; }; - echo "Do you have poverty?"; + echo _('Do you have poverty?'); if(count_trump($mycards)<4) { - echo " yes"; - echo " no
\n"; + echo ' '._('yes').""; + echo ' '._('no')."
\n"; } else { - echo " no
\n"; + echo ' '._('no')."
\n"; }; - echo "Do you have too many nines?"; + echo _('Do you have too many nines?'); if(count_nines($mycards)>4) { - echo " yes"; - echo " no
\n"; + echo ' '._('yes').""; + echo ' '._('no')."
\n"; } else { - echo " no
\n"; + echo ' '._('no')."
\n"; }; + if($RULES['lowtrump']=='cancel' || $RULES['lowtrump']=='poverty') + { + if($RULES['lowtrump']=='cancel') + echo _('Do you have low trump (cancel game)?'); + else + echo _('Do you have low trump (poverty)?'); + + if(check_low_trump($mycards)) + { + echo ' '._('yes').""; + echo ' '._('no')."
\n"; + } + else + { + echo ' '._('no')."
\n"; + }; + } + else + echo ""; + echo "\n"; - echo "\n"; + echo "\n"; echo "
\n"; return; } -function output_form_calls($me) +function output_form_calls($me,$myparty) { - if( can_call(120,$me) ) - echo " re/contra (120):". - "
"; - if( can_call(90,$me) ) - echo " 90:". - "
"; - if( can_call(60,$me) ) - echo " 60:". - "
"; - if( can_call(30,$me) ) - echo " 30:". - "
"; - if( can_call(0,$me) ) - echo " 0:". - "
". - " no call:". - "
"; -} + $highstart = ' '; + $highend = ''; + $tmp = can_call(120,$me); + if( $tmp ) + { + if($tmp==2) echo $highstart; + if($myparty=='re') + echo ' re (120):'; + else if ($myparty=='contra') + echo ' contra (120):'; + else + echo ' re/contra (120):'; + echo ' '; + if($tmp==2) echo $highend; + echo "\n"; + } + $tmp = can_call(90,$me); + if( $tmp ) + { + if($tmp==2) echo $highstart; + echo ' 90:'. + ' '; + if($tmp==2) echo $highend; + echo "\n"; + } + $tmp = can_call(60,$me); + if( $tmp ) + { + if($tmp==2) echo $highstart; + echo ' 60:'. + ' '; + if($tmp==2) echo $highend; + echo "\n"; + } + $tmp = can_call(30,$me); + if( $tmp ) + { + if($tmp==2) echo $highstart; + echo ' 30:'. + ' '; + if($tmp==2) echo $highend; + echo "\n"; + } + $tmp = can_call(0,$me); + if( $tmp ) + { + if($tmp==2) echo $highstart; + echo ' 0:'. + ' '; + if($tmp==2) echo $highend; + echo "\n". + ' no call:'. + ' '."\n"; + } +} function output_check_want_to_play($me) { - ?> -
- Do you want to play a game of DoKo?
- yes - no
-'; + echo ' '._('Do you want to play a game of DoKo?').'
'; + echo ' '._('yes').''; + echo ' '._('no').'
'; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "
\n"; return; } -function output_home_page($pre,$game,$done,$avgtime) -{ - global $WIKI; - - echo"

If you want to play a game of Doppelkopf, you found the right place ;)". - " For more information please visit our wiki.

"; - - if($pre == 0) - echo "

At the moment there are no games that are being started "; - else if($pre==1) - echo "

At the moment there is one games that is being started "; - else - echo "

At the moment there are $pre games that are being started "; - - echo "and "; - - if($game==0) - echo "zero games that are ongoing. "; - else if($game==1) - echo "one game that is ongoing. "; - else - echo "$game games that are ongoing. "; - - echo "
\n"; - - if($done==0) - echo "No game has been completed on this server.

"; - else if($done==1) - echo "One game has been completed on this server.

"; - else - echo "$done games have been completed on this server. Average time of a game: $avgtime days

"; -?> - -

Please register, in case you have not done that yet
- or login with you email-address or name and password here: -

-
-
- Login - - - - - - - - - - - -
-
-
- - - - + + e-Doko - - - + + + + + + + + -
-

Welcome to E-Doko (beta)

-
+
+ '._('Welcome to E-Doko').' '; +?> +
"; @@ -351,22 +433,22 @@ function output_header() function output_footer() { - global $REV,$PREF; + global $REV, $PREF, $INDEX; echo "\n\n"; - echo "
\n"; - echo "

copyright 2006-2008 Arun Persaud, Lance Thornton
\n". + echo "

\n"; + echo "

copyright 2006,2007,2008,2009,2010 Arun Persaud, et al.
\n". " Verwendung der [deutschen] Kartenbilder mit Genehmigung
der Spielkartenfabrik Altenburg GmbH,(c) ASS Altenburger
\n". " - ASS Altenburger Spielkarten - Spielkartenfabrik Altenburg GmbH
\n". " a Carta Mundi Company Email: info@spielkarten.com Internet: www.spielkarten.com

\n"; - echo "

See the latest changes \n". + echo "

See the latest changes \n". " via git
or download the source via
\n'git clone http://nubati.net/git/e-DoKo.git'
\n". " \n". - " \"Green\n". + " \"Green\n". "

\n"; echo "\n"; - echo "
\n"; + echo "\n"; echo "\n"; echo "\n"; @@ -376,28 +458,103 @@ function output_footer() function output_status() { - global $defaulttimezone; - if(isset($_SESSION["name"])) - { - $name = $_SESSION["name"]; + global $defaulttimezone, $INDEX, $WIKI, $RSS; - /* logout info */ - echo "\n
"; - echo $name; - echo " logout"; - echo "
\n"; + if(isset($_SESSION['name'])) + { + $name = $_SESSION['name']; + + /* last logon time */ + $myid = DB_get_userid('name',$name); + $zone = DB_get_user_timezone($myid); + + $time = DB_get_user_timestamp($myid); + date_default_timezone_set($defaulttimezone); + $unixtime = strtotime($time); + date_default_timezone_set($zone); + + /* rss token */ + $token = get_user_token($myid); + + /* logout info */ + echo "\n
\n"; + echo $name,"\n"; + echo " | "._('mypage')."\n"; + echo " | "._('settings')."\n"; + echo " | "._('new game')."\n"; + echo " | "._('statistics')."\n"; + echo " | "._('wiki/bugs')."\n"; + echo " | "._('atom')."\n"; + echo " |    "._('logout')."\n"; + echo "
\n"; + + echo "
"._('last login').": ".date("r",$unixtime)."
\n"; + } + return; +} - /* last logon time */ - $myid = DB_get_userid("name",$name); - $zone = DB_get_user_timezone($myid); +function output_select_timezone($name,$timezone="") +{ + $Tzone = array ("Pacific/Apia" => "Apia", /*UTC-11*/ + "Pacific/Honolulu" => "Honolulu", /*UTC-10*/ + "America/Anchorage" => "Anchorage", /*UTC-9*/ + "America/Vancouver" => "Berkeley", /*UTC-8*/ + "America/Phoenix" => "Phoenix", /*UTC-7*/ + "America/Chicago" => "Chicago", /*UTC-6*/ + "America/New_York" => "New York", /*UTC-5*/ + "America/Santiago" => "Santiago", /*UTC-4*/ + "America/Buenos_Aires" => "Buenos Aires", /*UTC-3*/ + "Atlantic/South_Georgia" => "Fernando de Noronha", /*UTC-2*/ + "Atlantic/Azores" => "Azores", /*UTC-1"*/ + "Europe/London" => "London", /*UTC*/ + "Europe/Berlin" => "Berlin", /*UTC+1*/ + "Africa/Cairo" => "Cairo", /*UTC+2*/ + "Europe/Moscow" => "Moscow", /*UTC+3*/ + "Asia/Tehran" => "Tehran", /*UTC+3:30*/ + "Asia/Dubai" => "Dubai", /*UTC+4*/ + "Asia/Karachi" => "Karachi", /*UTC+5*/ + "Asia/Calcutta" => "Delhi", /*UTC+5:30*/ + "Asia/Kathmandu" => "Kathmandu", /*UTC+5:45*/ + "Asia/Dhaka" => "Dhaka", /*UTC+6*/ + "Asia/Rangoon" => "Yangon", /*UTC+6:30*/ + "Asia/Bangkok" => "Bangkok", /*UTC+7*/ + "Asia/Hong_Kong" => "Beijing", /*UTC+8*/ + "Asia/Tokyo" => "Tokyo", /*UTC+9*/ + "Australia/Darwin" => "Darwin", /*UTC+9:30*/ + "Australia/Sydney" => "Sydney", /*UTC+10*/ + "Asia/Magadan" => "Magadan", /*UTC+11*/ + "Pacific/Auckland" => "Wellington" ); /*UTC+12*/ + + echo " \n"; - $time = DB_get_user_timestamp($myid); - date_default_timezone_set($defaulttimezone); - $unixtime = strtotime($time); - date_default_timezone_set($zone); + return; +} + +function output_select_language($name,$language="") +{ + $LOCALE = array ("English" => "en", + "Deutsch" => "de" ); + + echo " \n"; - echo "
last login: ".date("r",$unixtime)."
\n"; - }; return; } @@ -415,13 +572,13 @@ function output_password_recovery($email,$password) Password recovery - + - + - + @@ -433,4 +590,183 @@ function output_password_recovery($email,$password) \ No newline at end of file + +function output_user_notes($userid,$gameid,$userstatus) +{ + echo "
"._('Personal notes').":
\n"; + $notes = DB_get_notes_by_userid_and_gameid($userid,$gameid); + foreach($notes as $note) + echo "$note
\n"; + if($userstatus!='gameover') + echo "\n"; + echo "
\n"; + + return; +} + +function output_robotproof($i) +{ + switch($i) + { + case 0: + return "6*7="; + case 1: + return "5*7="; + case 2: + return "4*7="; + case 3: + return "3*7="; + case 4: + return "2*7="; + } +} + +function output_exchanged_cards() +{ + /* in a poverty game this function will output the exchanged cards + * players in the team will see the cards, the other team will see + * the backside of cards + */ + + /* need some information about the game */ + global $gameid,$mygametype, $PREF,$me,$mystatus, $RULES; + + /* some variables to track where the people with poverty are sitting */ + $partnerpos1 = 0; + $povertypos1 = 0; + $partnerpos2 = 0; + $povertypos2 = 0; + + /* only need to do it in a poverty game, this might not be needed, but + * just to make sure everything is ok + */ + if($mygametype == 'poverty' || $mygametype=='dpoverty') + { + /* find out who has poverty */ + for($mypos=1;$mypos<5;$mypos++) + { + $usersick = DB_get_sickness_by_pos_and_gameid($mypos,$gameid); + if($usersick == 'poverty' || ($RULES['lowtrump']=='poverty' && $usersick=='lowtrump')) + if($povertypos1) + $povertypos2 = $mypos; + else + $povertypos1 = $mypos; + } + /* get hash and exchanged cards for all involved */ + $povertyhash1 = DB_get_hash_from_game_and_pos($gameid,$povertypos1); + $partnerhash1 = DB_get_partner_hash_by_hash($povertyhash1); + + $povertycards1 = DB_get_exchanged_cards($povertyhash1); + $partnercards1 = DB_get_exchanged_cards($partnerhash1); + + $partnerpos1 = DB_get_pos_by_hash($partnerhash1); + if($povertypos2) + { + $povertyhash2 = DB_get_hash_from_game_and_pos($gameid,$povertypos2); + $partnerhash2 = DB_get_partner_hash_by_hash($povertyhash2); + + $povertycards2 = DB_get_exchanged_cards($povertyhash2); + $partnercards2 = DB_get_exchanged_cards($partnerhash2); + + $partnerpos2 = DB_get_pos_by_hash($partnerhash2); + } + } + + /* output the cards + * go through all positions, check that position has cards that need to be shown and + * show those cards + */ + $show=1; + for($mypos=1;$mypos<5;$mypos++) + { + $usersick = DB_get_sickness_by_pos_and_gameid($mypos,$gameid); + if($usersick!=NULL || + $mypos==$povertypos1 || $mypos==$partnerpos1 || + $mypos==$povertypos2 || $mypos==$partnerpos2 ) + { + /* figure out if we gave trump back */ + $trump_back1=0; + if($povertypos2) + foreach($povertycards1 as $card) + { + if(is_trump($card)) + { + $trump_back1=1; + break; + } + } + $trump_back2=0; + if($povertypos2) + foreach($povertycards2 as $card) + { + if(is_trump($card)) + { + $trump_back2=1; + break; + } + } + + /* output vorbehalt */ + echo "
Vorbehalt
\n"; + if($show) + echo " $usersick
\n"; + + /* output cards */ + if($mypos==$partnerpos1) + { + foreach($partnercards1 as $card) + { + echo ' '; + if($povertyhash1 == $me || $partnerhash1 == $me || $mystatus=='gameover') + display_card($card,$PREF['cardset']); + else + display_card(0,$PREF['cardset']); + } + if($trump_back1) echo ' '._('Trump back'); + } + else if($mypos==$povertypos1) + { + foreach($povertycards1 as $card) + { + echo ' '; + if($povertyhash1 == $me || $partnerhash1 == $me || $mystatus=='gameover') + display_card($card,$PREF['cardset']); + else + display_card(0,$PREF['cardset']); + } + if($trump_back1) echo ' '._('Trump back'); + } + else if($mypos==$povertypos2) + { + foreach($povertycards2 as $card) + { + echo ' '; + if($povertyhash2 == $me || $partnerhash2 == $me || $mystatus=='gameover') + display_card($card,$PREF['cardset']); + else + display_card(0,$PREF['cardset']); + } + if($trump_back2) echo ' '._('Trump back'); + } + else if($mypos==$partnerpos2) + { + foreach($partnercards2 as $card) + { + if(is_trump($card)) $trump_back=1; + echo ' '; + if($povertyhash2 == $me || $partnerhash2 == $me || $mystatus=='gameover') + display_card($card,$PREF['cardset']); + else + display_card(0,$PREF['cardset']); + } + if($trump_back2) echo ' '._('Trump back'); + } + echo "
\n"; + } + if($mygametype == $usersick) + $show = 0; + } +} + + +?>