// depending on the order in which they were declared in the array.
require_once("include/template_processor.php");
+require_once("include/friendica_smarty.php");
if(! function_exists('replace_macros')) {
function replace_macros($s,$r) {
global $t;
-
- //$ts = microtime();
- $r = $t->replace($s,$r);
- //$tt = microtime() - $ts;
-
- //$a = get_app();
- //$a->page['debug'] .= "$tt <br>\n";
- return template_unescape($r);
+// $ts = microtime();
+ $a = get_app();
+
+ if($a->theme['template_engine'] === 'smarty3') {
+ $template = '';
+ if(gettype($s) === 'string') {
+ $template = $s;
+ $s = new FriendicaSmarty();
+ }
+ foreach($r as $key=>$value) {
+ if($key[0] === '$') {
+ $key = substr($key, 1);
+ }
+ $s->assign($key, $value);
+ }
+ $output = $s->parsed($template);
+ }
+ else {
+ $r = $t->replace($s,$r);
+
+ $output = template_unescape($r);
+ }
+// $tt = microtime() - $ts;
+// $a = get_app();
+// $a->page['debug'] .= "$tt <br>\n";
+ return $output;
}}
$o .= '<div class="pager">';
if($a->pager['page']>1)
- $o .= "<a href=\"$url"."&page=".($a->pager['page'] - 1).'">' . t('newer') . '</a>';
+ $o .= "<a href=\"$url"."&page=".($a->pager['page'] - 1).'" class="pager_newer">' . t('newer') . '</a>';
if($i>0) {
if($a->pager['page']>1)
$o .= " - ";
- $o .= "<a href=\"$url"."&page=".($a->pager['page'] + 1).'">' . t('older') . '</a>';
+ $o .= "<a href=\"$url"."&page=".($a->pager['page'] + 1).'" class="pager_older">' . t('older') . '</a>';
}
function get_intltext_template($s) {
global $lang;
+ $a = get_app();
+ $engine = '';
+ if($a->theme['template_engine'] === 'smarty3')
+ $engine = "/smarty3";
+
if(! isset($lang))
$lang = 'en';
- if(file_exists("view/$lang/$s"))
- return file_get_contents("view/$lang/$s");
- elseif(file_exists("view/en/$s"))
- return file_get_contents("view/en/$s");
+ if(file_exists("view/$lang$engine/$s"))
+ return file_get_contents("view/$lang$engine/$s");
+ elseif(file_exists("view/en$engine/$s"))
+ return file_get_contents("view/en$engine/$s");
else
- return file_get_contents("view/$s");
+ return file_get_contents("view$engine/$s");
}}
if(! function_exists('get_markup_template')) {
-function get_markup_template($s) {
- $a=get_app();
+function get_markup_template($s, $root = '') {
+// $ts = microtime();
+ $a = get_app();
+
+ if($a->theme['template_engine'] === 'smarty3') {
+ $template_file = get_template_file($a, 'smarty3/' . $s, $root);
+
+ $template = new FriendicaSmarty();
+ $template->filename = $template_file;
+
+// $tt = microtime() - $ts;
+// $a->page['debug'] .= "$tt <br>\n";
+ return $template;
+ }
+ else {
+ $template_file = get_template_file($a, $s, $root);
+// $file_contents = file_get_contents($template_file);
+// $tt = microtime() - $ts;
+// $a->page['debug'] .= "$tt <br>\n";
+// return $file_contents;
+// logger($template_file);
+ return file_get_contents($template_file);
+ }
+}}
+
+if(! function_exists("get_template_file")) {
+function get_template_file($a, $filename, $root = '') {
$theme = current_theme();
-
- if(file_exists("view/theme/$theme/$s"))
- return file_get_contents("view/theme/$theme/$s");
- elseif (x($a->theme_info,"extends") && file_exists("view/theme/".$a->theme_info["extends"]."/$s"))
- return file_get_contents("view/theme/".$a->theme_info["extends"]."/$s");
+
+ // Make sure $root ends with a slash /
+ if($root !== '' && $root[strlen($root)-1] !== '/')
+ $root = $root . '/';
+
+ if(file_exists($root . "view/theme/$theme/$filename"))
+ $template_file = $root . "view/theme/$theme/$filename";
+ elseif (x($a->theme_info,"extends") && file_exists($root . "view/theme/".$a->theme_info["extends"]."/$filename"))
+ $template_file = $root . "view/theme/".$a->theme_info["extends"]."/$filename";
else
- return file_get_contents("view/$s");
+ $template_file = $root . "view/$filename";
+ return $template_file;
}}
function prepare_body($item,$attach = false) {
$a = get_app();
- call_hooks('prepare_body_init', $item);
-
- $cache = get_config('system','itemcache');
+ call_hooks('prepare_body_init', $item);
- if (($cache != '')) {
- $cachefile = $cache."/".$item["guid"]."-".strtotime($item["edited"])."-".hash("crc32", $item['body']);
+ $cachefile = get_cachefile($item["guid"]."-".strtotime($item["edited"])."-".hash("crc32", $item['body']));
+ if (($cachefile != '')) {
if (file_exists($cachefile))
$s = file_get_contents($cachefile);
else {
$s = $prep_arr['html'];
if(! $attach) {
+ // Replace the blockquotes with quotes that are used in mails
+ $mailquote = '<blockquote type="cite" class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">';
+ $s = str_replace(array('<blockquote>', '<blockquote class="spoiler">', '<blockquote class="author">'), array($mailquote, $mailquote, $mailquote), $s);
return $s;
}