blob: ab47a41c3cbefcd75bdf9f8f8a54943656de299a (
plain) (
tree)
|
|
<?php
/***************************************
* Description:
* Autor: Robert Šmalc
* Created date: 18.02.2016
*****************************************/
namespace App\Controllers;
use SurveyInfo;
class LanguageController extends Controller
{
public function __construct()
{
parent::getGlobalVariables();
}
/************************************************
* Get instance
************************************************/
private static $_instance;
public static function getInstance()
{
if (self::$_instance)
return self::$_instance;
return new LanguageController();
}
/************************************************
* Osnovne jezikovne datoteke
*
* @param $anketa
* @return
************************************************/
public static function getLanguageFile()
{
global $lang;
if (get('anketa') > 0) {
SurveyInfo::getInstance()->SurveyInit(get('anketa'));
$row = SurveyInfo::getInstance()->getSurveyRow();
$jezik = $row['lang_resp'];
} else {
$sql = sisplet_query("SELECT value FROM misc WHERE what = 'SurveyLang_resp'");
$row = mysqli_fetch_array($sql);
$jezik = $row['value'];
}
$file = lang_path($jezik);
if (@include($file)) {
$_SESSION['langX'] = lang_path($jezik, 1);
}
}
/**
* inicializacija multilang ankete. nastavljen mora biti usr_id ali $_GET[language]
*
*/
public function multilang_init()
{
global $lang;
// mamo prebran cookie in user id, spremenimo language ce je treba -- multilanguage podpora je vezana na usr_id
$row = SurveyInfo::getInstance()->getSurveyRow();
if ($row['multilang'] == 1) {
if (isset($_GET['language'])) { // jezik podan preko GETa (podan je ze v linku ali spremenimo v previewu)
if (!empty(get('usr_id'))) { // (v bazo se shrani v displayintroduction - z ostalimi sistemskimi) (usr_id se ni postavljen)
$sqll = sisplet_query("SELECT lang_id FROM srv_language WHERE ank_id='" . get('anketa') . "' AND lang_id='$_GET[language]'");
$rowl = mysqli_fetch_array($sqll);
save('lang_id', $rowl['lang_id']);
} else { // v GETu, ko lahko v previewu spreminjamo jezik na strani (usr_id je ze postavljen)
$sql1 = sisplet_query("SELECT s.id FROM srv_spremenljivka s, srv_grupa g WHERE s.variable='language' AND s.gru_id=g.id AND g.ank_id='" . get('anketa') . "'");
$row1 = mysqli_fetch_array($sql1);
if ($row1['id'] > 0)
$sql1 = sisplet_query("UPDATE srv_data_text" . get('db_table') . " dt SET text='$_GET[language]' WHERE spr_id='$row1[id]' AND usr_id='" . get('usr_id') . "'");
save('lang_id', $_GET['language']);
}
} elseif (isset($_POST['language'])) { // jezik podan v POSTu (ce si ga user spremeni na prvi strani)
$sql1 = sisplet_query("SELECT s.id FROM srv_spremenljivka s, srv_grupa g WHERE s.variable='language' AND s.gru_id=g.id AND g.ank_id='" . get('anketa') . "'");
$row1 = mysqli_fetch_array($sql1);
if ($row1['id'] > 0)
$sql1 = sisplet_query("UPDATE srv_data_text" . get('db_table') . " dt SET text='$_POST[language]' WHERE spr_id='$row1[id]' AND usr_id='" . get('usr_id') . "'");
save('lang_id', $_POST['language']);
} else { // jezik je ze shranjen v bazi, ga preberemo (naslednje strani)
$sqll = sisplet_query("SELECT text FROM srv_data_text" . get('db_table') . " dt, srv_spremenljivka s WHERE dt.spr_id=s.id AND s.variable='language' AND dt.usr_id='" . get('usr_id') . "'");
$rowl = mysqli_fetch_array($sqll);
$sqll = sisplet_query("SELECT lang_id FROM srv_language WHERE ank_id='" . get('anketa') . "' AND lang_id='$rowl[text]'");
$rowl = mysqli_fetch_array($sqll);
save('lang_id', $rowl['lang_id']);
}
if (get('lang_id') == null) { // ni bil podan preko GETa in ni shranjen v bazi -- priredimo default jezik
$_GET['language'] = self::$lang['id']; // to damo samo zato, da se shrani ID default jezika v bazo, namesto -1 (ker pri default jeziku ne podamo nič preko URLja)
// get('lang_id') mora se vedno ostati null !
} else { // zamenjamo jezik
$file = lang_path(get('lang_id'));
if (@include($file))
$_SESSION['langX'] = lang_path(get('lang_id'), 1);
}
}
}
/**
* prevod za srv_spremenljivka
*/
public static function srv_language_spremenljivka($spremenljivka)
{
if (get('lang_id') != null) {
$sqll = sisplet_query("SELECT * FROM srv_language_spremenljivka WHERE ank_id='" . get('anketa') . "' AND spr_id='$spremenljivka' AND lang_id='" . get('lang_id') . "'");
$rowl = mysqli_fetch_array($sqll);
return $rowl;
}
return false;
}
/**
* vrne prevod za srv_vrednost
*
* @param mixed $vrednost
*/
public function srv_language_vrednost($vrednost, $naslov2=false)
{
if (get('lang_id') != null) {
$sqll = sisplet_query("SELECT naslov, naslov2 FROM srv_language_vrednost WHERE ank_id='" . get('anketa') . "' AND vre_id='$vrednost' AND lang_id='" . get('lang_id') . "'");
$rowl = mysqli_fetch_array($sqll);
if($naslov2){
if ($rowl['naslov2'] != '')
return $rowl['naslov2'];
}
elseif ($rowl['naslov'] != ''){
return $rowl['naslov'];
}
}
return false;
}
/**
* vrne prevod za srv_grid
*
* @param mixed $vrednost
*/
public static function srv_language_grid($spremenljivka, $grid)
{
if (get('lang_id') != null) {
$sqll = sisplet_query("SELECT naslov FROM srv_language_grid WHERE ank_id='" . get('anketa') . "' AND spr_id='$spremenljivka' AND grd_id='$grid' AND lang_id='" . get('lang_id') . "'");
$rowl = mysqli_fetch_array($sqll);
if ($rowl['naslov'] != '') return $rowl['naslov'];
}
return false;
}
/**
* vrne prevod podnaslova za dvojno tabelo
*
*/
public static function srv_language_grid_podnaslov($spremenljivka, $grid)
{
if (get('lang_id') != null) {
$sqll = sisplet_query("SELECT podnaslov FROM srv_language_grid WHERE ank_id='" . get('anketa') . "' AND spr_id='$spremenljivka' AND grd_id='$grid' AND lang_id='" . get('lang_id') . "'");
$rowl = mysqli_fetch_array($sqll);
if ($rowl['podnaslov'] != '') return $rowl['podnaslov'];
}
return false;
}
}
|