[-] FO: FIX #PSCFV-5703 quotes in modules translations break javascript execution
This commit is contained in:
@@ -116,7 +116,7 @@ class TranslateCore
|
|||||||
* @param string $source
|
* @param string $source
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function getModuleTranslation($module, $string, $source, $sprintf = null)
|
public static function getModuleTranslation($module, $string, $source, $sprintf = null, $js = false)
|
||||||
{
|
{
|
||||||
global $_MODULES, $_MODULE, $_LANGADM;
|
global $_MODULES, $_MODULE, $_LANGADM;
|
||||||
|
|
||||||
@@ -126,7 +126,6 @@ class TranslateCore
|
|||||||
static $translations_merged = array();
|
static $translations_merged = array();
|
||||||
|
|
||||||
$name = $module instanceof Module ? $module->name : $module;
|
$name = $module instanceof Module ? $module->name : $module;
|
||||||
|
|
||||||
if (!isset($translations_merged[$name]))
|
if (!isset($translations_merged[$name]))
|
||||||
{
|
{
|
||||||
$filesByPriority = array(
|
$filesByPriority = array(
|
||||||
@@ -175,6 +174,9 @@ class TranslateCore
|
|||||||
if ($sprintf !== null)
|
if ($sprintf !== null)
|
||||||
$ret = Translate::checkAndReplaceArgs($ret, $sprintf);
|
$ret = Translate::checkAndReplaceArgs($ret, $sprintf);
|
||||||
|
|
||||||
|
if ($js)
|
||||||
|
$ret = addslashes($ret);
|
||||||
|
|
||||||
$lang_cache[$cache_key] = str_replace('"', '"', $ret);
|
$lang_cache[$cache_key] = str_replace('"', '"', $ret);
|
||||||
}
|
}
|
||||||
return $lang_cache[$cache_key];
|
return $lang_cache[$cache_key];
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ function smartyTranslate($params, &$smarty)
|
|||||||
{
|
{
|
||||||
global $_LANG;
|
global $_LANG;
|
||||||
|
|
||||||
if (!isset($params['js'])) $params['js'] = 0;
|
if (!isset($params['js'])) $params['js'] = false;
|
||||||
if (!isset($params['pdf'])) $params['pdf'] = false;
|
if (!isset($params['pdf'])) $params['pdf'] = false;
|
||||||
if (!isset($params['mod'])) $params['mod'] = false;
|
if (!isset($params['mod'])) $params['mod'] = false;
|
||||||
if (!isset($params['sprintf'])) $params['sprintf'] = null;
|
if (!isset($params['sprintf'])) $params['sprintf'] = null;
|
||||||
@@ -45,7 +45,7 @@ function smartyTranslate($params, &$smarty)
|
|||||||
$key = 'override_'.$key;
|
$key = 'override_'.$key;
|
||||||
|
|
||||||
if ($params['mod'])
|
if ($params['mod'])
|
||||||
return Translate::getModuleTranslation($params['mod'], $params['s'], $basename, $params['sprintf']);
|
return Translate::getModuleTranslation($params['mod'], $params['s'], $basename, $params['sprintf'], $params['js']);
|
||||||
else if ($params['pdf'])
|
else if ($params['pdf'])
|
||||||
return Translate::getPdfTranslation($params['s']);
|
return Translate::getPdfTranslation($params['s']);
|
||||||
|
|
||||||
@@ -62,6 +62,6 @@ function smartyTranslate($params, &$smarty)
|
|||||||
if ($params['sprintf'] !== null)
|
if ($params['sprintf'] !== null)
|
||||||
$msg = Translate::checkAndReplaceArgs($msg, $params['sprintf']);
|
$msg = Translate::checkAndReplaceArgs($msg, $params['sprintf']);
|
||||||
|
|
||||||
return $params['js'] ? $msg : Tools::htmlentitiesUTF8($msg);
|
return $params['js'] ? $msg : addslashes($msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user