Commit 7911f4bc35b129b99c615a7987e60c8dffa1a1fe

Authored by Benjamin Renard
1 parent cd3326be

Another bug with linked parameters

src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php
@@ -132,7 +132,6 @@ class IHMParamManagerClass @@ -132,7 +132,6 @@ class IHMParamManagerClass
132 $real_param_id = $paramId; 132 $real_param_id = $paramId;
133 if ($this->templateParamsManager->isTemplatedParam($paramId)) { 133 if ($this->templateParamsManager->isTemplatedParam($paramId)) {
134 $paramPath = $this->templateParamsManager->getTemplatePath($paramId); 134 $paramPath = $this->templateParamsManager->getTemplatePath($paramId);
135 - $real_param_id = $this->templateParamsManager->getTemplatedParamId($paramId, $templateArgs);  
136 if (empty($paramPath) || !$doc->load($paramPath)) 135 if (empty($paramPath) || !$doc->load($paramPath))
137 throw new Exception('Cannot find parameter template file '.$paramPath); 136 throw new Exception('Cannot find parameter template file '.$paramPath);
138 } 137 }
@@ -158,17 +157,21 @@ class IHMParamManagerClass @@ -158,17 +157,21 @@ class IHMParamManagerClass
158 $linkedParamId = $amdaParamNode->getAttribute('name'); 157 $linkedParamId = $amdaParamNode->getAttribute('name');
159 if (empty($linkedParamId)) 158 if (empty($linkedParamId))
160 continue; 159 continue;
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"; 160 + $template_id = $this->templateParamsManager->getTemplateId($linkedParamId);
  161 + if ($template_id !== FALSE) {
  162 + $linkedParamId = $template_id;
  163 + }
  164 +
  165 + if ($this->templateParamsManager->isTemplatedParam($linkedParamId)) {
  166 + $linkedParamPath = $this->templateParamsManager->generateTemplatedParamFile($linkedParamId, $templateArgs);
  167 + $real_linked_param_id = $this->templateParamsManager->getTemplatedParamId($linkedParamId, $templateArgs);
165 } 168 }
166 else { 169 else {
167 - $real_linked_param_id = $parsed_param['paramid'];  
168 - $linkedParamPath = $this->templateParamsManager->generateTemplatedParamFile($real_linked_param_id, $templateArgs); 170 + $real_linked_param_id = $linkedParamId;
  171 + $linkedParamPath = IHMConfigClass::getLocalParamDBPath().$real_linked_param_id.".xml";
169 } 172 }
170 - $paramsData->addParamToCopy($linkedParamId,$linkedParamPath);  
171 - $this->addLinkedLocalParams($real_linked_param_id, $paramsData); 173 + $paramsData->addParamToCopy($real_linked_param_id,$linkedParamPath);
  174 + $this->addLinkedLocalParams($linkedParamId, $paramsData);
172 } 175 }
173 } 176 }
174 177
src/InputOutput/IHMImpl/Tools/IHMParamTemplateClass.php
@@ -192,6 +192,19 @@ class IHMParamTemplateClass @@ -192,6 +192,19 @@ class IHMParamTemplateClass
192 return ""; 192 return "";
193 return IHMConfigClass::getParamTemplateFilePath($this->paramTemplateList[$param_id]['fileName']); 193 return IHMConfigClass::getParamTemplateFilePath($this->paramTemplateList[$param_id]['fileName']);
194 } 194 }
  195 +
  196 + /*
  197 + * @brief Get template id by template file name
  198 + */
  199 + public function getTemplateId($template_name) {
  200 + $list = $this->getParamTemplates();
  201 + foreach ($list as $param_id => $param_info) {
  202 + if ($param_info['fileName'] == $template_name) {
  203 + return $param_id;
  204 + }
  205 + }
  206 + return FALSE;
  207 + }
195 208
196 /* 209 /*
197 * 210 *