]> git.mxchange.org Git - friendica-addons.git/blob - smileybutton/smileybutton.php
Translation file updated
[friendica-addons.git] / smileybutton / smileybutton.php
1 <?php
2 /**
3  * Name: Smileybutton
4  * Description: Adds a smileybutton to the Inputbox
5  * Version: 0.2
6  * Author: Johannes Schwab <https://friendica.jschwab.org/profile/ddorian>
7  */
8 use Friendica\Core\Hook;
9 use Friendica\Core\Logger;
10 use Friendica\DI;
11
12 function smileybutton_install() {
13         //Register hooks
14         Hook::register('jot_tool', 'addon/smileybutton/smileybutton.php', 'show_button');
15
16         Logger::log("installed smileybutton");
17 }
18
19 function show_button(Friendica\App $a, &$b) {
20         // Disable if theme is quattro
21         // TODO add style for quattro
22         if ($a->getCurrentTheme() == 'quattro')
23                 return;
24
25         // Disable for mobile because most mobiles have a smiley key for ther own
26         if (DI::mode()->isMobile() || DI::mode()->isMobile())
27                 return;
28
29         /**
30          *
31          * I have copied this from /include/text.php, removed doubles
32          * and escaped them.
33          *
34          */
35
36         $texts =  [
37                 '&lt;3',
38                 '&lt;/3',
39                 ':-)',
40                 ';-)',
41                 ':-(',
42                 ':-P',
43                 ':-X',
44                 ':-D',
45                 ':-O',
46                 '\\\\o/',
47                 'O_o',
48                 ":\'(",
49                 ":-!",
50                 ":-/",
51                 ":-[",
52                 "8-)",
53                 ':beer',
54                 ':coffee',
55                 ':facepalm',
56                 ':like',
57                 ':dislike',
58                 '~friendica',
59                 'red#'
60
61         ];
62
63         $icons = [
64                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-heart.gif" alt="<3" />',
65                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-brokenheart.gif" alt="</3" />',
66                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-smile.gif" alt=":-)" />',
67                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-wink.gif" alt=";-)" />',
68                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-frown.gif" alt=":-(" />',
69                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-tongue-out.gif" alt=":-P" />',
70                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-kiss.gif" alt=":-X" />',
71                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-laughing.gif" alt=":-D" />',
72                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-surprised.gif" alt=":-O" />',
73                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-thumbsup.gif" alt="\\o/" />',
74                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-Oo.gif" alt="O_o" />',
75                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-cry.gif" alt=":\'(" />',
76                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-foot-in-mouth.gif" alt=":-!" />',
77                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-undecided.gif" alt=":-/" />',
78                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-embarassed.gif" alt=":-[" />',
79                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-cool.gif" alt="8-)" />',
80                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/beer_mug.gif" alt=":beer" />',
81                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/coffee.gif" alt=":coffee" />',
82                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/smiley-facepalm.gif" alt=":facepalm" />',
83                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/like.gif" alt=":like" />',
84                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/dislike.gif" alt=":dislike" />',
85                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/friendica-16.png" alt="~friendica" />',
86                 '<img class="smiley" src="' . DI::baseUrl()->get() . '/images/rhash-16.png" alt="red" />'
87         ];
88
89         // Call hooks to get aditional smileies from other addons
90         $params = ['texts' => $texts, 'icons' => $icons, 'string' => ""]; //changed
91         Hook::callAll('smilie', $params);
92
93         //Generate html for smiley list
94         $s = "<table class=\"smiley-preview\"><tr>\n\t";
95         for($x = 0; $x < count($params['texts']); $x ++) {
96                 $icon = $params['icons'][$x];
97                 $icon = str_replace('/>', 'onclick="smileybutton_addsmiley(\'' . $params['texts'][$x] . '\')"/>', $icon);
98                 $icon = str_replace('class="smiley"', 'class="smiley_preview"', $icon);
99                 $s .= "<td>" . $icon . "</td>";
100                 if (($x+1) % (sqrt(count($params['texts']))+1) == 0) {
101                         $s .= "</tr>\n\t<tr>";
102                 }
103         }
104         $s .= "\t</tr></table>";
105
106         //Add css to header
107         $css_file = 'addon/smileybutton/view/' . $a->getCurrentTheme() . '.css';
108         if (! file_exists($css_file))
109                 $css_file = 'addon/smileybutton/view/default.css';
110         $css_url = DI::baseUrl()->get().'/'.$css_file;
111
112         DI::page()['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="'.$css_url.'" media="all" />'."\r\n";
113
114
115         //Get the correct image for the theme
116         $image = 'addon/smileybutton/view/' . $a->getCurrentTheme() . '.png';
117         if (! file_exists($image))
118                 $image = 'addon/smileybutton/view/default.png';
119         $image_url = DI::baseUrl()->get().'/'.$image;
120
121         //Add the hmtl and script to the page
122         $b = <<< EOT
123         <div id="profile-smiley-wrapper" style="display: block;" >
124                 <img src="$image_url" class="smiley_button" onclick="toggle_smileybutton()" alt="smiley">
125                 <div id="smileybutton" style="display:none;">
126                 $s
127                 </div>
128         </div>
129
130         <script>
131                 var smileybutton_is_shown = 0;
132                 function toggle_smileybutton() {
133                         if (! smileybutton_is_shown) {
134                                 $("#smileybutton").show();
135                                 smileybutton_is_shown = 1;
136                         } else {
137                                 $("#smileybutton").hide();
138                                 smileybutton_is_shown = 0;
139                         }
140                 }
141
142                 function smileybutton_addsmiley(text) {
143                         if(plaintext == "none") {
144                                 var v = $("#profile-jot-text").val();
145                                 v = v + text;
146                                 $("#profile-jot-text").val(v);
147                                 $("#profile-jot-text").focus();
148                         } else {
149                                 var v = tinymce.activeEditor.getContent();
150                                 v = v + text;
151                                 tinymce.activeEditor.setContent(v);
152                                 tinymce.activeEditor.focus();
153                         }
154                 }
155         </script>
156 EOT;
157 }