TRANSLATION: updated some strings
[e-DoKo.git] / index.php
index 90b91cead33914e4accd08b868de26dd3fc64a8d..f71643accab1699a62573e4b77ff67298729fc44 100644 (file)
--- a/index.php
+++ b/index.php
-<!DOCTYPE html PUBLIC
-    "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
-    "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-  <head>
-     <title>Doko via email</title>
-     <link rel="stylesheet" type="text/css" href="standard.css"/>      
-  </head>
-<body>
-<h1> Welcome to E-Doko </h1>
-
 <?php
-/* check for status file and read it, if possible */
-
-if(file_exists("status.txt"))
-   $lines = file("status.txt");
+/* Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 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/>.
+ *
+ */
+
+error_reporting(E_ALL);
+
+/* start a session, if it is not already running.
+ * This way people don't have to log in all the times.
+ * The session variables can also be read out from different
+ * php scripts, so that the code can be easily split up across several files
+ */
+session_start();
+
+include_once("config.php");                /* needs to be first in list, since other includes use this */
+include_once("./include/output.php");      /* html output only */
+include_once("./include/db.php");          /* database only */
+include_once("./include/functions.php");   /* the rest */
+
+/* make sure that user has set all variables in config.php */
+config_check();
+
+/* open the database */
+$DBopen = DB_open();
+if($DBopen<0)
+  {
+    output_header();
+
+    if($DBopen == -1)
+      echo "Database error, can't connect... Please wait a while and try again. ".
+       "If the problem doesn't go away feel free to contact $ADMIN_NAME at $ADMIN_EMAIL.";
+    else if ($DBopen == -2)
+      echo 'Wrong database version, please update your database using the update.php script.';
+
+    output_footer();
+    exit();
+  }
+
+/**** localization ****/
+/* needs to be in front of output_header, but we don't know the users preferences at this time,
+ * so we go by the session variable or if language is set
+ */
+/* set default */
+$language =  detectlanguage();
+
+/* check if default in array of supported languages, else default to english */
+$supported_languages = array ('en','de');
+
+if ( !in_array($language, $supported_languages) )
+   $language = 'en';
+
+/* override with explicit request from user */
+if(myisset('language'))
+  $language = $_REQUEST['language'];
+else if(isset($_SESSION['language']))
+  $language = $_SESSION['language'];
+
+/* set it */
+set_language($language);
+/**** end language ****/
+
+/* done major error checking, output header of HTML page */
+output_header();
+
+/* The rest of the file consists of handling user input.
+ * The user sends information via html GET and POST variables,
+ * and the action variable tells the prog what the user wants to do
+ */
+if(myisset("action"))
+  $action=$_REQUEST['action'];
 else
