X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=inline;f=include%2Ftext.php;h=c7fb7a67d657376e3cd2469a7fc8f6dac23392cd;hb=b00426c9fb375c6b1d985f88d7132c8a669c2a7e;hp=7d26d355089952bec2a0dc12eb2ba69b362603f2;hpb=ac18d7289bf6db086fbdd0f2122379592df23745;p=friendica.git
diff --git a/include/text.php b/include/text.php
index 7d26d35508..c7fb7a67d6 100644
--- a/include/text.php
+++ b/include/text.php
@@ -9,19 +9,38 @@
// 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
\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
\n";
+ return $output;
}}
@@ -421,29 +440,63 @@ if(! function_exists('get_intltext_template')) {
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
\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
\n";
+// return $file_contents;
+ 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;
}}
@@ -982,19 +1035,33 @@ function prepare_body($item,$attach = false) {
$s = $prep_arr['html'];
if(! $attach) {
+ // Replace the blockquotes with quotes that are used in mails
+ $mailquote = '
'; + $s = str_replace(array('', '', ''), array($mailquote, $mailquote, $mailquote), $s); return $s; } - $arr = explode(',',$item['attach']); + $arr = explode('[/attach],',$item['attach']); if(count($arr)) { $s .= ''; foreach($arr as $r) { $matches = false; $icon = ''; - $cnt = preg_match_all('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"\[\/attach\]|',$r,$matches, PREG_SET_ORDER); + $cnt = preg_match_all('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches, PREG_SET_ORDER); if($cnt) { foreach($matches as $mtch) { - $icontype = strtolower(substr($mtch[3],0,strpos($mtch[3],'/'))); + $filetype = strtolower(substr( $mtch[3], 0, strpos($mtch[3],'/') )); + if($filetype) { + $filesubtype = strtolower(substr( $mtch[3], strpos($mtch[3],'/') + 1 )); + $filesubtype = str_replace('.', '-', $filesubtype); + } + else { + $filetype = 'unkn'; + $filesubtype = 'unkn'; + } + + $icon = ''; + /*$icontype = strtolower(substr($mtch[3],0,strpos($mtch[3],'/'))); switch($icontype) { case 'video': case 'audio': @@ -1005,7 +1072,8 @@ function prepare_body($item,$attach = false) { default: $icon = ''; break; - } + }*/ + $title = ((strlen(trim($mtch[4]))) ? escape_tags(trim($mtch[4])) : escape_tags($mtch[1])); $title .= ' ' . $mtch[2] . ' ' . t('bytes'); if((local_user() == $item['uid']) && ($item['contact-id'] != $a->contact['id']) && ($item['network'] == NETWORK_DFRN))