I wanted that functionality as well so I ripped some WP code, played around, and finally got something I could use. This is a highly sloppy work as I am out of practice and not really a great PHP programmer anyway. The plugin is mostly a rip of the WordPress code with a filter. It is not elegant or tested completely but so far it has been getting the job done.
Note: This plugin will not work without a default install of WordPress.
You have to create a directory called /my-plugins/, copy this code into a file called whatever-you-want.php, upload and enjoy!
Feedback appreciated! Maybe I can improve on this and increase my PHP/*press skills.
<?php
/*
Plugin Name: WordPress Smiley Integrator .0002
Plugin URI: none
Description: Gives WordPress Smiley Functionality to bbPress
Author: John Farrell
Version: 1.0
Author URI: none
*/
function convert_smilies($text) {
$wpsmiliestrans = array(
':mrgreen:' => 'icon_mrgreen.gif',
':neutral:' => 'icon_neutral.gif',
':twisted:' => 'icon_twisted.gif',
':arrow:' => 'icon_arrow.gif',
':shock:' => 'icon_eek.gif',
':smile:' => 'icon_smile.gif',
' ??:' => 'icon_confused.gif',
':cool:' => 'icon_cool.gif',
':evil:' => 'icon_evil.gif',
':grin:' => 'icon_biggrin.gif',
':idea:' => 'icon_idea.gif',
':oops:' => 'icon_redface.gif',
':razz:' => 'icon_razz.gif',
':roll:' => 'icon_rolleyes.gif',
':wink:' => 'icon_wink.gif',
':cry:' => 'icon_cry.gif',
':eek:' => 'icon_surprised.gif',
':lol:' => 'icon_lol.gif',
':mad:' => 'icon_mad.gif',
':sad:' => 'icon_sad.gif',
'' => 'icon_cool.gif',
'8-O' => 'icon_eek.gif',
'' => 'icon_sad.gif',
'' => 'icon_smile.gif',
'' => 'icon_confused.gif',
'' => 'icon_biggrin.gif',
'' => 'icon_razz.gif',
':-o' => 'icon_surprised.gif',
':-x' => 'icon_mad.gif',
'' => 'icon_neutral.gif',
'' => 'icon_wink.gif',
'' => 'icon_cool.gif',
'8O' => 'icon_eek.gif',
'' => 'icon_sad.gif',
'' => 'icon_smile.gif',
'' => 'icon_confused.gif',
'' => 'icon_biggrin.gif',
'' => 'icon_razz.gif',
':o' => 'icon_surprised.gif',
':x' => 'icon_mad.gif',
'' => 'icon_neutral.gif',
'' => 'icon_wink.gif',
':!:' => 'icon_exclaim.gif',
':' => 'icon_question.gif',
);
// generates smilies' search & replace arrays
foreach($wpsmiliestrans as $smiley => $img) {
$wp_smiliessearch[] = $smiley;
$smiley_masked = htmlspecialchars( trim($smiley) , ENT_QUOTES);
$wp_smiliesreplace[] = " <img src='/wp-includes/images/smilies/$img' alt='$smiley_masked' class='wp-smiley' /> ";
}
$output = '';
// 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 ((strlen($content) > 0) && ('<' != $content{0})) { // If it's not a tag
$content = str_replace($wp_smiliessearch, $wp_smiliesreplace, $content);
}
$output .= $content;
}
return $output;
}
//add the filter
add_filter('post_text', 'convert_smilies');
?>