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; } //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 "$str"; } } 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 "($str)"; } } } else { //no language set, assume english return $str; } } function error($str) { return $str."
"; } function notice($str) { return $str."
"; } $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 "\n"; ?> <?=i18n($title)?>

1) { echo "
"; echo "
"; echo ""; echo "
"; } ?>
".i18n($title).""; } function send_footer() { ?>