diff --git a/install.php b/install.php index 2ac7674..5b7d177 100644 --- a/install.php +++ b/install.php @@ -978,13 +978,36 @@ function cleanUpSccpSettings() { if ($valueArray['Flags'][0] == 'Obsolete' || $valueArray['Flags'][0] == 'Deprecated') { continue; } - $sysConfiguration[$valueArray['Name']] = $valueArray; - if (array_key_exists($valueArray['Name'],$settingsFromDb)) { - if (!empty($sysConfiguration[$valueArray['Name']]['DefaultValue'])) { - $settingsFromDb[$valueArray['Name']]['systemdefault'] = $sysConfiguration[$valueArray['Name']]['DefaultValue']; + + // 2 special cases deny|permit & disallow|allow where need to parse on |. + $newKeyword = explode("|", $valueArray['Name'], 2); + if (isset($newKeyword[1])) { + dbug('',$newKeyword); + $newSysDef = explode("|", $valueArray['DefaultValue'], 2); + $i = 0; + foreach ($newKeyword as $dummy) { + if (array_key_exists($newKeyword[$i],$settingsFromDb)) { + if (!empty($newSysDef[$i])) { + $settingsFromDb[$newKeyword[$i]]['systemdefault'] = $newSysDef[$i]; + } + } else { + $settingsFromDb[$newKeyword[$i]] = array('keyword' => $newKeyword[$i], 'seq' => 0, 'type' => 0, 'data' => '', 'systemdefault' => $newSysDef[$i]); + } + $i++; + } + if (array_key_exists($valueArray['Name'],$settingsFromDb)){ + unset($settingsFromDb[$valueArray['Name']]); } } else { - $settingsFromDb[$valueArray['Name']] = array('keyword' => $valueArray['Name'], 'seq' => 0, 'type' => 0, 'data' => '', 'systemdefault' => $sysConfiguration[$valueArray['Name']]['DefaultValue']); + $sysConfiguration[$valueArray['Name']] = $valueArray; + if (array_key_exists($valueArray['Name'],$settingsFromDb)) { + if (!empty($sysConfiguration[$valueArray['Name']]['DefaultValue'])) { + $settingsFromDb[$valueArray['Name']]['systemdefault'] = $sysConfiguration[$valueArray['Name']]['DefaultValue']; + } + } else { + + $settingsFromDb[$valueArray['Name']] = array('keyword' => $valueArray['Name'], 'seq' => 0, 'type' => 0, 'data' => '', 'systemdefault' => $sysConfiguration[$valueArray['Name']]['DefaultValue']); + } } unset($sysConfiguration[$key]); } diff --git a/sccpManClasses/xmlinterface.class.php b/sccpManClasses/xmlinterface.class.php index a3f8f45..2ce301d 100644 --- a/sccpManClasses/xmlinterface.class.php +++ b/sccpManClasses/xmlinterface.class.php @@ -286,24 +286,22 @@ class xmlinterface $xml_work->$key = time(); break; case 'loadinformation': -// Set Path Image ???? - if (isset($dev_config["tftp_firmware"])) { - $xml_work->$key = (isset($dev_config["loadimage"])) ? $dev_config["tftp_firmware"] . $dev_config["loadimage"] : ''; - } else { - $xml_work->$key = (isset($dev_config["loadimage"])) ? $dev_config["loadimage"] : ''; - } - if (!empty($dev_config['addon'])) { - $xnode = $xml_work->addChild('addOnModules'); - $ti = 1; - $hw_addon = explode(';', $dev_config['addon']); - foreach ($hw_addon as $add_key) { - if (!empty($dev_config['addon_info'][$dev_config['addon']])) { - $add_val = $dev_config['addon_info'][$dev_config['addon']]; - $xnode_obj = $xnode->addChild('addOnModule'); - $xnode_obj->addAttribute('idx', $ti); - $xnode_obj->addChild('loadInformation', $add_val); - $ti++; - } + if (isset($dev_config["tftp_firmware"])) { + $xml_work->$key = (isset($dev_config["loadimage"])) ? $dev_config["tftp_firmware"] . $dev_config["loadimage"] : ''; + } else { + $xml_work->$key = (isset($dev_config["loadimage"])) ? $dev_config["loadimage"] : ''; + } + if (!empty($dev_config['addon'])) { + $xnode = $xml_work->addChild('addOnModules'); + $ti = 1; + $hw_addon = explode(';', $dev_config['addon']); + foreach ($hw_addon as $add_key) { + if (!empty($dev_config['addon_info'][$dev_config['addon']])) { + $add_val = $dev_config['addon_info'][$dev_config['addon']]; + $xnode_obj = $xnode->addChild('addOnModule'); + $xnode_obj->addAttribute('idx', $ti); + $xnode_obj->addChild('loadInformation', $add_val); + $ti++; } } }