From: stronk7 Date: Sat, 15 Jul 2006 08:39:50 +0000 (+0000) Subject: Soled bug 6089 plus some minor iteration savings... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=c67303bd97ba57992e17bbf93f7e52e01462535d;p=moodle.git Soled bug 6089 plus some minor iteration savings... (http://moodle.org/bugs/bug.php?op=show&bugid=6089) Merged from MOODLE_16_STABLE --- diff --git a/filter/multilang/filter.php b/filter/multilang/filter.php index ec71bd2e0d..3360f02c2a 100644 --- a/filter/multilang/filter.php +++ b/filter/multilang/filter.php @@ -105,6 +105,8 @@ function multilang_filter_impl($langblock) { $lang = ''; $minpref = count($preflangs); $bestkey = 0; + // Define the preference that will be enough if found + $stoppref = empty($CFG->unicodedb) ? 0 : 1; //Iterate foreach ($langlist[1] as $key => $lang) { //Normalize: Moodle's langs are always lowercase and they use the underscore @@ -114,21 +116,13 @@ function multilang_filter_impl($langblock) { if ($foundkey !== false && $foundkey !== NULL && $foundkey < $minpref) { $minpref = $foundkey; $bestkey = $key; - if ($minpref == 0) { - continue; //The best has been found. Leave iteration. + if ($minpref <= $stoppref) { + break; //The best has been found. Leave iteration. } } } - // return result if we got some sort of match - if ($foundkey) { - $bestmatch = $langlist[2][$bestkey]; - } - else { - $bestmatch = ''; - } - - return trim($bestmatch); + return trim($langlist[2][$bestkey]); } ?>