diff --git a/src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php b/src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php index fd7f84b..e19ff7b 100644 --- a/src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php +++ b/src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php @@ -129,19 +129,19 @@ class IHMParamManagerClass $doc->preserveWhiteSpace = false; $doc->formatOutput = true; - $real_param_id = $real_param_id; + $real_param_id = $paramId; if ($this->templateParamsManager->isTemplatedParam($paramId)) { - $paramPath = $this->templateParamsManager->generateTemplatedParamFile($paramId, $templateArgs); + $paramPath = $this->templateParamsManager->getTemplatePath($paramId); $real_param_id = $this->templateParamsManager->getTemplatedParamId($paramId, $templateArgs); + if (empty($paramPath) || !$doc->load($paramPath)) + throw new Exception('Cannot find parameter template file '.$paramPath); } else { $paramPath = IHMConfigClass::getLocalParamDBPath().$paramId.".xml"; + if (empty($paramPath) || !$doc->load($paramPath)) + throw new Exception('Cannot find parameter local file '.$paramPath); } - - if (empty($paramPath) || !$doc->load($paramPath)) - throw new Exception('Cannot find parameter local file '.$paramId); - //<get> $getNodes = $doc->getElementsByTagName('get'); @@ -156,17 +156,19 @@ class IHMParamManagerClass foreach($amdaParamNodes as $amdaParamNode) { $linkedParamId = $amdaParamNode->getAttribute('name'); - if ($linkedParamId == '') + if (empty($linkedParamId)) continue; - $real_linked_param_id = $linkedParamId; - if ($this->templateParamsManager->isTemplatedParam($linkedParamId)) { - $linkedParamPath = $this->templateParamsManager->generateTemplatedParamFile($linkedParamId, $templateArgs); - $real_linked_param_id = $this->templateParamsManager->getTemplatedParamId($linkedParamId, $templateArgs); + $parsed_param = $this->templateParamsManager->parseTemplatedParam($linkedParamId); + if ($parsed_param === FALSE) { + $real_linked_param_id = $linkedParamId; + $linkedParamPath = IHMConfigClass::getLocalParamDBPath().$real_linked_param_id.".xml"; + } + else { + $real_linked_param_id = $parsed_param['paramid']; + $linkedParamPath = $this->templateParamsManager->generateTemplatedParamFile($real_linked_param_id, $templateArgs); } - else - $linkedParamPath = IHMConfigClass::getLocalParamDBPath().$linkedParamId.".xml"; - $paramsData->addParamToCopy($real_linked_param_id,$linkedParamPath); - $this->addLinkedLocalParams($linkedParamId, $paramsData); + $paramsData->addParamToCopy($linkedParamId,$linkedParamPath); + $this->addLinkedLocalParams($real_linked_param_id, $paramsData); } } -- libgit2 0.21.2