Commit d1a35428381d09467c0422fb8521ba5f8a6a425f

Authored by Benjamin Renard
1 parent cb46dfbf

Update template arguments when a templated parameter is used by a local parameter (fix #6462)

Showing 1 changed file with 8 additions and 4 deletions   Show diff stats
src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php
... ... @@ -24,7 +24,7 @@ class IHMParamManagerClass
24 24 * @brief Add an existing parameter
25 25 */
26 26 public function addExistingParam($param, $paramsData, $templateArgs = NULL, $tableLink = NULL)
27   - {
  27 + {
28 28 if ($this->isDerivedParam($param))
29 29 return $this->addDerivedParam($param,$paramsData);
30 30 else if ($this->isUploadedParam($param))
... ... @@ -157,6 +157,7 @@ class IHMParamManagerClass
157 157 if (empty($linkedParamId))
158 158 continue;
159 159 $template_id = $this->templateParamsManager->getTemplateId($linkedParamId);
  160 + $tempArgs = isset($templateArgs) ? $templateArgs : array();
160 161 if ($template_id !== FALSE) {
161 162 $linkedParamId = $template_id;
162 163 }
... ... @@ -165,12 +166,15 @@ class IHMParamManagerClass
165 166 $parsedParam = $this->templateParamsManager->parseTemplatedParam($linkedParamId);
166 167 if ($parsedParam !== FALSE) {
167 168 $linkedParamId = $parsedParam['paramid'];
  169 + foreach ($parsedParam['template_args'] as $key => $val) {
  170 + $tempArgs[$key] = $val;
  171 + }
168 172 }
169 173 }
170 174  
171 175 if ($this->templateParamsManager->isTemplatedParam($linkedParamId)) {
172   - $linkedParamPath = $this->templateParamsManager->generateTemplatedParamFile($linkedParamId, $templateArgs);
173   - $real_linked_param_id = $this->templateParamsManager->getTemplatedParamId($linkedParamId, $templateArgs);
  176 + $linkedParamPath = $this->templateParamsManager->generateTemplatedParamFile($linkedParamId, $tempArgs);
  177 + $real_linked_param_id = $this->templateParamsManager->getTemplatedParamId($linkedParamId, $tempArgs);
174 178 }
175 179 else {
176 180 $real_linked_param_id = $linkedParamId;
... ... @@ -210,7 +214,7 @@ class IHMParamManagerClass
210 214  
211 215 return array("id" => $paramId, "indexes" => array(), "calib_infos" => array());
212 216 }
213   -
  217 +
214 218 /*
215 219 * @brief Add IMPEX parameter : create dynamically xml parameter descriptor in user WS
216 220 */
... ...