RETROTEC-AG/OpenXE#17 Locale des GUI-Users ermitteln
Sprache in den Grundeinstellungen speichern
This commit is contained in:
parent
484b96b481
commit
a18a139e64
|
|
@ -13,6 +13,9 @@
|
||||||
*/
|
*/
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Xentral\Components\Database\Database;
|
||||||
|
|
||||||
class Firmendaten {
|
class Firmendaten {
|
||||||
/** @var Application */
|
/** @var Application */
|
||||||
var $app;
|
var $app;
|
||||||
|
|
@ -2544,49 +2547,91 @@ class Firmendaten {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sprache in firmendaten_werte und user->sprachebevorzugen speichern
|
* Sprache in firmendaten_werte speichern, wenn sie geändert wurde.
|
||||||
* @param $language
|
* Falls der Wert in der Tabelle noch nicht existiert, wird er angelegt.
|
||||||
|
*
|
||||||
|
* @param string $newLanguage Sprache (wird in ISO 639 Alpha-3 Code umgewandelt)
|
||||||
*/
|
*/
|
||||||
private function savePreferredLanguage($language){
|
private function savePreferredLanguage(string $newLanguage): void
|
||||||
|
{
|
||||||
|
$newLanguage = \Xentral\Components\I18n\Bootstrap::findLanguage(
|
||||||
|
$newLanguage
|
||||||
|
)[Xentral\Components\I18n\Iso639\Key::DEFAULT] ?? $this->getPreferredLanguage();
|
||||||
|
|
||||||
/* THIS NEEDS TO BE REIMPLEMENTED
|
if ($newLanguage != ($oldLanguage = $this->app->erp->Firmendaten('preferredLanguage'))) {
|
||||||
$lang = $this->app->erp->Firmendaten('preferredLanguage');
|
if ($oldLanguage) {
|
||||||
if($lang != $language){
|
$this->app->erp->FirmendatenSet('preferredLanguage', $newLanguage);
|
||||||
$this->app->erp->FirmendatenSet('preferredLanguage',$language);
|
} else {
|
||||||
$this->app->DB->Update("UPDATE `user` SET sprachebevorzugen = '".$language."'");
|
// Workaround, weil \erpAPI::AddNeuenFirmendatenWert() nicht funktioniert
|
||||||
}
|
/** @var Database $db */
|
||||||
*/
|
$db = $this->app->Container->get('Database');
|
||||||
}
|
$insert= $db->insert()->into('firmendaten_werte')->cols(
|
||||||
|
[
|
||||||
/**
|
'name' => 'preferredLanguage',
|
||||||
* Bevorzugte Sprache aus firmendaten_werte
|
'typ' => 'varchar',
|
||||||
* @return string Sprache
|
'typ1' => '64',
|
||||||
|
'typ2' => '',
|
||||||
|
'wert' => $newLanguage,
|
||||||
|
'default_value' => $this->getPreferredLanguage(),
|
||||||
|
'default_null' => 0,
|
||||||
|
'darf_null' => 0,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$db->perform($insert->getStatement(), $insert->getBindValues());
|
||||||
|
/*
|
||||||
|
$this->app->erp->AddNeuenFirmendatenWert(
|
||||||
|
'preferredLanguage',
|
||||||
|
'varchar',
|
||||||
|
'64',
|
||||||
|
'',
|
||||||
|
$newLanguage,
|
||||||
|
$this->getPreferredLanguage(),
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
);
|
||||||
*/
|
*/
|
||||||
private function getPreferredLanguage(){
|
}
|
||||||
|
}
|
||||||
$lang = $this->app->erp->Firmendaten('preferredLanguage');
|
|
||||||
if(!empty($lang)) {
|
|
||||||
return $lang;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// $this->app->erp->AddNeuenFirmendatenWert('preferredLanguage','varchar','64','','deutsch','deutsch',0,0);
|
|
||||||
return 'deutsch';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Liefert einen String aus HTML-Optionen zurück
|
* Bevorzugte Sprache aus firmendaten_werte zurückgeben.
|
||||||
* @param string $select Wert aus der Datenbank
|
* Wenn die Sprache nicht gesetzt ist, die Default-Sprache zurückgeben.
|
||||||
|
*
|
||||||
|
* @return string Sprache als ISO 639 Alpha-3 Code
|
||||||
|
*/
|
||||||
|
private function getPreferredLanguage(): string
|
||||||
|
{
|
||||||
|
/** @var \Xentral\Components\I18n\Localization $localization */
|
||||||
|
$localization = $this->app->Container->get('Localization');
|
||||||
|
return \Xentral\Components\I18n\Bootstrap::findLanguage(
|
||||||
|
$this->app->erp->Firmendaten('preferredLanguage') ?? $localization->getLanguage()
|
||||||
|
)[Xentral\Components\I18n\Iso639\Key::DEFAULT];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Liefert einen String aus HTML-Optionen zurück.
|
||||||
|
*
|
||||||
|
* @param string $select Gewählter Wert
|
||||||
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function languageSelectOptions($select='deutsch'){
|
private function languageSelectOptions(string $select)
|
||||||
|
{
|
||||||
|
$select=\Xentral\Components\I18n\Bootstrap::findLanguage($select)[Xentral\Components\I18n\Iso639\Key::DEFAULT];
|
||||||
$out = '';
|
$out = '';
|
||||||
$sprachen = $this->getLanguages();
|
foreach ($this->getLanguages() as $sprache) {
|
||||||
|
if($language=\Xentral\Components\I18n\Bootstrap::findLanguage($sprache)) {
|
||||||
foreach($sprachen as $sprache) {
|
$selected = (($select == $language[Xentral\Components\I18n\Iso639\Key::DEFAULT]) ? ' selected="selected"' : '');
|
||||||
$selected = (($select==$sprache) ? 'selected' : '');
|
$out .= "<option value=\"{$language[Xentral\Components\I18n\Iso639\Key::DEFAULT]}\"{$selected}>{$language[Xentral\Components\I18n\Iso639\Key::NAME_deu]}</option>";
|
||||||
$out .= "<option value=\"$sprache\" $selected>$sprache</option>";
|
}
|
||||||
}
|
}
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue