*
* 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))
exit;
/* functions which only ouput html */
function autoversion($file)
{
/* changes the file name of e.g. css/style.css to css/style..css/js
* this way the browser can cache the file and will reload it if the file changed
* needs to have .htaccess set up correctly to link back to css/style.css */
/* only use it for file that have an absolut path */
if(!file_exists(dirname($_SERVER['SCRIPT_FILENAME']). '/' . $file))
return $file;
$md5 = md5_file(dirname($_SERVER['SCRIPT_FILENAME']). '/' . $file);
return preg_replace('{\\.([^./]+)$}', ".$md5.\$1", $file);
}
function output_ask_for_new_game($playerA,$playerB,$playerC,$playerD,$oldgameid)
{
global $RULES;
echo "
\n\n
";
return;
}
function output_form_for_new_game($names)
{
$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
*/
/* delete players name, since he will be on position D anyway */
unset($copy_names[array_search($_SESSION["name"],$copy_names)]);
srand((float) microtime() * 10000000);
echo ' ';
}
function output_table($data,$caption="",$class="",$id="")
{
$HTML = "\n
\n";
$i=0;
if($caption!="")
$HTML .= "
$caption
\n";
foreach($data as $record)
{
if(!$i)
$HTML .= " \n
\n";
else
{
if($i==1) $HTML .= "
\n";
$HTML .= "
";
}
foreach($record as $point)
{
if($i)
$HTML .= "
\n\n";
}
return;
}
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";
return;
}
function output_select_language($name,$language="")
{
$LOCALE = array ("English" => "en",
"Deutsch" => "de" );
echo " \n";
return;
}
function output_password_recovery($email,$password)
{
?>
"._('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\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++)
{
/* output comments */
if($mypos==2)
{
/* display all comments on the top right (card1)*/
$comments = DB_get_pre_comment($gameid);
/* display card */
echo "