X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Ftext.php;h=956344d63d622f9f00b089b053bf49ecbcce3414;hb=778935eb48e9700ca2e879b1fe377541817705a0;hp=07524e851dd2f11baf9b3e7ffefacfe953ce6ee7;hpb=2eb461ed2cc3043ca238fb0f629e303f0c4c8756;p=friendica.git diff --git a/include/text.php b/include/text.php index 07524e851d..956344d63d 100644 --- a/include/text.php +++ b/include/text.php @@ -2,6 +2,7 @@ require_once("include/template_processor.php"); require_once("include/friendica_smarty.php"); +require_once("include/Smilies.php"); require_once("include/map.php"); require_once("mod/proxy.php"); @@ -1079,160 +1080,6 @@ function get_mood_verbs() { return $arr; } - - -if(! function_exists('smilies')) { -/** - * Replaces text emoticons with graphical images - * - * 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 - * - * @param string $s - * @param boolean $sample - * @return string - * @hook smilie ('texts' => smilies texts array, 'icons' => smilies html array, 'string' => $s) - */ -function smilies($s, $sample = false) { - $a = get_app(); - - if(intval(get_config('system','no_smilies')) - || (local_user() && intval(get_pconfig(local_user(),'system','no_smilies')))) - return $s; - - $s = preg_replace_callback('/
(.*?)<\/pre>/ism','smile_encode',$s);
-	$s = preg_replace_callback('/(.*?)<\/code>/ism','smile_encode',$s);
-
-	$texts =  array(
-		'<3',
-		'</3',
-		'<\\3',
-		':-)',
-		';-)',
-		':-(',
-		':-P',
-		':-p',
-		':-"',
-		':-"',
-		':-x',
-		':-X',
-		':-D',
-		'8-|',
-		'8-O',
-		':-O',
-		'\\o/',
-		'o.O',
-		'O.o',
-		'o_O',
-		'O_o',
-		":'(",
-		":-!",
-		":-/",
-		":-[",
-		"8-)",
-		':beer',
-		':homebrew',
-		':coffee',
-		':facepalm',
-		':like',
-		':dislike',
-		'~friendica',
-		'red#',
-		'red#matrix'
-
-	);
-
-	$icons = array(
-		'<3',
-		'</3',
-		'<\\3',
-		':-)',
-		';-)',
-		':-(',
-		':-P',
-		':-p',
-		':-\',
-		':-\',
-		':-x',
-		':-X',
-		':-D',
-		'8-|',
-		'8-O',
-		':-O',
-		'\\o/',
-		'o.O',
-		'O.o',
-		'o_O',
-		'O_o',
-		':\'(',
-		':-!',
-		':-/',
-		':-[',
-		'8-)',
-		':beer',
-		':homebrew',
-		':coffee',
-		':facepalm',
-		':like',
-		':dislike',
-		'~friendica ~friendica',
-		'redredmatrix',
-		'redredmatrix'
-	);
-
-	$params = array('texts' => $texts, 'icons' => $icons, 'string' => $s);
-	call_hooks('smilie', $params);
-
-	if($sample) {
-		$s = '
'; - for($x = 0; $x < count($params['texts']); $x ++) { - $s .= '
' . $params['texts'][$x] . '
' . $params['icons'][$x] . '
'; - } - } - 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
- *
- * @param string $x
- * @return string
- */
-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 .= '<3';
-	$r =  str_replace($x[0],$t,$x[0]);
-	return $r;
-}
-
-
 if(! function_exists('day_translate')) {
 /**
  * Translate days and months names
@@ -1549,7 +1396,7 @@ function prepare_text($text) {
 	if(stristr($text,'[nosmile]'))
 		$s = bbcode($text);
 	else
-		$s = smilies(bbcode($text));
+		$s = Smilies::replace(bbcode($text));
 
 	return trim($s);
 }}