diff --git a/src/settings.php b/src/settings.php index 7a60c1e..39fcaf6 100644 --- a/src/settings.php +++ b/src/settings.php @@ -47,7 +47,7 @@ function _c($key) return Config::get($key); } -function getLangs() +function getLangs($withContents = 0) { if (!$h = opendir(MTTPATH. 'lang')) return false; $a = array(); @@ -55,12 +55,34 @@ function getLangs() { if(preg_match('/(.+)\.php$/', $file, $m) && $file != 'class.default.php') { $a[$m[1]] = $m[1]; + if($withContents) { + $a[$m[1]] = getLangDetails(MTTPATH. 'lang'. DIRECTORY_SEPARATOR. $file, $m[1]); + $a[$m[1]]['name'] = $a[$m[1]]['original_name']; + $a[$m[1]]['title'] = $a[$m[1]]['language']; + } } } closedir($h); return $a; } +function getLangDetails($filename, $default) +{ + $contents = file_get_contents($filename); + $a = array('language'=>$default, 'original_name'=>$default); + if(preg_match("|/\\*\s*myTinyTodo language pack([\s\S]+?)\\*/|", $contents, $m)) + { + $str = $m[1]; + if(preg_match("|Language\s*:\s*(.+)|i", $str, $m)) { + $a['language'] = trim($m[1]); + } + if(preg_match("|Original name\s*:\s*(.+)|i", $str, $m)) { + $a['original_name'] = trim($m[1]); + } + } + return $a; +} + function selectOptions($a, $value, $default=null) { if(!$a) return ''; @@ -72,6 +94,19 @@ function selectOptions($a, $value, $default=null) return $s; } +function selectOptionsA($a, $value, $default=null) +{ + if(!$a) return ''; + $s = ''; + if($default !== null && !isset($a[$value])) $value = $default; + foreach($a as $k=>$v) { + $s .= ''; + } + return $s; +} + ?>
@@ -91,7 +126,7 @@ function selectOptions($a, $value, $default=null)