Update smarty localize for Smarty3
authorEileen McNaughton <emcnaughton@wikimedia.org>
Wed, 11 Oct 2023 01:50:09 +0000 (14:50 +1300)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Wed, 11 Oct 2023 01:56:40 +0000 (14:56 +1300)
CRM/Core/Smarty/plugins/block.localize.php

index 47e64fe6be3d8debb359f04258db0754f64cb943..6b7f357d85eee7ab1a516948c82625fe9eb32787 100644 (file)
  * @return string
  *   multilingualized query
  */
-function smarty_block_localize($params, $text, &$smarty, &$repeat) {
+function smarty_block_localize($params, $text, $smarty, &$repeat) {
   if ($repeat) {
     // For opening tag text is always null
     return '';
   }
-
-  if (!array_key_exists('multilingual', $smarty->_tpl_vars) || !$smarty->_tpl_vars['multilingual']) {
+  $multiLingual = method_exists($smarty, 'get_template_vars') ? $smarty->get_template_vars('multilingual') : $smarty->getTemplateVars('multilingual');
+  if (!$multiLingual) {
     return $text;
   }
 
   $lines = [];
-  foreach ($smarty->_tpl_vars['locales'] as $locale) {
+  $locales = (array) (method_exists($smarty, 'get_template_vars') ? $smarty->get_template_vars('locales') : $smarty->getTemplateVars('locales'));
+  foreach ($locales as $locale) {
     $line = $text;
     if (isset($params['field'])) {
       $fields = explode(',', $params['field']);