# HG changeset patch # User Matti Hamalainen # Date 1351038184 -10800 # Node ID 6900beff878941ea3b7eaa77221be5080d975cbc # Parent 6635246b70d9fc7011ce731b2f9ca3d37d6b2273 Improve multi-language support. diff -r 6635246b70d9 -r 6900beff8789 index.php --- a/index.php Wed Oct 24 02:54:10 2012 +0300 +++ b/index.php Wed Oct 24 03:23:04 2012 +0300 @@ -2,14 +2,13 @@ // // Yes, this is horrible. :| // +$pageLang = "fi"; $pageCharset = "utf-8"; $internalCharset = "utf-8"; $classDefault = "TTE9SNO"; $classFile = "luokat.txt"; $cacheFile = "coursecache.txt"; $baseURI = "http://tnsp.org/luk/"; -//$infoURI = "http://www.oamk.fi/opiskelijalle/rakenne/opinto-opas/koulutusohjelmat/?sivu=oj&kieli=FI&opas=2010-2011&vuosi=10S11K&koodi1="; -$infoURI = "http://www.oamk.fi/opiskelijalle/rakenne/opinto-opas/koulutusohjelmat/?sivu=oj&kieli=FI&koodi1="; $pageCSSData = array("cookie" => "lukcss", "prefix" => $baseURI."luk"); $pageCSSAlts = array("blue" => "1", "old" => "2", "purple" => "3"); @@ -33,8 +32,8 @@ ), "beta" => array( - "en" => " NOTICE! Lukkari v2.0beta is not yet finished. Features present in the previous version but currently missing (mini-mode) will return soon.", - "fi" => " HUOM! Lukkari v2.0beta on vielä keskeneräinen. Vanhassa versiossa olleet puuttuvat ominaisuudet (mini-moodi) palaavat piakkoin.", + "en" => " NOTICE! Lukkari v2.0beta is still under development. There may be bugs. Some old features (mini-mode) may not return.", + "fi" => " HUOM! Lukkari v2.0beta on vielä keskeneräinen. Bugeja voi olla. Jotkut vanhat ominaisuudet (mini-moodi) eivät välttämättä tule takaisin.", ), "viikossa" => array( @@ -62,9 +61,6 @@ { global $lukTranslations, $pageLang; - if (!isset($pageLang)) - $pageLang = "fi"; - if (isset($lukTranslations[$msg]) && isset($lukTranslations[$msg][$pageLang])) $str = $lukTranslations[$msg][$pageLang]; else @@ -82,9 +78,6 @@ { global $lukDayNames, $pageLang; - if (!isset($pageLang)) - $pageLang = "fi"; - if (isset($lukDayNames[$pageLang]) && isset($lukDayNames[$pageLang][$day])) return $lukDayNames[$pageLang][$day]; else @@ -146,29 +139,35 @@ function lukMatchCourse($id) { - global $cache, $infoURI, $cacheDirty, $internalCharset; + global $cache, $cacheDirty, $internalCharset, $pageLang; + + $uri = "http://www.oamk.fi/opiskelijalle/rakenne/opinto-opas/koulutusohjelmat/?sivu=oj&kieli=".strtoupper($pageLang)."&koodi1=".$id; + + // Create the index + if (!isset($cache[$id])) + $cache[$id] = array(); // Check if course exists in cache - if (!isset($cache[$id])) + if (!isset($cache[$id][$pageLang])) { // Not cached, try to fetch data $cacheDirty = TRUE; - $data = @file_get_contents($infoURI.$id); + $data = @file_get_contents($uri); if ($data !== FALSE) { $data = iconv("iso-8859-1", $internalCharset, $data); - if (preg_match("#(.+?)\s+(\d+)\s*op\s*#", $data, $m)) + if (preg_match("#(.+?)\s+(\d+)\s*(op|ECTS\s+cr)\s*#", $data, $m)) { // Add data to cache - $cache[$id] = array("desc" => $m[1], "op" => intval($m[2])); + $cache[$id][$pageLang] = array("desc" => $m[1], "op" => intval($m[2])); } } } - if (isset($cache[$id])) + if (isset($cache[$id]) && isset($cache[$id][$pageLang])) { - return "".lukChEntities($cache[$id]["desc"]).""; + return "".lukChEntities($cache[$id][$pageLang]["desc"]).""; } else return lukChEntities($id); @@ -455,9 +454,9 @@ echo "
". lukMsg("contact"). -"". +"
". lukMsg("beta"). -" +"
Lukkari v2.0 beta
@@ -478,14 +477,9 @@ // Dump the course data cache, but only if it has changed -if ($cacheDirty) { - // Create string containing the data - $str = " $data) { - $str .= " \"".addslashes($id)."\" => array(\"desc\" => \"". - addslashes($data["desc"])."\", \"op\" => ".$data["op"]."),\n"; - } - $str .= ");\n?>"; +if ($cacheDirty) +{ + $str = ""; // Use locking to prevent concurrent access and dump data if (file_put_contents($cacheFile, $str, LOCK_EX) === FALSE) {