Commit cd3326be95f6f33b1eb1126ed836c3e6958bdf87

Authored by Benjamin Renard
1 parent a7011f4d

Fix function used to retrieve linked parameters used by a parameter

Showing 1 changed file with 17 additions and 15 deletions   Show diff stats
src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php
@@ -129,19 +129,19 @@ class IHMParamManagerClass @@ -129,19 +129,19 @@ class IHMParamManagerClass
129 $doc->preserveWhiteSpace = false; 129 $doc->preserveWhiteSpace = false;
130 $doc->formatOutput = true; 130 $doc->formatOutput = true;
131 131
132 - $real_param_id = $real_param_id; 132 + $real_param_id = $paramId;
133 if ($this->templateParamsManager->isTemplatedParam($paramId)) { 133 if ($this->templateParamsManager->isTemplatedParam($paramId)) {
134 - $paramPath = $this->templateParamsManager->generateTemplatedParamFile($paramId, $templateArgs); 134 + $paramPath = $this->templateParamsManager->getTemplatePath($paramId);
135 $real_param_id = $this->templateParamsManager->getTemplatedParamId($paramId, $templateArgs); 135 $real_param_id = $this->templateParamsManager->getTemplatedParamId($paramId, $templateArgs);
  136 + if (empty($paramPath) || !$doc->load($paramPath))
  137 + throw new Exception('Cannot find parameter template file '.$paramPath);
136 } 138 }
137 else { 139 else {
138 $paramPath = IHMConfigClass::getLocalParamDBPath().$paramId.".xml"; 140 $paramPath = IHMConfigClass::getLocalParamDBPath().$paramId.".xml";
  141 + if (empty($paramPath) || !$doc->load($paramPath))
  142 + throw new Exception('Cannot find parameter local file '.$paramPath);
139 } 143 }
140 144
141 -  
142 - if (empty($paramPath) || !$doc->load($paramPath))  
143 - throw new Exception('Cannot find parameter local file '.$paramId);  
144 -  
145 //<get> 145 //<get>
146 $getNodes = $doc->getElementsByTagName('get'); 146 $getNodes = $doc->getElementsByTagName('get');
147 147
@@ -156,17 +156,19 @@ class IHMParamManagerClass @@ -156,17 +156,19 @@ class IHMParamManagerClass
156 foreach($amdaParamNodes as $amdaParamNode) 156 foreach($amdaParamNodes as $amdaParamNode)
157 { 157 {
158 $linkedParamId = $amdaParamNode->getAttribute('name'); 158 $linkedParamId = $amdaParamNode->getAttribute('name');
159 - if ($linkedParamId == '') 159 + if (empty($linkedParamId))
160 continue; 160 continue;
161 - $real_linked_param_id = $linkedParamId;  
162 - if ($this->templateParamsManager->isTemplatedParam($linkedParamId)) {  
163 - $linkedParamPath = $this->templateParamsManager->generateTemplatedParamFile($linkedParamId, $templateArgs);  
164 - $real_linked_param_id = $this->templateParamsManager->getTemplatedParamId($linkedParamId, $templateArgs); 161 + $parsed_param = $this->templateParamsManager->parseTemplatedParam($linkedParamId);
  162 + if ($parsed_param === FALSE) {
  163 + $real_linked_param_id = $linkedParamId;
  164 + $linkedParamPath = IHMConfigClass::getLocalParamDBPath().$real_linked_param_id.".xml";
  165 + }
  166 + else {
  167 + $real_linked_param_id = $parsed_param['paramid'];
  168 + $linkedParamPath = $this->templateParamsManager->generateTemplatedParamFile($real_linked_param_id, $templateArgs);
165 } 169 }
166 - else  
167 - $linkedParamPath = IHMConfigClass::getLocalParamDBPath().$linkedParamId.".xml";  
168 - $paramsData->addParamToCopy($real_linked_param_id,$linkedParamPath);  
169 - $this->addLinkedLocalParams($linkedParamId, $paramsData); 170 + $paramsData->addParamToCopy($linkedParamId,$linkedParamPath);
  171 + $this->addLinkedLocalParams($real_linked_param_id, $paramsData);
170 } 172 }
171 } 173 }
172 174