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