From ea3fe00746306d1af29c545ab147301d68c91b46 Mon Sep 17 00:00:00 2001 From: Matt Mullenweg Date: Sun, 24 Aug 2003 21:25:56 +0000 Subject: [PATCH] No smilies inside of HTML tags. git-svn-id: https://develop.svn.wordpress.org/trunk@340 602fd350-edb4-49c9-b593-d223f7449a82 --- b2-include/b2functions.php | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/b2-include/b2functions.php b/b2-include/b2functions.php index f51069943b..e8cd2629c5 100644 --- a/b2-include/b2functions.php +++ b/b2-include/b2functions.php @@ -64,7 +64,8 @@ function wptexturize($text) { return $output; } -function wpautop($pee, $br=1) { +function wpautop($pee, $br=1) { + $pee = $pee . "\n"; // just to make things a little easier, pad the end $pee = preg_replace('|
\s*
|', "\n\n", $pee); $pee = preg_replace('!(<(?:table|ul|ol|li|pre|select|form|blockquote|h[1-6])[^>]*>)!', "\n$1", $pee); // Space things out a little $pee = preg_replace('!()!', "$1\n", $pee); // Space things out a little @@ -72,12 +73,10 @@ function wpautop($pee, $br=1) { $pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates $pee = preg_replace('/\n?(.+?)(\n\n|\z)/s', "

$1

\n", $pee); // make paragraphs, including one at the end $pee = preg_replace('|
\s*

|', '

', $pee); - $pee = preg_replace('|

\s*

|', '

', $pee); - $pee = preg_replace('|

\s*

|', '

', $pee); $pee = preg_replace('|

]*)>|i', "

", $pee); $pee = str_replace('

', '

', $pee); - $pee = preg_replace('!

\s*(]*>)!', "$1", $pee); - $pee = preg_replace('!()\s*

!', "$1", $pee); + $pee = preg_replace('!

\s*(]*>)!', "$1", $pee); + $pee = preg_replace('!()\s*

!', "$1", $pee); if ($br) $pee = preg_replace('|(?)\s*\n|', "
\n", $pee); // optionally make line breaks $pee = preg_replace('!(]*>)\s*
!', "$1", $pee); $pee = preg_replace('/&([^#])(?![a-z]{1,8};)/', '&$1', $pee); @@ -271,9 +270,18 @@ function convert_smilies($content) { global $smilies_directory, $use_smilies; global $b2_smiliessearch, $b2_smiliesreplace; if ($use_smilies) { - $content = str_replace($b2_smiliessearch, $b2_smiliesreplace, $content); + // HTML loop taken from texturize function, could possible be consolidated + $textarr = preg_split("/(<.*>)/U", $text, -1, PREG_SPLIT_DELIM_CAPTURE); // capture the tags as well as in between + $stop = count($textarr);// loop stuff + for ($i = 0; $i < $stop; $i++) { + $content = $textarr[$i]; + if ('<' != $curl{0}) { // If it's not a tag + $content = str_replace($b2_smiliessearch, $b2_smiliesreplace, $content); + } + $output .= $content; + } } - return $content; + return $output; } function antispambot($emailaddy, $mailto=0) {