CRM-11900 - Fix tpl variables messed up by smarty.help
authorColeman Watts <coleman@civicrm.org>
Sun, 1 Mar 2015 01:09:22 +0000 (20:09 -0500)
committerColeman Watts <coleman@civicrm.org>
Mon, 2 Mar 2015 15:55:20 +0000 (10:55 -0500)
CRM/Core/Smarty/plugins/function.help.php

index d070f3e939f10c1e58dc418bef5916f11e3e08d4..ec044bcaa93ff1dd57c665ba4cb58c24514fab0b 100644 (file)
@@ -59,15 +59,19 @@ function smarty_function_help($params, &$smarty) {
   $params['file'] = str_replace(array('.tpl', '.hlp'), '', $params['file']);
 
   if (empty($params['title'])) {
-    // Avod overwriting existing vars CRM-11900
-    $oldID = $smarty->get_template_vars('id');
+    $vars = $smarty->get_template_vars();
     $smarty->assign('id', $params['id'] . '-title');
     $name = trim($smarty->fetch($params['file'] . '.hlp'));
     $additionalTPLFile = $params['file'] . '.extra.hlp';
     if ($smarty->template_exists($additionalTPLFile)) {
       $name .= trim($smarty->fetch($additionalTPLFile));
     }
-    $smarty->assign('id', $oldID);
+    // Ensure we didn't change any existing vars CRM-11900
+    foreach ($vars as $key => $value) {
+      if ($smarty->get_template_vars($key) !== $value) {
+        $smarty->assign($key, $value);
+      }
+    }
   }
   else {
     $name = trim(strip_tags($params['title']));