00001 <?php
00033 class Lang {
00034 private $languages = array();
00035 private $defaultlang;
00043 function __construct() {
00044 global $session, $cfg;
00045
00046
00047 if ($langs = $cfg->getConfig("LANGUAGES")) {
00048 $this->languages = array_flip(explode("|", $langs));
00049 foreach ($this->languages as $key => $value) {
00050 $this->languages[$key] = $this->getLangName($key);
00051 }
00052 $this->languages = array_flip($this->languages);
00053 }
00054 $this->defaultlang = $cfg->getConfig("DEFAULT_LANG");
00055 if (!$session->getValue("language")) {
00056
00057 $session->setValue("language", $this->defaultlang);
00058 }
00059 }
00060
00066 private function getLangName($code) {
00067 $res = mysql_query("SELECT name FROM languages WHERE id = '" . $code . "'");
00068 if (mysql_num_rows($res) > 0) {
00069 $line = mysql_fetch_assoc($res);
00070 mysql_free_result($res);
00071 return $line['name'];
00072 }
00073 }
00074
00081 private function languageExists($langid) {
00082 return in_array($langid, $this->languages);
00083 }
00084
00094 public function getText($text, $pars = "") {
00095 if (is_array($pars)) {
00096 return vsprintf($text, $pars);
00097 } else {
00098 if ($pars <> "") {
00099 return sprintf($text, $pars);
00100 } else {
00101 return $text;
00102 }
00103 }
00104 }
00105
00113 public function setLanguage($langid) {
00114 global $session;
00115
00116 if ($this->languageExists($langid)) {
00117 $session->setValue("language", $langid);
00118 } else {
00119 $session->setValue("language", $this->defaultlang);
00120 }
00121 }
00122
00128 public function getCurrentLanguage() {
00129 global $session;
00130
00131 $l = $session->getValue("language");
00132 if (!isset($l)) {
00133 $l = $this->defaultlang;
00134 }
00135 return $l;
00136 }
00137
00144 function getLanguageMenu() {
00145 global $cfg, $session;
00146
00147
00148 $currlang = $session->getValue("language");
00149 if (!isset($currlang)) { $currlang = $cfg->getConfig("DEFAULT_LANG"); }
00150
00151 $qs = CMSkey::getQueryString("lang");
00152 if ($qs) {
00153 $qs .= "&lang=";
00154 } else {
00155 $qs = "?lang=";
00156 }
00157 foreach ($this->languages as $k => $l) {
00158 if ($lm) { $lm .= " | "; }
00159
00160 $item = $k;
00161 if ($currlang != $l) {
00162 $item = "<a href=\"" . $cfg->getConfig("DEFAULT_PAGE") . $qs . $l . "\">" . $item . "</a>";
00163 }
00164 $lm .= $item;
00165 }
00166
00167 return $lm;
00168 }
00169 }
00170 ?>