first commit
This commit is contained in:
79
autoload/language/class.FLanguage.php
Normal file
79
autoload/language/class.FLanguage.php
Normal file
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
namespace language;
|
||||
|
||||
class FLanguage {
|
||||
|
||||
public static function getLangs()
|
||||
{
|
||||
global $db, $cache, $config, $lang;
|
||||
|
||||
$key = 'getLangs';
|
||||
|
||||
if ( !$langs = $cache -> fetch( $key ) )
|
||||
{
|
||||
$query = $db -> prepare( 'SELECT id , name FROM pp_langs WHERE enabled=:enabled' );
|
||||
$query -> bindValue( ':enabled', 1, \PDO::PARAM_STR );
|
||||
$query -> execute();
|
||||
if ( $query -> rowCount() ) while ( $row = $query -> fetch() )
|
||||
{
|
||||
$lg['id'] = $row['id'];
|
||||
$lg['name'] = $lang -> getTrans( $row['name'] );
|
||||
$langs[] = $lg;
|
||||
}
|
||||
$query -> closeCursor();
|
||||
$cache -> store( $key , $langs , $config['cache_expire_long' ] );
|
||||
}
|
||||
return $langs;
|
||||
}
|
||||
|
||||
public static function loadLang( $language_tmp = 'pl', $admin = false )
|
||||
{
|
||||
global $cache, $db, $config;
|
||||
|
||||
$language_tmp = \language\Flanguage::checkLangCorrection( $language_tmp );
|
||||
|
||||
$key = 'loadLang:' . $language_tmp;
|
||||
|
||||
if ( !$translation = $cache -> fetch( $key ) )
|
||||
{
|
||||
$query = $db -> prepare( 'SELECT text, ' . $language_tmp . ' FROM pp_langs_text' );
|
||||
$query -> execute();
|
||||
if ( $query -> rowCount() ) while ( $row = $query -> fetch() )
|
||||
$translation[ $row['text'] ] = $row[ $language_tmp ];
|
||||
$query -> closeCursor();
|
||||
$cache -> store( $key , $translation , $config['cache_expire_long' ] );
|
||||
}
|
||||
\System::setSessionVar( 'current_lang' , $language_tmp , $admin );
|
||||
|
||||
$language = new \language\Language( $language_tmp );
|
||||
$language -> set_translation( $translation );
|
||||
|
||||
return $language;
|
||||
}
|
||||
|
||||
private static function checkLangCorrection( $lang_check )
|
||||
{
|
||||
switch ( $lang_check )
|
||||
{
|
||||
case 'pl':
|
||||
return 'pl';
|
||||
break;
|
||||
case 'en':
|
||||
return 'en';
|
||||
break;
|
||||
case 'ru':
|
||||
return 'ru';
|
||||
break;
|
||||
case 'de':
|
||||
return 'de';
|
||||
break;
|
||||
case 'uk':
|
||||
return 'uk';
|
||||
break;
|
||||
default:
|
||||
return 'pl';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
42
autoload/language/class.Language.php
Normal file
42
autoload/language/class.Language.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
namespace language;
|
||||
|
||||
class Language {
|
||||
|
||||
private $_translation;
|
||||
private $_language;
|
||||
|
||||
public function __construct( $var )
|
||||
{
|
||||
$this -> _language = $var;
|
||||
}
|
||||
|
||||
public function get_language()
|
||||
{
|
||||
return $this->_language;
|
||||
}
|
||||
|
||||
public function set_language($_language)
|
||||
{
|
||||
$this->_language = $_language;
|
||||
}
|
||||
|
||||
public function get_translation()
|
||||
{
|
||||
return $this->_translation;
|
||||
}
|
||||
|
||||
public function set_translation($_translation)
|
||||
{
|
||||
$this->_translation = $_translation;
|
||||
}
|
||||
|
||||
public function getTrans( $val )
|
||||
{
|
||||
if ( isset( $this -> _translation[ $val ] ) )
|
||||
return $this -> _translation[ $val ];
|
||||
else
|
||||
return $val;
|
||||
}
|
||||
}
|
||||
?>
|
||||
18
autoload/language/class.VLanguage.php
Normal file
18
autoload/language/class.VLanguage.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
namespace language;
|
||||
|
||||
class VLanguage {
|
||||
|
||||
public static function showLanguages()
|
||||
{
|
||||
$langs = \language\FLanguage::getLangs();
|
||||
$current_lang = \System::getSessionVar( 'current_lang' );
|
||||
|
||||
$tpl = new \Savant3;
|
||||
$tpl -> _langs = $langs;
|
||||
$tpl -> _current_lang = $current_lang;
|
||||
|
||||
return $tpl -> fetch( 'other/languages' );
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user