Merge branch 'master' of /home/arun/nubati.net/git/e-DoKo
[e-DoKo.git] / include / output.php
index 9e87de34658ec5a7fea1012a7c8086c41eda9703..79e42c276f130c879ee10f06deb9af6392b40b09 100644 (file)
@@ -1,4 +1,23 @@
 <?php
+/* Copyright 2006, 2007, 2008, 2009, 2010 Arun Persaud <arun@nubati.net>
+ *
+ *   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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
 /* make sure that we are not called from outside the scripts,
  * use a variable defined in config.php to check this
  */
@@ -12,7 +31,7 @@ function output_ask_for_new_game($playerA,$playerB,$playerC,$playerD,$oldgameid)
   global $RULES;
 
   echo "<div class=\"message\">\n<form action=\"index.php?action=new\" method=\"post\">\n";
-  echo "Do you want to continue playing?(This will start a new game, with $playerD as dealer.)\n";
+  echo "Do you want to continue playing?(This will start a new game, with $playerA starting the game.)\n";
   echo "  <input type=\"hidden\" name=\"PlayerA\" value=\"$playerA\" />\n";
   echo "  <input type=\"hidden\" name=\"PlayerB\" value=\"$playerB\" />\n";
   echo "  <input type=\"hidden\" name=\"PlayerC\" value=\"$playerC\" />\n";
@@ -104,10 +123,19 @@ function output_form_for_new_game($names)
      <p>
        <select name="callrule">
         <option value="1st-own-card" selected="selected">  Can call re/contra on the first <strong>own</strong> card played, 90 on the second, etc.</option>
-        <option value="5th-card">  Can call re/contra until 5th card is played, 90 until 9th card is played, etc.</option>
+        <option value="5th-card"> Can call re/contra until 5th card is played, 90 until 9th card is played, etc.</option>
         <option value="9-cards" > Can call re/contra until 5th card is played, 90 if player still has 9 cards, etc.</option>
        </select>
      </p>
+     <h4>Low trump</h4>
+     <p>
+       Player can't trump a fox, that is none of his trump is higher than a fox.
+       <select name="lowtrump">
+        <option value="poverty">The trump will be treated as poverty and offered to another player.</option>
+        <option value="cancel">  The game will be canceled unless there is a solo.</option>
+        <option value="none">   Bad luck, the player needs to play a normal game.</option>
+       </select>
+     </p>
      <h3>Scoring-related</h3>
      <h4>(not yet implemented)</h4>
      <p><input type="submit" value="start game"></p>
@@ -186,10 +214,11 @@ function display_link_card($card,$dir="english",$type="card")
 
 function output_check_for_sickness($me,$mycards)
 {
+  global $RULES;
  ?>
   <div class="sickness"> Thanks for joining the game...<br />
 
-    do you want to play solo?
+    Do you want to play solo?
     <select name="solo" size="1">
       <option selected="selected">No</option>
       <option>trumpless</option>
@@ -226,7 +255,7 @@ function output_check_for_sickness($me,$mycards)
       echo " no <input type=\"hidden\" name=\"poverty\" value=\"no\" /> <br />\n";
     };
 
-   echo "Do you have too many nines?";
+  echo "Do you have too many nines?";
   if(count_nines($mycards)>4)
      {
        echo " yes<input type=\"radio\" name=\"nines\" value=\"yes\" checked=\"checked\" />";
@@ -237,6 +266,26 @@ function output_check_for_sickness($me,$mycards)
        echo " no <input type=\"hidden\" name=\"nines\" value=\"no\" /> <br />\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<input type=\"radio\" name=\"lowtrump\" value=\"yes\" checked=\"checked\" />";
+         echo " no <input type=\"radio\" name=\"lowtrump\" value=\"no\" /> <br />\n";
+       }
+      else
+       {
+         echo " no <input type=\"hidden\" name=\"lowtrump\" value=\"no\" /> <br />\n";
+       };
+    }
+  else
+    echo "<input type=\"hidden\" name=\"lowtrump\" value=\"no\" />";
+
    echo "<input type=\"hidden\" name=\"me\" value=\"$me\" />\n";
    echo "<input type=\"submit\" value=\"count me in\" />\n";
 
