X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Ftext.php;h=c8c03174e613625281240e0f0276c74e56d2e630;hb=eec4cff84be630bf3a4165321a423c29ed7926e9;hp=45881b9a64bf15dfceddbed19a3ed014818a8df5;hpb=4222f506a82c7b2a50b602c51a83a85e1912450c;p=friendica.git
diff --git a/include/text.php b/include/text.php
index 45881b9a64..c8c03174e6 100755
--- a/include/text.php
+++ b/include/text.php
@@ -14,7 +14,13 @@ if(! function_exists('replace_macros')) {
function replace_macros($s,$r) {
global $t;
- return $t->replace($s,$r);
+ //$ts = microtime();
+ $r = $t->replace($s,$r);
+ //$tt = microtime() - $ts;
+
+ //$a = get_app();
+ //$a->page['debug'] .= "$tt
\n";
+ return $r;
}}
@@ -675,12 +681,24 @@ function linkify($s) {
* @Parameter: string $s
*
* Returns string
+ *
+ * It is expected that this function will be called using HTML text.
+ * We will escape text between HTML pre and code blocks from being
+ * processed.
+ *
+ * At a higher level, the bbcode [nosmile] tag can be used to prevent this
+ * function from being executed by the prepare_text() routine when preparing
+ * bbcode source for HTML display
+ *
*/
if(! function_exists('smilies')) {
function smilies($s, $sample = false) {
$a = get_app();
+ $s = preg_replace_callback('/
(.*?)<\/pre>/ism','smile_encode',$s);
+ $s = preg_replace_callback('/(.*?)<\/code>/ism','smile_encode',$s);
+
$texts = array(
'<3',
'</3',
@@ -716,9 +734,10 @@ function smilies($s, $sample = false) {
':homebrew',
':coffee',
':facepalm',
+ ':headdesk',
'~friendika',
'~friendica',
- 'Diaspora*'
+// 'Diaspora*'
);
$icons = array(
@@ -756,9 +775,10 @@ function smilies($s, $sample = false) {
'
',
'
',
'
',
+ '
',
'~friendika
',
- '~friendica
',
- 'Diaspora
',
+ '~friendica
',
+// 'Diaspora
',
);
@@ -772,13 +792,37 @@ function smilies($s, $sample = false) {
}
}
else {
+ $params['string'] = preg_replace_callback('/<(3+)/','preg_heart',$params['string']);
$s = str_replace($params['texts'],$params['icons'],$params['string']);
}
-
+
+ $s = preg_replace_callback('/(.*?)<\/pre>/ism','smile_decode',$s);
+ $s = preg_replace_callback('/(.*?)<\/code>/ism','smile_decode',$s);
+
return $s;
}}
+function smile_encode($m) {
+ return(str_replace($m[1],base64url_encode($m[1]),$m[0]));
+}
+
+function smile_decode($m) {
+ return(str_replace($m[1],base64url_decode($m[1]),$m[0]));
+}
+
+// expand <3333 to the correct number of hearts
+
+function preg_heart($x) {
+ $a = get_app();
+ if(strlen($x[1]) == 1)
+ return $x[0];
+ $t = '';
+ for($cnt = 0; $cnt < strlen($x[1]); $cnt ++)
+ $t .= '
';
+ $r = str_replace($x[0],$t,$x[0]);
+ return $r;
+}
if(! function_exists('day_translate')) {
@@ -970,7 +1014,7 @@ function lang_selector() {
}
$ll = substr($l,5);
$ll = substr($ll,0,strrpos($ll,'/'));
- $selected = (($ll === $lang && (x($_SESSION['language']))) ? ' selected="selected" ' : '');
+ $selected = (($ll === $lang && (x($_SESSION, 'language'))) ? ' selected="selected" ' : '');
$o .= '';
}
}
@@ -1175,3 +1219,16 @@ function reltoabs($text, $base)
return $text;
}
+function item_post_type($item) {
+ if(intval($item['event-id']))
+ return t('event');
+ if(strlen($item['resource-id']))
+ return t('photo');
+ if(strlen($item['verb']) && $item['verb'] !== ACTIVITY_POST)
+ return t('activity');
+ if($item['id'] != $item['parent'])
+ return t('comment');
+ return t('post');
+}
+
+