summaryrefslogtreecommitdiff
path: root/plugins/emoticons
diff options
context:
space:
mode:
authoralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-07-07 17:40:32 +0000
committeralec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-07-07 17:40:32 +0000
commite93239e07a8a9ed7ce8a8a68820f33911f37e368 (patch)
tree12686d4c0bb36ca411fc951a9ab68ea4b4dc02bc /plugins/emoticons
parent6a42b0002dc34ecbc1e5355ee6778a5f496df455 (diff)
- 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
Diffstat (limited to 'plugins/emoticons')
-rw-r--r--plugins/emoticons/emoticons.php53
1 files 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' => ':-)')),
+ '/(?<!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')
- 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;
+ }
}
-