PluginProbe ʕ •ᴥ•ʔ
All-in-one Like Widget / 2.2.3
All-in-one Like Widget v2.2.3
trunk 1.4 2.0 2.1 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0
all-in-one-facebook-like-widget / index.php
all-in-one-facebook-like-widget Last commit date
index.php 5 years ago readme.txt 5 years ago
index.php
386 lines
1 <?php
2 /**
3 * Plugin Name: All-in-one Like Widget
4 * Plugin URI: https://jeroenpeters.dev
5 * Description: All-in-one Like Widget. Add a Like button, stream or facebox (fans) for your Facebook page to your site.
6 * Version: 2.2.3
7 * Author: Jeroen Peters
8 * Author URI: https://jeroenpeters.dev
9 * Text Domain: all-in-one-facebook-like-widget
10 * License: GPL2
11 */
12
13 /* Make sure we don't expose any info if called directly */
14 if (! function_exists('add_action'))
15 {
16 echo 'Nothing to see here. Move along now people.';
17 exit;
18 }
19
20 function AIO_Facebook_Like_widget_register()
21 {
22 load_plugin_textdomain('name-directory', false, dirname(plugin_basename(__FILE__)) . '/translation/');
23
24 return register_widget('AIO_Facebook_Like_widget');
25 }
26 add_action('widgets_init','AIO_Facebook_Like_widget_register');
27
28
29 class AIO_Facebook_Like_widget extends WP_Widget
30 {
31
32 /**
33 * Register WordPress Widget
34 */
35 private $widget_title = "Like Us";
36 private $facebook_username = "quoteshirts";
37 private $facebook_width = "240";
38 private $facebook_height = "auto";
39 private $facebook_language = "en_US";
40 private $facebook_show_faces = "true";
41 private $facebook_show_stream = "false";
42 private $facebook_show_header = "true";
43 private $facebook_hide_cover = "true";
44 private $facebook_small_header = "false";
45 private $facebook_tabs = "";
46
47
48 public function __construct()
49 {
50 parent::__construct(
51 'aio_facebook_like_widget',
52 'AIO Facebook Like Widget',
53 array(
54 'classname' => 'aio_facebook_like_widget',
55 'description' => __('All-in-one Facebook Like Widget', 'aio-facebook-like-widget')
56 )
57 );
58
59 $this->widget_title = __('Like us', 'aio-facebook-like-widget');
60 }
61
62 /**
63 * Front end Display of widgets
64 * @see WP_Widget::widget()
65 *
66 * @param array $args Widget arguments
67 * @param array $instance Saved values from Database
68 */
69 public function widget($args, $instance)
70 {
71 extract($args);
72
73 /* Variables from the widget settings */
74 $this->widget_title = apply_filters('widget_title', $instance['title']);
75
76 $this->facebook_username = $instance['page_name'];
77 $this->facebook_width = $instance['width'];
78 $this->facebook_height = $instance['height'];
79 $this->facebook_language = $instance['language'];
80 $this->facebook_show_faces = ($instance['show_faces'] == "1"? "true" : "false");
81 $this->facebook_hide_cover = ($instance['show_header'] == "1"? "false" : "true");
82 $this->facebook_small_header = (empty($instance['small_header'])? "false" : "true");
83 $this->facebook_tabs = (empty($instance['tabs'])?"timeline":$instance['tabs']);
84
85 /* Legacy from v1.4 */
86 if(isset($instance['show_stream']) && empty($instance['tabs']))
87 {
88 $this->facebook_tabs = "";
89 if($instance['show_stream'] == "1")
90 {
91 $this->facebook_tabs = "timeline";
92 }
93 }
94
95 add_action('wp_footer', array($this, 'aio_fb_like_add_js'));
96
97 /* Display the widget title if one was input (before and after defined by the theme) */
98 echo $args['before_widget'];
99
100 if($this->widget_title)
101 {
102 echo $args['before_title'] . $this->widget_title . $args['after_title'];
103 }
104
105 /* Like Box */
106 ?>
107 <div class="fb-page"
108 data-href="https://www.facebook.com/<?php echo $this->facebook_username;?>"
109 data-width="<?php echo $this->facebook_width;?>"
110 <?php if(! empty($this->facebook_height) && $this->facebook_height != 'auto') {
111 echo 'data-height="' . $this->facebook_height . '"' . "\n";
112 }?>
113 data-tabs="<?php echo $this->facebook_tabs;?>"
114 data-hide-cover="<?php echo $this->facebook_hide_cover;?>"
115 data-show-facepile="<?php echo $this->facebook_show_faces;?>"
116 data-small-header="<?php echo $this->facebook_small_header;?>"
117 >
118 </div>
119
120 <?php
121 echo $args['after_widget'];
122 }
123
124 /**
125 * Add Facebook Javascripts to the webpage
126 */
127 public function aio_fb_like_add_js()
128 {
129 echo '
130 <div id="fb-root"></div>
131 <script>(function(d, s, id) {
132 var js, fjs = d.getElementsByTagName(s)[0];
133 if (d.getElementById(id)) return;
134 js = d.createElement(s); js.id = id;
135 js.src = "//connect.facebook.net/' . $this->facebook_language . '/all.js#xfbml=1&appId=";
136 fjs.parentNode.insertBefore(js, fjs);
137 }(document, \'script\', \'facebook-jssdk\'));</script>';
138 }
139
140 /**
141 * Sanitize data from values as they are saved
142 * @see WP_Widget::update();
143 */
144 public function update($new_instance, $old_instance)
145 {
146 $facebook_strips = array(
147 "http://facebook.com/",
148 "https://facebook.com/",
149 "http://www.facebook.com/",
150 "https://www.facebook.com/",
151 "facebook.com/",
152 );
153
154 $instance = $old_instance;
155
156 /* Strip tags for title and name to remove HTML (important for text inputs) */
157 $instance['title'] = strip_tags($new_instance['title']);
158 $instance['page_name'] = str_replace($facebook_strips, array(), strip_tags($new_instance['page_name']));
159
160 $instance['width'] = strip_tags($new_instance['width']);
161 $instance['height'] = strip_tags($new_instance['height']);
162 $instance['language'] = strip_tags($new_instance['language']);
163 $instance['tabs'] = strip_tags($new_instance['tabs']);
164 $instance['show_faces'] = (bool)$new_instance['show_faces'];
165 $instance['show_stream'] = (bool)$new_instance['show_stream'];
166 $instance['show_header'] = (bool)$new_instance['show_header'];
167 $instance['small_header'] = (bool)$new_instance['small_header'];
168
169 return $instance;
170 }
171
172 /**
173 * Back end widget Form
174 * This displays the configuration form for the widget
175 */
176 public function form($instance)
177 {
178 $defaults = array(
179 'title' => $this->widget_title,
180 'page_name' => $this->facebook_username,
181 'width' => $this->facebook_width,
182 'height' => $this->facebook_height,
183 'language' => $this->facebook_language,
184 'show_faces' => $this->facebook_show_faces,
185 'show_stream' => $this->facebook_show_stream,
186 'show_header' => $this->facebook_show_header,
187 'small_header' => $this->facebook_small_header,
188 'tabs' => $this->facebook_tabs,
189 );
190
191 $available_languages = array(
192 'en_US-' => __('Most popular','aio-facebook-like-widget'),
193 'en_US--' => '---',
194 'en_US' => __('English','aio-facebook-like-widget') . ' - English',
195 'fr_FR' => __('French (France)','aio-facebook-like-widget') . ' - Français',
196 'es_ES' => __('Spanish (Spain)','aio-facebook-like-widget') . ' - Español (España)',
197 'nl_NL' => __('Dutch','aio-facebook-like-widget') . ' - Nederlands',
198 'de_DE' => __('German','aio-facebook-like-widget') . ' - Deutsch',
199 'it_IT' => __('Italian','aio-facebook-like-widget') . ' - Italiano',
200 'ru_RU' => __('Russian','aio-facebook-like-widget') . ' - Русский',
201 'zh_CN' => __('Simplified Chinese','aio-facebook-like-widget') . ' - 中文(简体',
202 'pt_BR' => __('Portuguese (Brazil)','aio-facebook-like-widget') . ' Português (Brasil)',
203 'id_ID' => __('Indonesian','aio-facebook-like-widget') . ' - Bahasa Indonesia',
204 'tr_TR' => __('Turkish','aio-facebook-like-widget') . ' - Türkçe',
205
206 'en_US---' => '---',
207 'en_US----' => __('More languages','aio-facebook-like-widget'),
208 'en_US-----' => '---',
209
210 'fr_CA' => __('French (Canada)','aio-facebook-like-widget') . ' - Français',
211 'af_ZA' => __('Afrikaans','aio-facebook-like-widget') . ' - Afrikaans',
212 'gn_PY' => __('Guaraní','aio-facebook-like-widget') . ' - Avañeẽ',
213 'ay_BO' => __('Aymara','aio-facebook-like-widget') . ' - Aymar aru',
214 'az_AZ' => __('Azeri','aio-facebook-like-widget') . ' - Azərbaycan dili',
215 'ms_MY' => __('Malay','aio-facebook-like-widget') . ' - Bahasa Melayu',
216 'jv_ID' => __('Javanese','aio-facebook-like-widget') . ' - Basa Jawa',
217 'bs_BA' => __('Bosnian','aio-facebook-like-widget') . ' - Bosanski',
218 'ca_ES' => __('Catalan','aio-facebook-like-widget') . ' - Català',
219 'cs_CZ' => __('Czech','aio-facebook-like-widget') . ' - Čeština',
220 'ck_US' => __('Cherokee','aio-facebook-like-widget') . ' - Cherokee',
221 'cy_GB' => __('Welsh','aio-facebook-like-widget') . ' - Cymraeg',
222 'da_DK' => __('Danish','aio-facebook-like-widget') . ' - Dansk',
223 'se_NO' => __('Northern Sámi','aio-facebook-like-widget') . ' - Davvisámegiella',
224 'et_EE' => __('Estonian','aio-facebook-like-widget') . ' - Eesti',
225 'en_IN' => __('English (India)','aio-facebook-like-widget') . ' - English (India)',
226 'en_GB' => __('English (UK)','aio-facebook-like-widget') . ' - English (UK)',
227 'es_LA' => __('Spanish','aio-facebook-like-widget') . ' - Español',
228 'es_CL' => __('Spanish (Chile)','aio-facebook-like-widget') . ' - Español (Chile)',
229 'es_CO' => __('Spanish (Colombia)','aio-facebook-like-widget') . ' - Español (Colombia)',
230 'es_MX' => __('Spanish (Mexico)','aio-facebook-like-widget'). ' - Español (México)',
231 'es_VE' => __('Spanish (Venezuela)','aio-facebook-like-widget') . ' - Español (Venezuela)',
232 'eo_EO' => __('Esperanto','aio-facebook-like-widget') . ' - Esperanto',
233 'eu_ES' => __('Basque','aio-facebook-like-widget') . ' - Euskara',
234 'tl_PH' => __('Filipino','aio-facebook-like-widget') . ' - Filipino',
235 'fo_FO' => __('Faroese','aio-facebook-like-widget') . ' - Føroyskt',
236 'fy_NL' => __('Frisian','aio-facebook-like-widget') . ' - Frysk',
237 'ga_IE' => __('Irish','aio-facebook-like-widget') . ' - Gaeilge',
238 'gl_ES' => __('Galician','aio-facebook-like-widget') . ' - Galego',
239 'ko_KR' => __('Korean','aio-facebook-like-widget') . ' - 한국어',
240 'hr_HR' => __('Croatian','aio-facebook-like-widget') . ' - Hrvatski',
241 'xh_ZA' => __('Xhosa','aio-facebook-like-widget') . ' - isiXhosa',
242 'zu_ZA' => __('Zulu','aio-facebook-like-widget') . ' - isiZulu',
243 'is_IS' => __('Icelandic','aio-facebook-like-widget') . ' - Íslenska',
244 'sw_KE' => __('Swahili','aio-facebook-like-widget') . ' - Kiswahili',
245 'tl_ST' => __('Klingon','aio-facebook-like-widget') . ' - tlhIngan-Hol',
246 'ku_TR' => __('Kurdish','aio-facebook-like-widget') . ' - Kurdî',
247 'lv_LV' => __('Latvian','aio-facebook-like-widget') . ' - Latviešu',
248 'lt_LT' => __('Lithuanian','aio-facebook-like-widget') . ' - Lietuvių',
249 'li_NL' => __('Limburgish','aio-facebook-like-widget') . ' - Lèmbörgs',
250 'la_VA' => __('Latin','aio-facebook-like-widget') . ' - lingua latina',
251 'hu_HU' => __('Hungarian','aio-facebook-like-widget') . ' - Magyar',
252 'mg_MG' => __('Malagasy','aio-facebook-like-widget') . ' - Malagasy',
253 'mt_MT' => __('Maltese','aio-facebook-like-widget') . ' - Malti',
254 'nl_BE' => __('Dutch (Flemish)','aio-facebook-like-widget') . ' - Nederlands (België)',
255 'ja_JP' => __('Japanese','aio-facebook-like-widget') . ' - 日本語',
256 'nb_NO' => __('Norwegian (bokmal)','aio-facebook-like-widget') . ' - Norsk (bokmål)',
257 'nn_NO' => __('Norwegian (nynorsk)','aio-facebook-like-widget') . ' - Norsk (nynorsk)',
258 'uz_UZ' => __('Uzbek','aio-facebook-like-widget') . ' - Ozbek',
259 'pl_PL' => __('Polish','aio-facebook-like-widget') . ' - Polski',
260 'pt_PT' => __('Portuguese (Portugal','aio-facebook-like-widget') . ' - Português (Portugal)',
261 'qu_PE' => __('Quechua','aio-facebook-like-widget') . ' - Qhichwa',
262 'ro_RO' => __('Romanian','aio-facebook-like-widget') . ' - Română',
263 'rm_CH' => __('Romansh','aio-facebook-like-widget') . ' - Rumantsch',
264 'sq_AL' => __('Albanian','aio-facebook-like-widget') . ' - Shqip',
265 'sk_SK' => __('Slovak','aio-facebook-like-widget') . ' - Slovenčina',
266 'sl_SI' => __('Slovenian','aio-facebook-like-widget') . ' - Slovenščina',
267 'so_SO' => __('Somali','aio-facebook-like-widget') . ' - Soomaaliga',
268 'fi_FI' => __('Finnish','aio-facebook-like-widget') . ' - Suomi',
269 'sv_SE' => __('Swedish','aio-facebook-like-widget') . ' - Svenska',
270 'th_TH' => __('Thai','aio-facebook-like-widget') . ' - ภาษาไทย',
271 'vi_VN' => __('Vietnamese','aio-facebook-like-widget') . ' - Tiếng Việt',
272 'zh_TW' => __('Traditional Chinese, Taiwan','aio-facebook-like-widget') . ' - 中文(台灣',
273 'zh_HK' => __('Traditional Chinese, Hong Kong','aio-facebook-like-widget') . ' - 中文(香港',
274 'el_GR' => __('Greek','aio-facebook-like-widget') . ' - Ελληνικά',
275 'be_BY' => __('Belarusian','aio-facebook-like-widget') . ' - Беларуская',
276 'bg_BG' => __('Bulgarian','aio-facebook-like-widget') . ' - Български',
277 'kk_KZ' => __('Kazakh','aio-facebook-like-widget') . ' - Қазақша',
278 'mk_MK' => __('Macedonian','aio-facebook-like-widget') . ' - Македонски',
279 'mn_MN' => __('Mongolian','aio-facebook-like-widget') . ' - Монгол',
280 'sr_RS' => __('Serbian','aio-facebook-like-widget') . ' - Српски',
281 'uk_UA' => __('Ukrainian','aio-facebook-like-widget') . ' - Українська',
282 'he_IL' => __('Hebrew','aio-facebook-like-widget') . ' - ‏עברית‏',
283 'sy_SY' => __('Syriac','aio-facebook-like-widget') . ' - ‏ܐܪܡܝܐ‏',
284 'ne_NP' => __('Nepali','aio-facebook-like-widget') . ' - नेपाली',
285 'hi_IN' => __('Hindi','aio-facebook-like-widget') . ' - हिन्दी',
286 'bn_IN' => __('Bengali','aio-facebook-like-widget') . ' - বাংলা',
287 'pa_IN' => __('Punjabi','aio-facebook-like-widget') . ' - ਪੰਜਾਬੀ',
288 'ta_IN' => __('Tamil','aio-facebook-like-widget') . ' - தமிழ்',
289
290 'en_PI' => __('English (Pirate)','aio-facebook-like-widget'). ' - English (Pirate)',
291 'en_UD' => __('English (Upside Down)','aio-facebook-like-widget') . ' - English (Upside Down)',
292 'fb_LT' => __('Leet Speak','aio-facebook-like-widget') . ' - Leet Speak',
293 );
294
295 $tabs = array(
296 '' => __('No','aio-facebook-like-widget'),
297 'timeline' => __('Timeline','aio-facebook-like-widget'),
298 'events' => __('Events','aio-facebook-like-widget'),
299 'timeline,events' => __('Timeline and events','aio-facebook-like-widget'),
300 'timeline,messages' => __('Timeline and messages','aio-facebook-like-widget'),
301 'timeline,events,messages' => __('Timeline, events and messages','aio-facebook-like-widget'),
302 );
303
304 $instance = wp_parse_args( (array) $instance, $defaults ); ?>
305
306
307 <!-- Widget Title: Text Input -->
308 <p>
309 <label for="<?php echo $this->get_field_id('title'); ?>" title="<?php _e('This will be displayed above the Like box', 'aio-facebook-like-widget') ?>"><?php _e('Title', 'aio-facebook-like-widget') ?>:</label>
310 <input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $instance['title']; ?>" />
311 </p>
312
313
314 <!-- Facebook pagename or id: Text Input -->
315 <p>
316 <label for="<?php echo $this->get_field_id('page_name'); ?>" title="<?php _e('This is the name of your page (the part after http://facebook.com/', 'aio-facebook-like-widget') ?>"><?php _e('Facebook Page Name (or Id)', 'aio-facebook-like-widget') ?>:</label>
317 <input type="text" class="widefat" id="<?php echo $this->get_field_id('page_name'); ?>" name="<?php echo $this->get_field_name('page_name'); ?>" value="<?php echo $instance['page_name']; ?>" />
318 </p>
319
320
321 <!-- Width: Text Input -->
322 <p>
323 <label for="<?php echo $this->get_field_id('width'); ?>"><?php _e('Width', 'aio-facebook-like-widget') ?>:</label>
324 <input type="text" class="widefat" id="<?php echo $this->get_field_id('width'); ?>" name="<?php echo $this->get_field_name('width'); ?>" value="<?php echo $instance['width']; ?>" />
325 </p>
326
327
328 <!-- Height: Text Input -->
329 <p>
330 <label for="<?php echo $this->get_field_id('height'); ?>" title="<?php _e("Leave blank or set to 'auto' to let the plugin determine the best height", 'aio-facebook-like-widget') ?>"><?php _e('Height', 'aio-facebook-like-widget') ?>:</label>
331 <input type="text" class="widefat" id="<?php echo $this->get_field_id('height'); ?>" name="<?php echo $this->get_field_name('height'); ?>" value="<?php echo $instance['height']; ?>" />
332 </p>
333
334
335 <!-- Tabs: Selectbox input -->
336 <p>
337 <label for="<?php echo $this->get_field_id('tabs'); ?>"><?php _e('Show content tabs', 'aio-facebook-like-widget') ?>:</label>
338 <select id="<?php echo $this->get_field_id('tabs'); ?>" name="<?php echo $this->get_field_name('tabs'); ?>" style="max-width: 100%;">
339 <?php
340 foreach($tabs as $tab_val => $tabs_exp)
341 {
342 echo '<option value="' . $tab_val . '"' . ($instance['tabs'] == $tab_val ? "selected" : "") . '>' . $tabs_exp . '</option>';
343 }
344 ?>
345 </select>
346 </p>
347
348
349 <!-- Show Faces: Checkbox Input -->
350 <p>
351 <input type="checkbox" class="widefat" id="<?php echo $this->get_field_id('show_faces'); ?>" name="<?php echo $this->get_field_name('show_faces'); ?>" value="1" <?php echo ($instance['show_faces'] == "true" ? "checked='checked'" : ""); ?> />
352 <label for="<?php echo $this->get_field_id('show_faces'); ?>"><?php _e('Show friends faces when logged in', 'aio-facebook-like-widget'); ?></label>
353 </p>
354
355
356 <!-- Show Header: Checkbox Input -->
357 <p>
358 <input type="checkbox" class="widefat" id="<?php echo $this->get_field_id('show_header'); ?>" name="<?php echo $this->get_field_name('show_header'); ?>" value="1" <?php echo ($instance['show_header'] == "true" ? "checked='checked'" : ""); ?> />
359 <label for="<?php echo $this->get_field_id('show_header'); ?>"><?php _e('Show page header', 'aio-facebook-like-widget'); ?></label>
360 </p>
361
362
363 <!-- Show Small Header: Checkbox Input -->
364 <p>
365 <input type="checkbox" class="widefat" id="<?php echo $this->get_field_id('small_header'); ?>" name="<?php echo $this->get_field_name('small_header'); ?>" value="1" <?php echo ($instance['small_header'] == "true" ? "checked='checked'" : ""); ?> />
366 <label for="<?php echo $this->get_field_id('small_header'); ?>" title="<?php _e('Creates the smallest widget possible with a small cover photo', 'aio-facebook-like-widget'); ?>"><?php _e('Compact mode', 'aio-facebook-like-widget'); ?></label>
367 </p>
368
369
370 <!-- Languages: Selectbox input -->
371 <p>
372 <label for="<?php echo $this->get_field_id('language'); ?>"><?php _e('Language', 'aio-facebook-like-widget') ?>:</label>
373 <select id="<?php echo $this->get_field_id('language'); ?>" name="<?php echo $this->get_field_name('language'); ?>" style="max-width: 100%;">
374 <?php
375 foreach($available_languages as $lang_code => $lang_name)
376 {
377 echo '<option value="' . $lang_code . '"' . ($instance['language'] == $lang_code ? "selected" : "") . '>' . $lang_name . '</option>';
378 }
379 ?>
380 </select>
381 </p>
382
383 <?php
384 }
385 }
386