allow Smarty use on international templates

This commit is contained in:
Zach Prezkuta
2013-01-10 21:46:48 -07:00
parent eb6c46a303
commit bce29054b9
8 changed files with 43 additions and 78 deletions

View File

@@ -384,8 +384,14 @@ if(! class_exists('App')) {
'template_engine' => 'internal',
);
public $smarty3_ldelim = '{{';
public $smarty3_rdelim = '}}';
private $ldelim = array(
'internal' => '',
'smarty3' => '{{'
);
private $rdelim = array(
'internal' => '',
'smarty3' => '}}'
);
private $scheme;
private $hostname;
@@ -623,7 +629,7 @@ if(! class_exists('App')) {
// replacing $stylesheet until later, we need to replace it now
// with another variable name
if($this->theme['template_engine'] === 'smarty3')
$stylesheet = $this->smarty3_ldelim . '$stylesheet' . $this->smarty3_rdelim;
$stylesheet = $this->get_template_ldelim('smarty3') . '$stylesheet' . $this->get_template_rdelim('smarty3');
else
$stylesheet = '$stylesheet';
@@ -695,6 +701,31 @@ if(! class_exists('App')) {
return $this->cached_profile_image[$avatar_image];
}
function get_template_engine() {
return $this->theme['template_engine'];
}
function set_template_engine($engine = 'internal') {
$this->theme['template_engine'] = 'internal';
switch($engine) {
case 'smarty3':
if(is_writable('view/smarty3/'))
$this->theme['template_engine'] = 'smarty3';
break;
default:
break;
}
}
function get_template_ldelim($engine = 'internal') {
return $this->ldelim[$engine];
}
function get_template_rdelim($engine = 'internal') {
return $this->rdelim[$engine];
}
}
}
@@ -847,10 +878,6 @@ if(! function_exists('check_config')) {
$retval = $func();
if($retval) {
//send the administrator an e-mail
$engine = get_app()->get_template_engine();
get_app()->set_template_engine();
$email_tpl = get_intltext_template("update_fail_eml.tpl");
$email_msg = replace_macros($email_tpl, array(
'$sitename' => $a->config['sitename'],
@@ -858,9 +885,6 @@ if(! function_exists('check_config')) {
'$update' => $x,
'$error' => sprintf( t('Update %s failed. See error logs.'), $x)
));
get_app()->set_template_engine($engine);
$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
require_once('include/email.php');
$subject = email_header_encode($subject,'UTF-8');
@@ -1205,7 +1229,7 @@ if(! function_exists('profile_load')) {
* load/reload current theme info
*/
set_template_engine($a); // reset the template engine to the default in case the user's theme doesn't specify one
$a->set_template_engine(); // reset the template engine to the default in case the user's theme doesn't specify one
$theme_info_file = "view/theme/".current_theme()."/theme.php";
if (file_exists($theme_info_file)){
@@ -1968,20 +1992,9 @@ function clear_cache($basepath = "", $path = "") {
}
function set_template_engine(&$a, $engine = 'internal') {
// This function is no longer necessary, but keep it as a wrapper to the class method
// to avoid breaking themes again unnecessarily
$a->theme['template_engine'] = 'internal';
if(is_writable('view/smarty3/')) {
switch($engine) {
case 'smarty3':
$a->theme['template_engine'] = 'smarty3';
break;
default:
break;
}
}
$a->set_template_engine($engine);
}
function get_template_engine($a) {
return $a->theme['template_engine'];
}