2 require_once('common/include/Error.class');
6 ':D' => array('image' => 'icon_biggrin.gif', 'emoticon' => 'Very happy'),
7 ':-D' => array('image' => 'icon_biggrin.gif', 'emoticon' => 'Very happy'),
8 ':grin:' => array('image' => 'icon_biggrin.gif', 'emoticon' => 'Very happy'),
9 ':)' => array('image' => 'icon_smile.gif', 'emoticon' => 'Smilie'),
10 ':-)' => array('image' => 'icon_smile.gif', 'emoticon' => 'Smilie'),
11 ':smile:' => array('image' => 'icon_smile.gif', 'emoticon' => 'Smilie'),
12 ':(' => array('image' => 'icon_sad.gif', 'emoticon' => 'Sad'),
13 ':-(' => array('image' => 'icon_sad.gif', 'emoticon' => 'Sad'),
14 ':sad:' => array('image' => 'icon_sad.gif', 'emoticon' => 'Sad'),
15 ':o' => array('image' => 'icon_surprised.gif', 'emoticon' => 'Surprised'),
16 ':-o' => array('image' => 'icon_surprised.gif', 'emoticon' => 'Surprised'),
17 ':eek:' => array('image' => 'icon_surprised.gif', 'emoticon' => 'Surprised'),
18 ':shock:' => array('image' => 'icon_eek.gif', 'emoticon' => 'Shocked'),
19 ':?' => array('image' => 'icon_confused.gif', 'emoticon' => 'Confused'),
20 ':-?' => array('image' => 'icon_confused.gif', 'emoticon' => 'Confused'),
21 ':???:' => array('image' => 'icon_confused.gif', 'emoticon' => 'Confused'),
22 '8)' => array('image' => 'icon_cool.gif', 'emoticon' => 'Cool'),
23 '8-)' => array('image' => 'icon_cool.gif', 'emoticon' => 'Cool'),
24 ':cool:' => array('image' => 'icon_cool.gif', 'emoticon' => 'Cool'),
25 ':lol:' => array('image' => 'icon_lol.gif', 'emoticon' => 'Laughing'),
26 ':x' => array('image' => 'icon_mad.gif', 'emoticon' => 'Mad'),
27 ':-x' => array('image' => 'icon_mad.gif', 'emoticon' => 'Mad'),
28 ':mad:' => array('image' => 'icon_mad.gif', 'emoticon' => 'Mad'),
29 ':P' => array('image' => 'icon_razz.gif', 'emoticon' => 'Razz'),
30 ':-P' => array('image' => 'icon_razz.gif', 'emoticon' => 'Razz'),
31 ':razz:' => array('image' => 'icon_razz.gif', 'emoticon' => 'Razz'),
32 ':oops:' => array('image' => 'icon_redface.gif', 'emoticon' => 'Embarassed'),
33 ':cry:' => array('image' => 'icon_cry.gif', 'emoticon' => 'Crying or Very sad'),
34 ':evil:' => array('image' => 'icon_evil.gif', 'emoticon' => 'Evil or Very Mad'),
35 ':twisted:' => array('image' => 'icon_twisted.gif', 'emoticon' => 'Twisted Evil'),
36 ':roll:' => array('image' => 'icon_rolleyes.gif', 'emoticon' => 'Rolling Eyes'),
37 ':wink:' => array('image' => 'icon_wink.gif', 'emoticon' => 'Wink'),
38 ';)' => array('image' => 'icon_wink.gif', 'emoticon' => 'Wink'),
39 ';-)' => array('image' => 'icon_wink.gif', 'emoticon' => 'Wink'),
40 ':!:' => array('image' => 'icon_exclaim.gif', 'emoticon' => 'Exclamation'),
41 ':?:' => array('image' => 'icon_question.gif', 'emoticon' => 'Question'),
42 ':idea:' => array('image' => 'icon_idea.gif', 'emoticon' => 'Idea'),
43 ':arrow:' => array('image' => 'icon_arrow.gif', 'emoticon' => 'Arrow'),
44 ':|' => array('image' => 'icon_neutral.gif', 'emoticon' => 'Neutral'),
45 ':-|' => array('image' => 'icon_neutral.gif', 'emoticon' => 'Neutral'),
46 ':neutral:' => array('image' => 'icon_neutral.gif', 'emoticon' => 'Neutral'),
47 ':mrgreen:' => array('image' => 'icon_mrgreen.gif', 'emoticon' => 'Mr. Green')
52 class SmilieSupport extends Error {
55 var $smilies_orig = array();
56 var $smilies_repl = array();
58 function SmilieSupport(){
61 // we get all the smilies and we prepare them for display
62 $this->initializeSmilies();
66 function prepareText($text){
70 function displayText($text){
71 if (count($this->smilies_orig)){
72 $text = preg_replace($this->smilies_orig, $this->smilies_repl, ' ' . $text . ' ');
73 $text = substr($text, 1, -1);
79 function initializeSmilies(){
80 global $SMILIES, $sys_default_domain;
82 $smilies_info = array();
85 while (list ($smilie_code, $smilie_info) = each ($SMILIES)) {
86 $code = preg_quote($smilie_code);
87 $code = str_replace('/', '\\/', $code);
88 $this->smilies_orig[] = "/(?<=.\W|\W.|^\W)" . $code . "(?=.\W|\W.|\W$)/";
89 $this->smilies_repl[] = '<img src="' . $sys_images_url . '/images/smiles/' . $smilie_info['image'] . '" alt="' . $smilie_info['emoticon'] . '" border="0" />';