Commit 7911f4bc35b129b99c615a7987e60c8dffa1a1fe
1 parent
cd3326be
Exists in
master
and in
66 other branches
Another bug with linked parameters
Showing
2 changed files
with
25 additions
and
9 deletions
Show diff stats
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 | * |
... | ... |