lang.php

Go to the documentation of this file.
00001 <?php
00033 class Lang {
00034     private $languages = array();   
00035     private $defaultlang;           
00043     function __construct() {
00044         global $session, $cfg;
00045 
00046         /* set installed languages array */
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             /* set default language */
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         /* before session cookie initialization no languages appear to be set in the language menu */
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 .= "&amp;lang=";
00154         } else {
00155             $qs = "?lang=";
00156         }
00157         foreach ($this->languages as $k => $l) {
00158             if ($lm) { $lm .= "&nbsp;|&nbsp;"; }
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 ?>

Generated on Fri Feb 22 11:19:48 2008 for CMSkey by  doxygen 1.5.3