From 48e9c14ebded89d858c8be0333f77f77a81b0877 Mon Sep 17 00:00:00 2001 From: thomascube Date: Sat, 31 Mar 2012 12:25:48 +0000 Subject: Move plugins repository into roundcubemail root folder; svn:externals are not defined anymore --- plugins/emoticons/emoticons.php | 78 +++++++++++++++++++++++++++++++++++++++++ plugins/emoticons/package.xml | 53 ++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 plugins/emoticons/emoticons.php create mode 100644 plugins/emoticons/package.xml (limited to 'plugins/emoticons') diff --git a/plugins/emoticons/emoticons.php b/plugins/emoticons/emoticons.php new file mode 100644 index 000000000..c986686e3 --- /dev/null +++ b/plugins/emoticons/emoticons.php @@ -0,0 +1,78 @@ +add_hook('message_part_after', array($this, 'replace')); + } + + function replace($args) + { + // This is a lookbehind assertion which will exclude html entities + // E.g. situation when ";)" in "")" shouldn't be replaced by the icon + // It's so long because of assertion format restrictions + $entity = '(? $this->img_tag('smiley-smile.gif', ':)' ), + '/:-\)/' => $this->img_tag('smiley-smile.gif', ':-)' ), + '/(? $this->img_tag('smiley-laughing.gif', ':D' ), + '/:-D/' => $this->img_tag('smiley-laughing.gif', ':-D' ), + '/:\(/' => $this->img_tag('smiley-frown.gif', ':(' ), + '/:-\(/' => $this->img_tag('smiley-frown.gif', ':-(' ), + '/'.$entity.';\)/' => $this->img_tag('smiley-wink.gif', ';)' ), + '/'.$entity.';-\)/' => $this->img_tag('smiley-wink.gif', ';-)' ), + '/8\)/' => $this->img_tag('smiley-cool.gif', '8)' ), + '/8-\)/' => $this->img_tag('smiley-cool.gif', '8-)' ), + '/(? $this->img_tag('smiley-surprised.gif', ':O' ), + '/(? $this->img_tag('smiley-surprised.gif', ':-O' ), + '/(? $this->img_tag('smiley-tongue-out.gif', ':P' ), + '/(? $this->img_tag('smiley-tongue-out.gif', ':-P' ), + '/(? $this->img_tag('smiley-yell.gif', ':@' ), + '/(? $this->img_tag('smiley-yell.gif', ':-@' ), + '/O:\)/i' => $this->img_tag('smiley-innocent.gif', 'O:)' ), + '/O:-\)/i' => $this->img_tag('smiley-innocent.gif', 'O:-)' ), + '/(? $this->img_tag('smiley-embarassed.gif', ':$' ), + '/(? $this->img_tag('smiley-embarassed.gif', ':-$' ), + '/(? $this->img_tag('smiley-kiss.gif', ':*' ), + '/(? $this->img_tag('smiley-kiss.gif', ':-*' ), + '/(? $this->img_tag('smiley-undecided.gif', ':S' ), + '/(? $this->img_tag('smiley-undecided.gif', ':-S' ), + ); + + if ($args['type'] == 'plain') { + $args['body'] = preg_replace( + array_keys($map), array_values($map), $args['body']); + } + + return $args; + } + + private function img_tag($ico, $title) + { + $path = './program/js/tiny_mce/plugins/emotions/img/'; + return html::img(array('src' => $path.$ico, 'title' => $title)); + } +} diff --git a/plugins/emoticons/package.xml b/plugins/emoticons/package.xml new file mode 100644 index 000000000..b4218103c --- /dev/null +++ b/plugins/emoticons/package.xml @@ -0,0 +1,53 @@ + + + emoticons + pear.roundcube.net + Display emoticons in text messages + Sample plugin to replace emoticons in plain text message body with real icons. + + Thomas Bruederli + thomasb + roundcube@gmail.com + yes + + + Aleksander Machniak + alec + alec@alec.pl + yes + + 2011-11-21 + + 1.3 + 1.3 + + + stable + stable + + GNU GPLv3+ + - + + + + + + + + + + + + + 5.2.1 + + + 1.7.0 + + + + + -- cgit v1.2.3