From 405efb48e0542398f22711bcbe0a7733655e3462 Mon Sep 17 00:00:00 2001 From: "Paul S. Owen" Date: Fri, 8 Feb 2002 01:33:36 +0000 Subject: Various updates, mods, changes to several functions, moved smilies stuff to bbcode.php ... nathan may kill me ... good bye all in advance git-svn-id: file:///svn/phpbb/trunk@2063 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/includes/bbcode.php | 54 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) (limited to 'phpBB/includes/bbcode.php') diff --git a/phpBB/includes/bbcode.php b/phpBB/includes/bbcode.php index fc0fe4beef..ea0d6b2437 100644 --- a/phpBB/includes/bbcode.php +++ b/phpBB/includes/bbcode.php @@ -713,4 +713,56 @@ function bbcode_array_pop(&$stack) return($return_val); } -?> +// +// Smilies code ... would this be better tagged on to the end of bbcode.php? +// Probably so and I'll move it before B2 +// +function smilies_pass($message) +{ + global $db, $board_config; + static $smilies; + + if( empty($smilies) ) + { + $sql = "SELECT code, smile_url + FROM " . SMILIES_TABLE; + if( !$result = $db->sql_query($sql) ) + { + message_die(GENERAL_ERROR, "Couldn't obtain smilies data", "", __LINE__, __FILE__, $sql); + } + + if( !$db->sql_numrows($result) ) + { + return $message; + } + + $smilies = $db->sql_fetchrowset($result); + } + + usort($smilies, 'smiley_sort'); + for($i = 0; $i < count($smilies); $i++) + { + $orig[] = "/(?<=.\\W|\\W.|^\\W)" . phpbb_preg_quote($smilies[$i]['code'], "/") . "(?=.\\W|\\W.|\\W$)/"; + $repl[] = '' . $smilies[$i]['smile_url'] . ''; + } + + if( $i > 0 ) + { + $message = preg_replace($orig, $repl, ' ' . $message . ' '); + $message = substr($message, 1, -1); + } + + return $message; +} + +function smiley_sort($a, $b) +{ + if ( strlen($a['code']) == strlen($b['code']) ) + { + return 0; + } + + return ( strlen($a['code']) > strlen($b['code']) ) ? -1 : 1; +} + +?> \ No newline at end of file -- cgit v1.2.1