-   die("no file");
-
-/* check if we want to start a new game */
-if( isset($_REQUEST["PlayerA"]) && 
-    isset($_REQUEST["PlayerB"]) && 
-    isset($_REQUEST["PlayerC"]) && 
-    isset($_REQUEST["PlayerD"]) && 
-    isset($_REQUEST["EmailA"]) && 
-    isset($_REQUEST["EmailB"]) && 
-    isset($_REQUEST["EmailC"]) && 
-    isset($_REQUEST["EmailD"]) )
-{
-   $PlayerA = $_REQUEST["PlayerA"];
-   $PlayerB = $_REQUEST["PlayerB"];
-   $PlayerC = $_REQUEST["PlayerC"];
-   $PlayerD = $_REQUEST["PlayerD"];
-   $EmailA  = $_REQUEST["EmailA"] ;
-   $EmailB  = $_REQUEST["EmailB"] ;
-   $EmailC  = $_REQUEST["EmailC"] ;
-   $EmailD  = $_REQUEST["EmailD"] ;
-
-   /* send out email, check for error with email */
-    echo "send out emails to everyone, asking if they want to join";
-    echo "use link <br>";
-    echo "<a href=\"index.php?a=hash1\"> player 1</a> <br />";
-    echo "<a href=\"index.php?a=hash2\"> player 2</a> <br />";
-    echo "<a href=\"index.php?a=hash3\"> player 3</a> <br />";
-    echo "<a href=\"index.php?a=hash4\"> player 4</a> <br />";
-   /* read in random.txt */
-   if(file_exists("random.txt"))
-     $random = file("random.txt");
-   else
-     die("no random file");
-   $randomNR = explode( ":", $random[1] );
-
-   /* write status into file */
-   $output = fopen("status.txt","w");
-   if ($output)
-   {
-     fwrite($output, "0\n");
-
-     fwrite($output, "hash1:".$PlayerA.":".$EmailA."::" );
-     for($i=0;$i<12;$i++)
-       fwrite($output,";$randomNR[$i]" );
-     fwrite($output,"\n");
-
-     fwrite($output, "hash2:$PlayerB:$EmailB::" );
-     for(;$i<24;$i++)
-       fwrite($output,";$randomNR[$i]" );
-     fwrite($output,"\n");
-
-     fwrite($output, "hash3:$PlayerC:$EmailC::" );
-     for(;$i<36;$i++)
-       fwrite($output,";$randomNR[$i]" );
-     fwrite($output,"\n");
-
-     fwrite($output, "hash4:$PlayerD:$EmailD::");
-     for(;$i<48;$i++)
-       fwrite($output,";$randomNR[$i]" );
-     fwrite($output,"\n");
-
-     fclose($output);
-   }
-   else
-    echo "can't open file for writing";
-};
-
-/* test if a game is running, else output everything for a new game */
-if(sizeof($lines)<2)
-{
+  $action=""; /* so that we can use a default option below */
+
+switch($action)
+  {
+  case 'new':
+    require './include/newgame.php';
+    break;
+  case 'cancel':
+    require './include/cancelgame.php';
+    break;
+  case 'reminder':
+    require './include/reminder.php';
+    break;
+  case 'logout':
+    require './include/logout.php';
+    require './include/welcome.php';
+    break;
+  case 'login':
+    require './include/login.php';
+    require './include/user.php';
+    break;
+  case 'register':
+    require './include/register.php';
+    break;
+  case 'prefs':
+    require './include/preferences.php';
+    break;
+  case 'game':
+    require './include/game.php';
+    break;
+  case 'about':
+    require './include/about.php';
+    break;
+  case 'stats':
+    if(isset($_SESSION["name"]))
+      require './include/stats.php';
+    else
+      require './include/welcome.php';
+    break;
+  default:
+    if(isset($_SESSION["name"]))
+      require './include/user.php';
+    else
+      require './include/welcome.php';
+  }
+
+/* ask for login or display login info, needs to go at the end, so that we have the
+ * session-variable already set.
+ */
+output_navbar();
+
+output_footer();
+
+DB_close();
+
+/*
+ *Local Variables:
+ *mode: php
+ *mode: hs-minor
+ *End:
+ */
 ?>
- <p> no game in progress, please input 4 names and email addresses </p>
- <form action="index.php" method="post">
-   Name:  <input name="PlayerA" type="text" size="10" maxlength="20" /> 
-   Email: <input name="EmailA"  type="text" size="10" maxlength="20" /> <br />
-
-   Name:  <input name="PlayerB" type="text" size="10" maxlength="20" /> 
-   Email: <input name="EmailB"  type="text" size="10" maxlength="20" /> <br />
-
-   Name:  <input name="PlayerC" type="text" size="10" maxlength="20" /> 
-   Email: <input name="EmailC"  type="text" size="10" maxlength="20" /> <br />
-
-   Name:  <input name="PlayerD" type="text" size="10" maxlength="20" /> 
-   Email: <input name="EmailD"  type="text" size="10" maxlength="20" /> <br />
-
-   <input type="submit" value="start game" />
- </form>
-<?php
-}
-else
-{ /* load game status */
-   $tmp = explode( ":",$lines[1]);
-   $player[$tmp[0]]["name"]   = $tmp[1];
-   $player[$tmp[0]]["email"]  = $tmp[2];
-   $player[$tmp[0]]["option"] = $tmp[3];
-   $player[$tmp[0]]["cards"]  = $tmp[4];
-
-   $tmp = explode( ":",$lines[2]);
-   $player[$tmp[0]]["name"]   = $tmp[1];
-   $player[$tmp[0]]["email"]  = $tmp[2];
-   $player[$tmp[0]]["option"] = $tmp[3]; 
-   $player[$tmp[0]]["cards"]  = $tmp[4];
-
-   $tmp = explode( ":",$lines[3]);
-   $player[$tmp[0]]["name"]   = $tmp[1];
-   $player[$tmp[0]]["email"]  = $tmp[2];
-   $player[$tmp[0]]["option"] = $tmp[3];
-   $player[$tmp[0]]["cards"]  = $tmp[4];
-
-   $tmp = explode( ":",$lines[4]);
-   $player[$tmp[0]]["name"]   = $tmp[1];
-   $player[$tmp[0]]["email"]  = $tmp[2];
-   $player[$tmp[0]]["option"] = $tmp[3];
-   $player[$tmp[0]]["cards"]  = $tmp[4];
-}
-
-/* check if a player wants to accept a game */
-if(isset($_REQUEST["a"]))
-{
-   $a=$_REQUEST["a"];
-?>
- <form action="index.php" method="post">
-  Do you want to play a game of DoKo?
-   yes<input type="radio" name="in" value="yes" />
-   no<input type="radio" name="in" value="no" /> <br />
-
-  Do you want to get an email for every card played or only if it your move?
-   every card<input type="radio" name="update" value="card" />
-   only on my turn<input type="radio" name="update" value="turn" /> <br />
-<?php   
-   echo "<input type=\"hidden\" name=\"b\" value=\"$a\" />\n";
-   echo "\n";
-   echo "<input type=\"submit\" value=\"count me in\" />\n";
-   echo " </form>\n";
-}
-   /* yes? email him his hand, ask for solo, poverty, email every move or every card? */
-if(isset($_REQUEST["b"]))
-{
-   $b=$_REQUEST["b"];
-   echo "hash is $b  <br>";
-   if(!isset($_REQUEST["in"])|| !isset($_REQUEST["update"]) )
-   {
-     echo "go back to ";
-     echo "<a href=\"index.php?a=$b\"> here and fill out the form </a> <br />";
-   }
-   else
-   { /* show the hand */
-        echo $player[$b]["cards"];
-        $tmp   = $player[$b]["cards"];
-        $cards = explode( ":",$tmp);
-        echo "your cards are";
-        foreach($cards as $card) echo " $card ";
-        echo "<br />\n";   
- ?>
- <form action="index.php" method="post">
-   
-   do you want to play solo?
-   yes<input type="radio" name="solo" value="yes" />
-   no<input type="radio" name="solo" value="no" /> <br />
-
-   do you have a wedding?
-   yes<input type="radio" name="wedding" value="yes" />
-   no<input type="radio" name="wedding" value="no" /> <br />
-
-   do you have poverty?
-   yes<input type="radio" name="poverty" value="yes" />
-   no<input type="radio" name="poverty" value="no" /> <br />
-   
-   
-   <input type="hidden" name="c" value="$b" />
-     
-   <input type="submit" value="count me in" />
-
- </form>
-
-<?php
-   }
-}      /* is this the last player that needs to accept? */
-         /* yes, figure out who starts, send out email to first player */
-   /* no, email the rest to cancel game */
-
-/* player wants to make a move? */
-  /* check if it is this players turn it is (if it's the players turn, convert cards into links) */
-  /* if it is the last card played*/
-     /* add checkbox for who one the trick */
-     /* email next player */
-     /* last card played? */
-        /* count score for each player */
-?>
-
-</body>
-</html>