diff --git a/boot.php b/boot.php index ecf199d433..4ea5a49762 100644 --- a/boot.php +++ b/boot.php @@ -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']; -} \ No newline at end of file diff --git a/include/friendica_smarty.php b/include/friendica_smarty.php index 9ad14ad8a4..b3f0d18a01 100644 --- a/include/friendica_smarty.php +++ b/include/friendica_smarty.php @@ -24,8 +24,11 @@ class FriendicaSmarty extends Smarty { $this->setConfigDir('view/smarty3/config/'); $this->setCacheDir('view/smarty3/cache/'); - $this->left_delimiter = $a->smarty3_ldelim; - $this->right_delimiter = $a->smarty3_rdelim; + $this->left_delimiter = $a->get_template_ldelim('smarty3'); + $this->right_delimiter = $a->get_template_rdelim('smarty3'); + + // Don't report errors so verbosely + $this->error_reporting = E_ALL & ~E_NOTICE; } function parsed($template = '') { diff --git a/include/items.php b/include/items.php index f65032c968..b465c444ed 100755 --- a/include/items.php +++ b/include/items.php @@ -3361,10 +3361,6 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) { } if(($r[0]['notify-flags'] & NOTIFY_INTRO) && ($r[0]['page-flags'] == PAGE_NORMAL)) { - - $engine = get_app()->get_template_engine(); - get_app()->set_template_engine(); - $email_tpl = get_intltext_template('follow_notify_eml.tpl'); $email = replace_macros($email_tpl, array( '$requestor' => ((strlen($name)) ? $name : t('[Name Withheld]')), @@ -3373,9 +3369,6 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) { '$siteurl' => $a->get_baseurl(), '$sitename' => $a->config['sitename'] )); - - get_app()->set_template_engine($engine); - $res = mail($r[0]['email'], email_header_encode((($sharing) ? t('A new person is sharing with you at ') : t("You have a new follower at ")) . $a->config['sitename'],'UTF-8'), $email, diff --git a/include/text.php b/include/text.php index 1d74d9cf5c..628da1c1b2 100644 --- a/include/text.php +++ b/include/text.php @@ -23,7 +23,6 @@ function replace_macros($s,$r) { if(gettype($s) === 'string') { $template = $s; $s = new FriendicaSmarty(); - $s->error_reporting = E_ALL & ~E_NOTICE; } foreach($r as $key=>$value) { if($key[0] === '$') { diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 64fd6df2fd..769036c5e0 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -737,11 +737,6 @@ function dfrn_confirm_post(&$a,$handsfree = null) { ? get_intltext_template('friend_complete_eml.tpl') : get_intltext_template('intro_complete_eml.tpl')); - - $engine = get_app()->get_template_engine(); - get_app()->set_template_engine(); - - $email_tpl = replace_macros($tpl, array( '$sitename' => $a->config['sitename'], '$siteurl' => $a->get_baseurl(), @@ -751,10 +746,6 @@ function dfrn_confirm_post(&$a,$handsfree = null) { '$dfrn_url' => $r[0]['url'], '$uid' => $newuid ) ); - - - get_app()->set_template_engine($engine); - require_once('include/email.php'); $res = mail($r[0]['email'], email_header_encode( sprintf( t("Connection accepted at %s") , $a->config['sitename']),'UTF-8'), diff --git a/mod/install.php b/mod/install.php index 91725cf2ff..7247ebb2c1 100755 --- a/mod/install.php +++ b/mod/install.php @@ -73,9 +73,6 @@ function install_post(&$a) { // connect to db $db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true); - // disable smarty for this template - $engine = $a->get_template_engine(); - $a->set_template_engine(); $tpl = get_intltext_template('htconfig.tpl'); $txt = replace_macros($tpl,array( '$dbhost' => $dbhost, @@ -87,7 +84,6 @@ function install_post(&$a) { '$phpath' => $phpath, '$adminmail' => $adminmail )); - $a->set_template_engine($engine); $result = file_put_contents('.htconfig.php', $txt); if(! $result) { diff --git a/mod/lostpass.php b/mod/lostpass.php index ac67f8b20a..cc31efd973 100644 --- a/mod/lostpass.php +++ b/mod/lostpass.php @@ -32,9 +32,6 @@ function lostpass_post(&$a) { if($r) info( t('Password reset request issued. Check your email.') . EOL); - $engine = get_app()->get_template_engine(); - get_app()->set_template_engine(); - $email_tpl = get_intltext_template("lostpass_eml.tpl"); $email_tpl = replace_macros($email_tpl, array( '$sitename' => $a->config['sitename'], @@ -44,8 +41,6 @@ function lostpass_post(&$a) { '$reset_link' => $a->get_baseurl() . '/lostpass?verify=' . $new_password )); - get_app()->set_template_engine($engine); - $res = mail($email, email_header_encode(sprintf( t('Password reset requested at %s'),$a->config['sitename']),'UTF-8'), $email_tpl, 'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n" @@ -99,8 +94,6 @@ function lostpass_content(&$a) { info("Your password has been reset." . EOL); - $engine = get_app()->get_template_engine(); - get_app()->set_template_engine(); $email_tpl = get_intltext_template("passchanged_eml.tpl"); $email_tpl = replace_macros($email_tpl, array( @@ -111,8 +104,6 @@ function lostpass_content(&$a) { '$new_password' => $new_password, '$uid' => $newuid )); - get_app()->set_template_engine($engine); - $subject = sprintf( t('Your password has been changed at %s'), $a->config['sitename']); $res = mail($email, email_header_encode( $subject, 'UTF-8'), $email_tpl, diff --git a/mod/register.php b/mod/register.php index 580101924c..3532f92e8d 100644 --- a/mod/register.php +++ b/mod/register.php @@ -79,10 +79,6 @@ function register_post(&$a) { set_pconfig($user['uid'],'system','invites_remaining',$num_invites); } - $engine = get_app()->get_template_engine(); - get_app()->set_template_engine(); - - $email_tpl = get_intltext_template("register_open_eml.tpl"); $email_tpl = replace_macros($email_tpl, array( '$sitename' => $a->config['sitename'], @@ -92,10 +88,6 @@ function register_post(&$a) { '$password' => $result['password'], '$uid' => $user['uid'] )); - - get_app()->set_template_engine($engine); - - $res = mail($user['email'], email_header_encode( sprintf( t('Registration details for %s'), $a->config['sitename']),'UTF-8'), $email_tpl, 'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n" @@ -139,10 +131,6 @@ function register_post(&$a) { set_pconfig($user['uid'],'system','invites_remaining',$num_invites); } - - $engine = get_app()->get_template_engine(); - get_app()->set_template_engine(); - $email_tpl = get_intltext_template("register_verify_eml.tpl"); $email_tpl = replace_macros($email_tpl, array( '$sitename' => $a->config['sitename'], @@ -154,9 +142,6 @@ function register_post(&$a) { '$hash' => $hash )); - get_app()->set_template_engine($engine); - - $res = mail($a->config['admin_email'], email_header_encode( sprintf(t('Registration request at %s'), $a->config['sitename']),'UTF-8'), $email_tpl, 'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n" diff --git a/mod/regmod.php b/mod/regmod.php index 73bfc597b5..5ed7642005 100644 --- a/mod/regmod.php +++ b/mod/regmod.php @@ -41,9 +41,6 @@ function user_allow($hash) { push_lang($register[0]['language']); - $engine = get_app()->get_template_engine(); - get_app()->set_template_engine(); - $email_tpl = get_intltext_template("register_open_eml.tpl"); $email_tpl = replace_macros($email_tpl, array( '$sitename' => $a->config['sitename'], @@ -54,10 +51,6 @@ function user_allow($hash) { '$uid' => $user[0]['uid'] )); - - get_app()->set_template_engine($engine); - - $res = mail($user[0]['email'], email_header_encode( sprintf(t('Registration details for %s'), $a->config['sitename']), 'UTF-8'), $email_tpl, 'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n" diff --git a/mods/friendica-to-smarty-tpl.py b/mods/friendica-to-smarty-tpl.py index 6037d04ea2..ff1a102a44 100755 --- a/mods/friendica-to-smarty-tpl.py +++ b/mods/friendica-to-smarty-tpl.py @@ -77,7 +77,7 @@ def fix_element(element): if parts[first+1][0] == '$': # This takes care of elements where the filename is a variable, e.g. {{ inc $file }} - element += 'file:' + ldelim + parts[first+1].rstrip('}') + rdelim + element += ldelim + parts[first+1].rstrip('}') + rdelim else: # This takes care of elements where the filename is a path, e.g. {{ inc file.tpl }} element += parts[first+1].rstrip('}') @@ -189,10 +189,14 @@ for a_file in files: filename = os.path.join(path,a_file) ext = a_file.split('.')[-1] if os.path.isfile(filename) and ext == 'tpl': - with open(filename, 'r') as f: - newfilename = os.path.join(outpath,a_file) - with open(newfilename, 'w') as outf: - print "Converting " + filename + " to " + newfilename - convert(f, outf, php_tpl) + f = open(filename, 'r') + newfilename = os.path.join(outpath,a_file) + outf = open(newfilename, 'w') + + print "Converting " + filename + " to " + newfilename + convert(f, outf, php_tpl) + + outf.close() + f.close() diff --git a/view/smarty3/conversation.tpl b/view/smarty3/conversation.tpl index ce5dc5a2f6..ae5294a9ae 100644 --- a/view/smarty3/conversation.tpl +++ b/view/smarty3/conversation.tpl @@ -11,7 +11,7 @@ {{/if}} {{if $item.comment_lastcollapsed}}{{/if}} - {{include file="file:{{$item.template}}"}} + {{include file="{{$item.template}}"}} {{/foreach}} diff --git a/view/smarty3/register.tpl b/view/smarty3/register.tpl index 768ca93878..4d9abe11df 100644 --- a/view/smarty3/register.tpl +++ b/view/smarty3/register.tpl @@ -11,9 +11,9 @@

{{$fillwith}}

{{$fillext}}

-{{if $oidlabel }} +{{if $oidlabel}}
- +
{{/if}} diff --git a/view/smarty3/threaded_conversation.tpl b/view/smarty3/threaded_conversation.tpl index 0830063c61..f77cac8de2 100644 --- a/view/smarty3/threaded_conversation.tpl +++ b/view/smarty3/threaded_conversation.tpl @@ -1,7 +1,7 @@ {{$live_update}} {{foreach $threads as $thread}} -{{include file="file:{{$thread.template}}" item=$thread}} +{{include file="{{$thread.template}}" item=$thread}} {{/foreach}}
diff --git a/view/smarty3/wall_thread.tpl b/view/smarty3/wall_thread.tpl index c1fed91bab..3010f659f7 100644 --- a/view/smarty3/wall_thread.tpl +++ b/view/smarty3/wall_thread.tpl @@ -108,7 +108,7 @@
{{foreach $item.children as $child}} - {{include file="file:{{$child.template}}" item=$child}} + {{include file="{{$child.template}}" item=$child}} {{/foreach}} {{if $item.flatten}} diff --git a/view/theme/dispy/smarty3/conversation.tpl b/view/theme/dispy/smarty3/conversation.tpl index 302f7172b5..6461955e74 100644 --- a/view/theme/dispy/smarty3/conversation.tpl +++ b/view/theme/dispy/smarty3/conversation.tpl @@ -11,7 +11,7 @@ {{/if}} {{if $item.comment_lastcollapsed}}{{/if}} - {{include file="file:{{$item.template}}"}} + {{include file="{{$item.template}}"}} {{/foreach}} diff --git a/view/theme/dispy/smarty3/threaded_conversation.tpl b/view/theme/dispy/smarty3/threaded_conversation.tpl index 367698beeb..fdca3e5574 100644 --- a/view/theme/dispy/smarty3/threaded_conversation.tpl +++ b/view/theme/dispy/smarty3/threaded_conversation.tpl @@ -1,7 +1,7 @@ {{$live_update}} {{foreach $threads as $thread}} -{{include file="file:{{$thread.template}}" item=$thread}} +{{include file="{{$thread.template}}" item=$thread}} {{/foreach}}
diff --git a/view/theme/dispy/smarty3/wall_thread.tpl b/view/theme/dispy/smarty3/wall_thread.tpl index b0de88e34a..a0b818d070 100644 --- a/view/theme/dispy/smarty3/wall_thread.tpl +++ b/view/theme/dispy/smarty3/wall_thread.tpl @@ -132,7 +132,7 @@ class="icon recycle wall-item-share-buttons" title="{{$item.vote.share.0}}" onc
{{foreach $item.children as $child}} - {{include file="file:{{$child.template}}" item=$child}} + {{include file="{{$child.template}}" item=$child}} {{/foreach}} diff --git a/view/theme/frost-mobile/smarty3/conversation.tpl b/view/theme/frost-mobile/smarty3/conversation.tpl index aa6bee0ea5..844d948917 100644 --- a/view/theme/frost-mobile/smarty3/conversation.tpl +++ b/view/theme/frost-mobile/smarty3/conversation.tpl @@ -11,7 +11,7 @@ {{/if}} {{if $item.comment_lastcollapsed}}{{/if}} - {{include file="file:{{$item.template}}"}} + {{include file="{{$item.template}}"}} {{/foreach}} diff --git a/view/theme/frost-mobile/smarty3/register.tpl b/view/theme/frost-mobile/smarty3/register.tpl index bc0ce4cc9c..a224721dd1 100644 --- a/view/theme/frost-mobile/smarty3/register.tpl +++ b/view/theme/frost-mobile/smarty3/register.tpl @@ -11,9 +11,9 @@

{{$realpeople}}


-{{if $oidlabel }} +{{if $oidlabel}}
- +
{{/if}} diff --git a/view/theme/frost-mobile/smarty3/threaded_conversation.tpl b/view/theme/frost-mobile/smarty3/threaded_conversation.tpl index 0c96b30e3e..d5bbf06a6b 100644 --- a/view/theme/frost-mobile/smarty3/threaded_conversation.tpl +++ b/view/theme/frost-mobile/smarty3/threaded_conversation.tpl @@ -1,7 +1,7 @@ {{$live_update}} {{foreach $threads as $thread}} -{{include file="file:{{$thread.template}}" item=$thread}} +{{include file="{{$thread.template}}" item=$thread}} {{/foreach}}
diff --git a/view/theme/frost-mobile/smarty3/wall_thread.tpl b/view/theme/frost-mobile/smarty3/wall_thread.tpl index e1a0aa868e..6359768837 100644 --- a/view/theme/frost-mobile/smarty3/wall_thread.tpl +++ b/view/theme/frost-mobile/smarty3/wall_thread.tpl @@ -113,7 +113,7 @@ {{foreach $item.children as $child}} - {{include file="file:{{$child.template}}" item=$child}} + {{include file="{{$child.template}}" item=$child}} {{/foreach}} {{if $item.flatten}} diff --git a/view/theme/frost/smarty3/acl_selector.tpl b/view/theme/frost/smarty3/acl_selector.tpl index f3b1abea7c..361bf8843a 100644 --- a/view/theme/frost/smarty3/acl_selector.tpl +++ b/view/theme/frost/smarty3/acl_selector.tpl @@ -9,7 +9,6 @@ diff --git a/view/theme/frost/smarty3/register.tpl b/view/theme/frost/smarty3/register.tpl index 72b628f39d..0f9765063e 100644 --- a/view/theme/frost/smarty3/register.tpl +++ b/view/theme/frost/smarty3/register.tpl @@ -11,9 +11,9 @@

{{$realpeople}}


-{{if $oidlabel }} +{{if $oidlabel}}
- +
{{/if}} diff --git a/view/theme/frost/smarty3/threaded_conversation.tpl b/view/theme/frost/smarty3/threaded_conversation.tpl index 680a201eef..c61de4f53a 100644 --- a/view/theme/frost/smarty3/threaded_conversation.tpl +++ b/view/theme/frost/smarty3/threaded_conversation.tpl @@ -13,7 +13,7 @@ {{$live_update}} {{foreach $threads as $thread}} -{{include file="file:{{$thread.template}}" item=$thread}} +{{include file="{{$thread.template}}" item=$thread}} {{/foreach}}
diff --git a/view/theme/frost/smarty3/wall_thread.tpl b/view/theme/frost/smarty3/wall_thread.tpl index a0c576b18b..4b28c218fe 100644 --- a/view/theme/frost/smarty3/wall_thread.tpl +++ b/view/theme/frost/smarty3/wall_thread.tpl @@ -112,7 +112,7 @@ {{foreach $item.children as $child}} - {{include file="file:{{$child.template}}" item=$child}} + {{include file="{{$child.template}}" item=$child}} {{/foreach}} {{if $item.flatten}} diff --git a/view/theme/quattro/smarty3/conversation.tpl b/view/theme/quattro/smarty3/conversation.tpl index f22b11a751..b812d533a3 100644 --- a/view/theme/quattro/smarty3/conversation.tpl +++ b/view/theme/quattro/smarty3/conversation.tpl @@ -17,7 +17,7 @@ {{if $item.type == tag}} {{include file="wall_item_tag.tpl"}} {{else}} - {{include file="file:{{$item.template}}"}} + {{include file="{{$item.template}}"}} {{/if}} {{/foreach}} diff --git a/view/theme/quattro/smarty3/threaded_conversation.tpl b/view/theme/quattro/smarty3/threaded_conversation.tpl index a7516a8a31..158c30d6bd 100644 --- a/view/theme/quattro/smarty3/threaded_conversation.tpl +++ b/view/theme/quattro/smarty3/threaded_conversation.tpl @@ -8,7 +8,7 @@ {{if $thread.type == tag}} {{include file="wall_item_tag.tpl" item=$thread}} {{else}} - {{include file="file:{{$thread.template}}" item=$thread}} + {{include file="{{$thread.template}}" item=$thread}} {{/if}} diff --git a/view/theme/quattro/smarty3/wall_thread.tpl b/view/theme/quattro/smarty3/wall_thread.tpl index 68e6d5d102..f6068d330a 100644 --- a/view/theme/quattro/smarty3/wall_thread.tpl +++ b/view/theme/quattro/smarty3/wall_thread.tpl @@ -149,7 +149,7 @@ {{if $child.type == tag}} {{include file="wall_item_tag.tpl" item=$child}} {{else}} - {{include file="file:{{$item.template}}" item=$child}} + {{include file="{{$item.template}}" item=$child}} {{/if}} {{/foreach}} diff --git a/view/theme/smoothly/smarty3/wall_thread.tpl b/view/theme/smoothly/smarty3/wall_thread.tpl index b0538b9791..2d329e712e 100644 --- a/view/theme/smoothly/smarty3/wall_thread.tpl +++ b/view/theme/smoothly/smarty3/wall_thread.tpl @@ -148,7 +148,7 @@
{{foreach $item.children as $child}} - {{include file="file:{{$child.template}}" item=$child}} + {{include file="{{$child.template}}" item=$child}} {{/foreach}} {{if $item.flatten}} diff --git a/view/theme/testbubble/smarty3/wall_thread.tpl b/view/theme/testbubble/smarty3/wall_thread.tpl index 8a0150e5b0..82ceb23b98 100644 --- a/view/theme/testbubble/smarty3/wall_thread.tpl +++ b/view/theme/testbubble/smarty3/wall_thread.tpl @@ -95,7 +95,7 @@
{{foreach $item.children as $child}} - {{include file="file:{{$child.template}}" item=$child}} + {{include file="{{$child.template}}" item=$child}} {{/foreach}} {{if $item.flatten}} diff --git a/view/theme/vier/smarty3/threaded_conversation.tpl b/view/theme/vier/smarty3/threaded_conversation.tpl index a7516a8a31..158c30d6bd 100644 --- a/view/theme/vier/smarty3/threaded_conversation.tpl +++ b/view/theme/vier/smarty3/threaded_conversation.tpl @@ -8,7 +8,7 @@ {{if $thread.type == tag}} {{include file="wall_item_tag.tpl" item=$thread}} {{else}} - {{include file="file:{{$thread.template}}" item=$thread}} + {{include file="{{$thread.template}}" item=$thread}} {{/if}} diff --git a/view/theme/vier/smarty3/wall_thread.tpl b/view/theme/vier/smarty3/wall_thread.tpl index 386164f18c..e2d55113dc 100644 --- a/view/theme/vier/smarty3/wall_thread.tpl +++ b/view/theme/vier/smarty3/wall_thread.tpl @@ -150,7 +150,7 @@ {{if $item.type == tag}} {{include file="wall_item_tag.tpl" item=$child}} {{else}} - {{include file="file:{{$item.template}}" item=$child}} + {{include file="{{$item.template}}" item=$child}} {{/if}} {{/foreach}}