@@ -247,30 +296,61 @@ function output_check_for_sickness($me,$mycards)
 
 function output_form_calls($me,$myparty)
 {
-  if( can_call(120,$me) )
+  $highstart = "<span class=\"highcall\">";
+  $highend   = "</span>";
+
+  $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 " <input type=\"radio\" name=\"call\" value=\"120\" />";
+      if($tmp==2) echo $highend;
+      echo "<br />\n";
+    }
+  $tmp =  can_call(90,$me);
+  if( $tmp )
+    {
+      if($tmp==2) echo $highstart;
+      echo " 90:".
+       " <input type=\"radio\" name=\"call\" value=\"90\" />";
+      if($tmp==2) echo $highend;
+      echo "<br />\n";
+    }
+  $tmp = can_call(60,$me);
+  if( $tmp )
+    {
+      if($tmp==2) echo $highstart;
+      echo " 60:".
+       " <input type=\"radio\" name=\"call\" value=\"60\" />";
+      if($tmp==2) echo $highend;
+      echo "<br />\n";
+    }
+  $tmp = can_call(30,$me);
+  if( $tmp )
+    {
+      if($tmp==2) echo $highstart;
+      echo " 30:".
+       " <input type=\"radio\" name=\"call\" value=\"30\" />";
+      if($tmp==2) echo $highend;
+      echo "<br />\n";
+    }
+  $tmp = can_call(0,$me);
+  if( $tmp )
     {
-    if($myparty=='re')
-      echo "re (120):";
-    else if ($myparty=='contra')
-      echo "contra (120):";
-    else
-      echo " re/contra (120):";
-    echo " <input type=\"radio\" name=\"call\" value=\"120\" /> <br />";
+      if($tmp==2) echo $highstart;
+      echo " 0:".
+       " <input type=\"radio\" name=\"call\" value=\"0\" />";
+      if($tmp==2) echo $highend;
+      echo "<br />\n".
+       " no call:".
+       " <input type=\"radio\" name=\"call\" value=\"no\" /> <br />";
     }
-  if( can_call(90,$me) )
-    echo " 90:".
-      " <input type=\"radio\" name=\"call\" value=\"90\" /> <br />";
-  if( can_call(60,$me) )
-    echo " 60:".
-      " <input type=\"radio\" name=\"call\" value=\"60\" /> <br />";
-  if( can_call(30,$me) )
-    echo " 30:".
-      " <input type=\"radio\" name=\"call\" value=\"30\" /> <br />";
-  if( can_call(0,$me) )
-    echo " 0:".
-      " <input type=\"radio\" name=\"call\" value=\"0\" /> <br />".
-      " no call:".
-      " <input type=\"radio\" name=\"call\" value=\"no\" /> <br />";
 }
 
 function output_check_want_to_play($me)
@@ -301,7 +381,7 @@ function output_header()
      <title>e-Doko</title>
      <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" />
      <link rel="shortcut icon" type="image/x-icon" href="pics/edoko-favicon.png" />
-     <link rel="stylesheet" type="text/css" href="css/standard022.css" />
+     <link rel="stylesheet" type="text/css" href="css/standard023.css" />
      <script type="text/javascript" src="include/game.js"> </script>
      <script type="text/javascript" src="include/jquery.js"> </script>
      <script type="text/javascript" src="include/jquery.tablesorter.js"></script>
@@ -314,7 +394,9 @@ function output_header()
   </head>
 <body onload="high_last();">
 <div class="header">
-<h1> Welcome to E-Doko </h1>
+<?php
+  echo '<h1> '._('Welcome to E-Doko').' </h1>';
+?>
 </div>
 <?php
 
@@ -328,7 +410,7 @@ function output_footer()
 
   echo "</div>\n\n";
   echo "<div class=\"footer\">\n";
-  echo "  <p class=\"left\"> copyright 2006-2009 Arun Persaud, Lance Thornton(graphics), Jeff Zerger(database support) <br />\n".
+  echo "  <p class=\"left\"> copyright 2006,2007,2008,2009,2010 Arun Persaud, Lance Thornton(graphics),  Jeff Zerger(database support) <br />\n".
     "  Verwendung der [deutschen] Kartenbilder mit Genehmigung <br />der Spielkartenfabrik Altenburg GmbH,(c) ASS Altenburger <br />\n".
     "  - ASS Altenburger Spielkarten - Spielkartenfabrik Altenburg GmbH <br />\n".
     "  a Carta Mundi Company Email: info@spielkarten.com Internet: www.spielkarten.com</p>\n";
