diff --git a/config/config.inc.php b/config/config.inc.php index d7c6c8c51..ce8fcf12e 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -162,14 +162,10 @@ define('_PS_OS_PAYPAL_', Configuration::get('PS_OS_PAYPAL')); define('_PS_OS_WS_PAYMENT_', Configuration::get('PS_OS_WS_PAYMENT')); /* Smarty */ -if (!defined('_PS_ADMIN_DIR_')) - require_once(dirname(__FILE__).'/smarty.config.inc.php'); -else - require_once(dirname(__FILE__).'/smartyadmin.config.inc.php'); +require_once(dirname(__FILE__).'/smarty.config.inc.php'); Context::getContext()->smarty = $smarty; /* Possible value are true, false, 'URL' (for 'URL' append SMARTY_DEBUG as a parameter to the url) default is false for production environment */ -define('SMARTY_DEBUG_CONSOLE', false); - +define('SMARTY_DEBUG_CONSOLE', false); \ No newline at end of file diff --git a/config/smarty.config.inc.php b/config/smarty.config.inc.php index ccc35ceac..073f641ac 100644 --- a/config/smarty.config.inc.php +++ b/config/smarty.config.inc.php @@ -31,7 +31,6 @@ require_once(_PS_SMARTY_DIR_.'Smarty.class.php'); global $smarty; $smarty = new Smarty(); -$smarty->template_dir = _PS_THEME_DIR_.'tpl'; $smarty->compile_dir = _PS_CACHE_DIR_.'smarty/compile'; $smarty->cache_dir = _PS_CACHE_DIR_.'smarty/cache'; $smarty->config_dir = _PS_SMARTY_DIR_.'configs'; @@ -41,6 +40,11 @@ $smarty->compile_check = (Configuration::get('PS_SMARTY_FORCE_COMPILE') == _PS_S $smarty->debugging = false; $smarty->debugging_ctrl = 'URL'; // 'NONE' on production +if (defined('_PS_ADMIN_DIR_')) + require_once (dirname(__FILE__).'/smartyadmin.config.inc.php'); +else + require_once (dirname(__FILE__).'/smartyfront.config.inc.php'); + if (Configuration::get('PS_HTML_THEME_COMPRESSION')) $smarty->registerFilter('output', 'smartyMinifyHTML'); if (Configuration::get('PS_JS_HTML_THEME_COMPRESSION')) @@ -63,51 +67,6 @@ smartyRegisterFunction($smarty, 'function', 'displayWtPriceWithCurrency', array( smartyRegisterFunction($smarty, 'function', 'displayPrice', array('Tools', 'displayPriceSmarty')); smartyRegisterFunction($smarty, 'modifier', 'convertAndFormatPrice', array('Product', 'convertAndFormatPrice')); // used twice -function smartyTranslate($params, &$smarty) -{ - global $_LANG, $_MODULES, $cookie, $_MODULE; - if (!isset($params['js'])) $params['js'] = 0; - if (!isset($params['mod'])) $params['mod'] = false; - - $string = str_replace('\'', '\\\'', $params['s']); - $filename = ((!isset($smarty->compiler_object) OR !is_object($smarty->compiler_object->template)) ? $smarty->template_resource : $smarty->compiler_object->template->getTemplateFilepath()); - $key = Tools::substr(basename($filename), 0, -4).'_'.md5($string); - $lang_array = $_LANG; - if ($params['mod']) - { - $iso = Language::getIsoById($cookie->id_lang); - - if (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$params['mod'].'/'.$iso.'.php')) - { - $translationsFile = _PS_THEME_DIR_.'modules/'.$params['mod'].'/'.$iso.'.php'; - $key = '<{'.$params['mod'].'}'._THEME_NAME_.'>'.$key; - } - else - { - $translationsFile = _PS_MODULE_DIR_.$params['mod'].'/'.$iso.'.php'; - $key = '<{'.$params['mod'].'}prestashop>'.$key; - } - - if(!is_array($_MODULES)) - $_MODULES = array(); - if (@include_once($translationsFile)) - if(is_array($_MODULE)) - $_MODULES = array_merge($_MODULES, $_MODULE); - $lang_array = $_MODULES; - } - - if (is_array($lang_array) AND key_exists($key, $lang_array)) - $msg = $lang_array[$key]; - elseif (is_array($lang_array) AND key_exists(Tools::strtolower($key), $lang_array)) - $msg = $lang_array[Tools::strtolower($key)]; - else - $msg = $params['s']; - - if ($msg != $params['s']) - $msg = $params['js'] ? addslashes($msg) : stripslashes($msg); - return $params['js'] ? $msg : Tools::htmlentitiesUTF8($msg); -} - function smartyDieObject($params, &$smarty) { return Tools::d($params['var']); @@ -160,6 +119,10 @@ function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_wo return $string; } +function smarty_modifier_htmlentitiesUTF8($string) +{ + return Tools::htmlentitiesUTF8($string); +} function smartyMinifyHTML($tpl_output, &$smarty) { $tpl_output = Media::minifyHTML($tpl_output); diff --git a/config/smartyfront.config.inc.php b/config/smartyfront.config.inc.php new file mode 100644 index 000000000..0716c4e52 --- /dev/null +++ b/config/smartyfront.config.inc.php @@ -0,0 +1,73 @@ + +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 6844 $ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ +global $smarty; +$smarty->template_dir = _PS_THEME_DIR_.'tpl'; + +function smartyTranslate($params, &$smarty) +{ + global $_LANG, $_MODULES, $cookie, $_MODULE; + if (!isset($params['js'])) $params['js'] = 0; + if (!isset($params['mod'])) $params['mod'] = false; + + $string = str_replace('\'', '\\\'', $params['s']); + $filename = ((!isset($smarty->compiler_object) OR !is_object($smarty->compiler_object->template)) ? $smarty->template_resource : $smarty->compiler_object->template->getTemplateFilepath()); + $key = Tools::substr(basename($filename), 0, -4).'_'.md5($string); + $lang_array = $_LANG; + if ($params['mod']) + { + $iso = Language::getIsoById($cookie->id_lang); + + if (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$params['mod'].'/'.$iso.'.php')) + { + $translationsFile = _PS_THEME_DIR_.'modules/'.$params['mod'].'/'.$iso.'.php'; + $key = '<{'.$params['mod'].'}'._THEME_NAME_.'>'.$key; + } + else + { + $translationsFile = _PS_MODULE_DIR_.$params['mod'].'/'.$iso.'.php'; + $key = '<{'.$params['mod'].'}prestashop>'.$key; + } + + if(!is_array($_MODULES)) + $_MODULES = array(); + if (@include_once($translationsFile)) + if(is_array($_MODULE)) + $_MODULES = array_merge($_MODULES, $_MODULE); + $lang_array = $_MODULES; + } + + if (is_array($lang_array) AND key_exists($key, $lang_array)) + $msg = $lang_array[$key]; + elseif (is_array($lang_array) AND key_exists(Tools::strtolower($key), $lang_array)) + $msg = $lang_array[Tools::strtolower($key)]; + else + $msg = $params['s']; + + if ($msg != $params['s']) + $msg = $params['js'] ? addslashes($msg) : stripslashes($msg); + return $params['js'] ? $msg : Tools::htmlentitiesUTF8($msg); +}