From e93239e07a8a9ed7ce8a8a68820f33911f37e368 Mon Sep 17 00:00:00 2001 From: alec Date: Wed, 7 Jul 2010 17:40:32 +0000 Subject: - Fix so emots are not inserted inside of mailto: links + code cleanup git-svn-id: https://svn.roundcube.net/trunk@3807 208e9e7b-5314-0410-a742-e7e81cd9613c --- plugins/emoticons/emoticons.php | 53 +++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/plugins/emoticons/emoticons.php b/plugins/emoticons/emoticons.php index ba1e8d2c3..afd299c8e 100644 --- a/plugins/emoticons/emoticons.php +++ b/plugins/emoticons/emoticons.php @@ -5,39 +5,40 @@ * * Sample plugin to replace emoticons in plain text message body with real icons * - * @version 1.0.1 + * @version 1.1.0 * @author Thomas Bruederli + * @author Aleksander Machniak * @website http://roundcube.net */ class emoticons extends rcube_plugin { - public $task = 'mail'; - private $map; + public $task = 'mail'; + private $map; - function init() - { - $this->task = 'mail'; - $this->add_hook('message_part_after', array($this, 'replace')); + 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' => ':-)')), - ':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' => ':-(')), - ); - } + $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' => ':-)')), + '/(? 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') - return array('body' => strtr($args['body'], $this->map)); - - return null; - } + function replace($args) + { + if ($args['type'] == 'plain') { + $args['body'] = preg_replace( + array_keys($this->map), array_values($this->map), $args['body']); + } + return $args; + } } - -- cgit v1.2.3