@@ -349,39 +431,44 @@ function output_footer()
 
 function output_status()
 {
-  global $defaulttimezone,$INDEX,$WIKI;
-   if(isset($_SESSION["name"]))
-     {
-       $name = $_SESSION["name"];
-
-       /* logout info */
-       echo "\n<div class=\"status\">\n";
-       echo $name,"\n";
-       echo " | <a href=\"".$INDEX."\"> mypage </a>\n";
-       echo " | <a href=\"".$INDEX."?action=prefs\">settings</a>\n";
-       echo " | <a href=\"".$INDEX."?action=new\">new game</a>\n";
-       echo " | <a href=\"".$INDEX."?action=stats\">statistics</a>\n";
-       echo " | <a href=\"".$WIKI."\">wiki</a>\n";
-       echo " |&nbsp;&nbsp;&nbsp; <a href=\"".$INDEX."?action=logout\">logout</a>\n";
-       echo "</div>\n";
-
-       /* 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);
-
-       echo "<div class=\"lastlogin\"><span>last login: ".date("r",$unixtime)."</span></div>\n";
-     }
-   else
-     {
-       echo "\n<div class=\"status\">\n";
-       echo "<a href=\"".$INDEX."\">login</a>\n";
-       echo "</div>\n";
-     }
+  global $defaulttimezone, $INDEX, $WIKI, $RSS;
+
+  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<div class=\"status\">\n";
+      echo $name,"\n";
+      echo " | <a href=\"".$INDEX."\"> mypage </a>\n";
+      echo " | <a href=\"".$INDEX."?action=prefs\">settings</a>\n";
+      echo " | <a href=\"".$INDEX."?action=new\">new game</a>\n";
+      echo " | <a href=\"".$INDEX."?action=stats\">statistics</a>\n";
+      echo " | <a href=\"".$WIKI."\">wiki</a>\n";
+      echo " | <a href=\"".$RSS."?uid=".$myid."&amp;token=".$token."\">rss</a>\n";
+      echo " |&nbsp;&nbsp;&nbsp; <a href=\"".$INDEX."?action=logout\">logout</a>\n";
+      echo "</div>\n";
+
+      echo "<div class=\"lastlogin\"><span>last login: ".date("r",$unixtime)."</span></div>\n";
+    }
+  else
+    {
+      echo "\n<div class=\"status\">\n";
+      echo "<a href=\"".$INDEX."\">login</a>\n";
+      echo "</div>\n";
+    }
   return;
 }
 
@@ -431,6 +518,26 @@ function output_select_timezone($name,$timezone="")
   return;
 }
 
+function output_select_language($name,$language="")
+{
+  $LOCALE = array ("English"     => "en",
+                  "Deutsch"     => "de" );
+
+  echo "  <select id=\"$name\" name=\"$name\" size=\"1\">\n";
+
+  foreach($LOCALE as $place=>$locale)
+    {
+      if($language==$locale)
+       echo "   <option value=\"$locale\" selected=\"selected\">$place</option>\n";
+      else
+       echo "   <option value=\"$locale\">$place</option>\n";
+    }
+  echo "  </select>\n";
+
+  return;
+}
+
+
 function output_password_recovery($email,$password)
 {
 ?>
@@ -501,7 +608,7 @@ function output_exchanged_cards()
    */
 
   /* need some information about the game */
-  global $gameid,$mygametype, $PREF,$me,$mystatus;
+  global $gameid,$mygametype, $PREF,$me,$mystatus, $RULES;
 
   /* some variables to track where the people with poverty are sitting */
   $partnerpos1 = 0;
@@ -518,7 +625,7 @@ function output_exchanged_cards()
       for($mypos=1;$mypos<5;$mypos++)
        {
          $usersick = DB_get_sickness_by_pos_and_gameid($mypos,$gameid);
-         if($usersick == 'poverty')
+         if($usersick == 'poverty' || ($RULES['lowtrump']=='poverty' && $usersick=='lowtrump'))
            if($povertypos1)
              $povertypos2 = $mypos;
            else