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 132 $real_param_id = $paramId;
133 133 if ($this->templateParamsManager->isTemplatedParam($paramId)) {
134 134 $paramPath = $this->templateParamsManager->getTemplatePath($paramId);
135   - $real_param_id = $this->templateParamsManager->getTemplatedParamId($paramId, $templateArgs);
136 135 if (empty($paramPath) || !$doc->load($paramPath))
137 136 throw new Exception('Cannot find parameter template file '.$paramPath);
138 137 }
... ... @@ -158,17 +157,21 @@ class IHMParamManagerClass
158 157 $linkedParamId = $amdaParamNode->getAttribute('name');
159 158 if (empty($linkedParamId))
160 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 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 192 return "";
193 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 *
... ...