diff options
Diffstat (limited to 'plugins/emoticons/emoticons.php')
-rw-r--r-- | plugins/emoticons/emoticons.php | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/plugins/emoticons/emoticons.php b/plugins/emoticons/emoticons.php new file mode 100644 index 000000000..afd299c8e --- /dev/null +++ b/plugins/emoticons/emoticons.php @@ -0,0 +1,44 @@ +<?php + +/** + * Display Emoticons + * + * Sample plugin to replace emoticons in plain text message body with real icons + * + * @version 1.1.0 + * @author Thomas Bruederli + * @author Aleksander Machniak + * @website http://roundcube.net + */ +class emoticons extends rcube_plugin +{ + public $task = 'mail'; + private $map; + + function init() + { + $this->task = 'mail'; + $this->add_hook('message_part_after', array($this, 'replace')); + + $this->map = array( + '/:\)/' => html::img(array('src' => './program/js/tiny_mce/plugins/emotions/img/smiley-smile.gif', 'title' => ':)')), + '/:-\)/' => html::img(array('src' => './program/js/tiny_mce/plugins/emotions/img/smiley-smile.gif', 'title' => ':-)')), + '/(?<!mailto):D/' => html::img(array('src' => './program/js/tiny_mce/plugins/emotions/img/smiley-laughing.gif', 'title' => ':D')), + '/:-D/' => html::img(array('src' => './program/js/tiny_mce/plugins/emotions/img/smiley-laughing.gif', 'title' => ':-D')), + '/;\)/' => html::img(array('src' => './program/js/tiny_mce/plugins/emotions/img/smiley-wink.gif', 'title' => ';)')), + '/;-\)/' => html::img(array('src' => './program/js/tiny_mce/plugins/emotions/img/smiley-wink.gif', 'title' => ';-)')), + '/:\(/' => html::img(array('src' => './program/js/tiny_mce/plugins/emotions/img/smiley-frown.gif', 'title' => ':(')), + '/:-\(/' => html::img(array('src' => './program/js/tiny_mce/plugins/emotions/img/smiley-frown.gif', 'title' => ':-(')), + ); + } + + function replace($args) + { + if ($args['type'] == 'plain') { + $args['body'] = preg_replace( + array_keys($this->map), array_values($this->map), $args['body']); + } + return $args; + } + +} |