forked from science-ation/science-ation
d73ea11215
Update $config array to store the icon extension to use, based on whether MSIE or not. (IE cant do transparent PNG's, all other browsers can, so for IE, use GIF, else use PNG)
331 lines
7.1 KiB
PHP
331 lines
7.1 KiB
PHP
<?
|
|
require("config.inc.php");
|
|
mysql_connect($DBHOST,$DBUSER,$DBPASS);
|
|
mysql_select_db($DBNAME);
|
|
|
|
session_start();
|
|
|
|
//find out the fair year and any other 'year=0' configuration parameters (things that dont change as the years go on)
|
|
$q=mysql_query("SELECT * FROM config WHERE year='0'");
|
|
while($r=mysql_fetch_object($q))
|
|
{
|
|
$config[$r->var]=$r->val;
|
|
}
|
|
|
|
//now pull the rest of the configuration
|
|
$q=mysql_query("SELECT * FROM config WHERE year='".$config['FAIRYEAR']."'");
|
|
while($r=mysql_fetch_object($q))
|
|
{
|
|
$config[$r->var]=$r->val;
|
|
}
|
|
|
|
//detect the browser first, so we know what icons to use - we store this in the config array as well
|
|
//even though its not configurable by the fair
|
|
if(stristr($_SERVER['HTTP_USER_AGENT'],"MSIE"))
|
|
$config['icon_extension']="gif";
|
|
else
|
|
$config['icon_extension']="png";
|
|
|
|
|
|
|
|
//now get the languages, and make sure we have at least one active language
|
|
$q=mysql_query("SELECT * FROM languages WHERE active='Y' ORDER BY langname");
|
|
if(mysql_num_rows($q)==0)
|
|
{
|
|
echo "No active languages defined, defaulting to English";
|
|
$config['languages']['en']="English";
|
|
}
|
|
else
|
|
{
|
|
while($r=mysql_fetch_object($q))
|
|
{
|
|
$config['languages'][$r->lang]=$r->langname;
|
|
}
|
|
}
|
|
//now if no language has been set yet, lets set it to the default language
|
|
if(!$_SESSION['lang'])
|
|
{
|
|
//first try the default language, if that doesnt work, use "en"
|
|
if($config['default_language'])
|
|
$_SESSION['lang']=$config['default_language'];
|
|
else
|
|
$_SESSION['lang']="en";
|
|
}
|
|
|
|
|
|
//if the user has switched languages, go ahead and switch the session variable
|
|
if($_GET['switchlanguage'])
|
|
{
|
|
//first, make sure its a valid language:
|
|
if($config['languages'][$_GET['switchlanguage']])
|
|
{
|
|
$_SESSION['lang']=$_GET['switchlanguage'];
|
|
|
|
}
|
|
else
|
|
{
|
|
//invalid language, dont do anything
|
|
}
|
|
}
|
|
|
|
|
|
function i18n($str,$args=array())
|
|
{
|
|
if(!$str)
|
|
return "";
|
|
|
|
if($_SESSION['lang'])
|
|
{
|
|
if($_SESSION['lang']=="en")
|
|
{
|
|
for($x=1;$x<=count($args);$x++)
|
|
{
|
|
$str=str_replace("%$x",$args[$x-1],$str);
|
|
}
|
|
return $str;
|
|
}
|
|
else
|
|
{
|
|
$q=mysql_query("SELECT * FROM translations WHERE lang='".$_SESSION['lang']."' AND strmd5='".md5($str)."'");
|
|
if($r=@mysql_fetch_object($q))
|
|
{
|
|
if($r->val)
|
|
{
|
|
$ret=$r->val;
|
|
|
|
for($x=1;$x<=count($args);$x++)
|
|
{
|
|
$ret=str_replace("%$x",$args[$x-1],$ret);
|
|
}
|
|
return $ret;
|
|
}
|
|
else
|
|
{
|
|
for($x=1;$x<=count($args);$x++)
|
|
{
|
|
$str=str_replace("%$x",$args[$x-1],$str);
|
|
}
|
|
return "<font color=red>$str</font>";
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
mysql_query("INSERT INTO translations (lang,strmd5,str) VALUES ('".$_SESSION['lang']."','".md5($str)."','".mysql_escape_string($str)."')");
|
|
for($x=1;$x<=count($args);$x++)
|
|
{
|
|
$str=str_replace("%$x",$args[$x-1],$str);
|
|
}
|
|
return "<font color=red>$str</font>";
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//no language set, assume english
|
|
return $str;
|
|
}
|
|
}
|
|
|
|
function error($str)
|
|
{
|
|
return "<div class=\"error\">$str</div><br />";
|
|
|
|
}
|
|
|
|
function notice($str)
|
|
{
|
|
return "<div class=\"notice\">$str</div><br />";
|
|
}
|
|
|
|
function happy($str)
|
|
{
|
|
return "<div class=\"happy\">$str</div><br />";
|
|
}
|
|
|
|
$HEADER_SENT=false;
|
|
function send_header($title="")
|
|
{
|
|
global $HEADER_SENT;
|
|
global $config;
|
|
|
|
//do this so we can use send_header() a little more loosly and not worry about it being sent more than once.
|
|
if($HEADER_SENT) return;
|
|
else $HEADER_SENT=true;
|
|
|
|
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n";
|
|
?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
|
|
<head><title><?=i18n($title)?></title>
|
|
<link rel="stylesheet" href="<?=$config['SFIABDIRECTORY']?>/sfiab.css" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<script language="javascript" type="text/javascript">
|
|
//useful function that we'll be using throughout
|
|
function confirmClick(msg)
|
|
{
|
|
var okay=confirm(msg);
|
|
if(okay)
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
</script>
|
|
|
|
<div id="header">
|
|
<?
|
|
echo "<h1>".i18n($config['fairname'])."</h1>";
|
|
?>
|
|
<hr />
|
|
</div>
|
|
|
|
<div id="left">
|
|
<ul class="mainnav">
|
|
<li><a href="<?=$config['SFIABDIRECTORY']?>/index.php"><?=i18n("Home Page")?></a></li>
|
|
<li><a href="<?=$config['SFIABDIRECTORY']?>/register_participants.php"><?=i18n("Participant Registration")?></a></li>
|
|
<li><a href="<?=$config['SFIABDIRECTORY']?>/register_judges.php"><?=i18n("Judges Registration")?></a></li>
|
|
</ul>
|
|
<br />
|
|
<ul class="mainnav">
|
|
<li><a href="<?=$config['SFIABDIRECTORY']?>/admin/"><?=i18n("Fair Administration")?></a></li>
|
|
<li><a href="<?=$config['SFIABDIRECTORY']?>/config/"><?=i18n("SFIAB Configuration")?></a></li>
|
|
</ul>
|
|
|
|
<div class="aligncenter">
|
|
|
|
<?
|
|
|
|
if(count($config['languages'])>1)
|
|
{
|
|
echo "<br />";
|
|
echo "<form name=\"languageselect\" method=\"get\" action=\"".$_SERVER['PHP_SELF']."\">";
|
|
echo "<select name=\"switchlanguage\" onchange=\"document.forms.languageselect.submit()\">\n";
|
|
foreach($config['languages'] AS $key=>$val)
|
|
{
|
|
if($_SESSION['lang']==$key) $selected="selected=\"selected\""; else $selected="";
|
|
|
|
echo "<option $selected value=\"$key\">$val</option>";
|
|
}
|
|
echo "</select>";
|
|
echo "</form>";
|
|
}
|
|
|
|
|
|
?>
|
|
<a href="http://www.sfiab.ca/"><?=i18n("Return to SFIAB Development Page")?></a>
|
|
<br />
|
|
<br />
|
|
<? include "http://counter.lightbox.org/?user=sfiab&name=testsite&addr=".$_SERVER['REMOTE_ADDR']; ?>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<div id="main">
|
|
<?
|
|
if($title)
|
|
echo "<h2>".i18n($title)."</h2>";
|
|
}
|
|
|
|
function send_footer()
|
|
{
|
|
?>
|
|
</div>
|
|
<div id="footer">
|
|
<? print_r($_SESSION); ?>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|
|
|
|
<?
|
|
}
|
|
|
|
|
|
function emit_month_selector($name,$selected="")
|
|
{
|
|
echo "<select name=\"$name\">\n";
|
|
$months=array("","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
|
|
echo "<option value=\"\">".i18n("Month")."</option>\n";
|
|
for($x=1;$x<=12;$x++)
|
|
{
|
|
if($x==$selected)
|
|
$s="selected=\"selected\"";
|
|
else
|
|
$s="";
|
|
echo "<option $s value=\"$x\">".$months[$x]."</option>\n";
|
|
}
|
|
|
|
echo "</select>\n";
|
|
|
|
}
|
|
|
|
|
|
function emit_day_selector($name,$selected="")
|
|
{
|
|
echo "<select name=\"$name\">\n";
|
|
echo "<option value=\"\">".i18n("Day")."</option>\n";
|
|
|
|
for($x=1;$x<=31;$x++)
|
|
echo "<option value=\"".($x<10?"0":"")."$x\" ".($selected==$x?"selected=\"selected\"":"").">$x</option>\n";
|
|
|
|
echo "</select>\n";
|
|
|
|
}
|
|
|
|
function emit_year_selector($name,$selected="",$min=0,$max=0)
|
|
{
|
|
$curyear=date("Y");
|
|
echo "<select name=\"$name\">\n";
|
|
echo "<option value=\"\">".i18n("Year")."</option>\n";
|
|
|
|
if($min&&$max)
|
|
{
|
|
for($x=$min;$x<=$max;$x++)
|
|
echo "<option value=\"$x\" ".($selected==$x?"selected=\"selected\"":"").">$x</option>\n";
|
|
|
|
}
|
|
else
|
|
{
|
|
//if we arent given a min and max, lets show current year + 5
|
|
for($x=$curyear;$x<$curyear+5;$x++)
|
|
echo "<option value=\"$x\" ".($selected==$x?"selected=\"selected\"":"").">$x</option>\n";
|
|
}
|
|
echo "</select>\n";
|
|
}
|
|
|
|
|
|
|
|
function outputStatus($status)
|
|
{
|
|
$ret="";
|
|
switch($status)
|
|
{
|
|
case 'incomplete':
|
|
$ret.="<div class=\"incomplete\">";
|
|
$ret.= i18n("Incomplete");
|
|
$ret.= "</div>";
|
|
break;
|
|
case 'complete':
|
|
$ret.= "<div class=\"complete\">";
|
|
$ret.= i18n("Complete");
|
|
$ret.= "</div>";
|
|
break;
|
|
case 'empty':
|
|
$ret.="<div class=\"incomplete\">";
|
|
$ret.= i18n("Empty");
|
|
$ret.= "</div>";
|
|
break;
|
|
|
|
default:
|
|
$ret.=i18n("Unknown");
|
|
break;
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
|
|
|
|
?>
|