Update xmlinterface.class.php

Update locale cases for SIP phones
This commit is contained in:
steve-lad 2021-07-29 08:26:11 +02:00
parent 48a2793886
commit 646a975a5f

View file

@ -120,8 +120,6 @@ class xmlinterface
{ {
// TODO: $data_values are system wide defaults, $dev_config are specific defice values. // TODO: $data_values are system wide defaults, $dev_config are specific defice values.
// Need to merge the two arrays so that device specific values override system values // Need to merge the two arrays so that device specific values override system values
// Values that cannot be sent to the device by chan-sccp are prefixed by an underscore
// so need to be sure that we apply the same convention to system wide defaults.
$langCodeArray = array( $langCodeArray = array(
'Arabic_Saudi_Arabia' => 'ar', 'Arabic_Saudi_Arabia' => 'ar',
'Bulgarian_Bulgaria' => 'bg', 'Bulgarian_Bulgaria' => 'bg',
@ -372,7 +370,7 @@ class xmlinterface
if (!empty($dev_config['netlang'])) { if (!empty($dev_config['netlang'])) {
$lang = $dev_config['netlang']; $lang = $dev_config['netlang'];
} }
if (($lang != null) && (!empty($lang))) { if (isset($lang)) {
$xml_work->$key = $lang; $xml_work->$key = $lang;
$this->replaceSimpleXmlNode($xml_work->$key, $xml_node); $this->replaceSimpleXmlNode($xml_work->$key, $xml_node);
} else { } else {
@ -384,8 +382,8 @@ class xmlinterface
if (!empty($dev_config['netlang'])) { if (!empty($dev_config['netlang'])) {
$lang = $dev_config['netlang']; $lang = $dev_config['netlang'];
} }
if (($lang != null) && (!empty($lang))) { if (isset($lang)) {
$xml_node->name = $dev_config['netlang']; $xml_node->name = $lang;
$this->replaceSimpleXmlNode($xml_work->$key, $xml_node); $this->replaceSimpleXmlNode($xml_work->$key, $xml_node);
} else { } else {
$xml_work->$key = ''; $xml_work->$key = '';
@ -680,33 +678,40 @@ class xmlinterface
$xml_node->backgroundImageAccess = (($data_values['backgroundImageAccess'] == 'on') || ($data_values['backgroundImageAccess'] == 'true') ) ? 'true' : 'false'; $xml_node->backgroundImageAccess = (($data_values['backgroundImageAccess'] == 'on') || ($data_values['backgroundImageAccess'] == 'true') ) ? 'true' : 'false';
$xml_node->callLogBlfEnabled = $data_values['callLogBlfEnabled']; $xml_node->callLogBlfEnabled = $data_values['callLogBlfEnabled'];
break; break;
case 'userlocale':
case 'userLocale': // Device language
case 'networkLocaleInfo': $lang = $data_values['devlang'];
case 'networkLocale': if (!empty($dev_config['devlang'])) {
$hwlang = ''; $lang = $dev_config['devlang'];
$lang = '';
if (!empty($dev_config["_hwlang"])) {
$hwlang = explode(':', $dev_config["_hwlang"]);
} }
if (($key == 'networkLocaleInfo') || ($key == 'networkLocale')) { $xml_node->winCharSet = $dev_config['phonecodepage'];
$lang = (empty($hwlang[0])) ? $data_values['netlang'] : $hwlang[0]; $xml_node->name = $dev_config['devlang'];
} else { $xml_node->langCode = 'en';
$lang = (empty($hwlang[1])) ? $data_values['devlang'] : $hwlang[1]; if (isset($langCodeArray['devlang'])) {
} $xml_node->langCode = $langCodeArray['devlang'];
if (($lang != 'null') && (!empty($lang))) {
if ($key == 'networkLocale') {
$xml_work->$key = $lang;
} else {
if (isset($lang_info[$lang])) {
$xml_node->name = $lang_info[$lang]['locale'];
$xml_node->langCode = $lang_info[$lang]['code'];
if ($key == 'userLocale') {
$xml_node->winCharSet = $lang_info[$lang]['codepage'];
} }
$this->replaceSimpleXmlNode($xml_work->$key, $xml_node); $this->replaceSimpleXmlNode($xml_work->$key, $xml_node);
break;
case 'networklocale':
$lang = $data_values['netlang'];
if (!empty($dev_config['netlang'])) {
$lang = $dev_config['netlang'];
} }
if (isset($lang)) {
$xml_work->$key = $lang;
$this->replaceSimpleXmlNode($xml_work->$key, $xml_node);
} else {
$xml_work->$key = '';
} }
break;
case 'networklocaleinfo':
$lang = $data_values['netlang'];
if (!empty($dev_config['netlang'])) {
$lang = $dev_config['netlang'];
}
if (isset($lang)) {
$xml_node->name = $lang;
$this->replaceSimpleXmlNode($xml_work->$key, $xml_node);
} else { } else {
$xml_work->$key = ''; $xml_work->$key = '';
} }