Feed Them Social – Facebook, Instagram, Twitter, YouTube, Pinterest - Version 2.8.0

Version Description

Download this release

Release Info

Developer slickremix
Plugin Icon 128x128 Feed Them Social – Facebook, Instagram, Twitter, YouTube, Pinterest
Version 2.8.0
Comparing to
See all releases

Code changes from version 2.7.9 to 2.8.0

admin/class-fts-instagram-options-page.php CHANGED
@@ -42,7 +42,7 @@ class FTS_Instagram_Options_Page {
42
  $fts_instagram_custom_id = get_option( 'fts_instagram_custom_id' );
43
  $fts_instagram_show_follow_btn = get_option( 'instagram_show_follow_btn' );
44
  $fts_instagram_show_follow_btn_where = get_option( 'instagram_show_follow_btn_where' );
45
- $access_token = isset( $_GET['access_token'] ) ? sanitize_text_field( $_GET['access_token'] ) : get_option( 'fts_instagram_custom_api_token' );
46
 
47
  if ( isset( $_GET['access_token'] ) ) { ?>
48
  <script>
@@ -66,7 +66,7 @@ class FTS_Instagram_Options_Page {
66
  <?php esc_html_e( 'Get your Access Token and add a follow button and position it using the options below.', 'feed-them-social' ); ?>
67
  </div>
68
  <!-- custom option for padding -->
69
- <form method="post" class="fts-facebook-feed-options-form" action="options.php">
70
  <?php
71
  $fts_fb_options_nonce = wp_create_nonce( 'fts-instagram-options-page-nonce' );
72
 
@@ -121,10 +121,10 @@ class FTS_Instagram_Options_Page {
121
 
122
  <div class="feed-them-social-admin-input-wrap">
123
  <div class="feed-them-social-admin-input-label fts-instagram-border-bottom-color-label">
124
- <?php esc_html_e( 'Access Token', 'feed-them-social' );
125
 
126
 
127
- if ( isset( $_GET['access_token'] ) ) {
128
  // START AJAX TO SAVE TOKEN TO DB
129
  $fts_functions->feed_them_instagram_save_token();
130
  }
@@ -155,15 +155,18 @@ class FTS_Instagram_Options_Page {
155
  $text = isset( $test_app_token_response->meta->error_message ) ? $test_app_token_response->meta->error_message : $test_app_token_response->error_message;
156
  echo sprintf(
157
  esc_html( '%1$sOh No something\'s wrong. %2$s. Please try clicking the button again to get a new access token. If you need additional assistance please email us at support@slickremix.com %3$s', 'feed-them-social' ),
158
- '<div class="fts-failed-api-token">',
159
  esc_html( $text ),
160
  '</div>'
161
  );
162
  }
163
- if ( empty( $fts_instagram_access_token ) && empty($_GET['access_token']) ) {
 
 
 
164
  echo sprintf(
165
  esc_html( '%1$sYou are required to get an access token to view your photos.%2$s', 'feed-them-social' ),
166
- '<div class="fts-failed-api-token">',
167
  '</div>'
168
  );
169
  }
@@ -172,6 +175,160 @@ class FTS_Instagram_Options_Page {
172
  <div class="fts-clear"></div>
173
  </div>
174
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  <div class="feed-them-social-admin-input-wrap">
176
  <div class="fts-title-description-settings-page">
177
  <h3>
42
  $fts_instagram_custom_id = get_option( 'fts_instagram_custom_id' );
43
  $fts_instagram_show_follow_btn = get_option( 'instagram_show_follow_btn' );
44
  $fts_instagram_show_follow_btn_where = get_option( 'instagram_show_follow_btn_where' );
45
+ $access_token = isset( $_GET['access_token'] ) && isset( $_GET['feed_type'] ) && 'original_instagram' === $_GET['feed_type'] ? sanitize_text_field( $_GET['access_token'] ) : get_option( 'fts_instagram_custom_api_token' );
46
 
47
  if ( isset( $_GET['access_token'] ) ) { ?>
48
  <script>
66
  <?php esc_html_e( 'Get your Access Token and add a follow button and position it using the options below.', 'feed-them-social' ); ?>
67
  </div>
68
  <!-- custom option for padding -->
69
+ <form method="post" class="fts-facebook-feed-options-form" action="options.php" id="fts-instagram-feed-options-form">
70
  <?php
71
  $fts_fb_options_nonce = wp_create_nonce( 'fts-instagram-options-page-nonce' );
72
 
121
 
122
  <div class="feed-them-social-admin-input-wrap">
123
  <div class="feed-them-social-admin-input-label fts-instagram-border-bottom-color-label">
124
+ <?php esc_html_e( 'Access Token Required', 'feed-them-social' );
125
 
126
 
127
+ if ( isset( $_GET['access_token'], $_GET['feed_type'] ) && 'original_instagram' === $_GET['feed_type'] ) {
128
  // START AJAX TO SAVE TOKEN TO DB
129
  $fts_functions->feed_them_instagram_save_token();
130
  }
155
  $text = isset( $test_app_token_response->meta->error_message ) ? $test_app_token_response->meta->error_message : $test_app_token_response->error_message;
156
  echo sprintf(
157
  esc_html( '%1$sOh No something\'s wrong. %2$s. Please try clicking the button again to get a new access token. If you need additional assistance please email us at support@slickremix.com %3$s', 'feed-them-social' ),
158
+ '<div class="fts-failed-api-token instagram-failed-message">',
159
  esc_html( $text ),
160
  '</div>'
161
  );
162
  }
163
+
164
+ $feed_type = isset( $_GET['feed_type'] ) ? $_GET['feed_type'] : '';
165
+
166
+ if ( empty( $fts_instagram_access_token ) && 'original_instagram' !== $feed_type ) {
167
  echo sprintf(
168
  esc_html( '%1$sYou are required to get an access token to view your photos.%2$s', 'feed-them-social' ),
169
+ '<div class="fts-failed-api-token instagram-failed-message">',
170
  '</div>'
171
  );
172
  }
175
  <div class="fts-clear"></div>
176
  </div>
177
 
178
+
179
+
180
+
181
+
182
+
183
+ <div id="fb-token-master-wrap" class="feed-them-social-admin-input-wrap" >
184
+ <div class="fts-title-description-settings-page">
185
+ <h3>
186
+ <?php esc_html_e( 'Instagram Hashtag API Token', 'feed-them-social' ); ?>
187
+ </h3>
188
+ <?php
189
+ echo sprintf(
190
+ esc_html( 'You must have your Instagram Account linked to a Facebook Business Page, this is required to make the Instagram Hashtag Feed work. %1$sRead Instructions%2$s. Once you have completed the instructions you can click the button below and it will connect to your Facebook Account to get an access token. It should return a Facebook page or list of pages you are admin of and display which ones are connected to Instagram. Choose one, then click save.', 'feed-them-social' ),
191
+ '<a target="_blank" href="' . esc_url( 'https://www.slickremix.com/docs/link-instagram-account-to-facebook/' ) . '">',
192
+ '</a>'
193
+ ); ?>
194
+ <p>
195
+ <?php
196
+
197
+ // call to get instagram account attached to the facebook page
198
+ // 1844222799032692 = slicktest fb page (dev user)
199
+ // 1844222799032692?fields=instagram_business_account&access_token=
200
+ // This redirect url must have an &state= instead of a ?state= otherwise it will not work proper with the fb app. https://www.slickremix.com/instagram-token/&state=.
201
+ echo sprintf(
202
+ esc_html( '%1$sLogin and get my Access Token%2$s', 'feed-them-social' ),
203
+ '<a href="' . esc_url( 'https://www.facebook.com/dialog/oauth?client_id=2503994969928671&redirect_uri=https://www.slickremix.com/instagram-token/&state=' . admin_url( 'admin.php?page=fts-instagram-feed-styles-submenu-page' ) . '&scope=manage_pages,instagram_basic' ) . '" class="fts-facebook-get-access-token">',
204
+ '</a>'
205
+ );
206
+ ?>
207
+ </p>
208
+
209
+ </div>
210
+ <a href="<?php echo esc_url( 'mailto:support@slickremix.com' ); ?>" target="_blank" class="fts-admin-button-no-work"><?php esc_html_e( 'Button not working?', 'feed-them-social' ); ?></a>
211
+ <?php
212
+ $test_app_token_id = get_option( 'fts_facebook_instagram_custom_api_token' );
213
+ if ( ! empty( $test_app_token_id ) || ! empty( $test_app_token_id_biz ) ) {
214
+
215
+ $test_app_token_url = array(
216
+ 'app_token_id' => 'https://graph.facebook.com/debug_token?input_token=' . $test_app_token_id . '&access_token=' . $test_app_token_id,
217
+ );
218
+
219
+ // Test App ID
220
+ $test_app_token_response = $fts_functions->fts_get_feed_json( $test_app_token_url );
221
+ $test_app_token_response = json_decode( $test_app_token_response['app_token_id'] );
222
+
223
+ // echo '<pre>';
224
+ // print_r($test_app_token_response);
225
+ // echo '</pre>';
226
+ }
227
+ ?>
228
+ <div class="clear"></div>
229
+ <div class="feed-them-social-admin-input-wrap fts-fb-token-wrap" id="fts-fb-token-wrap" style="margin-bottom:0px;">
230
+ <div class="feed-them-social-admin-input-label fts-twitter-border-bottom-color-label">
231
+ <?php esc_html_e( 'Instagram ID', 'feed-them-social' ); ?>
232
+ </div>
233
+
234
+ <input type="text" name="fts_facebook_instagram_custom_api_token_user_id" class="feed-them-social-admin-input" id="fts_facebook_instagram_custom_api_token_user_id" value="<?php echo esc_attr( get_option( 'fts_facebook_instagram_custom_api_token_user_id' ) ); ?>"/>
235
+ <div class="clear" style="margin-bottom:10px;"></div>
236
+ <div class="feed-them-social-admin-input-label fts-twitter-border-bottom-color-label">
237
+ <?php esc_html_e( 'Access Token Required', 'feed-them-social' ); ?>
238
+ </div>
239
+
240
+ <input type="text" name="fts_facebook_instagram_custom_api_token" class="feed-them-social-admin-input" id="fts_facebook_instagram_custom_api_token" value="<?php echo esc_attr( get_option( 'fts_facebook_instagram_custom_api_token' ) ); ?>"/>
241
+ <div class="clear"></div>
242
+
243
+ <input type="text" hidden name="fts_facebook_instagram_custom_api_token_user_name" class="feed-them-social-admin-input" id="fts_facebook_instagram_custom_api_token_user_name" value="<?php echo esc_attr( get_option( 'fts_facebook_instagram_custom_api_token_user_name' ) ); ?>"/>
244
+ <input type="text" hidden name="fts_facebook_instagram_custom_api_token_profile_image" class="feed-them-social-admin-input" id="fts_facebook_instagram_custom_api_token_profile_image" value="<?php echo esc_attr( get_option( 'fts_facebook_instagram_custom_api_token_profile_image' ) ); ?>"/>
245
+
246
+ <div class="clear"></div>
247
+ <?php
248
+ if ( ! empty( $test_app_token_response ) && ! empty( $test_app_token_id ) ) {
249
+ if ( isset( $test_app_token_response->data->is_valid ) || '(#100) You must provide an app access token or a user access token that is an owner or developer of the app' === $test_app_token_response->error->message ) {
250
+ $fb_id = get_option( 'fts_facebook_instagram_custom_api_token_user_id' );
251
+ $fb_name = get_option( 'fts_facebook_instagram_custom_api_token_user_name' );
252
+ echo '<div class="fts-successful-api-token fts-special-working-wrap">';
253
+
254
+ if ( ! empty( $fb_id ) && ! empty( $fb_name ) && ! empty( $test_app_token_id ) ) {
255
+ echo '<a href="' . esc_url( 'https://www.facebook.com/' . get_option( 'fts_facebook_instagram_custom_api_token_user_id' ) ) . '" target="_blank"><img border="0" height="50" width="50" class="fts-fb-page-thumb" src="' . get_option( 'fts_facebook_instagram_custom_api_token_profile_image' ) .'"/></a><h3><a href="' . esc_url( 'https://www.facebook.com/' . get_option( 'fts_facebook_custom_api_token_user_id' ) ) . '" target="_blank">' . wp_kses(
256
+ $fb_name,
257
+ array(
258
+ 'span' => array(
259
+ 'class' => array(),
260
+ )
261
+ )
262
+ ) . '</a></h3>';
263
+ }
264
+
265
+ echo sprintf(
266
+ esc_html( 'Your access token is working! Generate your shortcode on the %1$sSettings Page%2$s', 'feed-them-social' ),
267
+ '<a href="' . esc_url( 'admin.php?page=feed-them-settings-page' . $custom_instagram_link_hash ) . '">',
268
+ '</a>'
269
+ );
270
+
271
+ echo '</div>';
272
+ }
273
+ if ( isset( $test_app_token_response->data->error->message ) && ! empty( $test_app_token_id ) || isset( $test_app_token_response->error->message ) && ! empty( $test_app_token_id ) && '(#100) You must provide an app access token or a user access token that is an owner or developer of the app' !== $test_app_token_response->error->message ) {
274
+ if ( isset( $test_app_token_response->data->error->message ) ) {
275
+ echo sprintf(
276
+ esc_html( '%1$sOh No something\'s wrong. %2$s. Please click the button above to retrieve a new Access Token.%3$s', 'feed-them-social' ),
277
+ '<div class="fts-failed-api-token">',
278
+ esc_html( $test_app_token_response->data->error->message ),
279
+ '</div>'
280
+ );
281
+ }
282
+ if ( isset( $test_app_token_response->error->message ) ) {
283
+ echo sprintf(
284
+ esc_html( '%1$sOh No something\'s wrong. %2$s. Please click the button above to retrieve a new Access Token.%3$s', 'feed-them-social' ),
285
+ '<div class="fts-failed-api-token">',
286
+ esc_html( $test_app_token_response->error->message ),
287
+ '</div>'
288
+ );
289
+ }
290
+
291
+ if ( isset( $test_app_token_response->data->error->message ) && empty( $test_app_token_id ) || isset( $test_app_token_response->error->message ) && empty( $test_app_token_id ) ) {
292
+ echo sprintf(
293
+ esc_html( '%1$sTo get started, please click the button above to retrieve your Access Token.%2$s', 'feed-them-social' ),
294
+ '<div class="fts-failed-api-token get-started-message">',
295
+ '</div>'
296
+ );
297
+ }
298
+ }
299
+ } else {
300
+ if ( ! isset( $_GET['return_long_lived_token'] ) || isset( $_GET['reviews_token'] ) ) {
301
+ echo sprintf(
302
+ esc_html( '%1$sTo get started, please click the button above to retrieve your Access Token.%2$s', 'feed-them-social' ),
303
+ '<div class="fts-failed-api-token get-started-message">',
304
+ '</div>'
305
+ );
306
+ }
307
+ }
308
+ ?>
309
+ <div class="clear"></div>
310
+
311
+ <?php
312
+
313
+ if ( isset( $_GET['return_long_lived_token'] ) && ! isset( $_GET['reviews_token'] ) ) {
314
+ // Echo our shortcode for the page token list with loadmore button
315
+ // These functions are on feed-them-functions.php!
316
+ echo do_shortcode( '[fts_fb_page_token]' );
317
+
318
+ }
319
+ ?>
320
+ </div>
321
+
322
+ <div class="clear"></div>
323
+ </div>
324
+ <!--/fts-facebook-feed-styles-input-wrap-->
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
  <div class="feed-them-social-admin-input-wrap">
333
  <div class="fts-title-description-settings-page">
334
  <h3>
admin/class-fts-settings-page-options.php CHANGED
@@ -593,13 +593,9 @@ class FTS_Settings_Page_Options {
593
  'class' => 'combine-instagram-user-option-text',
594
  ),
595
  2 => array(
596
- 'text' => __( 'Hashtag (required)', 'feed-them-social' ),
597
  'class' => 'combine-instagram-hashtag-option-text',
598
- ),
599
- 3 => array(
600
- 'text' => __( 'Location ID (required)', 'feed-them-social' ),
601
- 'class' => 'combine-instagram-location-option-text',
602
- ),
603
  ),
604
  'type' => 'text',
605
  'id' => 'combine_instagram_name',
@@ -611,13 +607,9 @@ class FTS_Settings_Page_Options {
611
  'class' => 'combine-instagram-user-option-text',
612
  ),
613
  2 => array(
614
- 'text' => __( 'Add your Hashtag below. Do not add the #, just the name.', 'feed-them-social' ),
615
- 'class' => 'combine-instagram-hashtag-option-text',
616
- ),
617
- 3 => array(
618
- 'text' => __( '<strong>NOTE:</strong> The post count may not count proper in some location instances because private instagram photos are in the mix. We cannot pull private accounts photos in any location feed. Add your Location ID below.', 'feed-them-social' ),
619
- 'class' => 'combine-instagram-location-option-text',
620
- ),
621
  ),
622
 
623
  // Relative to JS.
@@ -627,10 +619,66 @@ class FTS_Settings_Page_Options {
627
  'var_final_if' => 'no',
628
  'empty_error' => 'set',
629
  'empty_error_value' => '',
630
- ),
631
- 'sub_options_end' => 2,
632
  ),
633
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
634
  // Combine Pinterest
635
  array(
636
  'grouped_options_title' => __( 'Pinterest', 'feed-them-social' ),
@@ -4347,10 +4395,10 @@ class FTS_Settings_Page_Options {
4347
  ),
4348
 
4349
  // hastag Feed
4350
- // array(
4351
- // 'value' => 'hashtag',
4352
- // 'title' => __( 'Hashtag Feed', 'feed-them-social' ),
4353
- // ),
4354
 
4355
  // location Feed
4356
  // array(
@@ -4430,7 +4478,7 @@ class FTS_Settings_Page_Options {
4430
  'required' => 'yes',
4431
  'instructional-text' => array(
4432
  1 => array(
4433
- 'text' => __( 'Add your Hashtag below. <strong>DO NOT</strong> add the #, just the name.', 'feed-them-social' ),
4434
  'class' => 'instagram-hashtag-option-text',
4435
  ),
4436
  ),
@@ -4464,6 +4512,31 @@ class FTS_Settings_Page_Options {
4464
  ),
4465
  ),
4466
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4467
  // Pic Count
4468
  array(
4469
  'option_type' => 'input',
@@ -5011,4 +5084,4 @@ class FTS_Settings_Page_Options {
5011
 
5012
  return $feed_settings_array;
5013
  }
5014
- }
593
  'class' => 'combine-instagram-user-option-text',
594
  ),
595
  2 => array(
596
+ 'text' => __( 'Instagram ID # (required)', 'feed-them-social' ),
597
  'class' => 'combine-instagram-hashtag-option-text',
598
+ )
 
 
 
 
599
  ),
600
  'type' => 'text',
601
  'id' => 'combine_instagram_name',
607
  'class' => 'combine-instagram-user-option-text',
608
  ),
609
  2 => array(
610
+ 'text' => __( '<div class="fts-insta-info-plus-wrapper">If your Hashtag Access Token is set on the Instagram Options page of our plugin your ID should appear below.</div>', 'feed-them-social' ),
611
+ 'class' => 'combine-instagram-hashtag-option-text',
612
+ )
 
 
 
 
613
  ),
614
 
615
  // Relative to JS.
619
  'var_final_if' => 'no',
620
  'empty_error' => 'set',
621
  'empty_error_value' => '',
622
+ )
 
623
  ),
624
 
625
+
626
+ // Instagram Hashtag
627
+ array(
628
+ 'option_type' => 'input',
629
+ 'input_wrap_class' => 'combine_instagram_hashtag',
630
+ 'label' => array(
631
+ 1 => array(
632
+ 'text' => __( 'Hashtag (required)', 'feed-them-social' ),
633
+ 'class' => 'combine-instagram-hashtag-option-text',
634
+ ),
635
+ ),
636
+ 'type' => 'text',
637
+ 'id' => 'combine_instagram_hashtag',
638
+ 'name' => 'combine_instagram_hashtag',
639
+ 'required' => 'yes',
640
+ 'instructional-text' => array(
641
+ 1 => array(
642
+ 'text' => __( 'Add your hashtag below. <strong>DO NOT</strong> add the #, just the name. Only one hashtag allowed at this time. Hashtag media only stays on Instagram for 24 hours and the API does not give us a date/time. That also means if you decide to combine this feed these media posts will appear before any other posts because we cannot sort them by date. In order to use the Instagram hashtag feed you must have your Instagram account linked to a Facebook Business Page. <a target="_blank" href="https://www.slickremix.com/docs/link-instagram-account-to-facebook/">Read Instructions.</a>', 'feed-them-social' ),
643
+ 'class' => 'combine-instagram-hashtag-option-text',
644
+ ),
645
+ ),
646
+
647
+ // Relative to JS.
648
+ 'short_attr' => array(
649
+ 'attr_name' => 'hashtag',
650
+ 'var_final_if' => 'no',
651
+ 'empty_error' => 'yes',
652
+ ),
653
+ ),
654
+
655
+
656
+ // Hashtag Type
657
+ array(
658
+ 'option_type' => 'select',
659
+ 'input_wrap_class' => 'combine_instagram_hashtag_type',
660
+ 'label' => __( 'Hashtag Search Type', 'feed-them-social' ),
661
+
662
+ 'type' => 'text',
663
+ 'id' => 'combine_instagram_hashtag_type',
664
+ 'name' => 'combine_instagram_hashtag_type',
665
+ 'class' => 'combine_instagram-hashtag-type',
666
+ 'options' => array(
667
+ 1 => array(
668
+ 'label' => __( 'Recent Media', 'feed-them-social' ),
669
+ 'value' => 'recent-media',
670
+ ),
671
+ 2 => array(
672
+ 'label' => __( 'Top Media (Most Interactions)', 'feed-them-social' ),
673
+ 'value' => 'top-media',
674
+ ),
675
+ ),
676
+ 'short_attr' => array(
677
+ 'attr_name' => 'instagram_search',
678
+ ),
679
+ 'sub_options_end' => 2,
680
+ ),
681
+
682
  // Combine Pinterest
683
  array(
684
  'grouped_options_title' => __( 'Pinterest', 'feed-them-social' ),
4395
  ),
4396
 
4397
  // hastag Feed
4398
+ array(
4399
+ 'value' => 'hashtag',
4400
+ 'title' => __( 'Hashtag Feed', 'feed-them-social' ),
4401
+ ),
4402
 
4403
  // location Feed
4404
  // array(
4478
  'required' => 'yes',
4479
  'instructional-text' => array(
4480
  1 => array(
4481
+ 'text' => __( 'Add your hashtag below. <strong>DO NOT</strong> add the #, just the name. Only one hashtag allowed at this time. Hashtag media only stays on Instagram for 24 hours and the API does not give us a date/time. In order to use the Instagram hashtag feed you must have your Instagram account linked to a Facebook Business Page. <a target="_blank" href="https://www.slickremix.com/docs/link-instagram-account-to-facebook/">Read Instructions.</a>', 'feed-them-social' ),
4482
  'class' => 'instagram-hashtag-option-text',
4483
  ),
4484
  ),
4512
  ),
4513
  ),
4514
 
4515
+ // Hashtag Type
4516
+ array(
4517
+ 'option_type' => 'select',
4518
+ 'input_wrap_class' => 'instagram_hashtag_type',
4519
+ 'label' => __( 'Hashtag Search Type', 'feed-them-social' ),
4520
+
4521
+ 'type' => 'text',
4522
+ 'id' => 'instagram_hashtag_type',
4523
+ 'name' => 'instagram_hashtag_type',
4524
+ 'class' => 'instagram-hashtag-type',
4525
+ 'options' => array(
4526
+ 1 => array(
4527
+ 'label' => __( 'Recent Media', 'feed-them-social' ),
4528
+ 'value' => 'recent-media',
4529
+ ),
4530
+ 2 => array(
4531
+ 'label' => __( 'Top Media (Most Interactions)', 'feed-them-social' ),
4532
+ 'value' => 'top-media',
4533
+ ),
4534
+ ),
4535
+ 'short_attr' => array(
4536
+ 'attr_name' => 'search',
4537
+ ),
4538
+ ),
4539
+
4540
  // Pic Count
4541
  array(
4542
  'option_type' => 'input',
5084
 
5085
  return $feed_settings_array;
5086
  }
5087
+ }
admin/class-fts-settings-page.php CHANGED
@@ -840,7 +840,8 @@ class FTS_Settings_Page {
840
  <?php if ( ! is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) { ?>
841
  if (jQuery("select#shortcode-form-selector").val() == "combine-steams-shortcode-form") {
842
  jQuery('.combine-steams-shortcode-form, .fts-required-more-posts').hide();
843
- jQuery('#not_active_main_select, .fts-required-more-posts').show();
 
844
  }
845
  <?php } ?>
846
 
@@ -1011,7 +1012,7 @@ class FTS_Settings_Page {
1011
  if (jQuery('#instagram-messages-selector').val() == 'hashtag') {
1012
  jQuery(".instagram-location-option-text,.main-instagram-profile-options-wrap").hide();
1013
 
1014
- jQuery(".instagram_hashtag, .instagram-hashtag-option-text").show();
1015
  }
1016
  else if (jQuery('#instagram-messages-selector').val() == 'location') {
1017
  jQuery(".instagram-id-option-wrap,.instagram-user-option-text,.instagram-hashtag-option-text,.main-instagram-profile-options-wrap").hide();
@@ -1028,44 +1029,30 @@ class FTS_Settings_Page {
1028
  jQuery(".instagram-id-option-wrap,.instagram-user-option-text,.main-instagram-profile-options-wrap").show();
1029
  jQuery(".instagram-hashtag-option-text,.instagram-location-option-text").hide();
1030
  jQuery(".instagram_options_wrap").show();
1031
- jQuery(".fts-instagram-hashtag-location-options-message, .instagram_hashtag, .instagram-hashtag-option-text").hide();
1032
 
1033
  }
1034
  });
1035
 
1036
  jQuery('#combine_instagram_type').bind('change', function (e) {
1037
  if (jQuery('#combine_instagram_type').val() == 'hashtag') {
1038
- jQuery(".combine-instagram-id-option-wrap,.combine-instagram-user-option-text,.combine-instagram-location-option-text").hide();
 
1039
  jQuery(".combine-instagram-hashtag-option-text").show();
1040
 
1041
- jQuery(".combine-instagram-hashtag-option-text, .combine-instagram-hashtag-option-text, #combine_instagram_name").hide();
1042
 
1043
  if(!jQuery('.combine_instagram_type div').hasClass('fts-instagram-hashtag-location-options-message')){
1044
- jQuery( ".combine_instagram_type").append( fts_notice_message );
1045
  }
1046
  else {
1047
  jQuery(".fts-instagram-hashtag-location-options-message").show();
1048
  }
1049
- }
1050
- else if (jQuery('#combine_instagram_type').val() == 'location') {
1051
- jQuery(".combine-instagram-id-option-wrap,.combine-instagram-user-option-text,.combine-instagram-hashtag-option-text").hide();
1052
- jQuery(".combine-instagram-location-option-text").show();
1053
-
1054
- jQuery(".combine-instagram-location-option-text, .combine-instagram-location-option-text, #combine_instagram_name").hide();
1055
 
1056
- jQuery(".instagram_options_wrap").hide();
1057
- if(!jQuery('.combine_instagram_type div').hasClass('fts-instagram-hashtag-location-options-message')){
1058
- jQuery( ".combine_instagram_type").append( fts_notice_message );
1059
- }
1060
- else {
1061
- jQuery(".fts-instagram-hashtag-location-options-message").show();
1062
- }
1063
  }
1064
  else {
1065
- jQuery(".combine-instagram-id-option-wrap,.combine-instagram-user-option-text").show();
1066
- jQuery(".combine-instagram-hashtag-option-text,.combine-instagram-location-option-text").hide();
1067
- jQuery("#combine_instagram_name").show();
1068
- jQuery(".fts-instagram-hashtag-location-options-message").hide();
1069
 
1070
  }
1071
  });
@@ -1091,8 +1078,8 @@ class FTS_Settings_Page {
1091
  jQuery('#insta_access_token').val(jQuery('#insta_access_token').val() + '<?php echo esc_js( get_option( 'fts_instagram_custom_api_token' ) ); ?>');
1092
  }
1093
  else if (jQuery('#instagram-messages-selector').val() == 'hashtag') {
1094
- jQuery('#instagram_id, #insta_access_token').val('');
1095
- jQuery('#instagram_id').val(jQuery('#instagram_id').val() + '<?php echo esc_js( get_option( 'fts_facebook_instagram_custom_api_token_user_id' ) ); ?>');
1096
  }
1097
  else {
1098
  jQuery('#instagram_id').val('');
@@ -1154,8 +1141,9 @@ class FTS_Settings_Page {
1154
  if (jQuery('#combine_instagram_type').val() == 'user') {
1155
  jQuery('#combine_instagram_name').val(jQuery('#combine_instagram_name').val() + '<?php echo esc_js( get_option( 'fts_instagram_custom_id' ) ); ?>');
1156
  }
1157
- else {
1158
- jQuery('#combine_instagram_name').val('');
 
1159
  }
1160
 
1161
  });
840
  <?php if ( ! is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) { ?>
841
  if (jQuery("select#shortcode-form-selector").val() == "combine-steams-shortcode-form") {
842
  jQuery('.combine-steams-shortcode-form, .fts-required-more-posts').hide();
843
+ // jQuery('#not_active_main_select, .fts-required-more-posts').show();
844
+ jQuery('.fts-required-more-posts').show();
845
  }
846
  <?php } ?>
847
 
1012
  if (jQuery('#instagram-messages-selector').val() == 'hashtag') {
1013
  jQuery(".instagram-location-option-text,.main-instagram-profile-options-wrap").hide();
1014
 
1015
+ jQuery(".instagram_hashtag, .instagram-hashtag-option-text, .instagram_hashtag_type").show();
1016
  }
1017
  else if (jQuery('#instagram-messages-selector').val() == 'location') {
1018
  jQuery(".instagram-id-option-wrap,.instagram-user-option-text,.instagram-hashtag-option-text,.main-instagram-profile-options-wrap").hide();
1029
  jQuery(".instagram-id-option-wrap,.instagram-user-option-text,.main-instagram-profile-options-wrap").show();
1030
  jQuery(".instagram-hashtag-option-text,.instagram-location-option-text").hide();
1031
  jQuery(".instagram_options_wrap").show();
1032
+ jQuery(".fts-instagram-hashtag-location-options-message, .instagram_hashtag, .instagram-hashtag-option-text, .instagram_hashtag_type").hide();
1033
 
1034
  }
1035
  });
1036
 
1037
  jQuery('#combine_instagram_type').bind('change', function (e) {
1038
  if (jQuery('#combine_instagram_type').val() == 'hashtag') {
1039
+
1040
+ jQuery(".combine-instagram-id-option-wrap,.combine-instagram-location-option-text, .combine-instagram-user-option-text").hide();
1041
  jQuery(".combine-instagram-hashtag-option-text").show();
1042
 
1043
+ jQuery(".combine-instagram-hashtag-option-text, .combine-instagram-hashtag-option-text, #combine_instagram_name, .combine_instagram_hashtag, .combine_instagram_hashtag_type").show();
1044
 
1045
  if(!jQuery('.combine_instagram_type div').hasClass('fts-instagram-hashtag-location-options-message')){
1046
+ // jQuery( ".combine_instagram_type").append( fts_notice_message );
1047
  }
1048
  else {
1049
  jQuery(".fts-instagram-hashtag-location-options-message").show();
1050
  }
 
 
 
 
 
 
1051
 
 
 
 
 
 
 
 
1052
  }
1053
  else {
1054
+ jQuery(".combine-instagram-user-option-text").show();
1055
+ jQuery(".combine-instagram-hashtag-option-text,.combine-instagram-location-option-text, .combine_instagram_hashtag_type, .combine_instagram_hashtag, .fts-instagram-hashtag-location-options-message").hide();
 
 
1056
 
1057
  }
1058
  });
1078
  jQuery('#insta_access_token').val(jQuery('#insta_access_token').val() + '<?php echo esc_js( get_option( 'fts_instagram_custom_api_token' ) ); ?>');
1079
  }
1080
  else if (jQuery('#instagram-messages-selector').val() == 'hashtag') {
1081
+ jQuery('#instagram_id').val('<?php echo esc_js( get_option( 'fts_facebook_instagram_custom_api_token_user_id' ) ); ?>');
1082
+ jQuery('#insta_access_token').val('<?php echo esc_js( get_option( 'fts_facebook_instagram_custom_api_token' ) ); ?>');
1083
  }
1084
  else {
1085
  jQuery('#instagram_id').val('');
1141
  if (jQuery('#combine_instagram_type').val() == 'user') {
1142
  jQuery('#combine_instagram_name').val(jQuery('#combine_instagram_name').val() + '<?php echo esc_js( get_option( 'fts_instagram_custom_id' ) ); ?>');
1143
  }
1144
+ else if (jQuery('#combine_instagram_type').val() == 'hashtag') {
1145
+
1146
+ jQuery('#combine_instagram_name').val('<?php echo esc_js( get_option( 'fts_facebook_instagram_custom_api_token_user_id' ) ); ?>');
1147
  }
1148
 
1149
  });
admin/css/settings-page.css CHANGED
@@ -1,1641 +1 @@
1
- .clear,
2
- .fts-clear {
3
- clear: both
4
- }
5
-
6
- .display {
7
- display: block!important
8
- }
9
-
10
- .facebook-message-generator,
11
- .final-instagram-user-id-textarea,
12
- .final-shortcode-textarea,
13
- .fts-facebook_group-shortcode-form .twitter_name,
14
- .fts-fb-event-option-wrap .twitter_name,
15
- .shortcode-generator-form,
16
- instagram-shortcode-form {
17
- display: none
18
- }
19
-
20
- .feed-them_page_fts-facebook-feed-styles-submenu-page .use-of-plugin {
21
- font-size: 13px;
22
- font-weight: 400;
23
- line-height: 20px;
24
- max-width: 740px;
25
- border-bottom: 1px solid #ccc
26
- }
27
-
28
- .feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h1,
29
- .feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h2,
30
- .feed-them_page_fts-facebook-feed-styles-submenu-page .use-of-plugin,
31
- .feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h1,
32
- .feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h2,
33
- .feed-them_page_fts-instagram-feed-styles-submenu-page .use-of-plugin,
34
- .feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-wrap h1,
35
- .feed-them_page_fts-pinterest-feed-styles-submenu-page .use-of-plugin,
36
- .feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h1,
37
- .feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h2,
38
- .feed-them_page_fts-twitter-feed-styles-submenu-page .use-of-plugin,
39
- .feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap h1,
40
- .feed-them_page_fts-youtube-feed-styles-submenu-page .use-of-plugin {
41
- color: #333
42
- }
43
-
44
- .instagram-id-option-wrap {
45
- margin-top: 25px
46
- }
47
-
48
- .feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h2,
49
- .feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h2 {
50
- margin-top: 45px
51
- }
52
-
53
- .fts-super-instagram-options-wrap {
54
- padding-top: 0
55
- }
56
-
57
- .fts-empty-error input {
58
- background-color: #FDFDD3!important
59
- }
60
-
61
- .toplevel_page_feed-them-settings-page h1 {
62
- font-size: 32px
63
- }
64
-
65
- .feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h2,
66
- .fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap h2 {
67
- margin-top: 45px;
68
- color: #333
69
- }
70
-
71
- .feed-them-social-admin-wrap h1 {
72
- color: #FFF;
73
- margin: 0 0 5px;
74
- line-height: 30px;
75
- font-weight: 700
76
- }
77
-
78
- .feed-them-social-admin-wrap h4 {
79
- font-size: 12px;
80
- font-weight: 400;
81
- color: #000;
82
- margin: 1px 0 8px
83
- }
84
-
85
- .feed-them-social-admin-wrap input[type=button],
86
- .feed-them-social-admin-wrap input[type=submit] {
87
- -webkit-appearance: none
88
- }
89
-
90
- .feed-them-social-admin-wrap input[type=text] {
91
- line-height: 19px;
92
- max-width: 100%;
93
- font-weight: 400
94
- }
95
-
96
- .feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap,
97
- .feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap,
98
- .feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-wrap,
99
- .feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap,
100
- .feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap {
101
- max-width: 100%;
102
- width: 100%;
103
- min-height: auto;
104
- background: 0 0;
105
- padding: 0;
106
- -webkit-box-shadow: none;
107
- box-shadow: none;
108
- border-radius: 1px;
109
- position: relative;
110
- margin: 20px 20px 0 0;
111
- -webkit-text-size-adjust: none
112
- }
113
-
114
- .feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-input-wrap,
115
- .feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-input-wrap,
116
- .feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-input-wrap,
117
- .feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-input-wrap {
118
- background: 0 0
119
- }
120
-
121
- .feed-them-social-admin-wrap {
122
- max-width: 806px;
123
- min-height: 379px;
124
- padding: 19px;
125
- margin: 20px 10px 0 0;
126
- background-size: cover;
127
- -webkit-text-size-adjust: none;
128
- overflow: hidden;
129
- border-radius: 2px
130
- }
131
-
132
- .feed-them_page_fts-youtube-feed-styles-submenu-page h2 {
133
- color: #333!important;
134
- margin-top: 45px!important
135
- }
136
-
137
- .feed-them-social-admin-form .feed-them-social-admin-wrap h2 {
138
- color: #000;
139
- font-size: 20px;
140
- font-weight: 400;
141
- line-height: 23px;
142
- margin: 15px 0
143
- }
144
-
145
- .feed-them-social-admin-form {
146
- padding: 5px 0 0;
147
- height: auto;
148
- }
149
-
150
- .fts-facebook_group-shortcode-form:hover a {
151
- background-position: top right!important;
152
- background-size: 34px!important;
153
- height: 34px!important;
154
- width: 34px!important
155
- }
156
-
157
- .feed-them-social-admin-input-wrap {
158
- padding: 5px 0 10px;
159
- margin-bottom: 10px;
160
- border-radius: 2px;
161
- -webkit-border-radius: 2px
162
- }
163
-
164
- .pinterest-gen-selection {
165
- margin-bottom: 25px
166
- }
167
-
168
- .final-shortcode-textarea .feed-them-social-admin-input-label {
169
- color: #0361B8;
170
- width: auto;
171
- font-size: 14px
172
- }
173
-
174
- .instagram-shortcode-form .final-shortcode-textarea .feed-them-social-admin-input-label {
175
- color: #0361B8
176
- }
177
-
178
- .final-shortcode-textarea {
179
- margin-top: 25px
180
- }
181
-
182
- .final-shortcode-textarea input {
183
- width: 100%;
184
- margin-top: 2px
185
- }
186
-
187
- .feed-them-social-admin-input-label {
188
- float: left;
189
- width: 230px;
190
- margin-right: 10px;
191
- font-size: 13px;
192
- padding-top: 6px;
193
- font-weight: 700
194
- }
195
-
196
- .feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-input-label,
197
- .feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-input-label,
198
- .feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-input-label {
199
- float: left;
200
- width: 230px;
201
- margin-right: 10px;
202
- font-size: 13px;
203
- text-transform: none;
204
- padding-top: 6px
205
- }
206
-
207
- .feed-them-social-admin-input-label a {
208
- text-decoration: underline!important;
209
- cursor: pointer
210
- }
211
-
212
- .feed_them_social_id-answer a,
213
- .im-done {
214
- cursor: pointer!important
215
- }
216
-
217
- .feed-them-social-admin-input-example {
218
- float: left;
219
- font-weight: 700;
220
- margin-left: 10px;
221
- padding-top: 4px
222
- }
223
-
224
- .feed-them-social-admin-input {
225
- float: left;
226
- width: 305px;
227
- max-width: 100%;
228
- font-weight: 400
229
- }
230
-
231
- .feed-them-social-admin-input-default {
232
- float: left;
233
- width: 290px;
234
- padding: 4px 7px;
235
- border: 1px solid #DFDFDF;
236
- background-color: #FFF;
237
- font-size: 12px
238
- }
239
-
240
- .fts-color-settings-admin-form .feed-them-social-admin-submit-btn {
241
- float: left;
242
- margin: 0;
243
- padding: 0 20px;
244
- height: 37px;
245
- line-height: 35px
246
- }
247
-
248
- .feed-them-social-admin-submit-btn {
249
- padding: 10px 15px;
250
- border-radius: 1px;
251
- background-color: #31AC45!important;
252
- color: #fff!important;
253
- font-weight: 400;
254
- cursor: pointer!important;
255
- transition: all .3s ease-in-out;
256
- border: none;
257
- letter-spacing: 1px;
258
- outline: 0;
259
- font-size: 12px
260
- }
261
-
262
- .feed-them-social-admin-submit-btn,
263
- .feed-them-social-admin-submit-btn:hover {
264
- -webkit-transition: background 2s;
265
- -moz-transition: all .3s ease-in-out;
266
- -o-transition: all .3s ease-in-out
267
- }
268
-
269
- .feed-them-social-admin-submit-btn:hover {
270
- background-color: #2BBE43!important;
271
- color: #FFF!important;
272
- -webkit-transition: all .3s ease-in-out;
273
- transition: all .3s ease-in-out;
274
- outline: 0
275
- }
276
-
277
- .toplevel_page_feed-them-settings-page .feed-them-social-admin-slick-logo {
278
- right: 5px;
279
- -webkit-border-radius: 3px;
280
- border-radius: 3px
281
- }
282
-
283
- .feed_them_social_id-answer {
284
- padding: 15px 0;
285
- display: none;
286
- font-weight: 700
287
- }
288
-
289
- .feed_them_social_id-answer div {
290
- padding-bottom: 10px
291
- }
292
-
293
- .im-done {
294
- padding: 10px;
295
- background-color: #CD1723!important;
296
- border: none!important;
297
- color: #fff!important;
298
- font-weight: 700;
299
- text-shadow: 1px 1px 3px #000;
300
- filter: dropshadow(color=#000000, offx=1, offy=1);
301
- -webkit-border-radius: 3px;
302
- border-radius: 3px
303
- }
304
-
305
- #shortcode-form-selector {
306
- margin-bottom: 10px;
307
- height: 40px;
308
- min-width: 290px;
309
- line-height: 40px;
310
- }
311
-
312
- .feed-them-icon-wrap {
313
- position: absolute;
314
- right: 27px;
315
- top: 25px;
316
- width: 234px;
317
- height: 50px
318
- }
319
-
320
- .feed-them-social-admin-wrap,
321
- .fts-content,
322
- .fts-plugin-reviews {
323
- position: relative
324
- }
325
-
326
- .fts-facebook_group-shortcode-form:hover .feed-them-icon-wrap a.facebook-icon {
327
- background-position: top right!important;
328
- background-size: 34px!important;
329
- height: 34px!important;
330
- width: 34px!important;
331
- display: none
332
- }
333
-
334
- .feed-them-icon-wrap a {
335
- opacity: 1;
336
- float: right;
337
- margin-left: 1px;
338
- margin-bottom: 1px;
339
- display: block;
340
- height: 38px;
341
- width: 38px;
342
- cursor: default;
343
- outline: 0;
344
- border: none;
345
- box-shadow: 0 1px 1px #222;
346
- border-radius: 0;
347
- transition: all .3s ease-in-out
348
- }
349
-
350
- .feed-them-icon-wrap a,
351
- .feed-them-icon-wrap a:hover {
352
- -webkit-transition: all .3s ease-in-out;
353
- -moz-transition: all .3s ease-in-out;
354
- -o-transition: all .3s ease-in-out
355
- }
356
-
357
- .feed-them-icon-wrap a:hover {
358
- opacity: .85;
359
- transition: all .3s ease-in-out
360
- }
361
-
362
- .feed-them-icon-wrap a.facebook-icon {
363
- background: url(../images/facebook-icon.png) no-repeat
364
- }
365
-
366
- .feed-them-icon-wrap a.twitter-icon {
367
- background: url(../images/twitter-icon.png) top right no-repeat
368
- }
369
-
370
- .feed-them-icon-wrap a.instagram-icon {
371
- background: url(../images/instagram-icon.png) top right no-repeat
372
- }
373
-
374
- .feed-them-icon-wrap .feed-them-icon-wrap a.youtube-icon {
375
- background: url(../images/youtube-icon.png) top right no-repeat
376
- }
377
-
378
- .feed-them-icon-wrap a.pinterest-icon {
379
- background: url(../images/pinterest-icon.png) top right no-repeat
380
- }
381
-
382
- a.icon-animate-small {
383
- background-position: top right!important;
384
- background-size: 34px!important;
385
- height: 34px!important;
386
- width: 34px!important
387
- }
388
-
389
- .instructional-text {
390
- font-size: 13px;
391
- line-height: 19px;
392
- margin: 0 0 15px;
393
- border-bottom: 1px dotted #9C9C9C;
394
- color: #212121;
395
- padding: 0 0 5px
396
- }
397
-
398
- .instructional-text a {
399
- color: #0073aa;
400
- text-decoration: none
401
- }
402
-
403
- .instructional-text a,
404
- .instructional-text a:hover {
405
- -moz-transition: all .3s ease-in-out;
406
- -o-transition: all .3s ease-in-out
407
- }
408
-
409
- .instructional-text a:hover {
410
- transition: all .3s ease-in-out
411
- }
412
-
413
- .feed-them-custom-css {
414
- padding-top: 25px;
415
- padding-left: 0
416
- }
417
-
418
- .feed-them-clear-cache input {
419
- background-color: #F11E2E!important;
420
- margin-bottom: 10px
421
- }
422
-
423
- .feed-them-clear-cache input:hover {
424
- background-color: #F15D2E!important
425
- }
426
-
427
- .feed-them-clear-cache-text {
428
- color: #F11E2E!important;
429
- font-weight: 700;
430
- background-color: rgba(255, 255, 255, .88);
431
- padding: 10px 16px;
432
- margin-top: 10px;
433
- margin-bottom: 10px;
434
- border-radius: 2px;
435
- -webkit-border-radius: 2px;
436
- opacity: .9
437
- }
438
-
439
- .fts-get-premium-version {
440
- margin-right: 1em;
441
- margin-top: 15px;
442
- display: block;
443
- max-width: 210px;
444
- text-align: center;
445
- text-decoration: none!important
446
- }
447
-
448
- textarea#fts-color-options-main-wrapper-css-input {
449
- max-width: 100%;
450
- min-height: 350px;
451
- clear: both;
452
- background: #F9F9F9;
453
- font-family: Consolas, Monaco, monospace;
454
- font-size: 12px;
455
- width: 100%;
456
- height: 300px;
457
- outline: 0
458
- }
459
-
460
- .fts-custom-css-text {
461
- margin-bottom: 5px
462
- }
463
-
464
- label.toggle-custom-textarea-show:hover {
465
- background: #999
466
- }
467
-
468
- label.toggle-custom-textarea-show {
469
- max-width: 435px;
470
- display: block;
471
- height: 37px;
472
- line-height: 35px;
473
- float: left;
474
- text-align: center;
475
- padding: 0 15px;
476
- background: #818181;
477
- border-radius: 1px;
478
- font-size: 12px;
479
- clear: both;
480
- letter-spacing: 1px;
481
- margin: 5px 5px 10px 0;
482
- -webkit-transition: all .2s ease-in-out;
483
- -moz-transition: all .2s ease-in-out;
484
- -o-transition: all .2s ease-in-out;
485
- transition: all .2s ease-in-out
486
- }
487
-
488
- #fts-color-options-main-wrapper-css-input,
489
- .fts-custom-css-text,
490
- .toggle-custom-textarea-hide {
491
- display: none
492
- }
493
-
494
- .fts-admin-wrap p input[type=checkbox],
495
- .fts-wp-header-custom input[type=checkbox] {
496
- margin: -1px 7px 0 2px!important
497
- }
498
-
499
- .fts-color-settings-admin-form p,
500
- .fts-powered-by-settings-admin-form p {
501
- color: #000;
502
- font-size: 12px;
503
- -webkit-text-size-adjust: none
504
- }
505
-
506
- .fts-powered-by-settings-admin-form p {
507
- margin-bottom: 0
508
- }
509
-
510
- .feed-them-custom-logo-css {
511
- margin-top: 25px
512
- }
513
-
514
- #discount-for-review {
515
- clear: both;
516
- margin-bottom: 1px;
517
- text-align: center;
518
- font-weight: 700;
519
- color: #000;
520
- background: rgba(255, 255, 255, .53);
521
- float: right;
522
- width: 195px;
523
- line-height: 40px;
524
- cursor: pointer
525
- }
526
-
527
- .discount-review-text {
528
- clear: both;
529
- color: #333;
530
- background: rgba(255, 255, 255, .9);
531
- width: 165px;
532
- float: right;
533
- padding: 20px 15px;
534
- text-align: center;
535
- display: none
536
- }
537
-
538
- #discount-for-review a {
539
- display: inline-block;
540
- width: auto;
541
- height: auto;
542
- margin: 0;
543
- padding: 0;
544
- border: none;
545
- box-shadow: none;
546
- float: none;
547
- cursor: pointer;
548
- text-decoration: none;
549
- font-size: 12px;
550
- font-weight: 700;
551
- color: #0073aa
552
- }
553
-
554
- .fts-color-settings-admin-form label,
555
- .fts-color-settings-admin-form span {
556
- color: #060606
557
- }
558
-
559
- .fts-color-settings-admin-form p.example {
560
- color: #FFF;
561
- padding-bottom: 35px!important
562
- }
563
-
564
- .fts-color-settings-admin-form fieldset label {
565
- color: #FFF;
566
- line-height: 30px
567
- }
568
-
569
- .fts-color-settings-admin-form fieldset a {
570
- color: #FFF;
571
- text-decoration: none
572
- }
573
-
574
- @media (max-width:800px) {
575
- .toplevel_page_feed-them-settings-page .feed-them-social-admin-wrap h1 {
576
- text-shadow: #fff!important;
577
- height: 32px!important;
578
- width: 280px!important;
579
- background-size: 280px!important
580
- }
581
- .feed-them-icon-wrap {
582
- position: relative;
583
- margin: -20px 0 70px;
584
- left: 0!important;
585
- height: auto;
586
- clear: both;
587
- text-align: left
588
- }
589
- .feed-them-social-admin-slick-logo {
590
- display: none
591
- }
592
- #fts-date-and-time-format {
593
- width: 100%
594
- }
595
- }
596
-
597
- .fts-failed-api-token,
598
- .fts-successful-api-token {
599
- clear: both;
600
- float: left;
601
- padding: 7px 14px 7px 10px;
602
- border: 1px solid rgba(255, 255, 255, .45);
603
- color: #000;
604
- margin: 10px 20px 0 0;
605
- max-width: 715px;
606
- width: 100%
607
- }
608
-
609
- .fts-failed-api-token {
610
- background: rgba(245, 207, 206, .78)
611
- }
612
-
613
- .fts-successful-api-token {
614
- background: rgba(220, 253, 205, .78)
615
- }
616
-
617
- .feed-them_page_fts-facebook-feed-styles-submenu-page .fts-failed-api-token,
618
- .feed-them_page_fts-facebook-feed-styles-submenu-page .fts-successful-api-token,
619
- .feed-them_page_fts-instagram-feed-styles-submenu-page .fts-failed-api-token,
620
- instagram-failed-message,
621
- .feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them_page_fts-instagram-feed-styles-submenu-page .fts-successful-api-token {
622
- margin-top: 0!important;
623
- padding: 10px 15px;
624
- max-width: 708px
625
- }
626
-
627
- .fts-special-working-wrap {
628
- padding: 8px!important;
629
- max-width: 722px!important
630
- }
631
-
632
- #fts_facebook_custom_api_token,
633
- #fts_facebook_custom_api_token_biz,
634
- #fts_facebook_instagram_custom_api_token {
635
- margin-bottom: 20px!important
636
- }
637
-
638
- .fts-facebook-custom-api-token-label {
639
- display: block;
640
- margin: 0 40px 4px 0
641
- }
642
-
643
- .fts-facebook-custom-api-token-label a {
644
- font-weight: 700;
645
- color: #DF1818
646
- }
647
-
648
- .twitter-api-wrap {
649
- margin: 20px 0 0
650
- }
651
-
652
- .twitter-api-wrap .feed-them-social-admin-input-wrap {
653
- margin: 0
654
- }
655
-
656
- .fts-facebook-custom-api-token-label,
657
- .fts-instagram-custom-api-token-label {
658
- max-width: 700px;
659
- line-height: 21px;
660
- font-size: 13px
661
- }
662
-
663
- .fts-facebook-get-access-token,
664
- .fts-facebook-get-access-token:focus,
665
- .fts-instagram-get-access-token,
666
- .fts-instagram-get-access-token:focus,
667
- .fts-pinterest-get-access-token,
668
- .fts-pinterest-get-access-token:focus,
669
- .fts-twitter-get-access-token,
670
- .fts-twitter-get-access-token:focus,
671
- .fts-youtube-get-access-token,
672
- .fts-youtube-get-access-token:focus {
673
- border-radius: 5px;
674
- box-shadow: 0 1px 1px #999;
675
- display: block;
676
- clear: both;
677
- float: left;
678
- font-size: 14px;
679
- margin-bottom: 25px;
680
- margin-top: 5px;
681
- text-decoration: none;
682
- font-weight: 600
683
- }
684
-
685
- .fts-instagram-get-access-token,
686
- .fts-instagram-get-access-token:focus {
687
- padding: 18px 16px 19px 188px;
688
- background: url(../images/instagram-logo-admin.png) 13px 12px no-repeat #FFF;
689
- color: #252525
690
- }
691
-
692
- .fts-pinterest-get-access-token,
693
- .fts-pinterest-get-access-token:focus {
694
- padding: 18px 16px 19px 188px;
695
- background: url(../images/pinterest-logo-admin.jpg) 13px 12px no-repeat #FFF;
696
- color: #252525
697
- }
698
-
699
- .fts-facebook-get-access-token:hover,
700
- .fts-instagram-get-access-token:hover,
701
- .fts-pinterest-get-access-token:hover {
702
- color: #666
703
- }
704
-
705
- .fts-facebook-get-access-token,
706
- .fts-facebook-get-access-token:focus {
707
- padding: 18px 16px 19px 182px;
708
- background: url(../images/facebook-logo-admin.jpg) 14px 12px no-repeat #FFF;
709
- color: #252525
710
- }
711
-
712
- @font-face {
713
- margin: 0 0 9px;
714
- font-size: 19px
715
- }
716
-
717
- .fts-title-description-settings-page {
718
- padding: 25px 0 15px;
719
- max-width: 740px;
720
- border-top: 1px solid #ccc
721
- }
722
-
723
- .fts-premium-options-message,
724
- .fts-premium-options-message2 {
725
- font-size: 13px;
726
- padding: 20px 25px 25px;
727
- line-height: 19px;
728
- background-color: #FFF;
729
- margin: 0
730
- }
731
-
732
- .fts-premium-options-message a:first-child,
733
- .fts-premium-options-message2 a:first-child {
734
- font-size: 16px;
735
- display: inline-block;
736
- padding: 0;
737
- margin: 0 0 5px;
738
- text-decoration: none
739
- }
740
-
741
- .fts-plugin-reviews {
742
- max-width: 789px;
743
- padding: 25px 28px 31px;
744
- box-shadow: 0 0 1px #d1d1d1;
745
- border-radius: 1px;
746
- background: rgba(255, 255, 255, 1);
747
- -webkit-text-size-adjust: none;
748
- font-size: 13px;
749
- line-height: 21px;
750
- margin-right: 10px
751
- }
752
-
753
- .fts-plugin-reviews a {
754
- text-decoration: none
755
- }
756
-
757
- .fts-plugin-reviews-rate {
758
- margin-bottom: 20px;
759
- padding-bottom: 20px;
760
- border-bottom: 1px solid #eee
761
- }
762
-
763
- h1.plugin-author-note {
764
- margin: 50px 0 15px!important;
765
- font-size: 22px;
766
- color: #222;
767
- z-index: 1;
768
- position: relative
769
- }
770
-
771
- .toplevel_page_feed-them-settings-page .error {
772
- margin: 20px 20px 20px 0;
773
- max-width: 818px
774
- }
775
-
776
- .feed-them_page_fts-facebook-feed-styles-submenu-page .error,
777
- .feed-them_page_fts-instagram-feed-styles-submenu-page .error,
778
- .feed-them_page_fts-pinterest-feed-styles-submenu-page .error,
779
- .feed-them_page_fts-system-info-submenu-page .error,
780
- .feed-them_page_fts-system-info-submenu-page .notice,
781
- .feed-them_page_fts-twitter-feed-styles-submenu-page .error,
782
- .feed-them_page_fts-youtube-feed-styles-submenu-page .error {
783
- margin: 20px 20px 20px 0!important
784
- }
785
-
786
- .feed-them_page_fts-bar-settings-page .error {
787
- margin: 20px 20px 20px 5px!important;
788
- max-width: 1005px
789
- }
790
-
791
- .hashtag-option-small-text,
792
- .twitter-hashtag-etc-wrap {
793
- display: none
794
- }
795
-
796
- .twitter-hashtag-etc-wrap {
797
- margin: 15px 0 35px
798
- }
799
-
800
- .fts-content {
801
- background-color: rgba(241, 241, 241, .65);
802
- padding: 30px;
803
- z-index: 1;
804
- display: nonee;
805
- border-radius: 2px;
806
- box-shadow: 0 2px 10px rgba(41, 41, 41, .51);
807
- min-height: 315px
808
- }
809
-
810
- .shortcode-generator-form {
811
- border-radius: 3px;
812
- margin-top: 15px
813
- }
814
-
815
- .instructional-text a:hover {
816
- color: #EA1616;
817
- text-decoration: underline;
818
- opacity: .8
819
- }
820
-
821
- .final-shortcode-textarea h4 {
822
- border-bottom: 1px solid #FFF;
823
- padding: 0 0 10px;
824
- font-size: 13px;
825
- margin-bottom: 15px
826
- }
827
-
828
- .toplevel_page_feed-them-settings-page .fts-content h1 {
829
- color: #fbfbfb;
830
- margin: 0 0 12px;
831
- line-height: 30px;
832
- text-shadow: 1px 1px 1px rgba(51, 51, 51, .06);
833
- font-weight: 600;
834
- background: url(../images/feed-them-social-logo.png) no-repeat;
835
- height: 40px;
836
- width: 377px;
837
- font-size: 0
838
- }
839
-
840
- .fb-options-wrap .feed-them-social-admin-submit-btn {
841
- margin-top: 5px
842
- }
843
-
844
- #fts-social-selector,
845
- .twitter-gen-selection {
846
- margin-bottom: 25px
847
- }
848
-
849
- .fts-text-align-center {
850
- text-align: center
851
- }
852
-
853
- .toplevel_page_feed-them-settings-page .feed-them-social-admin-slick-logo {
854
- background: url(../images/footer-logo.png) center no-repeat;
855
- width: 110px;
856
- height: 20px;
857
- padding: 0;
858
- margin: 20px 0 -20px;
859
- display: inline-block;
860
- position: relative;
861
- bottom: 0;
862
- : 0;
863
- opacity: 1
864
- }
865
-
866
- .fb-image,
867
- .fts-backg {
868
- width: 100%;
869
- height: 100%
870
- }
871
-
872
- .feed-them-social-admin-wrap h3 {
873
- color: #000;
874
- font-size: 20px;
875
- font-weight: 400;
876
- line-height: 23px;
877
- margin: 0 0 5px
878
- }
879
-
880
- .feed-them-social-admin-wrap .feed-them-social-admin-form h2 {
881
- color: #000;
882
- font-size: 23px;
883
- font-weight: 400;
884
- line-height: 23px;
885
- margin: 15px 0 20px;
886
- padding: 0
887
- }
888
-
889
- .instagram-id-option-wrap .feed-them-social-admin-submit-btn,
890
- .toplevel_page_feed-them-settings-page .feed-them-social-admin-submit-btn {
891
- margin-top: 0;
892
- margin-left: 0!important
893
- }
894
-
895
- .toplevel_page_feed-them-settings-page .instagram-id-option-wrap .feed-them-social-admin-submit-btn {
896
- margin-top: 5px!important;
897
- margin-left: 0!important
898
- }
899
-
900
- .feed-them-clear-cache .use-of-plugin {
901
- margin: 0
902
- }
903
-
904
- .feed-them-clear-cache h2,
905
- .feed-them-custom-css h2,
906
- .feed-them-custom-logo-css h2 {
907
- margin-bottom: 10px;
908
- margin-top: 5px;
909
- font-size: 17px;
910
- padding-top: 20px;
911
- border-top: 1px dotted rgba(177, 177, 177, .88);
912
- color: #060606
913
- }
914
-
915
- .feed-them-clear-cache h2 {
916
- border: none;
917
- margin-top: 17px;
918
- padding-top: 0
919
- }
920
-
921
- .feed-them-custom-css p,
922
- .feed-them-custom-logo-css p {
923
- margin: 0 0 5px
924
- }
925
-
926
- #fts-date-and-time-format {
927
- margin-bottom: 10px
928
- }
929
-
930
- .feed-them-social-admin-submit-btn {
931
- margin-top: 15px!important
932
- }
933
-
934
- #fts_admin_bar_menu {
935
- margin-bottom: 0;
936
- margin-left: 31px
937
- }
938
-
939
- .fts-backg {
940
- position: absolute;
941
- top: 0;
942
- right: 0;
943
- z-index: 0;
944
- opacity: 1;
945
- -webkit-animation: ftsettings 5s;
946
- animation: ftsettings 5s;
947
- background: rgba(255, 255, 255, .8)
948
- }
949
-
950
- @-webkit-keyframes ftsettings {
951
- from {
952
- opacity: 0
953
- }
954
- to {
955
- opacity: 1
956
- }
957
- }
958
-
959
- @keyframes ftsettings {
960
- from {
961
- opacity: 0
962
- }
963
- to {
964
- opacity: 1
965
- }
966
- }
967
-
968
- .fb-reviews,
969
- .reviews-options {
970
- display: none
971
- }
972
-
973
- .fts-required-token-message {
974
- padding: 15px;
975
- background: #fcfcfc;
976
- margin: 12px 0 20px;
977
- border-left: 4px solid #FB3939
978
- }
979
-
980
- .custom_time_ago_wrap {
981
- padding-top: 10px
982
- }
983
-
984
- .custom_time_ago_wrap h2 {
985
- margin-bottom: 20px
986
- }
987
-
988
- .custom_time_ago_wrap label {
989
- color: #000;
990
- display: inline-block;
991
- min-width: 75px;
992
- margin: 0 10px 12px;
993
- font-size: 13px
994
- }
995
-
996
- .slideshow-wrap {
997
- margin-top: 18px
998
- }
999
-
1000
- .fb-page-list {
1001
- margin: 0;
1002
- display: block;
1003
- max-width: 740px
1004
- }
1005
-
1006
- .fb-page-list li {
1007
- background: #FFF;
1008
- padding: 8px 10px 10px;
1009
- margin: 0;
1010
- border-left: 15px solid #3b5999;
1011
- border-bottom: 1px solid #e9ebee;
1012
- cursor: pointer
1013
- }
1014
-
1015
- .fb-page-list li .feed-them-social-admin-submit-btn {
1016
- display: none;
1017
- margin-top: 9px!important;
1018
- position: absolute;
1019
- right: 15px;
1020
- top: 7px
1021
- }
1022
-
1023
- .fb-page-list li:hover {
1024
- background: rgba(255, 255, 255, .57)
1025
- }
1026
-
1027
- .fb-image {
1028
- margin: 0 15px 0 0;
1029
- float: left;
1030
- line-height: 50px;
1031
- text-align: center!important;
1032
- max-width: 50px;
1033
- min-width: 50px;
1034
- vertical-align: baseline;
1035
- min-height: 50px
1036
- }
1037
-
1038
- .fb-image img {
1039
- display: inline-block;
1040
- vertical-align: middle;
1041
- border-radius: 50px
1042
- }
1043
-
1044
- .fb-name {
1045
- margin: 0;
1046
- display: inline-block;
1047
- line-height: 15px;
1048
- /* letter-spacing:1px; */
1049
- color: #4c4c4c;
1050
- font-weight: 500;
1051
- padding-top: 10px;
1052
- }
1053
-
1054
- .board-name,
1055
- .combine-instagram-hashtag-option-text,
1056
- .combine-instagram-location-option-text,
1057
- .fb-video-play-btn-options-content,
1058
- .fb-video-play-btn-options-wrap,
1059
- .fb_album_photos_id,
1060
- .fts-facebook-grid-options-wrap,
1061
- .fts-facebook-load-more-options-wrap,
1062
- .fts-facebook-load-more-options2-wrap,
1063
- .fts-fb-id,
1064
- .fts-instagram-load-more-options-wrap,
1065
- .fts-super-facebook-options-wrap,
1066
- .fts-youtube-load-more-options-wrap,
1067
- .fts-youtube-load-more-options2-wrap,
1068
- .instagram-hashtag-option-text,
1069
- .instagram-location-option-text,
1070
- .page-token,
1071
- .pinterest-board-and-name-text,
1072
- .slider_options_wrap,
1073
- .slideshow-wrap,
1074
- .youtube_align_comments_wrap,
1075
- .youtube_channelID2,
1076
- .youtube_name,
1077
- .youtube_name2,
1078
- .youtube_playlistID,
1079
- .youtube_playlistID2,
1080
- .youtube_singleVideoID {
1081
- display: none
1082
- }
1083
-
1084
- .fts-pages-info {
1085
- background: #3b5999;
1086
- max-width: 710px;
1087
- padding: 10px 15px 12px;
1088
- color: #FFF;
1089
- margin-top: 1px;
1090
- letter-spacing: .5px
1091
- }
1092
-
1093
- .fts-fb-page-thumb {
1094
- float: left;
1095
- margin-right: 10px;
1096
- border-radius: 50px
1097
- }
1098
-
1099
- .fts-successful-api-token h3 {
1100
- margin-bottom: 0;
1101
- margin-top: 4px;
1102
- font-weight: 700
1103
- }
1104
-
1105
- .use-of-plugin {
1106
- color: #000;
1107
- font-size: 13px;
1108
- font-weight: 400;
1109
- line-height: 20px;
1110
- max-width: 60%;
1111
- padding-bottom: 12px;
1112
- margin-bottom: 0
1113
- }
1114
-
1115
- .fts-admin-button-no-work {
1116
- margin: 0 0 0 25px;
1117
- line-height: 41px
1118
- }
1119
-
1120
- .twitter_hashtag_etc_name {
1121
- padding-top: 0
1122
- }
1123
-
1124
- .page.inst-text-facebook-page {
1125
- display: block
1126
- }
1127
-
1128
- .slider_options_wrap.not-active-premium-fields,
1129
- .slideshow-wrap .feed-them-social-admin-input-default {
1130
- display: block!important
1131
- }
1132
-
1133
- .fts-premium-options-message a.not-active-title:first-child {
1134
- font-size: 16px!important;
1135
- display: block!important;
1136
- padding: 0!important;
1137
- margin: 0 0 5px!important;
1138
- text-decoration: none!important
1139
- }
1140
-
1141
- .combine-facebook-wrap,
1142
- .combine-grid-options-wrap,
1143
- .combine-instagram-wrap,
1144
- .combine-pinterest-wrap,
1145
- .combine-twitter-wrap,
1146
- .combine-youtube-wrap,
1147
- .combine_board_id,
1148
- .combine_playlist_id,
1149
- .combine_youtube_name,
1150
- .display-comments-wrap,
1151
- .facebook-reviews-wrap,
1152
- .fts-premium-options-message,
1153
- .fts-twitter-grid-options-wrap,
1154
- .fts-twitter-load-more-options-wrap,
1155
- .fts-twitter-load-more-options2-wrap,
1156
- .inst-text-facebook-reviews,
1157
- .instagram-profile-options-wrap,
1158
- .like-box-wrap {
1159
- display: none
1160
- }
1161
-
1162
- .sectioned-options-title {
1163
- margin-top: 15px!important;
1164
- margin-bottom: 15px!important;
1165
- border-bottom: 1px solid #f1f1f1;
1166
- padding: 10px 10px 10px 30px;
1167
- font-size: 18px!important;
1168
- color: #060606!important;
1169
- background: #FFF;
1170
- margin-left: -30px!important;
1171
- box-shadow: 0 1px 1px rgba(153, 153, 153, .59)
1172
- }
1173
-
1174
- .facebook-image-animation-option-wrap,
1175
- .multiple_facebook .facebook-loadmore-wrap,
1176
- .multiple_facebook .facebook-title-options-wrap,
1177
- .multiple_facebook .like-box-wrap,
1178
- .multiple_facebook h2 {
1179
- display: none!important
1180
- }
1181
-
1182
- .fts-fb-load-more,
1183
- .fts-fb-spinner {
1184
- text-align: center
1185
- }
1186
-
1187
- .fts-fb-spinner>div {
1188
- width: 10px;
1189
- height: 10px;
1190
- background-color: #999;
1191
- border-radius: 100%;
1192
- display: inline-block;
1193
- -webkit-animation: fts-fb-bouncedelay 1.4s infinite ease-in-out;
1194
- animation: fts-fb-bouncedelay 1.4s infinite ease-in-out;
1195
- -webkit-animation-fill-mode: both;
1196
- animation-fill-mode: both
1197
- }
1198
-
1199
- .fts-hide-me,
1200
- .popup-gallery-fb .fts-fb-caption {
1201
- display: none
1202
- }
1203
-
1204
- .fb-social-btn-below-description,
1205
- .fb-social-btn-bottom,
1206
- .fb-social-btn-top {
1207
- width: 100%!important;
1208
- overflow: hidden
1209
- }
1210
-
1211
- .fts-fb-spinner .bounce1 {
1212
- -webkit-animation-delay: -.32s;
1213
- animation-delay: -.32s
1214
- }
1215
-
1216
- .fts-fb-spinner .bounce2 {
1217
- -webkit-animation-delay: -.16s;
1218
- animation-delay: -.16s
1219
- }
1220
-
1221
- @-webkit-keyframes fts-fb-bouncedelay {
1222
- 0%,
1223
- 100%,
1224
- 80% {
1225
- -webkit-transform: scale(0)
1226
- }
1227
- 40% {
1228
- -webkit-transform: scale(1)
1229
- }
1230
- }
1231
-
1232
- @keyframes fts-fb-bouncedelay {
1233
- 0%,
1234
- 100%,
1235
- 80% {
1236
- transform: scale(0);
1237
- -webkit-transform: scale(0)
1238
- }
1239
- 40% {
1240
- transform: scale(1);
1241
- -webkit-transform: scale(1)
1242
- }
1243
- }
1244
-
1245
- .fts-fluid-videoWrapper-html5 video {
1246
- object-fit: inherit;
1247
- margin-bottom: 0!important
1248
- }
1249
-
1250
- .fts-fb-album-view-link a {
1251
- color: #FFF
1252
- }
1253
-
1254
- .fts-fb-album-view-link a:hover {
1255
- color: #eee
1256
- }
1257
-
1258
- .fts-fb-load-more {
1259
- border-radius: 1px;
1260
- padding: 0;
1261
- line-height: 37px!important;
1262
- width: 100%;
1263
- min-height: 37px!important;
1264
- font-size: 13px!important;
1265
- background: #fff!important;
1266
- cursor: pointer;
1267
- color: #787a7b;
1268
- -webkit-transition: all .3s ease-in-out;
1269
- -moz-transition: all .3s ease-in-out;
1270
- -o-transition: all .3s ease-in-out;
1271
- transition: all .3s ease-in-out;
1272
- max-width: 740px!important;
1273
- font-weight: 700
1274
- }
1275
-
1276
- .toggle-custom-textarea-show span,
1277
- label.toggle-custom-textarea-show {
1278
- color: #fffefe
1279
- }
1280
-
1281
- .fts-logo-header {
1282
- margin-bottom: 20px!important
1283
- }
1284
-
1285
- .fts-logo-subheader {
1286
- margin-bottom: 10px!important
1287
- }
1288
-
1289
- .fts-color-settings-admin-form label {
1290
- font-weight: 700;
1291
- min-width: 100px
1292
- }
1293
-
1294
- #fts_clear_cache_developer_mode {
1295
- margin-left: 28px
1296
- }
1297
-
1298
- .toplevel_page_feed-them-settings-page .pane-active {
1299
- display: block
1300
- }
1301
-
1302
- .toplevel_page_feed-them-settings-page .fts-tabbed {
1303
- display: block;
1304
- float: left;
1305
- color: #545454;
1306
- font-weight: 700;
1307
- text-decoration: none;
1308
- line-height: 1.9;
1309
- text-align: center;
1310
- cursor: pointer;
1311
- border-bottom: 1px solid #ccc;
1312
- padding: 10px 38px!important;
1313
- -webkit-font-smoothing: antialiased;
1314
- -moz-osx-font-smoothing: grayscale;
1315
- min-width: 115px;
1316
- background: #FFF;
1317
- margin-right: 1px!important;
1318
- font-size: 13px;
1319
- width: auto!important
1320
- }
1321
-
1322
- .toplevel_page_feed-them-settings-page label.tab-active {
1323
- background: #0073AA!important;
1324
- color: #FFF!important
1325
- }
1326
-
1327
- .toplevel_page_feed-them-settings-page .fts-tab-content {
1328
- clear: both;
1329
- padding-top: 15px
1330
- }
1331
-
1332
- .feed-them-social-admin-input-label small {
1333
- font-weight: 400
1334
- }
1335
-
1336
- .not-active-title:hover h3 {
1337
- color: #028fd2
1338
- }
1339
-
1340
- .not-active-title h3 {
1341
- color: #0073aa
1342
- }
1343
-
1344
- @media (max-width:797px) {
1345
- .toplevel_page_feed-them-settings-page #fts-tabs {
1346
- margin-top: 140px!important
1347
- }
1348
- }
1349
-
1350
- @media (max-width:450px) {
1351
- #shortcode-form-selector {
1352
- min-width: 270px!important
1353
- }
1354
- }
1355
-
1356
- @media (max-width:500px) {
1357
- .toplevel_page_feed-them-settings-page #fts-tab-content1 .use-of-plugin {
1358
- max-width: 100%!important
1359
- }
1360
- }
1361
-
1362
- #fts-timezone {
1363
- max-width: 300px
1364
- }
1365
-
1366
- .fts-instagram-username-picker-wrap li {
1367
- clear: both;
1368
- background: #e6e6e6;
1369
- padding: 10px;
1370
- margin-bottom: 1px;
1371
- display: block;
1372
- width: 100%;
1373
- line-height: 16px;
1374
- float: left
1375
- }
1376
-
1377
- .combine-twitter-hashtag-etc-wrap,
1378
- .facebook_hide_date,
1379
- .facebook_hide_name,
1380
- .facebook_hide_thumbnail,
1381
- .facebook_show_media,
1382
- .fts-success,
1383
- .youtube_video_single_info_display {
1384
- display: none
1385
- }
1386
-
1387
- .fts-instagram-username-picker-wrap li.fts-insta-id-active,
1388
- .fts-instagram-username-picker-wrap li:hover {
1389
- background: #0073aa;
1390
- color: #FFF
1391
- }
1392
-
1393
- .ft-instagram-username-picker {
1394
- clear: both;
1395
- margin: 0 0 1px;
1396
- height: 65px
1397
- }
1398
-
1399
- .fts-insta-profile-picture-div img {
1400
- float: left;
1401
- max-width: 65px;
1402
- margin-right: 15px;
1403
- border-radius: 100px
1404
- }
1405
-
1406
- .fts-insta-fullname-div {
1407
- padding: 5px 0 2px
1408
- }
1409
-
1410
- .fts-insta-id-div {
1411
- font-style: italic;
1412
- padding: 5px 0 0
1413
- }
1414
-
1415
- .fts-instagram-username-picker-wrap {
1416
- padding-right: 20px;
1417
- max-height: 310px;
1418
- overflow: auto;
1419
- margin: 0
1420
- }
1421
-
1422
- .fts-instagram-username-picker-wrap li:first-child {
1423
- margin-top: 10px
1424
- }
1425
-
1426
- .fts-instagram-username-picker-wrap li:last-child {
1427
- margin-bottom: 10px
1428
- }
1429
-
1430
- .fts-empty-error input,
1431
- input.fts-empty-error {
1432
- background: #ffffd8!important
1433
- }
1434
-
1435
- .fts-instagram-username-picker-wrap li {
1436
- color: #222
1437
- }
1438
-
1439
- .fts-highlight {
1440
- background: #0073aa;
1441
- border-radius: 20px;
1442
- color: #FFF;
1443
- padding: 0 5px
1444
- }
1445
-
1446
- .fts-youtube-get-access-token,
1447
- .fts-youtube-get-access-token:focus {
1448
- padding: 18px 16px 19px 188px;
1449
- background: url(../images/youtube-logo-admin.jpg) 13px 12px no-repeat #FFF;
1450
- color: #252525
1451
- }
1452
-
1453
- .fts-twitter-get-access-token,
1454
- .fts-twitter-get-access-token:focus {
1455
- padding: 18px 16px 19px 188px;
1456
- background: url(../images/twitter-logo-admin.jpg) 13px 12px no-repeat #FFF;
1457
- color: #252525
1458
- }
1459
-
1460
- .fts-twitter-add-all-keys-click-option,
1461
- .fts-youtube-add-all-keys-click-option {
1462
- margin: -10px 0 15px;
1463
- text-align: left;
1464
- clear: both;
1465
- }
1466
-
1467
- .twitter-extra-keys-text,
1468
- .youtube-extra-keys-text {
1469
- max-width: 550px;
1470
- margin-bottom: 15px
1471
- }
1472
-
1473
- .feed-them_page_fts-twitter-feed-styles-submenu-page .fts-successful-api-token {
1474
- margin-top: 0;
1475
- margin-bottom: -10px
1476
- }
1477
-
1478
- #fts-timer {
1479
- padding: 6px 0 0 1px;
1480
- float: left
1481
- }
1482
-
1483
- @font-face {
1484
- font-family: FontAwesomeSlick;
1485
- src: url(../../feeds/css/font/fontawesome-webfont.eot?v=3.2.1);
1486
- src: url(../../feeds/css/font/fontawesome-webfont.eot?#iefix&v=3.2.1) format("embedded-opentype"), url(../../feeds/css/font/fontawesome-webfont.woff?v=3.2.1) format("woff"), url(../../feeds/css/font/fontawesome-webfont.ttf?v=3.2.1) format("truetype"), url(../../feeds/css/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1) format("svg")
1487
- }
1488
-
1489
- .fts-success:before {
1490
- font-family: FontAwesomeSlick!important;
1491
- content: "\f00c"!important;
1492
- font-size: 14px;
1493
- position: relative;
1494
- line-height: 19px
1495
- }
1496
-
1497
- .fts-success {
1498
- margin: 3px 6px 0;
1499
- padding: 2px 4px;
1500
- color: #fff;
1501
- background: #01a701;
1502
- border-radius: 20px;
1503
- float: left;
1504
- font-size: 10px!important;
1505
- width: auto;
1506
- height: 18px
1507
- }
1508
-
1509
- #discount-for-review a:hover {
1510
- color: #0073aa
1511
- }
1512
-
1513
- .fb-sublist {
1514
- border: none!important;
1515
- overflow: auto;
1516
- height: 200px;
1517
- background: #f7f7f7
1518
- }
1519
-
1520
- .fb-sublist li {
1521
- border: 1px solid #f7f7f7!important;
1522
- border-bottom: 0;
1523
- border-right: 0;
1524
- }
1525
-
1526
- .fts-token-save {
1527
- border-radius: 100px
1528
- }
1529
-
1530
- .fb-sublist .fb-name {
1531
- letter-spacing: 0!important;
1532
- font-size: 13px
1533
- }
1534
-
1535
- .fts-fb-location-text-wrap {
1536
- padding: 8px;
1537
- text-align: center;
1538
- color: #f7f7f7;
1539
- font-weight: 700;
1540
- background: #00a400;
1541
- margin: 10px 0 0
1542
- }
1543
-
1544
- .fb-name small {
1545
- display: block;
1546
- line-height: 0;
1547
- letter-spacing: 0;
1548
- color: #969696
1549
- }
1550
-
1551
- .fts-successful-api-token small {
1552
- font-size: 12px
1553
- }
1554
-
1555
- .fb-page-list li {
1556
- position: relative
1557
- }
1558
-
1559
- .fts-successful-api-token h3 a {
1560
- text-decoration: none!important;
1561
- color: #262627;
1562
- text-shadow: 1px 1px 1px #fff;
1563
- font-size: 17px;
1564
- }
1565
-
1566
- .fts-successful-api-token h3 a:hover,
1567
- .fts-successful-api-token img:hover {
1568
- opacity: .8
1569
- }
1570
-
1571
- .fb-page-list .fts-fb-load-more {
1572
- color: #00a400
1573
- }
1574
-
1575
- .feed-them-icon-wrap a.youtube-icon {
1576
- background: url(../images/youtube-icon.png) top right no-repeat;
1577
- }
1578
-
1579
- .combine-instagram-wrap .fts-instagram-hashtag-location-options-message {
1580
- margin-top: 25px;
1581
- margin-bottom: -25px
1582
- }
1583
-
1584
- .fts-fb-token-wrap .dashicons-admin-links:before {
1585
- font-size: 20px;
1586
- color: #3b5999
1587
- }
1588
-
1589
- .fb-page-master-list .dashicons-admin-links:before {
1590
- top: -3px;
1591
- position: relative;
1592
- }
1593
-
1594
- .fts-successful-api-token .dashicons-admin-links:before {
1595
- top: 3px;
1596
- position: relative;
1597
- }
1598
-
1599
-
1600
- .fts-arrow-icon:before {
1601
- content: '\f054';
1602
- font-family: FontAwesomeSlick!important;
1603
- color: #00a400;
1604
- font-size: 18px !important;
1605
- position:relative;
1606
- top:2px;
1607
- padding:0 8px
1608
- }
1609
- .fts-fb-icon:before {
1610
- content: '\f082';
1611
- font-family: FontAwesomeSlick!important;
1612
- color: #3a5899;
1613
- font-size: 20px !important;
1614
- position:relative;
1615
- top:2px;
1616
- padding-right:5px;
1617
- }
1618
-
1619
- .fts-insta-icon:before {
1620
- content: '\f16d';
1621
- font-family: FontAwesomeSlick!important;
1622
- color: #263232;
1623
- font-size: 22px !important;
1624
- position:relative;
1625
- top:3px;
1626
- padding-right:5px;
1627
- }
1628
-
1629
- .fts-special-working-wrap .fts-arrow-icon:before {
1630
- font-size: 18px !important;
1631
- top:1px;
1632
- }
1633
-
1634
- .fts-special-working-wrap .fts-fb-icon:before {
1635
- top:1px;
1636
- }
1637
-
1638
- .fts-special-working-wrap .fts-insta-icon:before {
1639
- top:2px;
1640
- }
1641
- .instagram_hashtag{display:none;}
1
+ .clear,.fts-clear{clear:both}.display{display:block!important}.facebook-message-generator,.final-instagram-user-id-textarea,.final-shortcode-textarea,.fts-facebook_group-shortcode-form .twitter_name,.fts-fb-event-option-wrap .twitter_name,.shortcode-generator-form,instagram-shortcode-form{display:none}.feed-them_page_fts-facebook-feed-styles-submenu-page .use-of-plugin{font-size:13px;font-weight:400;line-height:20px;max-width:740px;border-bottom:1px solid #ccc}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-facebook-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-instagram-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-pinterest-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-twitter-feed-styles-submenu-page .use-of-plugin,.feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap h1,.feed-them_page_fts-youtube-feed-styles-submenu-page .use-of-plugin{color:#333}.instagram-id-option-wrap{margin-top:25px}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap h2{margin-top:45px}.fts-super-instagram-options-wrap{padding-top:0}.fts-empty-error input{background-color:#fdfdd3!important}.toplevel_page_feed-them-settings-page h1{font-size:32px}.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap h2,.fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap h2{margin-top:45px;color:#333}.feed-them-social-admin-wrap h1{color:#fff;margin:0 0 5px;line-height:30px;font-weight:700}.feed-them-social-admin-wrap h4{font-size:12px;font-weight:400;color:#000;margin:1px 0 8px}.feed-them-social-admin-wrap input[type=button],.feed-them-social-admin-wrap input[type=submit]{-webkit-appearance:none}.feed-them-social-admin-wrap input[type=text]{line-height:19px;max-width:100%;font-weight:400}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-wrap,.feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-wrap{max-width:100%;width:100%;min-height:auto;background:0 0;padding:0;-webkit-box-shadow:none;box-shadow:none;border-radius:1px;position:relative;margin:20px 20px 0 0;-webkit-text-size-adjust:none}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-input-wrap,.feed-them_page_fts-pinterest-feed-styles-submenu-page .feed-them-social-admin-input-wrap,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-input-wrap,.feed-them_page_fts-youtube-feed-styles-submenu-page .feed-them-social-admin-input-wrap{background:0 0}.feed-them-social-admin-wrap{max-width:806px;min-height:379px;padding:19px;margin:20px 10px 0 0;background-size:cover;-webkit-text-size-adjust:none;overflow:hidden;border-radius:2px}.feed-them_page_fts-youtube-feed-styles-submenu-page h2{color:#333!important;margin-top:45px!important}.feed-them-social-admin-form .feed-them-social-admin-wrap h2{color:#000;font-size:20px;font-weight:400;line-height:23px;margin:15px 0}.feed-them-social-admin-form{padding:5px 0 0;height:auto}.fts-facebook_group-shortcode-form:hover a{background-position:top right!important;background-size:34px!important;height:34px!important;width:34px!important}.feed-them-social-admin-input-wrap{padding:5px 0 10px;margin-bottom:10px;border-radius:2px;-webkit-border-radius:2px}.pinterest-gen-selection{margin-bottom:25px}.final-shortcode-textarea .feed-them-social-admin-input-label{color:#0361b8;width:auto;font-size:14px}.instagram-shortcode-form .final-shortcode-textarea .feed-them-social-admin-input-label{color:#0361b8}.final-shortcode-textarea{margin-top:25px}.final-shortcode-textarea input{width:100%;margin-top:2px}.feed-them-social-admin-input-label{float:left;width:230px;margin-right:10px;font-size:13px;padding-top:6px;font-weight:700}.feed-them_page_fts-facebook-feed-styles-submenu-page .feed-them-social-admin-input-label,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them-social-admin-input-label,.feed-them_page_fts-twitter-feed-styles-submenu-page .feed-them-social-admin-input-label{float:left;width:230px;margin-right:10px;font-size:13px;text-transform:none;padding-top:6px}.feed-them-social-admin-input-label a{text-decoration:underline!important;cursor:pointer}.feed_them_social_id-answer a,.im-done{cursor:pointer!important}.feed-them-social-admin-input-example{float:left;font-weight:700;margin-left:10px;padding-top:4px}.feed-them-social-admin-input{float:left;width:305px;max-width:100%;font-weight:400}.feed-them-social-admin-input-default{float:left;width:290px;padding:4px 7px;border:1px solid #dfdfdf;background-color:#fff;font-size:12px}.fts-color-settings-admin-form .feed-them-social-admin-submit-btn{float:left;margin:0;padding:0 20px;height:37px;line-height:35px}.feed-them-social-admin-submit-btn{padding:10px 15px;border-radius:1px;background-color:#31ac45!important;color:#fff!important;font-weight:400;cursor:pointer!important;transition:all .3s ease-in-out;border:none;letter-spacing:1px;outline:0;font-size:12px}.feed-them-social-admin-submit-btn,.feed-them-social-admin-submit-btn:hover{-webkit-transition:background 2s;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.feed-them-social-admin-submit-btn:hover{background-color:#2bbe43!important;color:#fff!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;outline:0}.toplevel_page_feed-them-settings-page .feed-them-social-admin-slick-logo{right:5px;-webkit-border-radius:3px;border-radius:3px}.feed_them_social_id-answer{padding:15px 0;display:none;font-weight:700}.feed_them_social_id-answer div{padding-bottom:10px}.im-done{padding:10px;background-color:#cd1723!important;border:none!important;color:#fff!important;font-weight:700;text-shadow:1px 1px 3px #000;filter:dropshadow(color=#000000, offx=1, offy=1);-webkit-border-radius:3px;border-radius:3px}#shortcode-form-selector{margin-bottom:10px;height:40px;min-width:290px;line-height:40px}.feed-them-icon-wrap{position:absolute;right:27px;top:25px;width:234px;height:50px}.feed-them-social-admin-wrap,.fts-content,.fts-plugin-reviews{position:relative}.fts-facebook_group-shortcode-form:hover .feed-them-icon-wrap a.facebook-icon{background-position:top right!important;background-size:34px!important;height:34px!important;width:34px!important;display:none}.feed-them-icon-wrap a{opacity:1;float:right;margin-left:1px;margin-bottom:1px;display:block;height:38px;width:38px;cursor:default;outline:0;border:none;box-shadow:0 1px 1px #222;border-radius:0;transition:all .3s ease-in-out}.feed-them-icon-wrap a,.feed-them-icon-wrap a:hover{-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.feed-them-icon-wrap a:hover{opacity:.85;transition:all .3s ease-in-out}.feed-them-icon-wrap a.facebook-icon{background:url(../images/facebook-icon.png) no-repeat}.feed-them-icon-wrap a.twitter-icon{background:url(../images/twitter-icon.png) top right no-repeat}.feed-them-icon-wrap a.instagram-icon{background:url(../images/instagram-icon.png) top right no-repeat}.feed-them-icon-wrap .feed-them-icon-wrap a.youtube-icon{background:url(../images/youtube-icon.png) top right no-repeat}.feed-them-icon-wrap a.pinterest-icon{background:url(../images/pinterest-icon.png) top right no-repeat}a.icon-animate-small{background-position:top right!important;background-size:34px!important;height:34px!important;width:34px!important}.instructional-text{font-size:13px;line-height:19px;margin:0 0 15px;border-bottom:1px dotted #9c9c9c;color:#212121;padding:0 0 5px}.instructional-text a{color:#0073aa;text-decoration:none}.instructional-text a,.instructional-text a:hover{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.instructional-text a:hover{transition:all .3s ease-in-out}.feed-them-custom-css{padding-top:25px;padding-left:0}.feed-them-clear-cache input{background-color:#f11e2e!important;margin-bottom:10px}.feed-them-clear-cache input:hover{background-color:#f15d2e!important}.feed-them-clear-cache-text{color:#f11e2e!important;font-weight:700;background-color:rgba(255,255,255,.88);padding:10px 16px;margin-top:10px;margin-bottom:10px;border-radius:2px;-webkit-border-radius:2px;opacity:.9}.fts-get-premium-version{margin-right:1em;margin-top:15px;display:block;max-width:210px;text-align:center;text-decoration:none!important}textarea#fts-color-options-main-wrapper-css-input{max-width:100%;min-height:350px;clear:both;background:#f9f9f9;font-family:Consolas,Monaco,monospace;font-size:12px;width:100%;height:300px;outline:0}.fts-custom-css-text{margin-bottom:5px}label.toggle-custom-textarea-show:hover{background:#999}label.toggle-custom-textarea-show{max-width:435px;display:block;height:37px;line-height:35px;float:left;text-align:center;padding:0 15px;background:#818181;border-radius:1px;font-size:12px;clear:both;letter-spacing:1px;margin:5px 5px 10px 0;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}#fts-color-options-main-wrapper-css-input,.fts-custom-css-text,.toggle-custom-textarea-hide{display:none}.fts-admin-wrap p input[type=checkbox],.fts-wp-header-custom input[type=checkbox]{margin:-1px 7px 0 2px!important}.fts-color-settings-admin-form p,.fts-powered-by-settings-admin-form p{color:#000;font-size:12px;-webkit-text-size-adjust:none}.fts-powered-by-settings-admin-form p{margin-bottom:0}.feed-them-custom-logo-css{margin-top:25px}#discount-for-review{clear:both;margin-bottom:1px;text-align:center;font-weight:700;color:#000;background:rgba(255,255,255,.53);float:right;width:195px;line-height:40px;cursor:pointer}.discount-review-text{clear:both;color:#333;background:rgba(255,255,255,.9);width:165px;float:right;padding:20px 15px;text-align:center;display:none}#discount-for-review a{display:inline-block;width:auto;height:auto;margin:0;padding:0;border:none;box-shadow:none;float:none;cursor:pointer;text-decoration:none;font-size:12px;font-weight:700;color:#0073aa}.fts-color-settings-admin-form label,.fts-color-settings-admin-form span{color:#060606}.fts-color-settings-admin-form p.example{color:#fff;padding-bottom:35px!important}.fts-color-settings-admin-form fieldset label{color:#fff;line-height:30px}.fts-color-settings-admin-form fieldset a{color:#fff;text-decoration:none}@media (max-width:800px){.toplevel_page_feed-them-settings-page .feed-them-social-admin-wrap h1{text-shadow:#fff!important;height:32px!important;width:280px!important;background-size:280px!important}.feed-them-icon-wrap{position:relative;margin:-20px 0 70px;left:0!important;height:auto;clear:both;text-align:left}.feed-them-social-admin-slick-logo{display:none}#fts-date-and-time-format{width:100%}}.fts-failed-api-token,.fts-successful-api-token{clear:both;float:left;padding:7px 14px 7px 10px;border:1px solid rgba(255,255,255,.45);color:#000;margin:10px 20px 0 0;max-width:715px;width:100%}.fts-failed-api-token{background:rgba(245,207,206,.78)}.fts-successful-api-token{background:rgba(220,253,205,.78)}.feed-them_page_fts-facebook-feed-styles-submenu-page .fts-failed-api-token,.feed-them_page_fts-facebook-feed-styles-submenu-page .fts-successful-api-token,.feed-them_page_fts-instagram-feed-styles-submenu-page .feed-them_page_fts-instagram-feed-styles-submenu-page .fts-successful-api-token,.feed-them_page_fts-instagram-feed-styles-submenu-page .fts-failed-api-token,instagram-failed-message{margin-top:0!important;padding:10px 15px;max-width:708px}.fts-special-working-wrap{padding:8px!important;max-width:722px!important}#fts_facebook_custom_api_token,#fts_facebook_custom_api_token_biz,#fts_facebook_instagram_custom_api_token{margin-bottom:20px!important}.fts-facebook-custom-api-token-label{display:block;margin:0 40px 4px 0}.fts-facebook-custom-api-token-label a{font-weight:700;color:#df1818}.twitter-api-wrap{margin:20px 0 0}.twitter-api-wrap .feed-them-social-admin-input-wrap{margin:0}.fts-facebook-custom-api-token-label,.fts-instagram-custom-api-token-label{max-width:700px;line-height:21px;font-size:13px}.fts-facebook-get-access-token,.fts-facebook-get-access-token:focus,.fts-instagram-get-access-token,.fts-instagram-get-access-token:focus,.fts-pinterest-get-access-token,.fts-pinterest-get-access-token:focus,.fts-twitter-get-access-token,.fts-twitter-get-access-token:focus,.fts-youtube-get-access-token,.fts-youtube-get-access-token:focus{border-radius:5px;box-shadow:0 1px 1px #999;display:block;clear:both;float:left;font-size:14px;margin-bottom:25px;margin-top:5px;text-decoration:none;font-weight:600}.fts-instagram-get-access-token,.fts-instagram-get-access-token:focus{padding:18px 16px 19px 188px;background:url(../images/instagram-logo-admin.png) 13px 12px no-repeat #fff;color:#252525}.fts-pinterest-get-access-token,.fts-pinterest-get-access-token:focus{padding:18px 16px 19px 188px;background:url(../images/pinterest-logo-admin.jpg) 13px 12px no-repeat #fff;color:#252525}.fts-facebook-get-access-token:hover,.fts-instagram-get-access-token:hover,.fts-pinterest-get-access-token:hover{color:#666}.fts-facebook-get-access-token,.fts-facebook-get-access-token:focus{padding:18px 16px 19px 182px;background:url(../images/facebook-logo-admin.jpg) 14px 12px no-repeat #fff;color:#252525}@font-face{margin:0 0 9px;font-size:19px}.fts-title-description-settings-page{padding:25px 0 15px;max-width:740px;border-top:1px solid #ccc}.fts-premium-options-message,.fts-premium-options-message2{font-size:13px;padding:20px 25px 25px;line-height:19px;background-color:#fff;margin:0}.fts-premium-options-message a:first-child,.fts-premium-options-message2 a:first-child{font-size:16px;display:inline-block;padding:0;margin:0 0 5px;text-decoration:none}.fts-plugin-reviews{max-width:789px;padding:25px 28px 31px;box-shadow:0 0 1px #d1d1d1;border-radius:1px;background:rgba(255,255,255,1);-webkit-text-size-adjust:none;font-size:13px;line-height:21px;margin-right:10px}.fts-plugin-reviews a{text-decoration:none}.fts-plugin-reviews-rate{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #eee}h1.plugin-author-note{margin:50px 0 15px!important;font-size:22px;color:#222;z-index:1;position:relative}.toplevel_page_feed-them-settings-page .error{margin:20px 20px 20px 0;max-width:818px}.feed-them_page_fts-facebook-feed-styles-submenu-page .error,.feed-them_page_fts-instagram-feed-styles-submenu-page .error,.feed-them_page_fts-pinterest-feed-styles-submenu-page .error,.feed-them_page_fts-system-info-submenu-page .error,.feed-them_page_fts-system-info-submenu-page .notice,.feed-them_page_fts-twitter-feed-styles-submenu-page .error,.feed-them_page_fts-youtube-feed-styles-submenu-page .error{margin:20px 20px 20px 0!important}.feed-them_page_fts-bar-settings-page .error{margin:20px 20px 20px 5px!important;max-width:1005px}.hashtag-option-small-text,.twitter-hashtag-etc-wrap{display:none}.twitter-hashtag-etc-wrap{margin:15px 0 35px}.fts-content{background-color:rgba(241,241,241,.65);padding:30px;z-index:1;display:nonee;border-radius:2px;box-shadow:0 2px 10px rgba(41,41,41,.51);min-height:315px}.shortcode-generator-form{border-radius:3px;margin-top:15px}.instructional-text a:hover{color:#ea1616;text-decoration:underline;opacity:.8}.final-shortcode-textarea h4{border-bottom:1px solid #fff;padding:0 0 10px;font-size:13px;margin-bottom:15px}.toplevel_page_feed-them-settings-page .fts-content h1{color:#fbfbfb;margin:0 0 12px;line-height:30px;text-shadow:1px 1px 1px rgba(51,51,51,.06);font-weight:600;background:url(../images/feed-them-social-logo.png) no-repeat;height:40px;width:377px;font-size:0}.fb-options-wrap .feed-them-social-admin-submit-btn{margin-top:5px}#fts-social-selector,.twitter-gen-selection{margin-bottom:25px}.fts-text-align-center{text-align:center}.toplevel_page_feed-them-settings-page .feed-them-social-admin-slick-logo{background:url(../images/footer-logo.png) center no-repeat;width:110px;height:20px;padding:0;margin:20px 0 -20px;display:inline-block;position:relative;bottom:0;opacity:1}.fb-image,.fts-backg{width:100%;height:100%}.feed-them-social-admin-wrap h3{color:#000;font-size:20px;font-weight:400;line-height:23px;margin:0 0 5px}.feed-them-social-admin-wrap .feed-them-social-admin-form h2{color:#000;font-size:23px;font-weight:400;line-height:23px;margin:15px 0 20px;padding:0}.instagram-id-option-wrap .feed-them-social-admin-submit-btn,.toplevel_page_feed-them-settings-page .feed-them-social-admin-submit-btn{margin-top:0;margin-left:0!important}.toplevel_page_feed-them-settings-page .instagram-id-option-wrap .feed-them-social-admin-submit-btn{margin-top:5px!important;margin-left:0!important}.feed-them-clear-cache .use-of-plugin{margin:0}.feed-them-clear-cache h2,.feed-them-custom-css h2,.feed-them-custom-logo-css h2{margin-bottom:10px;margin-top:5px;font-size:17px;padding-top:20px;border-top:1px dotted rgba(177,177,177,.88);color:#060606}.feed-them-clear-cache h2{border:none;margin-top:17px;padding-top:0}.feed-them-custom-css p,.feed-them-custom-logo-css p{margin:0 0 5px}#fts-date-and-time-format{margin-bottom:10px}.feed-them-social-admin-submit-btn{margin-top:15px!important}#fts_admin_bar_menu{margin-bottom:0;margin-left:31px}.fts-backg{position:absolute;top:0;right:0;z-index:0;opacity:1;-webkit-animation:ftsettings 5s;animation:ftsettings 5s;background:rgba(255,255,255,.8)}@-webkit-keyframes ftsettings{from{opacity:0}to{opacity:1}}@keyframes ftsettings{from{opacity:0}to{opacity:1}}.fb-reviews,.reviews-options{display:none}.fts-required-token-message{padding:15px;background:#fcfcfc;margin:12px 0 20px;border-left:4px solid #fb3939}.custom_time_ago_wrap{padding-top:10px}.custom_time_ago_wrap h2{margin-bottom:20px}.custom_time_ago_wrap label{color:#000;display:inline-block;min-width:75px;margin:0 10px 12px;font-size:13px}.slideshow-wrap{margin-top:18px}.fb-page-list{margin:0;display:block;max-width:740px}.fb-page-list li{background:#fff;padding:8px 10px 10px;margin:0;border-left:15px solid #3b5999;border-bottom:1px solid #e9ebee;cursor:pointer}.fb-page-list li .feed-them-social-admin-submit-btn{display:none;margin-top:9px!important;position:absolute;right:15px;top:7px}.fb-page-list li:hover{background:rgba(255,255,255,.57)}.fb-image{margin:0 15px 0 0;float:left;line-height:50px;text-align:center!important;max-width:50px;min-width:50px;vertical-align:baseline;min-height:50px}.fb-image img{display:inline-block;vertical-align:middle;border-radius:50px}.fb-name{margin:0;display:inline-block;line-height:15px;color:#4c4c4c;font-weight:500;padding-top:10px}.board-name,.combine-instagram-hashtag-option-text,.combine_instagram_hashtag,.combine_instagram_hashtag_type,.fb-video-play-btn-options-content,.fb-video-play-btn-options-wrap,.fb_album_photos_id,.fts-facebook-grid-options-wrap,.fts-facebook-load-more-options-wrap,.fts-facebook-load-more-options2-wrap,.fts-fb-id,.fts-instagram-load-more-options-wrap,.fts-super-facebook-options-wrap,.fts-youtube-load-more-options-wrap,.fts-youtube-load-more-options2-wrap,.instagram-hashtag-option-text,.instagram-location-option-text,.instagram_hashtag_type,.page-token,.pinterest-board-and-name-text,.slider_options_wrap,.slideshow-wrap,.youtube_align_comments_wrap,.youtube_channelID2,.youtube_name,.youtube_name2,.youtube_playlistID,.youtube_playlistID2,.youtube_singleVideoID{display:none}.fts-pages-info{background:#3b5999;max-width:710px;padding:10px 15px 12px;color:#fff;margin-top:1px;letter-spacing:.5px}.fts-fb-page-thumb{float:left;margin-right:10px;border-radius:50px}.fts-successful-api-token h3{margin-bottom:0;margin-top:4px;font-weight:700}.use-of-plugin{color:#000;font-size:13px;font-weight:400;line-height:20px;max-width:60%;padding-bottom:12px;margin-bottom:0}.fts-admin-button-no-work{margin:0 0 0 25px;line-height:41px}.twitter_hashtag_etc_name{padding-top:0}.page.inst-text-facebook-page{display:block}.slider_options_wrap.not-active-premium-fields,.slideshow-wrap .feed-them-social-admin-input-default{display:block!important}.fts-premium-options-message a.not-active-title:first-child{font-size:16px!important;display:block!important;padding:0!important;margin:0 0 5px!important;text-decoration:none!important}.combine-facebook-wrap,.combine-grid-options-wrap,.combine-instagram-wrap,.combine-pinterest-wrap,.combine-twitter-wrap,.combine-youtube-wrap,.combine_board_id,.combine_playlist_id,.combine_youtube_name,.display-comments-wrap,.facebook-reviews-wrap,.fts-premium-options-message,.fts-twitter-grid-options-wrap,.fts-twitter-load-more-options-wrap,.fts-twitter-load-more-options2-wrap,.inst-text-facebook-reviews,.instagram-profile-options-wrap,.like-box-wrap{display:none}.sectioned-options-title{margin-top:15px!important;margin-bottom:15px!important;border-bottom:1px solid #f1f1f1;padding:10px 10px 10px 30px;font-size:18px!important;color:#060606!important;background:#fff;margin-left:-30px!important;box-shadow:0 1px 1px rgba(153,153,153,.59)}.facebook-image-animation-option-wrap,.multiple_facebook .facebook-loadmore-wrap,.multiple_facebook .facebook-title-options-wrap,.multiple_facebook .like-box-wrap,.multiple_facebook h2{display:none!important}.fts-fb-load-more,.fts-fb-spinner{text-align:center}.fts-fb-spinner>div{width:10px;height:10px;background-color:#999;border-radius:100%;display:inline-block;-webkit-animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.fts-hide-me,.popup-gallery-fb .fts-fb-caption{display:none}.fb-social-btn-below-description,.fb-social-btn-bottom,.fb-social-btn-top{width:100%!important;overflow:hidden}.fts-fb-spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.fts-fb-spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes fts-fb-bouncedelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes fts-fb-bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.fts-fluid-videoWrapper-html5 video{object-fit:inherit;margin-bottom:0!important}.fts-fb-album-view-link a{color:#fff}.fts-fb-album-view-link a:hover{color:#eee}.fts-fb-load-more{border-radius:1px;padding:0;line-height:37px!important;width:100%;min-height:37px!important;font-size:13px!important;background:#fff!important;cursor:pointer;color:#787a7b;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;max-width:740px!important;font-weight:700}.toggle-custom-textarea-show span,label.toggle-custom-textarea-show{color:#fffefe}.fts-logo-header{margin-bottom:20px!important}.fts-logo-subheader{margin-bottom:10px!important}.fts-color-settings-admin-form label{font-weight:700;min-width:100px}#fts_clear_cache_developer_mode{margin-left:28px}.toplevel_page_feed-them-settings-page .pane-active{display:block}.toplevel_page_feed-them-settings-page .fts-tabbed{display:block;float:left;color:#545454;font-weight:700;text-decoration:none;line-height:1.9;text-align:center;cursor:pointer;border-bottom:1px solid #ccc;padding:10px 38px!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:115px;background:#fff;margin-right:1px!important;font-size:13px;width:auto!important}.toplevel_page_feed-them-settings-page label.tab-active{background:#0073aa!important;color:#fff!important}.toplevel_page_feed-them-settings-page .fts-tab-content{clear:both;padding-top:15px}.feed-them-social-admin-input-label small{font-weight:400}.not-active-title:hover h3{color:#028fd2}.not-active-title h3{color:#0073aa}@media (max-width:797px){.toplevel_page_feed-them-settings-page #fts-tabs{margin-top:140px!important}}@media (max-width:450px){#shortcode-form-selector{min-width:270px!important}}@media (max-width:500px){.toplevel_page_feed-them-settings-page #fts-tab-content1 .use-of-plugin{max-width:100%!important}}#fts-timezone{max-width:300px}.fts-instagram-username-picker-wrap li{clear:both;background:#e6e6e6;padding:10px;margin-bottom:1px;display:block;width:100%;line-height:16px;float:left}.combine-twitter-hashtag-etc-wrap,.facebook_hide_date,.facebook_hide_name,.facebook_hide_thumbnail,.facebook_show_media,.fts-success,.youtube_video_single_info_display{display:none}.fts-instagram-username-picker-wrap li.fts-insta-id-active,.fts-instagram-username-picker-wrap li:hover{background:#0073aa;color:#fff}.ft-instagram-username-picker{clear:both;margin:0 0 1px;height:65px}.fts-insta-profile-picture-div img{float:left;max-width:65px;margin-right:15px;border-radius:100px}.fts-insta-fullname-div{padding:5px 0 2px}.fts-insta-id-div{font-style:italic;padding:5px 0 0}.fts-instagram-username-picker-wrap{padding-right:20px;max-height:310px;overflow:auto;margin:0}.fts-instagram-username-picker-wrap li:first-child{margin-top:10px}.fts-instagram-username-picker-wrap li:last-child{margin-bottom:10px}.fts-empty-error input,input.fts-empty-error{background:#ffffd8!important}.fts-instagram-username-picker-wrap li{color:#222}.fts-highlight{background:#0073aa;border-radius:20px;color:#fff;padding:0 5px}.fts-youtube-get-access-token,.fts-youtube-get-access-token:focus{padding:18px 16px 19px 188px;background: url(../images/google-logo-admin.jpg) 13px 12px no-repeat #fff;color:#252525;}.fts-twitter-get-access-token,.fts-twitter-get-access-token:focus{padding:18px 16px 19px 188px;background:url(../images/twitter-logo-admin.jpg) 13px 12px no-repeat #fff;color:#252525}.fts-twitter-add-all-keys-click-option,.fts-youtube-add-all-keys-click-option{margin:-10px 0 15px;text-align:left;clear:both}.twitter-extra-keys-text,.youtube-extra-keys-text{max-width:550px;margin-bottom:15px}.feed-them_page_fts-twitter-feed-styles-submenu-page .fts-successful-api-token{margin-top:0;margin-bottom:-10px}#fts-timer{padding:6px 0 0 1px;float:left}@font-face{font-family:FontAwesomeSlick;src:url(../../feeds/css/font/fontawesome-webfont.eot?v=3.2.1);src:url(../../feeds/css/font/fontawesome-webfont.eot?#iefix&v=3.2.1) format("embedded-opentype"),url(../../feeds/css/font/fontawesome-webfont.woff?v=3.2.1) format("woff"),url(../../feeds/css/font/fontawesome-webfont.ttf?v=3.2.1) format("truetype"),url(../../feeds/css/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1) format("svg")}.fts-success:before{font-family:FontAwesomeSlick!important;content:"\f00c"!important;font-size:14px;position:relative;line-height:19px}.fts-success{margin:3px 6px 0;padding:2px 4px;color:#fff;background:#01a701;border-radius:20px;float:left;font-size:10px!important;width:auto;height:18px}#discount-for-review a:hover{color:#0073aa}.fb-sublist{border:none!important;overflow:auto;height:200px;background:#f7f7f7}.fb-sublist li{border:1px solid #f7f7f7!important;border-bottom:0;border-right:0}.fts-token-save{border-radius:100px}.fb-sublist .fb-name{letter-spacing:0!important;font-size:13px}.fts-fb-location-text-wrap{padding:8px;text-align:center;color:#f7f7f7;font-weight:700;background:#00a400;margin:10px 0 0}.fb-name small{display:block;line-height:0;letter-spacing:0;color:#969696}.fts-successful-api-token small{font-size:12px}.fb-page-list li{position:relative}.fts-successful-api-token h3 a{text-decoration:none!important;color:#262627;text-shadow:1px 1px 1px #fff;font-size:17px}.fts-successful-api-token h3 a:hover,.fts-successful-api-token img:hover{opacity:.8}.fb-page-list .fts-fb-load-more{color:#00a400}.feed-them-icon-wrap a.youtube-icon{background:url(../images/youtube-icon.png) top right no-repeat}.combine-instagram-wrap .fts-instagram-hashtag-location-options-message{margin-top:25px;margin-bottom:-25px}.fts-fb-token-wrap .dashicons-admin-links:before{font-size:20px;color:#3b5999}.fb-page-master-list .dashicons-admin-links:before{top:-3px;position:relative}.fts-successful-api-token .dashicons-admin-links:before{top:3px;position:relative}.fts-arrow-icon:before{content:'\f054';font-family:FontAwesomeSlick!important;color:#00a400;font-size:18px!important;position:relative;top:2px;padding:0 8px}.fts-fb-icon:before{content:'\f082';font-family:FontAwesomeSlick!important;color:#3a5899;font-size:20px!important;position:relative;top:2px;padding-right:5px}.fts-insta-icon:before{content:'\f16d';font-family:FontAwesomeSlick!important;color:#263232;font-size:22px!important;position:relative;top:3px;padding-right:5px}.fts-special-working-wrap .fts-arrow-icon:before{font-size:18px!important;top:1px}.fts-special-working-wrap .fts-fb-icon:before{top:1px}.fts-special-working-wrap .fts-insta-icon:before{top:2px}.instagram_hashtag{display:none}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/images/google-logo-admin.jpg ADDED
Binary file
feed-them.php CHANGED
@@ -7,18 +7,18 @@
7
  * Plugin Name: Feed Them Social - for Twitter feed, Youtube, Pinterest and more
8
  * Plugin URI: https://feedthemsocial.com/
9
  * Description: Display a Custom Facebook feed, Instagram feed, Twitter feed, Pinterest feed & YouTube feed on pages, posts or widgets.
10
- * Version: 2.7.9
11
  * Author: SlickRemix
12
  * Author URI: https://www.slickremix.com/
13
  * Text Domain: feed-them-social
14
  * Domain Path: /languages
15
  * Requires at least: WordPress 4.0.0
16
- * Tested up to: WordPress 5.3.1
17
- * Stable tag: 2.7.9
18
  * License: GPLv2 or later
19
  * License URI: https://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
- * @version 2.7.9
22
  * @package FeedThemSocial/Core
23
  * @copyright Copyright (c) 2012-2020 SlickRemix
24
  *
@@ -31,7 +31,7 @@
31
  *
32
  * Makes sure any js or css changes are reloaded properly. Added to enqued css and js files throughout!
33
  */
34
- define( 'FTS_CURRENT_VERSION', '2.7.9' );
35
 
36
  define( 'FEED_THEM_SOCIAL_NOTICE_STATUS', get_option( 'rating_fts_slick_notice', false ) );
37
 
@@ -529,4 +529,4 @@ function feed_them_social() {
529
  }
530
 
531
  // Initiate Feed Them Social!
532
- feed_them_social();
7
  * Plugin Name: Feed Them Social - for Twitter feed, Youtube, Pinterest and more
8
  * Plugin URI: https://feedthemsocial.com/
9
  * Description: Display a Custom Facebook feed, Instagram feed, Twitter feed, Pinterest feed & YouTube feed on pages, posts or widgets.
10
+ * Version: 2.8.0
11
  * Author: SlickRemix
12
  * Author URI: https://www.slickremix.com/
13
  * Text Domain: feed-them-social
14
  * Domain Path: /languages
15
  * Requires at least: WordPress 4.0.0
16
+ * Tested up to: WordPress 5.3.2
17
+ * Stable tag: 2.8.0
18
  * License: GPLv2 or later
19
  * License URI: https://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
+ * @version 2.8.0
22
  * @package FeedThemSocial/Core
23
  * @copyright Copyright (c) 2012-2020 SlickRemix
24
  *
31
  *
32
  * Makes sure any js or css changes are reloaded properly. Added to enqued css and js files throughout!
33
  */
34
+ define( 'FTS_CURRENT_VERSION', '2.8.0' );
35
 
36
  define( 'FEED_THEM_SOCIAL_NOTICE_STATUS', get_option( 'rating_fts_slick_notice', false ) );
37
 
529
  }
530
 
531
  // Initiate Feed Them Social!
532
+ feed_them_social();
feeds/css/styles.css CHANGED
@@ -1 +1 @@
1
- /* If you think we have to many !important rules you have to consider that we are fighting with the themes CSS which in most cases overrides a plugins CSS. So if you see an !important rule and are having trouble overriding it make sure and target the body, html or a wrapper ID before the CSS class you are trying to override. */.entriestitle.fts-youtube-popup,.fts-yt-first-video{word-break:break-word}.fts-twitter-div a,.tweeter-info:hover a{-webkit-transition:all .3s ease-in-out;text-decoration:none!important}.tweeter-info,.tweeter-info:hover a{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.fts-jal-fb-group-display,.fts-twitter-div{clear:both}@font-face{font-family:FontAwesomeSlick;src:url(../css/font/fontawesome-webfont.eot?v=3.2.1);src:url(../css/font/fontawesome-webfont.eot?#iefix&v=3.2.1) format("embedded-opentype"),url(../css/font/fontawesome-webfont.woff?v=3.2.1) format("woff"),url(../css/font/fontawesome-webfont.ttf?v=3.2.1) format("truetype"),url(../css/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1) format("svg")}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.fts-twitter-text{padding:4px 0 0;display:block;line-height:19px}.fts-video-show-hide-btns-wrap a:focus,.fts-video-show-hide-btns-wrap a:link,.fts-video-show-hide-btns-wrap a:visited{outline:0!important;border:none!important}.fts-view-on-twitter-link:before{font-family:FontAwesomeSlick;content:"\f14c ";display:inline-block;margin-right:6px}.fts-video-show-hide-btns-wrap a:before{font-family:FontAwesomeSlick;content:'\f16a';display:inline-block;margin-right:5px}img.fts-twitter-description-image{margin:10px 0 0!important}.fts-twitter-favorites:before,.fts-twitter-retweet:before{margin-right:5px;font-family:FontAwesomeSlick;position:relative}.fts-twitter-retweet:before{content:'\f079'!important;font-size:17px!important;top:1px}.fts-twitter-favorites:before{content:'\f004 '!important;font-size:13px!important;top:0}.fts-twitter-reply:before{font-family:FontAwesomeSlick;content:'\f112'!important;position:relative;top:2px;font-size:14px}.fts-twitter-caption,blockquote.twitter-video{display:none}.fts-twitter-div *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fts-fb-slideshow,.fts-fb-slideshow *,.fts-slicker-facebook-photos *,.fts-yt-videolist *,.popup-video-gallery-fb .fts-fb-photo-post-wrap{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.fts-twitter-div{position:relative;padding:0}.tweeter-info:hover a{transition:all .3s ease-in-out}.widget .fts-twitter-div .fts-uppercase{width:auto}.fts-twitter-div p{margin:0 0 5px!important;line-height:20px!important;padding:0}.widget .fts-twitter-div p{margin:0 0 8px!important;padding:0!important;line-height:19px!important;font-size:12px!important}.fts-twitter-div img{margin:0 10px}.fts-twitter-div .fts-uppercase{margin:0 5px 0 0;font-size:13px;font-weight:700;text-align:left;display:inline-block}.widget .twitter-image{margin-right:10px!important}.widget .fts-twitter-div .fts-uppercase,.widget .tweeter-info .fts-right,.widget .tweeter-info .fts-twitter-full-width{text-align:left;font-size:11px;line-height:14px;font-weight:400!important}.fts-right .fts-uppercase,.fts-twitter-full-width .fts-uppercase{display:inline-block}.tweeter-info .fts-right{float:none!important;padding:0 7px 0 71px;line-height:15px!important}.tweeter-info .fts-twitter-full-width{padding:10px 10px 0}.fts-twitter-fade{display:none;width:321px;height:80px;position:absolute;top:137px;left:1px}.fts-twitter-image,.widget .fts-twitter-image{margin:0;float:left}.tweeter-info{padding:11px;background:#eee;box-shadow:0 1px 2px #555;clear:both;min-height:51px;line-height:13px;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-twitter-div a,.tweeter-info:hover{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.widget .tweeter-info{min-height:42px}.tweeter-info:hover{background:#fff;box-shadow:0 1px 2px #222;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.tweeter-info img{border-radius:0;box-shadow:none!important}.fts-twitter-link{position:absolute;top:217px;left:0;font-size:22px;text-transform:uppercase;width:291px;height:36px;padding:15px 0 0 38px;border-top:1px solid #c1c2c3;color:#000}.fts-video-loading-notice{color:#000}a.fts-powered-by-text{padding-top:8px!important;width:100%;text-align:center!important;display:block}.fts-twitter-div a{transition:all .3s ease-in-out;color:#0084b4}.fts-twitter-div a:hover{color:#444;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;text-decoration:none!important}.tweeter-info .time{font-size:12px}.fts-tweeter-wrap .tweeter-info{padding:14px 0 8px;background:0 0;box-shadow:0 0 0 #555;border-bottom:1px solid #eee;word-wrap:break-word;clear:both;font-size:14px;line-height:13px;-webkit-transition:background 0;-webkit-transition:all 0s ease-in-out;-moz-transition:all 0s ease-in-out;-o-transition:all 0s ease-in-out;transition:all 0s ease-in-out}.fts-tweeter-wrap .fts-video-wrapper{margin:15px 0 0}.fts-video-wrapper-padding{display:none}.fts-tweeter-wrap .tweeter-info:hover{background:0 0!important;box-shadow:0 0 0 #222!important}.fts-tweeter-wrap .tweeter-info img{max-width:100%;box-shadow:none!important;border-radius:0}.fts-twitter-favorites,.fts-twitter-reply,.fts-twitter-retweet{font-size:13px!important}.fts-twitter-reply-wrap a{display:inline-block!important;opacity:1;padding-right:0;-webkit-transition:background 1s;-webkit-transition:all 1s ease-in-out;-moz-transition:all 1s ease-in-out;-o-transition:all 1s ease-in-out;transition:all 1s ease-in-out}.fts-twitter-reply-wrap{font-size:16px;margin-right:0;margin-top:10px;font-style:normal!important}.fts-tweeter-wrap:hover a{opacity:1}@media (max-width:767px){.fts-tweeter-wrap a{opacity:1!important}}.fts-video-show-hide-btns-wrap{margin:7px 0 0!important}.fts-video-show-hide-btns-wrap a{font-size:13px!important}.fts-twitter-load-video-wrapper,a.fts-twitter-load-video-wrapper{margin:0!important;padding:0!important}.fts-show-media-text,a.fts-close-media{display:none}.fts-twitter-div iframe,.fts-video-wrapper iframe{margin:0!important}.twitter-social-btn-bottom{margin:15px 0}.fts-jal-fb-see-more .icon-thumbs-up:before{content:"\f164"!important;font-size:14px}.fts-jal-fb-see-more .icon-comments:before{content:"\f086"!important;top:0;position:relative;font-size:14px}.fts-jal-fb-see-more .icon-file:before{content:"\f064"!important;top:2px!important;position:relative;font-size:14px}.fts-events-list-wrap .icon-map-marker [class^=icon-thumbs-up],.fts-jal-fb-see-more [class*=" icon--file"],.fts-jal-fb-see-more [class*=" icon--thumbs-up"],.fts-jal-fb-see-more [class^=icon-comments],.fts-jal-fb-see-more [class^=icon-file],.fts-jal-fb-see-more [class^=icon-thumbs-up]{display:inline-block!important;font-style:normal!important}.fts-events-list-wrap [class^=icon-]:before,.fts-jal-fb-see-more [class^=icon-]:before,.fts-jal-single-fb-post [class^=icon-]:before{font-family:FontAwesomeSlick!important;-webkit-font-smoothing:antialiased;margin:0 0 0 7px!important}.fts-jal-fb-see-more [class^=icon-]:before [class^=icon-],.fts-jal-single-fb-post{float:none!important;margin:0!important;display:block;padding:0!important;text-align:right!important;width:auto!important;height:auto!important;line-height:normal!important;vertical-align:baseline!important;background:0 0!important;font-style:normal!important}.fts-jal-fb-group-display img{border-radius:0!important;box-shadow:0 0 0 transparent!important;display:block;max-width:100%}.fts-jal-fb-group-header-desc{width:100%;margin:7px 0 15px!important;line-height:20px}.fts-jal-fb-header{clear:both}.no-more-posts-fts-fb{cursor:auto}.fts-jal-single-fb-post .slicker-facebook-album-photoshadow{display:none}.fts-jal-fb-header a:hover,.fts-jal-single-fb-post a:hover{font-style:normal;text-decoration:none!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;color:#313131}.fts-jal-fb-user-thumb a{display:block}.fts-fb-get-directions{text-align:left!important;margin:0}.fts-jal-fb-header a,.fts-jal-single-fb-post a{-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;text-decoration:none!important;word-break:break-word;border:none!important}.fts-jal-fb-header h1{font-size:1.9em;margin:0!important;line-height:normal!important;padding:0!important}.widget .fts-jal-fb-header h1{font-size:1.8em;line-height:22px}.fts-jal-single-fb-post{width:100%;padding:15px 0 7px!important;margin-bottom:0;border-bottom:1px solid rgba(184,184,184,.3);position:relative;line-height:17px;text-align:left}.fts-slicker-facebook-posts .fts-jal-single-fb-post{width:auto;padding:10px 10px 8px!important;border-bottom:1px solid rgba(184,184,184,.3);line-height:17px}.widget .fts-jal-single-fb-post{width:100%;padding:17px 0 10px!important}.fts-facebook-popup .fts-jal-fb-user-thumb{width:50px;height:50px;float:left;margin:0 0 0 20px!important}.fts-jal-fb-user-thumb,.fts-mashup-icon{height:50px;margin-right:11px;float:left}.fts-jal-fb-user-thumb{width:50px;margin-bottom:5px}.fts-mashup-icon{width:20px;margin-bottom:5px}.widget .fts-jal-fb-right-wrap{padding-left:0}.widget .fts-jal-fb-top-wrap{padding-bottom:5px;padding-left:0;margin-bottom:5px;min-height:50px}.fts-jal-fb-message{padding-top:10px;line-height:21px;word-wrap:break-word}.fts-jal-fb-link-wrap p,.fts-jal-fb-message p{padding:0!important;margin:0 0 10px!important}.fts-jal-fb-link-wrap p{line-height:19px!important}.fts-jal-fb-link-wrap{margin-top:0;border-radius:0;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.jal-fb-description{word-wrap:break-word!important}.fts-jal-fb-picture{float:left;display:block;margin:10px 10px 4px 0}.fts-jal-fb-link-wrap img{margin:0}.fts-jal-fb-vid-picture{position:relative;float:left;height:auto!important;margin:10px 0 0;line-height:normal!important;cursor:pointer}.fts-jal-fb-description-wrap{float:left;padding:15px 12px 0 17px!important;color:#757575;font-size:13px!important;font-weight:400;text-align:left}.popup-gallery-fb .fts-jal-fb-description-wrap,.popup-video-gallery-fb .fts-jal-fb-description-wrap{padding:15px 0 0!important}.fts-jal-single-fb-post .fts-jal-fb-vid-wrap .fts-jal-fb-description-wrap{padding:15px 15px 0!important}.widget .fts-jal-fb-description-wrap{float:left;overflow:hidden;max-width:90%;line-height:19px!important;color:#999;font-size:12px!important;font-weight:400}.entry-content .fts-jal-fb-picture img,.fts-yt-videolist li img,.widget .fts-jal-fb-picture img,.widget a.fts-pin-board-wrap img,a.fts-pin-board-wrap img{max-width:100%}.fts-jal-fb-description{padding:5px 0 10px;line-height:17px!important;font-size:13px;color:#919191;word-wrap:break-word}.fts-jal-fb-description p{font-size:13px!important}.fts-jal-fb-top-wrap{margin-bottom:10px;text-align:left}.fts-jal-fb-user-name{font-weight:700;color:#888;display:block;padding-top:6px;padding-right:5px;font-size:16px;line-height:18px}.fts-slicker-facebook-albums .fts-jal-fb-user-name a{color:#fff}.fts-jal-fb-post-time{color:#999;padding-top:4px;font-size:12px;line-height:10px;display:block}.fts-jal-fb-name{font-weight:700;color:#c00;padding-bottom:5px;font-size:15px;display:inline-block;line-height:18px}.fts-events-list-wrap .fts-jal-fb-name{font-weight:400;color:#c52214;padding-bottom:5px;font-size:15px;display:block;line-height:21px}.fts-jal-fb-vid-play-btn{background:url(../images/video-play-btn.png) no-repeat;bottom:7px;height:26px;left:9px;position:absolute;width:35px}.fts-jal-fb-picture img,.fts-vid-div{width:100%}.fts-vid-div .fts-jal-fb-vid-play-btn,.fts-vid-div img{display:none}.fts-vid-div iframe{position:absolute;z-index:500}.fts-jal-fb-see-more .icon-file{font-size:10px}.fts-jal-fb-see-more{float:right;margin:10px 0 0;font-size:12px;width:100%;text-align:right;font-style:normal!important}.fts-fb-event-photo{float:left}.fts-fb-large-photo{margin-right:0!important;font-weight:inherit}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .fts-likes-shares-etc-wrap,.fts-slicker-facebook-photos .slicker-facebook-album-photoshadow:hover .fts-jal-fb-see-more{display:block}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .fts-jal-fb-top-wrap,.fts-slicker-facebook-photos .fts-fb-video-post-wrap .slicker-facebook-album-photoshadow:hover .fts-jal-fb-top-wrap{opacity:1}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap,.fts-slicker-facebook-photos .fts-jal-fb-description,.fts-slicker-facebook-photos .fts-jal-fb-see-more:hover,.fts-slicker-facebook-photos .fts-jal-fb-user-name a:hover{color:#fff}.fts-slicker-facebook-photos .fts-jal-fb-description-wrap{font-weight:inherit!important}.fts-slicker-facebook-photos *{-ms-box-sizing:border-box;box-sizing:border-box}.instagram-placeholder *,.slicker-instagram-placeholder *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fts-jal-fb-vid-wrap .slicker-facebook-album-photoshadow{position:absolute;top:0;right:0;height:auto;z-index:600;cursor:pointer;width:auto;opacity:1!important;background-color:rgba(0,0,0,.6)!important;display:none}.fts-jal-fb-vid-wrap .slicker-facebook-album-photoshadow:before{content:'info';color:#fff;padding:5px 10px 7px;text-align:right;float:right;font-size:12px;display:none}.fts-fb-load-more,.fts-fb-spinner,.fts-instagram{text-align:center}.slicker-facebook-album-photoshadow{position:absolute;top:0;right:0;height:100%;width:100%;z-index:100}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap .slicker-facebook-album-photoshadow:hover{background-color:rgba(0,0,0,.9);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;z-index:100;opacity:.8;top:0;right:0;height:100%;width:100%}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .slicker-facebook-album-photoshadow{background-color:rgba(0,0,0,.9);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;z-index:100;opacity:.8;top:0;display:block;right:0;height:100%;width:100%}.fts-slicker-facebook-photos .fts-jal-fb-right-wrap{padding:0!important}.fts-slicker-facebook-photos .fts-jal-fb-user-thumb{display:none}.fts-slicker-facebook-photos .fts-jal-fb-top-wrap{color:#fff!important;padding:12px 15px 0!important;z-index:600;position:absolute;width:100%;opacity:0;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.fts-slicker-facebook-photos .fts-jal-fb-message{padding:15px 0 0;color:#fff!important;position:relative;font-size:14px;z-index:100}.fts-slicker-facebook-photos .fts-jal-fb-post-time{color:#ddd;margin-top:0}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap a:hover,.fts-slicker-facebook-albums .jal-fb-description a:hover,.fts-slicker-facebook-photos .jal-fb-description a:hover{color:#ccc}.fts-slicker-facebook-photos .fts-jal-fb-link-wrap,.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap{line-height:12px!important}.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap iframe{height:305px;width:305px}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap{word-wrap:break-word;width:100%}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap a{float:left;width:100%;line-height:19px;padding:0!important}.fts-slicker-facebook-albums .jal-fb-description a,.fts-slicker-facebook-photos .jal-fb-description a{float:none!important}.fts-slicker-facebook-photos .fts-jal-single-fb-post{position:relative;float:none;z-index:0;overflow:hidden;border:none!important;padding:0!important;font-family:proxima-nova,'Helvetica Neue',Arial,Helvetica,sans-serif!important;background:#000;vertical-align:top!important;display:inline-block!important}.fts-fb-get-directions:before,.slicker-instagram-image-likes:before,.slicker-instagram-placeholder .fts-instagram-icon:before{font-family:FontAwesomeSlick;-webkit-font-smoothing:antialiased}.fts-slicker-facebook-photos .fts-jal-fb-link-wrap,.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap{border:none!important;margin:0!important;width:100%;height:100%}.fts-album-photos-wrap img{vertical-align:middle!important;display:inline-block!important}.fts-slicker-facebook-photos.fts-slicker-facebook-albums .fts-jal-single-fb-post{height:auto}.fts-slicker-facebook-photos{margin:auto;text-align:center}.fts-slicker-facebook-photos .fts-jal-fb-picture{display:block;margin:0;padding:0;float:none;width:auto;left:0;right:0;top:0;position:absolute;background-size:cover;background-position:center center;background-repeat:no-repeat}div.fts-fb-location{letter-spacing:1px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:21),only screen and (min-device-pixel-ratio:2){.fts-jal-fb-vid-wrap iframe{height:130px}}.fts-fb-spinner>div{width:10px;height:10px;background-color:#999;border-radius:100%;display:inline-block;-webkit-animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.fb-social-btn-below-description,.fb-social-btn-bottom,.fb-social-btn-top{width:100%;overflow:hidden}.fts-fb-spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.fts-fb-spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes fts-fb-bouncedelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes fts-fb-bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.fts-fluid-videoWrapper-html5 video{object-fit:inherit;margin-bottom:0!important}.fts-fb-album-view-link a{color:#fff}.fts-fb-album-view-link a:hover{color:#eee}.fts-instagram-fade .fts-fb-caption{display:block}.fts-view-album-photos-large:before,.fts-view-fb-videos-large:before,.fts-view-on-facebook-link:before,.view-on-facebook-albums-link:before{font-family:FontAwesomeSlick;content:"\f14c ";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased}.fts-fb-get-directions:before{content:"\f041 ";display:inline-block;margin:0 5px 0 2px}.instagram-placeholder,.slicker-instagram-placeholder{font-family:proxima-nova,'Helvetica Neue',Arial,Helvetica,sans-serif!important}.fts-instagram-fade .fts-instagram-caption-content,.fts-instagram-fade .fts-jal-fb-description{color:#fff;padding:0;margin:0}.fts-instagram-fade .fts-fb-album-view-link{display:none}#facebook-sidebar .fts-fb-load-more-wrapper{max-width:100%!important;margin-top:-1px!important;z-index:9999;position:relative}.fb-social-btn-bottom{margin-top:15px!important}.fb-social-btn-top{display:block;margin-bottom:12px!important}.fb-social-btn-below-description{margin-top:5px!important;margin-bottom:5px!important}@media only screen and (max-width:640px){.fb-like.fb_iframe_widget,.fb-like.fb_iframe_widget>span,.fb-like.fb_iframe_widget>span>iframe{width:100%!important;position:relative!important}}.fts-events-list-wrap .fts-jal-fb-picture{float:left;display:block;margin:0}.fts-events-list-wrap a.fts-jal-fb-name{font-size:17px}.fts-events-list-wrap .fts-fb-event-time{font-size:15px}.fts-events-list-wrap .fts-fb-location{font-size:15px;display:block;margin:10px 0 5px}.fts-events-list-wrap .fts-fb-location-title{font-size:15px;display:block;padding:0;font-weight:700;font-style:normal;margin:12px 0 0}.fts-events-list-wrap .fts-jal-fb-message{clear:both;font-size:15px}.fts-fb-get-directions{font-size:15px;padding:0 0 20px;color:#4595f0}.fts-fb-load-more{border-radius:1px;padding:0;line-height:37px!important;width:100%;min-height:37px!important;font-size:13px!important;background:rgba(240,240,240,.45);cursor:pointer;color:#111;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-fb-load-more:hover{background:rgba(240,240,240,.85)}.instagram-image,.widget .instagram-image{background-color:#000;z-index:1;display:block}.flip360-fts-load-more{-moz-animation:spinY .5s linear;-ms-animation:spinY .5s linear;-o-animation:spinY .5s linear;animation:spinY .5s linear;-webkit-animation-name:spinY;-webkit-animation-duration:.5s;-webkit-animation-timing-function:linear;-webkit-animation-fill-mode:both;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-moz-animation-fill-mode:both;-ms-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;-moz-animation-timing-function:cubic-bezier(.75,0,.175,1);-ms-animation-timing-function:cubic-bezier(.75,0,.175,1);-o-animation-timing-function:cubic-bezier(.75,0,.175,1);animation-timing-function:cubic-bezier(.75,0,.175,1)}@-moz-keyframes spinY{0%{-moz-transform:rotateY(0);transform:rotateY(0)}100%{-moz-transform:rotateY(360deg);transform:rotateY(360deg)}}@-webkit-keyframes spinY{0%{-webkit-transform:rotateY(0);transform:rotateY(0);-webkit-transform-style:preserve-3d}100%{-webkit-transform:rotateY(360deg);transform:rotateY(360deg);-webkit-transform-style:preserve-3d}}@-o-keyframes spinY{0%{-o-transform:rotateY(0);transform:rotateY(0)}100%{-o-transform:rotateY(360deg);transform:rotateY(360deg)}}@-ms-keyframes spinY{0%{-ms-transform:rotateY(0);transform:rotateY(0)}100%{-ms-transform:rotateY(360deg);transform:rotateY(360deg)}}@keyframes spinY{0%{-webkit-transform:rotateY(0);-moz-transform:rotateY(0);-ms-transform:rotateY(0);-o-transform:rotateY(0);transform:rotateY(0)}100%{-webkit-transform:rotateY(360deg);-moz-transform:rotateY(360deg);-ms-transform:rotateY(360deg);-o-transform:rotateY(360deg);transform:rotateY(360deg)}}.clear{clear:both}.heart-comments-wrap li,ul.heart-comments-wrap{padding:0!important;margin:0!important;line-height:1.3em!important;border:none!important}.widget .instagram-placeholder li,.widget .instagram-placeholder ul{padding:0!important;margin:0!important;height:auto!important}.instagram-placeholder p{margin:0;padding:0}.instagram-placeholder{position:relative;z-index:0;display:inline-block;margin:0 20px 20px}.widget .instagram-placeholder{margin:-10px 9px 0 10px!important;width:104px!important;text-align:left!important}.instagram-image{width:150px;height:150px;position:relative}.widget .instagram-image{width:105px;height:100px;position:relative;background-size:100%!important}.instaG-photoshadow{background-color:rgba(0,0,0,.1);bottom:0;left:0;position:absolute;right:0;top:0;border:1px solid rgba(0,0,0,.12);z-index:1;-webkit-transition:background-color .05s ease-out;-moz-transition:background-color .05s ease-out;-o-transition:background-color .05s ease-out;transition:background-color .05s ease-out;width:148px;height:148px}.widget .instaG-photoshadow{width:103px;height:98px}.instagram-placeholder:hover .instaG-photoshadow{background-color:transparent;-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;border:1px solid rgba(0,0,0,.12);width:148px;height:148px}.heart-comments-wrap li,.instagram-placeholder .date{color:#888;position:relative;z-index:1;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s;text-shadow:0 1px 0 rgba(255,255,255,.8);opacity:0;pointer-events:none}.widget .instagram-placeholder:hover .instaG-photoshadow{width:103px;height:98px}a.instaG-backg-link{position:relative;display:block}.instagram-placeholder .date{text-align:center;margin-bottom:5px;font-size:12px;height:20px;line-height:20px;font-weight:700;transition:all .15s ease-out .1s}.widget .instagram-placeholder .date{text-align:center;margin-bottom:5px;font-size:11px;height:15px;line-height:20px;font-weight:400!important}.instagram-placeholder .heart-comments-wrap ul{height:20px;margin:10px 0 0!important}.widgets .instagram-placeholder .heart-comments-wrap ul{height:15px;margin:6px 0 0!important}.heart-comments-wrap li{display:inline-block;margin:10px 0 0 .5em!important;padding:0 0 0 16px!important;line-height:10px!important;font-size:12px!important;font-weight:400!important;transition:all .15s ease-out .1s}.instagram-placeholder .fts-backg,.slicker-instagram-placeholder .slicker-date{-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.widget .instagram-placeholder .heart-comments-wrap li{display:inline-block;margin:6px 0 5px 2px!important;pointer-events:none;padding:0 0 0 15px!important;line-height:10px!important;font-size:11px!important;border:none!important}.widget .instagram-placeholder .heart-comments-wrap .instagram-image-likes{margin-right:4px!important}.instagram-placeholder .fts-backg,.widget .instagram-placeholder .fts-backg{z-index:0;left:0;width:100%;margin:-5px;padding:5px;background:#fff;position:absolute}.instagram-placeholder .fts-backg{top:25px;height:150px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);-moz-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);transition:all .15s ease-out .1s}.widget .instagram-placeholder .fts-backg{top:20px;height:100px;font-size:11px}.widget .date{font-size:11px}.instagram-placeholder:hover .fts-backg{margin:-28px -12px;padding:8px 12px;height:193px;-webkit-transition-delay:0;-moz-transition-delay:0;-o-transition-delay:0;transition-delay:0;-webkit-transition-duration:.1s;-moz-transition-duration:.1s;-o-transition-duration:.1s;transition-duration:.1s;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2);-moz-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2)}.widget .instagram-placeholder:hover .fts-backg{margin:-22px -10px;padding:5px 10px;height:135px}.instagram-image-likes{background:url(../images/hearts-instagram.jpg) no-repeat}.instagram-image-comments{background:url(../images/comments-instagram.jpg) no-repeat}.instagram-placeholder:hover .date,.instagram-placeholder:hover .instagram-image-comments,.instagram-placeholder:hover .instagram-image-likes{opacity:1;z-index:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;-o-transition-delay:.1s;transition-delay:.1s}.slicker-instagram-placeholder li,.slicker-instagram-placeholder ul{padding:0!important;margin:0!important;line-height:1.3em!important;border:none!important;width:auto!important;overflow:visible!important}.slicker-heart-comments-wrap{position:absolute;z-index:500;bottom:10px;right:12px}.slicker-instagram-placeholder p{margin:0;padding:0}.slicker-instagram-placeholder,.slicker-youtube-placeholder{position:relative;z-index:0;display:inline-block;overflow:hidden;background-size:cover;background-position:center center;background-repeat:no-repeat;vertical-align:top}.slicker-instagram-image{line-height:0!important;position:relative;z-index:1;background-color:#000;display:block}.slicker-instagram-image img{line-height:normal!important;-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important;-webkit-box-shadow:0 0 0 rgba(0,0,0,.175)!important;-moz-box-shadow:0 0 0 rgba(0,0,0,.175)!important;box-shadow:0 0 0 rgba(0,0,0,.175)!important;margin:0!important;padding:0!important;border:none!important;width:100%}.slicker-instaG-photoshadow{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1;-webkit-transition:background-color .05s ease-out;-moz-transition:background-color .05s ease-out;-o-transition:background-color .05s ease-out;transition:background-color .05s ease-out;vertical-align:middle}.slicker-instagram-placeholder:hover .slicker-instaG-photoshadow{background-color:rgba(0,0,0,.7);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;border:1px solid rgba(0,0,0,.12)}a.slicker-instaG-backg-link{position:relative;display:block}.slicker-instagram-placeholder .fts-share-wrap,.slicker-instagram-placeholder .slicker-date{margin-bottom:5px;font-size:13px;line-height:20px;font-weight:400;position:absolute;transition:all .15s ease-out .1s;height:20px;color:#fff;opacity:0;text-align:center}.slicker-instagram-placeholder .fts-share-wrap{bottom:-10px;left:4px;z-index:50000000}.slicker-instagram-placeholder .slicker-date{top:10px;left:15px;z-index:500;pointer-events:none}.slicker-instagram-placeholder .slicker-heart-comments-wrap ul{height:20px;margin:10px 0 0!important}.fts-mashup-count-wrap .slicker-heart-comments-wrap li,.slicker-instagram-placeholder .slicker-heart-comments-wrap li{display:inline-block;margin:0!important;pointer-events:none;padding:0 0 0 10px!important;line-height:10px!important;font-size:12px!important;font-weight:400!important;color:#fff;text-align:center;position:relative;z-index:1;opacity:0;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}body .fts-mashup-count-wrap li{opacity:1!important}.fts-mashup .fts-jal-fb-see-more,.fts-mashup .fts-single-pin-like-count,.fts-mashup .fts-single-pin-repin-count,.fts-mashup a.ft-gallery-link-popup,body .fts-mashup-count-wrap a,body .fts-mashup-count-wrap li{color:#777!important}a.fts-slicker-backg{height:68px;width:68px;line-height:68px;font-size:68px;top:0;bottom:0;left:0;right:0;margin:auto;z-index:700;position:absolute;text-align:center;vertical-align:middle;opacity:0;color:rgba(255,255,255,.27)}.slicker-instagram-placeholder .fts-instagram-icon:before{content:"\f16d";font-size:100%;display:inline-block;-webkit-transition:all 1s ease-out 0;-moz-transition:all 1s ease-out 0;-o-transition:all 1s ease-out 0}.slicker-instagram-placeholder a.fts-slicker-backg:hover{opacity:1;color:rgba(255,255,255,.55);-webkit-transition:all 0 ease-out 0;-moz-transition:all 0 ease-out 0;-o-transition:all 0 ease-out 0}.slicker-instagram-image-likes:before{content:"\f004";margin-right:5px}.fts-slicker-instagram{margin:auto;text-align:center}.instagram-placeholder:hover .fts-see-on-instagram,.slicker-instagram-placeholder:hover .fts-see-on-instagram,.slicker-instagram-placeholder:hover .fts-share-wrap,.slicker-instagram-placeholder:hover .fts-slicker-backg,.slicker-instagram-placeholder:hover .slicker-date,.slicker-instagram-placeholder:hover .slicker-instagram-image-comments,.slicker-instagram-placeholder:hover .slicker-instagram-image-likes{opacity:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;-o-transition-delay:.1s;transition-delay:.1s}.fts-comment-instagram:before{font-family:FontAwesomeSlick!important;content:"\f075"!important;-webkit-font-smoothing:antialiased;margin-right:5px;font-size:13px!important;display:inline-block;-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1);filter:FlipH;-ms-filter:FlipH;position:relative;top:-1px;right:-4px}.fts-see-on-instagram div:before,.fts-view-on-instagram-link:before{content:"\f138 ";font-family:FontAwesomeSlick}.fts-see-on-instagram{position:absolute;bottom:11px;right:12px;opacity:0;z-index:750;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.widget .instagram-placeholder .fts-see-on-instagram{position:absolute;top:19px;right:6px;z-index:750;display:none}.instagram-placeholder .fts-see-on-instagram{position:absolute;bottom:2px;right:6px;opacity:0;z-index:750}.fts-see-on-instagram div{display:inline-block;cursor:pointer;font-weight:400!important}.instagram-placeholder .fts-see-on-instagram div{display:block;cursor:pointer;font-weight:400!important}.widget .instagram-placeholder .fts-see-on-instagram div:before{color:#fff;font-size:14px}.instagram-placeholder .fts-see-on-instagram div:before{color:#888;font-size:13px}.slicker-instagram-placeholder .fts-see-on-instagram div:before{color:#fff;font-size:14px}.fts-see-on-instagram div:before{display:inline-block}.fts-view-on-instagram-link:before{display:inline-block;margin-right:6px}.fts-instagram-caption{display:none}.fts-instagram-fade .mfp-title p{color:#fff!important;margin:0 0 10px!important;padding:0!important}.fts-instagram-fade .mfp-title a{color:#fff;text-decoration:none!important}.fts-instagram-fade .mfp-title a:hover{color:#eee}.instagram-social-btn-bottom,.instagram-social-btn-top{text-align:center;font-size:14px!important;background:#517fa4;border-radius:4px;width:167px;color:#fff;line-height:15px;padding:7px 0!important}.instagram-social-btn-top{margin:0 auto 15px}.instagram-social-btn-bottom{margin:15px auto 0}.instagram-social-btn-bottom:hover,.instagram-social-btn-top:hover{opacity:.9}#fts-social-bar-icons-wrap .instagram-social-btn-bottom a,#fts-social-bar-icons-wrap .instagram-social-btn-top a{color:#fff!important;font-weight:100!important;display:inline-block;text-decoration:none!important}#fts-social-bar-icons-wrap .instagram-social-btn-top a:hover{color:#fff!important}.instagram-social-btn-bottom a,.instagram-social-btn-top a{color:#fff!important;font-weight:100!important;display:inline-block;text-decoration:none!important}.instagram-social-btn-bottom a:hover,.instagram-social-btn-top a:hover{color:#fff;font-weight:100!important}.instagram-social-btn-bottom:before,.instagram-social-btn-top:before{font-family:FontAwesomeSlick;content:"\f16d ";display:inline-block;margin-right:6px;font-size:16px!important;-webkit-font-smoothing:antialiased}.fts-pinterest-boards-wrap *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fts-fb-slideshow,.fts-fb-slideshow *,.fts-yt-videolist *{box-sizing:border-box}.fts-pinterest-wrapper{text-align:center;margin:auto;position:relative}a.fts-pin-board-wrap:link{text-decoration:none!important;border-bottom:0}a.fts-pin-board-wrap{border-radius:10px!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;-moz-box-shadow:0 1px 3px 0 rgba(0,0,0,.33);display:inline-block;text-decoration:none;padding:10px 9px 10px 10px;margin:8px 8px 0;text-align:left}a.fts-pin-board-wrap:hover{background:#fff;border-radius:10px}.fts-pin-board-wrap .label,.fts-single-pin-description a,.fts-single-pin-pinned-to-wrap{text-decoration:none!important}h3.fts-pin-board-board_title,h3.fts-pin-board-board_title span{-webkit-font-smoothing:antialiased!important;display:block!important}.fts-pin-board-wrap:hover .hoverMask,.pinterest-single-thumb-wrap:hover .hoverMask{background:rgba(255,255,255,.1)}h3.fts-pin-board-board_title{width:210px;color:#555!important;font-size:16px!important;font-weight:700!important;margin:7px 0 5px 7px!important;padding:0!important;position:relative!important;font-family:"Helvetica Neue",arial,sans-serif!important;line-height:15px!important;clear:both}div.fts-pin-board-img-wrap,div.pinterest-single-thumb-wrap{background-size:cover;background-position:center center;background-repeat:no-repeat;position:relative;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}h3.fts-pin-board-board_title span{white-space:nowrap!important;overflow:hidden!important;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;text-transform:capitalize}a.fts-pin-board-wrap{-webkit-border-radius:0;overflow:hidden}div.fts-pin-board-img-wrap{vertical-align:top;border-radius:10px 10px 0 0!important;overflow:hidden;clear:both;height:115px;-moz-box-shadow:0 0 3px rgba(0,0,0,.33) inset}.fts-pin-board-thumbs-wrap div:last-child{margin-right:0;border-bottom-right-radius:10px!important;border-bottom-left-radius:0!important}.fts-pin-board-wrap{max-width:254px;width:100%}.fts-pin-board-thumbs-wrap{min-height:50px}div.pinterest-single-thumb-wrap{margin-right:2px;margin-top:2px;height:108px!important;border-bottom-left-radius:10px!important;width:49.58%;display:inline-block}.fts-pin-board-img-wrap .hoverMask,.pinterest-single-thumb-wrap .hoverMask{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px rgba(0,0,0,.33) inset;-moz-box-shadow:0 0 3px rgba(0,0,0,.33) inset;box-shadow:0 0 3px rgba(0,0,0,.33) inset;bottom:0;left:0;position:absolute;right:0;top:0}.fts-pin-board-wrap .fts-pin-board-pin-count{-webkit-font-smoothing:antialiased;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);-moz-box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);text-shadow:0 -1px 0 rgba(0,0,0,.7);background-color:#000;background-color:rgba(68,68,68,.7);bottom:3px;color:#fff;padding:0 6px;position:absolute;left:3px;font-family:"Helvetica Neue",arial,sans-serif!important;font-size:12px!important;font-weight:700;line-height:21px}.fts-pin-board-pin-count:before{content:'';width:7px;height:9px;background:url(../images/pinterest-icons.png) -137px -87px no-repeat;display:inline-block;margin-right:3px}.fts-pin-board-wrap .label{font-weight:700;text-align:left!important;line-height:1.1em!important;white-space:nowrap;display:inline-block;position:relative;margin-bottom:inherit;padding:0!important;font-size:.7875rem;background:0 0!important;color:#fff}.widget .fts-pin-board-thumbs-wrap,.widget h3.fts-pin-board-board_title{display:none!important}.widget div.fts-pin-board-img-wrap{position:relative;overflow:hidden;clear:both;min-height:100px;height:auto;width:auto;border-radius:10px!important}.widget a.fts-pin-board-wrap{width:40%;padding:6px;margin:4px 4px 0!important;border-radius:1px!important}.widget div.fts-pin-board-img-wrap{-webkit-box-shadow:0 0 1px rgba(0,0,0,.11) inset!important;-moz-box-shadow:0 0 1px rgba(0,0,0,.11) inset;box-shadow:0 0 0 transparent inset!important;margin-bottom:0}.pinterest-single-thumb-wrap .hoverMask,.widget .fts-pin-board-img-wrap .hoverMask{-webkit-box-shadow:0 0 0 rgba(0,0,0,.33) inset;-moz-box-shadow:0 0 0 rgba(0,0,0,.33) inset;box-shadow:0 0 0 rgba(0,0,0,.33) inset}.fts-single-pin-wrap{background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.22);box-shadow:0 1px 2px 0 rgba(0,0,0,.22);border-radius:6px;width:236px!important;margin:14px 7px 0;border:none!important;text-align:left;overflow:hidden}.fts-single-pin-description{margin:10px 15px;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;font-size:13px;line-height:17px;word-wrap:break-word}.fts-single-pin-img-wrap img{-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;border-top-left-radius:6px;border-top-right-radius:6px;max-width:100%}.fts-single-pin-social-meta-wrap{font-family:Helvetica,sans-serif;font-size:11px;color:#999;font-style:normal;font-weight:400;-webkit-font-smoothing:antialiased;margin:-13px 10px 7px 15px}.fts-single-pin-social-meta-wrap .fts-single-pin-repin-count{margin:10px 12px 0 0;display:inline-block;font-size:13px}.fts-single-pin-social-meta-wrap .fts-single-pin-repin-count:before{font-family:FontAwesomeSlick;margin-right:5px;font-size:12px!important;content:"\f08d"}.fts-single-pin-social-meta-wrap .fts-single-pin-like-count{font-size:13px!important}.fts-single-pin-social-meta-wrap .fts-single-pin-like-count:before{font-family:FontAwesomeSlick;content:"\f086"!important;margin-right:5px;font-size:13px!important}.fts-single-pin-pinned-to-title,.fts-single-pin-pinned-to-wrap{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:block;overflow:hidden}.fts-single-pin-pinned-to-wrap{line-height:15px;padding:10px;border-radius:0 0 6px 6px;border:none!important;border-top:1px solid #e7e7e7!important}.fts-single-pin-pinned-to-wrap:hover{background:#eee;cursor:pointer}.fts-single-pin-pinned-to-wrap div{color:#999;display:block;font-weight:700;font-size:11px;font-family:Helvetica,sans-serif}.fts-single-pin-pinned-to-text{color:#999}div.fts-single-pin-pinned-to-title{color:#717171}.fts-single-pin-pinned-to-wrap img{position:relative;border-radius:2px;height:30px;margin-right:5px;width:30px;float:left}.fts-single-pin-pinned-to-title{border-radius:0 0 6px 6px}.fts-single-attribution-wrap{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;text-overflow:ellipsis;font-family:Helvetica,sans-serif;color:#666;margin:-2px 0 5px 15px!important;font-size:11px;display:block;border:none!important;line-height:1.6471}.fts-yt-vids-in-row1 .fts-yt-videolist ul li:first-child,.fts-yt-vids-in-row1 li .entriestitle{display:none}.fts-yt-vids-in-row3 li .entriestitle,.fts-yt-vids-in-row4 li .entriestitle{font-size:85%!important;line-height:100%!important}.fts-single-attribution-wrap img{height:16px;margin-right:5px;position:relative;width:16px;float:left}.pinterest-social-btn-top{margin-bottom:0;text-align:center}.widget .pinterest-social-btn-top{margin-bottom:5px;text-align:center}.pinterest-social-btn-bottom{margin-top:5px;text-align:center}.fts-yt-videolist iframe{width:100%}.fts-yt-vids-in-row1 div.fts-yt-videolist p{padding-bottom:25px;clear:both}.fts-yt-first-video p{margin:10px 10px 25px!important}.fts-yt-videolist ul,.fts-yt-vids-in-row1 ul li{margin:0!important;padding:0!important}#secondary .front-widgets .fts-yt-large iframe{height:100%!important;max-height:300px!important;min-height:300px!important}.widget .fts-yt-videolist ul li{margin-bottom:0!important;list-style:none!important}.fts-yt-videolist ul{width:100%!important}.fts-yt-videolist ul li{list-style:none!important}.fts-yt-vids-in-row1 li{width:100%!important;margin-bottom:5%}.fts-yt-vids-in-row2 li,.fts-yt-vids-in-row3 li,.fts-yt-vids-in-row4 li{float:left;border:none;position:relative;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;padding:1%!important;margin:0!important}.fts-yt-vids-in-row1 li iframe{width:100%}.fts-yt-vids-in-row2 li{width:50%!important}.fts-yt-vids-in-row3 li{width:33.3%!important}.fts-yt-vids-in-row4 li{width:25%!important}.fts-yt-vids-in-row2 li .entriestitle,.fts-yt-vids-in-row3 li .entriestitle,.fts-yt-vids-in-row4 li .entriestitle{padding:0 5px;position:absolute;left:0;top:20%;opacity:0;width:87.5%;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.fts-yt-vids-in-row2 li:hover .entriestitle,.fts-yt-vids-in-row3 li:hover .entriestitle,.fts-yt-vids-in-row4 li:hover .entriestitle{background:#000;border-radius:0;color:#fff;padding:5% 6%;opacity:.9;z-index:100;right:0;line-height:18px;font-size:90%;font-weight:700;box-shadow:0 4px 8px #333;display:block}.fts-yt-vids-in-row2 li:hover,.fts-yt-vids-in-row3 li:hover,.fts-yt-vids-in-row4 li:hover{background-color:rgba(0,0,0,.9);box-shadow:0 1px 10px #333;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-yt-overlay-wrap{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;z-index:-1!important;background-color:rgba(0,0,0,.75);text-align:center;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;transition:opacity .2s ease-out;pointer-events:none;box-shadow:0 2px 500px #000}body .fts-yt-overlay-wrap.fts-yt-target{display:block;opacity:1;z-index:9999999!important;-webkit-transition:opacity .5s ease-in;-moz-transition:opacity .5 ss ease-in;transition:opacity .5s ease-in;pointer-events:auto}.fts-fb-video-icon,.fts-watermark-inside{pointer-events:none}.fts-yt-overlay{max-width:775px;opacity:1;z-index:300;position:absolute;top:0;bottom:0;right:0;left:0;max-height:472px;padding:10px;background:#444;margin:auto!important;box-shadow:0 2px 200px #000}.fts-yt-overlay-wrap iframe{margin:0;min-height:343px;background:#000!important;margin-bottom:0!important}.fts-yt-popup-close{display:block;position:absolute;top:-19px;right:0;background:#444;color:#fff!important;text-decoration:none;font-size:85%;font-family:verdana;font-weight:400;padding:.5% 2.5% 0;line-height:20px}.widget .fts-yt-first-video p{font-size:12px!important;margin-bottom:10px!important;margin-top:5px}.widget .fts-yt-videolist li{margin:0!important;line-height:0!important}.widget .fts-yt-videolist ul{padding-bottom:15px!important;float:left}.fts-yt-vids-in-row1 ul li iframe{margin-bottom:12px!important}@media only screen and (max-width:775px){.fts-yt-overlay{background:0 0;box-shadow:0 0 0 #000}.fts-yt-popup-close{background:0 0}}.widget .fts-yt-large .fts-yt-first-video iframe,.widget .fts-yt-vids-in-row1 li iframe{width:100%;height:0!important;min-height:100%!important;max-height:160px!important;padding:0}.fts-fluid-videoWrapper{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.fts-fluid-videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;min-height:100%;background:#000;border:none}.fts-fluid-videoWrapper video{background:#000}.fts-jal-fb-vid-wrap{margin-top:10px;border-radius:0;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-jal-fb-vid-wrap iframe,.widget .fts-jal-fb-vid-wrap iframe{width:100%;margin:0!important;padding:0!important}.fts-vine-thumbnail .fts-vine-logo:before,.fts-vine-thumbnail-cover,.popup-video-gallery-fb span.fts-fb-video-icon:before{-webkit-transition:all .5s ease-out 0;-moz-transition:all .5s ease-out 0;-o-transition:all .5s ease-out 0;-webkit-font-smoothing:antialiased}.widget .fts-jal-fb-vid-wrap iframe{height:50%}.fts-yt-first-video h2{margin:0 0 7px!important}.youtube-social-btn-top{margin:0 0 5px!important}.youtube-social-btn-bottom{padding:10px 0 0 6px;clear:both}@keyframes fade{from,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes fade{from,to{opacity:1}50%{opacity:.5}}.fts-vine-wrapper{text-align:center}.fts-vine-video-wrap{text-align:left;display:inline-block;max-width:290px;vertical-align:top}.fts-vine-video-wrap a.fts-vine-author{display:block;margin:5px 0 0;padding:0}.fts-vine-white-popup .mfp-close{margin-top:-40px;font-size:35px;margin-right:-10px;color:#fff!important}.fts-vine-white-popup{position:relative;background:#fff;padding:20px;width:auto;max-width:640px;margin:30px auto}.fts-iframe-vine{padding-top:262px}.fts-vine-author{font-size:18px;line-height:24px}.fts-vine-text{font-size:13px;line-height:18px;padding:0 15px 15px 0}.fts-vine-thumbnail{display:block;position:relative;background:0 0!important}.fts-vine-thumbnail-cover{position:absolute;z-index:100;left:0;top:0;width:100%;height:100%;opacity:0;display:inline-block;cursor:pointer}.fts-vine-logo{font-size:27px}.fts-vine-thumbnail .fts-vine-logo:before,.popup-video-gallery-fb span.fts-fb-video-icon:before{font-family:FontAwesomeSlick;font-size:100%}.fts-vine-thumbnail .fts-vine-logo:before{content:"\f1ca"!important;display:inline-block;position:absolute;z-index:200;right:12px;top:5px;line-height:1.5;color:#00bf8f}.fts-vine-thumbnail-cover:hover{opacity:.3;background:#000}.fts-vine-thumbnail:hover .fts-vine-logo:before{color:#fff;text-shadow:2px 1px #555;-webkit-animation:wiggle .5s ease;animation:wiggle .5s ease}@-webkit-keyframes wiggle{0%,100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}60%{-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}80%{-webkit-transform:rotate(30deg);transform:rotate(30deg)}}@keyframes wiggle{0%,100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}60%{-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}80%{-webkit-transform:rotate(30deg);transform:rotate(30deg)}}@media only screen and (max-device-width:736px){.fts-iframe-vine{padding-bottom:14%!important}.fts-vine-white-popup{padding:0}}.post-5593 .entry-content{text-align:center}.fts-fb-video-popup{position:relative;background:0 0;padding:20px 60px;width:auto;max-width:1400px;margin:30px auto}.fts-fb-video-popup .mfp-close{color:#fff!important;right:47px!important;top:-19px!important}@media only screen and (min-device-width:375px) and (max-device-width:667px){.fts-fb-video-popup{padding:20px!important}.fts-fb-video-popup .mfp-close{right:5px!important}}@media only screen and (min-device-width:414px) and (max-device-width:736px){.fts-fb-video-popup{padding:20px!important}.fts-fb-video-popup .mfp-close{right:5px!important}}@media only screen and (min-device-width:768px) and (max-device-width:1024px){.fts-fb-video-popup video{min-height:400px}.fts-fb-video-popup{padding:10px!important}.fts-fb-video-popup .mfp-close{right:-2px!important;top:-25px!important}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape){.fts-fb-video-popup video{min-height:600px}}.fts-view-fb-videos-largeeee:before{content:"";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased;background:url(../images/fb-play-btn.png);height:80px;width:80px}.fts-fb-photo-post-wrap:hover a.fts-slicker-backg{opacity:1;outline:0!important;color:#fff}.popup-video-gallery-fb span.fts-fb-video-icon:before{content:"\f144"!important;display:inline-block!important;opacity:.5!important;color:#fff;outline:0!important}.popup-video-gallery-fb span.fts-fb-video-icon:hover:before{opacity:.8!important;color:#fff}.popup-video-gallery-fb a.visible-video-button{opacity:9!important;outline:0!important;z-index:1500}.popup-video-gallery-fb .fts-fb-load-more{max-width:340px;margin:20px auto}.fts-fb-social-btn-center,.popup-video-gallery-align-center{text-align:center;font-size:0}.fts-fb-social-btn-right,.popup-video-gallery-align-right{text-align:right}.fts-fb-social-btn-left,.popup-video-gallery-align-left{text-align:left}.cycle-slideshow .fts-jal-fb-picture{max-width:100%!important}.popup-video-gallery-fb .fts-fb-photo-post-wrap{vertical-align:top!important;display:inline-block!important;float:none;text-align:left;border-radius:0;max-width:100%;max-height:100%;box-sizing:border-box}.popup-video-gallery-fb .fts-fb-photo-post-wrap .fts-jal-fb-user-name{padding-top:0!important}.fts-review-star,.fts-reviews-star{background:#4791ff;color:#fff;font-weight:400;padding:2px 12px;border-radius:15px;border:none!important}.fts-review-details-master-wrap .fts-review-star{background:#4791ff;color:#fff;font-weight:400;padding:11px 12px 9px 17px;border-radius:30px;margin:0 12px 0 0;font-size:20px;float:left;vertical-align:top;line-height:22px}.fts-review-star{font-size:13px;font-style:normal;white-space:nowrap}.fts-review-star a{background:#4791ff;color:#fff}.fts-reviews-feed .fts-jal-fb-post-time{padding-top:10px!important}.fts-review-star:after{content:"";font-size:14px}.fts-reviews-feed .fts-jal-fb-message{margin-top:5px}.fts-reviews-feed .fts-jal-fb-user-name{margin-top:0;font-size:14px}.fts-jal-fb-vid-picture .fts-fluid-videoWrapper-html5{display:none}.fts-fluid-videoWrapper .fluid-width-video-wrapper{position:initial}.fts-jal-fb-user-thumb img{width:50px;max-width:100%}.fts-jal-fb-description p{line-height:17px!important;white-space:normal!important}.fts-checked-in-text-link{display:inline-block;padding-bottom:0}.fts-checked-in-img{float:left;margin-right:10px;max-width:160px}.fts-checked-in-get-directions{margin-top:5px}.fts-instagram-fade .mfp-title,.fts-instagram-fade .mfp-title a{font-size:13px}.fts-fluid-videoWrapper-html5{margin-top:10px;width:100%}.fts-fb-slideshow.slideshow .fts-fb-photo-post-wrap{position:relative!important;float:none;display:inline-block}.fts-fb-slideshow{width:100%;padding:0;overflow:hidden}.fts-fb-slideshow>a{position:absolute;top:0;left:0;width:100%;padding:0;background-color:#222;display:block}.fts-fb-slideshow>a>img{width:100%;position:static;display:block}.fts-fb-slideshow>div{position:absolute;top:0;left:0;padding:0}.composite-example>div{background:#fff}.composite-example>div>img{display:block}.composite-example>div .cycle-overlay{color:#fff;background:#000;opacity:.6;position:absolute;bottom:0;width:100%;padding:0}.fts-slider-center{text-align:center;padding:2px 0;background:#171717;position:relative;display:block;min-height:35px;font-size:15px;line-height:30px}.fts-slider-center span{display:inline-block;position:absolute;-webkit-text-size-adjust:none}.fts-cycle-slide p{margin:0;padding:0}.fts-prevControl-icon:before{content:'\f0a8';font-family:FontAwesomeSlick!important;font-size:24px}.fts-custom-caption{text-align:center;position:absolute;width:100%;left:0;top:2px;font-size:13px!important;line-height:30px;font-weight:700;z-index:0;letter-spacing:1px}.fts-nextControl-icon:before{font-size:24px;content:'\f0a9';font-family:FontAwesomeSlick!important}.fts-prevControl-icon{left:8px;z-index:1;cursor:pointer}.fts-nextControl-icon{right:7px;z-index:1;cursor:pointer}.fts-nextControl-icon:hover,.fts-prevControl-icon:hover{opacity:.8!important}.fb-social-btn-top{width:100%!important;overflow:hidden}.fts-instagram-fade.mfp-ready .mfp-figure{opacity:1!important}.page-id-6026 #main-header{display:none}.page-id-6026 #page-container{padding-top:0!important}.page-id-6026 .container{margin:0 auto!important;max-width:100%!important;width:100%!important}.fts-slider-icons-center{display:block;line-height:30px}.fts-pager-option{top:10px;position:relative}.fts-pager-option-top{bottom:0;position:relative;top:5px}.fts-pager-option,.fts-pager-option-top{text-align:center;width:100%;z-index:500;display:block}.fts-pager-option span{font-size:47px;width:15px;height:15px;line-height:10px;display:inline-block}.fts-pager-option span.cycle-pager-active,.fts-pager-option span:hover{opacity:.5}.fts-pager-option>*{cursor:pointer}.fts-fb-vid-popup .mfp-iframe-holder .mfp-close,.fts-fb-vid-popup .mfp-inline-holder .mfp-close{top:-50px!important;font-size:54px!important;font-weight:100;font-family:inherit}.fts-facebook-popup.mfp-bg,.fts-vine-vid-popup.mfp-bg{opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}.fts-facebook-popup.mfp-bg.mfp-ready{opacity:.8;z-index:99999990}.fts-facebook-popup.mfp-bg.mfp-removing{opacity:0}.fts-facebook-popup.mfp-wrap .mfp-content{opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}.fts-facebook-popup.mfp-wrap.mfp-ready .mfp-content{opacity:1}.fts-facebook-popup.mfp-wrap.mfp-removing .mfp-content{opacity:0}.fts-facebook-popup .mfp-close{left:0!important;margin-left:4px!important;background:0 0!important;cursor:zoom-out!important;border:none!important;box-shadow:none!important;font-size:27px!important;font-family:'Open Sans',Arial,sans-serif!important;font-weight:600!important;top:-42px!important;opacity:.5!important}.fts-facebook-popup .mfp-close:before{display:none!important}.fts-facebook-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup .mfp-inline-holder .mfp-content{max-width:1400px}.fts-facebook-popup .mfp-iframe-scaler iframe,.fts-facebook-popup .mfp-iframe-scaler video{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:none!important;background:#000;right:0;margin:auto}.fts-facebook-popup .mfp-title{padding:20px;background:rgba(255,255,255,.11);margin-top:21px}.fts-facebook-popup .fts-popup-wrap{max-width:1400px;margin:0 auto;padding:0;vertical-align:middle;width:100%;position:relative}.fts-facebook-popup .fts-popup-half{width:75%;float:left;background:#000;text-align:center;vertical-align:middle;height:100%;position:relative;z-index:88888888}.fts-facebook-popup .fts-popup-second-half{height:100%;width:25%;position:relative;float:left}.fts-facebook-popup .fts-popup-second-half .mfp-bottom-bar{margin:0;position:absolute!important;top:0;right:0;width:100%;cursor:auto;color:#000;overflow:auto}.fts-facebook-popup .fts-popup-wrap img.mfp-img{width:auto;max-width:100%;display:initial;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0;vertical-align:middle}.fts-facebook-popup .fts-popup-wrap .mfp-counter{position:relative;bottom:0;text-align:right;right:10px;color:#c1c1c1!important;font-size:12px;line-height:18px;white-space:nowrap;display:inline-block;float:right;top:initial;margin:5px 0}.fts-facebook-popup .fts-position-helper{display:inline-block;height:100%;vertical-align:middle}.fts-facebook-popup .fts-popup-image-position{min-height:527px;width:100%;background:#000;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none}.fts-facebook-popup .fts-popup-wrap .mfp-title{padding:0;background:rgba(255,255,255,.11);margin:0}.fts-facebook-popup .fts-popup-second-half .mfp-title a{color:#0f6fad;text-decoration:none!important}.fts-youtube-popup .fts-popup-second-half .mfp-title a{color:#0f6fad!important}.fts-facebook-popup .mfp-figure:after{content:'';position:absolute;left:0;top:0;bottom:0;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#fff}.fts-facebook-popup .fts-popup-wrap .mfp-title p,.fts-instagram-caption-content .fts-popup-wrap .mfp-title p{color:#000!important;margin:0 0 10px!important;padding:0!important}.fts-facebook-popup .mfp-image-holder .mfp-content{max-width:1400px;width:100%}.fts-facebook-popup .fts-jal-fb-user-name{font-size:14px;margin-top:20px;padding-left:82px;display:block;padding-right:15px}.fts-facebook-popup .fts-fb-caption,.fts-facebook-popup .fts-non-popup-text,.hide-date-likes-comments-etc{display:none!important}.fts-facebook-popup .fts-jal-fb-post-time{padding-left:82px}.fts-facebook-popup .fts-instagram-caption-content,.fts-facebook-popup .fts-jal-fb-message{padding:10px 20px 0}.fts-facebook-popup .fts-fb-caption a{font-size:13px}.fts-facebook-popup i:before{margin-left:0!important;font-style:normal!important;font-size:15px!important}.fts-facebook-popup .icon-file:before{font-size:15px!important}#fts-photo-next:hover:after,#fts-photo-prev:hover:after,.fts-popup-half:hover #fts-photo-next:after,.fts-popup-half:hover #fts-photo-prev:after{opacity:1!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}#fts-photo-next:after,#fts-photo-prev:after{font-family:FontAwesomeSlick;font-size:58px!important;font-weight:100;opacity:0;color:#fff;border:none!important;margin-top:-20px!important}#fts-photo-next:after{content:"\f105"}#fts-photo-prev:after{content:"\f104"}.fts-facebook-popup .mfp-arrow{background:0 0!important;width:48px!important;height:28px!important;line-height:normal!important;margin:-32px 0!important}.fts-facebook-popup .mfp-arrow:after{margin:0!important;top:0!important;border:none!important;width:48px!important;height:24px!important}.twitter-followers-fts.fts-tweets-first,.twitter-followers-fts:hover{border-bottom:4px solid #1b95e0!important}.fts-facebook-popup .mfp-arrow-left{left:5px!important}.fts-facebook-popup .mfp-arrow-right{right:5px!important}.fts-facebook-popup .fts-jal-fb-description.fts-jal-fb-description-popup,.fts-facebook-popup .hide-date-likes-comments-etc{display:inline-block!important}.fts-facebook-popup .mfp-arrow:before,.fts-iframe-popup-element,.fts-video-popup-element{display:none}.fts-jal-fb-description-popup{color:#444}.fts-facebook-popup .fts-jal-fb-description-wrap{max-height:300px;overflow:auto;max-width:100%;padding-left:20px!important;width:100%}.fts-facebook-popup *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}body .fts-facebook-popup a.fts-powered-by-text{margin:2px 20px!important;text-align:left!important;float:left!important;font-size:12px;color:#c1c1c1!important;width:auto!important;font-weight:400!important;line-height:18px!important}.fts-powered-by-text-popup a.fts-powered-by-text{display:block!important}.fts-facebook-popup .mfp-iframe-holder .mfp-bottom-bar,.fts-facebook-popup .mfp-inline-holder .mfp-bottom-bar{overflow:auto}.fts-fb-comments-content{float:left;width:100%;max-width:100%;background:#f6f7f9;padding:0 20px 20px}.fts-facebook-popup .fts-fb-location-title{font-size:15px;display:block;padding:0;font-weight:700;font-style:normal;margin:12px 0 0;color:#333}.ft-gallery-share-wrap .fa,.fts-share-wrap i{font-style:normal!important}.fts-facebook-popup .fts-instagram-caption-content,.fts-facebook-popup .fts-jal-fb-message{clear:both;font-size:15px;color:#333}.fts-facebook-popup .fts-fb-get-directions{font-size:15px;display:inline-block;padding:0 0 20px;color:#4595f0!important}.fts-facebook-popup .fts-fb-ticket-info{color:#4595f0!important}.fts-event-title-wrap{font-size:24px;line-height:24px}.fts-fb-comments-wrap{display:none!important}.fts-fb-comment{clear:both;float:left;width:100%;color:#222;margin:0;padding:15px 0 0;font-size:13px}.fts-fb-comment-user-pic{float:left;width:32px;height:32px;margin:0;border-radius:50px}.fts-fb-comment-msg{padding-left:42px;font-size:12px}.fts-fb-comment-user-name{font-weight:700;display:inline-block;font-size:12px}@media all and (max-width:900px){.fts-facebook-styles-popup .fts-popup-half,.fts-facebook-styles-popup .fts-popup-second-half{height:100%;width:100%;position:relative;float:none}.fts-facebook-styles-popup .fts-popup-half{background:#000;text-align:center;vertical-align:middle;z-index:500}.fts-facebook-styles-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-facebook-styles-popup .mfp-iframe-holder .mfp-content,.fts-facebook-styles-popup .mfp-inline-holder .mfp-content{top:0}.fts-facebook-styles-popup .mfp-iframe-holder .fts-popup-image-position,.fts-facebook-styles-popup .mfp-inline-holder .fts-popup-image-position{height:auto!important}.fts-facebook-styles-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-facebook-styles-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-facebook-styles-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important}}@media all and (max-width:640px){.fts-instagram-styles-popup .fts-popup-half,.fts-instagram-styles-popup .fts-popup-second-half{height:100%;width:100%!important;position:relative;float:none}.fts-instagram-styles-popup .fts-popup-half{background:#fff;text-align:center;vertical-align:middle;z-index:500}.fts-instagram-styles-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-instagram-styles-popup .mfp-iframe-holder .mfp-content,.fts-instagram-styles-popup .mfp-inline-holder .mfp-content{top:0}.fts-instagram-styles-popup .mfp-iframe-holder .fts-popup-image-position{height:auto!important}.fts-instagram-styles-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-instagram-styles-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-instagram-styles-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important}}@media all and (min-width:1900px){.fts-facebook-popup .fts-popup-second-half.fts-instagram-popup-second-half{float:left!important}.fts-facebook-popup .fts-popup-second-half{height:100%;width:100%;position:relative;float:left}.fts-facebook-popup .fts-popup-half{background:#000;text-align:center;vertical-align:middle;z-index:500;width:100%}.fts-facebook-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-facebook-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup .mfp-inline-holder .mfp-content{top:0}.fts-facebook-popup .mfp-iframe-holder .fts-popup-image-position,.fts-facebook-popup .mfp-inline-holder .fts-popup-image-position{height:auto!important}.fts-facebook-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-facebook-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-facebook-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important;min-height:auto!important}}.fts-twitter-backg-image,.fts-twitter-backg-image img{margin:0!important;padding:0!important;position:relative;z-index:99}.fts-instagram .image-overlay,.fts-instagram .image-overlay-inside,.fts-instagram .image-overlay.overlay-type-extern,.fts-jal-fb-group-display .image-overlay-inside,.fts-jal-single-fb-post .image-overlay,.fts-jal-single-fb-post .image-overlay-inside,.fts-jal-single-fb-post .image-overlay.overlay-type-extern,.fts-mashup .image-overlay,.fts-mashup .image-overlay.overlay-type-extern,.fts-pinterest-wrapper .image-overlay,.fts-pinterest-wrapper .image-overlay-inside,.fts-pinterest-wrapper .image-overlay.overlay-type-extern,.fts-profile-pic a .image-overlay,.fts-profile-pic a .image-overlay-inside,.fts-profile-pic a .image-overlay.overlay-type-extern,.fts-slicker-facebook-photos .image-overlay,.fts-slicker-facebook-photos .image-overlay-inside,.fts-slicker-facebook-photos .image-overlay.overlay-type-extern,.fts-tweeter-wrap .image-overlay,.fts-tweeter-wrap .image-overlay-inside,.fts-tweeter-wrap .image-overlay.overlay-type-extern,.fts-vine-content .image-overlay,.fts-vine-content .image-overlay-inside,.fts-vine-content .image-overlay.overlay-type-extern,.fts-yt-videolist .image-overlay,.fts-yt-videolist .image-overlay-inside,.fts-yt-videolist .image-overlay.overlay-type-extern{display:none!important}.fts-facebook-popup.mfp-ready .mfp-figure{opacity:1}ul.fts-sidebar-menu ul.fts-social-bar-icons-wrap ul li{margin:0!important}.fts-instagram-inline-block-centered{text-align:center;font-size:0;margin:auto}#facebook-sidebar .fts-fb-comments-wrap{display:none}.fts-twitter-backg-image img{display:block!important;width:100%}.fts-twitter-backg-image .twitter-social-btn-top{position:absolute!important;bottom:5px;left:10px;z-index:100}.fts-twitter-followers-wrap{background:#fff;padding:1px 5px 0 0;margin-bottom:10px;text-align:center;color:#1b95e0!important}.twitter-followers-fts{text-align:center;display:inline-block;padding:5px 15px;font-size:18px;font-weight:600!important}.twitter-followers-fts a,.twitter-followers-fts-singular a{font-weight:400!important;letter-spacing:.02em;text-transform:uppercase}.twitter-followers-fts a{display:block;color:#66757f!important;font-size:11px;transition:color .15s ease-in-out}.twitter-followers-fts:hover{transition:border .15s ease-in-out}.fts-tweets-first,.fts-tweets-first a,.twitter-followers-fts:hover a{color:#1b95e0!important}.fts-tweet-others-right{margin-left:65px}.fts-tweet-reply-left{float:left;display:inline-block}.fts-twitter-reply-wrap a{color:rgba(144,147,148,.71)}body .fts-twitter-favorites-wrap:hover{color:#c32525!important}.fts-twitter-favorites-wrap{margin-left:20px}body .fts-twitter-reply-wrap.fts-twitter-full-width{margin-left:0!important;margin-top:0}.twitter-followers-fts-singular{font-size:15px;padding:5px 0 0}.twitter-followers-fts-singular a{color:#66757f!important;font-size:11px}.twitter-social-btn-top a,.twitter-social-btn-top iframe{color:#fff!important}@media (max-width:400px){.twitter-followers-fts{padding:5px 10px;font-size:15px!important;font-weight:500!important}}.fts-twitter-full-name{font-size:14px!important}a.fts-twitter-at-name{font-size:12px!important;color:#999!important;font-weight:400!important}.fts-profile-wrap{clear:both;display:block}.fts-clear{clear:both}.fts-profile-pic{float:left;margin:0 25px 20px 0;max-width:125px}.fts-profile-pic a:hover{opacity:.8}.fts-isnta-full-name{padding:0 0 10px;float:left;margin:4px 20px 0 0}.fts-profile-name-wrap .fts-follow-header-wrap{font-size:14px;display:inline-block;letter-spacing:0;padding:7px 10px;border-radius:4px;border:1px solid #5dba00;line-height:18px}.fts-profile-description{font-size:15px;line-height:22px}.fts-profile-name-wrap{font-size:32px;margin-bottom:18px;letter-spacing:2px;line-height:28px}.fts-profile-pic img{border-radius:50%;max-width:100%}.fts-profile-stats{margin:0 0 5px}.fts-profile-stats span{font-weight:700;display:inline-block}.fts-profile-stats div{font-size:15px;display:inline-block;margin-right:20px;margin-bottom:10px}.fts-profile-wrap{max-width:630px;margin:auto;padding:0 0 20px}.fts-facebook-popup .fts-instagram-caption-content a{color:#003569!important}.fts-facebook-popup a.ft-gallery-link-popup,.fts-facebook-popup a.fts-jal-fb-see-more{font-size:12px;text-align:right;margin-top:15px;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:13px 20px 11px 40px;background:#f6f7f9;display:block!important;width:100%!important}.fts-instagram-popup-profile-wrap{display:none}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-pic{display:block;padding:15px 10px 0 15px;margin:0}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-pic img{display:block;width:40px}.fts-facebook-popup.fts-instagram-styles-popup .fts-isnta-full-name{font-size:17px;letter-spacing:normal;color:#333}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-name-wrap{padding-top:15px}.fts-follow-header-wrap{margin-right:15px;color:#5dba00}.fts-follow-header-wrap a{color:#5dba00!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-insta-date-popup-grab{clear:both;text-align:right;margin:55px 15px -8px!important;color:#999;border-top:1px solid #eee;padding-top:12px;font-size:14px}.fts-facebook-popup.fts-instagram-styles-popup a.fts-view-on-instagram-link{margin:20px 15px 0;padding:10px 0!important;color:#9f9f9f!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-view-on-instagram-link:before{font-size:15px;top:1px;position:relative;margin-left:5px}.fts-facebook-popup.fts-instagram-styles-popup .fts-follow-header-wrap{float:right;margin:0 15px 20px 0;color:#5dba00;font-size:12px}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap,.fts-facebook-popup.fts-instagram-styles-popup .slicker-heart-comments-wrap{position:relative;color:#444!important;margin:0 0 0 15px!important;font-size:14px;width:auto!important;left:0}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap li,.fts-facebook-popup.fts-instagram-styles-popup .slicker-heart-comments-wrap li{display:inline-block;margin-right:15px!important;margin-top:-5px!important;opacity:1}.fts-facebook-popup.fts-instagram-styles-popup .fts-comment-instagram:before{font-size:14px}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-half.fts-instagram-popup-half{width:64%}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-second-half.fts-instagram-popup-second-half{width:36%}.fts-facebook-popup.fts-instagram-styles-popup .fts-instagram-popup-half .fts-popup-image-position{min-height:auto!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-second-half .mfp-bottom-bar{margin:0;position:absolute!important;top:0;right:0;width:100%;cursor:auto;color:#000;overflow:auto;min-height:200px}.fts-facebook-popup.fts-instagram-styles-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup.fts-instagram-styles-popup .mfp-image-holder .mfp-content,.fts-facebook-popup.fts-instagram-styles-popup .mfp-inline-holder .mfp-content{max-width:1000px;width:100%}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap{margin:-18px 0 0 15px!important}.fts-facebook-popup a.fts-view-on-instagram-link{font-size:12px;text-align:left;margin-top:15px;border-top:1px solid #eee;border-bottom:1px solid #eee;color:#555!important;padding:10px 20px;background:#fff;display:block}.fts-mashup-post-wrap{padding:0!important;border-bottom:1px solid rgba(184,184,184,.3);line-height:17px;margin-bottom:10px;position:relative;display:inline-block;width:100%}.fts-mashup-type-name{clear:both;width:100%;display:block;background:#f7f7f7;margin-bottom:10px;box-shadow:1px 1px 0 #ddd}.fts-mashup-type-name span{display:block;padding:0 7px 3px 0;text-align:right;font-size:10px;color:#bfbfbf;line-height:14px}.fts-mashup-count-wrap{width:100%;clear:both;display:block;padding-top:12px;text-align:left;margin-bottom:6px;float:left}.fts-mashup-count-wrap a{display:inline-block;font-size:13px}.fts-mashup-count-wrap .fts-tweet-reply-left{float:none;display:inline-block}.fts-mashup-description-wrap{clear:both;padding-top:5px;line-height:18px}.fts-jal-fb-post-time{margin-bottom:8px}.twitter-video{min-width:200px!important}.fts-mashup .fts-mashup-image-and-video-wrap{margin-top:8px;position:relative;line-height:0}.fts-mashup-count-wrap .slicker-heart-comments-wrap{position:relative;top:inherit;bottom:inherit;margin:0!important}.fts-mashup-count-wrap .slicker-heart-comments-wrap li.slicker-instagram-image-likes{padding-left:0!important}.fts-mashup .fts-twitter-description-image{margin-top:0!important}.fts-mashup .fts-single-pin-social-meta-wrap{margin:0}.fts-mashup .fts-single-pin-social-meta-wrap span{margin-top:0;font-size:14px}.fts-mashup .fts-youtube-title{font-weight:700;font-size:12px;padding:8px 0 0;line-height:14px}.fts-mashup-post-wrap .fts-jal-single-fb-post{padding-top:0!important}.fts-mashup .fts-jal-single-fb-post{border-bottom:none}.fts-mashup .fts-jal-fb-picture,.fts-mashup .fts-jal-fb-vid-picture{margin-top:0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before,.fts-mashup-instagram-icon a:before,.fts-mashup-pinterest-icon a:before,.fts-mashup-twitter-icon a:before,.fts-mashup-wp_gallery-icon a:before,.fts-mashup-youtube-icon a:before{font-family:FontAwesomeSlick;font-size:32px;font-weight:100!important}.fts-mashup-instagram-icon a:before{content:"\f16d";font-size:37px;top:2px;position:relative}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before{content:"\f09a";top:2px;position:relative;left:8px;font-size:30px}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before{content:""}.fts-mashup-twitter-icon a:before{content:"\f099";top:0;position:relative;left:3px}.fts-mashup-pinterest-icon a:before{content:"\f231";position:relative;top:3px;left:5px}.fts-mashup-youtube-icon a:before{content:"\f167";position:relative;top:2px;left:4px}.fts-mashup-icon-wrap-left.fts-mashup-youtube-icon a:before{top:0;left:2px}.slicker-instagram-placeholder .ft-text-for-popup-content{padding:5px 15px;opacity:0;z-index:10;position:relative;color:#fff}.slicker-instagram-placeholder .fts-mashup-count-wrap{opacity:0;z-index:10;position:absolute;bottom:-5px;left:5px;color:#fff}.slicker-instagram-placeholder:hover .fts-mashup-count-wrap a{color:#fff!important;font-size:12px}.slicker-instagram-placeholder .fts-mashup-count-wrap a{color:#fff;font-size:12px}.slicker-instagram-placeholder:hover .ft-text-for-popup-content,.slicker-instagram-placeholder:hover .fts-mashup-count-wrap{opacity:1;color:rgba(255,255,255,.88)}.slicker-instagram-placeholder .ft-gallery-link-popup{font-size:14px;position:absolute;bottom:10px;left:10px}.ft-gallery-link-popup:before{font-family:FontAwesomeSlick;content:"\f14d ";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased;font-size:16px;margin-top:1px;margin-left:1px}.fts-mashup-wp_gallery-icon a:before{content:"\f19a";position:relative;top:2px;left:4px}.fts-mashup-icon-wrap-left.fts-mashup-wp_gallery-icon a:before{top:0;left:2px}.fts-mashup-icon-wrap-right.fts-mashup-wp_gallery-icon{margin-top:3px;margin-right:5px}.slicker-instagram-placeholder .ft-wp-gallery-icon{margin-top:-12px;margin-right:0}.fts-mashup-icon-wrap-left.fts-mashup-twitter-icon a:before{top:0;left:3px}.fts-mashup-type-icon-spacer{clear:both;width:100%;display:block;background:#f7f7f7;margin-bottom:2px}.fts-feed-type-wp_gallery .fts-mashup-description-wrap{margin:0 0 15px}.fts-mashup .fts-feed-type-facebook .fts-jal-fb-user-thumb,.fts-mashup-hide-fb-thumb.fts-feed-type-facebook .fts-jal-fb-user-thumb{display:none!important}.fts-feed-type-facebook .fts-mashup-icon-wrap-left a:before,.fts-feed-type-facebook .fts-mashup-icon-wrap-right a:before{content:"\f09a";top:2px;position:relative;left:9px;font-size:28px!important}.fts-mashup-type-icon{float:left;height:40px;margin:15px 10px 0 0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb{width:40px;height:45px;float:left;margin:0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a,.fts-mashup-icon-wrap{float:left;height:45px;width:40px;padding-top:13px;position:relative;margin-top:0!important;text-decoration:none!important}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a{float:left;height:50px;width:50px;padding-top:0;position:relative;margin-top:0!important;text-decoration:none!important}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb{width:50px;height:50px;float:left;margin:0 15px 0 0}.fts-mashup .fts-jal-fb-message{line-height:18px;padding-top:5px}.fts-mashup-count-wrap a,.fts-mashup-icon-wrap a{text-decoration:none!important}.fts-mashup .fts-jal-fb-post-time{padding-top:3px}.fts-mashup .fts-likes-shares-etc-wrap{float:left;width:100%;padding:0}.fts-mashup .icon-thumbs-up:before,.fts-single-pin-social-meta-wrap,.fts-tweet-reply-left{margin-left:5px!important}.fts-mashup .fts-jal-fb-see-more,.fts-mashup .fts-mashup-count-wrap .slicker-heart-comments-wrap li,.fts-mashup .slicker-instagram-placeholder .slicker-heart-comments-wrap li{font-size:12px!important}.fts-mashup .fts-comment-instagram:before,.fts-mashup .fts-jal-fb-see-more .icon-comments:before,.fts-mashup .fts-jal-fb-see-more .icon-file-up:before,.fts-mashup .fts-jal-fb-see-more .icon-thumbs-up:before{font-size:14px}.fts-mashup-icon-wrap-right{float:right}.fts-mashup-icon-wrap-right a{text-decoration:none!important;font-size:12px}.fts-mashup-icon-wrap-left a:before,.fts-mashup-icon-wrap-right a:before{font-family:FontAwesomeSlick;font-weight:100!important;top:12px}.fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{position:relative;right:18px;top:13px;z-index:1}.fts-mashup-hide-fb-icon.fts-feed-type-facebook .fts-mashup-icon-wrap-right a:before{font-size:30px!important}.fts-mashup-icon-wrap-left{float:left;margin:16px 12px 0 0}.fts-feed-type-pinterest .fts-mashup-icon-wrap-left a:before{left:4px;top:0}.fts-mashup .fts-feed-type-facebook .fts-jal-fb-user-thumb a:before{font-family:FontAwesomeSlick!important;content:"\f09a"!important;top:2px!important;position:relative!important;left:8px!important;font-size:29px!important}.fts-mashup .fts-mashup-icon-left .fts-jal-fb-user-thumb{display:none!important}.fts-feed-type-facebook.fts-mashup-hide-fb-thumb .fts-jal-fb-user-thumb,.fts-mashup .fts-mashup-hide-fb-icon-and-thumbnail.fts-feed-type-facebook .fts-jal-fb-user-thumb,.fts-mashup-hide-fb-icon-and-thumbnail .fts-jal-fb-user-thumb,.fts-mashup-icon-left .fts-jal-fb-user-thumb img{display:none!important}.fts-mashup-icon-left .fts-feed-type-facebook .fts-jal-fb-user-thumb a:before{content:''!important}.fts-mashup-icon-left.fts-feed-type-facebook.fts-mashup-hide-fb-thumb .fts-jal-fb-user-thumb{display:block!important}body div.fts-mashup-hide-fb-thumbnail-icon .fts-jal-fb-user-thumb a:before{display:none}body div.fts-mashup-hide-fb-thumbnail-icon .fts-jal-fb-user-thumb{width:50px!important;height:50px!important;margin-right:10px!important;margin-bottom:10px!important}body .fts-mashup .fts-mashup-hide-fb-thumbnail-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a{width:50px!important;height:50px!important;margin-top:0!important;padding:0!important}.fts-mashup .fts-likes-shares-etc-wrap a{color:#777}.fts-mashup-error-notice{margin-bottom:25px}.fts-mashup-icon-left .fts-mashup-error-notice{margin-left:45px}.fts-mashup-icon-wrap-left a{text-decoration:none!important}.fts-mashup-icon-wrap-right.fts-mashup-youtube-icon a:before{left:-2px!important;top:15px}.fts-mashup-icon-wrap-right.fts-mashup-twitter-icon a:before{left:-2px!important}.fts-mashup-icon-wrap-right.fts-mashup-pinterest-icon a:before{left:0!important}.fts-mashup .fts-jal-fb-user-name{margin-right:23px}.fts-mashup-media-top.fts-mashup-post-wrap .fts-jal-fb-user-name{margin-left:10px;padding-top:0}.fts-mashup-media-top .fts-jal-fb-user-name{margin-left:10px}.fts-mashup .fts-jal-fb-message p,.fts-mashup-description-wrap p{margin:4px 0 5px!important}.fts-single-pin-meta-wrap .fts-single-pin-social-meta-wrap{margin-left:15px!important}.fts-review-details-wrap{margin-top:0}.fts-review-details-master-wrap{display:block;clear:both;padding:10px 10px 15px;background:#fff;border-bottom:1px solid rgba(184,184,184,.3)}.fts-reviews-overall-rating-stars{margin:auto}.fts-review-details-wrap{padding:5px 0 0;line-height:17px}.fts-review-details-master-wrap-no-background-or-border{background:0 0!important;border:none!important}.fts-slicker-twitter-posts .fts-tweeter-wrap .tweeter-info{padding:11px 0 7px}.fts-slicker-twitter-posts .fts-twitter-image{margin-left:11px!important}.fts-slicker-twitter-posts .tweeter-info .fts-twitter-full-width{padding:0 10px 10px}.fts-slicker-twitter-posts .tweeter-info .fts-twitter-full-width.fts-twitter-reply-wrap{padding:0 10px 2px}.tweeter-info .twitter-video{margin:0 -8px -5px!important}.fts-fb-get-directions,.fts-fb-ticket-info{display:inline-block}.fts-fb-ticket-info:before{content:'|';margin-left:10px;margin-right:10px}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-post-time,.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-user-name,.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap{padding-right:15px}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap{margin-top:20px;margin-bottom:25px;padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-user-name{margin-top:12px;padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-post-time{padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-icon-wrap-right.fts-mashup-wp_gallery-icon{margin-right:20px!important;margin-top:-1px}.fts-facebook-popup a.ft-gallery-link-popup{font-size:12px;text-align:left;margin-top:15px;border-top:0 solid #eee;border-bottom:0 solid #eee;padding:14px 20px 10px;background:0 0;display:inline-block;float:left}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap p{padding-top:0;line-height:21px;word-wrap:break-word;font-size:15px;color:#333}.ft-text-for-popup-content{text-align:left}.fts-slicker-facebook-photos .ft-text-for-popup-content .fts-jal-fb-post-time{color:#9d9d9d!important;margin-top:0}.ft-image-overlay{position:absolute;top:0;left:0;height:100%;width:100%}.fts-popup-second-half .fts-watermark-inside{display:none!important}.fts-watermark-inside-center{position:absolute;top:50%;text-align:center;transform:translateY(-50%);width:100%}.fts-watermark-inside-top-center{position:absolute;text-align:center;top:0;width:100%}.fts-watermark-inside-bottom-center{position:absolute;bottom:0;text-align:center;width:100%}.fts-watermark-inside-bottom-left{position:absolute;bottom:0}.fts-watermark-inside-bottom-right{position:absolute;text-align:right;bottom:0;width:100%}.fts-watermark-inside-top-right{position:absolute;width:100%;top:0;text-align:right}.fts-watermark-inside-top-left{position:absolute;text-align:left;top:0;width:100%}.fts-watermark-inside img{max-width:100%;height:auto;display:inline-block;margin:0}.fts-mashup-image-and-video-wrap .fts-watermark-inside img{max-width:75%!important}.ft-gallery-share-wrap{display:none;margin-top:0;position:absolute;left:20px;background:#fff;top:-8px;min-width:145px;box-shadow:2px -2px 3px 0 rgba(187,187,187,.8);width:100%;z-index:1000;text-align:left}.fts-popup-second-half .ft-gallery-share-wrap{left:50px;background:#f6f7f9;top:8px}.ft-gallery-share-wrap a{display:inline-block!important}.fts-share-wrap{padding:0;float:left;width:auto;margin:9px 0 0;display:inline-block;position:relative;z-index:1}a.fts-jal-fb-see-more{width:auto!important;display:inline-block!important;text-align:left}.ft-gallery-share-wrap .fa{display:inline-block!important;font-family:FontAwesomeSlick!important;font-weight:400!important;line-height:1!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ft-gallery-share-wrap .fa-facebook-square:before{content:"\f082";font-size:17px!important}.ft-gallery-share-wrap .fa-linkedin:before{content:"\f0e1";font-size:16px!important}.ft-gallery-share-wrap .fa-google-plus:before{content:"\f0d5";font-size:16px!important}.ft-gallery-share-wrap .fa-pinterest-plus:before{content:"\f0d2";font-size:15px!important}.ft-gallery-share-wrap .fa-twitter:before{content:"\f099";font-size:19px!important;top:1px;position:relative}.ft-gallery-share-wrap .fa-envelope:before{content:"\f0e0";font-size:16px!important}.ft-gallery-link-popup{margin:5px 0 0!important}.ft-gallery-share-wrap a:hover{opacity:.8}.fts-slicker-facebook-photos .fts-share-wrap a{color:#fff!important}.fts-slicker-facebook-photos .fts-mashup-count-wrap{clear:both;display:block!important;top:-21px;left:16px}.fts-slicker-facebook-photos .fts-likes-shares-etc-wrap{outline:0;z-index:5000!important;color:#fff;position:absolute;bottom:10px!important;display:none;width:100%;text-align:left}.fts-slicker-facebook-photos .fts-jal-fb-see-more{bottom:0!important;position:absolute;left:10px}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-mashup-count-wrap.fts-share-wrap{margin:10px 3px 0 0;padding:0}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-mashup-count-wrap.fts-share-wrap a.ft-gallery-link-popup{margin:0!important}.fts-mashup-post-wrap.fts-feed-type-facebook .ft-gallery-share-wrap{top:-7px}.fts-mashup-count-wrap.fts-share-wrap .ft-gallery-link-popup{margin-top:0!important}.fts-twitter-reply-wrap{float:left}.fts-instagram-reply-wrap-left,.fts-pinterest-reply-wrap-left,.fts-youtube-reply-wrap-left{float:right}.fts-tweeter-wrap .fts-share-wrap{padding:7px 0 0;margin-top:10px}.ft-gallery-share-wrap a{margin:7px 5px;font-size:13px}.fts-tweeter-wrap .ft-gallery-share-wrap{top:-10px}.fts-tweeter-wrap .fts-mashup-count-wrap a{display:inline-block;margin:7px 5px;font-size:13px}body .fts-slicker-facebook-photos .fts-tweeter-wrap .ft-gallery-share-wrap{max-width:132px!important;width:100%!important}.fts-tweeter-wrap .ft-gallery-link-popup{font-size:13px}.fts-twitter-reply-wrap-left{float:right;padding:10px 10px 0;margin-top:10px}.fts-tweet-others-right a{display:inline-block}.fts-twitter-reply-wrap .fts-share-wrap{margin-top:10px;padding:0}.fts-share-wrap .fts-share-wrap{margin-top:10px}.fts-twitter-reply-wrap .fts-share-wrap a.ft-gallery-link-popup{margin-top:0!important}.fts-slicker-twitter-posts .fts-twitter-reply-wrap-left{padding:0 10px 2px!important;margin:10px 0 0!important}.ft-galleryfacebook-icon{margin-left:11px!important}.fts-mashup-post-wrap .fts-tweet-reply-left{margin-right:35px;padding:0 5px}.fts-mashup-post-wrap .fts-twitter-reply-wrap-left{padding:0;margin-top:0}.fts-share-wrap .ft-gallery-link-popup{margin:0!important;font-size:12px}.fts-mashup-count-wrap .fts-share-wrap{margin:0!important}.fts-instagram-reply-wrap-left{margin-right:8px}.fts-popup-second-half .fts-share-wrap{margin:15px 0 -64px}.fts-popup-second-half .mfp-title .ft-gallery-share-wrap a{color:#137fc4}.fts-instagram-styles-popup .fts-share-wrap .ft-gallery-share-wrap a,.fts-instagram-styles-popup .fts-share-wrap a.ft-gallery-link-popup{color:#444}.fts-youtube-reply-wrap-left a{font-size:12px}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-jal-fb-see-more{margin-bottom:-1px;text-transform:none!important}.fts-instagram-styles-popup .ft-gallery-link-popup,.fts-instagram-styles-popup .fts-share-wrap{margin:0!important;padding:0!important}.fts-instagram-styles-popup .fts-instagram-reply-wrap-left{float:left;margin-left:20px}.fts-instagram-styles-popup .fts-share-wrap{background:#fff;top:-11px;left:19px;position:relative;z-index:1000}.fts-instagram-styles-popup .ft-gallery-share-wrap{top:-6px;left:25px;background:#fff}.fts-instagram-styles-popup .ft-gallery-link-popup:before{content:"\f064";margin-right:10px}.slicker-instagram-placeholder .ft-gallery-link-popup:before{content:"\f064";color:#fff;font-size:15px;position:relative;top:2px}.slicker-instagram-placeholder .ft-gallery-share-wrap{top:-19px;left:35px;box-shadow:2px -2px 3px 0 #222!important;background:#000}.slicker-instagram-placeholder .ft-gallery-share-wrap a{color:#fff}.fts-facebook-popup .ft-gallery-link-popup:before{font-family:FontAwesomeSlick;content:"\f064 ";margin-left:8px}.fts-mashup-count-wrap .fts-instagram-reply-wrap-left{margin-right:-8px}.fts-facebook-thumb-one,.fts-facebook-thumb-zero{margin-right:1px!important;display:inline-block;margin-bottom:1px!important}a.fts-facebook-thumbs-wrap{display:inline-block;max-width:515px}.fts-facebook-thumb-two{display:inline-block}.fts-image-count-tint-underlay{position:absolute;top:0;bottom:0;right:0;left:0;background:rgba(0,0,0,.5)}.fts-fb-thumbs-wrap,.fts-more-photos-auto-width .fts-fb-thumbs-wrap{position:relative;background-size:cover!important;background-position:center center!important;display:inline-block!important;overflow:hidden}.fts-fb-thumbs-wrap{margin-right:.233333%!important}.fts-2-photos.fts-fb-thumbs-wrap,.fts-more-photos-3-photos .fts-fb-thumb-two-wrap{margin-right:0!important}.fts-3-photos{max-width:33.1%}.fts-2-photos{max-width:49.77%}.fts-fb-more-photos-wrap .fts-jal-fb-picture{margin-bottom:1px!important}.fts-more-photos-auto-width{float:none!important;margin:10px 0 4px}.fts-more-photos-auto-width a{width:49.84%;margin:0!important}.fts-more-photos-auto-width .fts-fb-thumbs-wrap{max-width:100%;margin-right:0!important;margin-left:.2333333333%!important;margin:0 0 4px;z-index:0;background-repeat:no-repeat;vertical-align:top}.fts-more-photos-auto-width .fts-jal-fb-picture{float:none!important;display:inline-block!important;margin:0!important}.fts-more-photos-three-photo-wrap .fts-fb-thumbs-wrap{display:inline-block!important;max-width:100%;margin-right:.233333333%!important;margin:0 0 4px;width:49.887%;overflow:hidden;max-height:240px}.fts-fb-scrollable,.fts-twitter-scrollable,.fts-youtube-scrollable{overflow:auto}.ft-text-for-popup,.fts-slicker-facebook-albums .fts-fb-load-more-output,.fts-slicker-facebook-albums .fts-share-wrap,.fts-slicker-facebook-photos .fts-share-wrap,.fts-twitter-reply-wrap-left p{display:none}.fts-more-photos-three-photo-wrap .fts-fb-thumb-one-wrap{margin-right:0!important}.fts-image-count{position:absolute;bottom:50%;width:100%;top:50%;text-align:center;font-size:36px;color:#fff;line-height:36px;height:36px;transform:translate(0,-50%)}.fts-image-count span{position:relative;bottom:0;font-size:35px}.fts-fb-more-photos-wrap{width:100%}@media (max-width:375px){.fts-image-count,.fts-image-count span{font-size:20px}}@media (max-width:667px){.fts-image-count,.fts-image-count span{font-size:34px}}.ft-gallery-buy-now{margin:0 12px}.fts-mashup-post-wrap .fts-share-wrap,.fts-slicker-facebook-albums.ft-wp-gallery .fts-share-wrap{display:block}.fts-mashup-count-wrap .fts-twitter-reply-wrap.fts-twitter-no-margin-left,.fts-mashup-hide-date .fts-jal-fb-post-time,.fts-mashup-hide-name .fts-jal-fb-user-name,.fts-mashup-media-top .fts-jal-fb-description-wrap,.fts-mashup-media-top .fts-mashup-type-icon-spacer{display:none}.ft-wp-gallery .fts-share-wrap a{color:#777!important}.fts-slicker-facebook-posts img{max-width:100%}.fts-twitter-no-margin-left{margin-left:71px;clear:both}.fts-instagram-styles-popup .fts-comment-instagram:before{font-size:14px!important}.fts-smallerthan-180 .fts-instagram-link-target{padding-left:50%;padding-bottom:50%;padding-top:50%}.fts-smallerthan-180 .fts-instagram-link-target span:before{content:''!important}.fts-smallerthan-180 .fts-instagram-link-target:hover,.fts-smallerthan-180.slicker-instagram-placeholder:hover .slicker-instaG-photoshadow{background:0 0!important}.fts-instagram,.fts-instagram-scrollable{margin:auto}.fts-mashup-hide-name .fts-mashup-description-wrap,.fts-mashup-hide-name.fts-mashup-hide-date .fts-jal-fb-message{padding-top:0!important}.fts-mashup-description-wrap a{word-wrap:break-word}.fts-mashup-image-and-video-wrap.popup-gallery-twitter .twitter-video{margin:-8px!important}.fts-mashup-media-top .fts-mashup-image-and-video-wrap.popup-gallery-twitter{margin-top:0}.fts-mashup-media-top .fts-likes-shares-etc-wrap,.fts-mashup-media-top .fts-mashup-description-wrap,body .fts-mashup-post-wrap.fts-mashup-media-top .fts-jal-fb-message{padding:0 10px!important}.fts-mashup-media-top .fts-youtube-title{padding:10px 10px 0;display:none}.fts-mashup-post-wrap .fts-jal-single-fb-post .fts-jal-fb-vid-wrap .fts-jal-fb-description-wrap{padding:5px 10px 0!important}.fts-mashup-media-top .fts-mashup-count-wrap{padding:8px 10px 7px!important;margin-bottom:0;margin-top:4px}.fts-mashup-media-top .fts-likes-shares-etc-wrap{padding:7px 10px 8px!important;margin-bottom:0;margin-top:10px}.fts-mashup-media-top .fts-jal-single-fb-post{padding-bottom:0!important}.fts-mashup-media-top .fts-jal-fb-post-time{padding:5px 10px 7px!important}.fts-mashup-hide-thumbnail.fts-mashup-media-top .fts-jal-fb-user-name,.fts-mashup-hide-thumbnail.fts-mashup-media-top .fts-jal-single-fb-post .fts-jal-fb-user-name,.fts-mashup-media-top .fts-jal-fb-message{padding:0 10px!important}.fts-mashup-media-top .fts-jal-fb-see-more,.fts-mashup-media-top .fts-share-wrap{margin-top:0}.fts-mashup-media-top .fts-mashup-youtube-icon a:before{margin-right:8px!important;top:10px}.fts-mashup-media-top .fts-mashup-twitter-icon a:before{margin-right:8px!important;top:5px}.fts-mashup-media-top .fts-mashup-pinterest-icon a:before{margin-right:8px!important;top:9px}.fts-mashup-media-top .fts-mashup-instagram-icon a:before{margin-right:9px!important;top:9px}.fts-mashup-media-top .fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{position:unset;right:unset;top:unset;z-index:1;float:right!important}.fts-mashup-media-top .fts-jal-fb-top-wrap{display:none!important}.fts-jal-fb-group-display.fts-mashup-media-top .fts-jal-single-fb-post .fts-jal-fb-top-wrap,.fts-mashup-hide-thumbnail .fts-jal-fb-user-thumb,.slicker-youtube-placeholder .entriestitle{display:none}.fts-mashup-media-top .fts-jal-fb-link-wrap,.fts-mashup-media-top .fts-jal-fb-vid-wrap{margin-top:0;margin-bottom:10px;text-align:center}.fts-mashup-media-top .fts-jal-fb-link-wrap .fts-jal-fb-picture,.fts-mashup-media-top .fts-jal-fb-vid-wrap{float:none}.fts-mashup-media-top .fts-jal-fb-picture,.fts-mashup-media-top .fts-jal-fb-vid-picture{margin-bottom:0!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left{margin-left:10px;margin-right:5px;margin-top:3px;top:0}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-instagram-icon,.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-pinterest-icon{margin-top:2px;min-height:40px}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-instagram-icon{margin-right:0;margin-top:0}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-youtube-icon a:before{margin-right:8px!important;top:6px}.fts-mashup-media-top .fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{margin-right:20px!important;margin-top:4px!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-facebook-icon{margin-top:8px!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-youtube-icon{margin-top:5px!important}.fts-mashup-media-top .fts-mashup-image-and-video-wrap{margin-bottom:12px}.fts-mashup-media-top.fts-feed-type-facebook .fts-mashup-image-and-video-wrap.popup-gallery-twitter{margin:0}.fts-feed-type-facebook .fts-mashup-icon-wrap-left{margin-top:17px;margin-right:20px}.fts-mashup-icon-wrap-left.fts-mashup-instagram-icon{margin-top:3px}.fts-mashup-icon-wrap-left,.fts-mashup-icon-wrap-right{min-height:35px}.fts-jal-fb-group-display.fts-mashup-media-top .fts-jal-single-fb-post{padding-bottom:6px!important;border:none;margin-bottom:10px;background:#fff;margin-top:0!important;padding-top:0!important}.fts-mashup-media-top .fts-jal-fb-link-wrap a,.fts-mashup-media-top .fts-jal-fb-vid-picture{margin-top:0!important;line-height:0!important}.fts-mashup-media-top.fts-slicker-facebook-posts .fts-jal-single-fb-post{padding:0 0 8px!important}.fts-mashup-media-top .fts-jal-fb-user-thumb{margin-left:10px;margin-bottom:12px}.fts-yt-open{display:block;width:100%;height:100%;position:absolute}.fts-master-youtube-wrap .slicker-instagram-placeholder{position:relative;background-size:cover}.fts-facebook-popup.mfp-ready{z-index:99999999999999}.fts-youtube-popup h3{color:#111;padding:20px 40px 0 20px!important;margin-bottom:2px;font-size:24px;margin-top:0}.fts-youtube-popup h4{color:#222;padding:0 20px 4px!important;font-size:17px}.fts-youtube-description-popup{padding:0 20px 20px;color:#000}.fts-youtube-date{color:#9a9a9a;padding:0 20px 20px!important;font-size:13px}.fts-yt-open:hover{background:rgba(0,0,0,.5);cursor:pointer}.fts-master-youtube-wrap .slicker-youtube-placeholder{min-height:100px}.fts-youtube-popup-gallery,.fts-youtube-scrollable{clear:both;display:block}.fts-yt-open:hover:before{font-family:FontAwesomeSlick;content:"\f04b";display:block;font-size:32px;color:rgba(255,255,255,.54);position:absolute;top:45%;right:45%;left:43%}.fts-youtube-smallerthan-180 .fts-yt-open:hover:before{content:""}.fts-jal-fb-vid-picture a{margin:0}.fts-facebook-popup .mfp-inline-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.fts-more-photos-4-photos a{max-height:150px;display:inline-block;width:auto}.fts-more-photos-2-photos a{max-height:250px}.fts-youtube-scrollable .fts-fb-autoscroll-loader{background:0 0}.fts-yt-large.fts-youtube-thumbs-wrap{float:left}.fts-youtube-scrollable.fts-youtube-thumbs-wrap{float:right;clear:none}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-left{float:left;clear:none}.fts-yt-large.fts-youtube-thumbs-wrap-left{float:right}.fts-yt-large.fts-youtube-thumbs-wrap-option-80-20{width:80%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-80-20{width:20%}.fts-yt-large.fts-youtube-thumbs-wrap-option-60-40{width:60%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-60-40{width:40%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-50-50,.fts-yt-large.fts-youtube-thumbs-wrap-option-50-50{width:50%}.fts-fb-comment .image-overlay-inside{display:none}.fts-youtube-popup .fts-fb-comment img{border-radius:30px}.fts-youtube-popup span.fts-fb-comment-date{color:#a6a6a6;padding-left:2px;font-size:12px!important}.fts-youtube-popup .fts-popup-second-half .mfp-title .fts-fb-comment-user-name a{color:#333!important}.youtube-comments-wrap{background:#fff;text-align:left;color:#2d2d2d!important}.youtube-comments-wrap .fts-share-wrap{margin:15px 0 -64px}.youtube-comments-wrap .fts-youtube-description-popup{display:block;position:relative!important;margin-bottom:-25px;padding-bottom:30px}.youtube-comments-wrap .ft-gallery-share-wrap{left:50px;background:#f6f7f9;top:8px}.fts-facebook-popup .mfp-bottom-bar a.ft-gallery-link-popup,.fts-facebook-popup .mfp-bottom-bar a.fts-jal-fb-see-more{color:#137fc4}.fts-youtube-scrollable .youtube-comments-wrap #___ytsubscribe_0{margin:20px 20px 10px!important}.mfp-title .fts-master-youtube-wrap-close{display:none}.fts-master-youtube-wrap-close{color:#636363;right:3px;top:3px;text-align:right;padding:15px;width:50px;font-size:24px;font-weight:700;position:absolute}.fts-master-youtube-wrap-close:before{content:"X"}.youtube-comments-wrap{overflow:auto;display:none;position:relative}.youtube-comments-wrap h3{padding-top:18px!important}.fts-scrollable-function{height:auto}.fts-youtube-description-popup{font-size:14px!important}.fts-youtube-no-thumbs-gallery{padding:0!important}.fts-youtube-noscroll .youtube-comments-wrap{overflow:visible}.fts-youtube-smallerthan-550-stack{width:100%!important}.fts-jal-fb-user-thumb img{border-radius:50px!important}.fts-twitter-username img.twitter-image{border-radius:50px}.fts-youtube-second-video-margin-btm{margin-bottom:35px}.fts-share-wrap [class*=fa-]{width:auto;height:auto}.fts-popup-half .mfp-arrow-left,.fts-popup-half .mfp-arrow-right{height:auto;width:auto;border:none!important;margin-top:0!important}.fts-popup-half .mfp-arrow-left:after,.fts-popup-half .mfp-arrow-right:after{background:0 0!important;height:auto!important;top:0!important;left:0!important;margin:0!important;padding:0!important;cursor:pointer;transform:none!important;transition:none!important;-webkit-transition:none!important}.fts-popup-half audio,.fts-popup-half video{visibility:visible!important}.fts-album-photos-wrap{text-align:center}.fts-fb-more-photos-wrap,.fts-more-photos-4-photos{position:relative;top:-3px}#wp-admin-bar-feed_them_social_admin_bar_set_cache{padding-bottom:17px!important;line-height:0!important}#wp-admin-bar-feed_them_social_admin_bar_set_cache span{line-height:10px;display:block;color:rgba(221,221,221,.57)}#wp-admin-bar-feed_them_social_admin_bar_set_cache:hover span{line-height:10px;display:block;color:#fff}.fts-mashup-media-top.fts-mashup-hide-thumbnail .fts-jal-fb-user-name{margin-left:0!important}.fts-steemit-username{display:inline-block;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;border-radius:50%;width:48px;height:48px;margin-bottom:5px}.fts-steemit-div .steemit-info img{margin:0!important}.steemit-info .fts-uppercase{margin:14px 0 10px 10px}.fts-steemit-title{font-size:18px;margin-bottom:10px;letter-spacing:1px;font-weight:400;line-height:21px;color:#0084b4}.fts-steemit-div .fts-twitter-retweet:before{content:"\f27a"!important;font-size:15px!important;top:1px}.fts-steemit-div .fts-twitter-favorites:before{content:'Votes:'!important;font-family:arial!important;font-size:14px!important;margin-right:3px!important;top:0;font-weight:700}.fts-steemit-div .fts-twitter-reply:before{font-family:FontAwesomeSlick;content:'\f06e'!important;position:relative;top:2px;font-size:19px}.fts-twitter-quoted-text-wrap{padding:0 0 10px;border:1px solid #efe8e8!important;margin-top:10px;font-size:13px}.fts-twitter-quoted-text-wrap a{font-size:13px!important}.fts-twitter-quoted-text-wrap .twitter-video-rendered{margin:auto!important}.fts-fluid-videoWrapper{margin-top:8px}.fts-twitter-quoted-text-wrap .fts-twitter-link-image img,.fts-twitter-quoted-text-wrap img{margin-top:0!important}.fts-twitter-quoted-text{display:inline-block!important;padding:8px 10px 0;line-height:18px}.fts-twitter-quoted-video .fts-twitter-quoted-text{padding-top:0!important}.fts-twitter-quoted-image{padding:8px}.fts-twitter-quoted-image .fts-twitter-quoted-text{padding:8px 2px 2px!important}.fts-fb-more-photos-wrap a:last-child{margin-right:0!important}.fts-fb-more-photos-wrap a:first-child{margin-left:0!important}.fts-yt-first-video .fts-fluid-videoWrapper{margin-top:0}.fts-twitter-quoted-video .fts-fluid-videoWrapper-html5,.fts-twitter-quoted-video .fts-jal-fb-vid-wrap{margin-top:0;margin-bottom:10px}.fts-fb-location-wrap{text-align:center;padding:15px}.fts-fb-location-img{display:block;margin-bottom:9px;height:20px}.fts-fb-location-img:before{content:"\f024";font-family:FontAwesomeSlick;font-size:28px;display:block}.fts-fb-location-link{margin-bottom:5px;display:block;font-size:16px}.fts-popup-second-half .fts-fb-location-wrap{color:#444}.fts-fb-embed-iframe-check-used-for-popup,.greater-than-or-equal-width-height{display:none!important}.fts-fb-video-on-page.fts-fluid-videoWrapper{padding-bottom:56%;padding-top:0;width:100%!important;height:auto!important}.fts-fb-video-on-page.fts-fluid-videoWrapper iframe{width:100%!important;height:auto!important}.fts-greater-than-width-height.fts-fb-video-on-page{margin-top:18px}.fts-greater-than-width-height.fts-fb-video-on-page iframe{padding-bottom:100%}.fts-equal-width-height{max-width:100%;padding-bottom:100%!important}.fts-comment-star:before{font-family:FontAwesomeSlick;content:"\f075";font-size:14px;margin:0 6px 0 -2px!important;padding:0!important;display:inline-block!important;border:none!important}.fts-mashup-error-notice-strong{display:block;font-size:16px;padding-bottom:5px}.fts-mashup-error-bottom-padding{padding-bottom:20px;display:block}.fts-mashup-error-check .fts-mashup-image-and-video-wrap{display:none}.fts-review-name span{margin-right:5px}.fts-mashup.masonry .fts-fluid-videoWrapper-html5{margin-top:0}.fts-child-media-hide{display:none}.fts-instagram-styles-popup .fts-carousel-image{position:absolute;right:25px;top:32px;text-align:right;font-size:21px;color:#fff;z-index:1}.fts-carousel-image-wrapper{position:relative;right:18px;top:18px;text-align:right;font-size:20px;color:#fff;width:auto;float:right}.fts-carousel-image:before{font-family:FontAwesomeSlick;content:'\f24d'}.fts-instagram-popup-second-half .fts-carousel-image{display:none}.fts-child-media-popup .fts-carousel-image{display:block}.fts-carousel-image-wrapper{position:relative;z-index:2}.slicker-instagram-placeholder a:focus {outline:auto !important;}
1
+ /* If you think we have to many !important rules you have to consider that we are fighting with the themes CSS which in most cases overrides a plugins CSS. So if you see an !important rule and are having trouble overriding it make sure and target the body, html or a wrapper ID before the CSS class you are trying to override. */ .entriestitle.fts-youtube-popup,.fts-yt-first-video{word-break:break-word}.fts-twitter-div a,.tweeter-info:hover a{-webkit-transition:all .3s ease-in-out;text-decoration:none!important}.tweeter-info,.tweeter-info:hover a{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.fts-jal-fb-group-display,.fts-twitter-div{clear:both}@font-face{font-family:FontAwesomeSlick;src:url(../css/font/fontawesome-webfont.eot?v=3.2.1);src:url(../css/font/fontawesome-webfont.eot?#iefix&v=3.2.1) format("embedded-opentype"),url(../css/font/fontawesome-webfont.woff?v=3.2.1) format("woff"),url(../css/font/fontawesome-webfont.ttf?v=3.2.1) format("truetype"),url(../css/font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1) format("svg")}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.fts-twitter-text{padding:4px 0 0;display:block;line-height:19px}.fts-video-show-hide-btns-wrap a:focus,.fts-video-show-hide-btns-wrap a:link,.fts-video-show-hide-btns-wrap a:visited{outline:0!important;border:none!important}.fts-view-on-twitter-link:before{font-family:FontAwesomeSlick;content:"\f14c ";display:inline-block;margin-right:6px}.fts-video-show-hide-btns-wrap a:before{font-family:FontAwesomeSlick;content:'\f16a';display:inline-block;margin-right:5px}img.fts-twitter-description-image{margin:10px 0 0!important}.fts-twitter-favorites:before,.fts-twitter-retweet:before{margin-right:5px;font-family:FontAwesomeSlick;position:relative}.fts-twitter-retweet:before{content:'\f079'!important;font-size:17px!important;top:1px}.fts-twitter-favorites:before{content:'\f004 '!important;font-size:13px!important;top:0}.fts-twitter-reply:before{font-family:FontAwesomeSlick;content:'\f112'!important;position:relative;top:2px;font-size:14px}.fts-twitter-caption,blockquote.twitter-video{display:none}.fts-twitter-div *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fts-fb-slideshow,.fts-fb-slideshow *,.fts-slicker-facebook-photos *,.fts-yt-videolist *,.popup-video-gallery-fb .fts-fb-photo-post-wrap{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.fts-twitter-div{position:relative;padding:0}.tweeter-info:hover a{transition:all .3s ease-in-out}.widget .fts-twitter-div .fts-uppercase{width:auto}.fts-twitter-div p{margin:0 0 5px!important;line-height:20px!important;padding:0}.widget .fts-twitter-div p{margin:0 0 8px!important;padding:0!important;line-height:19px!important;font-size:12px!important}.fts-twitter-div img{margin:0 10px}.fts-twitter-div .fts-uppercase{margin:0 5px 0 0;font-size:13px;font-weight:700;text-align:left;display:inline-block}.widget .twitter-image{margin-right:10px!important}.widget .fts-twitter-div .fts-uppercase,.widget .tweeter-info .fts-right,.widget .tweeter-info .fts-twitter-full-width{text-align:left;font-size:11px;line-height:14px;font-weight:400!important}.fts-right .fts-uppercase,.fts-twitter-full-width .fts-uppercase{display:inline-block}.tweeter-info .fts-right{float:none!important;padding:0 7px 0 71px;line-height:15px!important}.tweeter-info .fts-twitter-full-width{padding:10px 10px 0}.fts-twitter-fade{display:none;width:321px;height:80px;position:absolute;top:137px;left:1px}.fts-twitter-image,.widget .fts-twitter-image{margin:0;float:left}.tweeter-info{padding:11px;background:#eee;box-shadow:0 1px 2px #555;clear:both;min-height:51px;line-height:13px;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-twitter-div a,.tweeter-info:hover{-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out}.widget .tweeter-info{min-height:42px}.tweeter-info:hover{background:#fff;box-shadow:0 1px 2px #222;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.tweeter-info img{border-radius:0;box-shadow:none!important}.fts-twitter-link{position:absolute;top:217px;left:0;font-size:22px;text-transform:uppercase;width:291px;height:36px;padding:15px 0 0 38px;border-top:1px solid #c1c2c3;color:#000}.fts-video-loading-notice{color:#000}a.fts-powered-by-text{padding-top:8px!important;width:100%;text-align:center!important;display:block}.fts-twitter-div a{transition:all .3s ease-in-out;color:#0084b4}.fts-twitter-div a:hover{color:#444;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;text-decoration:none!important}.tweeter-info .time{font-size:12px}.fts-tweeter-wrap .tweeter-info{padding:14px 0 8px;background:0 0;box-shadow:0 0 0 #555;border-bottom:1px solid #eee;word-wrap:break-word;clear:both;font-size:14px;line-height:13px;-webkit-transition:background 0;-webkit-transition:all 0s ease-in-out;-moz-transition:all 0s ease-in-out;-o-transition:all 0s ease-in-out;transition:all 0s ease-in-out}.fts-tweeter-wrap .fts-video-wrapper{margin:15px 0 0}.fts-video-wrapper-padding{display:none}.fts-tweeter-wrap .tweeter-info:hover{background:0 0!important;box-shadow:0 0 0 #222!important}.fts-tweeter-wrap .tweeter-info img{max-width:100%;box-shadow:none!important;border-radius:0}.fts-twitter-favorites,.fts-twitter-reply,.fts-twitter-retweet{font-size:13px!important}.fts-twitter-reply-wrap a{display:inline-block!important;opacity:1;padding-right:0;-webkit-transition:background 1s;-webkit-transition:all 1s ease-in-out;-moz-transition:all 1s ease-in-out;-o-transition:all 1s ease-in-out;transition:all 1s ease-in-out}.fts-twitter-reply-wrap{font-size:16px;margin-right:0;margin-top:10px;font-style:normal!important}.fts-tweeter-wrap:hover a{opacity:1}@media (max-width:767px){.fts-tweeter-wrap a{opacity:1!important}}.fts-video-show-hide-btns-wrap{margin:7px 0 0!important}.fts-video-show-hide-btns-wrap a{font-size:13px!important}.fts-twitter-load-video-wrapper,a.fts-twitter-load-video-wrapper{margin:0!important;padding:0!important}.fts-show-media-text,a.fts-close-media{display:none}.fts-twitter-div iframe,.fts-video-wrapper iframe{margin:0!important}.twitter-social-btn-bottom{margin:15px 0}.fts-jal-fb-see-more .icon-thumbs-up:before{content:"\f164"!important;font-size:14px}.fts-jal-fb-see-more .icon-comments:before{content:"\f086"!important;top:0;position:relative;font-size:14px}.fts-jal-fb-see-more .icon-file:before{content:"\f064"!important;top:2px!important;position:relative;font-size:14px}.fts-events-list-wrap .icon-map-marker [class^=icon-thumbs-up],.fts-jal-fb-see-more [class*=" icon--file"],.fts-jal-fb-see-more [class*=" icon--thumbs-up"],.fts-jal-fb-see-more [class^=icon-comments],.fts-jal-fb-see-more [class^=icon-file],.fts-jal-fb-see-more [class^=icon-thumbs-up]{display:inline-block!important;font-style:normal!important}.fts-events-list-wrap [class^=icon-]:before,.fts-jal-fb-see-more [class^=icon-]:before,.fts-jal-single-fb-post [class^=icon-]:before{font-family:FontAwesomeSlick!important;-webkit-font-smoothing:antialiased;margin:0 0 0 7px!important}.fts-jal-fb-see-more [class^=icon-]:before [class^=icon-],.fts-jal-single-fb-post{float:none!important;margin:0!important;display:block;padding:0!important;text-align:right!important;width:auto!important;height:auto!important;line-height:normal!important;vertical-align:baseline!important;background:0 0!important;font-style:normal!important}.fts-jal-fb-group-display img{border-radius:0!important;box-shadow:0 0 0 transparent!important;display:block;max-width:100%}.fts-jal-fb-group-header-desc{width:100%;margin:7px 0 15px!important;line-height:20px}.fts-jal-fb-header{clear:both}.no-more-posts-fts-fb{cursor:auto}.fts-jal-single-fb-post .slicker-facebook-album-photoshadow{display:none}.fts-jal-fb-header a:hover,.fts-jal-single-fb-post a:hover{font-style:normal;text-decoration:none!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;color:#313131}.fts-jal-fb-user-thumb a{display:block}.fts-fb-get-directions{text-align:left!important;margin:0}.fts-jal-fb-header a,.fts-jal-single-fb-post a{-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;text-decoration:none!important;word-break:break-word;border:none!important}.fts-jal-fb-header h1{font-size:1.9em;margin:0!important;line-height:normal!important;padding:0!important}.widget .fts-jal-fb-header h1{font-size:1.8em;line-height:22px}.fts-jal-single-fb-post{width:100%;padding:15px 0 7px!important;margin-bottom:0;border-bottom:1px solid rgba(184,184,184,.3);position:relative;line-height:17px;text-align:left}.fts-slicker-facebook-posts .fts-jal-single-fb-post{width:auto;padding:10px 10px 8px!important;border-bottom:1px solid rgba(184,184,184,.3);line-height:17px}.widget .fts-jal-single-fb-post{width:100%;padding:17px 0 10px!important}.fts-facebook-popup .fts-jal-fb-user-thumb{width:50px;height:50px;float:left;margin:0 0 0 20px!important}.fts-jal-fb-user-thumb,.fts-mashup-icon{height:50px;margin-right:11px;float:left}.fts-jal-fb-user-thumb{width:50px;margin-bottom:5px}.fts-mashup-icon{width:20px;margin-bottom:5px}.widget .fts-jal-fb-right-wrap{padding-left:0}.widget .fts-jal-fb-top-wrap{padding-bottom:5px;padding-left:0;margin-bottom:5px;min-height:50px}.fts-jal-fb-message{padding-top:10px;line-height:21px;word-wrap:break-word}.fts-jal-fb-link-wrap p,.fts-jal-fb-message p{padding:0!important;margin:0 0 10px!important}.fts-jal-fb-link-wrap p{line-height:19px!important}.fts-jal-fb-link-wrap{margin-top:0;border-radius:0;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.jal-fb-description{word-wrap:break-word!important}.fts-jal-fb-picture{float:left;display:block;margin:10px 10px 4px 0}.fts-jal-fb-link-wrap img{margin:0}.fts-jal-fb-vid-picture{position:relative;float:left;height:auto!important;margin:10px 0 0;line-height:normal!important;cursor:pointer}.fts-jal-fb-description-wrap{float:left;padding:15px 12px 0 17px!important;color:#757575;font-size:13px!important;font-weight:400;text-align:left}.popup-gallery-fb .fts-jal-fb-description-wrap,.popup-video-gallery-fb .fts-jal-fb-description-wrap{padding:15px 0 0!important}.fts-jal-single-fb-post .fts-jal-fb-vid-wrap .fts-jal-fb-description-wrap{padding:15px 15px 0!important}.widget .fts-jal-fb-description-wrap{float:left;overflow:hidden;max-width:90%;line-height:19px!important;color:#999;font-size:12px!important;font-weight:400}.entry-content .fts-jal-fb-picture img,.fts-yt-videolist li img,.widget .fts-jal-fb-picture img,.widget a.fts-pin-board-wrap img,a.fts-pin-board-wrap img{max-width:100%}.fts-jal-fb-description{padding:5px 0 10px;line-height:17px!important;font-size:13px;color:#919191;word-wrap:break-word}.fts-jal-fb-description p{font-size:13px!important}.fts-jal-fb-top-wrap{margin-bottom:10px;text-align:left}.fts-jal-fb-user-name{font-weight:700;color:#888;display:block;padding-top:6px;padding-right:5px;font-size:16px;line-height:18px}.fts-slicker-facebook-albums .fts-jal-fb-user-name a{color:#fff}.fts-jal-fb-post-time{color:#999;padding-top:4px;font-size:12px;line-height:10px;display:block}.fts-jal-fb-name{font-weight:700;color:#c00;padding-bottom:5px;font-size:15px;display:inline-block;line-height:18px}.fts-events-list-wrap .fts-jal-fb-name{font-weight:400;color:#c52214;padding-bottom:5px;font-size:15px;display:block;line-height:21px}.fts-jal-fb-vid-play-btn{background:url(../images/video-play-btn.png) no-repeat;bottom:7px;height:26px;left:9px;position:absolute;width:35px}.fts-jal-fb-picture img,.fts-vid-div{width:100%}.fts-vid-div .fts-jal-fb-vid-play-btn,.fts-vid-div img{display:none}.fts-vid-div iframe{position:absolute;z-index:500}.fts-jal-fb-see-more .icon-file{font-size:10px}.fts-jal-fb-see-more{float:right;margin:10px 0 0;font-size:12px;width:100%;text-align:right;font-style:normal!important}.fts-fb-event-photo{float:left}.fts-fb-large-photo{margin-right:0!important;font-weight:inherit}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .fts-likes-shares-etc-wrap,.fts-slicker-facebook-photos .slicker-facebook-album-photoshadow:hover .fts-jal-fb-see-more{display:block}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .fts-jal-fb-top-wrap,.fts-slicker-facebook-photos .fts-fb-video-post-wrap .slicker-facebook-album-photoshadow:hover .fts-jal-fb-top-wrap{opacity:1}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap,.fts-slicker-facebook-photos .fts-jal-fb-description,.fts-slicker-facebook-photos .fts-jal-fb-see-more:hover,.fts-slicker-facebook-photos .fts-jal-fb-user-name a:hover{color:#fff}.fts-slicker-facebook-photos .fts-jal-fb-description-wrap{font-weight:inherit!important}.fts-slicker-facebook-photos *{-ms-box-sizing:border-box;box-sizing:border-box}.instagram-placeholder *,.slicker-instagram-placeholder *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fts-jal-fb-vid-wrap .slicker-facebook-album-photoshadow{position:absolute;top:0;right:0;height:auto;z-index:600;cursor:pointer;width:auto;opacity:1!important;background-color:rgba(0,0,0,.6)!important;display:none}.fts-jal-fb-vid-wrap .slicker-facebook-album-photoshadow:before{content:'info';color:#fff;padding:5px 10px 7px;text-align:right;float:right;font-size:12px;display:none}.fts-fb-load-more,.fts-fb-spinner,.fts-instagram{text-align:center}.slicker-facebook-album-photoshadow{position:absolute;top:0;right:0;height:100%;width:100%;z-index:100}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap .slicker-facebook-album-photoshadow:hover{background-color:rgba(0,0,0,.9);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;z-index:100;opacity:.8;top:0;right:0;height:100%;width:100%}.fts-slicker-facebook-photos .fts-fb-photo-post-wrap:hover .slicker-facebook-album-photoshadow{background-color:rgba(0,0,0,.9);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;z-index:100;opacity:.8;top:0;display:block;right:0;height:100%;width:100%}.fts-slicker-facebook-photos .fts-jal-fb-right-wrap{padding:0!important}.fts-slicker-facebook-photos .fts-jal-fb-user-thumb{display:none}.fts-slicker-facebook-photos .fts-jal-fb-top-wrap{color:#fff!important;padding:12px 15px 0!important;z-index:600;position:absolute;width:100%;opacity:0;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.fts-slicker-facebook-photos .fts-jal-fb-message{padding:15px 0 0;color:#fff!important;position:relative;font-size:14px;z-index:100}.fts-slicker-facebook-photos .fts-jal-fb-post-time{color:#ddd;margin-top:0}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap a:hover,.fts-slicker-facebook-albums .jal-fb-description a:hover,.fts-slicker-facebook-photos .jal-fb-description a:hover{color:#ccc}.fts-slicker-facebook-photos .fts-jal-fb-link-wrap,.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap{line-height:12px!important}.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap iframe{height:305px;width:305px}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap{word-wrap:break-word;width:100%}.fts-slicker-facebook-albums .fts-jal-fb-description-wrap a{float:left;width:100%;line-height:19px;padding:0!important}.fts-slicker-facebook-albums .jal-fb-description a,.fts-slicker-facebook-photos .jal-fb-description a{float:none!important}.fts-slicker-facebook-photos .fts-jal-single-fb-post{position:relative;float:none;z-index:0;overflow:hidden;border:none!important;padding:0!important;font-family:proxima-nova,'Helvetica Neue',Arial,Helvetica,sans-serif!important;background:#000;vertical-align:top!important;display:inline-block!important}.fts-fb-get-directions:before,.slicker-instagram-image-likes:before,.slicker-instagram-placeholder .fts-instagram-icon:before{font-family:FontAwesomeSlick;-webkit-font-smoothing:antialiased}.fts-slicker-facebook-photos .fts-jal-fb-link-wrap,.fts-slicker-facebook-photos .fts-jal-fb-vid-wrap{border:none!important;margin:0!important;width:100%;height:100%}.fts-album-photos-wrap img{vertical-align:middle!important;display:inline-block!important}.fts-slicker-facebook-photos.fts-slicker-facebook-albums .fts-jal-single-fb-post{height:auto}.fts-slicker-facebook-photos{margin:auto;text-align:center}.fts-slicker-facebook-photos .fts-jal-fb-picture{display:block;margin:0;padding:0;float:none;width:auto;left:0;right:0;top:0;position:absolute;background-size:cover;background-position:center center;background-repeat:no-repeat}div.fts-fb-location{letter-spacing:1px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:21),only screen and (min-device-pixel-ratio:2){.fts-jal-fb-vid-wrap iframe{height:130px}}.fts-fb-spinner>div{width:10px;height:10px;background-color:#999;border-radius:100%;display:inline-block;-webkit-animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;animation:fts-fb-bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.fb-social-btn-below-description,.fb-social-btn-bottom,.fb-social-btn-top{width:100%;overflow:hidden}.fts-fb-spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.fts-fb-spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes fts-fb-bouncedelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes fts-fb-bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.fts-fluid-videoWrapper-html5 video{object-fit:inherit;margin-bottom:0!important}.fts-fb-album-view-link a{color:#fff}.fts-fb-album-view-link a:hover{color:#eee}.fts-instagram-fade .fts-fb-caption{display:block}.fts-view-album-photos-large:before,.fts-view-fb-videos-large:before,.fts-view-on-facebook-link:before,.view-on-facebook-albums-link:before{font-family:FontAwesomeSlick;content:"\f14c ";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased}.fts-fb-get-directions:before{content:"\f041 ";display:inline-block;margin:0 5px 0 2px}.instagram-placeholder,.slicker-instagram-placeholder{font-family:proxima-nova,'Helvetica Neue',Arial,Helvetica,sans-serif!important}.fts-instagram-fade .fts-instagram-caption-content,.fts-instagram-fade .fts-jal-fb-description{color:#fff;padding:0;margin:0}.fts-instagram-fade .fts-fb-album-view-link{display:none}#facebook-sidebar .fts-fb-load-more-wrapper{max-width:100%!important;margin-top:-1px!important;z-index:9999;position:relative}.fb-social-btn-bottom{margin-top:15px!important}.fb-social-btn-top{display:block;margin-bottom:12px!important}.fb-social-btn-below-description{margin-top:5px!important;margin-bottom:5px!important}@media only screen and (max-width:640px){.fb-like.fb_iframe_widget,.fb-like.fb_iframe_widget>span,.fb-like.fb_iframe_widget>span>iframe{width:100%!important;position:relative!important}}.fts-events-list-wrap .fts-jal-fb-picture{float:left;display:block;margin:0}.fts-events-list-wrap a.fts-jal-fb-name{font-size:17px}.fts-events-list-wrap .fts-fb-event-time{font-size:15px}.fts-events-list-wrap .fts-fb-location{font-size:15px;display:block;margin:10px 0 5px}.fts-events-list-wrap .fts-fb-location-title{font-size:15px;display:block;padding:0;font-weight:700;font-style:normal;margin:12px 0 0}.fts-events-list-wrap .fts-jal-fb-message{clear:both;font-size:15px}.fts-fb-get-directions{font-size:15px;padding:0 0 20px;color:#4595f0}.fts-fb-load-more{border-radius:1px;padding:0;line-height:37px!important;width:100%;min-height:37px!important;font-size:13px!important;background:rgba(240,240,240,.45);cursor:pointer;color:#111;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-fb-load-more:hover{background:rgba(240,240,240,.85)}.instagram-image,.widget .instagram-image{background-color:#000;z-index:1;display:block}.flip360-fts-load-more{-moz-animation:spinY .5s linear;-ms-animation:spinY .5s linear;-o-animation:spinY .5s linear;animation:spinY .5s linear;-webkit-animation-name:spinY;-webkit-animation-duration:.5s;-webkit-animation-timing-function:linear;-webkit-animation-fill-mode:both;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-moz-animation-fill-mode:both;-ms-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both;-moz-animation-timing-function:cubic-bezier(.75,0,.175,1);-ms-animation-timing-function:cubic-bezier(.75,0,.175,1);-o-animation-timing-function:cubic-bezier(.75,0,.175,1);animation-timing-function:cubic-bezier(.75,0,.175,1)}@-moz-keyframes spinY{0%{-moz-transform:rotateY(0);transform:rotateY(0)}100%{-moz-transform:rotateY(360deg);transform:rotateY(360deg)}}@-webkit-keyframes spinY{0%{-webkit-transform:rotateY(0);transform:rotateY(0);-webkit-transform-style:preserve-3d}100%{-webkit-transform:rotateY(360deg);transform:rotateY(360deg);-webkit-transform-style:preserve-3d}}@-o-keyframes spinY{0%{-o-transform:rotateY(0);transform:rotateY(0)}100%{-o-transform:rotateY(360deg);transform:rotateY(360deg)}}@-ms-keyframes spinY{0%{-ms-transform:rotateY(0);transform:rotateY(0)}100%{-ms-transform:rotateY(360deg);transform:rotateY(360deg)}}@keyframes spinY{0%{-webkit-transform:rotateY(0);-moz-transform:rotateY(0);-ms-transform:rotateY(0);-o-transform:rotateY(0);transform:rotateY(0)}100%{-webkit-transform:rotateY(360deg);-moz-transform:rotateY(360deg);-ms-transform:rotateY(360deg);-o-transform:rotateY(360deg);transform:rotateY(360deg)}}.clear{clear:both}.heart-comments-wrap li,ul.heart-comments-wrap{padding:0!important;margin:0!important;line-height:1.3em!important;border:none!important}.widget .instagram-placeholder li,.widget .instagram-placeholder ul{padding:0!important;margin:0!important;height:auto!important}.instagram-placeholder p{margin:0;padding:0}.instagram-placeholder{position:relative;z-index:0;display:inline-block;margin:0 20px 20px}.widget .instagram-placeholder{margin:-10px 9px 0 10px!important;width:104px!important;text-align:left!important}.instagram-image{width:150px;height:150px;position:relative}.widget .instagram-image{width:105px;height:100px;position:relative;background-size:100%!important}.instaG-photoshadow{background-color:rgba(0,0,0,.1);bottom:0;left:0;position:absolute;right:0;top:0;border:1px solid rgba(0,0,0,.12);z-index:1;-webkit-transition:background-color .05s ease-out;-moz-transition:background-color .05s ease-out;-o-transition:background-color .05s ease-out;transition:background-color .05s ease-out;width:148px;height:148px}.widget .instaG-photoshadow{width:103px;height:98px}.instagram-placeholder:hover .instaG-photoshadow{background-color:transparent;-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;border:1px solid rgba(0,0,0,.12);width:148px;height:148px}.heart-comments-wrap li,.instagram-placeholder .date{color:#888;position:relative;z-index:1;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s;text-shadow:0 1px 0 rgba(255,255,255,.8);opacity:0;pointer-events:none}.widget .instagram-placeholder:hover .instaG-photoshadow{width:103px;height:98px}a.instaG-backg-link{position:relative;display:block}.instagram-placeholder .date{text-align:center;margin-bottom:5px;font-size:12px;height:20px;line-height:20px;font-weight:700;transition:all .15s ease-out .1s}.widget .instagram-placeholder .date{text-align:center;margin-bottom:5px;font-size:11px;height:15px;line-height:20px;font-weight:400!important}.instagram-placeholder .heart-comments-wrap ul{height:20px;margin:10px 0 0!important}.widgets .instagram-placeholder .heart-comments-wrap ul{height:15px;margin:6px 0 0!important}.heart-comments-wrap li{display:inline-block;margin:10px 0 0 .5em!important;padding:0 0 0 16px!important;line-height:10px!important;font-size:12px!important;font-weight:400!important;transition:all .15s ease-out .1s}.instagram-placeholder .fts-backg,.slicker-instagram-placeholder .slicker-date{-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.widget .instagram-placeholder .heart-comments-wrap li{display:inline-block;margin:6px 0 5px 2px!important;pointer-events:none;padding:0 0 0 15px!important;line-height:10px!important;font-size:11px!important;border:none!important}.widget .instagram-placeholder .heart-comments-wrap .instagram-image-likes{margin-right:4px!important}.instagram-placeholder .fts-backg,.widget .instagram-placeholder .fts-backg{z-index:0;left:0;width:100%;margin:-5px;padding:5px;background:#fff;position:absolute}.instagram-placeholder .fts-backg{top:25px;height:150px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);-moz-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);transition:all .15s ease-out .1s}.widget .instagram-placeholder .fts-backg{top:20px;height:100px;font-size:11px}.widget .date{font-size:11px}.instagram-placeholder:hover .fts-backg{margin:-28px -12px;padding:8px 12px;height:193px;-webkit-transition-delay:0;-moz-transition-delay:0;-o-transition-delay:0;transition-delay:0;-webkit-transition-duration:.1s;-moz-transition-duration:.1s;-o-transition-duration:.1s;transition-duration:.1s;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2);-moz-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.2)}.widget .instagram-placeholder:hover .fts-backg{margin:-22px -10px;padding:5px 10px;height:135px}.instagram-image-likes{background:url(../images/hearts-instagram.jpg) no-repeat}.instagram-image-comments{background:url(../images/comments-instagram.jpg) no-repeat}.instagram-placeholder:hover .date,.instagram-placeholder:hover .instagram-image-comments,.instagram-placeholder:hover .instagram-image-likes{opacity:1;z-index:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;-o-transition-delay:.1s;transition-delay:.1s}.slicker-instagram-placeholder li,.slicker-instagram-placeholder ul{padding:0!important;margin:0!important;line-height:1.3em!important;border:none!important;width:auto!important;overflow:visible!important}.slicker-heart-comments-wrap{position:absolute;z-index:500;bottom:10px;right:12px}.slicker-instagram-placeholder p{margin:0;padding:0}.slicker-instagram-placeholder,.slicker-youtube-placeholder{position:relative;z-index:0;display:inline-block;overflow:hidden;background-size:cover;background-position:center center;background-repeat:no-repeat;vertical-align:top}.slicker-instagram-image{line-height:0!important;position:relative;z-index:1;background-color:#000;display:block}.slicker-instagram-image img{line-height:normal!important;-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important;-webkit-box-shadow:0 0 0 rgba(0,0,0,.175)!important;-moz-box-shadow:0 0 0 rgba(0,0,0,.175)!important;box-shadow:0 0 0 rgba(0,0,0,.175)!important;margin:0!important;padding:0!important;border:none!important;width:100%}.slicker-instaG-photoshadow{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1;-webkit-transition:background-color .05s ease-out;-moz-transition:background-color .05s ease-out;-o-transition:background-color .05s ease-out;transition:background-color .05s ease-out;vertical-align:middle}.slicker-instagram-placeholder:hover .slicker-instaG-photoshadow{background-color:rgba(0,0,0,.7);-webkit-transition:background-color .01s ease-out;-moz-transition:background-color .01s ease-out;-o-transition:background-color .01s ease-out;transition:background-color .01s ease-out;border:1px solid rgba(0,0,0,.12)}a.slicker-instaG-backg-link{position:relative;display:block}.slicker-instagram-placeholder .fts-share-wrap,.slicker-instagram-placeholder .slicker-date{margin-bottom:5px;font-size:13px;line-height:20px;font-weight:400;position:absolute;transition:all .15s ease-out .1s;height:20px;color:#fff;opacity:0;text-align:center}.slicker-instagram-placeholder .fts-share-wrap{bottom:-10px;left:4px;z-index:50000000}.slicker-instagram-placeholder .slicker-date{top:10px;left:15px;z-index:500;pointer-events:none}.slicker-instagram-placeholder .slicker-heart-comments-wrap ul{height:20px;margin:10px 0 0!important}.fts-mashup-count-wrap .slicker-heart-comments-wrap li,.slicker-instagram-placeholder .slicker-heart-comments-wrap li{display:inline-block;margin:0!important;pointer-events:none;padding:0 0 0 10px!important;line-height:10px!important;font-size:12px!important;font-weight:400!important;color:#fff;text-align:center;position:relative;z-index:1;opacity:0;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}body .fts-mashup-count-wrap li{opacity:1!important}.fts-mashup .fts-jal-fb-see-more,.fts-mashup .fts-single-pin-like-count,.fts-mashup .fts-single-pin-repin-count,.fts-mashup a.ft-gallery-link-popup,body .fts-mashup-count-wrap a,body .fts-mashup-count-wrap li{color:#777!important}a.fts-slicker-backg{height:68px;width:68px;line-height:68px;font-size:68px;top:0;bottom:0;left:0;right:0;margin:auto;z-index:700;position:absolute;text-align:center;vertical-align:middle;opacity:0;color:rgba(255,255,255,.27)}.slicker-instagram-placeholder .fts-instagram-icon:before{content:"\f16d";font-size:100%;display:inline-block;-webkit-transition:all 1s ease-out 0;-moz-transition:all 1s ease-out 0;-o-transition:all 1s ease-out 0}.slicker-instagram-placeholder a.fts-slicker-backg:hover{opacity:1;color:rgba(255,255,255,.55);-webkit-transition:all 0 ease-out 0;-moz-transition:all 0 ease-out 0;-o-transition:all 0 ease-out 0}.slicker-instagram-image-likes:before{content:"\f004";margin-right:5px}.fts-slicker-instagram{margin:auto;text-align:center}.instagram-placeholder:hover .fts-see-on-instagram,.slicker-instagram-placeholder:hover .fts-see-on-instagram,.slicker-instagram-placeholder:hover .fts-share-wrap,.slicker-instagram-placeholder:hover .fts-slicker-backg,.slicker-instagram-placeholder:hover .slicker-date,.slicker-instagram-placeholder:hover .slicker-instagram-image-comments,.slicker-instagram-placeholder:hover .slicker-instagram-image-likes{opacity:1;-webkit-transition-delay:.1s;-moz-transition-delay:.1s;-o-transition-delay:.1s;transition-delay:.1s}.fts-comment-instagram:before{font-family:FontAwesomeSlick!important;content:"\f075"!important;-webkit-font-smoothing:antialiased;margin-right:5px;font-size:13px!important;display:inline-block;-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1);filter:FlipH;-ms-filter:FlipH;position:relative;top:-1px;right:-4px}.fts-see-on-instagram div:before,.fts-view-on-instagram-link:before{content:"\f138 ";font-family:FontAwesomeSlick}.fts-see-on-instagram{position:absolute;bottom:11px;right:12px;opacity:0;z-index:750;-webkit-transition:all .15s ease-out .1s;-moz-transition:all .15s ease-out .1s;-o-transition:all .15s ease-out .1s}.widget .instagram-placeholder .fts-see-on-instagram{position:absolute;top:19px;right:6px;z-index:750;display:none}.instagram-placeholder .fts-see-on-instagram{position:absolute;bottom:2px;right:6px;opacity:0;z-index:750}.fts-see-on-instagram div{display:inline-block;cursor:pointer;font-weight:400!important}.instagram-placeholder .fts-see-on-instagram div{display:block;cursor:pointer;font-weight:400!important}.widget .instagram-placeholder .fts-see-on-instagram div:before{color:#fff;font-size:14px}.instagram-placeholder .fts-see-on-instagram div:before{color:#888;font-size:13px}.slicker-instagram-placeholder .fts-see-on-instagram div:before{color:#fff;font-size:14px}.fts-see-on-instagram div:before{display:inline-block}.fts-view-on-instagram-link:before{display:inline-block;margin-right:6px}.fts-instagram-caption{display:none}.fts-instagram-fade .mfp-title p{color:#fff!important;margin:0 0 10px!important;padding:0!important}.fts-instagram-fade .mfp-title a{color:#fff;text-decoration:none!important}.fts-instagram-fade .mfp-title a:hover{color:#eee}.instagram-social-btn-bottom,.instagram-social-btn-top{text-align:center;font-size:14px!important;background:#517fa4;border-radius:4px;width:167px;color:#fff;line-height:15px;padding:7px 0!important}.instagram-social-btn-top{margin:0 auto 15px}.instagram-social-btn-bottom{margin:15px auto 0}.instagram-social-btn-bottom:hover,.instagram-social-btn-top:hover{opacity:.9}#fts-social-bar-icons-wrap .instagram-social-btn-bottom a,#fts-social-bar-icons-wrap .instagram-social-btn-top a{color:#fff!important;font-weight:100!important;display:inline-block;text-decoration:none!important}#fts-social-bar-icons-wrap .instagram-social-btn-top a:hover{color:#fff!important}.instagram-social-btn-bottom a,.instagram-social-btn-top a{color:#fff!important;font-weight:100!important;display:inline-block;text-decoration:none!important}.instagram-social-btn-bottom a:hover,.instagram-social-btn-top a:hover{color:#fff;font-weight:100!important}.instagram-social-btn-bottom:before,.instagram-social-btn-top:before{font-family:FontAwesomeSlick;content:"\f16d ";display:inline-block;margin-right:6px;font-size:16px!important;-webkit-font-smoothing:antialiased}.fts-pinterest-boards-wrap *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fts-fb-slideshow,.fts-fb-slideshow *,.fts-yt-videolist *{box-sizing:border-box}.fts-pinterest-wrapper{text-align:center;margin:auto;position:relative}a.fts-pin-board-wrap:link{text-decoration:none!important;border-bottom:0}a.fts-pin-board-wrap{border-radius:10px!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;-moz-box-shadow:0 1px 3px 0 rgba(0,0,0,.33);display:inline-block;text-decoration:none;padding:10px 9px 10px 10px;margin:8px 8px 0;text-align:left}a.fts-pin-board-wrap:hover{background:#fff;border-radius:10px}.fts-pin-board-wrap .label,.fts-single-pin-description a,.fts-single-pin-pinned-to-wrap{text-decoration:none!important}h3.fts-pin-board-board_title,h3.fts-pin-board-board_title span{-webkit-font-smoothing:antialiased!important;display:block!important}.fts-pin-board-wrap:hover .hoverMask,.pinterest-single-thumb-wrap:hover .hoverMask{background:rgba(255,255,255,.1)}h3.fts-pin-board-board_title{width:210px;color:#555!important;font-size:16px!important;font-weight:700!important;margin:7px 0 5px 7px!important;padding:0!important;position:relative!important;font-family:"Helvetica Neue",arial,sans-serif!important;line-height:15px!important;clear:both}div.fts-pin-board-img-wrap,div.pinterest-single-thumb-wrap{background-size:cover;background-position:center center;background-repeat:no-repeat;position:relative;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px}h3.fts-pin-board-board_title span{white-space:nowrap!important;overflow:hidden!important;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;text-transform:capitalize}a.fts-pin-board-wrap{-webkit-border-radius:0;overflow:hidden}div.fts-pin-board-img-wrap{vertical-align:top;border-radius:10px 10px 0 0!important;overflow:hidden;clear:both;height:115px;-moz-box-shadow:0 0 3px rgba(0,0,0,.33) inset}.fts-pin-board-thumbs-wrap div:last-child{margin-right:0;border-bottom-right-radius:10px!important;border-bottom-left-radius:0!important}.fts-pin-board-wrap{max-width:254px;width:100%}.fts-pin-board-thumbs-wrap{min-height:50px}div.pinterest-single-thumb-wrap{margin-right:2px;margin-top:2px;height:108px!important;border-bottom-left-radius:10px!important;width:49.58%;display:inline-block}.fts-pin-board-img-wrap .hoverMask,.pinterest-single-thumb-wrap .hoverMask{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px rgba(0,0,0,.33) inset;-moz-box-shadow:0 0 3px rgba(0,0,0,.33) inset;box-shadow:0 0 3px rgba(0,0,0,.33) inset;bottom:0;left:0;position:absolute;right:0;top:0}.fts-pin-board-wrap .fts-pin-board-pin-count{-webkit-font-smoothing:antialiased;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;-webkit-box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);-moz-box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);box-shadow:inset 0 0 5px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.3);text-shadow:0 -1px 0 rgba(0,0,0,.7);background-color:#000;background-color:rgba(68,68,68,.7);bottom:3px;color:#fff;padding:0 6px;position:absolute;left:3px;font-family:"Helvetica Neue",arial,sans-serif!important;font-size:12px!important;font-weight:700;line-height:21px}.fts-pin-board-pin-count:before{content:'';width:7px;height:9px;background:url(../images/pinterest-icons.png) -137px -87px no-repeat;display:inline-block;margin-right:3px}.fts-pin-board-wrap .label{font-weight:700;text-align:left!important;line-height:1.1em!important;white-space:nowrap;display:inline-block;position:relative;margin-bottom:inherit;padding:0!important;font-size:.7875rem;background:0 0!important;color:#fff}.widget .fts-pin-board-thumbs-wrap,.widget h3.fts-pin-board-board_title{display:none!important}.widget div.fts-pin-board-img-wrap{position:relative;overflow:hidden;clear:both;min-height:100px;height:auto;width:auto;border-radius:10px!important}.widget a.fts-pin-board-wrap{width:40%;padding:6px;margin:4px 4px 0!important;border-radius:1px!important}.widget div.fts-pin-board-img-wrap{-webkit-box-shadow:0 0 1px rgba(0,0,0,.11) inset!important;-moz-box-shadow:0 0 1px rgba(0,0,0,.11) inset;box-shadow:0 0 0 transparent inset!important;margin-bottom:0}.pinterest-single-thumb-wrap .hoverMask,.widget .fts-pin-board-img-wrap .hoverMask{-webkit-box-shadow:0 0 0 rgba(0,0,0,.33) inset;-moz-box-shadow:0 0 0 rgba(0,0,0,.33) inset;box-shadow:0 0 0 rgba(0,0,0,.33) inset}.fts-single-pin-wrap{background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.22);box-shadow:0 1px 2px 0 rgba(0,0,0,.22);border-radius:6px;width:236px!important;margin:14px 7px 0;border:none!important;text-align:left;overflow:hidden}.fts-single-pin-description{margin:10px 15px;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;font-size:13px;line-height:17px;word-wrap:break-word}.fts-single-pin-img-wrap img{-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;border-top-left-radius:6px;border-top-right-radius:6px;max-width:100%}.fts-single-pin-social-meta-wrap{font-family:Helvetica,sans-serif;font-size:11px;color:#999;font-style:normal;font-weight:400;-webkit-font-smoothing:antialiased;margin:-13px 10px 7px 15px}.fts-single-pin-social-meta-wrap .fts-single-pin-repin-count{margin:10px 12px 0 0;display:inline-block;font-size:13px}.fts-single-pin-social-meta-wrap .fts-single-pin-repin-count:before{font-family:FontAwesomeSlick;margin-right:5px;font-size:12px!important;content:"\f08d"}.fts-single-pin-social-meta-wrap .fts-single-pin-like-count{font-size:13px!important}.fts-single-pin-social-meta-wrap .fts-single-pin-like-count:before{font-family:FontAwesomeSlick;content:"\f086"!important;margin-right:5px;font-size:13px!important}.fts-single-pin-pinned-to-title,.fts-single-pin-pinned-to-wrap{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:block;overflow:hidden}.fts-single-pin-pinned-to-wrap{line-height:15px;padding:10px;border-radius:0 0 6px 6px;border:none!important;border-top:1px solid #e7e7e7!important}.fts-single-pin-pinned-to-wrap:hover{background:#eee;cursor:pointer}.fts-single-pin-pinned-to-wrap div{color:#999;display:block;font-weight:700;font-size:11px;font-family:Helvetica,sans-serif}.fts-single-pin-pinned-to-text{color:#999}div.fts-single-pin-pinned-to-title{color:#717171}.fts-single-pin-pinned-to-wrap img{position:relative;border-radius:2px;height:30px;margin-right:5px;width:30px;float:left}.fts-single-pin-pinned-to-title{border-radius:0 0 6px 6px}.fts-single-attribution-wrap{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;text-overflow:ellipsis;font-family:Helvetica,sans-serif;color:#666;margin:-2px 0 5px 15px!important;font-size:11px;display:block;border:none!important;line-height:1.6471}.fts-yt-vids-in-row1 .fts-yt-videolist ul li:first-child,.fts-yt-vids-in-row1 li .entriestitle{display:none}.fts-yt-vids-in-row3 li .entriestitle,.fts-yt-vids-in-row4 li .entriestitle{font-size:85%!important;line-height:100%!important}.fts-single-attribution-wrap img{height:16px;margin-right:5px;position:relative;width:16px;float:left}.pinterest-social-btn-top{margin-bottom:0;text-align:center}.widget .pinterest-social-btn-top{margin-bottom:5px;text-align:center}.pinterest-social-btn-bottom{margin-top:5px;text-align:center}.fts-yt-videolist iframe{width:100%}.fts-yt-vids-in-row1 div.fts-yt-videolist p{padding-bottom:25px;clear:both}.fts-yt-first-video p{margin:10px 10px 25px!important}.fts-yt-videolist ul,.fts-yt-vids-in-row1 ul li{margin:0!important;padding:0!important}#secondary .front-widgets .fts-yt-large iframe{height:100%!important;max-height:300px!important;min-height:300px!important}.widget .fts-yt-videolist ul li{margin-bottom:0!important;list-style:none!important}.fts-yt-videolist ul{width:100%!important}.fts-yt-videolist ul li{list-style:none!important}.fts-yt-vids-in-row1 li{width:100%!important;margin-bottom:5%}.fts-yt-vids-in-row2 li,.fts-yt-vids-in-row3 li,.fts-yt-vids-in-row4 li{float:left;border:none;position:relative;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;padding:1%!important;margin:0!important}.fts-yt-vids-in-row1 li iframe{width:100%}.fts-yt-vids-in-row2 li{width:50%!important}.fts-yt-vids-in-row3 li{width:33.3%!important}.fts-yt-vids-in-row4 li{width:25%!important}.fts-yt-vids-in-row2 li .entriestitle,.fts-yt-vids-in-row3 li .entriestitle,.fts-yt-vids-in-row4 li .entriestitle{padding:0 5px;position:absolute;left:0;top:20%;opacity:0;width:87.5%;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.fts-yt-vids-in-row2 li:hover .entriestitle,.fts-yt-vids-in-row3 li:hover .entriestitle,.fts-yt-vids-in-row4 li:hover .entriestitle{background:#000;border-radius:0;color:#fff;padding:5% 6%;opacity:.9;z-index:100;right:0;line-height:18px;font-size:90%;font-weight:700;box-shadow:0 4px 8px #333;display:block}.fts-yt-vids-in-row2 li:hover,.fts-yt-vids-in-row3 li:hover,.fts-yt-vids-in-row4 li:hover{background-color:rgba(0,0,0,.9);box-shadow:0 1px 10px #333;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-yt-overlay-wrap{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;z-index:-1!important;background-color:rgba(0,0,0,.75);text-align:center;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;transition:opacity .2s ease-out;pointer-events:none;box-shadow:0 2px 500px #000}body .fts-yt-overlay-wrap.fts-yt-target{display:block;opacity:1;z-index:9999999!important;-webkit-transition:opacity .5s ease-in;-moz-transition:opacity .5 ss ease-in;transition:opacity .5s ease-in;pointer-events:auto}.fts-fb-video-icon,.fts-watermark-inside{pointer-events:none}.fts-yt-overlay{max-width:775px;opacity:1;z-index:300;position:absolute;top:0;bottom:0;right:0;left:0;max-height:472px;padding:10px;background:#444;margin:auto!important;box-shadow:0 2px 200px #000}.fts-yt-overlay-wrap iframe{margin:0;min-height:343px;background:#000!important;margin-bottom:0!important}.fts-yt-popup-close{display:block;position:absolute;top:-19px;right:0;background:#444;color:#fff!important;text-decoration:none;font-size:85%;font-family:verdana;font-weight:400;padding:.5% 2.5% 0;line-height:20px}.widget .fts-yt-first-video p{font-size:12px!important;margin-bottom:10px!important;margin-top:5px}.widget .fts-yt-videolist li{margin:0!important;line-height:0!important}.widget .fts-yt-videolist ul{padding-bottom:15px!important;float:left}.fts-yt-vids-in-row1 ul li iframe{margin-bottom:12px!important}@media only screen and (max-width:775px){.fts-yt-overlay{background:0 0;box-shadow:0 0 0 #000}.fts-yt-popup-close{background:0 0}}.widget .fts-yt-large .fts-yt-first-video iframe,.widget .fts-yt-vids-in-row1 li iframe{width:100%;height:0!important;min-height:100%!important;max-height:160px!important;padding:0}.fts-fluid-videoWrapper{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.fts-fluid-videoWrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;min-height:100%;background:#000;border:none}.fts-fluid-videoWrapper video{background:#000}.fts-jal-fb-vid-wrap{margin-top:10px;border-radius:0;-webkit-transition:background 2s;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.fts-jal-fb-vid-wrap iframe,.widget .fts-jal-fb-vid-wrap iframe{width:100%;margin:0!important;padding:0!important}.fts-vine-thumbnail .fts-vine-logo:before,.fts-vine-thumbnail-cover,.popup-video-gallery-fb span.fts-fb-video-icon:before{-webkit-transition:all .5s ease-out 0;-moz-transition:all .5s ease-out 0;-o-transition:all .5s ease-out 0;-webkit-font-smoothing:antialiased}.widget .fts-jal-fb-vid-wrap iframe{height:50%}.fts-yt-first-video h2{margin:0 0 7px!important}.youtube-social-btn-top{margin:0 0 5px!important}.youtube-social-btn-bottom{padding:10px 0 0 6px;clear:both}@keyframes fade{from,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes fade{from,to{opacity:1}50%{opacity:.5}}.fts-vine-wrapper{text-align:center}.fts-vine-video-wrap{text-align:left;display:inline-block;max-width:290px;vertical-align:top}.fts-vine-video-wrap a.fts-vine-author{display:block;margin:5px 0 0;padding:0}.fts-vine-white-popup .mfp-close{margin-top:-40px;font-size:35px;margin-right:-10px;color:#fff!important}.fts-vine-white-popup{position:relative;background:#fff;padding:20px;width:auto;max-width:640px;margin:30px auto}.fts-iframe-vine{padding-top:262px}.fts-vine-author{font-size:18px;line-height:24px}.fts-vine-text{font-size:13px;line-height:18px;padding:0 15px 15px 0}.fts-vine-thumbnail{display:block;position:relative;background:0 0!important}.fts-vine-thumbnail-cover{position:absolute;z-index:100;left:0;top:0;width:100%;height:100%;opacity:0;display:inline-block;cursor:pointer}.fts-vine-logo{font-size:27px}.fts-vine-thumbnail .fts-vine-logo:before,.popup-video-gallery-fb span.fts-fb-video-icon:before{font-family:FontAwesomeSlick;font-size:100%}.fts-vine-thumbnail .fts-vine-logo:before{content:"\f1ca"!important;display:inline-block;position:absolute;z-index:200;right:12px;top:5px;line-height:1.5;color:#00bf8f}.fts-vine-thumbnail-cover:hover{opacity:.3;background:#000}.fts-vine-thumbnail:hover .fts-vine-logo:before{color:#fff;text-shadow:2px 1px #555;-webkit-animation:wiggle .5s ease;animation:wiggle .5s ease}@-webkit-keyframes wiggle{0%,100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}60%{-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}80%{-webkit-transform:rotate(30deg);transform:rotate(30deg)}}@keyframes wiggle{0%,100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}60%{-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}80%{-webkit-transform:rotate(30deg);transform:rotate(30deg)}}@media only screen and (max-device-width:736px){.fts-iframe-vine{padding-bottom:14%!important}.fts-vine-white-popup{padding:0}}.post-5593 .entry-content{text-align:center}.fts-fb-video-popup{position:relative;background:0 0;padding:20px 60px;width:auto;max-width:1400px;margin:30px auto}.fts-fb-video-popup .mfp-close{color:#fff!important;right:47px!important;top:-19px!important}@media only screen and (min-device-width:375px) and (max-device-width:667px){.fts-fb-video-popup{padding:20px!important}.fts-fb-video-popup .mfp-close{right:5px!important}}@media only screen and (min-device-width:414px) and (max-device-width:736px){.fts-fb-video-popup{padding:20px!important}.fts-fb-video-popup .mfp-close{right:5px!important}}@media only screen and (min-device-width:768px) and (max-device-width:1024px){.fts-fb-video-popup video{min-height:400px}.fts-fb-video-popup{padding:10px!important}.fts-fb-video-popup .mfp-close{right:-2px!important;top:-25px!important}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape){.fts-fb-video-popup video{min-height:600px}}.fts-view-fb-videos-largeeee:before{content:"";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased;background:url(../images/fb-play-btn.png);height:80px;width:80px}.fts-fb-photo-post-wrap:hover a.fts-slicker-backg{opacity:1;outline:0!important;color:#fff}.popup-video-gallery-fb span.fts-fb-video-icon:before{content:"\f144"!important;display:inline-block!important;opacity:.5!important;color:#fff;outline:0!important}.popup-video-gallery-fb span.fts-fb-video-icon:hover:before{opacity:.8!important;color:#fff}.popup-video-gallery-fb a.visible-video-button{opacity:9!important;outline:0!important;z-index:1500}.popup-video-gallery-fb .fts-fb-load-more{max-width:340px;margin:20px auto}.fts-fb-social-btn-center,.popup-video-gallery-align-center{text-align:center;font-size:0}.fts-fb-social-btn-right,.popup-video-gallery-align-right{text-align:right}.fts-fb-social-btn-left,.popup-video-gallery-align-left{text-align:left}.cycle-slideshow .fts-jal-fb-picture{max-width:100%!important}.popup-video-gallery-fb .fts-fb-photo-post-wrap{vertical-align:top!important;display:inline-block!important;float:none;text-align:left;border-radius:0;max-width:100%;max-height:100%;box-sizing:border-box}.popup-video-gallery-fb .fts-fb-photo-post-wrap .fts-jal-fb-user-name{padding-top:0!important}.fts-review-star,.fts-reviews-star{background:#4791ff;color:#fff;font-weight:400;padding:2px 12px;border-radius:15px;border:none!important}.fts-review-details-master-wrap .fts-review-star{background:#4791ff;color:#fff;font-weight:400;padding:11px 12px 9px 17px;border-radius:30px;margin:0 12px 0 0;font-size:20px;float:left;vertical-align:top;line-height:22px}.fts-review-star{font-size:13px;font-style:normal;white-space:nowrap}.fts-review-star a{background:#4791ff;color:#fff}.fts-reviews-feed .fts-jal-fb-post-time{padding-top:10px!important}.fts-review-star:after{content:"";font-size:14px}.fts-reviews-feed .fts-jal-fb-message{margin-top:5px}.fts-reviews-feed .fts-jal-fb-user-name{margin-top:0;font-size:14px}.fts-jal-fb-vid-picture .fts-fluid-videoWrapper-html5{display:none}.fts-fluid-videoWrapper .fluid-width-video-wrapper{position:initial}.fts-jal-fb-user-thumb img{width:50px;max-width:100%}.fts-jal-fb-description p{line-height:17px!important;white-space:normal!important}.fts-checked-in-text-link{display:inline-block;padding-bottom:0}.fts-checked-in-img{float:left;margin-right:10px;max-width:160px}.fts-checked-in-get-directions{margin-top:5px}.fts-instagram-fade .mfp-title,.fts-instagram-fade .mfp-title a{font-size:13px}.fts-fluid-videoWrapper-html5{margin-top:10px;width:100%}.fts-fb-slideshow.slideshow .fts-fb-photo-post-wrap{position:relative!important;float:none;display:inline-block}.fts-fb-slideshow{width:100%;padding:0;overflow:hidden}.fts-fb-slideshow>a{position:absolute;top:0;left:0;width:100%;padding:0;background-color:#222;display:block}.fts-fb-slideshow>a>img{width:100%;position:static;display:block}.fts-fb-slideshow>div{position:absolute;top:0;left:0;padding:0}.composite-example>div{background:#fff}.composite-example>div>img{display:block}.composite-example>div .cycle-overlay{color:#fff;background:#000;opacity:.6;position:absolute;bottom:0;width:100%;padding:0}.fts-slider-center{text-align:center;padding:2px 0;background:#171717;position:relative;display:block;min-height:35px;font-size:15px;line-height:30px}.fts-slider-center span{display:inline-block;position:absolute;-webkit-text-size-adjust:none}.fts-cycle-slide p{margin:0;padding:0}.fts-prevControl-icon:before{content:'\f0a8';font-family:FontAwesomeSlick!important;font-size:24px}.fts-custom-caption{text-align:center;position:absolute;width:100%;left:0;top:2px;font-size:13px!important;line-height:30px;font-weight:700;z-index:0;letter-spacing:1px}.fts-nextControl-icon:before{font-size:24px;content:'\f0a9';font-family:FontAwesomeSlick!important}.fts-prevControl-icon{left:8px;z-index:1;cursor:pointer}.fts-nextControl-icon{right:7px;z-index:1;cursor:pointer}.fts-nextControl-icon:hover,.fts-prevControl-icon:hover{opacity:.8!important}.fb-social-btn-top{width:100%!important;overflow:hidden}.fts-instagram-fade.mfp-ready .mfp-figure{opacity:1!important}.page-id-6026 #main-header{display:none}.page-id-6026 #page-container{padding-top:0!important}.page-id-6026 .container{margin:0 auto!important;max-width:100%!important;width:100%!important}.fts-slider-icons-center{display:block;line-height:30px}.fts-pager-option{top:10px;position:relative}.fts-pager-option-top{bottom:0;position:relative;top:5px}.fts-pager-option,.fts-pager-option-top{text-align:center;width:100%;z-index:500;display:block}.fts-pager-option span{font-size:47px;width:15px;height:15px;line-height:10px;display:inline-block}.fts-pager-option span.cycle-pager-active,.fts-pager-option span:hover{opacity:.5}.fts-pager-option>*{cursor:pointer}.fts-fb-vid-popup .mfp-iframe-holder .mfp-close,.fts-fb-vid-popup .mfp-inline-holder .mfp-close{top:-50px!important;font-size:54px!important;font-weight:100;font-family:inherit}.fts-facebook-popup.mfp-bg,.fts-vine-vid-popup.mfp-bg{opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}.fts-facebook-popup.mfp-bg.mfp-ready{opacity:.8;z-index:99999990}.fts-facebook-popup.mfp-bg.mfp-removing{opacity:0}.fts-facebook-popup.mfp-wrap .mfp-content{opacity:0;-webkit-transition:all .15s ease-out;-moz-transition:all .15s ease-out;transition:all .15s ease-out}.fts-facebook-popup.mfp-wrap.mfp-ready .mfp-content{opacity:1}.fts-facebook-popup.mfp-wrap.mfp-removing .mfp-content{opacity:0}.fts-facebook-popup .mfp-close{left:0!important;margin-left:4px!important;background:0 0!important;cursor:zoom-out!important;border:none!important;box-shadow:none!important;font-size:27px!important;font-family:'Open Sans',Arial,sans-serif!important;font-weight:600!important;top:-42px!important;opacity:.5!important}.fts-facebook-popup .mfp-close:before{display:none!important}.fts-facebook-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup .mfp-inline-holder .mfp-content{max-width:1400px}.fts-facebook-popup .mfp-iframe-scaler iframe,.fts-facebook-popup .mfp-iframe-scaler video{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:none!important;background:#000;right:0;margin:auto}.fts-facebook-popup .mfp-title{padding:20px;background:rgba(255,255,255,.11);margin-top:21px}.fts-facebook-popup .fts-popup-wrap{max-width:1400px;margin:0 auto;padding:0;vertical-align:middle;width:100%;position:relative}.fts-facebook-popup .fts-popup-half{width:75%;float:left;background:#000;text-align:center;vertical-align:middle;height:100%;position:relative;z-index:88888888}.fts-facebook-popup .fts-popup-second-half{height:100%;width:25%;position:relative;float:left}.fts-facebook-popup .fts-popup-second-half .mfp-bottom-bar{margin:0;position:absolute!important;top:0;right:0;width:100%;cursor:auto;color:#000;overflow:auto}.fts-facebook-popup .fts-popup-wrap img.mfp-img{width:auto;max-width:100%;display:initial;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0;vertical-align:middle}.fts-facebook-popup .fts-popup-wrap .mfp-counter{position:relative;bottom:0;text-align:right;right:10px;color:#c1c1c1!important;font-size:12px;line-height:18px;white-space:nowrap;display:inline-block;float:right;top:initial;margin:5px 0}.fts-facebook-popup .fts-position-helper{display:inline-block;height:100%;vertical-align:middle}.fts-facebook-popup .fts-popup-image-position{min-height:527px;width:100%;background:#000;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none}.fts-facebook-popup .fts-popup-wrap .mfp-title{padding:0;background:rgba(255,255,255,.11);margin:0}.fts-facebook-popup .fts-popup-second-half .mfp-title a{color:#0f6fad;text-decoration:none!important}.fts-youtube-popup .fts-popup-second-half .mfp-title a{color:#0f6fad!important}.fts-facebook-popup .mfp-figure:after{content:'';position:absolute;left:0;top:0;bottom:0;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#fff}.fts-facebook-popup .fts-popup-wrap .mfp-title p,.fts-instagram-caption-content .fts-popup-wrap .mfp-title p{color:#000!important;margin:0 0 10px!important;padding:0!important}.fts-facebook-popup .mfp-image-holder .mfp-content{max-width:1400px;width:100%}.fts-facebook-popup .fts-jal-fb-user-name{font-size:14px;margin-top:20px;padding-left:82px;display:block;padding-right:15px}.fts-facebook-popup .fts-fb-caption,.fts-facebook-popup .fts-non-popup-text,.hide-date-likes-comments-etc{display:none!important}.fts-facebook-popup .fts-jal-fb-post-time{padding-left:82px}.fts-facebook-popup .fts-instagram-caption-content,.fts-facebook-popup .fts-jal-fb-message{padding:10px 20px 0}.fts-facebook-popup .fts-fb-caption a{font-size:13px}.fts-facebook-popup i:before{margin-left:0!important;font-style:normal!important;font-size:15px!important}.fts-facebook-popup .icon-file:before{font-size:15px!important}#fts-photo-next:hover:after,#fts-photo-prev:hover:after,.fts-popup-half:hover #fts-photo-next:after,.fts-popup-half:hover #fts-photo-prev:after{opacity:1!important;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}#fts-photo-next:after,#fts-photo-prev:after{font-family:FontAwesomeSlick;font-size:58px!important;font-weight:100;opacity:0;color:#fff;border:none!important;margin-top:-20px!important}#fts-photo-next:after{content:"\f105"}#fts-photo-prev:after{content:"\f104"}.fts-facebook-popup .mfp-arrow{background:0 0!important;width:48px!important;height:28px!important;line-height:normal!important;margin:-32px 0!important}.fts-facebook-popup .mfp-arrow:after{margin:0!important;top:0!important;border:none!important;width:48px!important;height:24px!important}.twitter-followers-fts.fts-tweets-first,.twitter-followers-fts:hover{border-bottom:4px solid #1b95e0!important}.fts-facebook-popup .mfp-arrow-left{left:5px!important}.fts-facebook-popup .mfp-arrow-right{right:5px!important}.fts-facebook-popup .fts-jal-fb-description.fts-jal-fb-description-popup,.fts-facebook-popup .hide-date-likes-comments-etc{display:inline-block!important}.fts-facebook-popup .mfp-arrow:before,.fts-iframe-popup-element,.fts-video-popup-element{display:none}.fts-jal-fb-description-popup{color:#444}.fts-facebook-popup .fts-jal-fb-description-wrap{max-height:300px;overflow:auto;max-width:100%;padding-left:20px!important;width:100%}.fts-facebook-popup *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}body .fts-facebook-popup a.fts-powered-by-text{margin:2px 20px!important;text-align:left!important;float:left!important;font-size:12px;color:#c1c1c1!important;width:auto!important;font-weight:400!important;line-height:18px!important}.fts-powered-by-text-popup a.fts-powered-by-text{display:block!important}.fts-facebook-popup .mfp-iframe-holder .mfp-bottom-bar,.fts-facebook-popup .mfp-inline-holder .mfp-bottom-bar{overflow:auto}.fts-fb-comments-content{float:left;width:100%;max-width:100%;background:#f6f7f9;padding:0 20px 20px}.fts-facebook-popup .fts-fb-location-title{font-size:15px;display:block;padding:0;font-weight:700;font-style:normal;margin:12px 0 0;color:#333}.ft-gallery-share-wrap .fa,.fts-share-wrap i{font-style:normal!important}.fts-facebook-popup .fts-instagram-caption-content,.fts-facebook-popup .fts-jal-fb-message{clear:both;font-size:15px;color:#333}.fts-facebook-popup .fts-fb-get-directions{font-size:15px;display:inline-block;padding:0 0 20px;color:#4595f0!important}.fts-facebook-popup .fts-fb-ticket-info{color:#4595f0!important}.fts-event-title-wrap{font-size:24px;line-height:24px}.fts-fb-comments-wrap{display:none!important}.fts-fb-comment{clear:both;float:left;width:100%;color:#222;margin:0;padding:15px 0 0;font-size:13px}.fts-fb-comment-user-pic{float:left;width:32px;height:32px;margin:0;border-radius:50px}.fts-fb-comment-msg{padding-left:42px;font-size:12px}.fts-fb-comment-user-name{font-weight:700;display:inline-block;font-size:12px}@media all and (max-width:900px){.fts-facebook-styles-popup .fts-popup-half,.fts-facebook-styles-popup .fts-popup-second-half{height:100%;width:100%;position:relative;float:none}.fts-facebook-styles-popup .fts-popup-half{background:#000;text-align:center;vertical-align:middle;z-index:500}.fts-facebook-styles-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-facebook-styles-popup .mfp-iframe-holder .mfp-content,.fts-facebook-styles-popup .mfp-inline-holder .mfp-content{top:0}.fts-facebook-styles-popup .mfp-iframe-holder .fts-popup-image-position,.fts-facebook-styles-popup .mfp-inline-holder .fts-popup-image-position{height:auto!important}.fts-facebook-styles-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-facebook-styles-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-facebook-styles-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important}}@media all and (max-width:640px){.fts-instagram-styles-popup .fts-popup-half,.fts-instagram-styles-popup .fts-popup-second-half{height:100%;width:100%!important;position:relative;float:none}.fts-instagram-styles-popup .fts-popup-half{background:#fff;text-align:center;vertical-align:middle;z-index:500}.fts-instagram-styles-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-instagram-styles-popup .mfp-iframe-holder .mfp-content,.fts-instagram-styles-popup .mfp-inline-holder .mfp-content{top:0}.fts-instagram-styles-popup .mfp-iframe-holder .fts-popup-image-position{height:auto!important}.fts-instagram-styles-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-instagram-styles-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-instagram-styles-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important}}@media all and (min-width:1900px){.fts-facebook-popup .fts-popup-second-half.fts-instagram-popup-second-half{float:left!important}.fts-facebook-popup .fts-popup-second-half{height:100%;width:100%;position:relative;float:left}.fts-facebook-popup .fts-popup-half{background:#000;text-align:center;vertical-align:middle;z-index:500;width:100%}.fts-facebook-popup .mfp-bottom-bar{background:#fff;padding-bottom:10px}.fts-facebook-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup .mfp-inline-holder .mfp-content{top:0}.fts-facebook-popup .mfp-iframe-holder .fts-popup-image-position,.fts-facebook-popup .mfp-inline-holder .fts-popup-image-position{height:auto!important}.fts-facebook-popup .mfp-container{padding-top:40px;padding-bottom:0}.fts-facebook-popup .mfp-container:before{display:none}.fts-popup-image-position{min-height:50px!important}.fts-facebook-popup .fts-popup-second-half .mfp-bottom-bar{height:auto!important;overflow:visible!important;min-height:auto!important}}.fts-twitter-backg-image,.fts-twitter-backg-image img{margin:0!important;padding:0!important;position:relative;z-index:99}.fts-instagram .image-overlay,.fts-instagram .image-overlay-inside,.fts-instagram .image-overlay.overlay-type-extern,.fts-jal-fb-group-display .image-overlay-inside,.fts-jal-single-fb-post .image-overlay,.fts-jal-single-fb-post .image-overlay-inside,.fts-jal-single-fb-post .image-overlay.overlay-type-extern,.fts-mashup .image-overlay,.fts-mashup .image-overlay.overlay-type-extern,.fts-pinterest-wrapper .image-overlay,.fts-pinterest-wrapper .image-overlay-inside,.fts-pinterest-wrapper .image-overlay.overlay-type-extern,.fts-profile-pic a .image-overlay,.fts-profile-pic a .image-overlay-inside,.fts-profile-pic a .image-overlay.overlay-type-extern,.fts-slicker-facebook-photos .image-overlay,.fts-slicker-facebook-photos .image-overlay-inside,.fts-slicker-facebook-photos .image-overlay.overlay-type-extern,.fts-tweeter-wrap .image-overlay,.fts-tweeter-wrap .image-overlay-inside,.fts-tweeter-wrap .image-overlay.overlay-type-extern,.fts-vine-content .image-overlay,.fts-vine-content .image-overlay-inside,.fts-vine-content .image-overlay.overlay-type-extern,.fts-yt-videolist .image-overlay,.fts-yt-videolist .image-overlay-inside,.fts-yt-videolist .image-overlay.overlay-type-extern{display:none!important}.fts-facebook-popup.mfp-ready .mfp-figure{opacity:1}ul.fts-sidebar-menu ul.fts-social-bar-icons-wrap ul li{margin:0!important}.fts-instagram-inline-block-centered{text-align:center;font-size:0;margin:auto}#facebook-sidebar .fts-fb-comments-wrap{display:none}.fts-twitter-backg-image img{display:block!important;width:100%}.fts-twitter-backg-image .twitter-social-btn-top{position:absolute!important;bottom:5px;left:10px;z-index:100}.fts-twitter-followers-wrap{background:#fff;padding:1px 5px 0 0;margin-bottom:10px;text-align:center;color:#1b95e0!important}.twitter-followers-fts{text-align:center;display:inline-block;padding:5px 15px;font-size:18px;font-weight:600!important}.twitter-followers-fts a,.twitter-followers-fts-singular a{font-weight:400!important;letter-spacing:.02em;text-transform:uppercase}.twitter-followers-fts a{display:block;color:#66757f!important;font-size:11px;transition:color .15s ease-in-out}.twitter-followers-fts:hover{transition:border .15s ease-in-out}.fts-tweets-first,.fts-tweets-first a,.twitter-followers-fts:hover a{color:#1b95e0!important}.fts-tweet-others-right{margin-left:65px}.fts-tweet-reply-left{float:left;display:inline-block}.fts-twitter-reply-wrap a{color:rgba(144,147,148,.71)}body .fts-twitter-favorites-wrap:hover{color:#c32525!important}.fts-twitter-favorites-wrap{margin-left:20px}body .fts-twitter-reply-wrap.fts-twitter-full-width{margin-left:0!important;margin-top:0}.twitter-followers-fts-singular{font-size:15px;padding:5px 0 0}.twitter-followers-fts-singular a{color:#66757f!important;font-size:11px}.twitter-social-btn-top a,.twitter-social-btn-top iframe{color:#fff!important}@media (max-width:400px){.twitter-followers-fts{padding:5px 10px;font-size:15px!important;font-weight:500!important}}.fts-twitter-full-name{font-size:14px!important}a.fts-twitter-at-name{font-size:12px!important;color:#999!important;font-weight:400!important}.fts-profile-wrap{clear:both;display:block}.fts-clear{clear:both}.fts-profile-pic{float:left;margin:0 25px 20px 0;max-width:125px}.fts-profile-pic a:hover{opacity:.8}.fts-isnta-full-name{padding:0 0 10px;float:left;margin:4px 20px 0 0}.fts-profile-name-wrap .fts-follow-header-wrap{font-size:14px;display:inline-block;letter-spacing:0;padding:7px 10px;border-radius:4px;border:1px solid #5dba00;line-height:18px}.fts-profile-description{font-size:15px;line-height:22px}.fts-profile-name-wrap{font-size:32px;margin-bottom:18px;letter-spacing:2px;line-height:28px}.fts-profile-pic img{border-radius:50%;max-width:100%}.fts-profile-stats{margin:0 0 5px}.fts-profile-stats span{font-weight:700;display:inline-block}.fts-profile-stats div{font-size:15px;display:inline-block;margin-right:20px;margin-bottom:10px}.fts-profile-wrap{max-width:630px;margin:auto;padding:0 0 20px}.fts-facebook-popup .fts-instagram-caption-content a{color:#003569!important}.fts-facebook-popup a.ft-gallery-link-popup,.fts-facebook-popup a.fts-jal-fb-see-more{font-size:12px;text-align:right;margin-top:15px;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:13px 20px 11px 40px;background:#f6f7f9;display:block!important;width:100%!important}.fts-instagram-popup-profile-wrap{display:none}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-pic{display:block;padding:15px 10px 0 15px;margin:0}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-pic img{display:block;width:40px}.fts-facebook-popup.fts-instagram-styles-popup .fts-isnta-full-name{font-size:17px;letter-spacing:normal;color:#333}.fts-facebook-popup.fts-instagram-styles-popup .fts-profile-name-wrap{padding-top:15px}.fts-follow-header-wrap{margin-right:15px;color:#5dba00}.fts-follow-header-wrap a{color:#5dba00!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-insta-date-popup-grab{clear:both;text-align:right;margin:55px 15px -8px!important;color:#999;border-top:1px solid #eee;padding-top:12px;font-size:14px}.fts-facebook-popup.fts-instagram-styles-popup a.fts-view-on-instagram-link{margin:20px 15px 0;padding:10px 0!important;color:#9f9f9f!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-view-on-instagram-link:before{font-size:15px;top:1px;position:relative;margin-left:5px}.fts-facebook-popup.fts-instagram-styles-popup .fts-follow-header-wrap{float:right;margin:0 15px 20px 0;color:#5dba00;font-size:12px}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap,.fts-facebook-popup.fts-instagram-styles-popup .slicker-heart-comments-wrap{position:relative;color:#444!important;margin:0 0 0 15px!important;font-size:14px;width:auto!important;left:0}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap li,.fts-facebook-popup.fts-instagram-styles-popup .slicker-heart-comments-wrap li{display:inline-block;margin-right:15px!important;margin-top:-5px!important;opacity:1}.fts-facebook-popup.fts-instagram-styles-popup .fts-comment-instagram:before{font-size:14px}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-half.fts-instagram-popup-half{width:64%}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-second-half.fts-instagram-popup-second-half{width:36%}.fts-facebook-popup.fts-instagram-styles-popup .fts-instagram-popup-half .fts-popup-image-position{min-height:auto!important}.fts-facebook-popup.fts-instagram-styles-popup .fts-popup-second-half .mfp-bottom-bar{margin:0;position:absolute!important;top:0;right:0;width:100%;cursor:auto;color:#000;overflow:auto;min-height:200px}.fts-facebook-popup.fts-instagram-styles-popup .mfp-iframe-holder .mfp-content,.fts-facebook-popup.fts-instagram-styles-popup .mfp-image-holder .mfp-content,.fts-facebook-popup.fts-instagram-styles-popup .mfp-inline-holder .mfp-content{max-width:1000px;width:100%}.fts-facebook-popup.fts-instagram-styles-popup .heart-comments-wrap{margin:-18px 0 0 15px!important}.fts-facebook-popup a.fts-view-on-instagram-link{font-size:12px;text-align:left;margin-top:15px;border-top:1px solid #eee;border-bottom:1px solid #eee;color:#555!important;padding:10px 20px;background:#fff;display:block}.fts-mashup-post-wrap{padding:0!important;border-bottom:1px solid rgba(184,184,184,.3);line-height:17px;margin-bottom:10px;position:relative;display:inline-block;width:100%}.fts-mashup-type-name{clear:both;width:100%;display:block;background:#f7f7f7;margin-bottom:10px;box-shadow:1px 1px 0 #ddd}.fts-mashup-type-name span{display:block;padding:0 7px 3px 0;text-align:right;font-size:10px;color:#bfbfbf;line-height:14px}.fts-mashup-count-wrap{width:100%;clear:both;display:block;padding-top:12px;text-align:left;margin-bottom:6px;float:left}.fts-mashup-count-wrap a{display:inline-block;font-size:13px}.fts-mashup-count-wrap .fts-tweet-reply-left{float:none;display:inline-block}.fts-mashup-description-wrap{clear:both;padding-top:5px;line-height:18px}.fts-jal-fb-post-time{margin-bottom:8px}.twitter-video{min-width:200px!important}.fts-mashup .fts-mashup-image-and-video-wrap{margin-top:8px;position:relative;line-height:0}.fts-mashup-count-wrap .slicker-heart-comments-wrap{position:relative;top:inherit;bottom:inherit;margin:0!important}.fts-mashup-count-wrap .slicker-heart-comments-wrap li.slicker-instagram-image-likes{padding-left:0!important}.fts-mashup .fts-twitter-description-image{margin-top:0!important}.fts-mashup .fts-single-pin-social-meta-wrap{margin:0}.fts-mashup .fts-single-pin-social-meta-wrap span{margin-top:0;font-size:14px}.fts-mashup .fts-youtube-title{font-weight:700;font-size:12px;padding:8px 0 0;line-height:14px}.fts-mashup-post-wrap .fts-jal-single-fb-post{padding-top:0!important}.fts-mashup .fts-jal-single-fb-post{border-bottom:none}.fts-mashup .fts-jal-fb-picture,.fts-mashup .fts-jal-fb-vid-picture{margin-top:0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before,.fts-mashup-instagram-icon a:before,.fts-mashup-pinterest-icon a:before,.fts-mashup-twitter-icon a:before,.fts-mashup-wp_gallery-icon a:before,.fts-mashup-youtube-icon a:before{font-family:FontAwesomeSlick;font-size:32px;font-weight:100!important}.fts-mashup-instagram-icon a:before{content:"\f16d";font-size:37px;top:2px;position:relative}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before{content:"\f09a";top:2px;position:relative;left:8px;font-size:30px}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a:before{content:""}.fts-mashup-twitter-icon a:before{content:"\f099";top:0;position:relative;left:3px}.fts-mashup-pinterest-icon a:before{content:"\f231";position:relative;top:3px;left:5px}.fts-mashup-youtube-icon a:before{content:"\f167";position:relative;top:2px;left:4px}.fts-mashup-icon-wrap-left.fts-mashup-youtube-icon a:before{top:0;left:2px}.slicker-instagram-placeholder .ft-text-for-popup-content{padding:5px 15px;opacity:0;z-index:10;position:relative;color:#fff}.slicker-instagram-placeholder .fts-mashup-count-wrap{opacity:0;z-index:10;position:absolute;bottom:-5px;left:5px;color:#fff}.slicker-instagram-placeholder:hover .fts-mashup-count-wrap a{color:#fff!important;font-size:12px}.slicker-instagram-placeholder .fts-mashup-count-wrap a{color:#fff;font-size:12px}.slicker-instagram-placeholder:hover .ft-text-for-popup-content,.slicker-instagram-placeholder:hover .fts-mashup-count-wrap{opacity:1;color:rgba(255,255,255,.88)}.slicker-instagram-placeholder .ft-gallery-link-popup{font-size:14px;position:absolute;bottom:10px;left:10px}.ft-gallery-link-popup:before{font-family:FontAwesomeSlick;content:"\f14d ";display:inline-block;margin-right:6px;-webkit-font-smoothing:antialiased;font-size:16px;margin-top:1px;margin-left:1px}.fts-mashup-wp_gallery-icon a:before{content:"\f19a";position:relative;top:2px;left:4px}.fts-mashup-icon-wrap-left.fts-mashup-wp_gallery-icon a:before{top:0;left:2px}.fts-mashup-icon-wrap-right.fts-mashup-wp_gallery-icon{margin-top:3px;margin-right:5px}.slicker-instagram-placeholder .ft-wp-gallery-icon{margin-top:-12px;margin-right:0}.fts-mashup-icon-wrap-left.fts-mashup-twitter-icon a:before{top:0;left:3px}.fts-mashup-type-icon-spacer{clear:both;width:100%;display:block;background:#f7f7f7;margin-bottom:2px}.fts-feed-type-wp_gallery .fts-mashup-description-wrap{margin:0 0 15px}.fts-mashup .fts-feed-type-facebook .fts-jal-fb-user-thumb,.fts-mashup-hide-fb-thumb.fts-feed-type-facebook .fts-jal-fb-user-thumb{display:none!important}.fts-feed-type-facebook .fts-mashup-icon-wrap-left a:before,.fts-feed-type-facebook .fts-mashup-icon-wrap-right a:before{content:"\f09a";top:2px;position:relative;left:9px;font-size:28px!important}.fts-mashup-type-icon{float:left;height:40px;margin:15px 10px 0 0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb{width:40px;height:45px;float:left;margin:0}.fts-mashup .fts-jal-single-fb-post .fts-jal-fb-user-thumb a,.fts-mashup-icon-wrap{float:left;height:45px;width:40px;padding-top:13px;position:relative;margin-top:0!important;text-decoration:none!important}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a{float:left;height:50px;width:50px;padding-top:0;position:relative;margin-top:0!important;text-decoration:none!important}.fts-mashup-hide-fb-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb{width:50px;height:50px;float:left;margin:0 15px 0 0}.fts-mashup .fts-jal-fb-message{line-height:18px;padding-top:5px}.fts-mashup-count-wrap a,.fts-mashup-icon-wrap a{text-decoration:none!important}.fts-mashup .fts-jal-fb-post-time{padding-top:3px}.fts-mashup .fts-likes-shares-etc-wrap{float:left;width:100%;padding:0}.fts-mashup .icon-thumbs-up:before,.fts-single-pin-social-meta-wrap,.fts-tweet-reply-left{margin-left:5px!important}.fts-mashup .fts-jal-fb-see-more,.fts-mashup .fts-mashup-count-wrap .slicker-heart-comments-wrap li,.fts-mashup .slicker-instagram-placeholder .slicker-heart-comments-wrap li{font-size:12px!important}.fts-mashup .fts-comment-instagram:before,.fts-mashup .fts-jal-fb-see-more .icon-comments:before,.fts-mashup .fts-jal-fb-see-more .icon-file-up:before,.fts-mashup .fts-jal-fb-see-more .icon-thumbs-up:before{font-size:14px}.fts-mashup-icon-wrap-right{float:right}.fts-mashup-icon-wrap-right a{text-decoration:none!important;font-size:12px}.fts-mashup-icon-wrap-left a:before,.fts-mashup-icon-wrap-right a:before{font-family:FontAwesomeSlick;font-weight:100!important;top:12px}.fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{position:relative;right:18px;top:13px;z-index:1}.fts-mashup-hide-fb-icon.fts-feed-type-facebook .fts-mashup-icon-wrap-right a:before{font-size:30px!important}.fts-mashup-icon-wrap-left{float:left;margin:16px 12px 0 0}.fts-feed-type-pinterest .fts-mashup-icon-wrap-left a:before{left:4px;top:0}.fts-mashup .fts-feed-type-facebook .fts-jal-fb-user-thumb a:before{font-family:FontAwesomeSlick!important;content:"\f09a"!important;top:2px!important;position:relative!important;left:8px!important;font-size:29px!important}.fts-mashup .fts-mashup-icon-left .fts-jal-fb-user-thumb{display:none!important}.fts-feed-type-facebook.fts-mashup-hide-fb-thumb .fts-jal-fb-user-thumb,.fts-mashup .fts-mashup-hide-fb-icon-and-thumbnail.fts-feed-type-facebook .fts-jal-fb-user-thumb,.fts-mashup-hide-fb-icon-and-thumbnail .fts-jal-fb-user-thumb,.fts-mashup-icon-left .fts-jal-fb-user-thumb img{display:none!important}.fts-mashup-icon-left .fts-feed-type-facebook .fts-jal-fb-user-thumb a:before{content:''!important}.fts-mashup-icon-left.fts-feed-type-facebook.fts-mashup-hide-fb-thumb .fts-jal-fb-user-thumb{display:block!important}body div.fts-mashup-hide-fb-thumbnail-icon .fts-jal-fb-user-thumb a:before{display:none}body div.fts-mashup-hide-fb-thumbnail-icon .fts-jal-fb-user-thumb{width:50px!important;height:50px!important;margin-right:10px!important;margin-bottom:10px!important}body .fts-mashup .fts-mashup-hide-fb-thumbnail-icon .fts-jal-single-fb-post .fts-jal-fb-user-thumb a{width:50px!important;height:50px!important;margin-top:0!important;padding:0!important}.fts-mashup .fts-likes-shares-etc-wrap a{color:#777}.fts-mashup-error-notice{margin-bottom:25px}.fts-mashup-icon-left .fts-mashup-error-notice{margin-left:45px}.fts-mashup-icon-wrap-left a{text-decoration:none!important}.fts-mashup-icon-wrap-right.fts-mashup-youtube-icon a:before{left:-2px!important;top:15px}.fts-mashup-icon-wrap-right.fts-mashup-twitter-icon a:before{left:-2px!important}.fts-mashup-icon-wrap-right.fts-mashup-pinterest-icon a:before{left:0!important}.fts-mashup .fts-jal-fb-user-name{margin-right:23px}.fts-mashup-media-top.fts-mashup-post-wrap .fts-jal-fb-user-name{margin-left:10px;padding-top:0}.fts-mashup-media-top .fts-jal-fb-user-name{margin-left:10px}.fts-mashup .fts-jal-fb-message p,.fts-mashup-description-wrap p{margin:4px 0 5px!important}.fts-single-pin-meta-wrap .fts-single-pin-social-meta-wrap{margin-left:15px!important}.fts-review-details-wrap{margin-top:0}.fts-review-details-master-wrap{display:block;clear:both;padding:10px 10px 15px;background:#fff;border-bottom:1px solid rgba(184,184,184,.3)}.fts-reviews-overall-rating-stars{margin:auto}.fts-review-details-wrap{padding:5px 0 0;line-height:17px}.fts-review-details-master-wrap-no-background-or-border{background:0 0!important;border:none!important}.fts-slicker-twitter-posts .fts-tweeter-wrap .tweeter-info{padding:11px 0 7px}.fts-slicker-twitter-posts .fts-twitter-image{margin-left:11px!important}.fts-slicker-twitter-posts .tweeter-info .fts-twitter-full-width{padding:0 10px 10px}.fts-slicker-twitter-posts .tweeter-info .fts-twitter-full-width.fts-twitter-reply-wrap{padding:0 10px 2px}.tweeter-info .twitter-video{margin:0 -8px -5px!important}.fts-fb-get-directions,.fts-fb-ticket-info{display:inline-block}.fts-fb-ticket-info:before{content:'|';margin-left:10px;margin-right:10px}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-post-time,.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-user-name,.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap{padding-right:15px}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap{margin-top:20px;margin-bottom:25px;padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-user-name{margin-top:12px;padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-jal-fb-post-time{padding-left:20px!important}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-icon-wrap-right.fts-mashup-wp_gallery-icon{margin-right:20px!important;margin-top:-1px}.fts-facebook-popup a.ft-gallery-link-popup{font-size:12px;text-align:left;margin-top:15px;border-top:0 solid #eee;border-bottom:0 solid #eee;padding:14px 20px 10px;background:0 0;display:inline-block;float:left}.fts-facebook-popup .ft-text-for-popup-content .fts-mashup-description-wrap p{padding-top:0;line-height:21px;word-wrap:break-word;font-size:15px;color:#333}.ft-text-for-popup-content{text-align:left}.fts-slicker-facebook-photos .ft-text-for-popup-content .fts-jal-fb-post-time{color:#9d9d9d!important;margin-top:0}.ft-image-overlay{position:absolute;top:0;left:0;height:100%;width:100%}.fts-popup-second-half .fts-watermark-inside{display:none!important}.fts-watermark-inside-center{position:absolute;top:50%;text-align:center;transform:translateY(-50%);width:100%}.fts-watermark-inside-top-center{position:absolute;text-align:center;top:0;width:100%}.fts-watermark-inside-bottom-center{position:absolute;bottom:0;text-align:center;width:100%}.fts-watermark-inside-bottom-left{position:absolute;bottom:0}.fts-watermark-inside-bottom-right{position:absolute;text-align:right;bottom:0;width:100%}.fts-watermark-inside-top-right{position:absolute;width:100%;top:0;text-align:right}.fts-watermark-inside-top-left{position:absolute;text-align:left;top:0;width:100%}.fts-watermark-inside img{max-width:100%;height:auto;display:inline-block;margin:0}.fts-mashup-image-and-video-wrap .fts-watermark-inside img{max-width:75%!important}.ft-gallery-share-wrap{display:none;margin-top:0;position:absolute;left:20px;background:#fff;top:-8px;min-width:145px;box-shadow:2px -2px 3px 0 rgba(187,187,187,.8);width:100%;z-index:1000;text-align:left}.fts-popup-second-half .ft-gallery-share-wrap{left:50px;background:#f6f7f9;top:8px}.ft-gallery-share-wrap a{display:inline-block!important}.fts-share-wrap{padding:0;float:left;width:auto;margin:9px 0 0;display:inline-block;position:relative;z-index:1}a.fts-jal-fb-see-more{width:auto!important;display:inline-block!important;text-align:left}.ft-gallery-share-wrap .fa{display:inline-block!important;font-family:FontAwesomeSlick!important;font-weight:400!important;line-height:1!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ft-gallery-share-wrap .fa-facebook-square:before{content:"\f082";font-size:17px!important}.ft-gallery-share-wrap .fa-linkedin:before{content:"\f0e1";font-size:16px!important}.ft-gallery-share-wrap .fa-google-plus:before{content:"\f0d5";font-size:16px!important}.ft-gallery-share-wrap .fa-pinterest-plus:before{content:"\f0d2";font-size:15px!important}.ft-gallery-share-wrap .fa-twitter:before{content:"\f099";font-size:19px!important;top:1px;position:relative}.ft-gallery-share-wrap .fa-envelope:before{content:"\f0e0";font-size:16px!important}.ft-gallery-link-popup{margin:5px 0 0!important}.ft-gallery-share-wrap a:hover{opacity:.8}.fts-slicker-facebook-photos .fts-share-wrap a{color:#fff!important}.fts-slicker-facebook-photos .fts-mashup-count-wrap{clear:both;display:block!important;top:-21px;left:16px}.fts-slicker-facebook-photos .fts-likes-shares-etc-wrap{outline:0;z-index:5000!important;color:#fff;position:absolute;bottom:10px!important;display:none;width:100%;text-align:left}.fts-slicker-facebook-photos .fts-jal-fb-see-more{bottom:0!important;position:absolute;left:10px}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-mashup-count-wrap.fts-share-wrap{margin:10px 3px 0 0;padding:0}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-mashup-count-wrap.fts-share-wrap a.ft-gallery-link-popup{margin:0!important}.fts-mashup-post-wrap.fts-feed-type-facebook .ft-gallery-share-wrap{top:-7px}.fts-mashup-count-wrap.fts-share-wrap .ft-gallery-link-popup{margin-top:0!important}.fts-twitter-reply-wrap{float:left}.fts-instagram-reply-wrap-left,.fts-pinterest-reply-wrap-left,.fts-youtube-reply-wrap-left{float:right}.fts-tweeter-wrap .fts-share-wrap{padding:7px 0 0;margin-top:10px}.ft-gallery-share-wrap a{margin:7px 5px;font-size:13px}.fts-tweeter-wrap .ft-gallery-share-wrap{top:-10px}.fts-tweeter-wrap .fts-mashup-count-wrap a{display:inline-block;margin:7px 5px;font-size:13px}body .fts-slicker-facebook-photos .fts-tweeter-wrap .ft-gallery-share-wrap{max-width:132px!important;width:100%!important}.fts-tweeter-wrap .ft-gallery-link-popup{font-size:13px}.fts-twitter-reply-wrap-left{float:right;padding:10px 10px 0;margin-top:10px}.fts-tweet-others-right a{display:inline-block}.fts-twitter-reply-wrap .fts-share-wrap{margin-top:10px;padding:0}.fts-share-wrap .fts-share-wrap{margin-top:10px}.fts-twitter-reply-wrap .fts-share-wrap a.ft-gallery-link-popup{margin-top:0!important}.fts-slicker-twitter-posts .fts-twitter-reply-wrap-left{padding:0 10px 2px!important;margin:10px 0 0!important}.ft-galleryfacebook-icon{margin-left:11px!important}.fts-mashup-post-wrap .fts-tweet-reply-left{margin-right:35px;padding:0 5px}.fts-mashup-post-wrap .fts-twitter-reply-wrap-left{padding:0;margin-top:0}.fts-share-wrap .ft-gallery-link-popup{margin:0!important;font-size:12px}.fts-mashup-count-wrap .fts-share-wrap{margin:0!important}.fts-instagram-reply-wrap-left{margin-right:8px}.fts-popup-second-half .fts-share-wrap{margin:15px 0 -64px}.fts-popup-second-half .mfp-title .ft-gallery-share-wrap a{color:#137fc4}.fts-instagram-styles-popup .fts-share-wrap .ft-gallery-share-wrap a,.fts-instagram-styles-popup .fts-share-wrap a.ft-gallery-link-popup{color:#444}.fts-youtube-reply-wrap-left a{font-size:12px}.fts-mashup-post-wrap.fts-feed-type-facebook .fts-jal-fb-see-more{margin-bottom:-1px;text-transform:none!important}.fts-instagram-styles-popup .ft-gallery-link-popup,.fts-instagram-styles-popup .fts-share-wrap{margin:0!important;padding:0!important}.fts-instagram-styles-popup .fts-instagram-reply-wrap-left{float:left;margin-left:20px}.fts-instagram-styles-popup .fts-share-wrap{background:#fff;top:-11px;left:19px;position:relative;z-index:1000}.fts-instagram-styles-popup .ft-gallery-share-wrap{top:-6px;left:25px;background:#fff}.fts-instagram-styles-popup .ft-gallery-link-popup:before{content:"\f064";margin-right:10px}.slicker-instagram-placeholder .ft-gallery-link-popup:before{content:"\f064";color:#fff;font-size:15px;position:relative;top:2px}.slicker-instagram-placeholder .ft-gallery-share-wrap{top:-19px;left:35px;box-shadow:2px -2px 3px 0 #222!important;background:#000}.slicker-instagram-placeholder .ft-gallery-share-wrap a{color:#fff}.fts-facebook-popup .ft-gallery-link-popup:before{font-family:FontAwesomeSlick;content:"\f064 ";margin-left:8px}.fts-mashup-count-wrap .fts-instagram-reply-wrap-left{margin-right:-8px}.fts-facebook-thumb-one,.fts-facebook-thumb-zero{margin-right:1px!important;display:inline-block;margin-bottom:1px!important}a.fts-facebook-thumbs-wrap{display:inline-block;max-width:515px}.fts-facebook-thumb-two{display:inline-block}.fts-image-count-tint-underlay{position:absolute;top:0;bottom:0;right:0;left:0;background:rgba(0,0,0,.5)}.fts-fb-thumbs-wrap,.fts-more-photos-auto-width .fts-fb-thumbs-wrap{position:relative;background-size:cover!important;background-position:center center!important;display:inline-block!important;overflow:hidden}.fts-fb-thumbs-wrap{margin-right:.233333%!important}.fts-2-photos.fts-fb-thumbs-wrap,.fts-more-photos-3-photos .fts-fb-thumb-two-wrap{margin-right:0!important}.fts-3-photos{max-width:33.1%}.fts-2-photos{max-width:49.77%}.fts-fb-more-photos-wrap .fts-jal-fb-picture{margin-bottom:1px!important}.fts-more-photos-auto-width{float:none!important;margin:10px 0 4px}.fts-more-photos-auto-width a{width:49.84%;margin:0!important}.fts-more-photos-auto-width .fts-fb-thumbs-wrap{max-width:100%;margin-right:0!important;margin-left:.2333333333%!important;margin:0 0 4px;z-index:0;background-repeat:no-repeat;vertical-align:top}.fts-more-photos-auto-width .fts-jal-fb-picture{float:none!important;display:inline-block!important;margin:0!important}.fts-more-photos-three-photo-wrap .fts-fb-thumbs-wrap{display:inline-block!important;max-width:100%;margin-right:.233333333%!important;margin:0 0 4px;width:49.887%;overflow:hidden;max-height:240px}.fts-fb-scrollable,.fts-twitter-scrollable,.fts-youtube-scrollable{overflow:auto}.ft-text-for-popup,.fts-slicker-facebook-albums .fts-fb-load-more-output,.fts-slicker-facebook-albums .fts-share-wrap,.fts-slicker-facebook-photos .fts-share-wrap,.fts-twitter-reply-wrap-left p{display:none}.fts-more-photos-three-photo-wrap .fts-fb-thumb-one-wrap{margin-right:0!important}.fts-image-count{position:absolute;bottom:50%;width:100%;top:50%;text-align:center;font-size:36px;color:#fff;line-height:36px;height:36px;transform:translate(0,-50%)}.fts-image-count span{position:relative;bottom:0;font-size:35px}.fts-fb-more-photos-wrap{width:100%}@media (max-width:375px){.fts-image-count,.fts-image-count span{font-size:20px}}@media (max-width:667px){.fts-image-count,.fts-image-count span{font-size:34px}}.ft-gallery-buy-now{margin:0 12px}.fts-mashup-post-wrap .fts-share-wrap,.fts-slicker-facebook-albums.ft-wp-gallery .fts-share-wrap{display:block}.fts-mashup-count-wrap .fts-twitter-reply-wrap.fts-twitter-no-margin-left,.fts-mashup-hide-date .fts-jal-fb-post-time,.fts-mashup-hide-name .fts-jal-fb-user-name,.fts-mashup-media-top .fts-jal-fb-description-wrap,.fts-mashup-media-top .fts-mashup-type-icon-spacer{display:none}.ft-wp-gallery .fts-share-wrap a{color:#777!important}.fts-slicker-facebook-posts img{max-width:100%}.fts-twitter-no-margin-left{margin-left:71px;clear:both}.fts-instagram-styles-popup .fts-comment-instagram:before{font-size:14px!important}.fts-smallerthan-180 .fts-instagram-link-target{padding-left:50%;padding-bottom:50%;padding-top:50%}.fts-smallerthan-180 .fts-instagram-link-target span:before{content:''!important}.fts-smallerthan-180 .fts-instagram-link-target:hover,.fts-smallerthan-180.slicker-instagram-placeholder:hover .slicker-instaG-photoshadow{background:0 0!important}.fts-instagram,.fts-instagram-scrollable{margin:auto}.fts-mashup-hide-name .fts-mashup-description-wrap,.fts-mashup-hide-name.fts-mashup-hide-date .fts-jal-fb-message{padding-top:0!important}.fts-mashup-description-wrap a{word-wrap:break-word}.fts-mashup-image-and-video-wrap.popup-gallery-twitter .twitter-video{margin:-8px!important}.fts-mashup-media-top .fts-mashup-image-and-video-wrap.popup-gallery-twitter{margin-top:0}.fts-mashup-media-top .fts-likes-shares-etc-wrap,.fts-mashup-media-top .fts-mashup-description-wrap,body .fts-mashup-post-wrap.fts-mashup-media-top .fts-jal-fb-message{padding:0 10px!important}.fts-mashup-media-top .fts-youtube-title{padding:10px 10px 0;display:none}.fts-mashup-post-wrap .fts-jal-single-fb-post .fts-jal-fb-vid-wrap .fts-jal-fb-description-wrap{padding:5px 10px 0!important}.fts-mashup-media-top .fts-mashup-count-wrap{padding:8px 10px 7px!important;margin-bottom:0;margin-top:4px}.fts-mashup-media-top .fts-likes-shares-etc-wrap{padding:7px 10px 8px!important;margin-bottom:0;margin-top:10px}.fts-mashup-media-top .fts-jal-single-fb-post{padding-bottom:0!important}.fts-mashup-media-top .fts-jal-fb-post-time{padding:5px 10px 7px!important}.fts-mashup-hide-thumbnail.fts-mashup-media-top .fts-jal-fb-user-name,.fts-mashup-hide-thumbnail.fts-mashup-media-top .fts-jal-single-fb-post .fts-jal-fb-user-name,.fts-mashup-media-top .fts-jal-fb-message{padding:0 10px!important}.fts-mashup-media-top .fts-jal-fb-see-more,.fts-mashup-media-top .fts-share-wrap{margin-top:0}.fts-mashup-media-top .fts-mashup-youtube-icon a:before{margin-right:8px!important;top:10px}.fts-mashup-media-top .fts-mashup-twitter-icon a:before{margin-right:8px!important;top:5px}.fts-mashup-media-top .fts-mashup-pinterest-icon a:before{margin-right:8px!important;top:9px}.fts-mashup-media-top .fts-mashup-instagram-icon a:before{margin-right:9px!important;top:9px}.fts-mashup-media-top .fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{position:unset;right:unset;top:unset;z-index:1;float:right!important}.fts-mashup-media-top .fts-jal-fb-top-wrap{display:none!important}.fts-jal-fb-group-display.fts-mashup-media-top .fts-jal-single-fb-post .fts-jal-fb-top-wrap,.fts-mashup-hide-thumbnail .fts-jal-fb-user-thumb,.slicker-youtube-placeholder .entriestitle{display:none}.fts-mashup-media-top .fts-jal-fb-link-wrap,.fts-mashup-media-top .fts-jal-fb-vid-wrap{margin-top:0;margin-bottom:10px;text-align:center}.fts-mashup-media-top .fts-jal-fb-link-wrap .fts-jal-fb-picture,.fts-mashup-media-top .fts-jal-fb-vid-wrap{float:none}.fts-mashup-media-top .fts-jal-fb-picture,.fts-mashup-media-top .fts-jal-fb-vid-picture{margin-bottom:0!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left{margin-left:10px;margin-right:5px;margin-top:3px;top:0}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-instagram-icon,.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-pinterest-icon{margin-top:2px;min-height:40px}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-instagram-icon{margin-right:0;margin-top:0}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-youtube-icon a:before{margin-right:8px!important;top:6px}.fts-mashup-media-top .fts-mashup-icon-wrap-right.fts-mashup-facebook-icon{margin-right:20px!important;margin-top:4px!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-facebook-icon{margin-top:8px!important}.fts-mashup-media-top .fts-mashup-icon-wrap-left.fts-mashup-youtube-icon{margin-top:5px!important}.fts-mashup-media-top .fts-mashup-image-and-video-wrap{margin-bottom:12px}.fts-mashup-media-top.fts-feed-type-facebook .fts-mashup-image-and-video-wrap.popup-gallery-twitter{margin:0}.fts-feed-type-facebook .fts-mashup-icon-wrap-left{margin-top:17px;margin-right:20px}.fts-mashup-icon-wrap-left.fts-mashup-instagram-icon{margin-top:3px}.fts-mashup-icon-wrap-left,.fts-mashup-icon-wrap-right{min-height:35px}.fts-jal-fb-group-display.fts-mashup-media-top .fts-jal-single-fb-post{padding-bottom:6px!important;border:none;margin-bottom:10px;background:#fff;margin-top:0!important;padding-top:0!important}.fts-mashup-media-top .fts-jal-fb-link-wrap a,.fts-mashup-media-top .fts-jal-fb-vid-picture{margin-top:0!important;line-height:0!important}.fts-mashup-media-top.fts-slicker-facebook-posts .fts-jal-single-fb-post{padding:0 0 8px!important}.fts-mashup-media-top .fts-jal-fb-user-thumb{margin-left:10px;margin-bottom:12px}.fts-yt-open{display:block;width:100%;height:100%;position:absolute}.fts-master-youtube-wrap .slicker-instagram-placeholder{position:relative;background-size:cover}.fts-facebook-popup.mfp-ready{z-index:99999999999999}.fts-youtube-popup h3{color:#111;padding:20px 40px 0 20px!important;margin-bottom:2px;font-size:24px;margin-top:0}.fts-youtube-popup h4{color:#222;padding:0 20px 4px!important;font-size:17px}.fts-youtube-description-popup{padding:0 20px 20px;color:#000}.fts-youtube-date{color:#9a9a9a;padding:0 20px 20px!important;font-size:13px}.fts-yt-open:hover{background:rgba(0,0,0,.5);cursor:pointer}.fts-master-youtube-wrap .slicker-youtube-placeholder{min-height:100px}.fts-youtube-popup-gallery,.fts-youtube-scrollable{clear:both;display:block}.fts-yt-open:hover:before{font-family:FontAwesomeSlick;content:"\f04b";display:block;font-size:32px;color:rgba(255,255,255,.54);position:absolute;top:45%;right:45%;left:43%}.fts-youtube-smallerthan-180 .fts-yt-open:hover:before{content:""}.fts-jal-fb-vid-picture a{margin:0}.fts-facebook-popup .mfp-inline-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.fts-more-photos-4-photos a{max-height:150px;display:inline-block;width:auto}.fts-more-photos-2-photos a{max-height:250px}.fts-youtube-scrollable .fts-fb-autoscroll-loader{background:0 0}.fts-yt-large.fts-youtube-thumbs-wrap{float:left}.fts-youtube-scrollable.fts-youtube-thumbs-wrap{float:right;clear:none}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-left{float:left;clear:none}.fts-yt-large.fts-youtube-thumbs-wrap-left{float:right}.fts-yt-large.fts-youtube-thumbs-wrap-option-80-20{width:80%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-80-20{width:20%}.fts-yt-large.fts-youtube-thumbs-wrap-option-60-40{width:60%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-60-40{width:40%}.fts-youtube-scrollable.fts-youtube-thumbs-wrap-option-50-50,.fts-yt-large.fts-youtube-thumbs-wrap-option-50-50{width:50%}.fts-fb-comment .image-overlay-inside{display:none}.fts-youtube-popup .fts-fb-comment img{border-radius:30px}.fts-youtube-popup span.fts-fb-comment-date{color:#a6a6a6;padding-left:2px;font-size:12px!important}.fts-youtube-popup .fts-popup-second-half .mfp-title .fts-fb-comment-user-name a{color:#333!important}.youtube-comments-wrap{background:#fff;text-align:left;color:#2d2d2d!important}.youtube-comments-wrap .fts-share-wrap{margin:15px 0 -64px}.youtube-comments-wrap .fts-youtube-description-popup{display:block;position:relative!important;margin-bottom:-25px;padding-bottom:30px}.youtube-comments-wrap .ft-gallery-share-wrap{left:50px;background:#f6f7f9;top:8px}.fts-facebook-popup .mfp-bottom-bar a.ft-gallery-link-popup,.fts-facebook-popup .mfp-bottom-bar a.fts-jal-fb-see-more{color:#137fc4}.fts-youtube-scrollable .youtube-comments-wrap #___ytsubscribe_0{margin:20px 20px 10px!important}.mfp-title .fts-master-youtube-wrap-close{display:none}.fts-master-youtube-wrap-close{color:#636363;right:3px;top:3px;text-align:right;padding:15px;width:50px;font-size:24px;font-weight:700;position:absolute}.fts-master-youtube-wrap-close:before{content:"X"}.youtube-comments-wrap{overflow:auto;display:none;position:relative}.youtube-comments-wrap h3{padding-top:18px!important}.fts-scrollable-function{height:auto}.fts-youtube-description-popup{font-size:14px!important}.fts-youtube-no-thumbs-gallery{padding:0!important}.fts-youtube-noscroll .youtube-comments-wrap{overflow:visible}.fts-youtube-smallerthan-550-stack{width:100%!important}.fts-jal-fb-user-thumb img{border-radius:50px!important}.fts-twitter-username img.twitter-image{border-radius:50px}.fts-youtube-second-video-margin-btm{margin-bottom:35px}.fts-share-wrap [class*=fa-]{width:auto;height:auto}.fts-popup-half .mfp-arrow-left,.fts-popup-half .mfp-arrow-right{height:auto;width:auto;border:none!important;margin-top:0!important}.fts-popup-half .mfp-arrow-left:after,.fts-popup-half .mfp-arrow-right:after{background:0 0!important;height:auto!important;top:0!important;left:0!important;margin:0!important;padding:0!important;cursor:pointer;transform:none!important;transition:none!important;-webkit-transition:none!important}.fts-popup-half audio,.fts-popup-half video{visibility:visible!important}.fts-album-photos-wrap{text-align:center}.fts-fb-more-photos-wrap,.fts-more-photos-4-photos{position:relative;top:-3px}#wp-admin-bar-feed_them_social_admin_bar_set_cache{padding-bottom:17px!important;line-height:0!important}#wp-admin-bar-feed_them_social_admin_bar_set_cache span{line-height:10px;display:block;color:rgba(221,221,221,.57)}#wp-admin-bar-feed_them_social_admin_bar_set_cache:hover span{line-height:10px;display:block;color:#fff}.fts-mashup-media-top.fts-mashup-hide-thumbnail .fts-jal-fb-user-name{margin-left:0!important}.fts-steemit-username{display:inline-block;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;border-radius:50%;width:48px;height:48px;margin-bottom:5px}.fts-steemit-div .steemit-info img{margin:0!important}.steemit-info .fts-uppercase{margin:14px 0 10px 10px}.fts-steemit-title{font-size:18px;margin-bottom:10px;letter-spacing:1px;font-weight:400;line-height:21px;color:#0084b4}.fts-steemit-div .fts-twitter-retweet:before{content:"\f27a"!important;font-size:15px!important;top:1px}.fts-steemit-div .fts-twitter-favorites:before{content:'Votes:'!important;font-family:arial!important;font-size:14px!important;margin-right:3px!important;top:0;font-weight:700}.fts-steemit-div .fts-twitter-reply:before{font-family:FontAwesomeSlick;content:'\f06e'!important;position:relative;top:2px;font-size:19px}.fts-twitter-quoted-text-wrap{padding:0 0 10px;border:1px solid #efe8e8!important;margin-top:10px;font-size:13px}.fts-twitter-quoted-text-wrap a{font-size:13px!important}.fts-twitter-quoted-text-wrap .twitter-video-rendered{margin:auto!important}.fts-fluid-videoWrapper{margin-top:8px}.fts-twitter-quoted-text-wrap .fts-twitter-link-image img,.fts-twitter-quoted-text-wrap img{margin-top:0!important}.fts-twitter-quoted-text{display:inline-block!important;padding:8px 10px 0;line-height:18px}.fts-twitter-quoted-video .fts-twitter-quoted-text{padding-top:0!important}.fts-twitter-quoted-image{padding:8px}.fts-twitter-quoted-image .fts-twitter-quoted-text{padding:8px 2px 2px!important}.fts-fb-more-photos-wrap a:last-child{margin-right:0!important}.fts-fb-more-photos-wrap a:first-child{margin-left:0!important}.fts-yt-first-video .fts-fluid-videoWrapper{margin-top:0}.fts-twitter-quoted-video .fts-fluid-videoWrapper-html5,.fts-twitter-quoted-video .fts-jal-fb-vid-wrap{margin-top:0;margin-bottom:10px}.fts-fb-location-wrap{text-align:center;padding:15px}.fts-fb-location-img{display:block;margin-bottom:9px;height:20px}.fts-fb-location-img:before{content:"\f024";font-family:FontAwesomeSlick;font-size:28px;display:block}.fts-fb-location-link{margin-bottom:5px;display:block;font-size:16px}.fts-popup-second-half .fts-fb-location-wrap{color:#444}.fts-fb-embed-iframe-check-used-for-popup,.greater-than-or-equal-width-height{display:none!important}.fts-fb-video-on-page.fts-fluid-videoWrapper{padding-bottom:56%;padding-top:0;width:100%!important;height:auto!important}.fts-fb-video-on-page.fts-fluid-videoWrapper iframe{width:100%!important;height:auto!important}.fts-greater-than-width-height.fts-fb-video-on-page{margin-top:18px}.fts-greater-than-width-height.fts-fb-video-on-page iframe{padding-bottom:100%}.fts-equal-width-height{max-width:100%;padding-bottom:100%!important}.fts-comment-star:before{font-family:FontAwesomeSlick;content:"\f075";font-size:14px;margin:0 6px 0 -2px!important;padding:0!important;display:inline-block!important;border:none!important}.fts-mashup-error-notice-strong{display:block;font-size:16px;padding-bottom:5px}.fts-mashup-error-bottom-padding{padding-bottom:20px;display:block}.fts-mashup-error-check .fts-mashup-image-and-video-wrap{display:none}.fts-review-name span{margin-right:5px}.fts-mashup.masonry .fts-fluid-videoWrapper-html5{margin-top:0}.fts-child-media-hide{display:none}.fts-instagram-styles-popup .fts-carousel-image{position:absolute;right:25px;top:32px;text-align:right;font-size:21px;color:#fff;z-index:1}.fts-carousel-image-wrapper,.fts-instagram-video-image-wrapper{position:relative;right:18px;top:18px;text-align:right;font-size:20px;color:#fff;width:auto;float:right}.fts-carousel-image:before{font-family:FontAwesomeSlick;content:'\f24d'}.fts-instagram-video-image:before{font-family:FontAwesomeSlick;content:'\f03d'}.fts-instagram-popup-second-half .fts-carousel-image{display:none}.fts-child-media-popup .fts-carousel-image{display:block}.fts-carousel-image-wrapper,.fts-instagram-video-image-wrapper{position:relative;z-index:2}.slicker-instagram-placeholder a:focus{outline:auto!important}.fts-instagram-icon:before{font-family:FontAwesomeSlick!important;-webkit-font-smoothing:antialiased;content:"\f16d"}.slicker-instagram-placeholder{height:0;width:0}
feeds/facebook/class-fts-facebook-feed.php CHANGED
@@ -7,2245 +7,2245 @@
7
  * @since 1.9.6
8
  */
9
  class FTS_Facebook_Feed extends feed_them_social_functions {
10
- /**
11
- * Construct
12
- *
13
- * Facebook Feed constructor.
14
- *
15
- * @since 1.9.6
16
- */
17
- public function __construct() {
18
- add_shortcode( 'fts_facebook_group', array( $this, 'fts_fb_func' ) );
19
- add_shortcode( 'fts_facebook_page', array( $this, 'fts_fb_func' ) );
20
- add_shortcode( 'fts_facebook_event', array( $this, 'fts_fb_func' ) );
21
- add_shortcode( 'fts_facebook', array( $this, 'fts_fb_func' ) );
22
- add_action( 'wp_enqueue_scripts', array( $this, 'fts_fb_head' ) );
23
- }
24
-
25
- /**
26
- * FTS FB Head
27
- *
28
- * Add Styles and Scripts functions.
29
- *
30
- * @since 1.9.6
31
- */
32
- public function fts_fb_head() {
33
- wp_enqueue_style( 'fts-feeds', plugins_url( 'feed-them-social/feeds/css/styles.css' ), array(), FTS_CURRENT_VERSION, false );
34
-
35
- if ( is_plugin_active( 'feed-them-social/feed-them.php' ) && is_plugin_active( 'feed-them-carousel-premium/feed-them-carousel-premium.php' ) && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
36
- wp_enqueue_script( 'fts-feeds', plugins_url( 'feed-them-carousel-premium/feeds/js/jquery.cycle2.js' ), array(), FTS_CURRENT_VERSION, false );
37
- }
38
- }
39
-
40
- /**
41
- * Date Sort
42
- *
43
- * Date sort option for multiple feeds in a shortcode.
44
- *
45
- * @param string $a First Date.
46
- * @param string $b Second Date.
47
- * @return false|int
48
- * @since 1.9.6
49
- */
50
- public function dateSort( $a, $b ) {
51
- $date_a = strtotime( $a->created_time );
52
- $date_b = strtotime( $b->created_time );
53
- return ( $date_b - $date_a );
54
- }
55
-
56
-
57
- /**
58
- * FTS FB Func
59
- *
60
- * Display Facebook Feed.
61
- *
62
- * @param string $atts Shortcode attributes.
63
- * @return string
64
- * @since 1.9.6
65
- */
66
- public function fts_fb_func( $atts ) {
67
- // masonry snippet in fts-global.
68
- wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
69
- $developer_mode = 'on';
70
- // Make sure everything is reset.
71
- include_once ABSPATH . 'wp-admin/includes/plugin.php';
72
- // Eventually add premium page file.
73
- if ( is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) ) {
74
-
75
- $fts_facebook_reviews = new FTS_Facebook_Reviews();
76
- $review_atts = $fts_facebook_reviews->shortcode_attributes();
77
- $fb_shortcode = shortcode_atts( $review_atts, $atts );
78
- // Load up some scripts for popup.
79
- $this->load_popup_scripts( $fb_shortcode );
80
- } elseif ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
81
- include WP_CONTENT_DIR . '/plugins/feed-them-premium/feeds/facebook/facebook-premium-feed.php';
82
- // Doing this to phase out the invalid snake case.
83
- $fb_shortcode = $FB_Shortcode;
84
- // Load up some scripts for popup.
85
- $this->load_popup_scripts( $fb_shortcode );
86
- } elseif ( is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) && ! is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
87
- // Doing this to phase out the invalid snake case.
88
- $fb_shortcode = $FB_Shortcode;
89
- $fb_shortcode = shortcode_atts(
90
- array(
91
- 'id' => '',
92
- 'type' => '',
93
- 'posts' => '',
94
- 'posts_displayed' => '',
95
- 'height' => '',
96
- 'album_id' => '',
97
- 'image_width' => '',
98
- 'image_height' => '',
99
- 'space_between_photos' => '',
100
- 'hide_date_likes_comments' => '',
101
- 'center_container' => '',
102
- 'image_stack_animation' => '',
103
- 'image_position_lr' => '',
104
- 'image_position_top' => '',
105
- 'hide_comments_popup' => '',
106
- // only works with combined FB streams otherwise you need the premium version.
107
- 'popup' => '',
108
- 'words' => '',
109
- 'grid' => '',
110
- 'colmn_width' => '',
111
- 'space_between_posts' => '',
112
- // new show media on top options.
113
- 'show_media' => '',
114
- 'show_date' => '',
115
- 'show_name' => '',
116
- // 'access_token' => '',
117
- ),
118
- $atts
119
- );
120
- if ( null === $fb_shortcode['posts'] ) {
121
- $fb_shortcode['posts'] = '6';
122
- }
123
- } else {
124
- $fb_shortcode = shortcode_atts(
125
- array(
126
- 'id' => '',
127
- 'type' => '',
128
- 'posts' => '',
129
- 'description' => 'yes',
130
- 'posts_displayed' => '',
131
- 'height' => '',
132
- 'album_id' => '',
133
- 'image_width' => '',
134
- 'image_height' => '',
135
- 'space_between_photos' => '',
136
- 'hide_date_likes_comments' => '',
137
- 'center_container' => '',
138
- 'image_stack_animation' => '',
139
- 'image_position_lr' => '',
140
- 'image_position_top' => '',
141
- 'hide_comments_popup' => '',
142
- 'access_token' => '',
143
- ),
144
- $atts
145
- );
146
- if ( null === $fb_shortcode['posts'] ) {
147
- $fb_shortcode['posts'] = '6';
148
- }
149
- }
150
-
151
- if ( 'album_videos' === $fb_shortcode['type'] ) {
152
- $fb_shortcode['type'] = 'album_photos';
153
- $fb_shortcode['video_album'] = 'yes';
154
- $fb_shortcode['album_id'] = 'photo_stream';
155
- if ( isset( $fb_shortcode['loadmore_btn_maxwidth'] ) && ! empty( $fb_shortcode['loadmore_btn_maxwidth'] ) ) {
156
- $fb_shortcode['loadmore'] = 'button';
157
- }
158
- }
159
-
160
- if ( ! is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && ! is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && ! is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) && $fb_shortcode['posts'] > '6' ) {
161
- $fb_shortcode['posts'] = '6';
162
- }
163
-
164
- // Get Access Token.
165
- $access_token = isset( $fb_shortcode['access_token'] ) ? $fb_shortcode['access_token'] : '';
166
- if ( ! empty( $access_token ) ) {
167
- $access_token = $fb_shortcode['access_token'];
168
- } else {
169
- $access_token = $this->get_access_token();
170
- }
171
-
172
- // UserName?.
173
- if ( ! $fb_shortcode['id'] ) {
174
- return 'Please enter a username for this feed.';
175
- }
176
- if ( 'reviews' === $fb_shortcode['type'] && ! is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) ) {
177
- return '<div style="clear:both; padding:15px 0;">You must have FTS Facebook Reviews extension active to see this feed.</div>';
178
- }
179
-
180
- $type = isset( $fb_shortcode['type'] ) ? $fb_shortcode['type'] : '';
181
- if ( 'group' === $type || 'page' === $type || 'event' === $type ) {
182
-
183
- // EMPTY FACEBOOK POSTS OFFSET AND COUNT.
184
- // Option Now Being Removed from here and the Facebook Settings Page.
185
- // Setting it to blank so no matter what it will never error get_option('fb_count_offset');.
186
- $fb_count_offset = '';
187
-
188
- // View Link.
189
- $fts_view_fb_link = '';
190
- // Get Cache Name.
191
- $fb_cache_name = '';
192
- // Get language.
193
- $language = '';
194
-
195
- // Get Response (AKA Page & Feed Information) ERROR CHECK inside this function.
196
- $response2 = $this->get_facebook_feed_response( $fb_shortcode, $fb_cache_name, $access_token, $language );
197
-
198
- // Test to see if the re-sort date option is working from function above.
199
- // print $this->dateSort;.
200
- $feed_data_check = json_decode( $response2['feed_data'] );
201
-
202
- // SHOW THE REGULAR FEEDS PRINT_R
203
- // echo '<pre>';
204
- // print_r($feed_data_check);
205
- // echo '</pre>';
206
- // $idNew = array();
207
- // $idNew = explode(',', $fb_shortcode['id']);
208
- // Testing options before foreach loop
209
- // $idNew = 'tonyhawk';
210
- // print_r($feed_data_check->$idNew->data);.
211
- if ( is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
212
- $fts_count_ids = substr_count( $fb_shortcode['id'], ',' );
213
- } else {
214
- $fts_count_ids = '';
215
- }
216
-
217
- if ( isset( $feed_data_check->data ) ) {
218
- if ( $fts_count_ids >= 1 && 'reviews' !== $fb_shortcode['type'] ) {
219
- $fts_list_arrays = array();
220
- foreach ( $feed_data_check as $feed_data_name ) {
221
-
222
- if ( isset( $feed_data_name->data ) ) {
223
- $fts_list_arrays = array_merge_recursive( $fts_list_arrays, $feed_data_name->data );
224
- }
225
- // var_dump( $fts_list_arrays[$i]);.
226
- }
227
- $merged_array['data'] = $fts_list_arrays;
228
- $feed_data_check = (object) $merged_array;
229
- }
230
-
231
- // Test the created dataes are being sorted properly
232
- // foreach($merged_array['data'] as $newSort) {
233
- // print date("jS F, Y", strtotime($newSort->created_time));
234
- // print '<br/>';
235
- // }.
236
- $set_zero = 0;
237
- foreach ( $feed_data_check->data as $post_count ) {
238
-
239
- $fb_message = isset( $post_count->message ) ? $post_count->message : '';
240
- $fb_story = isset( $post_count->story ) ? $post_count->story : '';
241
- $fb_type = isset( $post_count->type ) ? $post_count->type : '';
242
- $fb_status_type = isset( $post_count->status_type ) ? $post_count->status_type : '';
243
-
244
- // This is the method to skip empty posts or posts that are simply about changing settings or other non important post types
245
- // We will count all the ones that are like this and add that number to the output of posts to offset the posts we are filtering out. Line 278 needs the same treatment of if options.
246
- if ( 'status' === $fb_type && empty( $fb_message ) && empty( $fb_story ) || 'event' === $fb_type || 'event' === $fb_type && false !== strpos( $fb_story, 'shared their event' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'changed the name of the event to' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'changed the privacy setting' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'an admin of the group' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'created the group' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'added an event' ) || 'event' === $fb_type && false !== strpos( $fb_story, 'added an event' ) ) {
247
- $set_zero++;
248
- } elseif ( '0' === $feed_data_check->data ) {
249
- // If more than the 5 posts(default in free) or the post= from shortcode is set to the amount of posts that are being filtered above we will add 7 to the post count to try and get at some posts.
250
- // This will only happen for Page and Group feeds.
251
- $set_zero = '7';
252
- }
253
- }// END POST foreach.
254
-
255
- // Result of the foreach loop above minus the empty posts and offset by those posts the actual number of posts entered is shown
256
- // $fb_shortcode['posts'] = $result;.
257
- if ( ! empty( $fb_count_offset ) ) {
258
- $set_zero = $fb_count_offset;
259
- $unset_count = $fb_shortcode['posts'] + $set_zero;
260
- $fb_shortcode['posts'] = $unset_count;
261
- } else {
262
- $unset_count = $fb_shortcode['posts'] + $set_zero;
263
- $fb_shortcode['posts'] = $unset_count;
264
- }
265
-
266
- // SHOW THE $feed_data_check PRINT_R
267
- // echo '<pre>';
268
- // print_r($feed_data_check);
269
- // echo '</pre>, ';.
270
- }
271
- // END.
272
- }
273
-
274
- ob_start();
275
- // Uncomment these for testing purposes to see the actual count and the offset count
276
- // print $set_zero;
277
- // print $fb_shortcode['posts'];
278
- // print $fb_type;
279
- // View Link.
280
- $fts_view_fb_link = $this->get_view_link( $fb_shortcode );
281
- // Get Cache Name.
282
- $fb_cache_name = $this->get_fb_cache_name( $fb_shortcode );
283
- // Get language.
284
- $language = $this->get_language( $fb_shortcode );
285
- if ( 'reviews' !== $fb_shortcode['type'] ) {
286
- // Get Response (AKA Page & Feed Information) ERROR CHECK inside this function.
287
- $response = $this->get_facebook_feed_response( $fb_shortcode, $fb_cache_name, $access_token, $language );
288
- // Json decode data and build it from cache or response.
289
- $page_data = json_decode( $response['page_data'] );
290
- $feed_data = json_decode( $response['feed_data'] );
291
- }
292
-
293
- if ( is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && true == get_option( 'fts_facebook_custom_api_token_biz' ) && 'reviews' === $fb_shortcode['type'] ||
294
- is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && ! empty( $fb_shortcode['token'] ) && 'reviews' === $fb_shortcode['type'] ||
295
- is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && ! empty( $fb_shortcode['access_token'] ) && 'reviews' === $fb_shortcode['type'] ) {
296
-
297
- if ( 'yes' === $fb_shortcode['remove_reviews_no_description'] && ! isset( $_GET['load_more_ajaxing'] ) ) {
298
-
299
- $fts_facebook_reviews = new FTS_Facebook_Reviews();
300
- $no_description_count = $fts_facebook_reviews->review_count_check( $fb_shortcode );
301
-
302
- // testing purposes
303
- // print ''. $no_description_count - $fb_shortcode['posts'] .' = The amount of posts with no review text.';
304
- // this count includes our original posts count + the amount of posts we found with no description.
305
- $fb_shortcode['posts'] = $no_description_count;
306
- }
307
- if ( ! empty( $fb_shortcode['token'] ) ) {
308
- $biz_access_token = $fb_shortcode['token'];
309
- } elseif ( ! empty( $fb_shortcode['access_token'] ) ) {
310
- $biz_access_token = $fb_shortcode['access_token'];
311
- } else {
312
- $biz_access_token = get_option( 'fts_facebook_custom_api_token_biz' );
313
- }
314
-
315
- // Get Response (AKA Page & Feed Information) ERROR CHECK inside this function.
316
- $response = $this->get_facebook_feed_response( $fb_shortcode, $fb_cache_name, $biz_access_token, $language );
317
-
318
- $feed_data = json_decode( $response['feed_data'] );
319
-
320
- $feed_data = (object) $feed_data;
321
- // Add Feed Type to post array.
322
- // SHOW THE REVIEWS FEED PRINT_R
323
- // echo '<pre>';
324
- // print_r($feed_data );
325
- // echo '</pre>';
326
- if ( 'yes' === $fb_shortcode['remove_reviews_no_description'] ) {
327
- // $no_description_count2 = 0;.
328
- foreach ( $feed_data->data as $k => $v ) {
329
- if ( ! isset( $v->review_text ) ) {
330
- // print $v->reviewer->name . ' (Key# ' . $k . ') : Now Unset from array<br/>';.
331
- unset( $feed_data->data[ $k ] );
332
- // $no_description_count2++;.
333
- }
334
- }
335
- }
336
- $ratings_data = json_decode( $response['ratings_data'] );
337
-
338
- // SHOW THE REVIEWS RATING INFO PRINT_R
339
- // echo '<pre>';
340
- // print_r($ratings_data );
341
- // echo '</pre>';.
342
- // Add fts_profile_pic_url to the array so we can show profile photos for reviews and comments in popup
343
- foreach ( $feed_data->data as $post_array ) {
344
-
345
- $the_image = 'https://graph.facebook.com/' . $post_array->reviewer->id . '/picture?redirect=false&access_token=' . $biz_access_token . '';
346
-
347
- $profile_pic_response = wp_remote_get( $the_image );
348
- $profile_pic_data = wp_remote_retrieve_body( $profile_pic_response );
349
- $profile_pic_output = json_decode( $profile_pic_data );
350
-
351
- // echo '<pre>';
352
- // print_r($profile_pic_output->data->url);
353
- // echo '</pre>';
354
- $post_array->fts_profile_pic_url = $profile_pic_output->data->url;
355
- }
356
- }
357
-
358
- if ( is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
359
- $fts_count_ids = substr_count( $fb_shortcode['id'], ',' );
360
- } else {
361
- $fts_count_ids = '';
362
- }
363
-
364
- if ( $fts_count_ids >= 1 && 'reviews' !== $fb_shortcode['type'] ) {
365
-
366
- $fts_list_arrays = array();
367
- foreach ( $feed_data as $feed_data_name ) {
368
-
369
- $fts_list_arrays = array_merge_recursive( $fts_list_arrays, $feed_data_name->data );
370
- // var_dump( $fts_list_arrays[$i]);.
371
- }
372
- // Sort the array using the call back function.
373
- usort( $fts_list_arrays, array( $this, 'dateSort' ) );
374
-
375
- $merged_array['data'] = $fts_list_arrays;
376
- $feed_data = (object) $merged_array;
377
- }
378
- // SHOW THE REGULAR FEEDS PRINT_R (WORKS FOR VIDEOS TOO)
379
- // echo '<pre>';
380
- // print_r($feed_data );
381
- // echo '</pre>';
382
- // If No Response or Error then return.
383
- if ( is_array( $response ) && isset( $response[0] ) && isset( $response[1] ) && false === $response[0] ) {
384
- return $response[1];
385
- }
386
-
387
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
388
- // Make sure it's not ajaxing and we will allow the omition of certain album covers from the list by using omit_album_covers=0,1,2,3 in the shortcode.
389
- if ( ! isset( $_GET['load_more_ajaxing'] ) && 'albums' === $fb_shortcode['type'] ) {
390
-
391
- // omit_album_covers=0,1,2,3 for example.
392
- $omit_album_covers = $fb_shortcode['omit_album_covers'];
393
- $omit_album_covers_new = array();
394
- $omit_album_covers_new = explode( ',', $omit_album_covers );
395
- foreach ( $feed_data->data as $post_data ) {
396
- foreach ( $omit_album_covers_new as $omit ) {
397
- unset( $feed_data->data[ $omit ] );
398
- }
399
- }
400
- }
401
- }
402
- // Reviews Rating Filter.
403
- if ( is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && 'reviews' === $fb_shortcode['type'] ) {
404
- foreach ( $feed_data->data as $key => $post_data ) {
405
- // we are not going to show the unrecommended reviews in the feed at this point, no options in our plugin srl 8-28-18.
406
- if ( isset( $post_data->rating ) && $post_data->rating < $fb_shortcode['reviews_type_to_show'] || isset( $post_data->recommendation_type ) && 'negative' === $post_data->recommendation_type ) {
407
- unset( $feed_data->data[ $key ] );
408
- }
409
- }
410
- }
411
-
412
- // Make sure it's not ajaxing.
413
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
414
- // Get Response (AKA Page & Feed Information).
415
- $_REQUEST['fts_dynamic_name'] = sanitize_key( $this->fts_rand_string( 10 ) . '_' . $fb_shortcode['type'] );
416
- // Create Dynamic Class Name.
417
- $fts_dynamic_class_name = $this->get_fts_dynamic_class_name();
418
- // SOCIAL BUTTON.
419
- if ( ! $fts_count_ids >= 1 ) {
420
- $this->fb_social_btn_placement( $fb_shortcode, $access_token, 'fb-like-top-above-title' );
421
- }
422
-
423
- if ( 'reviews' !== $fb_shortcode['type'] ) {
424
- $page_data->description = isset( $page_data->description ) ? $page_data->description : '';
425
- $page_data->name = isset( $page_data->name ) ? $page_data->name : '';
426
- }
427
- // fts-fb-header-wrapper (for grid).
428
- echo isset( $fb_shortcode['grid'] ) && 'yes' !== $fb_shortcode['grid'] && 'album_photos' !== $fb_shortcode['type'] && 'albums' !== $fb_shortcode['type'] ? '<div class="fts-fb-header-wrapper">' : '';
429
-
430
- // Header.
431
- echo '<div class="fts-jal-fb-header">';
432
-
433
- if ( is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && isset( $fb_shortcode['overall_rating'] ) && 'yes' === $fb_shortcode['overall_rating'] ) {
434
-
435
- // echo $this->get_facebook_overall_rating_response($fb_shortcode, $fb_cache_name, $access_token);.
436
- $fb_reviews_overall_rating_of_5_stars_text = get_option( 'fb_reviews_overall_rating_of_5_stars_text' );
437
- $fb_reviews_overall_rating_of_5_stars_text = ! empty( $fb_reviews_overall_rating_of_5_stars_text ) ? ' ' . $fb_reviews_overall_rating_of_5_stars_text : ' of 5 stars';
438
- $fb_reviews_overall_rating_reviews_text = get_option( 'fb_reviews_overall_rating_reviews_text' );
439
- $fb_reviews_overall_rating_reviews_text = ! empty( $fb_reviews_overall_rating_reviews_text ) ? ' ' . $fb_reviews_overall_rating_reviews_text : ' reviews';
440
- $fb_reviews_overall_rating_background_border_hide = get_option( 'fb_reviews_overall_rating_background_border_hide' );
441
- $fb_reviews_overall_rating_background_border_hide = ! empty( $fb_reviews_overall_rating_background_border_hide ) && 'yes' === $fb_reviews_overall_rating_background_border_hide ? ' fts-review-details-master-wrap-no-background-or-border' : '';
442
- echo '<div class="fts-review-details-master-wrap' . esc_attr( $fb_reviews_overall_rating_background_border_hide ) . '" itemscope itemtype="http://schema.org/CreativeWork"><i class="fts-review-star">' . esc_html( $ratings_data->overall_star_rating ) . ' &#9733;</i>';
443
- echo '<div class="fts-review-details-wrap" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"><div class="fts-review-details"><span itemprop="ratingValue">' . esc_html( $ratings_data->overall_star_rating ) . '</span>' . esc_html( $fb_reviews_overall_rating_of_5_stars_text ) . '</div>';
444
- echo '<div class="fts-review-details-count"><span itemprop="reviewCount">' . esc_html( $ratings_data->rating_count ) . '</span>' . esc_html( $fb_reviews_overall_rating_reviews_text ) . '</div></div></div>';
445
-
446
- }
447
- if ( 'reviews' !== $fb_shortcode['type'] ) {
448
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
449
- // echo our Facebook Page Title or About Text. Commented out the group description because in the future we will be adding the about description.
450
- $fts_align_title = isset( $fb_shortcode['title_align'] ) && '' !== $fb_shortcode['title_align'] ? 'style="text-align:' . $fb_shortcode['title_align'] . ';"' : '';
451
- echo isset( $fb_shortcode['title'] ) && 'no' !== $fb_shortcode['title'] ? '<h1 ' . esc_attr( $fts_align_title ) . '><a href="' . esc_url( $fts_view_fb_link ) . '" target="_blank">' . esc_html( $page_data->name ) . '</a></h1>' : '';
452
-
453
- } else {
454
- // echo our Facebook Page Title or About Text. Commented out the group description because in the future we will be adding the about description.
455
- echo '<h1><a href="' . esc_url( $fts_view_fb_link ) . '" target="_blank">' . esc_html( $page_data->name ) . '</a></h1>';
456
- }
457
- // Description.
458
- echo isset( $fb_shortcode['description'] ) && 'no' !== $fb_shortcode['description'] ? '<div class="fts-jal-fb-group-header-desc">' . wp_kses(
459
- $this->fts_facebook_tag_filter( $page_data->description ),
460
- array(
461
- 'a' => array(
462
- 'href' => array(),
463
- 'title' => array(),
464
- ),
465
- 'br' => array(),
466
- 'em' => array(),
467
- 'strong' => array(),
468
- 'small' => array(),
469
- )
470
- ) . '</div>' : '';
471
- }
472
- // END Header.
473
- echo '</div>';
474
- // Close fts-fb-header-wrapper.
475
- echo isset( $fb_shortcode['grid'] ) && 'yes' !== $fb_shortcode['grid'] && 'album_photos' !== $fb_shortcode['type'] && 'albums' !== $fb_shortcode['type'] ? '</div>' : '';
476
- } //End check.
477
-
478
- // SOCIAL BUTTON.
479
- if ( ! $fts_count_ids >= 1 ) {
480
- $this->fb_social_btn_placement( $fb_shortcode, $access_token, 'fb-like-top-below-title' );
481
- }
482
-
483
- // Feed Header.
484
- // Make sure it's not ajaxing.
485
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
486
-
487
- $fts_mashup_media_top = isset( $fb_shortcode['show_media'] ) && 'top' === $fb_shortcode['show_media'] ? 'fts-mashup-media-top ' : '';
488
- $fts_mashup_show_name = isset( $fb_shortcode['show_name'] ) && 'no' === $fb_shortcode['show_name'] ? ' fts-mashup-hide-name ' : '';
489
- $fts_mashup_show_date = isset( $fb_shortcode['show_date'] ) && 'no' === $fb_shortcode['show_date'] ? ' fts-mashup-hide-date ' : '';
490
- $fts_mashup_show_thumbnail = isset( $fb_shortcode['show_thumbnail'] ) && 'no' === $fb_shortcode['show_thumbnail'] ? ' fts-mashup-hide-thumbnail ' : '';
491
-
492
- if ( ! isset( $fb_type ) && 'albums' === $fb_shortcode['type'] || ! isset( $fb_type ) && 'album_photos' === $fb_shortcode['type'] || isset( $fb_shortcode['grid'] ) && 'yes' === $fb_shortcode['grid'] ) {
493
-
494
- if ( isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
495
- echo '';
496
- } elseif ( isset( $fb_shortcode['slider'] ) && 'yes' !== $fb_shortcode['slider'] && 'yes' === $fb_shortcode['image_stack_animation'] || isset( $fb_shortcode['grid'] ) && 'yes' === $fb_shortcode['grid'] || isset( $fb_shortcode['image_stack_animation'] ) && 'yes' === $fb_shortcode['image_stack_animation'] ) {
497
- wp_enqueue_script( 'fts-masonry-pkgd', plugins_url( 'feed-them-social/feeds/js/masonry.pkgd.min.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
498
- echo '<script>';
499
- echo 'jQuery(window).load(function(){';
500
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").masonry({';
501
- echo 'itemSelector: ".fts-jal-single-fb-post"';
502
- echo '});';
503
- echo '});';
504
- echo '</script>';
505
- }
506
-
507
- if ( ! isset( $fb_type ) && 'albums' === $fb_shortcode['type'] || ! isset( $fb_type ) && 'album_photos' === $fb_shortcode['type'] && ! isset( $fb_type ) && ! isset( $fb_shortcode['slider'] ) || ! isset( $fb_type ) && 'album_photos' === $fb_shortcode['type'] && ! isset( $fb_type ) && isset( $fb_shortcode['slider'] ) && 'yes' !== $fb_shortcode['slider'] ) {
508
- echo '<div class="fts-slicker-facebook-photos fts-slicker-facebook-albums' . ( isset( $fb_shortcode['video_album'] ) && $fb_shortcode['video_album'] && 'yes' === $fb_shortcode['video_album'] ? ' popup-video-gallery-fb' : '' ) . ( isset( $fb_shortcode['image_stack_animation'] ) && 'yes' === $fb_shortcode['image_stack_animation'] ? ' masonry js-masonry' : '' ) . ( isset( $fb_shortcode['images_align'] ) && $fb_shortcode['images_align'] ? ' popup-video-gallery-align-' . esc_attr( $fb_shortcode['images_align'] ) : '' ) . ' popup-gallery-fb ' . esc_attr( $fts_dynamic_class_name ) . '"';
509
- if ( 'yes' === $fb_shortcode['image_stack_animation'] ) {
510
- echo 'data-masonry-options=\'{ "isFitWidth": ' . ( 'no' === $fb_shortcode['center_container'] ? 'false' : 'true' ) . ' ' . ( 'no' === $fb_shortcode['image_stack_animation'] ? ', "transitionDuration": 0' : '' ) . '}\' style="margin:auto;"';
511
- }
512
- echo '>';
513
- } elseif (
514
- // slideshow scrollHorz or carousel.
515
- ! isset( $fb_type ) && isset( $fb_shortcode['slider'] ) && 'yes' === $fb_shortcode['slider'] ) {
516
- $fts_cycle_type = isset( $fb_shortcode['scrollhorz_or_carousel'] ) ? $fb_shortcode['scrollhorz_or_carousel'] : 'scrollHorz';
517
-
518
- if ( isset( $fts_cycle_type ) && 'carousel' === $fts_cycle_type ) {
519
- $fts_cycle_slideshow = 'slideshow';
520
- } else {
521
- $fts_cycle_slideshow = 'cycle-slideshow';
522
- }
523
- echo '';
524
-
525
- // none
526
- // dots_above_feed
527
- // dots_and_arrows_above_feed
528
- // dots_and_numbers_above_feed
529
- // dots_arrows_and_numbers_above_feed
530
- // arrows_and_numbers_above_feed
531
- // arrows_above_feed
532
- // numbers_above_feed
533
- // dots_below_feed
534
- // dots_and_arrows_below_feed
535
- // dots_and_numbers_below_feed
536
- // dots_arrows_and_numbers_below_feed
537
- // arrows_and_numbers_below_feed
538
- // arrows_below_feed
539
- // numbers_below_feed.
540
- $fts_controls_bar_color = ! empty( $fb_shortcode['slider_controls_bar_color'] ) ? $fb_shortcode['slider_controls_bar_color'] : '#000';
541
- $fts_controls_text_color = ! empty( $fb_shortcode['slider_controls_text_color'] ) ? $fb_shortcode['slider_controls_text_color'] : '#ddd';
542
- if ( isset( $fb_shortcode['slider_controls_width'] ) && 'carousel' !== $fb_shortcode['scrollhorz_or_carousel'] ) {
543
- $max_width_set = isset( $fb_shortcode['image_width'] ) && '' !== $fb_shortcode['image_width'] && 'carousel' !== $fb_shortcode['scrollhorz_or_carousel'] ? $fb_shortcode['image_width'] : '100%';
544
- } else {
545
- $max_width_set = isset( $fb_shortcode['slider_controls_width'] ) && '' !== $fb_shortcode['slider_controls_width'] && 'carousel' === $fb_shortcode['scrollhorz_or_carousel'] ? $fb_shortcode['slider_controls_width'] : '100%';
546
- }
547
- if (
548
- isset( $fb_shortcode['slider_controls'] ) && 'dots_above_feed' === $fb_shortcode['slider_controls'] ||
549
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
550
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
551
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
552
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
553
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_above_feed' === $fb_shortcode['slider_controls'] ||
554
- isset( $fb_shortcode['slider_controls'] ) && 'numbers_above_feed' === $fb_shortcode['slider_controls']
555
- ) {
556
-
557
- // Slider Dots Wrapper.
558
- if (
559
- isset( $fb_shortcode['slider_controls'] ) && 'dots_above_feed' === $fb_shortcode['slider_controls'] ||
560
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
561
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
562
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls']
563
- ) {
564
-
565
- echo '<div class="fts-slider-icons-center fts-pager-option-dots-only-top" style="margin:auto; width:100%;max-width:' . esc_attr( $max_width_set . ';background:' . $fts_controls_bar_color . ';color:' . $fts_controls_text_color ) . '"><div class="fts-pager-option fts-custom-pager-' . esc_attr( $fts_dynamic_class_name ) . '"></div></div>';
566
- }
567
-
568
- // Slider Arrow and Numbers Wrapper.
569
- if (
570
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
571
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
572
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
573
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
574
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_above_feed' === $fb_shortcode['slider_controls'] ||
575
- isset( $fb_shortcode['slider_controls'] ) && 'numbers_above_feed' === $fb_shortcode['slider_controls']
576
- ) {
577
- echo '<div class="fts-slider-center" style="margin:auto; width:100%; max-width:' . esc_attr( $max_width_set . ';background:' . $fts_controls_bar_color . ';color:' . $fts_controls_text_color ) . '">';
578
- }
579
-
580
- // Previous Arrow.
581
- if (
582
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
583
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
584
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
585
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_above_feed' === $fb_shortcode['slider_controls']
586
- ) {
587
- echo '<span class="fts-prevControl-icon fts-prevControl-' . esc_attr( $fts_dynamic_class_name ) . '"></span>';
588
- }
589
- // Numbers.
590
- if (
591
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
592
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
593
- isset( $fb_shortcode['slider_controls'] ) && 'numbers_above_feed' === $fb_shortcode['slider_controls'] ||
594
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_above_feed' === $fb_shortcode['slider_controls']
595
- ) {
596
- echo '<span id="fts-custom-caption-' . esc_attr( $fts_dynamic_class_name ) . '" class="fts-custom-caption" ></span>';
597
- }
598
- // Next Arrow.
599
- if (
600
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
601
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
602
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
603
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_above_feed' === $fb_shortcode['slider_controls']
604
- ) {
605
- echo '<span class="fts-nextControl-icon fts-nextControl-' . esc_attr( $fts_dynamic_class_name ) . '"></span>';
606
- }
607
-
608
- // Slider Arrow and Numbers Wrapper.
609
- if (
610
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
611
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
612
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
613
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
614
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_above_feed' === $fb_shortcode['slider_controls'] ||
615
- isset( $fb_shortcode['slider_controls'] ) && 'numbers_above_feed' === $fb_shortcode['slider_controls']
616
- ) {
617
- echo '</div>';
618
- }
619
- }
620
-
621
- echo '<div class="popup-gallery-fb fts-fb-slideshow fts-slicker-facebook-photos fts-slicker-facebook-albums ' . esc_attr( $fts_cycle_slideshow ) . ' ' . ( isset( $fb_shortcode['video_album'] ) && $fb_shortcode['video_album'] && 'yes' === $fb_shortcode['video_album'] ? 'popup-video-gallery-fb' : '' ) . ' ' . ( isset( $fb_shortcode['images_align'] ) && $fb_shortcode['images_align'] ? ' popup-video-gallery-align-' . esc_attr( $fb_shortcode['images_align'] ) : '' ) . ' popup-gallery-fb ' . esc_attr( $fts_dynamic_class_name ) . '"
622
 
623
  style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortcode['slider_margin'] ? esc_attr( $fb_shortcode['slider_margin'] ) : 'auto' ) . ';' . ( isset( $fts_cycle_type ) && 'carousel' === $fts_cycle_type ? 'width:100%; max-width:100%; overflow:hidden;height:' . esc_attr( $fb_shortcode['image_height'] ) . ';' : 'overflow:hidden; height:' . esc_attr( $fb_shortcode['image_height'] ) . '; max-width:' . ( isset( $fb_shortcode['image_width'] ) && '' !== $fb_shortcode['image_width'] ? esc_attr( $fb_shortcode['image_width'] ) : 'auto' ) ) . ';" data-cycle-caption="#fts-custom-caption-' . esc_attr( $fts_dynamic_class_name ) . '" data-cycle-caption-template="{{slideNum}} / {{slideCount}}" data-cycle-pager=".fts-custom-pager-' . esc_attr( $fts_dynamic_class_name ) . '" data-cycle-pause-on-hover="true" data-cycle-prev=".fts-prevControl-' . esc_attr( $fts_dynamic_class_name ) . '" data-cycle-next=".fts-nextControl-' . esc_attr( $fts_dynamic_class_name ) . '" data-cycle-timeout="' . ( ! empty( $fb_shortcode['slider_timeout'] ) ? esc_attr( $fb_shortcode['slider_timeout'] ) : '0' ) . '" data-cycle-manual-speed="' . ( ! empty( $fb_shortcode['slider_speed'] ) ? esc_attr( $fb_shortcode['slider_speed'] ) : '400' ) . '" data-cycle-auto-height="false" data-cycle-slides="> div" data-cycle-fx="' . ( ! empty( $fb_shortcode['scrollhorz_or_carousel'] ) ? esc_attr( $fb_shortcode['scrollhorz_or_carousel'] ) : '' ) . '" data-cycle-carousel-visible=' . ( ! empty( $fb_shortcode['slides_visible'] ) ? esc_attr( $fb_shortcode['slides_visible'] ) : '4' ) . ' data-cycle-swipe=true data-cycle-swipe-fx=' . ( ! empty( $fb_shortcode['scrollhorz_or_carousel'] ) ? esc_attr( $fb_shortcode['scrollhorz_or_carousel'] ) : '' ) . '>';
624
- }
625
-
626
- if ( isset( $fb_shortcode['grid'] ) && 'yes' === $fb_shortcode['grid'] ) {
627
- echo '<div class="fts-slicker-facebook-posts masonry js-masonry ' . esc_attr( $fts_mashup_media_top . $fts_mashup_show_name . $fts_mashup_show_date . $fts_mashup_show_thumbnail ) . ( 'yes' === $fb_shortcode['popup'] ? 'popup-gallery-fb-posts ' : '' ) . ( 'reviews' === $fb_shortcode['type'] ? 'fts-reviews-feed ' : '' ) . esc_attr( $fts_dynamic_class_name ) . ' " style="margin:auto;" data-masonry-options=\'{ "isFitWidth": ' . ( 'no' === $fb_shortcode['center_container'] ? 'false' : 'true' ) . ' ' . ( 'no' === $fb_shortcode['image_stack_animation'] ? ', "transitionDuration": 0' : '' ) . '}\'>';
628
- }
629
- } else {
630
- echo '<div class="fts-jal-fb-group-display fts-simple-fb-wrapper ' . esc_attr( $fts_mashup_media_top . $fts_mashup_show_name . $fts_mashup_show_date . $fts_mashup_show_thumbnail ) . ( isset( $fb_shortcode['popup'] ) && 'yes' === $fb_shortcode['popup'] ? ' popup-gallery-fb-posts ' : '' ) . ( 'reviews' === $fb_shortcode['type'] ? 'fts-reviews-feed ' : '' ) . esc_attr( $fts_dynamic_class_name ) . ' ' . ( 'auto' !== $fb_shortcode['height'] && ! empty( $fb_shortcode['height'] ) ? 'fts-fb-scrollable" style="height:' . esc_attr( $fb_shortcode['height'] ) . '"' : '"' ) . '>';
631
- }
632
- } //End ajaxing Check
633
-
634
- // *********************
635
- // Post Information
636
- // *********************
637
- $fb_load_more_text = get_option( 'fb_load_more_text' ) ? get_option( 'fb_load_more_text' ) : esc_html( 'Load More', 'feed-them-social' );
638
- $response_post_array = $this->get_post_info( $feed_data, $fb_shortcode, $access_token, $language, $fb_cache_name );
639
-
640
- // Single event info call.
641
- if ( 'events' === $fb_shortcode['type'] ) {
642
- $single_event_array_response = $this->get_event_post_info( $feed_data, $fb_shortcode, $access_token, $language );
643
- }
644
-
645
- $set_zero = 0;
646
-
647
- // echo '<br/><br/>feed array<br/><br/>';.
648
- // echo '<pre>';
649
- // print_r($feed_data );
650
- // echo '</pre>';
651
- // THE MAIN FEED
652
- // LOOP to fix Post count!
653
- foreach ( $feed_data->data as $k => $v ) {
654
- if ( $k >= $fb_shortcode['posts'] ) {
655
- unset( $feed_data->data[ $k ] );
656
- }
657
- }
658
-
659
- // Nov. 4th. 2016 // Uncomment this to sort the dates proper if facebook is returning them out of order.
660
- // We had one case of this here for a list of posts coming from an event.
661
- // https://wordpress.org/support/topic/facebook-event-posts-not-ordered-by-date/
662
- // usort($feed_data->data, array($this, "dateSort"));
663
- // Loop for all facebook feeds.
664
- foreach ( $feed_data->data as $post_data ) {
665
-
666
- $fb_message = isset( $post_data->message ) ? $post_data->message : '';
667
- $fb_status_type = isset( $post_data->status_type ) ? $post_data->status_type : '';
668
-
669
- $fb_story = isset( $post_data->story ) ? $post_data->story : '';
670
- $fb_type = isset( $post_data->type ) ? $post_data->type : '';
671
-
672
- // This is the method to skip empty posts or posts that are simply about changing settings or other non important post types.
673
- if ( 'status' === $fb_type && empty( $fb_message ) && empty( $fb_story ) || 'event' === $fb_type || 'event' === $fb_type && false !== strpos( $fb_story, 'shared their event' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'changed the name of the event to' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'changed the privacy setting' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'an admin of the group' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'created the group' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'added an event' ) || 'event' === $fb_type && false !== strpos( $fb_story, 'added an event' ) ) {
674
- } else {
675
- // define type note also affects load more fucntion call.
676
- if ( ! $fb_type && 'album_photos' === $fb_shortcode['type'] ) {
677
- $fb_type = 'photo';
678
- }
679
- if ( ! $fb_type && 'events' === $fb_shortcode['type'] ) {
680
- $fb_type = 'events';
681
-
682
- }
683
-
684
- $post_types = new fts_facebook_feed_post_types();
685
- $single_event_array_response = isset( $single_event_array_response ) ? $single_event_array_response : '';
686
-
687
- // echo '<br/><br/>were function gets called <br/><br/>' .
688
- // print_r( $post_data );.
689
- $post_types->feed_post_types( $set_zero, $fb_type, $post_data, $fb_shortcode, $response_post_array, $single_event_array_response );
690
-
691
- }
692
-
693
- $set_zero++;
694
- }// END POST foreach
695
-
696
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'reviews' !== $fb_shortcode['type'] || is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && 'reviews' === $fb_shortcode['type'] ) {
697
- if ( ! empty( $feed_data->data ) ) {
698
- $this->fts_facebook_loadmore( $atts, $feed_data, $fb_type, $fb_shortcode, sanitize_key( $_REQUEST['fts_dynamic_name'] ) );
699
- }
700
- }
701
-
702
- echo '</div>'; // closing main div for fb photos, groups etc
703
- // only show this script if the height option is set to a number.
704
- if ( 'auto' !== $fb_shortcode['height'] && ! empty( $fb_shortcode['height'] ) ) {
705
- echo '<script>';
706
- // this makes it so the page does not scroll if you reach the end of scroll bar or go back to top'.
707
- echo 'jQuery.fn.isolatedScrollFacebookFTS = function() {';
708
- echo 'this.bind("mousewheel DOMMouseScroll", function (e) {';
709
- echo 'var delta = e.wheelDelta || (e.originalEvent && e.originalEvent.wheelDelta) || -e.detail,';
710
- echo 'bottomOverflow = this.scrollTop + jQuery(this).outerHeight() - this.scrollHeight >= 0,';
711
- echo 'topOverflow = this.scrollTop <= 0;';
712
- echo 'if ((delta < 0 && bottomOverflow) || (delta > 0 && topOverflow)) {';
713
- echo 'e.preventDefault();';
714
- echo '}';
715
- echo '});';
716
- echo 'return this;';
717
- echo '};';
718
- echo 'jQuery(".fts-fb-scrollable").isolatedScrollFacebookFTS();';
719
- echo '</script>';
720
- } //end $fb_shortcode['height'] !== 'auto' && empty($fb_shortcode['height']) == NULL
721
- // Make sure it's not ajaxing.
722
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
723
- echo '<div class="fts-clear"></div><div id="fb-root"></div>';
724
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'reviews' !== $fb_shortcode['type'] || is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && 'reviews' === $fb_shortcode['type'] ) {
725
- if ( 'button' === $fb_shortcode['loadmore'] ) {
726
-
727
- echo '<div class="fts-fb-load-more-wrapper">';
728
- echo '<div id="loadMore_' . esc_attr( $_REQUEST['fts_dynamic_name'] ) . '" style="';
729
- if ( isset( $fb_shortcode['loadmore_btn_maxwidth'] ) && '' !== $fb_shortcode['loadmore_btn_maxwidth'] ) {
730
- echo 'max-width:' . esc_attr( $fb_shortcode['loadmore_btn_maxwidth'] ) . ';';
731
- }
732
- $loadmore_btn_margin = isset( $fb_shortcode['loadmore_btn_margin'] ) ? $fb_shortcode['loadmore_btn_margin'] : '20px';
733
- echo 'margin:' . esc_attr( $loadmore_btn_margin ) . ' auto ' . esc_attr( $loadmore_btn_margin ) . '" class="fts-fb-load-more">' . esc_html( $fb_load_more_text ) . '</div>';
734
- echo '</div>';
735
- }
736
- }
737
- }//End Check
738
-
739
- // Checks for sliders.
740
- if (
741
- isset( $fb_shortcode['slider_controls'] ) && 'dots_below_feed' === $fb_shortcode['slider_controls'] ||
742
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
743
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
744
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
745
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
746
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_below_feed' === $fb_shortcode['slider_controls'] ||
747
- isset( $fb_shortcode['slider_controls'] ) && 'numbers_below_feed' === $fb_shortcode['slider_controls']
748
- ) {
749
-
750
- // Slider Dots Wrapper.
751
- if (
752
- isset( $fb_shortcode['slider_controls'] ) && 'dots_below_feed' === $fb_shortcode['slider_controls'] ||
753
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
754
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
755
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls']
756
- ) {
757
- if ( isset( $fb_shortcode['slider_controls_width'] ) && 'carousel' !== $fb_shortcode['scrollhorz_or_carousel'] ) {
758
- $max_width_set = isset( $fb_shortcode['image_width'] ) && '' !== $fb_shortcode['image_width'] && 'carousel' !== $fb_shortcode['scrollhorz_or_carousel'] ? $fb_shortcode['image_width'] : '100%';
759
- } else {
760
- $max_width_set = isset( $fb_shortcode['slider_controls_width'] ) && '' !== $fb_shortcode['slider_controls_width'] && 'carousel' === $fb_shortcode['scrollhorz_or_carousel'] ? $fb_shortcode['slider_controls_width'] : '100%';
761
- }
762
-
763
- echo '<div class="fts-slider-icons-center" style="margin:auto; width:100%;max-width:' . esc_attr( $max_width_set ) . ';background:' . esc_attr( $fts_controls_bar_color ) . ';color:' . esc_attr( $fts_controls_text_color ) . '"><div class="fts-pager-option fts-custom-pager-' . esc_attr( $fts_dynamic_class_name ) . '"></div></div>';
764
- }
765
-
766
- // Slider Arrow and Numbers Wrapper.
767
- if (
768
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
769
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
770
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
771
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
772
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_below_feed' === $fb_shortcode['slider_controls'] ||
773
- isset( $fb_shortcode['slider_controls'] ) && 'numbers_below_feed' === $fb_shortcode['slider_controls']
774
- ) {
775
- echo '<div class="fts-slider-center" style="margin:auto; width:100%; max-width:' . esc_attr( $max_width_set ) . ';background:' . esc_attr( $fts_controls_bar_color ) . ';color:' . esc_attr( $fts_controls_text_color ) . '">';
776
- }
777
-
778
- // Previous Arrow.
779
- if (
780
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
781
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
782
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
783
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_below_feed' === $fb_shortcode['slider_controls']
784
- ) {
785
- echo '<span class="fts-prevControl-icon fts-prevControl-' . esc_attr( $fts_dynamic_class_name ) . '"></span>';
786
- }
787
- // Numbers.
788
- if (
789
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
790
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
791
- isset( $fb_shortcode['slider_controls'] ) && 'numbers_below_feed' === $fb_shortcode['slider_controls'] ||
792
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_below_feed' === $fb_shortcode['slider_controls']
793
- ) {
794
- echo '<span id="fts-custom-caption-' . esc_attr( $fts_dynamic_class_name ) . '" class="fts-custom-caption" ></span>';
795
- }
796
- // Next Arrow.
797
- if (
798
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
799
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
800
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
801
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_below_feed' === $fb_shortcode['slider_controls']
802
- ) {
803
- echo '<span class="fts-nextControl-icon fts-nextControl-' . esc_attr( $fts_dynamic_class_name ) . '"></span>';
804
- }
805
-
806
- // Slider Arrow and Numbers Wrapper.
807
- if (
808
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
809
- isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
810
- isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
811
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
812
- isset( $fb_shortcode['slider_controls'] ) && 'arrows_below_feed' === $fb_shortcode['slider_controls'] ||
813
- isset( $fb_shortcode['slider_controls'] ) && 'numbers_below_feed' === $fb_shortcode['slider_controls']
814
- ) {
815
- echo '</div>';
816
- }
817
- }
818
-
819
- unset( $_REQUEST['next_url'] );
820
-
821
- // ******************
822
- // SOCIAL BUTTON
823
- // ******************
824
- if ( ! $fts_count_ids >= 1 ) {
825
- $this->fb_social_btn_placement( $fb_shortcode, $access_token, 'fb-like-below' );
826
- }
827
-
828
- return ob_get_clean();
829
- }
830
-
831
- /**
832
- * Get FTS Dnamic Class Name
833
- *
834
- * @return string
835
- * @since 1.9.6
836
- */
837
- public function get_fts_dynamic_class_name() {
838
- $fts_dynamic_class_name = '';
839
- if ( isset( $_REQUEST['fts_dynamic_name'] ) ) {
840
- $fts_dynamic_class_name = 'feed_dynamic_class' . sanitize_key( $_REQUEST['fts_dynamic_name'] );
841
- }
842
- return $fts_dynamic_class_name;
843
- }
844
-
845
- /**
846
- * FTS Facebook Location
847
- *
848
- * Facebook Post Location.
849
- *
850
- * @param null $fb_type What kind of facebook feed it is.
851
- * @param string $location The location of the photo or video.
852
- * @since 1.9.6
853
- */
854
- public function fts_facebook_location( $fb_type = null, $location ) {
855
- switch ( $fb_type ) {
856
- case 'app':
857
- case 'cover':
858
- case 'profile':
859
- case 'mobile':
860
- case 'wall':
861
- case 'normal':
862
- case 'album':
863
- echo '<div class="fts-fb-location">' . esc_html( $location ) . '</div>';
864
- }
865
- }
866
-
867
- /**
868
- * FTS Facebook Post Photo
869
- *
870
- * @param string $fb_link The link to post.
871
- * @param string $fb_shortcode The shortcode.
872
- * @param string $photo_from Who it's from.
873
- * @param string $photo_source The source url.
874
- * @since 1.9.6
875
- */
876
- public function fts_facebook_post_photo( $fb_link, $fb_shortcode, $photo_from, $photo_source ) {
877
- if ( 'album_photos' === $fb_shortcode['type'] || 'albums' === $fb_shortcode['type'] ) {
878
- echo '<a href="' . esc_url( $fb_link ) . '" target="_blank" class="fts-jal-fb-picture album-photo-fts" style="width:' . esc_attr( $fb_shortcode['image_width'] . ';height:' . $fb_shortcode['image_height'] ) . ';';
879
- if ( 'albums' === $fb_shortcode['type'] ) {
880
- echo 'background-image:url(' . esc_url( 'https://graph.facebook.com/' . $photo_source . '/picture' ) . ');">';
881
- } else {
882
- echo 'background-image:url(' . esc_url( $photo_source ) . ');">';
883
- }
884
- echo '</a>';
885
- } else {
886
- $fb_shortcode_popup = isset( $fb_shortcode['popup'] ) ? $fb_shortcode['popup'] : '';
887
- if ( 'yes' === $fb_shortcode_popup && 'javascript:;' !== $fb_link ) {
888
- echo '<a href="' . esc_url( $photo_source ) . '" target="_blank" class="fts-facebook-link-target fts-jal-fb-picture fts-fb-large-photo"><img border="0" alt="' . esc_html( $photo_from ) . '" src="' . esc_url( $photo_source ) . '"/></a>';
889
-
890
- } else {
891
- echo '<a href="' . esc_url( $fb_link ) . '" target="_blank" class="fts-jal-fb-picture"><img border="0" alt="' . esc_html( $photo_from ) . '" src="' . esc_url( $photo_source ) . '"/></a>';
892
- }
893
- }
894
- }
895
-
896
- /**
897
- * FTS Facebook Post Name
898
- *
899
- * @param string $fb_link The post link.
900
- * @param string $fb_name The facebook name.
901
- * @param string $fb_type The type of feed.
902
- * @param null $fb_post_id The facebook post ID.
903
- * @since 1.9.6
904
- */
905
- public function fts_facebook_post_name( $fb_link, $fb_name, $fb_type, $fb_post_id = null ) {
906
- switch ( $fb_type ) {
907
- case 'video':
908
- echo '<a href="' . esc_url( $fb_link ) . '" target="_blank" class="fts-jal-fb-name fb-id' . esc_attr( $fb_post_id ) . '">' . wp_kses(
909
- $this->fts_facebook_tag_filter( $fb_name ),
910
- array(
911
- 'a' => array(
912
- 'href' => array(),
913
- 'title' => array(),
914
- ),
915
- 'br' => array(),
916
- 'em' => array(),
917
- 'strong' => array(),
918
- 'small' => array(),
919
- )
920
- ) . '</a>';
921
- break;
922
- default:
923
- $fb_name = $this->fts_facebook_tag_filter( $fb_name );
924
- echo '<a href="' . esc_url( $fb_link ) . '" target="_blank" class="fts-jal-fb-name">' . wp_kses(
925
- $this->fts_facebook_tag_filter( $fb_name ),
926
- array(
927
- 'a' => array(
928
- 'href' => array(),
929
- 'title' => array(),
930
- ),
931
- 'br' => array(),
932
- 'em' => array(),
933
- 'strong' => array(),
934
- 'small' => array(),
935
- )
936
- ) . '</a>';
937
- break;
938
- }
939
- }
940
-
941
- /**
942
- * FTS Facebook Post Description
943
- *
944
- * @param string $fb_description The post description.
945
- * @param string $fb_shortcode The shortcode.
946
- * @param string $fb_type The type of feed.
947
- * @param null $fb_post_id The post ID.
948
- * @param null $fb_by The post by.
949
- * @since 1.9.6
950
- */
951
- public function fts_facebook_post_desc( $fb_description, $fb_shortcode, $fb_type, $fb_post_id = null, $fb_by = null ) {
952
- $trunacate_words = new \ FeedThemSocialTruncateHTML();
953
- switch ( $fb_type ) {
954
- case 'video':
955
- $fb_description = $this->fts_facebook_tag_filter( $fb_description );
956
- echo '<div class="fts-jal-fb-description fb-id' . esc_attr( $fb_post_id ) . '">' . wp_kses(
957
- $fb_description,
958
- array(
959
- 'a' => array(
960
- 'href' => array(),
961
- 'title' => array(),
962
- ),
963
- 'br' => array(),
964
- 'em' => array(),
965
- 'strong' => array(),
966
- 'small' => array(),
967
- )
968
- ) . '</div>';
969
- break;
970
- case 'photo':
971
- if ( 'album_photos' === $fb_shortcode['type'] ) {
972
- if ( array_key_exists( 'words', $fb_shortcode ) ) {
973
- $more = isset( $more ) ? $more : '';
974
- $trimmed_content = $trunacate_words->fts_custom_trim_words( $fb_description, $fb_shortcode['words'], $more );
975
- echo '<div class="fts-jal-fb-description fts-non-popup-text">' . wp_kses(
976
- $trimmed_content,
977
- array(
978
- 'a' => array(
979
- 'href' => array(),
980
- 'title' => array(),
981
- ),
982
- 'br' => array(),
983
- 'em' => array(),
984
- 'strong' => array(),
985
- 'small' => array(),
986
- )
987
- ) . '</div>';
988
- // Here we display the full description in the popup.
989
- if ( 'yes' === $fb_shortcode['popup'] || 'yes' === $fb_shortcode['video_album'] ) {
990
- echo '<div class="fts-jal-fb-description fts-jal-fb-description-popup" style="display: none;">' . wp_kses(
991
- nl2br( $fb_description ),
992
- array(
993
- 'a' => array(
994
- 'href' => array(),
995
- 'title' => array(),
996
- ),
997
- 'br' => array(),
998
- 'em' => array(),
999
- 'strong' => array(),
1000
- 'small' => array(),
1001
- )
1002
- ) . '</div>';
1003
- }
1004
- } elseif ( isset( $fb_shortcode['words'] ) && '0' !== $fb_shortcode['words'] ) {
1005
- $fb_description = $this->fts_facebook_tag_filter( $fb_description );
1006
- echo '<div class="fts-jal-fb-description">' . wp_kses(
1007
- nl2br( $fb_description ),
1008
- array(
1009
- 'a' => array(
1010
- 'href' => array(),
1011
- 'title' => array(),
1012
- ),
1013
- 'br' => array(),
1014
- 'em' => array(),
1015
- 'strong' => array(),
1016
- 'small' => array(),
1017
- )
1018
- ) . '</div>';
1019
- }
1020
- }
1021
- break;
1022
- case 'albums':
1023
- if ( 'albums' === $fb_shortcode['type'] ) {
1024
- if ( array_key_exists( 'words', $fb_shortcode ) ) {
1025
- $more = isset( $more ) ? $more : '';
1026
- $trimmed_content = $trunacate_words->fts_custom_trim_words( $fb_description, $fb_shortcode['words'], $more );
1027
- echo '<div class="fts-jal-fb-description">' . wp_kses(
1028
- $trimmed_content,
1029
- array(
1030
- 'a' => array(
1031
- 'href' => array(),
1032
- 'title' => array(),
1033
- ),
1034
- 'br' => array(),
1035
- 'em' => array(),
1036
- 'strong' => array(),
1037
- 'small' => array(),
1038
- )
1039
- ) . '</div>';
1040
- } else {
1041
- $fb_description = $this->fts_facebook_tag_filter( $fb_description );
1042
- echo '<div class="fts-jal-fb-description">' . wp_kses(
1043
- nl2br( $fb_description ),
1044
- array(
1045
- 'a' => array(
1046
- 'href' => array(),
1047
- 'title' => array(),
1048
- ),
1049
- 'br' => array(),
1050
- 'em' => array(),
1051
- 'strong' => array(),
1052
- 'small' => array(),
1053
- )
1054
- ) . '</div>';
1055
- }
1056
- } else {
1057
- // Do for Default feeds or the video gallery feed.
1058
- if ( isset( $fb_shortcode['words'] ) && '0' !== $fb_shortcode['words'] ) {
1059
- $fb_description = $this->fts_facebook_tag_filter( $fb_description );
1060
- if ( is_array( $fb_shortcode ) && array_key_exists( 'words', $fb_shortcode ) && '0' !== $fb_shortcode['words'] ) {
1061
- $more = isset( $more ) ? $more : '';
1062
- $trimmed_content = $trunacate_words->fts_custom_trim_words( $fb_description, $fb_shortcode['words'], $more );
1063
- echo '<div class="fts-jal-fb-description">' . wp_kses(
1064
- $trimmed_content,
1065
- array(
1066
- 'a' => array(
1067
- 'href' => array(),
1068
- 'title' => array(),
1069
- ),
1070
- 'br' => array(),
1071
- 'em' => array(),
1072
- 'strong' => array(),
1073
- 'small' => array(),
1074
- )
1075
- ) . '</div>';
1076
- } else {
1077
- echo '<div class="fts-jal-fb-description">';
1078
- echo wp_kses(
1079
- nl2br( $fb_description ),
1080
- array(
1081
- 'a' => array(
1082
- 'href' => array(),
1083
- 'title' => array(),
1084
- ),
1085
- 'br' => array(),
1086
- 'em' => array(),
1087
- 'strong' => array(),
1088
- 'small' => array(),
1089
- )
1090
- );
1091
- echo '</div>';
1092
- }
1093
- if ( ! empty( $fb_link ) ) {
1094
- echo '<div>By: <a href="' . esc_url( $fb_link ) . '">' . esc_html( $fb_by ) . '<a/></div>';
1095
- }
1096
- }
1097
- }
1098
- break;
1099
- default:
1100
- include_once ABSPATH . 'wp-admin/includes/plugin.php';
1101
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) || is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
1102
- // here we trim the words for the links description text... for the premium version. The $fb_shortcode['words'] string actually comes from the javascript.
1103
- if ( is_array( $fb_shortcode ) && array_key_exists( 'words', $fb_shortcode ) ) {
1104
- $more = isset( $more ) ? $more : '';
1105
- $trimmed_content = $trunacate_words->fts_custom_trim_words( $fb_description, $fb_shortcode['words'], $more );
1106
- echo '<div class="jal-fb-description">' . wp_kses(
1107
- $trimmed_content,
1108
- array(
1109
- 'a' => array(
1110
- 'href' => array(),
1111
- 'title' => array(),
1112
- ),
1113
- 'br' => array(),
1114
- 'em' => array(),
1115
- 'strong' => array(),
1116
- 'small' => array(),
1117
- )
1118
- ) . '</div>';
1119
- } elseif ( is_array( $fb_shortcode ) && array_key_exists( 'words', $fb_shortcode ) && '0' !== $fb_shortcode['words'] ) {
1120
- $fb_description = $this->fts_facebook_tag_filter( $fb_description );
1121
- echo '<div class="jal-fb-description">' . wp_kses(
1122
- nl2br( $fb_description ),
1123
- array(
1124
- 'a' => array(
1125
- 'href' => array(),
1126
- 'title' => array(),
1127
- ),
1128
- 'br' => array(),
1129
- 'em' => array(),
1130
- 'strong' => array(),
1131
- 'small' => array(),
1132
- )
1133
- ) . '</div>';
1134
- }
1135
- } else {
1136
- // if the premium plugin is not active we will just show the regular full description.
1137
- $fb_description = $this->fts_facebook_tag_filter( $fb_description );
1138
- echo '<div class="jal-fb-description">' . wp_kses(
1139
- nl2br( $fb_description ),
1140
- array(
1141
- 'a' => array(
1142
- 'href' => array(),
1143
- 'title' => array(),
1144
- ),
1145
- 'br' => array(),
1146
- 'em' => array(),
1147
- 'strong' => array(),
1148
- 'small' => array(),
1149
- )
1150
- ) . '</div>';
1151
- }
1152
- }
1153
- }
1154
-
1155
- /**
1156
- * FTS Facebook Post Caption
1157
- *
1158
- * @param string $fb_caption The post caption.
1159
- * @param string $fb_shortcode The shortcode.
1160
- * @param string $fb_type The type of feed.
1161
- * @param null $fb_post_id The post ID.
1162
- * @since 1.9.6
1163
- */
1164
- public function fts_facebook_post_cap( $fb_caption, $fb_shortcode, $fb_type, $fb_post_id = null ) {
1165
- $trunacate_words = new \ FeedThemSocialTruncateHTML();
1166
- switch ( $fb_type ) {
1167
- case 'video':
1168
- $fb_caption = $this->fts_facebook_tag_filter( str_replace( 'www.', '', $fb_caption ) );
1169
- echo '<div class="fts-jal-fb-caption fb-id' . esc_attr( $fb_post_id ) . '">' . wp_kses(
1170
- $fb_caption,
1171
- array(
1172
- 'a' => array(
1173
- 'href' => array(),
1174
- 'title' => array(),
1175
- ),
1176
- 'br' => array(),
1177
- 'em' => array(),
1178
- 'strong' => array(),
1179
- 'small' => array(),
1180
- )
1181
- ) . '</div>';
1182
- break;
1183
- default:
1184
- include_once ABSPATH . 'wp-admin/includes/plugin.php';
1185
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) || is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
1186
- // here we trim the words for the links description text... for the premium version. The $fb_shortcode['words'] string actually comes from the javascript.
1187
- if ( array_key_exists( 'words', $fb_shortcode ) ) {
1188
- $more = isset( $more ) ? $more : '';
1189
- $trimmed_content = $trunacate_words->fts_custom_trim_words( $fb_caption, $fb_shortcode['words'], $more );
1190
- echo '<div class="jal-fb-caption">' . wp_kses(
1191
- $trimmed_content,
1192
- array(
1193
- 'a' => array(
1194
- 'href' => array(),
1195
- 'title' => array(),
1196
- ),
1197
- 'br' => array(),
1198
- 'em' => array(),
1199
- 'strong' => array(),
1200
- 'small' => array(),
1201
- )
1202
- ) . '</div>';
1203
- } else {
1204
- $fb_caption = $this->fts_facebook_tag_filter( $fb_caption );
1205
- echo '<div class="jal-fb-caption">' . wp_kses(
1206
- nl2br( $fb_caption ),
1207
- array(
1208
- 'a' => array(
1209
- 'href' => array(),
1210
- 'title' => array(),
1211
- ),
1212
- 'br' => array(),
1213
- 'em' => array(),
1214
- 'strong' => array(),
1215
- 'small' => array(),
1216
- )
1217
- ) . '</div>';
1218
- }
1219
- } else {
1220
- // if the premium plugin is not active we will just show the regular full description.
1221
- $fb_caption = $this->fts_facebook_tag_filter( $fb_caption );
1222
- echo '<div class="jal-fb-caption">' . wp_kses(
1223
- nl2br( $fb_caption ),
1224
- array(
1225
- 'a' => array(
1226
- 'href' => array(),
1227
- 'title' => array(),
1228
- ),
1229
- 'br' => array(),
1230
- 'em' => array(),
1231
- 'strong' => array(),
1232
- 'small' => array(),
1233
- )
1234
- ) . '</div>';
1235
- }
1236
- }
1237
- }
1238
-
1239
- /**
1240
- * Get Likes Shares Comments
1241
- *
1242
- * Get the total count for all.
1243
- *
1244
- * @param string $response_post_array The array from facebook.
1245
- * @param string $post_data_key The post data Key.
1246
- * @param string $fb_post_share_count The post Share Count.
1247
- * @return array
1248
- * @since 1.9.6
1249
- */
1250
- public function get_likes_shares_comments( $response_post_array, $post_data_key, $fb_post_share_count ) {
1251
- $lsc_array = array();
1252
- // Get Likes & Comments.
1253
- if ( $response_post_array ) {
1254
- if ( isset( $response_post_array[ $post_data_key . '_likes' ] ) ) {
1255
- $like_count_data = json_decode( $response_post_array[ $post_data_key . '_likes' ] );
1256
-
1257
- // Like Count.
1258
- if ( ! empty( $like_count_data->summary->total_count ) ) {
1259
- $fb_post_like_count = $like_count_data->summary->total_count;
1260
- } else {
1261
- $fb_post_like_count = 0;
1262
- }
1263
- if ( 0 === $fb_post_like_count ) {
1264
- $lsc_array['likes'] = '';
1265
- }
1266
- if ( 1 === $fb_post_like_count ) {
1267
- $lsc_array['likes'] = "<i class='icon-thumbs-up'></i> 1";
1268
- }
1269
- if ( $fb_post_like_count > '1' ) {
1270
- $lsc_array['likes'] = "<i class='icon-thumbs-up'></i> " . esc_html( $fb_post_like_count );
1271
- }
1272
- }
1273
- if ( isset( $response_post_array[ $post_data_key . '_comments' ] ) ) {
1274
- $comment_count_data = json_decode( $response_post_array[ $post_data_key . '_comments' ] );
1275
-
1276
- if ( ! empty( $comment_count_data->summary->total_count ) ) {
1277
- $fb_post_comments_count = $comment_count_data->summary->total_count;
1278
- } else {
1279
- $fb_post_comments_count = 0;
1280
- }
1281
- if ( 0 === $fb_post_comments_count ) {
1282
- $lsc_array['comments'] = '';
1283
- }
1284
- if ( 1 === $fb_post_comments_count ) {
1285
- $lsc_array['comments'] = "<i class='icon-comments'></i> 1";
1286
- $lsc_array['comments_thread'] = $comment_count_data;
1287
-
1288
- }
1289
- if ( $fb_post_comments_count > '1' ) {
1290
- $lsc_array['comments'] = "<i class='icon-comments'></i> " . $fb_post_comments_count;
1291
- $lsc_array['comments_thread'] = $comment_count_data;
1292
- }
1293
- }
1294
- }
1295
- // Shares Count.
1296
- if ( 0 === $fb_post_share_count || ! $fb_post_share_count ) {
1297
- $lsc_array['shares'] = '';
1298
- }
1299
- if ( 1 === $fb_post_share_count ) {
1300
- $lsc_array['shares'] = "<i class='icon-file'></i> 1";
1301
- }
1302
- if ( $fb_post_share_count > '1' ) {
1303
- $lsc_array['shares'] = "<i class='icon-file'></i> " . $fb_post_share_count;
1304
- }
1305
- return $lsc_array;
1306
- }
1307
-
1308
-
1309
- /**
1310
- * FTS Facebook Post See More
1311
- *
1312
- * Generate See More Button.
1313
- *
1314
- * @param string $fb_link The facebook link.
1315
- * @param string $lcs_array The lcs array.
1316
- * @param string $fb_type The type of feed.
1317
- * @param null $fb_post_id The post id.
1318
- * @param string $fb_shortcode The shortcode.
1319
- * @param null $fb_post_user_id The user id.
1320
- * @param null $fb_post_single_id The single post id.
1321
- * @param null $single_event_id The event id.
1322
- * @param string $post_data The post data.
1323
- * @since 1.9.6
1324
- */
1325
- public function fts_facebook_post_see_more( $fb_link, $lcs_array, $fb_type, $fb_post_id = null, $fb_shortcode, $fb_post_user_id = null, $fb_post_single_id = null, $single_event_id = null, $post_data ) {
1326
-
1327
- $description = isset( $post_data->message ) ? $post_data->message : '';
1328
- // SHOW THE FB FEED PRINT_R
1329
- // echo'<pre>';.
1330
- // print_r();.
1331
- // echo'</pre>';.
1332
- $view_on_facebook = get_option( 'fb_view_on_fb_fts' ) ? get_option( 'fb_view_on_fb_fts' ) : __( 'View on Facebook', 'feed-them-social' );
1333
- $share_this = new feed_them_social_functions();
1334
- switch ( $fb_type ) {
1335
- case 'events':
1336
- $single_event_id = 'https://www.facebook.com/events/' . $single_event_id;
1337
- echo '<div class="fts-likes-shares-etc-wrap">';
1338
- echo $share_this->fts_share_option( $single_event_id, $description );
1339
- echo '<a href="' . esc_attr( $single_event_id ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html( $view_on_facebook ) . '</a></div>';
1340
- break;
1341
- case 'photo':
1342
- if ( ! empty( $fb_link ) ) {
1343
- echo '<div class="fts-likes-shares-etc-wrap">';
1344
- echo $share_this->fts_share_option( $fb_link, $description );
1345
- echo '<a href="' . esc_url( $fb_link ) . '" target="_blank" class="fts-jal-fb-see-more">';
1346
- } else {
1347
- // exception for videos.
1348
- $single_video_id = 'https://www.facebook.com/' . $fb_post_id;
1349
- echo '<div class="fts-likes-shares-etc-wrap">';
1350
- echo $share_this->fts_share_option( $single_video_id, $description );
1351
- echo '<a href="' . esc_url( $single_video_id ) . '" target="_blank" class="fts-jal-fb-see-more">';
1352
- }
1353
- if ( 'album_photos' === $fb_shortcode['type'] && 'yes' === $fb_shortcode['hide_date_likes_comments'] ) {
1354
-
1355
- echo '<div class="hide-date-likes-comments-etc">' . wp_kses(
1356
- $lcs_array['likes'] . ' ' . $lcs_array['comments'] . ' ' . $lcs_array['shares'],
1357
- array(
1358
- 'a' => array(
1359
- 'href' => array(),
1360
- 'title' => array(),
1361
- ),
1362
- 'i' => array(
1363
- 'class' => array(),
1364
- ),
1365
- )
1366
- ) . ' &nbsp;&nbsp;</div>';
1367
- } else {
1368
-
1369
- echo '' . wp_kses(
1370
- $lcs_array['likes'] . ' ' . $lcs_array['comments'] . ' ' . $lcs_array['shares'],
1371
- array(
1372
- 'a' => array(
1373
- 'href' => array(),
1374
- 'title' => array(),
1375
- ),
1376
- 'i' => array(
1377
- 'class' => array(),
1378
- ),
1379
- )
1380
- ) . ' &nbsp;&nbsp;';
1381
- }
1382
- echo '&nbsp;' . esc_html( $view_on_facebook ) . '</a></div>';
1383
- break;
1384
- case 'app':
1385
- case 'cover':
1386
- case 'profile':
1387
- case 'mobile':
1388
- case 'wall':
1389
- case 'normal':
1390
- case 'albums':
1391
- $url_parsed = parse_url( $fb_link, PHP_URL_QUERY );
1392
- $params = parse_str( $url_parsed, $params );
1393
- $new_album_url = str_replace( 'album.php?fbid=' . $params['fbid'] . '&id=' . $params['id'] . '&aid=' . $params['aid'], 'media/set/?set=a.' . $params['fbid'] . '.' . $params['aid'] . '.' . $params['id'], $fb_link );
1394
-
1395
- echo '<div class="fts-likes-shares-etc-wrap">';
1396
- echo $share_this->fts_share_option( $new_album_url, $description );
1397
- echo '<a href="' . esc_url( $new_album_url ) . '" target="_blank" class="fts-jal-fb-see-more">';
1398
- if ( 'albums' === $fb_shortcode['type'] && 'yes' === $fb_shortcode['hide_date_likes_comments'] ) {
1399
- } else {
1400
-
1401
- echo '' . wp_kses(
1402
- $lcs_array['likes'] . ' ' . $lcs_array['comments'],
1403
- array(
1404
- 'a' => array(
1405
- 'href' => array(),
1406
- 'title' => array(),
1407
- ),
1408
- 'i' => array(
1409
- 'class' => array(),
1410
- ),
1411
- )
1412
- ) . ' &nbsp;&nbsp;';
1413
- }
1414
- echo '&nbsp;' . esc_html( $view_on_facebook ) . '</a></div>';
1415
- break;
1416
- default:
1417
- if ( 'yes' !== get_option( 'fb_reviews_remove_see_reviews_link' ) ) {
1418
- if ( 'reviews' === $fb_shortcode['type'] && is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) ) {
1419
- $fb_reviews_see_more_reviews_language = get_option( 'fb_reviews_see_more_reviews_language' ) ? get_option( 'fb_reviews_see_more_reviews_language' ) : 'See More Reviews';
1420
-
1421
- $hide_see_more = isset( $fb_shortcode['hide_see_more_reviews_link'] ) ? $fb_shortcode['hide_see_more_reviews_link'] : 'yes';
1422
- if ( 'yes' !== $hide_see_more ) {
1423
- echo ' <a href="' . esc_url( 'https://www.facebook.com/' . $fb_shortcode['id'] . '/reviews' ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html( $fb_reviews_see_more_reviews_language, 'feed-them-social' ) . '</a>';
1424
- }
1425
- } else {
1426
- $post_single_id = 'https://www.facebook.com/' . $fb_post_user_id . '/posts/' . $fb_post_single_id;
1427
- echo '<div class="fts-likes-shares-etc-wrap">';
1428
- echo $share_this->fts_share_option( $post_single_id, $description );
1429
- echo '<a href="' . esc_url( $post_single_id ) . '" target="_blank" class="fts-jal-fb-see-more">';
1430
-
1431
- echo '' . wp_kses(
1432
- $lcs_array['likes'] . ' ' . $lcs_array['comments'],
1433
- array(
1434
- 'a' => array(
1435
- 'href' => array(),
1436
- 'title' => array(),
1437
- ),
1438
- 'i' => array(
1439
- 'class' => array(),
1440
- ),
1441
- )
1442
- ) . ' &nbsp;&nbsp;&nbsp;' . esc_html( $view_on_facebook ) . '</a></div>';
1443
- }
1444
- }
1445
- break;
1446
- }
1447
- }
1448
-
1449
- /**
1450
- * Get Access Token
1451
- *
1452
- * @return mixed
1453
- * @since 1.9.6
1454
- */
1455
- public function get_access_token() {
1456
- // The API Access Token.
1457
- // $custom_access_token = get_option('fts_facebook_custom_api_token');
1458
- // if (!empty($custom_access_token)) {
1459
- // return $access_token;
1460
- // } else {
1461
- // Randomizer
1462
- // $values = array(
1463
- // '431287540548931|4A23YYIFqhd-gpz_E4Fy6U_Seo0',
1464
- // '1748446362151826|epVUmLiKT8QhLN63iRvvXXHwxqk',
1465
- // '1875381106044241|KmWz3mtzGye0M5HTdX0SK7rqpIU',
1466
- // '754106341419549|AMruxCJ_ly8825VXeLhBKo_kOfs',
1467
- // '438563519819257|1GJ8GLl1AQ7ZTvXV_Xpok_QpH6s',
1468
- // '753693994788276|xm_PXoNRWW8WPQdcQArRpBgWn5Q',
1469
- // '644818402385988|sABEvG0QiOaJRlNLC2NphfQLlfg',
1470
- // '292500071162951|9MA-kzWVs6HTEybpdxKjgF_gqeo',
1471
- // '263710677420086|Jpui2CFig7RbtdHaHPN_fiEa77U',
1472
- // '1850081601881384|u2JcPCn7TH40MY5BwC-i4PMHGm8',
1473
- // );
1474
- // $access_token = $values[array_rand($values, 1)];.
1475
- return get_option( 'fts_facebook_custom_api_token' );
1476
- // }
1477
- }
1478
-
1479
- /**
1480
- * Get View Link
1481
- *
1482
- * @param string $fb_shortcode The facebook feed shortcode.
1483
- * @return string
1484
- * @since 1.9.6
1485
- */
1486
- public function get_view_link( $fb_shortcode ) {
1487
- switch ( $fb_shortcode['type'] ) {
1488
- case 'group':
1489
- $fts_view_fb_link = 'https://www.facebook.com/groups/' . $fb_shortcode['id'] . '/';
1490
- break;
1491
- case 'page':
1492
- $fts_view_fb_link = 'https://www.facebook.com/' . $fb_shortcode['id'] . '/';
1493
- break;
1494
- case 'event':
1495
- $fts_view_fb_link = 'https://www.facebook.com/events/' . $fb_shortcode['id'] . '/';
1496
- break;
1497
- case 'events':
1498
- $fts_view_fb_link = 'https://www.facebook.com/' . $fb_shortcode['id'] . '/events/';
1499
- break;
1500
- case 'albums':
1501
- $fts_view_fb_link = 'https://www.facebook.com/' . $fb_shortcode['id'] . '/photos_stream?tab=photos_albums';
1502
- break;
1503
- // album photos and videos album.
1504
- case 'album_photos':
1505
- $fts_view_fb_link = isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ? 'https://www.facebook.com/' . $fb_shortcode['id'] . '/videos/' : 'https://www.facebook.com/' . $fb_shortcode['id'] . '/photos_stream/';
1506
- break;
1507
- case 'hashtag':
1508
- $fts_view_fb_link = 'https://www.facebook.com/hashtag/' . $fb_shortcode['id'] . '/';
1509
- break;
1510
- case 'reviews':
1511
- $fts_view_fb_link = 'https://www.facebook.com/' . $fb_shortcode['id'] . '/reviews/';
1512
- break;
1513
- }
1514
- $fts_view_fb_link = isset( $fts_view_fb_link ) ? $fts_view_fb_link : '';
1515
- return $fts_view_fb_link;
1516
- }
1517
-
1518
- /**
1519
- * Get FB Cache Name
1520
- *
1521
- * @param string $fb_shortcode The facebook feed shortcode.
1522
- * @return string
1523
- * @since 1.9.6
1524
- */
1525
- public function get_fb_cache_name( $fb_shortcode ) {
1526
- // URL to get page info.
1527
- $r_count = substr_count( $fb_shortcode['id'], ',' );
1528
-
1529
- if ( $r_count >= 1 ) {
1530
- $result = preg_replace( '/[ ,]+/', '-', trim( $fb_shortcode['id'] ) );
1531
- $fb_shortcode['id'] = $result;
1532
- }
1533
-
1534
- switch ( $fb_shortcode['type'] ) {
1535
- case 'album_photos':
1536
- $fb_data_cache_name = 'fb_' . $fb_shortcode['type'] . '_' . $fb_shortcode['id'] . '_' . $fb_shortcode['album_id'] . '_num' . $fb_shortcode['posts'] . '';
1537
- break;
1538
- default:
1539
- $fb_data_cache_name = 'fb_' . $fb_shortcode['type'] . '_' . $fb_shortcode['id'] . '_num' . $fb_shortcode['posts'] . '';
1540
- break;
1541
- }
1542
- return $fb_data_cache_name;
1543
- }
1544
-
1545
- /**
1546
- * Get Language
1547
- *
1548
- * @return string
1549
- * @since 1.9.6
1550
- */
1551
- public function get_language() {
1552
- // this check is in place because we used this option and it failed for many people because we use wp get contents instead of curl.
1553
- // this can be removed in a future update and just keep the $language_option = get_option('fb_language', 'en_US');.
1554
- $language_option_check = get_option( 'fb_language' );
1555
- if ( isset( $language_option_check ) && 'Please Select Option' !== $language_option_check ) {
1556
- $language_option = get_option( 'fb_language', 'en_US' );
1557
- } else {
1558
- $language_option = 'en_US';
1559
- }
1560
- return ! empty( $language_option ) ? '&locale=' . $language_option : '';
1561
- }
1562
-
1563
- /**
1564
- * Get Facebook Overall Rating Response
1565
- *
1566
- * @param string $fb_shortcode The facebook feed shortcode.
1567
- * @param string $fb_cache_name The Cache Name.
1568
- * @param string $access_token The Access Token.
1569
- * @since 2.1.3
1570
- */
1571
- public function get_facebook_overall_rating_response( $fb_shortcode, $fb_cache_name, $access_token ) {
1572
-
1573
- // $mulit_data_rating = $this->fts_get_feed_json($mulit_data_rating);.
1574
- // Error Check
1575
- // $feed_data_rating_overall = json_decode($mulit_data['rating_data']);.
1576
- $fb_reviews_overall_rating_of_5_stars_text = get_option( 'fb_reviews_overall_rating_of_5_stars_text' );
1577
- $fb_reviews_overall_rating_of_5_stars_text = ! empty( $fb_reviews_overall_rating_of_5_stars_text ) ? ' ' . $fb_reviews_overall_rating_of_5_stars_text : ' of 5 stars';
1578
- $fb_reviews_overall_rating_reviews_text = get_option( 'fb_reviews_overall_rating_reviews_text' );
1579
- $fb_reviews_overall_rating_reviews_text = ! empty( $fb_reviews_overall_rating_reviews_text ) ? ' ' . $fb_reviews_overall_rating_reviews_text : ' reviews';
1580
- $fb_reviews_overall_rating_background_border_hide = get_option( 'fb_reviews_overall_rating_background_border_hide' );
1581
- $fb_reviews_overall_rating_background_border_hide = ! empty( $fb_reviews_overall_rating_background_border_hide ) && 'yes' === $fb_reviews_overall_rating_background_border_hide ? ' fts-review-details-master-wrap-no-background-or-border' : '';
1582
-
1583
- echo '<div class="fts-review-details-master-wrap' . esc_attr( $fb_reviews_overall_rating_background_border_hide ) . '"><i class="fts-review-star">' . esc_html( $feed_data_rating_overall->overall_star_rating ) . ' &#9733;</i>';
1584
- echo '<div class="fts-review-details-wrap" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"><div class="fts-review-details"><span itemprop="ratingValue">' . esc_html( $feed_data_rating_overall->overall_star_rating ) . '</span>' . esc_html( $fb_reviews_overall_rating_of_5_stars_text ) . '</div>';
1585
- echo '<div class="fts-review-details-count"><span itemprop="reviewCount">' . esc_html( $feed_data_rating_overall->rating_count ) . '</span>' . esc_html( $fb_reviews_overall_rating_reviews_text ) . '</div></div></div>';
1586
-
1587
- // $fb_cache_name = $fb_shortcode['id'] . $this->rand_string(10);
1588
- // Make sure it's not ajaxing
1589
- // if (!isset($_GET['load_more_ajaxing'])) {
1590
- // Create Cache
1591
- // $FTS_FB_OUTPUT = $this->fts_create_feed_cache($fb_cache_name, $feed_data_rating_overall);
1592
- // }.
1593
- }
1594
-
1595
-
1596
- /**
1597
- * Get Facebook Feed Response
1598
- *
1599
- * @param string $fb_shortcode The facebook shortcode.
1600
- * @param string $fb_cache_name FB cache name.
1601
- * @param string $access_token The Access Token.
1602
- * @param string $language Language.
1603
- * @return array|mixed
1604
- * @throws \Exception
1605
- * @since 1.9.6
1606
- */
1607
- public function get_facebook_feed_response( $fb_shortcode, $fb_cache_name, $access_token, $language ) {
1608
-
1609
- if ( is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
1610
- $fts_count_ids = substr_count( $fb_shortcode['id'], ',' );
1611
- } else {
1612
- $fts_count_ids = '';
1613
- }
1614
-
1615
- if ( false !== $this->fts_check_feed_cache_exists( $fb_cache_name ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
1616
- $response = $this->fts_get_feed_cache( $fb_cache_name );
1617
- } else {
1618
- // Page.
1619
- if ( 'page' === $fb_shortcode['type'] && 'page_only' === $fb_shortcode['posts_displayed'] ) {
1620
- $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=id,name,description&access_token=' . $access_token . $language . '' );
1621
-
1622
- if ( isset( $_REQUEST['next_url'] ) ) {
1623
- $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token=' . get_option( 'fts_facebook_custom_api_token' ), $_REQUEST['next_url'] );
1624
- }
1625
-
1626
- if ( ! $fts_count_ids >= 1 ) {
1627
- // We cannot add sanitize_text_field here on the $_REQUEST['next_url'] otherwise it will fail to load the contents from the facebook API.
1628
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/posts?fields=id,caption,attachments,created_time,description,from,icon,link,message,name,object_id,picture,full_picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1629
- } else {
1630
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/posts?ids=' . $fb_shortcode['id'] . '&fields=id,caption,attachments,created_time,description,from,icon,link,message,name,object_id,picture,full_picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1631
- }
1632
- } elseif (
1633
- // Albums.
1634
- 'albums' === $fb_shortcode['type'] ) {
1635
- $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=id,name,description,link&access_token=' . $access_token . $language . '' );
1636
- if ( isset( $_REQUEST['next_url'] ) ) {
1637
- $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token=' . get_option( 'fts_facebook_custom_api_token' ), $_REQUEST['next_url'] );
1638
- }
1639
- // Check If Ajax next URL needs to be used.
1640
- if ( ! $fts_count_ids >= 1 ) {
1641
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/albums?fields=id,photos,created_time,name,from,link,cover_photo,count,updated_time,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1642
- } else {
1643
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/albums?ids=' . $fb_shortcode['id'] . '&fields=id,photos,created_time,name,from,link,cover_photo,count,updated_time,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1644
- }
1645
-
1646
- // $mulit_data['feed_data'] = isset($_REQUEST['next_url']) ? esc_url_raw($_REQUEST['next_url']) : 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/albums?fields=id,created_time,name,from,link,cover_photo,count,updated_time,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '';
1647
- } elseif (
1648
- // Album Photos.
1649
- 'album_photos' === $fb_shortcode['type'] ) {
1650
- $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=id,name,description&access_token=' . $access_token . $language . '' );
1651
- if ( isset( $_REQUEST['next_url'] ) ) {
1652
- $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token=' . get_option( 'fts_facebook_custom_api_token' ), $_REQUEST['next_url'] );
1653
- }
1654
- // Check If Ajax next URL needs to be used
1655
- // The reason I did not create a whole new else if for the video album is because I did not want to duplicate all the code required to make the video because the videos gallery comes from the photo albums on facebook.
1656
- if ( isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
1657
- if ( ! $fts_count_ids >= 1 ) {
1658
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/videos?fields=id,created_time,description,from,icon,link,message,object_id,picture,place,source,to,type,format,embed_html&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1659
- } else {
1660
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/videos?ids=' . $fb_shortcode['id'] . '&fields=id,created_time,description,from,icon,link,message,object_id,picture,place,source,to,type,format,embed_html&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1661
- }
1662
- } elseif ( isset( $fb_shortcode['album_id'] ) && 'photo_stream' === $fb_shortcode['album_id'] ) {
1663
- if ( ! $fts_count_ids >= 1 ) {
1664
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/photos?fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,place,shares,source,status_type,story,to,type&type=uploaded&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1665
- } else {
1666
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/photos?ids=' . $fb_shortcode['id'] . '&fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,place,shares,source,status_type,story,to,type&type=uploaded&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1667
- }
1668
- } else {
1669
- if ( ! $fts_count_ids >= 1 ) {
1670
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['album_id'] . '/photos?fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1671
- } else {
1672
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/photos?ids=' . $fb_shortcode['album_id'] . '&fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1673
- }
1674
- }
1675
- } elseif ( 'reviews' === $fb_shortcode['type'] ) {
1676
-
1677
- // Reviews.
1678
- if ( is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) ) {
1679
- $fts_facebook_reviews = new FTS_Facebook_Reviews();
1680
- $mulit_data = $fts_facebook_reviews->review_connection( $fb_shortcode, $access_token, $language );
1681
-
1682
- $mulit_data['ratings_data'] = esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/?fields=overall_star_rating,rating_count&access_token=' . $access_token . '' );
1683
-
1684
- } else {
1685
- return 'Please Purchase and Activate the Feed Them Social Reviews plugin.';
1686
- exit;
1687
- }
1688
- } else {
1689
- $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=feed,id,name,description&access_token=' . $access_token . $language . '' );
1690
-
1691
- // Check If Ajax next URL needs to be used.
1692
- if ( ! $fts_count_ids >= 1 ) {
1693
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/feed?fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,full_picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1694
- } else {
1695
- $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/feed?ids=' . $fb_shortcode['id'] . '&fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,full_picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1696
- }
1697
- }
1698
- $response = $this->fts_get_feed_json( $mulit_data );
1699
-
1700
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
1701
- // Error Check.
1702
- $feed_data = json_decode( $response['feed_data'] );
1703
- $fts_error_check = new fts_error_handler();
1704
- $fts_error_check_complete = $fts_error_check->facebook_error_check( $fb_shortcode, $feed_data );
1705
- if ( is_array( $fts_error_check_complete ) && true === $fts_error_check_complete[0] ) {
1706
-
1707
- // If old Cache exists use it instead of showing an error.
1708
- if ( true === $this->fts_check_feed_cache_exists( $fb_cache_name, true ) ) {
1709
-
1710
- // If Current user is Admin and Cache exists for use then still show Admin the error for debugging purposes.
1711
- if ( current_user_can( 'administrator' ) ) {
1712
- echo wp_kses(
1713
- $fts_error_check_complete[1] . ' <em>**NOTE** This error is only shown to logged in Admins of this WordPress install</em>',
1714
- array(
1715
- 'a' => array(
1716
- 'href' => array(),
1717
- 'title' => array(),
1718
- ),
1719
- 'br' => array(),
1720
- 'em' => array(),
1721
- 'strong' => array(),
1722
- )
1723
- );
1724
- }
1725
-
1726
- // Return Cache because it exists in Database. Better than showing nothing right?
1727
- return $this->fts_get_feed_cache( $fb_cache_name, true );
1728
- }
1729
- // If User is Admin and no Old cache is saved in database for use.
1730
- if ( current_user_can( 'administrator' ) ) {
1731
- return array( false, $fts_error_check_complete[1] );
1732
- }
1733
- }
1734
- }
1735
-
1736
- // Make sure it's not ajaxing.
1737
- if ( ! empty( $response['feed_data'] ) ) {
1738
- // Create Cache.
1739
- $this->fts_create_feed_cache( $fb_cache_name, $response );
1740
- }
1741
- } // end main else.
1742
-
1743
- return $response;
1744
-
1745
- }
1746
-
1747
-
1748
- /**
1749
- * Get Facebook Feed Dynamic Name
1750
- *
1751
- * @param string $fb_shortcode The facebook feed shortcode.
1752
- * @return mixed
1753
- * @since 1.9.6
1754
- */
1755
- public function get_facebook_feed_dynamic_name( $fb_shortcode ) {
1756
-
1757
- return $_REQUEST['fts_dynamic_name'] = sanitize_key( $this->fts_rand_string( 10 ) . '_' . $fb_shortcode['type'] );
1758
-
1759
- }
1760
-
1761
- /**
1762
- * Get Facebook Feed Dynamic Class Name
1763
- *
1764
- * @param null $fts_dynamic_name Our Dynamic Name for ajax.
1765
- * @return string
1766
- * @since 1.9.6
1767
- */
1768
- public function get_facebook_feed_dynamic_class_name( $fts_dynamic_name = null ) {
1769
- $fts_dynamic_class_name = '';
1770
- if ( isset( $fts_dynamic_name ) ) {
1771
- $fts_dynamic_class_name = 'feed_dynamic_class' . sanitize_key( $_REQUEST['fts_dynamic_name'] );
1772
- }
1773
- return $fts_dynamic_class_name;
1774
- }
1775
-
1776
-
1777
- /**
1778
- * Get Post Info
1779
- *
1780
- * For Facebook.
1781
- *
1782
- * @param string $feed_data The facebook contents.
1783
- * @param string $fb_shortcode FB cache name.
1784
- * @param string $access_token The Access Token.
1785
- * @param string $language Language.
1786
- * @return array|mixed
1787
- * @since 1.9.6
1788
- */
1789
- public function get_post_info( $feed_data, $fb_shortcode, $access_token, $language, $fb_cache_name) {
1790
- $developer_mode = get_option( 'fts_clear_cache_developer_mode' );
1791
-
1792
- if ( 'album_photos' === $fb_shortcode['type'] ) {
1793
- $fb_post_data_cache = 'fb_' . $fb_shortcode['type'] . '_post_' . $fb_shortcode['album_id'] . '_num' . $fb_shortcode['posts'] . '';
1794
- } else {
1795
- $fb_post_data_cache = 'fb_' . $fb_shortcode['type'] . '_post_' . $fb_shortcode['id'] . '_num' . $fb_shortcode['posts'] . '';
1796
- }
1797
- if ( false !== $this->fts_check_feed_cache_exists( $fb_post_data_cache ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
1798
- $response_post_array = $this->fts_get_feed_cache( $fb_post_data_cache );
1799
-
1800
- } else {
1801
- // Build the big post counter.
1802
- $fb_post_array = array();
1803
- // Single Events Array.
1804
- $set_zero = 0;
1805
- foreach ( $feed_data->data as $counter ) {
1806
-
1807
- $counter->id = isset( $counter->id ) ? $counter->id : '';
1808
-
1809
- if ( $set_zero === $fb_shortcode['posts'] ) {
1810
- break;
1811
- }
1812
-
1813
- $fb_type = isset( $counter->type ) ? $counter->type : '';
1814
- $post_data_key = isset( $counter->object_id ) ? $counter->object_id : $counter->id;
1815
-
1816
- // Likes & Comments.
1817
- $fb_post_array[ $post_data_key . '_likes' ] = 'https://graph.facebook.com/' . $post_data_key . '/reactions?summary=1&access_token=' . $access_token;
1818
- $fb_post_array[ $post_data_key . '_comments' ] = 'https://graph.facebook.com/' . $post_data_key . '/comments?summary=1&access_token=' . $access_token;
1819
- // Video.
1820
- if ( 'video' === $fb_type ) {
1821
- $fb_post_array[ $post_data_key . '_video' ] = 'https://graph.facebook.com/' . $post_data_key;
1822
- }
1823
- // Photo.
1824
- $fb_album_cover = isset( $counter->cover_photo->id ) ? $counter->cover_photo->id : '';
1825
- if ( 'albums' === $fb_shortcode['type'] && ! $fb_album_cover ) {
1826
- unset( $counter );
1827
- continue;
1828
- }
1829
- if ( 'albums' === $fb_shortcode['type'] ) {
1830
- $fb_post_array[ $fb_album_cover . '_photo' ] = 'https://graph.facebook.com/' . $fb_album_cover;
1831
- }
1832
- if ( 'hashtag' === $fb_shortcode['type'] ) {
1833
- $fb_post_array[ $post_data_key . '_photo' ] = 'https://graph.facebook.com/' . $counter->source;
1834
- }
1835
- // GROUP Photo.
1836
- if ( 'group' === $fb_shortcode['type'] ) {
1837
- $fb_post_array[ $post_data_key . '_group_post_photo' ] = 'https://graph.facebook.com/' . $counter->id . '?fields=picture,full_picture&access_token=' . $access_token;
1838
- }
1839
-
1840
- $set_zero++;
1841
- }
1842
-
1843
- $fts_error_check = new fts_error_handler();
1844
- $fts_error_check_complete = $fts_error_check->facebook_error_check( $fb_shortcode, $feed_data );
1845
- if ( is_array( $fts_error_check_complete ) && true === $fts_error_check_complete[0] ) {
1846
-
1847
- // If old Cache exists use it instead of showing an error.
1848
- if ( true === $this->fts_check_feed_cache_exists( $fb_cache_name, true ) ) {
1849
-
1850
- // Return Cache because it exists in Database. Better than showing nothing right?
1851
- return $this->fts_get_feed_cache( $fb_cache_name, true );
1852
- }
1853
- }
1854
-
1855
- // Response.
1856
- $response_post_array = $this->fts_get_feed_json( $fb_post_array );
1857
- // Make sure it's not ajaxing.
1858
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
1859
- // Create Cache.
1860
- $this->fts_create_feed_cache( $fb_post_data_cache, $response_post_array );
1861
- }
1862
- }
1863
- // SHOW THE POST RESPONSE PRINT_R
1864
- // echo'<pre>';
1865
- // print_r($response_post_array);
1866
- // echo'</pre>';.
1867
- return $response_post_array;
1868
- }
1869
-
1870
-
1871
- /**
1872
- * Get Post Info
1873
- *
1874
- * For Facebook.
1875
- *
1876
- * @param string $feed_data The facebook contents.
1877
- * @param string $fb_shortcode FB cache name.
1878
- * @param string $access_token The Access Token.
1879
- * @param string $language Language.
1880
- * @return array|mixed
1881
- * @since 2.1.6
1882
- */
1883
- public function get_event_post_info( $feed_data, $fb_shortcode, $access_token, $language ) {
1884
- $developer_mode = get_option( 'fts_clear_cache_developer_mode' );
1885
-
1886
- $fb_event_post_data_cache = 'fbe_' . $fb_shortcode['type'] . '_post_' . $fb_shortcode['id'] . '_num' . $fb_shortcode['posts'] . '';
1887
- if ( false !== $this->fts_check_feed_cache_exists( $fb_event_post_data_cache ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
1888
- $response_event_post_array = $this->fts_get_feed_cache( $fb_event_post_data_cache );
1889
- } else {
1890
- // Single Events Array.
1891
- $fb_single_events_array = array();
1892
- $set_zero = 0;
1893
- foreach ( $feed_data->data as $counter ) {
1894
-
1895
- $counter->id = isset( $counter->id ) ? $counter->id : '';
1896
-
1897
- if ( $set_zero === $fb_shortcode['posts'] ) {
1898
- break;
1899
- }
1900
-
1901
- $single_event_id = $counter->id;
1902
- $language = isset( $language ) ? $language : '';
1903
- // Event Info, Time etc.
1904
- $fb_single_events_array[ 'event_single_' . $single_event_id . '_info' ] = 'https://graph.facebook.com/' . $single_event_id . '/?access_token=' . $access_token . $language;
1905
- // Event Location.
1906
- $fb_single_events_array[ 'event_single_' . $single_event_id . '_location' ] = 'https://graph.facebook.com/' . $single_event_id . '/?fields=place&access_token=' . $access_token . $language;
1907
- // Event Cover Photo.
1908
- $fb_single_events_array[ 'event_single_' . $single_event_id . '_cover_photo' ] = 'https://graph.facebook.com/' . $single_event_id . '/?fields=cover&access_token=' . $access_token . $language;
1909
- // Event Ticket Info.
1910
- $fb_single_events_array[ 'event_single_' . $single_event_id . '_ticket_info' ] = 'https://graph.facebook.com/' . $single_event_id . '/?fields=ticket_uri&access_token=' . $access_token . $language;
1911
-
1912
- $set_zero++;
1913
- }
1914
-
1915
- $response_event_post_array = $this->fts_get_feed_json( $fb_single_events_array );
1916
- // Create Cache.
1917
- $this->fts_create_feed_cache( $fb_event_post_data_cache, $response_event_post_array );
1918
-
1919
- }
1920
- // SHOW THE $response_event_post_array FEED PRINT_R
1921
- // '<pre>';.
1922
- // print_r($response_event_post_array);
1923
- // echo'</pre>';.
1924
- return $response_event_post_array;
1925
- }
1926
-
1927
-
1928
- /**
1929
- * FB Social Button Placement
1930
- *
1931
- * @param string $fb_shortcode The facebook contents.
1932
- * @param string $access_token The Access Token.
1933
- * @param string $share_loc Language.
1934
- * @return string|void
1935
- * @since 2.0.1
1936
- */
1937
- public function fb_social_btn_placement( $fb_shortcode, $access_token, $share_loc ) {
1938
- // Don't do it for these!
1939
- if ( 'group' === $fb_shortcode['type'] || 'event' === $fb_shortcode['type'] || isset( $fb_shortcode['hide_like_option'] ) && 'yes' === $fb_shortcode['hide_like_option'] ) {
1940
- return;
1941
- }
1942
- // Facebook Follow Button Options.
1943
- $fb_show_follow_btn = get_option( 'fb_show_follow_btn' );
1944
-
1945
- if ( isset( $fb_shortcode['show_follow_btn_where'] ) && '' !== $fb_shortcode['show_follow_btn_where'] ) {
1946
- if ( 'above_title' === $fb_shortcode['show_follow_btn_where'] ) {
1947
- $fb_show_follow_btn_where = 'fb-like-top-above-title';
1948
- } elseif ( 'below_title' === $fb_shortcode['show_follow_btn_where'] ) {
1949
- $fb_show_follow_btn_where = 'fb-like-top-below-title';
1950
- } elseif ( 'bottom' === $fb_shortcode['show_follow_btn_where'] ) {
1951
- $fb_show_follow_btn_where = 'fb-like-below';
1952
- }
1953
- } else {
1954
- $fb_show_follow_btn_where = get_option( 'fb_show_follow_btn_where' );
1955
- }
1956
-
1957
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
1958
-
1959
- $like_option_align_final = isset( $fb_shortcode['like_option_align'] ) ? 'fts-fb-social-btn-' . $fb_shortcode['like_option_align'] . '' : '';
1960
-
1961
- if ( $share_loc === $fb_show_follow_btn_where ) {
1962
- switch ( $fb_show_follow_btn_where ) {
1963
- case 'fb-like-top-above-title':
1964
- // Top Above Title.
1965
- if ( isset( $fb_show_follow_btn ) && 'dont-display' !== $fb_show_follow_btn ) {
1966
- echo '<div class="fb-social-btn-top ' . esc_attr( $like_option_align_final ) . '">';
1967
- $this->social_follow_button( 'facebook', $fb_shortcode['id'], $access_token, $fb_shortcode );
1968
- echo '</div>';
1969
- }
1970
- break;
1971
- // Top Below Title.
1972
- case 'fb-like-top-below-title':
1973
- if ( isset( $fb_show_follow_btn ) && 'dont-display' !== $fb_show_follow_btn ) {
1974
- echo '<div class="fb-social-btn-below-description ' . esc_attr( $like_option_align_final ) . '">';
1975
- $this->social_follow_button( 'facebook', $fb_shortcode['id'], $access_token, $fb_shortcode );
1976
- echo '</div>';
1977
- }
1978
- break;
1979
- // Bottom.
1980
- case 'fb-like-below':
1981
- if ( isset( $fb_show_follow_btn ) && 'dont-display' !== $fb_show_follow_btn ) {
1982
- echo '<div class="fb-social-btn-bottom ' . esc_attr( $like_option_align_final ) . '">';
1983
- $this->social_follow_button( 'facebook', $fb_shortcode['id'], $access_token, $fb_shortcode );
1984
- echo '</div>';
1985
- }
1986
- break;
1987
- }
1988
- }
1989
- }
1990
- }
1991
-
1992
- /**
1993
- * FTS Custom Trim Words
1994
- *
1995
- * Not using this anymore but keeping it as a fallback function for the combined if user has not updated the free version before the combined extension
1996
- *
1997
- * @param string $text The description text.
1998
- * @param int $num_words Number of words you want to be showm.
1999
- * @param string $more The ...
2000
- * @return mixed
2001
- * @since 1.9.6
2002
- */
2003
- public function fts_custom_trim_words( $text, $num_words = 45, $more ) {
2004
- ! empty( $num_words ) && 0 !== $num_words ? $more = __( '...' ) : '';
2005
- $text = nl2br( $text );
2006
- // Filter for Hashtags and Mentions Before returning.
2007
- $text = $this->fts_facebook_tag_filter( $text );
2008
- $text = strip_shortcodes( $text );
2009
- // Add tags that you don't want stripped.
2010
- $text = strip_tags( $text, '<strong><br><em><i><a>' );
2011
- $words_array = preg_split( "/[\n\r\t ]+/", $text, $num_words + 1, PREG_SPLIT_NO_EMPTY );
2012
- $sep = ' ';
2013
- if ( count( $words_array ) > $num_words ) {
2014
- array_pop( $words_array );
2015
- $text = implode( $sep, $words_array );
2016
- $text = $text . $more;
2017
- } else {
2018
- $text = implode( $sep, $words_array );
2019
- }
2020
- return wpautop( $text );
2021
- }
2022
-
2023
- /**
2024
- * FTS Facebook Tag Filter
2025
- *
2026
- * Tags Filter (return clean tags)
2027
- *
2028
- * @param string $fb_description Facebook Description.
2029
- * @return mixed
2030
- * @since 1.9.6
2031
- */
2032
- public function fts_facebook_tag_filter( $fb_description ) {
2033
- // Converts URLs to Links.
2034
- $fb_description = preg_replace( '@(?!(?!.*?<a)[^<]*<\/a>)(?:(?:https?|ftp|file)://|www\.|ftp\.)[-A-‌​Z0-9+&#/%=~_|$?!:,.]*[A-Z0-9+&#/%=~_|$]@i', '<a href="\0" target="_blank">\0</a>', $fb_description );
2035
-
2036
- $splitano = explode( 'www', $fb_description );
2037
- $count = count( $splitano );
2038
- $return_value = '';
2039
-
2040
- for ( $i = 0; $i < $count; $i++ ) {
2041
- if ( 'href=' === substr( $splitano[ $i ], -6, 5 ) ) {
2042
- $return_value .= $splitano[ $i ] . 'http://www';
2043
- } elseif ( $i < $count - 1 ) {
2044
- $return_value .= $splitano[ $i ] . 'www';
2045
- } else {
2046
- $return_value .= $splitano[ $i ];
2047
- }
2048
- }
2049
- // Mentions.
2050
- $return_value = preg_replace( '/@+(\w+)/u', '<a target="_blank" href="https://www.facebook.com/$1">@$1</a>', $return_value );
2051
- // Hash tags.
2052
- $return_value = preg_replace( '/#+(\w+)/u', '<a target="_blank" href="https://www.facebook.com/hashtag/$1">#$1</a>', $return_value );
2053
-
2054
- return $return_value;
2055
- }
2056
-
2057
- /**
2058
- * Load PopUp Scripts
2059
- *
2060
- * @param string $fb_shortcode The Facebook feed shortcode.
2061
- * @since 1.9.6
2062
- */
2063
- public function load_popup_scripts( $fb_shortcode ) {
2064
- if ( 'yes' === $fb_shortcode['popup'] ) {
2065
- // it's ok if these styles & scripts load at the bottom of the page.
2066
- $fts_fix_magnific = get_option( 'fts_fix_magnific' ) ? get_option( 'fts_fix_magnific' ) : '';
2067
- if ( isset( $fts_fix_magnific ) && '1' !== $fts_fix_magnific ) {
2068
- wp_enqueue_style( 'fts-popup', plugins_url( 'feed-them-social/feeds/css/magnific-popup.css' ), array(), FTS_CURRENT_VERSION, false );
2069
- }
2070
- wp_enqueue_script( 'fts-popup-js', plugins_url( 'feed-them-social/feeds/js/magnific-popup.js' ), array(), FTS_CURRENT_VERSION, false );
2071
- wp_enqueue_script( 'fts-images-loaded', plugins_url( 'feed-them-social/feeds/js/imagesloaded.pkgd.min.js' ), array(), FTS_CURRENT_VERSION, false );
2072
- if ( ! isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
2073
- wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
2074
- }
2075
- }
2076
- }
2077
-
2078
- /**
2079
- * FTS Facebook LoadMore
2080
- *
2081
- * @param string $atts The shortcode attributes.
2082
- * @param string $feed_data The Feed data.
2083
- * @param string $fb_type The type of facebook feed.
2084
- * @param string $fb_shortcode The Facebook feed shortcode.
2085
- * @since 1.9.6
2086
- */
2087
- public function fts_facebook_loadmore( $atts, $feed_data, $fb_type, $fb_shortcode ) {
2088
- if ( ( isset( $fb_shortcode['loadmore'] ) && 'button' === $fb_shortcode['loadmore'] || isset( $fb_shortcode['loadmore'] ) && 'autoscroll' === $fb_shortcode['loadmore'] ) && ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'reviews' !== $fb_shortcode['type'] || is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && 'reviews' === $fb_shortcode['type'] ) ) {
2089
-
2090
- $fb_load_more_text = get_option( 'fb_load_more_text' ) ? get_option( 'fb_load_more_text' ) : esc_html( 'Load More', 'feed-them-social' );
2091
- $fb_no_more_posts_text = get_option( 'fb_no_more_posts_text' ) ? get_option( 'fb_no_more_posts_text' ) : esc_html( 'No More Posts', 'feed-them-social' );
2092
- $fb_no_more_photos_text = get_option( 'fb_no_more_photos_text' ) ? get_option( 'fb_no_more_photos_text' ) : esc_html( 'No More Photos', 'feed-them-social' );
2093
- $fb_no_more_videos_text = get_option( 'fb_no_more_videos_text' ) ? get_option( 'fb_no_more_videos_text' ) : esc_html( 'No More Videos', 'feed-them-social' );
2094
- $fb_no_more_reviews_text = get_option( 'fb_no_more_reviews_text' ) ? get_option( 'fb_no_more_reviews_text' ) : esc_html( 'No More Reviews', 'feed-them-social' );
2095
-
2096
- // Load More BUTTON Start.
2097
- $next_url = isset( $feed_data->paging->next ) ? $feed_data->paging->next : '';
2098
-
2099
- $posts = isset( $fb_shortcode['posts'] ) ? $fb_shortcode['posts'] : '';
2100
- $loadmore_count = isset( $fb_shortcode['loadmore_count'] ) && '' !== $fb_shortcode['loadmore_count'] ? $fb_shortcode['loadmore_count'] : '';
2101
- // we check to see if the loadmore count number is set and if so pass that as the new count number when fetching the next set of posts.
2102
- $_REQUEST['next_url'] = '' !== $loadmore_count ? str_replace( "limit=$posts", "limit=$loadmore_count", $next_url ) : $next_url;
2103
-
2104
- $access_token = is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) ? 'access_token=' . get_option( 'fts_facebook_custom_api_token_biz' ) : 'access_token=' . get_option( 'fts_facebook_custom_api_token' );
2105
- $_REQUEST['next_url'] = str_replace( $access_token, 'access_token=XXX', $next_url );
2106
-
2107
- echo '<script>';
2108
- echo 'var nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . '= "' . esc_url_raw( $_REQUEST['next_url'] ) . '";';
2109
- echo '</script>';
2110
-
2111
- // Make sure it's not ajaxing.
2112
- if ( ! isset( $_GET['load_more_ajaxing'] ) && ! isset( $_REQUEST['fts_no_more_posts'] ) && ! empty( $fb_shortcode['loadmore'] ) ) {
2113
- $fts_dynamic_name = $_REQUEST['fts_dynamic_name'];
2114
- $time = time();
2115
- $nonce = wp_create_nonce( $time . 'load-more-nonce' );
2116
- $fts_dynamic_class_name = $this->get_fts_dynamic_class_name();
2117
- echo '<script>';
2118
- echo 'jQuery(document).ready(function() {';
2119
- if ( 'autoscroll' === $fb_shortcode['loadmore'] ) {
2120
- // this is where we do SCROLL function to LOADMORE if = autoscroll in shortcode.
2121
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").bind("scroll",function() {';
2122
- echo 'if(jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight) {';
2123
- } else {
2124
- // this is where we do CLICK function to LOADMORE if = button in shortcode.
2125
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").click(function() {';
2126
- }
2127
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").addClass("fts-fb-spinner");';
2128
- echo 'var button = jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").html("<div class=\'bounce1\'></div><div class=\'bounce2\'></div><div class=\'bounce3\'></div>");';
2129
- echo 'console.log(button);';
2130
-
2131
- echo 'var yes_ajax = "yes";';
2132
- echo 'var fts_d_name = "' . esc_js( $fts_dynamic_name ) . '";';
2133
- echo 'var fts_security = "' . esc_js( $nonce ) . '";';
2134
- echo 'var fts_time = "' . esc_js( $time ) . '";';
2135
-
2136
- echo 'var feed_name = "fts_facebook";';
2137
- echo 'var loadmore_count = "posts=' . esc_js( $fb_shortcode['loadmore_count'] ) . '";';
2138
- echo 'var feed_attributes = ' . json_encode( $atts ) . ';';
2139
-
2140
- echo 'jQuery.ajax({';
2141
- echo 'data: {action: "my_fts_fb_load_more", next_url: nextURL_' . esc_js( $fts_dynamic_name ) . ', fts_dynamic_name: fts_d_name, feed_name: feed_name, loadmore_count: loadmore_count, feed_attributes: feed_attributes, load_more_ajaxing: yes_ajax, fts_security: fts_security, fts_time: fts_time},';
2142
- echo 'type: "GET",';
2143
- echo 'url: "' . esc_url( admin_url( 'admin-ajax.php' ) ) . '",';
2144
- echo 'success: function( data ) {';
2145
- echo 'console.log("Well Done and got this from sever: " + data);';
2146
- if ( $fb_type && 'albums' === $fb_shortcode['type'] || $fb_type && 'album_photos' === $fb_shortcode['type'] && 'yes' !== $fb_shortcode['video_album'] || 'yes' === $fb_shortcode['grid'] ) {
2147
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").append(data).filter(".' . esc_js( $fts_dynamic_class_name ) . '").html();';
2148
- // if (isset($fb_shortcode['image_stack_animation']) && $fb_shortcode['image_stack_animation'] == 'yes') {.
2149
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").masonry( "reloadItems");';
2150
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").masonry("layout");';
2151
-
2152
- echo 'setTimeout(function() {';
2153
- // Do something after 3 seconds
2154
- // This can be direct code, or call to some other function.
2155
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").masonry("layout");';
2156
- echo '}, 500);';
2157
-
2158
- // }.
2159
- echo 'if(!nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . ' || nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . ' == "no more"){';
2160
- if ( 'reviews' === $fb_shortcode['type'] ) {
2161
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_reviews_text ) . '</div>\');';
2162
- } elseif ( 'videos' === $fb_shortcode['type'] ) {
2163
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_videos_text ) . '</div>\');';
2164
- } else {
2165
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_photos_text ) . '</div>\');';
2166
- }
2167
-
2168
- echo ' jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeAttr("id");';
2169
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").unbind("scroll");';
2170
- echo '}';
2171
- } else {
2172
- if ( isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
2173
- echo 'var result = jQuery(data).insertBefore( jQuery("#output_' . esc_js( $fts_dynamic_name ) . '") );';
2174
- echo 'var result = jQuery(".feed_dynamic_' . esc_js( $fts_dynamic_name ) . '_album_photos").append(data).filter("#output_' . esc_js( $fts_dynamic_name ) . '").html();';
2175
- } else {
2176
- echo 'var result = jQuery("#output_' . esc_js( $fts_dynamic_name ) . '").append(data).filter("#output_' . esc_js( $fts_dynamic_name ) . '").html();';
2177
- }
2178
- echo 'jQuery("#output_' . esc_js( $fts_dynamic_name ) . '").html(result);';
2179
- echo 'if(!nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . ' || nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . ' == "no more"){';
2180
- // Reviews.
2181
- if ( 'reviews' === $fb_shortcode['type'] ) {
2182
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_reviews_text ) . '</div>\');';
2183
- } else {
2184
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_posts_text ) . '</div>\');';
2185
- }
2186
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeAttr("id");';
2187
- echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").unbind("scroll");';
2188
- echo '}';
2189
-
2190
- }
2191
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").html("' . esc_html( $fb_load_more_text ) . '");';
2192
- // jQuery("#loadMore_'.$fts_dynamic_name.'").removeClass("flip360-fts-load-more");.
2193
- echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeClass("fts-fb-spinner");';
2194
- if ( isset( $fb_shortcode['popup'] ) && 'yes' === $fb_shortcode['popup'] ) {
2195
- // We return this function again otherwise the popup won't work correctly for the newly loaded items.
2196
- echo 'jQuery.fn.slickFacebookPopUpFunction();';
2197
- }
2198
- // Reload the share each funcion otherwise you can't open share option..
2199
- echo 'jQuery.fn.ftsShare();slickremixImageResizingFacebook2();slickremixImageResizingFacebook3();';
2200
-
2201
- echo '}';
2202
- echo '});';
2203
- // end of ajax().
2204
- echo 'return false;';
2205
- // string $scrollMore is at top of this js script. acception for scroll option closing tag.
2206
- if ( 'autoscroll' === $fb_shortcode['loadmore'] ) {
2207
- echo '}';
2208
- // end of scroll ajax load.
2209
- }
2210
- echo '});';
2211
- // end of document.ready.
2212
- echo '});';
2213
- // end of form.submit.
2214
- echo '</script>';
2215
- }
2216
- // End Check.
2217
- // main closing div not included in ajax check so we can close the wrap at all times.
2218
- // Make sure it's not ajaxing.
2219
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
2220
- $fts_dynamic_name = $_REQUEST['fts_dynamic_name'];
2221
- // this div returns outputs our ajax request via jquery appenc html from above style="display:nonee;".
2222
- echo '<div id="output_' . esc_attr( $fts_dynamic_name ) . '" class="fts-fb-load-more-output"></div>';
2223
- if ( ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'reviews' !== $fb_shortcode['type'] || is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && 'reviews' === $fb_shortcode['type'] ) && 'autoscroll' === $fb_shortcode['loadmore'] ) {
2224
- echo '<div id="loadMore_' . esc_attr( $fts_dynamic_name ) . '" class="fts-fb-load-more fts-fb-autoscroll-loader">Facebook</div>';
2225
- }
2226
- }
2227
- }
2228
- // end of if loadmore is button or autoscroll.
2229
- }
2230
- // end fts_facebook_loadmore().
2231
-
2232
- /**
2233
- * Random String
2234
- *
2235
- * Create a random string
2236
- *
2237
- * @param string $length How many character to randomize.
2238
- * @return mixed
2239
- * @since 1.9.6
2240
- */
2241
- public function fts_rand_string( $length = 10 ) {
2242
- $characters = 'abcdefghijklmnopqrstuvwxyz';
2243
- $characters_length = strlen( $characters );
2244
- $random_string = '';
2245
- for ( $i = 0; $i < $length; $i++ ) {
2246
- $random_string .= $characters[ wp_rand( 0, $characters_length - 1 ) ];
2247
- }
2248
-
2249
- return $random_string;
2250
- }
2251
  }//end class
7
  * @since 1.9.6
8
  */
9
  class FTS_Facebook_Feed extends feed_them_social_functions {
10
+ /**
11
+ * Construct
12
+ *
13
+ * Facebook Feed constructor.
14
+ *
15
+ * @since 1.9.6
16
+ */
17
+ public function __construct() {
18
+ add_shortcode( 'fts_facebook_group', array( $this, 'fts_fb_func' ) );
19
+ add_shortcode( 'fts_facebook_page', array( $this, 'fts_fb_func' ) );
20
+ add_shortcode( 'fts_facebook_event', array( $this, 'fts_fb_func' ) );
21
+ add_shortcode( 'fts_facebook', array( $this, 'fts_fb_func' ) );
22
+ add_action( 'wp_enqueue_scripts', array( $this, 'fts_fb_head' ) );
23
+ }
24
+
25
+ /**
26
+ * FTS FB Head
27
+ *
28
+ * Add Styles and Scripts functions.
29
+ *
30
+ * @since 1.9.6
31
+ */
32
+ public function fts_fb_head() {
33
+ wp_enqueue_style( 'fts-feeds', plugins_url( 'feed-them-social/feeds/css/styles.css' ), array(), FTS_CURRENT_VERSION, false );
34
+
35
+ if ( is_plugin_active( 'feed-them-social/feed-them.php' ) && is_plugin_active( 'feed-them-carousel-premium/feed-them-carousel-premium.php' ) && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
36
+ wp_enqueue_script( 'fts-feeds', plugins_url( 'feed-them-carousel-premium/feeds/js/jquery.cycle2.js' ), array(), FTS_CURRENT_VERSION, false );
37
+ }
38
+ }
39
+
40
+ /**
41
+ * Date Sort
42
+ *
43
+ * Date sort option for multiple feeds in a shortcode.
44
+ *
45
+ * @param string $a First Date.
46
+ * @param string $b Second Date.
47
+ * @return false|int
48
+ * @since 1.9.6
49
+ */
50
+ public function dateSort( $a, $b ) {
51
+ $date_a = strtotime( $a->created_time );
52
+ $date_b = strtotime( $b->created_time );
53
+ return ( $date_b - $date_a );
54
+ }
55
+
56
+
57
+ /**
58
+ * FTS FB Func
59
+ *
60
+ * Display Facebook Feed.
61
+ *
62
+ * @param string $atts Shortcode attributes.
63
+ * @return string
64
+ * @since 1.9.6
65
+ */
66
+ public function fts_fb_func( $atts ) {
67
+ // masonry snippet in fts-global.
68
+ wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
69
+ $developer_mode = 'on';
70
+ // Make sure everything is reset.
71
+ include_once ABSPATH . 'wp-admin/includes/plugin.php';
72
+ // Eventually add premium page file.
73
+ if ( is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) ) {
74
+
75
+ $fts_facebook_reviews = new FTS_Facebook_Reviews();
76
+ $review_atts = $fts_facebook_reviews->shortcode_attributes();
77
+ $fb_shortcode = shortcode_atts( $review_atts, $atts );
78
+ // Load up some scripts for popup.
79
+ $this->load_popup_scripts( $fb_shortcode );
80
+ } elseif ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
81
+ include WP_CONTENT_DIR . '/plugins/feed-them-premium/feeds/facebook/facebook-premium-feed.php';
82
+ // Doing this to phase out the invalid snake case.
83
+ $fb_shortcode = $FB_Shortcode;
84
+ // Load up some scripts for popup.
85
+ $this->load_popup_scripts( $fb_shortcode );
86
+ } elseif ( is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) && ! is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
87
+ // Doing this to phase out the invalid snake case.
88
+ $fb_shortcode = $FB_Shortcode;
89
+ $fb_shortcode = shortcode_atts(
90
+ array(
91
+ 'id' => '',
92
+ 'type' => '',
93
+ 'posts' => '',
94
+ 'posts_displayed' => '',
95
+ 'height' => '',
96
+ 'album_id' => '',
97
+ 'image_width' => '',
98
+ 'image_height' => '',
99
+ 'space_between_photos' => '',
100
+ 'hide_date_likes_comments' => '',
101
+ 'center_container' => '',
102
+ 'image_stack_animation' => '',
103
+ 'image_position_lr' => '',
104
+ 'image_position_top' => '',
105
+ 'hide_comments_popup' => '',
106
+ // only works with combined FB streams otherwise you need the premium version.
107
+ 'popup' => '',
108
+ 'words' => '',
109
+ 'grid' => '',
110
+ 'colmn_width' => '',
111
+ 'space_between_posts' => '',
112
+ // new show media on top options.
113
+ 'show_media' => '',
114
+ 'show_date' => '',
115
+ 'show_name' => '',
116
+ // 'access_token' => '',
117
+ ),
118
+ $atts
119
+ );
120
+ if ( null === $fb_shortcode['posts'] ) {
121
+ $fb_shortcode['posts'] = '6';
122
+ }
123
+ } else {
124
+ $fb_shortcode = shortcode_atts(
125
+ array(
126
+ 'id' => '',
127
+ 'type' => '',
128
+ 'posts' => '',
129
+ 'description' => 'yes',
130
+ 'posts_displayed' => '',
131
+ 'height' => '',
132
+ 'album_id' => '',
133
+ 'image_width' => '',
134
+ 'image_height' => '',
135
+ 'space_between_photos' => '',
136
+ 'hide_date_likes_comments' => '',
137
+ 'center_container' => '',
138
+ 'image_stack_animation' => '',
139
+ 'image_position_lr' => '',
140
+ 'image_position_top' => '',
141
+ 'hide_comments_popup' => '',
142
+ 'access_token' => '',
143
+ ),
144
+ $atts
145
+ );
146
+ if ( null === $fb_shortcode['posts'] ) {
147
+ $fb_shortcode['posts'] = '6';
148
+ }
149
+ }
150
+
151
+ if ( 'album_videos' === $fb_shortcode['type'] ) {
152
+ $fb_shortcode['type'] = 'album_photos';
153
+ $fb_shortcode['video_album'] = 'yes';
154
+ $fb_shortcode['album_id'] = 'photo_stream';
155
+ if ( isset( $fb_shortcode['loadmore_btn_maxwidth'] ) && ! empty( $fb_shortcode['loadmore_btn_maxwidth'] ) ) {
156
+ $fb_shortcode['loadmore'] = 'button';
157
+ }
158
+ }
159
+
160
+ if ( ! is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && ! is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && ! is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) && $fb_shortcode['posts'] > '6' ) {
161
+ $fb_shortcode['posts'] = '6';
162
+ }
163
+
164
+ // Get Access Token.
165
+ $access_token = isset( $fb_shortcode['access_token'] ) ? $fb_shortcode['access_token'] : '';
166
+ if ( ! empty( $access_token ) ) {
167
+ $access_token = $fb_shortcode['access_token'];
168
+ } else {
169
+ $access_token = $this->get_access_token();
170
+ }
171
+
172
+ // UserName?.
173
+ if ( ! $fb_shortcode['id'] ) {
174
+ return 'Please enter a username for this feed.';
175
+ }
176
+ if ( 'reviews' === $fb_shortcode['type'] && ! is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) ) {
177
+ return '<div style="clear:both; padding:15px 0;">You must have FTS Facebook Reviews extension active to see this feed.</div>';
178
+ }
179
+
180
+ $type = isset( $fb_shortcode['type'] ) ? $fb_shortcode['type'] : '';
181
+ if ( 'group' === $type || 'page' === $type || 'event' === $type ) {
182
+
183
+ // EMPTY FACEBOOK POSTS OFFSET AND COUNT.
184
+ // Option Now Being Removed from here and the Facebook Settings Page.
185
+ // Setting it to blank so no matter what it will never error get_option('fb_count_offset');.
186
+ $fb_count_offset = '';
187
+
188
+ // View Link.
189
+ $fts_view_fb_link = '';
190
+ // Get Cache Name.
191
+ $fb_cache_name = '';
192
+ // Get language.
193
+ $language = '';
194
+
195
+ // Get Response (AKA Page & Feed Information) ERROR CHECK inside this function.
196
+ $response2 = $this->get_facebook_feed_response( $fb_shortcode, $fb_cache_name, $access_token, $language );
197
+
198
+ // Test to see if the re-sort date option is working from function above.
199
+ // print $this->dateSort;.
200
+ $feed_data_check = json_decode( $response2['feed_data'] );
201
+
202
+ // SHOW THE REGULAR FEEDS PRINT_R
203
+ // echo '<pre>';
204
+ // print_r($feed_data_check);
205
+ // echo '</pre>';
206
+ // $idNew = array();
207
+ // $idNew = explode(',', $fb_shortcode['id']);
208
+ // Testing options before foreach loop
209
+ // $idNew = 'tonyhawk';
210
+ // print_r($feed_data_check->$idNew->data);.
211
+ if ( is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
212
+ $fts_count_ids = substr_count( $fb_shortcode['id'], ',' );
213
+ } else {
214
+ $fts_count_ids = '';
215
+ }
216
+
217
+ if ( isset( $feed_data_check->data ) ) {
218
+ if ( $fts_count_ids >= 1 && 'reviews' !== $fb_shortcode['type'] ) {
219
+ $fts_list_arrays = array();
220
+ foreach ( $feed_data_check as $feed_data_name ) {
221
+
222
+ if ( isset( $feed_data_name->data ) ) {
223
+ $fts_list_arrays = array_merge_recursive( $fts_list_arrays, $feed_data_name->data );
224
+ }
225
+ // var_dump( $fts_list_arrays[$i]);.
226
+ }
227
+ $merged_array['data'] = $fts_list_arrays;
228
+ $feed_data_check = (object) $merged_array;
229
+ }
230
+
231
+ // Test the created dataes are being sorted properly
232
+ // foreach($merged_array['data'] as $newSort) {
233
+ // print date("jS F, Y", strtotime($newSort->created_time));
234
+ // print '<br/>';
235
+ // }.
236
+ $set_zero = 0;
237
+ foreach ( $feed_data_check->data as $post_count ) {
238
+
239
+ $fb_message = isset( $post_count->message ) ? $post_count->message : '';
240
+ $fb_story = isset( $post_count->story ) ? $post_count->story : '';
241
+ $fb_type = isset( $post_count->type ) ? $post_count->type : '';
242
+ $fb_status_type = isset( $post_count->status_type ) ? $post_count->status_type : '';
243
+
244
+ // This is the method to skip empty posts or posts that are simply about changing settings or other non important post types
245
+ // We will count all the ones that are like this and add that number to the output of posts to offset the posts we are filtering out. Line 278 needs the same treatment of if options.
246
+ if ( 'status' === $fb_type && empty( $fb_message ) && empty( $fb_story ) || 'event' === $fb_type || 'event' === $fb_type && false !== strpos( $fb_story, 'shared their event' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'changed the name of the event to' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'changed the privacy setting' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'an admin of the group' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'created the group' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'added an event' ) || 'event' === $fb_type && false !== strpos( $fb_story, 'added an event' ) ) {
247
+ $set_zero++;
248
+ } elseif ( '0' === $feed_data_check->data ) {
249
+ // If more than the 5 posts(default in free) or the post= from shortcode is set to the amount of posts that are being filtered above we will add 7 to the post count to try and get at some posts.
250
+ // This will only happen for Page and Group feeds.
251
+ $set_zero = '7';
252
+ }
253
+ }// END POST foreach.
254
+
255
+ // Result of the foreach loop above minus the empty posts and offset by those posts the actual number of posts entered is shown
256
+ // $fb_shortcode['posts'] = $result;.
257
+ if ( ! empty( $fb_count_offset ) ) {
258
+ $set_zero = $fb_count_offset;
259
+ $unset_count = $fb_shortcode['posts'] + $set_zero;
260
+ $fb_shortcode['posts'] = $unset_count;
261
+ } else {
262
+ $unset_count = $fb_shortcode['posts'] + $set_zero;
263
+ $fb_shortcode['posts'] = $unset_count;
264
+ }
265
+
266
+ // SHOW THE $feed_data_check PRINT_R
267
+ // echo '<pre>';
268
+ // print_r($feed_data_check);
269
+ // echo '</pre>, ';.
270
+ }
271
+ // END.
272
+ }
273
+
274
+ ob_start();
275
+ // Uncomment these for testing purposes to see the actual count and the offset count
276
+ // print $set_zero;
277
+ // print $fb_shortcode['posts'];
278
+ // print $fb_type;
279
+ // View Link.
280
+ $fts_view_fb_link = $this->get_view_link( $fb_shortcode );
281
+ // Get Cache Name.
282
+ $fb_cache_name = $this->get_fb_cache_name( $fb_shortcode );
283
+ // Get language.
284
+ $language = $this->get_language( $fb_shortcode );
285
+ if ( 'reviews' !== $fb_shortcode['type'] ) {
286
+ // Get Response (AKA Page & Feed Information) ERROR CHECK inside this function.
287
+ $response = $this->get_facebook_feed_response( $fb_shortcode, $fb_cache_name, $access_token, $language );
288
+ // Json decode data and build it from cache or response.
289
+ $page_data = json_decode( $response['page_data'] );
290
+ $feed_data = json_decode( $response['feed_data'] );
291
+ }
292
+
293
+ if ( is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && true == get_option( 'fts_facebook_custom_api_token_biz' ) && 'reviews' === $fb_shortcode['type'] ||
294
+ is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && ! empty( $fb_shortcode['token'] ) && 'reviews' === $fb_shortcode['type'] ||
295
+ is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && ! empty( $fb_shortcode['access_token'] ) && 'reviews' === $fb_shortcode['type'] ) {
296
+
297
+ if ( 'yes' === $fb_shortcode['remove_reviews_no_description'] && ! isset( $_GET['load_more_ajaxing'] ) ) {
298
+
299
+ $fts_facebook_reviews = new FTS_Facebook_Reviews();
300
+ $no_description_count = $fts_facebook_reviews->review_count_check( $fb_shortcode );
301
+
302
+ // testing purposes
303
+ // print ''. $no_description_count - $fb_shortcode['posts'] .' = The amount of posts with no review text.';
304
+ // this count includes our original posts count + the amount of posts we found with no description.
305
+ $fb_shortcode['posts'] = $no_description_count;
306
+ }
307
+ if ( ! empty( $fb_shortcode['token'] ) ) {
308
+ $biz_access_token = $fb_shortcode['token'];
309
+ } elseif ( ! empty( $fb_shortcode['access_token'] ) ) {
310
+ $biz_access_token = $fb_shortcode['access_token'];
311
+ } else {
312
+ $biz_access_token = get_option( 'fts_facebook_custom_api_token_biz' );
313
+ }
314
+
315
+ // Get Response (AKA Page & Feed Information) ERROR CHECK inside this function.
316
+ $response = $this->get_facebook_feed_response( $fb_shortcode, $fb_cache_name, $biz_access_token, $language );
317
+
318
+ $feed_data = json_decode( $response['feed_data'] );
319
+
320
+ $feed_data = (object) $feed_data;
321
+ // Add Feed Type to post array.
322
+ // SHOW THE REVIEWS FEED PRINT_R
323
+ // echo '<pre>';
324
+ // print_r($feed_data );
325
+ // echo '</pre>';
326
+ if ( 'yes' === $fb_shortcode['remove_reviews_no_description'] ) {
327
+ // $no_description_count2 = 0;.
328
+ foreach ( $feed_data->data as $k => $v ) {
329
+ if ( ! isset( $v->review_text ) ) {
330
+ // print $v->reviewer->name . ' (Key# ' . $k . ') : Now Unset from array<br/>';.
331
+ unset( $feed_data->data[ $k ] );
332
+ // $no_description_count2++;.
333
+ }
334
+ }
335
+ }
336
+ $ratings_data = json_decode( $response['ratings_data'] );
337
+
338
+ // SHOW THE REVIEWS RATING INFO PRINT_R
339
+ // echo '<pre>';
340
+ // print_r($ratings_data );
341
+ // echo '</pre>';.
342
+ // Add fts_profile_pic_url to the array so we can show profile photos for reviews and comments in popup
343
+ foreach ( $feed_data->data as $post_array ) {
344
+
345
+ $the_image = 'https://graph.facebook.com/' . $post_array->reviewer->id . '/picture?redirect=false&access_token=' . $biz_access_token . '';
346
+
347
+ $profile_pic_response = wp_remote_get( $the_image );
348
+ $profile_pic_data = wp_remote_retrieve_body( $profile_pic_response );
349
+ $profile_pic_output = json_decode( $profile_pic_data );
350
+
351
+ // echo '<pre>';
352
+ // print_r($profile_pic_output->data->url);
353
+ // echo '</pre>';
354
+ $post_array->fts_profile_pic_url = $profile_pic_output->data->url;
355
+ }
356
+ }
357
+
358
+ if ( is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
359
+ $fts_count_ids = substr_count( $fb_shortcode['id'], ',' );
360
+ } else {
361
+ $fts_count_ids = '';
362
+ }
363
+
364
+ if ( $fts_count_ids >= 1 && 'reviews' !== $fb_shortcode['type'] ) {
365
+
366
+ $fts_list_arrays = array();
367
+ foreach ( $feed_data as $feed_data_name ) {
368
+
369
+ $fts_list_arrays = array_merge_recursive( $fts_list_arrays, $feed_data_name->data );
370
+ // var_dump( $fts_list_arrays[$i]);.
371
+ }
372
+ // Sort the array using the call back function.
373
+ usort( $fts_list_arrays, array( $this, 'dateSort' ) );
374
+
375
+ $merged_array['data'] = $fts_list_arrays;
376
+ $feed_data = (object) $merged_array;
377
+ }
378
+ // SHOW THE REGULAR FEEDS PRINT_R (WORKS FOR VIDEOS TOO)
379
+ // echo '<pre>';
380
+ // print_r($feed_data );
381
+ // echo '</pre>';
382
+ // If No Response or Error then return.
383
+ if ( is_array( $response ) && isset( $response[0] ) && isset( $response[1] ) && false === $response[0] ) {
384
+ return $response[1];
385
+ }
386
+
387
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
388
+ // Make sure it's not ajaxing and we will allow the omition of certain album covers from the list by using omit_album_covers=0,1,2,3 in the shortcode.
389
+ if ( ! isset( $_GET['load_more_ajaxing'] ) && 'albums' === $fb_shortcode['type'] ) {
390
+
391
+ // omit_album_covers=0,1,2,3 for example.
392
+ $omit_album_covers = $fb_shortcode['omit_album_covers'];
393
+ $omit_album_covers_new = array();
394
+ $omit_album_covers_new = explode( ',', $omit_album_covers );
395
+ foreach ( $feed_data->data as $post_data ) {
396
+ foreach ( $omit_album_covers_new as $omit ) {
397
+ unset( $feed_data->data[ $omit ] );
398
+ }
399
+ }
400
+ }
401
+ }
402
+ // Reviews Rating Filter.
403
+ if ( is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && 'reviews' === $fb_shortcode['type'] ) {
404
+ foreach ( $feed_data->data as $key => $post_data ) {
405
+ // we are not going to show the unrecommended reviews in the feed at this point, no options in our plugin srl 8-28-18.
406
+ if ( isset( $post_data->rating ) && $post_data->rating < $fb_shortcode['reviews_type_to_show'] || isset( $post_data->recommendation_type ) && 'negative' === $post_data->recommendation_type ) {
407
+ unset( $feed_data->data[ $key ] );
408
+ }
409
+ }
410
+ }
411
+
412
+ // Make sure it's not ajaxing.
413
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
414
+ // Get Response (AKA Page & Feed Information).
415
+ $_REQUEST['fts_dynamic_name'] = sanitize_key( $this->fts_rand_string( 10 ) . '_' . $fb_shortcode['type'] );
416
+ // Create Dynamic Class Name.
417
+ $fts_dynamic_class_name = $this->get_fts_dynamic_class_name();
418
+ // SOCIAL BUTTON.
419
+ if ( ! $fts_count_ids >= 1 ) {
420
+ $this->fb_social_btn_placement( $fb_shortcode, $access_token, 'fb-like-top-above-title' );
421
+ }
422
+
423
+ if ( 'reviews' !== $fb_shortcode['type'] ) {
424
+ $page_data->description = isset( $page_data->description ) ? $page_data->description : '';
425
+ $page_data->name = isset( $page_data->name ) ? $page_data->name : '';
426
+ }
427
+ // fts-fb-header-wrapper (for grid).
428
+ echo isset( $fb_shortcode['grid'] ) && 'yes' !== $fb_shortcode['grid'] && 'album_photos' !== $fb_shortcode['type'] && 'albums' !== $fb_shortcode['type'] ? '<div class="fts-fb-header-wrapper">' : '';
429
+
430
+ // Header.
431
+ echo '<div class="fts-jal-fb-header">';
432
+
433
+ if ( is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && isset( $fb_shortcode['overall_rating'] ) && 'yes' === $fb_shortcode['overall_rating'] ) {
434
+
435
+ // echo $this->get_facebook_overall_rating_response($fb_shortcode, $fb_cache_name, $access_token);.
436
+ $fb_reviews_overall_rating_of_5_stars_text = get_option( 'fb_reviews_overall_rating_of_5_stars_text' );
437
+ $fb_reviews_overall_rating_of_5_stars_text = ! empty( $fb_reviews_overall_rating_of_5_stars_text ) ? ' ' . $fb_reviews_overall_rating_of_5_stars_text : ' of 5 stars';
438
+ $fb_reviews_overall_rating_reviews_text = get_option( 'fb_reviews_overall_rating_reviews_text' );
439
+ $fb_reviews_overall_rating_reviews_text = ! empty( $fb_reviews_overall_rating_reviews_text ) ? ' ' . $fb_reviews_overall_rating_reviews_text : ' reviews';
440
+ $fb_reviews_overall_rating_background_border_hide = get_option( 'fb_reviews_overall_rating_background_border_hide' );
441
+ $fb_reviews_overall_rating_background_border_hide = ! empty( $fb_reviews_overall_rating_background_border_hide ) && 'yes' === $fb_reviews_overall_rating_background_border_hide ? ' fts-review-details-master-wrap-no-background-or-border' : '';
442
+ echo '<div class="fts-review-details-master-wrap' . esc_attr( $fb_reviews_overall_rating_background_border_hide ) . '" itemscope itemtype="http://schema.org/CreativeWork"><i class="fts-review-star">' . esc_html( $ratings_data->overall_star_rating ) . ' &#9733;</i>';
443
+ echo '<div class="fts-review-details-wrap" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"><div class="fts-review-details"><span itemprop="ratingValue">' . esc_html( $ratings_data->overall_star_rating ) . '</span>' . esc_html( $fb_reviews_overall_rating_of_5_stars_text ) . '</div>';
444
+ echo '<div class="fts-review-details-count"><span itemprop="reviewCount">' . esc_html( $ratings_data->rating_count ) . '</span>' . esc_html( $fb_reviews_overall_rating_reviews_text ) . '</div></div></div>';
445
+
446
+ }
447
+ if ( 'reviews' !== $fb_shortcode['type'] ) {
448
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
449
+ // echo our Facebook Page Title or About Text. Commented out the group description because in the future we will be adding the about description.
450
+ $fts_align_title = isset( $fb_shortcode['title_align'] ) && '' !== $fb_shortcode['title_align'] ? 'style="text-align:' . $fb_shortcode['title_align'] . ';"' : '';
451
+ echo isset( $fb_shortcode['title'] ) && 'no' !== $fb_shortcode['title'] ? '<h1 ' . esc_attr( $fts_align_title ) . '><a href="' . esc_url( $fts_view_fb_link ) . '" target="_blank">' . esc_html( $page_data->name ) . '</a></h1>' : '';
452
+
453
+ } else {
454
+ // echo our Facebook Page Title or About Text. Commented out the group description because in the future we will be adding the about description.
455
+ echo '<h1><a href="' . esc_url( $fts_view_fb_link ) . '" target="_blank">' . esc_html( $page_data->name ) . '</a></h1>';
456
+ }
457
+ // Description.
458
+ echo isset( $fb_shortcode['description'] ) && 'no' !== $fb_shortcode['description'] ? '<div class="fts-jal-fb-group-header-desc">' . wp_kses(
459
+ $this->fts_facebook_tag_filter( $page_data->description ),
460
+ array(
461
+ 'a' => array(
462
+ 'href' => array(),
463
+ 'title' => array(),
464
+ ),
465
+ 'br' => array(),
466
+ 'em' => array(),
467
+ 'strong' => array(),
468
+ 'small' => array(),
469
+ )
470
+ ) . '</div>' : '';
471
+ }
472
+ // END Header.
473
+ echo '</div>';
474
+ // Close fts-fb-header-wrapper.
475
+ echo isset( $fb_shortcode['grid'] ) && 'yes' !== $fb_shortcode['grid'] && 'album_photos' !== $fb_shortcode['type'] && 'albums' !== $fb_shortcode['type'] ? '</div>' : '';
476
+ } //End check.
477
+
478
+ // SOCIAL BUTTON.
479
+ if ( ! $fts_count_ids >= 1 ) {
480
+ $this->fb_social_btn_placement( $fb_shortcode, $access_token, 'fb-like-top-below-title' );
481
+ }
482
+
483
+ // Feed Header.
484
+ // Make sure it's not ajaxing.
485
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
486
+
487
+ $fts_mashup_media_top = isset( $fb_shortcode['show_media'] ) && 'top' === $fb_shortcode['show_media'] ? 'fts-mashup-media-top ' : '';
488
+ $fts_mashup_show_name = isset( $fb_shortcode['show_name'] ) && 'no' === $fb_shortcode['show_name'] ? ' fts-mashup-hide-name ' : '';
489
+ $fts_mashup_show_date = isset( $fb_shortcode['show_date'] ) && 'no' === $fb_shortcode['show_date'] ? ' fts-mashup-hide-date ' : '';
490
+ $fts_mashup_show_thumbnail = isset( $fb_shortcode['show_thumbnail'] ) && 'no' === $fb_shortcode['show_thumbnail'] ? ' fts-mashup-hide-thumbnail ' : '';
491
+
492
+ if ( ! isset( $fb_type ) && 'albums' === $fb_shortcode['type'] || ! isset( $fb_type ) && 'album_photos' === $fb_shortcode['type'] || isset( $fb_shortcode['grid'] ) && 'yes' === $fb_shortcode['grid'] ) {
493
+
494
+ if ( isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
495
+ echo '';
496
+ } elseif ( isset( $fb_shortcode['slider'] ) && 'yes' !== $fb_shortcode['slider'] && 'yes' === $fb_shortcode['image_stack_animation'] || isset( $fb_shortcode['grid'] ) && 'yes' === $fb_shortcode['grid'] || isset( $fb_shortcode['image_stack_animation'] ) && 'yes' === $fb_shortcode['image_stack_animation'] ) {
497
+ wp_enqueue_script( 'fts-masonry-pkgd', plugins_url( 'feed-them-social/feeds/js/masonry.pkgd.min.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
498
+ echo '<script>';
499
+ echo 'jQuery(window).load(function(){';
500
+ echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").masonry({';
501
+ echo 'itemSelector: ".fts-jal-single-fb-post"';
502
+ echo '});';
503
+ echo '});';
504
+ echo '</script>';
505
+ }
506
+
507
+ if ( ! isset( $fb_type ) && 'albums' === $fb_shortcode['type'] || ! isset( $fb_type ) && 'album_photos' === $fb_shortcode['type'] && ! isset( $fb_type ) && ! isset( $fb_shortcode['slider'] ) || ! isset( $fb_type ) && 'album_photos' === $fb_shortcode['type'] && ! isset( $fb_type ) && isset( $fb_shortcode['slider'] ) && 'yes' !== $fb_shortcode['slider'] ) {
508
+ echo '<div class="fts-slicker-facebook-photos fts-slicker-facebook-albums' . ( isset( $fb_shortcode['video_album'] ) && $fb_shortcode['video_album'] && 'yes' === $fb_shortcode['video_album'] ? ' popup-video-gallery-fb' : '' ) . ( isset( $fb_shortcode['image_stack_animation'] ) && 'yes' === $fb_shortcode['image_stack_animation'] ? ' masonry js-masonry' : '' ) . ( isset( $fb_shortcode['images_align'] ) && $fb_shortcode['images_align'] ? ' popup-video-gallery-align-' . esc_attr( $fb_shortcode['images_align'] ) : '' ) . ' popup-gallery-fb ' . esc_attr( $fts_dynamic_class_name ) . '"';
509
+ if ( 'yes' === $fb_shortcode['image_stack_animation'] ) {
510
+ echo 'data-masonry-options=\'{ "isFitWidth": ' . ( 'no' === $fb_shortcode['center_container'] ? 'false' : 'true' ) . ' ' . ( 'no' === $fb_shortcode['image_stack_animation'] ? ', "transitionDuration": 0' : '' ) . '}\' style="margin:auto;"';
511
+ }
512
+ echo '>';
513
+ } elseif (
514
+ // slideshow scrollHorz or carousel.
515
+ ! isset( $fb_type ) && isset( $fb_shortcode['slider'] ) && 'yes' === $fb_shortcode['slider'] ) {
516
+ $fts_cycle_type = isset( $fb_shortcode['scrollhorz_or_carousel'] ) ? $fb_shortcode['scrollhorz_or_carousel'] : 'scrollHorz';
517
+
518
+ if ( isset( $fts_cycle_type ) && 'carousel' === $fts_cycle_type ) {
519
+ $fts_cycle_slideshow = 'slideshow';
520
+ } else {
521
+ $fts_cycle_slideshow = 'cycle-slideshow';
522
+ }
523
+ echo '';
524
+
525
+ // none
526
+ // dots_above_feed
527
+ // dots_and_arrows_above_feed
528
+ // dots_and_numbers_above_feed
529
+ // dots_arrows_and_numbers_above_feed
530
+ // arrows_and_numbers_above_feed
531
+ // arrows_above_feed
532
+ // numbers_above_feed
533
+ // dots_below_feed
534
+ // dots_and_arrows_below_feed
535
+ // dots_and_numbers_below_feed
536
+ // dots_arrows_and_numbers_below_feed
537
+ // arrows_and_numbers_below_feed
538
+ // arrows_below_feed
539
+ // numbers_below_feed.
540
+ $fts_controls_bar_color = ! empty( $fb_shortcode['slider_controls_bar_color'] ) ? $fb_shortcode['slider_controls_bar_color'] : '#000';
541
+ $fts_controls_text_color = ! empty( $fb_shortcode['slider_controls_text_color'] ) ? $fb_shortcode['slider_controls_text_color'] : '#ddd';
542
+ if ( isset( $fb_shortcode['slider_controls_width'] ) && 'carousel' !== $fb_shortcode['scrollhorz_or_carousel'] ) {
543
+ $max_width_set = isset( $fb_shortcode['image_width'] ) && '' !== $fb_shortcode['image_width'] && 'carousel' !== $fb_shortcode['scrollhorz_or_carousel'] ? $fb_shortcode['image_width'] : '100%';
544
+ } else {
545
+ $max_width_set = isset( $fb_shortcode['slider_controls_width'] ) && '' !== $fb_shortcode['slider_controls_width'] && 'carousel' === $fb_shortcode['scrollhorz_or_carousel'] ? $fb_shortcode['slider_controls_width'] : '100%';
546
+ }
547
+ if (
548
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_above_feed' === $fb_shortcode['slider_controls'] ||
549
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
550
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
551
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
552
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
553
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_above_feed' === $fb_shortcode['slider_controls'] ||
554
+ isset( $fb_shortcode['slider_controls'] ) && 'numbers_above_feed' === $fb_shortcode['slider_controls']
555
+ ) {
556
+
557
+ // Slider Dots Wrapper.
558
+ if (
559
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_above_feed' === $fb_shortcode['slider_controls'] ||
560
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
561
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
562
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls']
563
+ ) {
564
+
565
+ echo '<div class="fts-slider-icons-center fts-pager-option-dots-only-top" style="margin:auto; width:100%;max-width:' . esc_attr( $max_width_set . ';background:' . $fts_controls_bar_color . ';color:' . $fts_controls_text_color ) . '"><div class="fts-pager-option fts-custom-pager-' . esc_attr( $fts_dynamic_class_name ) . '"></div></div>';
566
+ }
567
+
568
+ // Slider Arrow and Numbers Wrapper.
569
+ if (
570
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
571
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
572
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
573
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
574
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_above_feed' === $fb_shortcode['slider_controls'] ||
575
+ isset( $fb_shortcode['slider_controls'] ) && 'numbers_above_feed' === $fb_shortcode['slider_controls']
576
+ ) {
577
+ echo '<div class="fts-slider-center" style="margin:auto; width:100%; max-width:' . esc_attr( $max_width_set . ';background:' . $fts_controls_bar_color . ';color:' . $fts_controls_text_color ) . '">';
578
+ }
579
+
580
+ // Previous Arrow.
581
+ if (
582
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
583
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
584
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
585
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_above_feed' === $fb_shortcode['slider_controls']
586
+ ) {
587
+ echo '<span class="fts-prevControl-icon fts-prevControl-' . esc_attr( $fts_dynamic_class_name ) . '"></span>';
588
+ }
589
+ // Numbers.
590
+ if (
591
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
592
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
593
+ isset( $fb_shortcode['slider_controls'] ) && 'numbers_above_feed' === $fb_shortcode['slider_controls'] ||
594
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_above_feed' === $fb_shortcode['slider_controls']
595
+ ) {
596
+ echo '<span id="fts-custom-caption-' . esc_attr( $fts_dynamic_class_name ) . '" class="fts-custom-caption" ></span>';
597
+ }
598
+ // Next Arrow.
599
+ if (
600
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
601
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
602
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
603
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_above_feed' === $fb_shortcode['slider_controls']
604
+ ) {
605
+ echo '<span class="fts-nextControl-icon fts-nextControl-' . esc_attr( $fts_dynamic_class_name ) . '"></span>';
606
+ }
607
+
608
+ // Slider Arrow and Numbers Wrapper.
609
+ if (
610
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_above_feed' === $fb_shortcode['slider_controls'] ||
611
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
612
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
613
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_above_feed' === $fb_shortcode['slider_controls'] ||
614
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_above_feed' === $fb_shortcode['slider_controls'] ||
615
+ isset( $fb_shortcode['slider_controls'] ) && 'numbers_above_feed' === $fb_shortcode['slider_controls']
616
+ ) {
617
+ echo '</div>';
618
+ }
619
+ }
620
+
621
+ echo '<div class="popup-gallery-fb fts-fb-slideshow fts-slicker-facebook-photos fts-slicker-facebook-albums ' . esc_attr( $fts_cycle_slideshow ) . ' ' . ( isset( $fb_shortcode['video_album'] ) && $fb_shortcode['video_album'] && 'yes' === $fb_shortcode['video_album'] ? 'popup-video-gallery-fb' : '' ) . ' ' . ( isset( $fb_shortcode['images_align'] ) && $fb_shortcode['images_align'] ? ' popup-video-gallery-align-' . esc_attr( $fb_shortcode['images_align'] ) : '' ) . ' popup-gallery-fb ' . esc_attr( $fts_dynamic_class_name ) . '"
622
 
623
  style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortcode['slider_margin'] ? esc_attr( $fb_shortcode['slider_margin'] ) : 'auto' ) . ';' . ( isset( $fts_cycle_type ) && 'carousel' === $fts_cycle_type ? 'width:100%; max-width:100%; overflow:hidden;height:' . esc_attr( $fb_shortcode['image_height'] ) . ';' : 'overflow:hidden; height:' . esc_attr( $fb_shortcode['image_height'] ) . '; max-width:' . ( isset( $fb_shortcode['image_width'] ) && '' !== $fb_shortcode['image_width'] ? esc_attr( $fb_shortcode['image_width'] ) : 'auto' ) ) . ';" data-cycle-caption="#fts-custom-caption-' . esc_attr( $fts_dynamic_class_name ) . '" data-cycle-caption-template="{{slideNum}} / {{slideCount}}" data-cycle-pager=".fts-custom-pager-' . esc_attr( $fts_dynamic_class_name ) . '" data-cycle-pause-on-hover="true" data-cycle-prev=".fts-prevControl-' . esc_attr( $fts_dynamic_class_name ) . '" data-cycle-next=".fts-nextControl-' . esc_attr( $fts_dynamic_class_name ) . '" data-cycle-timeout="' . ( ! empty( $fb_shortcode['slider_timeout'] ) ? esc_attr( $fb_shortcode['slider_timeout'] ) : '0' ) . '" data-cycle-manual-speed="' . ( ! empty( $fb_shortcode['slider_speed'] ) ? esc_attr( $fb_shortcode['slider_speed'] ) : '400' ) . '" data-cycle-auto-height="false" data-cycle-slides="> div" data-cycle-fx="' . ( ! empty( $fb_shortcode['scrollhorz_or_carousel'] ) ? esc_attr( $fb_shortcode['scrollhorz_or_carousel'] ) : '' ) . '" data-cycle-carousel-visible=' . ( ! empty( $fb_shortcode['slides_visible'] ) ? esc_attr( $fb_shortcode['slides_visible'] ) : '4' ) . ' data-cycle-swipe=true data-cycle-swipe-fx=' . ( ! empty( $fb_shortcode['scrollhorz_or_carousel'] ) ? esc_attr( $fb_shortcode['scrollhorz_or_carousel'] ) : '' ) . '>';
624
+ }
625
+
626
+ if ( isset( $fb_shortcode['grid'] ) && 'yes' === $fb_shortcode['grid'] ) {
627
+ echo '<div class="fts-slicker-facebook-posts masonry js-masonry ' . esc_attr( $fts_mashup_media_top . $fts_mashup_show_name . $fts_mashup_show_date . $fts_mashup_show_thumbnail ) . ( 'yes' === $fb_shortcode['popup'] ? 'popup-gallery-fb-posts ' : '' ) . ( 'reviews' === $fb_shortcode['type'] ? 'fts-reviews-feed ' : '' ) . esc_attr( $fts_dynamic_class_name ) . ' " style="margin:auto;" data-masonry-options=\'{ "isFitWidth": ' . ( 'no' === $fb_shortcode['center_container'] ? 'false' : 'true' ) . ' ' . ( 'no' === $fb_shortcode['image_stack_animation'] ? ', "transitionDuration": 0' : '' ) . '}\'>';
628
+ }
629
+ } else {
630
+ echo '<div class="fts-jal-fb-group-display fts-simple-fb-wrapper ' . esc_attr( $fts_mashup_media_top . $fts_mashup_show_name . $fts_mashup_show_date . $fts_mashup_show_thumbnail ) . ( isset( $fb_shortcode['popup'] ) && 'yes' === $fb_shortcode['popup'] ? ' popup-gallery-fb-posts ' : '' ) . ( 'reviews' === $fb_shortcode['type'] ? 'fts-reviews-feed ' : '' ) . esc_attr( $fts_dynamic_class_name ) . ' ' . ( 'auto' !== $fb_shortcode['height'] && ! empty( $fb_shortcode['height'] ) ? 'fts-fb-scrollable" style="height:' . esc_attr( $fb_shortcode['height'] ) . '"' : '"' ) . '>';
631
+ }
632
+ } //End ajaxing Check
633
+
634
+ // *********************
635
+ // Post Information
636
+ // *********************
637
+ $fb_load_more_text = get_option( 'fb_load_more_text' ) ? get_option( 'fb_load_more_text' ) : esc_html( 'Load More', 'feed-them-social' );
638
+ $response_post_array = $this->get_post_info( $feed_data, $fb_shortcode, $access_token, $language, $fb_cache_name );
639
+
640
+ // Single event info call.
641
+ if ( 'events' === $fb_shortcode['type'] ) {
642
+ $single_event_array_response = $this->get_event_post_info( $feed_data, $fb_shortcode, $access_token, $language );
643
+ }
644
+
645
+ $set_zero = 0;
646
+
647
+ // echo '<br/><br/>feed array<br/><br/>';.
648
+ // echo '<pre>';
649
+ // print_r($feed_data );
650
+ // echo '</pre>';
651
+ // THE MAIN FEED
652
+ // LOOP to fix Post count!
653
+ foreach ( $feed_data->data as $k => $v ) {
654
+ if ( $k >= $fb_shortcode['posts'] ) {
655
+ unset( $feed_data->data[ $k ] );
656
+ }
657
+ }
658
+
659
+ // Nov. 4th. 2016 // Uncomment this to sort the dates proper if facebook is returning them out of order.
660
+ // We had one case of this here for a list of posts coming from an event.
661
+ // https://wordpress.org/support/topic/facebook-event-posts-not-ordered-by-date/
662
+ // usort($feed_data->data, array($this, "dateSort"));
663
+ // Loop for all facebook feeds.
664
+ foreach ( $feed_data->data as $post_data ) {
665
+
666
+ $fb_message = isset( $post_data->message ) ? $post_data->message : '';
667
+ $fb_status_type = isset( $post_data->status_type ) ? $post_data->status_type : '';
668
+
669
+ $fb_story = isset( $post_data->story ) ? $post_data->story : '';
670
+ $fb_type = isset( $post_data->type ) ? $post_data->type : '';
671
+
672
+ // This is the method to skip empty posts or posts that are simply about changing settings or other non important post types.
673
+ if ( 'status' === $fb_type && empty( $fb_message ) && empty( $fb_story ) || 'event' === $fb_type || 'event' === $fb_type && false !== strpos( $fb_story, 'shared their event' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'changed the name of the event to' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'changed the privacy setting' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'an admin of the group' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'created the group' ) || 'status' === $fb_type && false !== strpos( $fb_story, 'added an event' ) || 'event' === $fb_type && false !== strpos( $fb_story, 'added an event' ) ) {
674
+ } else {
675
+ // define type note also affects load more fucntion call.
676
+ if ( ! $fb_type && 'album_photos' === $fb_shortcode['type'] ) {
677
+ $fb_type = 'photo';
678
+ }
679
+ if ( ! $fb_type && 'events' === $fb_shortcode['type'] ) {
680
+ $fb_type = 'events';
681
+
682
+ }
683
+
684
+ $post_types = new fts_facebook_feed_post_types();
685
+ $single_event_array_response = isset( $single_event_array_response ) ? $single_event_array_response : '';
686
+
687
+ // echo '<br/><br/>were function gets called <br/><br/>' .
688
+ // print_r( $post_data );.
689
+ $post_types->feed_post_types( $set_zero, $fb_type, $post_data, $fb_shortcode, $response_post_array, $single_event_array_response );
690
+
691
+ }
692
+
693
+ $set_zero++;
694
+ }// END POST foreach
695
+
696
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'reviews' !== $fb_shortcode['type'] || is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && 'reviews' === $fb_shortcode['type'] ) {
697
+ if ( ! empty( $feed_data->data ) ) {
698
+ $this->fts_facebook_loadmore( $atts, $feed_data, $fb_type, $fb_shortcode, sanitize_key( $_REQUEST['fts_dynamic_name'] ) );
699
+ }
700
+ }
701
+
702
+ echo '</div>'; // closing main div for fb photos, groups etc
703
+ // only show this script if the height option is set to a number.
704
+ if ( 'auto' !== $fb_shortcode['height'] && ! empty( $fb_shortcode['height'] ) ) {
705
+ echo '<script>';
706
+ // this makes it so the page does not scroll if you reach the end of scroll bar or go back to top'.
707
+ echo 'jQuery.fn.isolatedScrollFacebookFTS = function() {';
708
+ echo 'this.bind("mousewheel DOMMouseScroll", function (e) {';
709
+ echo 'var delta = e.wheelDelta || (e.originalEvent && e.originalEvent.wheelDelta) || -e.detail,';
710
+ echo 'bottomOverflow = this.scrollTop + jQuery(this).outerHeight() - this.scrollHeight >= 0,';
711
+ echo 'topOverflow = this.scrollTop <= 0;';
712
+ echo 'if ((delta < 0 && bottomOverflow) || (delta > 0 && topOverflow)) {';
713
+ echo 'e.preventDefault();';
714
+ echo '}';
715
+ echo '});';
716
+ echo 'return this;';
717
+ echo '};';
718
+ echo 'jQuery(".fts-fb-scrollable").isolatedScrollFacebookFTS();';
719
+ echo '</script>';
720
+ } //end $fb_shortcode['height'] !== 'auto' && empty($fb_shortcode['height']) == NULL
721
+ // Make sure it's not ajaxing.
722
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
723
+ echo '<div class="fts-clear"></div><div id="fb-root"></div>';
724
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'reviews' !== $fb_shortcode['type'] || is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && 'reviews' === $fb_shortcode['type'] ) {
725
+ if ( 'button' === $fb_shortcode['loadmore'] ) {
726
+
727
+ echo '<div class="fts-fb-load-more-wrapper">';
728
+ echo '<div id="loadMore_' . esc_attr( $_REQUEST['fts_dynamic_name'] ) . '" style="';
729
+ if ( isset( $fb_shortcode['loadmore_btn_maxwidth'] ) && '' !== $fb_shortcode['loadmore_btn_maxwidth'] ) {
730
+ echo 'max-width:' . esc_attr( $fb_shortcode['loadmore_btn_maxwidth'] ) . ';';
731
+ }
732
+ $loadmore_btn_margin = isset( $fb_shortcode['loadmore_btn_margin'] ) ? $fb_shortcode['loadmore_btn_margin'] : '20px';
733
+ echo 'margin:' . esc_attr( $loadmore_btn_margin ) . ' auto ' . esc_attr( $loadmore_btn_margin ) . '" class="fts-fb-load-more">' . esc_html( $fb_load_more_text ) . '</div>';
734
+ echo '</div>';
735
+ }
736
+ }
737
+ }//End Check
738
+
739
+ // Checks for sliders.
740
+ if (
741
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_below_feed' === $fb_shortcode['slider_controls'] ||
742
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
743
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
744
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
745
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
746
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_below_feed' === $fb_shortcode['slider_controls'] ||
747
+ isset( $fb_shortcode['slider_controls'] ) && 'numbers_below_feed' === $fb_shortcode['slider_controls']
748
+ ) {
749
+
750
+ // Slider Dots Wrapper.
751
+ if (
752
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_below_feed' === $fb_shortcode['slider_controls'] ||
753
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
754
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
755
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls']
756
+ ) {
757
+ if ( isset( $fb_shortcode['slider_controls_width'] ) && 'carousel' !== $fb_shortcode['scrollhorz_or_carousel'] ) {
758
+ $max_width_set = isset( $fb_shortcode['image_width'] ) && '' !== $fb_shortcode['image_width'] && 'carousel' !== $fb_shortcode['scrollhorz_or_carousel'] ? $fb_shortcode['image_width'] : '100%';
759
+ } else {
760
+ $max_width_set = isset( $fb_shortcode['slider_controls_width'] ) && '' !== $fb_shortcode['slider_controls_width'] && 'carousel' === $fb_shortcode['scrollhorz_or_carousel'] ? $fb_shortcode['slider_controls_width'] : '100%';
761
+ }
762
+
763
+ echo '<div class="fts-slider-icons-center" style="margin:auto; width:100%;max-width:' . esc_attr( $max_width_set ) . ';background:' . esc_attr( $fts_controls_bar_color ) . ';color:' . esc_attr( $fts_controls_text_color ) . '"><div class="fts-pager-option fts-custom-pager-' . esc_attr( $fts_dynamic_class_name ) . '"></div></div>';
764
+ }
765
+
766
+ // Slider Arrow and Numbers Wrapper.
767
+ if (
768
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
769
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
770
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
771
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
772
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_below_feed' === $fb_shortcode['slider_controls'] ||
773
+ isset( $fb_shortcode['slider_controls'] ) && 'numbers_below_feed' === $fb_shortcode['slider_controls']
774
+ ) {
775
+ echo '<div class="fts-slider-center" style="margin:auto; width:100%; max-width:' . esc_attr( $max_width_set ) . ';background:' . esc_attr( $fts_controls_bar_color ) . ';color:' . esc_attr( $fts_controls_text_color ) . '">';
776
+ }
777
+
778
+ // Previous Arrow.
779
+ if (
780
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
781
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
782
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
783
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_below_feed' === $fb_shortcode['slider_controls']
784
+ ) {
785
+ echo '<span class="fts-prevControl-icon fts-prevControl-' . esc_attr( $fts_dynamic_class_name ) . '"></span>';
786
+ }
787
+ // Numbers.
788
+ if (
789
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
790
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
791
+ isset( $fb_shortcode['slider_controls'] ) && 'numbers_below_feed' === $fb_shortcode['slider_controls'] ||
792
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_below_feed' === $fb_shortcode['slider_controls']
793
+ ) {
794
+ echo '<span id="fts-custom-caption-' . esc_attr( $fts_dynamic_class_name ) . '" class="fts-custom-caption" ></span>';
795
+ }
796
+ // Next Arrow.
797
+ if (
798
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
799
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
800
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
801
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_below_feed' === $fb_shortcode['slider_controls']
802
+ ) {
803
+ echo '<span class="fts-nextControl-icon fts-nextControl-' . esc_attr( $fts_dynamic_class_name ) . '"></span>';
804
+ }
805
+
806
+ // Slider Arrow and Numbers Wrapper.
807
+ if (
808
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_arrows_below_feed' === $fb_shortcode['slider_controls'] ||
809
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
810
+ isset( $fb_shortcode['slider_controls'] ) && 'dots_arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
811
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_and_numbers_below_feed' === $fb_shortcode['slider_controls'] ||
812
+ isset( $fb_shortcode['slider_controls'] ) && 'arrows_below_feed' === $fb_shortcode['slider_controls'] ||
813
+ isset( $fb_shortcode['slider_controls'] ) && 'numbers_below_feed' === $fb_shortcode['slider_controls']
814
+ ) {
815
+ echo '</div>';
816
+ }
817
+ }
818
+
819
+ unset( $_REQUEST['next_url'] );
820
+
821
+ // ******************
822
+ // SOCIAL BUTTON
823
+ // ******************
824
+ if ( ! $fts_count_ids >= 1 ) {
825
+ $this->fb_social_btn_placement( $fb_shortcode, $access_token, 'fb-like-below' );
826
+ }
827
+
828
+ return ob_get_clean();
829
+ }
830
+
831
+ /**
832
+ * Get FTS Dnamic Class Name
833
+ *
834
+ * @return string
835
+ * @since 1.9.6
836
+ */
837
+ public function get_fts_dynamic_class_name() {
838
+ $fts_dynamic_class_name = '';
839
+ if ( isset( $_REQUEST['fts_dynamic_name'] ) ) {
840
+ $fts_dynamic_class_name = 'feed_dynamic_class' . sanitize_key( $_REQUEST['fts_dynamic_name'] );
841
+ }
842
+ return $fts_dynamic_class_name;
843
+ }
844
+
845
+ /**
846
+ * FTS Facebook Location
847
+ *
848
+ * Facebook Post Location.
849
+ *
850
+ * @param null $fb_type What kind of facebook feed it is.
851
+ * @param string $location The location of the photo or video.
852
+ * @since 1.9.6
853
+ */
854
+ public function fts_facebook_location( $fb_type = null, $location ) {
855
+ switch ( $fb_type ) {
856
+ case 'app':
857
+ case 'cover':
858
+ case 'profile':
859
+ case 'mobile':
860
+ case 'wall':
861
+ case 'normal':
862
+ case 'album':
863
+ echo '<div class="fts-fb-location">' . esc_html( $location ) . '</div>';
864
+ }
865
+ }
866
+
867
+ /**
868
+ * FTS Facebook Post Photo
869
+ *
870
+ * @param string $fb_link The link to post.
871
+ * @param string $fb_shortcode The shortcode.
872
+ * @param string $photo_from Who it's from.
873
+ * @param string $photo_source The source url.
874
+ * @since 1.9.6
875
+ */
876
+ public function fts_facebook_post_photo( $fb_link, $fb_shortcode, $photo_from, $photo_source ) {
877
+ if ( 'album_photos' === $fb_shortcode['type'] || 'albums' === $fb_shortcode['type'] ) {
878
+ echo '<a href="' . esc_url( $fb_link ) . '" target="_blank" class="fts-jal-fb-picture album-photo-fts" style="width:' . esc_attr( $fb_shortcode['image_width'] . ';height:' . $fb_shortcode['image_height'] ) . ';';
879
+ if ( 'albums' === $fb_shortcode['type'] ) {
880
+ echo 'background-image:url(' . esc_url( 'https://graph.facebook.com/' . $photo_source . '/picture' ) . ');">';
881
+ } else {
882
+ echo 'background-image:url(' . esc_url( $photo_source ) . ');">';
883
+ }
884
+ echo '</a>';
885
+ } else {
886
+ $fb_shortcode_popup = isset( $fb_shortcode['popup'] ) ? $fb_shortcode['popup'] : '';
887
+ if ( 'yes' === $fb_shortcode_popup && 'javascript:;' !== $fb_link ) {
888
+ echo '<a href="' . esc_url( $photo_source ) . '" target="_blank" class="fts-facebook-link-target fts-jal-fb-picture fts-fb-large-photo"><img border="0" alt="' . esc_html( $photo_from ) . '" src="' . esc_url( $photo_source ) . '"/></a>';
889
+
890
+ } else {
891
+ echo '<a href="' . esc_url( $fb_link ) . '" target="_blank" class="fts-jal-fb-picture"><img border="0" alt="' . esc_html( $photo_from ) . '" src="' . esc_url( $photo_source ) . '"/></a>';
892
+ }
893
+ }
894
+ }
895
+
896
+ /**
897
+ * FTS Facebook Post Name
898
+ *
899
+ * @param string $fb_link The post link.
900
+ * @param string $fb_name The facebook name.
901
+ * @param string $fb_type The type of feed.
902
+ * @param null $fb_post_id The facebook post ID.
903
+ * @since 1.9.6
904
+ */
905
+ public function fts_facebook_post_name( $fb_link, $fb_name, $fb_type, $fb_post_id = null ) {
906
+ switch ( $fb_type ) {
907
+ case 'video':
908
+ echo '<a href="' . esc_url( $fb_link ) . '" target="_blank" class="fts-jal-fb-name fb-id' . esc_attr( $fb_post_id ) . '">' . wp_kses(
909
+ $this->fts_facebook_tag_filter( $fb_name ),
910
+ array(
911
+ 'a' => array(
912
+ 'href' => array(),
913
+ 'title' => array(),
914
+ ),
915
+ 'br' => array(),
916
+ 'em' => array(),
917
+ 'strong' => array(),
918
+ 'small' => array(),
919
+ )
920
+ ) . '</a>';
921
+ break;
922
+ default:
923
+ $fb_name = $this->fts_facebook_tag_filter( $fb_name );
924
+ echo '<a href="' . esc_url( $fb_link ) . '" target="_blank" class="fts-jal-fb-name">' . wp_kses(
925
+ $this->fts_facebook_tag_filter( $fb_name ),
926
+ array(
927
+ 'a' => array(
928
+ 'href' => array(),
929
+ 'title' => array(),
930
+ ),
931
+ 'br' => array(),
932
+ 'em' => array(),
933
+ 'strong' => array(),
934
+ 'small' => array(),
935
+ )
936
+ ) . '</a>';
937
+ break;
938
+ }
939
+ }
940
+
941
+ /**
942
+ * FTS Facebook Post Description
943
+ *
944
+ * @param string $fb_description The post description.
945
+ * @param string $fb_shortcode The shortcode.
946
+ * @param string $fb_type The type of feed.
947
+ * @param null $fb_post_id The post ID.
948
+ * @param null $fb_by The post by.
949
+ * @since 1.9.6
950
+ */
951
+ public function fts_facebook_post_desc( $fb_description, $fb_shortcode, $fb_type, $fb_post_id = null, $fb_by = null ) {
952
+ $trunacate_words = new \ FeedThemSocialTruncateHTML();
953
+ switch ( $fb_type ) {
954
+ case 'video':
955
+ $fb_description = $this->fts_facebook_tag_filter( $fb_description );
956
+ echo '<div class="fts-jal-fb-description fb-id' . esc_attr( $fb_post_id ) . '">' . wp_kses(
957
+ $fb_description,
958
+ array(
959
+ 'a' => array(
960
+ 'href' => array(),
961
+ 'title' => array(),
962
+ ),
963
+ 'br' => array(),
964
+ 'em' => array(),
965
+ 'strong' => array(),
966
+ 'small' => array(),
967
+ )
968
+ ) . '</div>';
969
+ break;
970
+ case 'photo':
971
+ if ( 'album_photos' === $fb_shortcode['type'] ) {
972
+ if ( array_key_exists( 'words', $fb_shortcode ) ) {
973
+ $more = isset( $more ) ? $more : '';
974
+ $trimmed_content = $trunacate_words->fts_custom_trim_words( $fb_description, $fb_shortcode['words'], $more );
975
+ echo '<div class="fts-jal-fb-description fts-non-popup-text">' . wp_kses(
976
+ $trimmed_content,
977
+ array(
978
+ 'a' => array(
979
+ 'href' => array(),
980
+ 'title' => array(),
981
+ ),
982
+ 'br' => array(),
983
+ 'em' => array(),
984
+ 'strong' => array(),
985
+ 'small' => array(),
986
+ )
987
+ ) . '</div>';
988
+ // Here we display the full description in the popup.
989
+ if ( 'yes' === $fb_shortcode['popup'] || 'yes' === $fb_shortcode['video_album'] ) {
990
+ echo '<div class="fts-jal-fb-description fts-jal-fb-description-popup" style="display: none;">' . wp_kses(
991
+ nl2br( $fb_description ),
992
+ array(
993
+ 'a' => array(
994
+ 'href' => array(),
995
+ 'title' => array(),
996
+ ),
997
+ 'br' => array(),
998
+ 'em' => array(),
999
+ 'strong' => array(),
1000
+ 'small' => array(),
1001
+ )
1002
+ ) . '</div>';
1003
+ }
1004
+ } elseif ( isset( $fb_shortcode['words'] ) && '0' !== $fb_shortcode['words'] ) {
1005
+ $fb_description = $this->fts_facebook_tag_filter( $fb_description );
1006
+ echo '<div class="fts-jal-fb-description">' . wp_kses(
1007
+ nl2br( $fb_description ),
1008
+ array(
1009
+ 'a' => array(
1010
+ 'href' => array(),
1011
+ 'title' => array(),
1012
+ ),
1013
+ 'br' => array(),
1014
+ 'em' => array(),
1015
+ 'strong' => array(),
1016
+ 'small' => array(),
1017
+ )
1018
+ ) . '</div>';
1019
+ }
1020
+ }
1021
+ break;
1022
+ case 'albums':
1023
+ if ( 'albums' === $fb_shortcode['type'] ) {
1024
+ if ( array_key_exists( 'words', $fb_shortcode ) ) {
1025
+ $more = isset( $more ) ? $more : '';
1026
+ $trimmed_content = $trunacate_words->fts_custom_trim_words( $fb_description, $fb_shortcode['words'], $more );
1027
+ echo '<div class="fts-jal-fb-description">' . wp_kses(
1028
+ $trimmed_content,
1029
+ array(
1030
+ 'a' => array(
1031
+ 'href' => array(),
1032
+ 'title' => array(),
1033
+ ),
1034
+ 'br' => array(),
1035
+ 'em' => array(),
1036
+ 'strong' => array(),
1037
+ 'small' => array(),
1038
+ )
1039
+ ) . '</div>';
1040
+ } else {
1041
+ $fb_description = $this->fts_facebook_tag_filter( $fb_description );
1042
+ echo '<div class="fts-jal-fb-description">' . wp_kses(
1043
+ nl2br( $fb_description ),
1044
+ array(
1045
+ 'a' => array(
1046
+ 'href' => array(),
1047
+ 'title' => array(),
1048
+ ),
1049
+ 'br' => array(),
1050
+ 'em' => array(),
1051
+ 'strong' => array(),
1052
+ 'small' => array(),
1053
+ )
1054
+ ) . '</div>';
1055
+ }
1056
+ } else {
1057
+ // Do for Default feeds or the video gallery feed.
1058
+ if ( isset( $fb_shortcode['words'] ) && '0' !== $fb_shortcode['words'] ) {
1059
+ $fb_description = $this->fts_facebook_tag_filter( $fb_description );
1060
+ if ( is_array( $fb_shortcode ) && array_key_exists( 'words', $fb_shortcode ) && '0' !== $fb_shortcode['words'] ) {
1061
+ $more = isset( $more ) ? $more : '';
1062
+ $trimmed_content = $trunacate_words->fts_custom_trim_words( $fb_description, $fb_shortcode['words'], $more );
1063
+ echo '<div class="fts-jal-fb-description">' . wp_kses(
1064
+ $trimmed_content,
1065
+ array(
1066
+ 'a' => array(
1067
+ 'href' => array(),
1068
+ 'title' => array(),
1069
+ ),
1070
+ 'br' => array(),
1071
+ 'em' => array(),
1072
+ 'strong' => array(),
1073
+ 'small' => array(),
1074
+ )
1075
+ ) . '</div>';
1076
+ } else {
1077
+ echo '<div class="fts-jal-fb-description">';
1078
+ echo wp_kses(
1079
+ nl2br( $fb_description ),
1080
+ array(
1081
+ 'a' => array(
1082
+ 'href' => array(),
1083
+ 'title' => array(),
1084
+ ),
1085
+ 'br' => array(),
1086
+ 'em' => array(),
1087
+ 'strong' => array(),
1088
+ 'small' => array(),
1089
+ )
1090
+ );
1091
+ echo '</div>';
1092
+ }
1093
+ if ( ! empty( $fb_link ) ) {
1094
+ echo '<div>By: <a href="' . esc_url( $fb_link ) . '">' . esc_html( $fb_by ) . '<a/></div>';
1095
+ }
1096
+ }
1097
+ }
1098
+ break;
1099
+ default:
1100
+ include_once ABSPATH . 'wp-admin/includes/plugin.php';
1101
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) || is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
1102
+ // here we trim the words for the links description text... for the premium version. The $fb_shortcode['words'] string actually comes from the javascript.
1103
+ if ( is_array( $fb_shortcode ) && array_key_exists( 'words', $fb_shortcode ) ) {
1104
+ $more = isset( $more ) ? $more : '';
1105
+ $trimmed_content = $trunacate_words->fts_custom_trim_words( $fb_description, $fb_shortcode['words'], $more );
1106
+ echo '<div class="jal-fb-description">' . wp_kses(
1107
+ $trimmed_content,
1108
+ array(
1109
+ 'a' => array(
1110
+ 'href' => array(),
1111
+ 'title' => array(),
1112
+ ),
1113
+ 'br' => array(),
1114
+ 'em' => array(),
1115
+ 'strong' => array(),
1116
+ 'small' => array(),
1117
+ )
1118
+ ) . '</div>';
1119
+ } elseif ( is_array( $fb_shortcode ) && array_key_exists( 'words', $fb_shortcode ) && '0' !== $fb_shortcode['words'] ) {
1120
+ $fb_description = $this->fts_facebook_tag_filter( $fb_description );
1121
+ echo '<div class="jal-fb-description">' . wp_kses(
1122
+ nl2br( $fb_description ),
1123
+ array(
1124
+ 'a' => array(
1125
+ 'href' => array(),
1126
+ 'title' => array(),
1127
+ ),
1128
+ 'br' => array(),
1129
+ 'em' => array(),
1130
+ 'strong' => array(),
1131
+ 'small' => array(),
1132
+ )
1133
+ ) . '</div>';
1134
+ }
1135
+ } else {
1136
+ // if the premium plugin is not active we will just show the regular full description.
1137
+ $fb_description = $this->fts_facebook_tag_filter( $fb_description );
1138
+ echo '<div class="jal-fb-description">' . wp_kses(
1139
+ nl2br( $fb_description ),
1140
+ array(
1141
+ 'a' => array(
1142
+ 'href' => array(),
1143
+ 'title' => array(),
1144
+ ),
1145
+ 'br' => array(),
1146
+ 'em' => array(),
1147
+ 'strong' => array(),
1148
+ 'small' => array(),
1149
+ )
1150
+ ) . '</div>';
1151
+ }
1152
+ }
1153
+ }
1154
+
1155
+ /**
1156
+ * FTS Facebook Post Caption
1157
+ *
1158
+ * @param string $fb_caption The post caption.
1159
+ * @param string $fb_shortcode The shortcode.
1160
+ * @param string $fb_type The type of feed.
1161
+ * @param null $fb_post_id The post ID.
1162
+ * @since 1.9.6
1163
+ */
1164
+ public function fts_facebook_post_cap( $fb_caption, $fb_shortcode, $fb_type, $fb_post_id = null ) {
1165
+ $trunacate_words = new \ FeedThemSocialTruncateHTML();
1166
+ switch ( $fb_type ) {
1167
+ case 'video':
1168
+ $fb_caption = $this->fts_facebook_tag_filter( str_replace( 'www.', '', $fb_caption ) );
1169
+ echo '<div class="fts-jal-fb-caption fb-id' . esc_attr( $fb_post_id ) . '">' . wp_kses(
1170
+ $fb_caption,
1171
+ array(
1172
+ 'a' => array(
1173
+ 'href' => array(),
1174
+ 'title' => array(),
1175
+ ),
1176
+ 'br' => array(),
1177
+ 'em' => array(),
1178
+ 'strong' => array(),
1179
+ 'small' => array(),
1180
+ )
1181
+ ) . '</div>';
1182
+ break;
1183
+ default:
1184
+ include_once ABSPATH . 'wp-admin/includes/plugin.php';
1185
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) || is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
1186
+ // here we trim the words for the links description text... for the premium version. The $fb_shortcode['words'] string actually comes from the javascript.
1187
+ if ( array_key_exists( 'words', $fb_shortcode ) ) {
1188
+ $more = isset( $more ) ? $more : '';
1189
+ $trimmed_content = $trunacate_words->fts_custom_trim_words( $fb_caption, $fb_shortcode['words'], $more );
1190
+ echo '<div class="jal-fb-caption">' . wp_kses(
1191
+ $trimmed_content,
1192
+ array(
1193
+ 'a' => array(
1194
+ 'href' => array(),
1195
+ 'title' => array(),
1196
+ ),
1197
+ 'br' => array(),
1198
+ 'em' => array(),
1199
+ 'strong' => array(),
1200
+ 'small' => array(),
1201
+ )
1202
+ ) . '</div>';
1203
+ } else {
1204
+ $fb_caption = $this->fts_facebook_tag_filter( $fb_caption );
1205
+ echo '<div class="jal-fb-caption">' . wp_kses(
1206
+ nl2br( $fb_caption ),
1207
+ array(
1208
+ 'a' => array(
1209
+ 'href' => array(),
1210
+ 'title' => array(),
1211
+ ),
1212
+ 'br' => array(),
1213
+ 'em' => array(),
1214
+ 'strong' => array(),
1215
+ 'small' => array(),
1216
+ )
1217
+ ) . '</div>';
1218
+ }
1219
+ } else {
1220
+ // if the premium plugin is not active we will just show the regular full description.
1221
+ $fb_caption = $this->fts_facebook_tag_filter( $fb_caption );
1222
+ echo '<div class="jal-fb-caption">' . wp_kses(
1223
+ nl2br( $fb_caption ),
1224
+ array(
1225
+ 'a' => array(
1226
+ 'href' => array(),
1227
+ 'title' => array(),
1228
+ ),
1229
+ 'br' => array(),
1230
+ 'em' => array(),
1231
+ 'strong' => array(),
1232
+ 'small' => array(),
1233
+ )
1234
+ ) . '</div>';
1235
+ }
1236
+ }
1237
+ }
1238
+
1239
+ /**
1240
+ * Get Likes Shares Comments
1241
+ *
1242
+ * Get the total count for all.
1243
+ *
1244
+ * @param string $response_post_array The array from facebook.
1245
+ * @param string $post_data_key The post data Key.
1246
+ * @param string $fb_post_share_count The post Share Count.
1247
+ * @return array
1248
+ * @since 1.9.6
1249
+ */
1250
+ public function get_likes_shares_comments( $response_post_array, $post_data_key, $fb_post_share_count ) {
1251
+ $lsc_array = array();
1252
+ // Get Likes & Comments.
1253
+ if ( $response_post_array ) {
1254
+ if ( isset( $response_post_array[ $post_data_key . '_likes' ] ) ) {
1255
+ $like_count_data = json_decode( $response_post_array[ $post_data_key . '_likes' ] );
1256
+
1257
+ // Like Count.
1258
+ if ( ! empty( $like_count_data->summary->total_count ) ) {
1259
+ $fb_post_like_count = $like_count_data->summary->total_count;
1260
+ } else {
1261
+ $fb_post_like_count = 0;
1262
+ }
1263
+ if ( 0 === $fb_post_like_count ) {
1264
+ $lsc_array['likes'] = '';
1265
+ }
1266
+ if ( 1 === $fb_post_like_count ) {
1267
+ $lsc_array['likes'] = "<i class='icon-thumbs-up'></i> 1";
1268
+ }
1269
+ if ( $fb_post_like_count > '1' ) {
1270
+ $lsc_array['likes'] = "<i class='icon-thumbs-up'></i> " . esc_html( $fb_post_like_count );
1271
+ }
1272
+ }
1273
+ if ( isset( $response_post_array[ $post_data_key . '_comments' ] ) ) {
1274
+ $comment_count_data = json_decode( $response_post_array[ $post_data_key . '_comments' ] );
1275
+
1276
+ if ( ! empty( $comment_count_data->summary->total_count ) ) {
1277
+ $fb_post_comments_count = $comment_count_data->summary->total_count;
1278
+ } else {
1279
+ $fb_post_comments_count = 0;
1280
+ }
1281
+ if ( 0 === $fb_post_comments_count ) {
1282
+ $lsc_array['comments'] = '';
1283
+ }
1284
+ if ( 1 === $fb_post_comments_count ) {
1285
+ $lsc_array['comments'] = "<i class='icon-comments'></i> 1";
1286
+ $lsc_array['comments_thread'] = $comment_count_data;
1287
+
1288
+ }
1289
+ if ( $fb_post_comments_count > '1' ) {
1290
+ $lsc_array['comments'] = "<i class='icon-comments'></i> " . $fb_post_comments_count;
1291
+ $lsc_array['comments_thread'] = $comment_count_data;
1292
+ }
1293
+ }
1294
+ }
1295
+ // Shares Count.
1296
+ if ( 0 === $fb_post_share_count || ! $fb_post_share_count ) {
1297
+ $lsc_array['shares'] = '';
1298
+ }
1299
+ if ( 1 === $fb_post_share_count ) {
1300
+ $lsc_array['shares'] = "<i class='icon-file'></i> 1";
1301
+ }
1302
+ if ( $fb_post_share_count > '1' ) {
1303
+ $lsc_array['shares'] = "<i class='icon-file'></i> " . $fb_post_share_count;
1304
+ }
1305
+ return $lsc_array;
1306
+ }
1307
+
1308
+
1309
+ /**
1310
+ * FTS Facebook Post See More
1311
+ *
1312
+ * Generate See More Button.
1313
+ *
1314
+ * @param string $fb_link The facebook link.
1315
+ * @param string $lcs_array The lcs array.
1316
+ * @param string $fb_type The type of feed.
1317
+ * @param null $fb_post_id The post id.
1318
+ * @param string $fb_shortcode The shortcode.
1319
+ * @param null $fb_post_user_id The user id.
1320
+ * @param null $fb_post_single_id The single post id.
1321
+ * @param null $single_event_id The event id.
1322
+ * @param string $post_data The post data.
1323
+ * @since 1.9.6
1324
+ */
1325
+ public function fts_facebook_post_see_more( $fb_link, $lcs_array, $fb_type, $fb_post_id = null, $fb_shortcode, $fb_post_user_id = null, $fb_post_single_id = null, $single_event_id = null, $post_data ) {
1326
+
1327
+ $description = isset( $post_data->message ) ? $post_data->message : '';
1328
+ // SHOW THE FB FEED PRINT_R
1329
+ // echo'<pre>';.
1330
+ // print_r();.
1331
+ // echo'</pre>';.
1332
+ $view_on_facebook = get_option( 'fb_view_on_fb_fts' ) ? get_option( 'fb_view_on_fb_fts' ) : __( 'View on Facebook', 'feed-them-social' );
1333
+ $share_this = new feed_them_social_functions();
1334
+ switch ( $fb_type ) {
1335
+ case 'events':
1336
+ $single_event_id = 'https://www.facebook.com/events/' . $single_event_id;
1337
+ echo '<div class="fts-likes-shares-etc-wrap">';
1338
+ echo $share_this->fts_share_option( $single_event_id, $description );
1339
+ echo '<a href="' . esc_attr( $single_event_id ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html( $view_on_facebook ) . '</a></div>';
1340
+ break;
1341
+ case 'photo':
1342
+ if ( ! empty( $fb_link ) ) {
1343
+ echo '<div class="fts-likes-shares-etc-wrap">';
1344
+ echo $share_this->fts_share_option( $fb_link, $description );
1345
+ echo '<a href="' . esc_url( $fb_link ) . '" target="_blank" class="fts-jal-fb-see-more">';
1346
+ } else {
1347
+ // exception for videos.
1348
+ $single_video_id = 'https://www.facebook.com/' . $fb_post_id;
1349
+ echo '<div class="fts-likes-shares-etc-wrap">';
1350
+ echo $share_this->fts_share_option( $single_video_id, $description );
1351
+ echo '<a href="' . esc_url( $single_video_id ) . '" target="_blank" class="fts-jal-fb-see-more">';
1352
+ }
1353
+ if ( 'album_photos' === $fb_shortcode['type'] && 'yes' === $fb_shortcode['hide_date_likes_comments'] ) {
1354
+
1355
+ echo '<div class="hide-date-likes-comments-etc">' . wp_kses(
1356
+ $lcs_array['likes'] . ' ' . $lcs_array['comments'] . ' ' . $lcs_array['shares'],
1357
+ array(
1358
+ 'a' => array(
1359
+ 'href' => array(),
1360
+ 'title' => array(),
1361
+ ),
1362
+ 'i' => array(
1363
+ 'class' => array(),
1364
+ ),
1365
+ )
1366
+ ) . ' &nbsp;&nbsp;</div>';
1367
+ } else {
1368
+
1369
+ echo '' . wp_kses(
1370
+ $lcs_array['likes'] . ' ' . $lcs_array['comments'] . ' ' . $lcs_array['shares'],
1371
+ array(
1372
+ 'a' => array(
1373
+ 'href' => array(),
1374
+ 'title' => array(),
1375
+ ),
1376
+ 'i' => array(
1377
+ 'class' => array(),
1378
+ ),
1379
+ )
1380
+ ) . ' &nbsp;&nbsp;';
1381
+ }
1382
+ echo '&nbsp;' . esc_html( $view_on_facebook ) . '</a></div>';
1383
+ break;
1384
+ case 'app':
1385
+ case 'cover':
1386
+ case 'profile':
1387
+ case 'mobile':
1388
+ case 'wall':
1389
+ case 'normal':
1390
+ case 'albums':
1391
+ $url_parsed = parse_url( $fb_link, PHP_URL_QUERY );
1392
+ $params = parse_str( $url_parsed, $params );
1393
+ $new_album_url = str_replace( 'album.php?fbid=' . $params['fbid'] . '&id=' . $params['id'] . '&aid=' . $params['aid'], 'media/set/?set=a.' . $params['fbid'] . '.' . $params['aid'] . '.' . $params['id'], $fb_link );
1394
+
1395
+ echo '<div class="fts-likes-shares-etc-wrap">';
1396
+ echo $share_this->fts_share_option( $new_album_url, $description );
1397
+ echo '<a href="' . esc_url( $new_album_url ) . '" target="_blank" class="fts-jal-fb-see-more">';
1398
+ if ( 'albums' === $fb_shortcode['type'] && 'yes' === $fb_shortcode['hide_date_likes_comments'] ) {
1399
+ } else {
1400
+
1401
+ echo '' . wp_kses(
1402
+ $lcs_array['likes'] . ' ' . $lcs_array['comments'],
1403
+ array(
1404
+ 'a' => array(
1405
+ 'href' => array(),
1406
+ 'title' => array(),
1407
+ ),
1408
+ 'i' => array(
1409
+ 'class' => array(),
1410
+ ),
1411
+ )
1412
+ ) . ' &nbsp;&nbsp;';
1413
+ }
1414
+ echo '&nbsp;' . esc_html( $view_on_facebook ) . '</a></div>';
1415
+ break;
1416
+ default:
1417
+ if ( 'yes' !== get_option( 'fb_reviews_remove_see_reviews_link' ) ) {
1418
+ if ( 'reviews' === $fb_shortcode['type'] && is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) ) {
1419
+ $fb_reviews_see_more_reviews_language = get_option( 'fb_reviews_see_more_reviews_language' ) ? get_option( 'fb_reviews_see_more_reviews_language' ) : 'See More Reviews';
1420
+
1421
+ $hide_see_more = isset( $fb_shortcode['hide_see_more_reviews_link'] ) ? $fb_shortcode['hide_see_more_reviews_link'] : 'yes';
1422
+ if ( 'yes' !== $hide_see_more ) {
1423
+ echo ' <a href="' . esc_url( 'https://www.facebook.com/' . $fb_shortcode['id'] . '/reviews' ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html( $fb_reviews_see_more_reviews_language, 'feed-them-social' ) . '</a>';
1424
+ }
1425
+ } else {
1426
+ $post_single_id = 'https://www.facebook.com/' . $fb_post_user_id . '/posts/' . $fb_post_single_id;
1427
+ echo '<div class="fts-likes-shares-etc-wrap">';
1428
+ echo $share_this->fts_share_option( $post_single_id, $description );
1429
+ echo '<a href="' . esc_url( $post_single_id ) . '" target="_blank" class="fts-jal-fb-see-more">';
1430
+
1431
+ echo '' . wp_kses(
1432
+ $lcs_array['likes'] . ' ' . $lcs_array['comments'],
1433
+ array(
1434
+ 'a' => array(
1435
+ 'href' => array(),
1436
+ 'title' => array(),
1437
+ ),
1438
+ 'i' => array(
1439
+ 'class' => array(),
1440
+ ),
1441
+ )
1442
+ ) . ' &nbsp;&nbsp;&nbsp;' . esc_html( $view_on_facebook ) . '</a></div>';
1443
+ }
1444
+ }
1445
+ break;
1446
+ }
1447
+ }
1448
+
1449
+ /**
1450
+ * Get Access Token
1451
+ *
1452
+ * @return mixed
1453
+ * @since 1.9.6
1454
+ */
1455
+ public function get_access_token() {
1456
+ // The API Access Token.
1457
+ // $custom_access_token = get_option('fts_facebook_custom_api_token');
1458
+ // if (!empty($custom_access_token)) {
1459
+ // return $access_token;
1460
+ // } else {
1461
+ // Randomizer
1462
+ // $values = array(
1463
+ // '431287540548931|4A23YYIFqhd-gpz_E4Fy6U_Seo0',
1464
+ // '1748446362151826|epVUmLiKT8QhLN63iRvvXXHwxqk',
1465
+ // '1875381106044241|KmWz3mtzGye0M5HTdX0SK7rqpIU',
1466
+ // '754106341419549|AMruxCJ_ly8825VXeLhBKo_kOfs',
1467
+ // '438563519819257|1GJ8GLl1AQ7ZTvXV_Xpok_QpH6s',
1468
+ // '753693994788276|xm_PXoNRWW8WPQdcQArRpBgWn5Q',
1469
+ // '644818402385988|sABEvG0QiOaJRlNLC2NphfQLlfg',
1470
+ // '292500071162951|9MA-kzWVs6HTEybpdxKjgF_gqeo',
1471
+ // '263710677420086|Jpui2CFig7RbtdHaHPN_fiEa77U',
1472
+ // '1850081601881384|u2JcPCn7TH40MY5BwC-i4PMHGm8',
1473
+ // );
1474
+ // $access_token = $values[array_rand($values, 1)];.
1475
+ return get_option( 'fts_facebook_custom_api_token' );
1476
+ // }
1477
+ }
1478
+
1479
+ /**
1480
+ * Get View Link
1481
+ *
1482
+ * @param string $fb_shortcode The facebook feed shortcode.
1483
+ * @return string
1484
+ * @since 1.9.6
1485
+ */
1486
+ public function get_view_link( $fb_shortcode ) {
1487
+ switch ( $fb_shortcode['type'] ) {
1488
+ case 'group':
1489
+ $fts_view_fb_link = 'https://www.facebook.com/groups/' . $fb_shortcode['id'] . '/';
1490
+ break;
1491
+ case 'page':
1492
+ $fts_view_fb_link = 'https://www.facebook.com/' . $fb_shortcode['id'] . '/';
1493
+ break;
1494
+ case 'event':
1495
+ $fts_view_fb_link = 'https://www.facebook.com/events/' . $fb_shortcode['id'] . '/';
1496
+ break;
1497
+ case 'events':
1498
+ $fts_view_fb_link = 'https://www.facebook.com/' . $fb_shortcode['id'] . '/events/';
1499
+ break;
1500
+ case 'albums':
1501
+ $fts_view_fb_link = 'https://www.facebook.com/' . $fb_shortcode['id'] . '/photos_stream?tab=photos_albums';
1502
+ break;
1503
+ // album photos and videos album.
1504
+ case 'album_photos':
1505
+ $fts_view_fb_link = isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ? 'https://www.facebook.com/' . $fb_shortcode['id'] . '/videos/' : 'https://www.facebook.com/' . $fb_shortcode['id'] . '/photos_stream/';
1506
+ break;
1507
+ case 'hashtag':
1508
+ $fts_view_fb_link = 'https://www.facebook.com/hashtag/' . $fb_shortcode['id'] . '/';
1509
+ break;
1510
+ case 'reviews':
1511
+ $fts_view_fb_link = 'https://www.facebook.com/' . $fb_shortcode['id'] . '/reviews/';
1512
+ break;
1513
+ }
1514
+ $fts_view_fb_link = isset( $fts_view_fb_link ) ? $fts_view_fb_link : '';
1515
+ return $fts_view_fb_link;
1516
+ }
1517
+
1518
+ /**
1519
+ * Get FB Cache Name
1520
+ *
1521
+ * @param string $fb_shortcode The facebook feed shortcode.
1522
+ * @return string
1523
+ * @since 1.9.6
1524
+ */
1525
+ public function get_fb_cache_name( $fb_shortcode ) {
1526
+ // URL to get page info.
1527
+ $r_count = substr_count( $fb_shortcode['id'], ',' );
1528
+
1529
+ if ( $r_count >= 1 ) {
1530
+ $result = preg_replace( '/[ ,]+/', '-', trim( $fb_shortcode['id'] ) );
1531
+ $fb_shortcode['id'] = $result;
1532
+ }
1533
+
1534
+ switch ( $fb_shortcode['type'] ) {
1535
+ case 'album_photos':
1536
+ $fb_data_cache_name = 'fb_' . $fb_shortcode['type'] . '_' . $fb_shortcode['id'] . '_' . $fb_shortcode['album_id'] . '_num' . $fb_shortcode['posts'] . '';
1537
+ break;
1538
+ default:
1539
+ $fb_data_cache_name = 'fb_' . $fb_shortcode['type'] . '_' . $fb_shortcode['id'] . '_num' . $fb_shortcode['posts'] . '';
1540
+ break;
1541
+ }
1542
+ return $fb_data_cache_name;
1543
+ }
1544
+
1545
+ /**
1546
+ * Get Language
1547
+ *
1548
+ * @return string
1549
+ * @since 1.9.6
1550
+ */
1551
+ public function get_language() {
1552
+ // this check is in place because we used this option and it failed for many people because we use wp get contents instead of curl.
1553
+ // this can be removed in a future update and just keep the $language_option = get_option('fb_language', 'en_US');.
1554
+ $language_option_check = get_option( 'fb_language' );
1555
+ if ( isset( $language_option_check ) && 'Please Select Option' !== $language_option_check ) {
1556
+ $language_option = get_option( 'fb_language', 'en_US' );
1557
+ } else {
1558
+ $language_option = 'en_US';
1559
+ }
1560
+ return ! empty( $language_option ) ? '&locale=' . $language_option : '';
1561
+ }
1562
+
1563
+ /**
1564
+ * Get Facebook Overall Rating Response
1565
+ *
1566
+ * @param string $fb_shortcode The facebook feed shortcode.
1567
+ * @param string $fb_cache_name The Cache Name.
1568
+ * @param string $access_token The Access Token.
1569
+ * @since 2.1.3
1570
+ */
1571
+ public function get_facebook_overall_rating_response( $fb_shortcode, $fb_cache_name, $access_token ) {
1572
+
1573
+ // $mulit_data_rating = $this->fts_get_feed_json($mulit_data_rating);.
1574
+ // Error Check
1575
+ // $feed_data_rating_overall = json_decode($mulit_data['rating_data']);.
1576
+ $fb_reviews_overall_rating_of_5_stars_text = get_option( 'fb_reviews_overall_rating_of_5_stars_text' );
1577
+ $fb_reviews_overall_rating_of_5_stars_text = ! empty( $fb_reviews_overall_rating_of_5_stars_text ) ? ' ' . $fb_reviews_overall_rating_of_5_stars_text : ' of 5 stars';
1578
+ $fb_reviews_overall_rating_reviews_text = get_option( 'fb_reviews_overall_rating_reviews_text' );
1579
+ $fb_reviews_overall_rating_reviews_text = ! empty( $fb_reviews_overall_rating_reviews_text ) ? ' ' . $fb_reviews_overall_rating_reviews_text : ' reviews';
1580
+ $fb_reviews_overall_rating_background_border_hide = get_option( 'fb_reviews_overall_rating_background_border_hide' );
1581
+ $fb_reviews_overall_rating_background_border_hide = ! empty( $fb_reviews_overall_rating_background_border_hide ) && 'yes' === $fb_reviews_overall_rating_background_border_hide ? ' fts-review-details-master-wrap-no-background-or-border' : '';
1582
+
1583
+ echo '<div class="fts-review-details-master-wrap' . esc_attr( $fb_reviews_overall_rating_background_border_hide ) . '"><i class="fts-review-star">' . esc_html( $feed_data_rating_overall->overall_star_rating ) . ' &#9733;</i>';
1584
+ echo '<div class="fts-review-details-wrap" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"><div class="fts-review-details"><span itemprop="ratingValue">' . esc_html( $feed_data_rating_overall->overall_star_rating ) . '</span>' . esc_html( $fb_reviews_overall_rating_of_5_stars_text ) . '</div>';
1585
+ echo '<div class="fts-review-details-count"><span itemprop="reviewCount">' . esc_html( $feed_data_rating_overall->rating_count ) . '</span>' . esc_html( $fb_reviews_overall_rating_reviews_text ) . '</div></div></div>';
1586
+
1587
+ // $fb_cache_name = $fb_shortcode['id'] . $this->rand_string(10);
1588
+ // Make sure it's not ajaxing
1589
+ // if (!isset($_GET['load_more_ajaxing'])) {
1590
+ // Create Cache
1591
+ // $FTS_FB_OUTPUT = $this->fts_create_feed_cache($fb_cache_name, $feed_data_rating_overall);
1592
+ // }.
1593
+ }
1594
+
1595
+
1596
+ /**
1597
+ * Get Facebook Feed Response
1598
+ *
1599
+ * @param string $fb_shortcode The facebook shortcode.
1600
+ * @param string $fb_cache_name FB cache name.
1601
+ * @param string $access_token The Access Token.
1602
+ * @param string $language Language.
1603
+ * @return array|mixed
1604
+ * @throws \Exception
1605
+ * @since 1.9.6
1606
+ */
1607
+ public function get_facebook_feed_response( $fb_shortcode, $fb_cache_name, $access_token, $language ) {
1608
+
1609
+ if ( is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
1610
+ $fts_count_ids = substr_count( $fb_shortcode['id'], ',' );
1611
+ } else {
1612
+ $fts_count_ids = '';
1613
+ }
1614
+
1615
+ if ( false !== $this->fts_check_feed_cache_exists( $fb_cache_name ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
1616
+ $response = $this->fts_get_feed_cache( $fb_cache_name );
1617
+ } else {
1618
+ // Page.
1619
+ if ( 'page' === $fb_shortcode['type'] && 'page_only' === $fb_shortcode['posts_displayed'] ) {
1620
+ $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=id,name,description&access_token=' . $access_token . $language . '' );
1621
+
1622
+ if ( isset( $_REQUEST['next_url'] ) ) {
1623
+ $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token=' . get_option( 'fts_facebook_custom_api_token' ), $_REQUEST['next_url'] );
1624
+ }
1625
+
1626
+ if ( ! $fts_count_ids >= 1 ) {
1627
+ // We cannot add sanitize_text_field here on the $_REQUEST['next_url'] otherwise it will fail to load the contents from the facebook API.
1628
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/posts?fields=id,caption,attachments,created_time,description,from,icon,link,message,name,object_id,picture,full_picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1629
+ } else {
1630
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/posts?ids=' . $fb_shortcode['id'] . '&fields=id,caption,attachments,created_time,description,from,icon,link,message,name,object_id,picture,full_picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1631
+ }
1632
+ } elseif (
1633
+ // Albums.
1634
+ 'albums' === $fb_shortcode['type'] ) {
1635
+ $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=id,name,description,link&access_token=' . $access_token . $language . '' );
1636
+ if ( isset( $_REQUEST['next_url'] ) ) {
1637
+ $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token=' . get_option( 'fts_facebook_custom_api_token' ), $_REQUEST['next_url'] );
1638
+ }
1639
+ // Check If Ajax next URL needs to be used.
1640
+ if ( ! $fts_count_ids >= 1 ) {
1641
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/albums?fields=id,photos,created_time,name,from,link,cover_photo,count,updated_time,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1642
+ } else {
1643
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/albums?ids=' . $fb_shortcode['id'] . '&fields=id,photos,created_time,name,from,link,cover_photo,count,updated_time,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1644
+ }
1645
+
1646
+ // $mulit_data['feed_data'] = isset($_REQUEST['next_url']) ? esc_url_raw($_REQUEST['next_url']) : 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/albums?fields=id,created_time,name,from,link,cover_photo,count,updated_time,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '';
1647
+ } elseif (
1648
+ // Album Photos.
1649
+ 'album_photos' === $fb_shortcode['type'] ) {
1650
+ $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=id,name,description&access_token=' . $access_token . $language . '' );
1651
+ if ( isset( $_REQUEST['next_url'] ) ) {
1652
+ $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token=' . get_option( 'fts_facebook_custom_api_token' ), $_REQUEST['next_url'] );
1653
+ }
1654
+ // Check If Ajax next URL needs to be used
1655
+ // The reason I did not create a whole new else if for the video album is because I did not want to duplicate all the code required to make the video because the videos gallery comes from the photo albums on facebook.
1656
+ if ( isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
1657
+ if ( ! $fts_count_ids >= 1 ) {
1658
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/videos?fields=id,created_time,description,from,icon,link,message,object_id,picture,place,source,to,type,format,embed_html&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1659
+ } else {
1660
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/videos?ids=' . $fb_shortcode['id'] . '&fields=id,created_time,description,from,icon,link,message,object_id,picture,place,source,to,type,format,embed_html&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1661
+ }
1662
+ } elseif ( isset( $fb_shortcode['album_id'] ) && 'photo_stream' === $fb_shortcode['album_id'] ) {
1663
+ if ( ! $fts_count_ids >= 1 ) {
1664
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/photos?fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,place,shares,source,status_type,story,to,type&type=uploaded&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1665
+ } else {
1666
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/photos?ids=' . $fb_shortcode['id'] . '&fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,place,shares,source,status_type,story,to,type&type=uploaded&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1667
+ }
1668
+ } else {
1669
+ if ( ! $fts_count_ids >= 1 ) {
1670
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['album_id'] . '/photos?fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1671
+ } else {
1672
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/photos?ids=' . $fb_shortcode['album_id'] . '&fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1673
+ }
1674
+ }
1675
+ } elseif ( 'reviews' === $fb_shortcode['type'] ) {
1676
+
1677
+ // Reviews.
1678
+ if ( is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) ) {
1679
+ $fts_facebook_reviews = new FTS_Facebook_Reviews();
1680
+ $mulit_data = $fts_facebook_reviews->review_connection( $fb_shortcode, $access_token, $language );
1681
+
1682
+ $mulit_data['ratings_data'] = esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/?fields=overall_star_rating,rating_count&access_token=' . $access_token . '' );
1683
+
1684
+ } else {
1685
+ return 'Please Purchase and Activate the Feed Them Social Reviews plugin.';
1686
+ exit;
1687
+ }
1688
+ } else {
1689
+ $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=feed,id,name,description&access_token=' . $access_token . $language . '' );
1690
+
1691
+ // Check If Ajax next URL needs to be used.
1692
+ if ( ! $fts_count_ids >= 1 ) {
1693
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/feed?fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,full_picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1694
+ } else {
1695
+ $mulit_data['feed_data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : esc_url_raw( 'https://graph.facebook.com/feed?ids=' . $fb_shortcode['id'] . '&fields=id,caption,created_time,description,from,icon,link,message,name,object_id,picture,full_picture,place,shares,source,status_type,story,to,type&limit=' . $fb_shortcode['posts'] . '&access_token=' . $access_token . $language . '' );
1696
+ }
1697
+ }
1698
+ $response = $this->fts_get_feed_json( $mulit_data );
1699
+
1700
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
1701
+ // Error Check.
1702
+ $feed_data = json_decode( $response['feed_data'] );
1703
+ $fts_error_check = new fts_error_handler();
1704
+ $fts_error_check_complete = $fts_error_check->facebook_error_check( $fb_shortcode, $feed_data );
1705
+ if ( is_array( $fts_error_check_complete ) && true === $fts_error_check_complete[0] ) {
1706
+
1707
+ // If old Cache exists use it instead of showing an error.
1708
+ if ( true === $this->fts_check_feed_cache_exists( $fb_cache_name, true ) ) {
1709
+
1710
+ // If Current user is Admin and Cache exists for use then still show Admin the error for debugging purposes.
1711
+ if ( current_user_can( 'administrator' ) ) {
1712
+ echo wp_kses(
1713
+ $fts_error_check_complete[1] . ' <em>**NOTE** This error is only shown to logged in Admins of this WordPress install</em>',
1714
+ array(
1715
+ 'a' => array(
1716
+ 'href' => array(),
1717
+ 'title' => array(),
1718
+ ),
1719
+ 'br' => array(),
1720
+ 'em' => array(),
1721
+ 'strong' => array(),
1722
+ )
1723
+ );
1724
+ }
1725
+
1726
+ // Return Cache because it exists in Database. Better than showing nothing right?
1727
+ return $this->fts_get_feed_cache( $fb_cache_name, true );
1728
+ }
1729
+ // If User is Admin and no Old cache is saved in database for use.
1730
+ if ( current_user_can( 'administrator' ) ) {
1731
+ return array( false, $fts_error_check_complete[1] );
1732
+ }
1733
+ }
1734
+ }
1735
+
1736
+ // Make sure it's not ajaxing.
1737
+ if ( ! empty( $response['feed_data'] ) ) {
1738
+ // Create Cache.
1739
+ $this->fts_create_feed_cache( $fb_cache_name, $response );
1740
+ }
1741
+ } // end main else.
1742
+
1743
+ return $response;
1744
+
1745
+ }
1746
+
1747
+
1748
+ /**
1749
+ * Get Facebook Feed Dynamic Name
1750
+ *
1751
+ * @param string $fb_shortcode The facebook feed shortcode.
1752
+ * @return mixed
1753
+ * @since 1.9.6
1754
+ */
1755
+ public function get_facebook_feed_dynamic_name( $fb_shortcode ) {
1756
+
1757
+ return $_REQUEST['fts_dynamic_name'] = sanitize_key( $this->fts_rand_string( 10 ) . '_' . $fb_shortcode['type'] );
1758
+
1759
+ }
1760
+
1761
+ /**
1762
+ * Get Facebook Feed Dynamic Class Name
1763
+ *
1764
+ * @param null $fts_dynamic_name Our Dynamic Name for ajax.
1765
+ * @return string
1766
+ * @since 1.9.6
1767
+ */
1768
+ public function get_facebook_feed_dynamic_class_name( $fts_dynamic_name = null ) {
1769
+ $fts_dynamic_class_name = '';
1770
+ if ( isset( $fts_dynamic_name ) ) {
1771
+ $fts_dynamic_class_name = 'feed_dynamic_class' . sanitize_key( $_REQUEST['fts_dynamic_name'] );
1772
+ }
1773
+ return $fts_dynamic_class_name;
1774
+ }
1775
+
1776
+
1777
+ /**
1778
+ * Get Post Info
1779
+ *
1780
+ * For Facebook.
1781
+ *
1782
+ * @param string $feed_data The facebook contents.
1783
+ * @param string $fb_shortcode FB cache name.
1784
+ * @param string $access_token The Access Token.
1785
+ * @param string $language Language.
1786
+ * @return array|mixed
1787
+ * @since 1.9.6
1788
+ */
1789
+ public function get_post_info( $feed_data, $fb_shortcode, $access_token, $language, $fb_cache_name) {
1790
+ $developer_mode = get_option( 'fts_clear_cache_developer_mode' );
1791
+
1792
+ if ( 'album_photos' === $fb_shortcode['type'] ) {
1793
+ $fb_post_data_cache = 'fb_' . $fb_shortcode['type'] . '_post_' . $fb_shortcode['album_id'] . '_num' . $fb_shortcode['posts'] . '';
1794
+ } else {
1795
+ $fb_post_data_cache = 'fb_' . $fb_shortcode['type'] . '_post_' . $fb_shortcode['id'] . '_num' . $fb_shortcode['posts'] . '';
1796
+ }
1797
+ if ( false !== $this->fts_check_feed_cache_exists( $fb_post_data_cache ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
1798
+ $response_post_array = $this->fts_get_feed_cache( $fb_post_data_cache );
1799
+
1800
+ } else {
1801
+ // Build the big post counter.
1802
+ $fb_post_array = array();
1803
+ // Single Events Array.
1804
+ $set_zero = 0;
1805
+ foreach ( $feed_data->data as $counter ) {
1806
+
1807
+ $counter->id = isset( $counter->id ) ? $counter->id : '';
1808
+
1809
+ if ( $set_zero === $fb_shortcode['posts'] ) {
1810
+ break;
1811
+ }
1812
+
1813
+ $fb_type = isset( $counter->type ) ? $counter->type : '';
1814
+ $post_data_key = isset( $counter->object_id ) ? $counter->object_id : $counter->id;
1815
+
1816
+ // Likes & Comments.
1817
+ $fb_post_array[ $post_data_key . '_likes' ] = 'https://graph.facebook.com/' . $post_data_key . '/reactions?summary=1&access_token=' . $access_token;
1818
+ $fb_post_array[ $post_data_key . '_comments' ] = 'https://graph.facebook.com/' . $post_data_key . '/comments?summary=1&access_token=' . $access_token;
1819
+ // Video.
1820
+ if ( 'video' === $fb_type ) {
1821
+ $fb_post_array[ $post_data_key . '_video' ] = 'https://graph.facebook.com/' . $post_data_key;
1822
+ }
1823
+ // Photo.
1824
+ $fb_album_cover = isset( $counter->cover_photo->id ) ? $counter->cover_photo->id : '';
1825
+ if ( 'albums' === $fb_shortcode['type'] && ! $fb_album_cover ) {
1826
+ unset( $counter );
1827
+ continue;
1828
+ }
1829
+ if ( 'albums' === $fb_shortcode['type'] ) {
1830
+ $fb_post_array[ $fb_album_cover . '_photo' ] = 'https://graph.facebook.com/' . $fb_album_cover;
1831
+ }
1832
+ if ( 'hashtag' === $fb_shortcode['type'] ) {
1833
+ $fb_post_array[ $post_data_key . '_photo' ] = 'https://graph.facebook.com/' . $counter->source;
1834
+ }
1835
+ // GROUP Photo.
1836
+ if ( 'group' === $fb_shortcode['type'] ) {
1837
+ $fb_post_array[ $post_data_key . '_group_post_photo' ] = 'https://graph.facebook.com/' . $counter->id . '?fields=picture,full_picture&access_token=' . $access_token;
1838
+ }
1839
+
1840
+ $set_zero++;
1841
+ }
1842
+
1843
+ $fts_error_check = new fts_error_handler();
1844
+ $fts_error_check_complete = $fts_error_check->facebook_error_check( $fb_shortcode, $feed_data );
1845
+ if ( is_array( $fts_error_check_complete ) && true === $fts_error_check_complete[0] ) {
1846
+
1847
+ // If old Cache exists use it instead of showing an error.
1848
+ if ( true === $this->fts_check_feed_cache_exists( $fb_cache_name, true ) ) {
1849
+
1850
+ // Return Cache because it exists in Database. Better than showing nothing right?
1851
+ return $this->fts_get_feed_cache( $fb_cache_name, true );
1852
+ }
1853
+ }
1854
+
1855
+ // Response.
1856
+ $response_post_array = $this->fts_get_feed_json( $fb_post_array );
1857
+ // Make sure it's not ajaxing.
1858
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
1859
+ // Create Cache.
1860
+ $this->fts_create_feed_cache( $fb_post_data_cache, $response_post_array );
1861
+ }
1862
+ }
1863
+ // SHOW THE POST RESPONSE PRINT_R
1864
+ // echo'<pre>';
1865
+ // print_r($response_post_array);
1866
+ // echo'</pre>';.
1867
+ return $response_post_array;
1868
+ }
1869
+
1870
+
1871
+ /**
1872
+ * Get Post Info
1873
+ *
1874
+ * For Facebook.
1875
+ *
1876
+ * @param string $feed_data The facebook contents.
1877
+ * @param string $fb_shortcode FB cache name.
1878
+ * @param string $access_token The Access Token.
1879
+ * @param string $language Language.
1880
+ * @return array|mixed
1881
+ * @since 2.1.6
1882
+ */
1883
+ public function get_event_post_info( $feed_data, $fb_shortcode, $access_token, $language ) {
1884
+ $developer_mode = get_option( 'fts_clear_cache_developer_mode' );
1885
+
1886
+ $fb_event_post_data_cache = 'fbe_' . $fb_shortcode['type'] . '_post_' . $fb_shortcode['id'] . '_num' . $fb_shortcode['posts'] . '';
1887
+ if ( false !== $this->fts_check_feed_cache_exists( $fb_event_post_data_cache ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
1888
+ $response_event_post_array = $this->fts_get_feed_cache( $fb_event_post_data_cache );
1889
+ } else {
1890
+ // Single Events Array.
1891
+ $fb_single_events_array = array();
1892
+ $set_zero = 0;
1893
+ foreach ( $feed_data->data as $counter ) {
1894
+
1895
+ $counter->id = isset( $counter->id ) ? $counter->id : '';
1896
+
1897
+ if ( $set_zero === $fb_shortcode['posts'] ) {
1898
+ break;
1899
+ }
1900
+
1901
+ $single_event_id = $counter->id;
1902
+ $language = isset( $language ) ? $language : '';
1903
+ // Event Info, Time etc.
1904
+ $fb_single_events_array[ 'event_single_' . $single_event_id . '_info' ] = 'https://graph.facebook.com/' . $single_event_id . '/?access_token=' . $access_token . $language;
1905
+ // Event Location.
1906
+ $fb_single_events_array[ 'event_single_' . $single_event_id . '_location' ] = 'https://graph.facebook.com/' . $single_event_id . '/?fields=place&access_token=' . $access_token . $language;
1907
+ // Event Cover Photo.
1908
+ $fb_single_events_array[ 'event_single_' . $single_event_id . '_cover_photo' ] = 'https://graph.facebook.com/' . $single_event_id . '/?fields=cover&access_token=' . $access_token . $language;
1909
+ // Event Ticket Info.
1910
+ $fb_single_events_array[ 'event_single_' . $single_event_id . '_ticket_info' ] = 'https://graph.facebook.com/' . $single_event_id . '/?fields=ticket_uri&access_token=' . $access_token . $language;
1911
+
1912
+ $set_zero++;
1913
+ }
1914
+
1915
+ $response_event_post_array = $this->fts_get_feed_json( $fb_single_events_array );
1916
+ // Create Cache.
1917
+ $this->fts_create_feed_cache( $fb_event_post_data_cache, $response_event_post_array );
1918
+
1919
+ }
1920
+ // SHOW THE $response_event_post_array FEED PRINT_R
1921
+ // '<pre>';.
1922
+ // print_r($response_event_post_array);
1923
+ // echo'</pre>';.
1924
+ return $response_event_post_array;
1925
+ }
1926
+
1927
+
1928
+ /**
1929
+ * FB Social Button Placement
1930
+ *
1931
+ * @param string $fb_shortcode The facebook contents.
1932
+ * @param string $access_token The Access Token.
1933
+ * @param string $share_loc Language.
1934
+ * @return string|void
1935
+ * @since 2.0.1
1936
+ */
1937
+ public function fb_social_btn_placement( $fb_shortcode, $access_token, $share_loc ) {
1938
+ // Don't do it for these!
1939
+ if ( 'group' === $fb_shortcode['type'] || 'event' === $fb_shortcode['type'] || isset( $fb_shortcode['hide_like_option'] ) && 'yes' === $fb_shortcode['hide_like_option'] ) {
1940
+ return;
1941
+ }
1942
+ // Facebook Follow Button Options.
1943
+ $fb_show_follow_btn = get_option( 'fb_show_follow_btn' );
1944
+
1945
+ if ( isset( $fb_shortcode['show_follow_btn_where'] ) && '' !== $fb_shortcode['show_follow_btn_where'] ) {
1946
+ if ( 'above_title' === $fb_shortcode['show_follow_btn_where'] ) {
1947
+ $fb_show_follow_btn_where = 'fb-like-top-above-title';
1948
+ } elseif ( 'below_title' === $fb_shortcode['show_follow_btn_where'] ) {
1949
+ $fb_show_follow_btn_where = 'fb-like-top-below-title';
1950
+ } elseif ( 'bottom' === $fb_shortcode['show_follow_btn_where'] ) {
1951
+ $fb_show_follow_btn_where = 'fb-like-below';
1952
+ }
1953
+ } else {
1954
+ $fb_show_follow_btn_where = get_option( 'fb_show_follow_btn_where' );
1955
+ }
1956
+
1957
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
1958
+
1959
+ $like_option_align_final = isset( $fb_shortcode['like_option_align'] ) ? 'fts-fb-social-btn-' . $fb_shortcode['like_option_align'] . '' : '';
1960
+
1961
+ if ( $share_loc === $fb_show_follow_btn_where ) {
1962
+ switch ( $fb_show_follow_btn_where ) {
1963
+ case 'fb-like-top-above-title':
1964
+ // Top Above Title.
1965
+ if ( isset( $fb_show_follow_btn ) && 'dont-display' !== $fb_show_follow_btn ) {
1966
+ echo '<div class="fb-social-btn-top ' . esc_attr( $like_option_align_final ) . '">';
1967
+ $this->social_follow_button( 'facebook', $fb_shortcode['id'], $access_token, $fb_shortcode );
1968
+ echo '</div>';
1969
+ }
1970
+ break;
1971
+ // Top Below Title.
1972
+ case 'fb-like-top-below-title':
1973
+ if ( isset( $fb_show_follow_btn ) && 'dont-display' !== $fb_show_follow_btn ) {
1974
+ echo '<div class="fb-social-btn-below-description ' . esc_attr( $like_option_align_final ) . '">';
1975
+ $this->social_follow_button( 'facebook', $fb_shortcode['id'], $access_token, $fb_shortcode );
1976
+ echo '</div>';
1977
+ }
1978
+ break;
1979
+ // Bottom.
1980
+ case 'fb-like-below':
1981
+ if ( isset( $fb_show_follow_btn ) && 'dont-display' !== $fb_show_follow_btn ) {
1982
+ echo '<div class="fb-social-btn-bottom ' . esc_attr( $like_option_align_final ) . '">';
1983
+ $this->social_follow_button( 'facebook', $fb_shortcode['id'], $access_token, $fb_shortcode );
1984
+ echo '</div>';
1985
+ }
1986
+ break;
1987
+ }
1988
+ }
1989
+ }
1990
+ }
1991
+
1992
+ /**
1993
+ * FTS Custom Trim Words
1994
+ *
1995
+ * Not using this anymore but keeping it as a fallback function for the combined if user has not updated the free version before the combined extension
1996
+ *
1997
+ * @param string $text The description text.
1998
+ * @param int $num_words Number of words you want to be showm.
1999
+ * @param string $more The ...
2000
+ * @return mixed
2001
+ * @since 1.9.6
2002
+ */
2003
+ public function fts_custom_trim_words( $text, $num_words = 45, $more ) {
2004
+ ! empty( $num_words ) && 0 !== $num_words ? $more = __( '...' ) : '';
2005
+ $text = nl2br( $text );
2006
+ // Filter for Hashtags and Mentions Before returning.
2007
+ $text = $this->fts_facebook_tag_filter( $text );
2008
+ $text = strip_shortcodes( $text );
2009
+ // Add tags that you don't want stripped.
2010
+ $text = strip_tags( $text, '<strong><br><em><i><a>' );
2011
+ $words_array = preg_split( "/[\n\r\t ]+/", $text, $num_words + 1, PREG_SPLIT_NO_EMPTY );
2012
+ $sep = ' ';
2013
+ if ( count( $words_array ) > $num_words ) {
2014
+ array_pop( $words_array );
2015
+ $text = implode( $sep, $words_array );
2016
+ $text = $text . $more;
2017
+ } else {
2018
+ $text = implode( $sep, $words_array );
2019
+ }
2020
+ return wpautop( $text );
2021
+ }
2022
+
2023
+ /**
2024
+ * FTS Facebook Tag Filter
2025
+ *
2026
+ * Tags Filter (return clean tags)
2027
+ *
2028
+ * @param string $fb_description Facebook Description.
2029
+ * @return mixed
2030
+ * @since 1.9.6
2031
+ */
2032
+ public function fts_facebook_tag_filter( $fb_description ) {
2033
+ // Converts URLs to Links.
2034
+ $fb_description = preg_replace( '@(?!(?!.*?<a)[^<]*<\/a>)(?:(?:https?|ftp|file)://|www\.|ftp\.)[-A-‌​Z0-9+&#/%=~_|$?!:,.]*[A-Z0-9+&#/%=~_|$]@i', '<a href="\0" target="_blank">\0</a>', $fb_description );
2035
+
2036
+ $splitano = explode( 'www', $fb_description );
2037
+ $count = count( $splitano );
2038
+ $return_value = '';
2039
+
2040
+ for ( $i = 0; $i < $count; $i++ ) {
2041
+ if ( 'href=' === substr( $splitano[ $i ], -6, 5 ) ) {
2042
+ $return_value .= $splitano[ $i ] . 'http://www';
2043
+ } elseif ( $i < $count - 1 ) {
2044
+ $return_value .= $splitano[ $i ] . 'www';
2045
+ } else {
2046
+ $return_value .= $splitano[ $i ];
2047
+ }
2048
+ }
2049
+ // Mentions.
2050
+ $return_value = preg_replace( '/@+(\w+)/u', '<a target="_blank" href="https://www.facebook.com/$1">@$1</a>', $return_value );
2051
+ // Hash tags.
2052
+ $return_value = preg_replace( '/#+(\w+)/u', '<a target="_blank" href="https://www.facebook.com/hashtag/$1">#$1</a>', $return_value );
2053
+
2054
+ return $return_value;
2055
+ }
2056
+
2057
+ /**
2058
+ * Load PopUp Scripts
2059
+ *
2060
+ * @param string $fb_shortcode The Facebook feed shortcode.
2061
+ * @since 1.9.6
2062
+ */
2063
+ public function load_popup_scripts( $fb_shortcode ) {
2064
+ if ( 'yes' === $fb_shortcode['popup'] ) {
2065
+ // it's ok if these styles & scripts load at the bottom of the page.
2066
+ $fts_fix_magnific = get_option( 'fts_fix_magnific' ) ? get_option( 'fts_fix_magnific' ) : '';
2067
+ if ( isset( $fts_fix_magnific ) && '1' !== $fts_fix_magnific ) {
2068
+ wp_enqueue_style( 'fts-popup', plugins_url( 'feed-them-social/feeds/css/magnific-popup.css' ), array(), FTS_CURRENT_VERSION, false );
2069
+ }
2070
+ wp_enqueue_script( 'fts-popup-js', plugins_url( 'feed-them-social/feeds/js/magnific-popup.js' ), array(), FTS_CURRENT_VERSION, false );
2071
+ wp_enqueue_script( 'fts-images-loaded', plugins_url( 'feed-them-social/feeds/js/imagesloaded.pkgd.min.js' ), array(), FTS_CURRENT_VERSION, false );
2072
+ if ( ! isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
2073
+ wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
2074
+ }
2075
+ }
2076
+ }
2077
+
2078
+ /**
2079
+ * FTS Facebook LoadMore
2080
+ *
2081
+ * @param string $atts The shortcode attributes.
2082
+ * @param string $feed_data The Feed data.
2083
+ * @param string $fb_type The type of facebook feed.
2084
+ * @param string $fb_shortcode The Facebook feed shortcode.
2085
+ * @since 1.9.6
2086
+ */
2087
+ public function fts_facebook_loadmore( $atts, $feed_data, $fb_type, $fb_shortcode ) {
2088
+ if ( ( isset( $fb_shortcode['loadmore'] ) && 'button' === $fb_shortcode['loadmore'] || isset( $fb_shortcode['loadmore'] ) && 'autoscroll' === $fb_shortcode['loadmore'] ) && ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'reviews' !== $fb_shortcode['type'] || is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && 'reviews' === $fb_shortcode['type'] ) ) {
2089
+
2090
+ $fb_load_more_text = get_option( 'fb_load_more_text' ) ? get_option( 'fb_load_more_text' ) : esc_html( 'Load More', 'feed-them-social' );
2091
+ $fb_no_more_posts_text = get_option( 'fb_no_more_posts_text' ) ? get_option( 'fb_no_more_posts_text' ) : esc_html( 'No More Posts', 'feed-them-social' );
2092
+ $fb_no_more_photos_text = get_option( 'fb_no_more_photos_text' ) ? get_option( 'fb_no_more_photos_text' ) : esc_html( 'No More Photos', 'feed-them-social' );
2093
+ $fb_no_more_videos_text = get_option( 'fb_no_more_videos_text' ) ? get_option( 'fb_no_more_videos_text' ) : esc_html( 'No More Videos', 'feed-them-social' );
2094
+ $fb_no_more_reviews_text = get_option( 'fb_no_more_reviews_text' ) ? get_option( 'fb_no_more_reviews_text' ) : esc_html( 'No More Reviews', 'feed-them-social' );
2095
+
2096
+ // Load More BUTTON Start.
2097
+ $next_url = isset( $feed_data->paging->next ) ? $feed_data->paging->next : '';
2098
+
2099
+ $posts = isset( $fb_shortcode['posts'] ) ? $fb_shortcode['posts'] : '';
2100
+ $loadmore_count = isset( $fb_shortcode['loadmore_count'] ) && '' !== $fb_shortcode['loadmore_count'] ? $fb_shortcode['loadmore_count'] : '';
2101
+ // we check to see if the loadmore count number is set and if so pass that as the new count number when fetching the next set of posts.
2102
+ $_REQUEST['next_url'] = '' !== $loadmore_count ? str_replace( "limit=$posts", "limit=$loadmore_count", $next_url ) : $next_url;
2103
+
2104
+ $access_token = is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) ? 'access_token=' . get_option( 'fts_facebook_custom_api_token_biz' ) : 'access_token=' . get_option( 'fts_facebook_custom_api_token' );
2105
+ $_REQUEST['next_url'] = str_replace( $access_token, 'access_token=XXX', $next_url );
2106
+
2107
+ echo '<script>';
2108
+ echo 'var nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . '= "' . esc_url_raw( $_REQUEST['next_url'] ) . '";';
2109
+ echo '</script>';
2110
+
2111
+ // Make sure it's not ajaxing.
2112
+ if ( ! isset( $_GET['load_more_ajaxing'] ) && ! isset( $_REQUEST['fts_no_more_posts'] ) && ! empty( $fb_shortcode['loadmore'] ) ) {
2113
+ $fts_dynamic_name = $_REQUEST['fts_dynamic_name'];
2114
+ $time = time();
2115
+ $nonce = wp_create_nonce( $time . 'load-more-nonce' );
2116
+ $fts_dynamic_class_name = $this->get_fts_dynamic_class_name();
2117
+ echo '<script>';
2118
+ echo 'jQuery(document).ready(function() {';
2119
+ if ( 'autoscroll' === $fb_shortcode['loadmore'] ) {
2120
+ // this is where we do SCROLL function to LOADMORE if = autoscroll in shortcode.
2121
+ echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").bind("scroll",function() {';
2122
+ echo 'if(jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight) {';
2123
+ } else {
2124
+ // this is where we do CLICK function to LOADMORE if = button in shortcode.
2125
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").click(function() {';
2126
+ }
2127
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").addClass("fts-fb-spinner");';
2128
+ echo 'var button = jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").html("<div class=\'bounce1\'></div><div class=\'bounce2\'></div><div class=\'bounce3\'></div>");';
2129
+ echo 'console.log(button);';
2130
+
2131
+ echo 'var yes_ajax = "yes";';
2132
+ echo 'var fts_d_name = "' . esc_js( $fts_dynamic_name ) . '";';
2133
+ echo 'var fts_security = "' . esc_js( $nonce ) . '";';
2134
+ echo 'var fts_time = "' . esc_js( $time ) . '";';
2135
+
2136
+ echo 'var feed_name = "fts_facebook";';
2137
+ echo 'var loadmore_count = "posts=' . esc_js( $fb_shortcode['loadmore_count'] ) . '";';
2138
+ echo 'var feed_attributes = ' . json_encode( $atts ) . ';';
2139
+
2140
+ echo 'jQuery.ajax({';
2141
+ echo 'data: {action: "my_fts_fb_load_more", next_url: nextURL_' . esc_js( $fts_dynamic_name ) . ', fts_dynamic_name: fts_d_name, feed_name: feed_name, loadmore_count: loadmore_count, feed_attributes: feed_attributes, load_more_ajaxing: yes_ajax, fts_security: fts_security, fts_time: fts_time},';
2142
+ echo 'type: "GET",';
2143
+ echo 'url: "' . esc_url( admin_url( 'admin-ajax.php' ) ) . '",';
2144
+ echo 'success: function( data ) {';
2145
+ echo 'console.log("Well Done and got this from sever: " + data);';
2146
+ if ( $fb_type && 'albums' === $fb_shortcode['type'] || $fb_type && 'album_photos' === $fb_shortcode['type'] && 'yes' !== $fb_shortcode['video_album'] || 'yes' === $fb_shortcode['grid'] ) {
2147
+ echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").append(data).filter(".' . esc_js( $fts_dynamic_class_name ) . '").html();';
2148
+ // if (isset($fb_shortcode['image_stack_animation']) && $fb_shortcode['image_stack_animation'] == 'yes') {.
2149
+ echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").masonry( "reloadItems");';
2150
+ echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").masonry("layout");';
2151
+
2152
+ echo 'setTimeout(function() {';
2153
+ // Do something after 3 seconds
2154
+ // This can be direct code, or call to some other function.
2155
+ echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").masonry("layout");';
2156
+ echo '}, 500);';
2157
+
2158
+ // }.
2159
+ echo 'if(!nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . ' || nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . ' == "no more"){';
2160
+ if ( 'reviews' === $fb_shortcode['type'] ) {
2161
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_reviews_text ) . '</div>\');';
2162
+ } elseif ( 'videos' === $fb_shortcode['type'] ) {
2163
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_videos_text ) . '</div>\');';
2164
+ } else {
2165
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_photos_text ) . '</div>\');';
2166
+ }
2167
+
2168
+ echo ' jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeAttr("id");';
2169
+ echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").unbind("scroll");';
2170
+ echo '}';
2171
+ } else {
2172
+ if ( isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
2173
+ echo 'var result = jQuery(data).insertBefore( jQuery("#output_' . esc_js( $fts_dynamic_name ) . '") );';
2174
+ echo 'var result = jQuery(".feed_dynamic_' . esc_js( $fts_dynamic_name ) . '_album_photos").append(data).filter("#output_' . esc_js( $fts_dynamic_name ) . '").html();';
2175
+ } else {
2176
+ echo 'var result = jQuery("#output_' . esc_js( $fts_dynamic_name ) . '").append(data).filter("#output_' . esc_js( $fts_dynamic_name ) . '").html();';
2177
+ }
2178
+ echo 'jQuery("#output_' . esc_js( $fts_dynamic_name ) . '").html(result);';
2179
+ echo 'if(!nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . ' || nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . ' == "no more"){';
2180
+ // Reviews.
2181
+ if ( 'reviews' === $fb_shortcode['type'] ) {
2182
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_reviews_text ) . '</div>\');';
2183
+ } else {
2184
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").replaceWith(\'<div class="fts-fb-load-more no-more-posts-fts-fb">' . esc_html( $fb_no_more_posts_text ) . '</div>\');';
2185
+ }
2186
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeAttr("id");';
2187
+ echo 'jQuery(".' . esc_js( $fts_dynamic_class_name ) . '").unbind("scroll");';
2188
+ echo '}';
2189
+
2190
+ }
2191
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").html("' . esc_html( $fb_load_more_text ) . '");';
2192
+ // jQuery("#loadMore_'.$fts_dynamic_name.'").removeClass("flip360-fts-load-more");.
2193
+ echo 'jQuery("#loadMore_' . esc_js( $fts_dynamic_name ) . '").removeClass("fts-fb-spinner");';
2194
+ if ( isset( $fb_shortcode['popup'] ) && 'yes' === $fb_shortcode['popup'] ) {
2195
+ // We return this function again otherwise the popup won't work correctly for the newly loaded items.
2196
+ echo 'jQuery.fn.slickFacebookPopUpFunction();';
2197
+ }
2198
+ // Reload the share each funcion otherwise you can't open share option..
2199
+ echo 'jQuery.fn.ftsShare();slickremixImageResizingFacebook2();slickremixImageResizingFacebook3();';
2200
+
2201
+ echo '}';
2202
+ echo '});';
2203
+ // end of ajax().
2204
+ echo 'return false;';
2205
+ // string $scrollMore is at top of this js script. acception for scroll option closing tag.
2206
+ if ( 'autoscroll' === $fb_shortcode['loadmore'] ) {
2207
+ echo '}';
2208
+ // end of scroll ajax load.
2209
+ }
2210
+ echo '});';
2211
+ // end of document.ready.
2212
+ echo '});';
2213
+ // end of form.submit.
2214
+ echo '</script>';
2215
+ }
2216
+ // End Check.
2217
+ // main closing div not included in ajax check so we can close the wrap at all times.
2218
+ // Make sure it's not ajaxing.
2219
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
2220
+ $fts_dynamic_name = $_REQUEST['fts_dynamic_name'];
2221
+ // this div returns outputs our ajax request via jquery appenc html from above style="display:nonee;".
2222
+ echo '<div id="output_' . esc_attr( $fts_dynamic_name ) . '" class="fts-fb-load-more-output"></div>';
2223
+ if ( ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'reviews' !== $fb_shortcode['type'] || is_plugin_active( 'feed-them-social-facebook-reviews/feed-them-social-facebook-reviews.php' ) && 'reviews' === $fb_shortcode['type'] ) && 'autoscroll' === $fb_shortcode['loadmore'] ) {
2224
+ echo '<div id="loadMore_' . esc_attr( $fts_dynamic_name ) . '" class="fts-fb-load-more fts-fb-autoscroll-loader">Facebook</div>';
2225
+ }
2226
+ }
2227
+ }
2228
+ // end of if loadmore is button or autoscroll.
2229
+ }
2230
+ // end fts_facebook_loadmore().
2231
+
2232
+ /**
2233
+ * Random String
2234
+ *
2235
+ * Create a random string
2236
+ *
2237
+ * @param string $length How many character to randomize.
2238
+ * @return mixed
2239
+ * @since 1.9.6
2240
+ */
2241
+ public function fts_rand_string( $length = 10 ) {
2242
+ $characters = 'abcdefghijklmnopqrstuvwxyz';
2243
+ $characters_length = strlen( $characters );
2244
+ $random_string = '';
2245
+ for ( $i = 0; $i < $length; $i++ ) {
2246
+ $random_string .= $characters[ wp_rand( 0, $characters_length - 1 ) ];
2247
+ }
2248
+
2249
+ return $random_string;
2250
+ }
2251
  }//end class
feeds/instagram/class-fts-instagram-feed.php CHANGED
@@ -10,888 +10,1182 @@
10
  * @since 1.0.0
11
  */
12
  namespace feedthemsocial;
 
13
  /**
14
  * Class FTS_Instagram_Feed
15
  *
16
  * @package feedthemsocial
17
  */
18
  class FTS_Instagram_Feed extends feed_them_social_functions {
19
- /**
20
- * Construct
21
- *
22
- * Instagram Feed constructor.
23
- *
24
- * @since 1.9.6
25
- */
26
- public function __construct() {
27
- add_shortcode( 'fts_instagram', array( $this, 'fts_instagram_func' ) );
28
- add_action( 'wp_enqueue_scripts', array( $this, 'fts_instagram_head' ) );
29
- }
30
- /**
31
- * Convert Instagram Description Links using
32
- *
33
- * Takes our description and converts and links to a tags.
34
- *
35
- * @param string $bio The Bio.
36
- * @return null|string|string[]
37
- * @since 1.9.6
38
- */
39
- public function convert_instagram_description_links( $bio ) {
40
- // Create links from @mentions and regular links.
41
- $bio = preg_replace( '~https?://[^<>\s]+~i', '<a href="$0" target="_blank">$0</a>', $bio );
42
- $bio = preg_replace( '/#+(\w+)/u', '<a href="https://www.instagram.com/explore/tags/$1" target="_blank">$0</a>', $bio );
43
- $bio = preg_replace( '/@+(\w+)/u', '<a href="https://www.instagram.com/$1" target="_blank">@$1</a>', $bio );
44
- return $bio;
45
- }
46
- /**
47
- * Convert Instagram Links
48
- *
49
- * Convert any link found in the description to a clickable one.
50
- *
51
- * @param string $instagram_caption_a_title Caption title.
52
- * @return null|string|string[]
53
- * @since 1.9.6
54
- */
55
- public function convert_instagram_links( $instagram_caption_a_title ) {
56
- // Create links from @mentions, #hashtags and regular links.
57
- $instagram_caption_a_title = preg_replace( '~https?://[^<>\s]+~i', '<a href="$0" target="_blank">$0</a>', $instagram_caption_a_title );
58
- $instagram_caption = preg_replace( '/#+(\w+)/u', '<a href="https://www.instagram.com/explore/tags/$1" target="_blank">$0</a>', $instagram_caption_a_title );
59
- $instagram_caption = preg_replace( '/@+(\w+)/u', '<a href="https://www.instagram.com/$1" target="_blank">@$1</a>', $instagram_caption );
60
- return $instagram_caption;
61
- }
62
- /**
63
- * FTS Instagram Head
64
- *
65
- * Enqueue styles for this feed.
66
- *
67
- * @since 1.9.6
68
- */
69
- public function fts_instagram_head() {
70
- wp_enqueue_style( 'fts-feeds', plugins_url( 'feed-them-social/feeds/css/styles.css' ), array(), FTS_CURRENT_VERSION );
71
- }
72
- /**
73
- * FTS Instagram Likes Count
74
- *
75
- * Convert the likes count to a usable number.
76
- *
77
- * @param string $post_data Post data.
78
- * @return string
79
- * @since 1.9.6
80
- */
81
- public function fts_instagram_likes_count( $post_data ) {
82
- // These need to be in this order to keep the different counts straight since I used either $instagram_likes or $instagram_comments throughout.
83
- $instagram_likes = isset( $post_data->likes->count ) ? $post_data->likes->count : '';
84
- // here we add a , for all numbers below 9,999.
85
- if ( isset( $instagram_likes ) && $instagram_likes <= 9999 ) {
86
- $instagram_likes = number_format( $instagram_likes );
87
- }
88
- // here we convert the number for the like count like 1,200,000 to 1.2m if the number goes into the millions.
89
- if ( isset( $instagram_likes ) && $instagram_likes >= 1000000 ) {
90
- $instagram_likes = round( ( $instagram_likes / 1000000 ), 1 ) . 'm';
91
- }
92
- // here we convert the number for the like count like 10,500 to 10.5k if the number goes in the 10 thousands.
93
- if ( isset( $instagram_likes ) && $instagram_likes >= 10000 ) {
94
- $instagram_likes = round( ( $instagram_likes / 1000 ), 1 ) . 'k';
95
- }
96
- return $instagram_likes;
97
- }
98
- /**
99
- * FTS Instagram Comments Count
100
- *
101
- * Convert the likes count to a usable number.
102
- *
103
- * @param string $post_data Post data.
104
- * @return string
105
- * @since 1.9.6
106
- */
107
- public function fts_instagram_comments_count( $post_data ) {
108
- $instagram_comments = isset( $post_data->comments->count ) ? $post_data->comments->count : '';
109
- // here we add a , for all numbers below 9,999.
110
- if ( isset( $instagram_comments ) && $instagram_comments <= 9999 ) {
111
- $instagram_comments = number_format( $instagram_comments );
112
- }
113
- // here we convert the number for the comment count like 1,200,000 to 1.2m if the number goes into the millions.
114
- if ( isset( $instagram_comments ) && $instagram_comments >= 1000000 ) {
115
- $instagram_comments = round( ( $instagram_comments / 1000000 ), 1 ) . 'm';
116
- }
117
- // here we convert the number for the comment count like 10,500 to 10.5k if the number goes in the 10 thousands.
118
- if ( isset( $instagram_comments ) && $instagram_comments >= 10000 ) {
119
- $instagram_comments = round( ( $instagram_comments / 1000 ), 1 ) . 'k';
120
- }
121
- return $instagram_comments;
122
- }
123
- /**
124
- * FTS Instagram Likes Comments Wrap
125
- *
126
- * Output the likes and comments ul wrapper.
127
- *
128
- * @param string $post_data Post data.
129
- * @return string
130
- * @since 1.9.6
131
- */
132
- public function fts_instagram_likes_comments_wrap( $post_data ) {
133
- return '<ul class="heart-comments-wrap"><li class="instagram-image-likes">' . $this->fts_instagram_likes_count( $post_data ) . '</li><li class="instagram-image-comments">' . $this->fts_instagram_comments_count( $post_data ) . '</li></ul>';
134
- }
135
- /**
136
- * FTS Instagram Image Link
137
- *
138
- * Instagram image url from the API
139
- *
140
- * @param string $post_data Post data.
141
- * @return string
142
- * @since 1.9.6
143
- */
144
- public function fts_instagram_image_link( $post_data ) {
145
- $instagram_lowrez_url = isset( $post_data->images->standard_resolution->url ) ? $post_data->images->standard_resolution->url : '';
146
- return $instagram_lowrez_url;
147
- }
148
- /**
149
- * FTS Instagram Video Link
150
- *
151
- * Video Link from Instagram API
152
- *
153
- * @param string $post_data Post data.
154
- * @return string
155
- * @since 1.9.6
156
- */
157
- public function fts_instagram_video_link( $post_data ) {
158
- $instagram_video_standard_resolution = isset( $post_data->videos->standard_resolution->url ) ? $post_data->videos->standard_resolution->url : '';
159
- return $instagram_video_standard_resolution;
160
- }
161
- /**
162
- * FTS Instagram Description
163
- *
164
- * Description of image from Instagram API
165
- *
166
- * @param string $post_data Post data.
167
- * @return null|string|string[]
168
- * @since 1.9.6
169
- */
170
- public function fts_instagram_description( $post_data ) {
171
- $instagram_caption_a_title = isset( $post_data->caption->text ) ? $post_data->caption->text : '';
172
- $instagram_caption_a_title = htmlspecialchars( $instagram_caption_a_title );
173
- $instagram_caption = $this->convert_instagram_links( $instagram_caption_a_title );
174
- return $instagram_caption;
175
- }
176
- /**
177
- * FTS View on Instagram url
178
- *
179
- * Link to view the image on Instagram
180
- *
181
- * @param string $post_data Post data.
182
- * @return string
183
- * @since 1.9.6
184
- */
185
- public function fts_view_on_instagram_url( $post_data ) {
186
- $instagram_post_url = isset( $post_data->link ) ? $post_data->link : '';
187
- return $instagram_post_url;
188
- }
189
- /**
190
- * FTS View on Instagram Link
191
- *
192
- * Full a tag with Instagram url from the function above
193
- *
194
- * @param string $post_data Post data.
195
- * @return string
196
- * @since 1.9.6
197
- */
198
- public function fts_view_on_instagram_link( $post_data ) {
199
- return '<a href="' . esc_url( $this->fts_view_on_instagram_url( $post_data ) ) . '" class="fts-view-on-instagram-link" target="_blank">' . esc_html( 'View on Instagram', 'feed-them-social' ) . '</a>';
200
- }
201
- /**
202
- * FTS Instagram Popup Description
203
- *
204
- * Full description for our popup
205
- *
206
- * @param string $post_data Post data.
207
- * @return string
208
- * @since 1.9.6
209
- */
210
- public function fts_instagram_popup_description( $post_data ) {
211
- return '<div class="fts-instagram-caption"><div class="fts-instagram-caption-content"><p>' . $this->fts_instagram_description( $post_data ) . '</p></div>' . $this->fts_view_on_instagram_link( $post_data ) . '</div>';
212
- }
213
- /**
214
- * FTS Instagram Function
215
- *
216
- * Display the Instagram Feed.
217
- *
218
- * @param array $atts Attributes array.
219
- * @return mixed
220
- * @since 1.9.6
221
- */
222
- public function fts_instagram_func( $atts ) {
223
- $fts_instagram_feed_nonce = wp_create_nonce( 'fts-instagram-feed-page-nonce' );
224
- if ( wp_verify_nonce( $fts_instagram_feed_nonce, 'fts-instagram-feed-page-nonce' ) ) {
225
- include_once ABSPATH . 'wp-admin/includes/plugin.php';
226
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
227
- include WP_CONTENT_DIR . '/plugins/feed-them-premium/feeds/instagram/instagram-feed.php';
228
- // $popup variable comes from the premium version
229
- if ( isset( $popup ) && 'yes' === $popup ) {
230
- // it's ok if these styles & scripts load at the bottom of the page.
231
- $fts_fix_magnific = get_option( 'fts_fix_magnific' ) ? get_option( 'fts_fix_magnific' ) : '';
232
- if ( '1' !== $fts_fix_magnific ) {
233
- wp_enqueue_style( 'fts-popup', plugins_url( 'feed-them-social/feeds/css/magnific-popup.css' ), array(), FTS_CURRENT_VERSION, false );
234
- }
235
- wp_enqueue_script( 'fts-popup-js', plugins_url( 'feed-them-social/feeds/js/magnific-popup.js' ), array(), FTS_CURRENT_VERSION, false );
236
- }
237
- } else {
238
- extract(
239
- shortcode_atts(
240
- array(
241
- 'instagram_id' => '',
242
- 'type' => '',
243
- 'pics_count' => '',
244
- 'super_gallery' => '',
245
- 'image_size' => '',
246
- 'icon_size' => '',
247
- 'space_between_photos' => '',
248
- 'hide_date_likes_comments' => '',
249
- 'center_container' => '',
250
- 'height' => '',
251
- 'width' => '',
252
- // user profile options.
253
- 'profile_wrap' => '',
254
- 'profile_photo' => '',
255
- 'profile_stats' => '',
256
- 'profile_name' => '',
257
- 'profile_description' => '',
258
- 'columns' => '',
259
- 'force_columns' => '',
260
- 'access_token' => '',
261
- ),
262
- $atts
263
- )
264
- );
265
- if ( null === $pics_count ) {
266
- $pics_count = '6';
267
- }
268
- }
269
- // Added new debug option SRL: 6/7/18.
270
- extract(
271
- shortcode_atts(
272
- array(
273
- 'debug' => '',
274
- 'debug_userinfo' => '',
275
- ),
276
- $atts
277
- )
278
- );
279
- if ( ! is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && $pics_count > '6' ) {
280
- $pics_count = '6';
281
- }
282
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
283
- $pics_count = $pics_count;
284
- } else {
285
- $pics_count = '10';
286
- }
287
- wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
288
- $instagram_data_array = array();
289
- $fts_instagram_access_token = get_option( 'fts_instagram_custom_api_token' );
290
- $fts_instagram_show_follow_btn = get_option( 'instagram_show_follow_btn' );
291
- $fts_instagram_show_follow_btn_where = get_option( 'instagram_show_follow_btn_where' );
292
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
293
- $instagram_load_more_text = get_option( 'instagram_load_more_text' ) ? get_option( 'instagram_load_more_text' ) : __( 'Load More', 'feed-them-social' );
294
- $instagram_no_more_photos_text = get_option( 'instagram_no_more_photos_text' ) ? get_option( 'instagram_no_more_photos_text' ) : __( 'No More Photos', 'feed-them-social' );
295
- }
296
- // Make sure it's not ajaxing.
297
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
298
- // $type is the variable coming the shortcode.
299
- $_REQUEST['fts_dynamic_name'] = sanitize_key( $this->fts_rand_string( 10 ) . '_' . $type );
300
- // Create Dynamic Class Name.
301
- $fts_dynamic_class_name = '';
302
- if ( isset( $_REQUEST['fts_dynamic_name'] ) ) {
303
- $fts_dynamic_class_name = 'feed_dynamic_class' . sanitize_key( $_REQUEST['fts_dynamic_name'] );
304
- }
305
- }
306
- ob_start();
307
- // New method since Instagram API changes as of April 4th, 2018.
308
- if ( '' === $access_token ) {
309
- $fts_instagram_access_token_final = $fts_instagram_access_token;
310
- } else {
311
- $fts_instagram_access_token_final = $access_token;
312
  }
313
- if(isset($_REQUEST['next_url'])){
314
- $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token='.get_option('fts_instagram_custom_api_token'), $_REQUEST['next_url'] );
315
- }
316
- // $instagram_id comes from our shortcode.
317
- // URL to get Feeds.
318
- if ( 'hashtag' === $type ) {
319
- $instagram_data_array['data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : 'https://api.instagram.com/v1/tags/' . $instagram_id . '/media/recent/?count=' . $pics_count . '&access_token=' . $fts_instagram_access_token_final;
320
- } elseif ( 'location' === $type ) {
321
- $instagram_data_array['data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : 'https://api.instagram.com/v1/locations/' . $instagram_id . '/media/recent/?count=' . $pics_count . '&access_token=' . $fts_instagram_access_token_final;
322
- } else {
323
- $instagram_data_array['data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : 'https://api.instagram.com/v1/users/' . $instagram_id . '/media/recent/?count=' . $pics_count . '&access_token=' . $fts_instagram_access_token_final;
324
- }
325
- $instagram_data_array['user_info'] = 'https://api.instagram.com/v1/users/' . $instagram_id . '?access_token=' . $fts_instagram_access_token_final;
326
- $cache = 'instagram_cache_' . $instagram_id . '_num' . $pics_count . '';
327
- // First we make sure the feed is not cached already before trying to run the Instagram API.
328
- if ( false === $this->fts_check_feed_cache_exists( $cache ) ) {
329
- $response = $this->fts_get_feed_json( $instagram_data_array );
330
- // Error Check.
331
- $error_check = json_decode( $response['data'] );
332
- // $error_check_test = 'test error zzzz';.
333
- // || $error_check_test == 'test error';.
334
- if ( current_user_can( 'administrator' ) && 'true' === $debug ) {
335
- esc_html_e( 'Check if user exists in Instagram\'s API', 'feed-them-social' );
336
- echo '<br/><pre>';
337
- print_r( $error_check );
338
- echo '</pre>';
339
- }
340
- }
341
- // If the feed is cached then we run the cached array to display the feed.
342
- if ( false !== $this->fts_check_feed_cache_exists( $cache ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
343
- $response = $this->fts_get_feed_cache( $cache );
344
- $insta_data = json_decode( $response['data'] );
345
- $note = esc_html( 'Cached', 'feed-them-social' );
346
- } elseif ( isset( $error_check->error_message ) || isset( $error_check->meta->error_message ) || empty( $error_check ) ) {
347
- // If the Instagram API array returns any error messages we check for them here and return the corresponding error message!
348
- if ( current_user_can( 'administrator' ) ) {
349
- if ( isset( $error_check->error_message ) ) {
350
- $error = $error_check->error_message;
351
- } elseif ( isset( $error_check->meta->error_message ) ) {
352
- $error = $error_check->meta->error_message;
353
- } else {
354
- $error = esc_html( 'Please go to the Instagram Options page of our plugin a double check your Instagram ID matches the one used in your shortcode on this page.', 'feed-them-social' );
355
- }
356
- return esc_html( 'Feed Them Social (Notice visible to Admin only). Instagram returned:', 'feed-them-social' ) . ' ' . $error;
357
- } else {
358
- return;
359
- }
360
- } else {
361
- $insta_data = json_decode( $response['data'] );
362
- // if Error DON'T Cache.
363
- if ( ! isset( $error_check->meta->error_message ) && ! isset( $_GET['load_more_ajaxing'] ) || ! isset( $error_check->error_message ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
364
- $this->fts_create_feed_cache( $cache, $response );
365
- $note = esc_html( 'Not Cached', 'feed-them-social' );
366
- }
367
- }
368
- $instagram_user_info = ! empty( $response['user_info'] ) ? json_decode( $response['user_info'] ) : '';
369
- // URL to get Feeds.
370
- if ( 'hashtag' !== $type && 'location' !== $type ) {
371
- $username = $instagram_user_info->data->username;
372
- $bio = $instagram_user_info->data->bio;
373
- $profile_picture = $instagram_user_info->data->profile_picture;
374
- $full_name = $instagram_user_info->data->full_name;
375
- $website = $instagram_user_info->data->website;
376
- }
377
- if ( current_user_can( 'administrator' ) && 'true' === $debug_userinfo ) {
378
- echo '<pre>';
379
- print_r( $instagram_user_info );
380
- echo '</pre>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
381
  }
382
- // ->pagination->next_url.
383
- if ( current_user_can( 'administrator' ) && 'true' === $debug ) {
384
- echo esc_html( $note ) . '<br/><pre>';
385
- print_r( $response );
386
- echo '</pre>';
 
 
 
 
 
 
 
 
 
 
387
  }
388
- // Make sure it's not ajaxing.
389
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
390
- // Social Button.
391
- if ( isset( $profile_picture ) && 'yes' === $profile_wrap ) { ?>
392
- <div class="fts-profile-wrap">
393
- <?php if ( isset( $profile_photo ) && 'yes' === $profile_photo ) { ?>
394
- <div class="fts-profile-pic">
395
- <a href="https://www.instagram.com/<?php echo esc_attr( $username ); ?>"><img
396
- src="<?php echo esc_url( $profile_picture ); ?>" title="<?php echo esc_attr( $username ); ?>"/></a>
397
- </div>
398
- <?php
399
- }
400
- if ( isset( $profile_name ) && 'yes' === $profile_name ) {
401
- ?>
402
- <div class="fts-profile-name-wrap">
403
-
404
- <div class="fts-isnta-full-name"><?php echo esc_html( $full_name ); ?></div>
405
- <?php
406
- if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
407
- echo '<div class="fts-follow-header-wrap">';
408
- echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
409
- echo '</div>';
410
- }
411
- ?>
412
- </div>
413
- <?php
414
- }
415
- // $profile stats comes from the shortcode
416
- if ( 'yes' === $profile_stats ) {
417
- // These need to be in this order to keep the different counts straight since I used either $instagram_likes or $instagram_comments throughout.
418
- $number_posted_pics = isset( $instagram_user_info->data->counts->media ) ? $instagram_user_info->data->counts->media : '';
419
- // here we add a , for all numbers below 9,999.
420
- if ( isset( $number_posted_pics ) && $number_posted_pics <= 9999 ) {
421
- $number_posted_pics = number_format( $number_posted_pics );
422
- }
423
- // here we convert the number for the like count like 1,200,000 to 1.2m if the number goes into the millions.
424
- if ( isset( $number_posted_pics ) && $number_posted_pics >= 1000000 ) {
425
- $number_posted_pics = round( ( $number_posted_pics / 1000000 ), 1 ) . 'm';
426
- }
427
- // here we convert the number for the like count like 10,500 to 10.5k if the number goes in the 10 thousands.
428
- if ( isset( $number_posted_pics ) && $number_posted_pics >= 10000 ) {
429
- $number_posted_pics = round( ( $number_posted_pics / 1000 ), 1 ) . 'k';
430
- }
431
- $number_followed_by = $instagram_user_info->data->counts->followed_by;
432
- // here we add a , for all numbers below 9,999.
433
- if ( isset( $number_followed_by ) && $number_followed_by <= 9999 ) {
434
- $number_followed_by = number_format( $number_followed_by );
435
- }
436
- // here we convert the number for the comment count like 1,200,000 to 1.2m if the number goes into the millions.
437
- if ( isset( $number_followed_by ) && $number_followed_by >= 1000000 ) {
438
- $number_followed_by = round( ( $number_followed_by / 1000000 ), 1 ) . 'm';
439
- }
440
- // here we convert the number for the comment count like 10,500 to 10.5k if the number goes in the 10 thousands.
441
- if ( isset( $number_followed_by ) && $number_followed_by >= 10000 ) {
442
- $number_followed_by = round( ( $number_followed_by / 1000 ), 1 ) . 'k';
443
- }
444
- $number_follows = $instagram_user_info->data->counts->follows;
445
- // here we add a , for all numbers below 9,999.
446
- if ( isset( $number_follows ) && $number_follows <= 9999 ) {
447
- $number_follows = number_format( $number_follows );
448
- }
449
- // here we convert the number for the comment count like 1,200,000 to 1.2m if the number goes into the millions.
450
- if ( isset( $number_follows ) && $number_follows >= 1000000 ) {
451
- $number_follows = round( ( $number_follows / 1000000 ), 1 ) . 'm';
452
- }
453
- // here we convert the number for the comment count like 10,500 to 10.5k if the number goes in the 10 thousands.
454
- if ( isset( $number_follows ) && $number_follows >= 10000 ) {
455
- $number_follows = round( ( $number_follows / 1000 ), 1 ) . 'k';
456
- }
457
- ?>
458
- <div class="fts-profile-stats">
459
- <div class="fts-insta-posts">
460
- <span><?php echo esc_html( $number_posted_pics ); ?></span> <?php echo esc_html( 'posts', 'feed-them-social' ); ?></div>
461
- <div class="fts-insta-followers">
462
- <span><?php echo esc_html( $number_followed_by ); ?></span> <?php echo esc_html( 'followers', 'feed-them-social' ); ?>
463
- </div>
464
- <div class="fts-insta-following">
465
- <span><?php echo esc_html( $number_follows ); ?></span> <?php echo esc_html( 'following', 'feed-them-social' ); ?></div>
466
- </div>
467
- <?php
468
- }
469
- if ( 'yes' === $profile_description ) {
470
- ?>
471
-
472
- <div class="fts-profile-description"><?php echo $this->convert_instagram_description_links( $bio ); ?>
473
- <a href="<?php echo esc_url( $website ); ?>"><?php echo esc_url( $website ); ?></a></div>
474
-
475
- <?php } ?>
476
-
477
- <div class="fts-clear"></div>
478
-
479
- </div>
480
- <?php
481
- } elseif ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
482
- echo '<div class="instagram-social-btn-top">';
483
- echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
484
- echo '</div>';
485
  }
486
- if ( isset( $scroll_more ) && 'autoscroll' === $scroll_more || ! empty( $height ) ) {
487
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
488
  <div class="fts-instagram-scrollable <?php echo esc_attr( $fts_dynamic_class_name ); ?>instagram" style="overflow:auto;
489
- <?php
490
- if ( '' !== $width ) {
491
- ?>
492
- max-width:
493
- <?php
494
- echo esc_attr( $width ) . ';';
495
- }
496
- if ( '' !== $height ) {
497
- ?>
498
- height:
499
- <?php
500
- echo esc_attr( $height );
501
- }
502
- ?>">
503
- <?php
504
- }
505
- if ( 'yes' === $super_gallery ) {
506
- $columns = isset( $columns ) ? $columns : '';
507
- $force_columns = isset( $force_columns ) ? $force_columns : '';
508
- ?>
509
- <div <?php if ( '' !== $width ) {
510
- ?>style="max-width: <?php echo esc_attr( $width ) . ';"';
511
- }
512
- ?>
513
- data-ftsi-columns="<?php echo esc_attr( $columns ); ?>" data-ftsi-force-columns="<?php echo esc_attr( $force_columns ); ?>" data-ftsi-margin="<?php echo esc_attr( $space_between_photos ); ?>" data-ftsi-width="<?php echo esc_attr( $image_size ); ?>" class="<?php echo 'fts-instagram-inline-block-centered ' . esc_attr( $fts_dynamic_class_name );
514
- if ( isset( $popup ) && 'yes' === $popup ) {
515
- echo ' popup-gallery';
516
- }
517
- echo '">';
518
- } else {
519
- ?>
520
- <div
521
- <?php
522
- if ( '' !== $width ) {
523
- ?>
524
- style="max-width:
525
- <?php
526
- echo esc_attr( $width ) . '; margin:auto;" ';
527
- }
528
- ?>
529
- class="fts-instagram
530
- <?php
531
- if ( isset( $popup ) && 'yes' === $popup ) {
532
- echo 'popup-gallery ';
533
- }
534
- echo esc_attr( $fts_dynamic_class_name ) . '">';
535
- }
536
- $set_zero = 0;
537
- } // END Make sure it's not ajaxing
538
- if ( ! isset( $insta_data->data ) ) {
539
- if ( ! function_exists( 'curl_init' ) ) {
540
- echo esc_html( 'cURL is not installed on this server. It is required to use this plugin. Please contact your host provider to install this.', 'feed-them-social' ) . '</div>';
541
- } else {
542
- echo esc_html( 'To see the Instagram feed you need to add your own API Token to the Instagram Options page of our plugin.', 'feed-them-social' ) . '</div>';
543
- }
544
- }
545
- // echo '<pre>';.
546
- // print_r($insta_data);.
547
- // echo '</pre>';.
548
- foreach ( $insta_data->data as $post_data ) {
549
- if ( isset( $set_zero ) && $set_zero === $pics_count ) {
550
- break;
551
- }
552
- // Create Instagram Variables
553
- // tied to date function.
554
- $feed_type = 'instagram';
555
- $times = $post_data->created_time;
556
- // call our function to get the date.
557
- $instagram_date = $this->fts_custom_date( $times, $feed_type );
558
- if ( 'hashtag' === $type || 'location' === $type ) {
559
- $username = isset( $post_data->user->username ) ? $post_data->user->username : '';
560
- $profile_picture = isset( $post_data->user->profile_picture ) ? $post_data->user->profile_picture : '';
561
- $full_name = isset( $post_data->user->full_name ) ? $post_data->user->full_name : '';
562
- $instagram_username = $username;
563
- } else {
564
- $instagram_username = $instagram_user_info->data->username;
565
- }
566
- $instagram_caption_a_title = isset( $post_data->caption->text ) ? $post_data->caption->text : '';
567
- $instagram_caption_a_title = htmlspecialchars( $instagram_caption_a_title );
568
- $instagram_caption = $this->convert_instagram_links( $instagram_caption_a_title );
569
- $instagram_thumb_url = isset( $post_data->images->thumbnail->url ) ? $post_data->images->thumbnail->url : '';
570
- $instagram_lowrez_url = isset( $post_data->images->standard_resolution->url ) ? $post_data->images->standard_resolution->url : '';
571
- $instagram_video_standard_resolution = isset( $post_data->videos->standard_resolution->url ) ? $post_data->videos->standard_resolution->url : '';
572
- if ( isset( $_SERVER['HTTPS'] ) ) {
573
- $instagram_thumb_url = str_replace( 'http://', 'https://', $instagram_thumb_url );
574
- $instagram_lowrez_url = str_replace( 'http://', 'https://', $instagram_lowrez_url );
575
- }
576
- // Super Gallery If statement.
577
- if ( 'yes' === $super_gallery ) {
578
- ?>
579
- <div class='slicker-instagram-placeholder fts-instagram-wrapper' style='background-image:url(<?php echo esc_url( $this->fts_instagram_image_link( $post_data ) ); ?>);'>
580
- <?php
581
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup ) {
582
- ?>
583
- <div class="fts-instagram-popup-profile-wrap">
584
- <div class="fts-profile-pic">
585
- <a href="https://www.instagram.com/<?php echo esc_html( $username ); ?>">
586
- <?php
587
- if ( 'user' === $type ) {
588
- ?>
589
- <img src="<?php echo esc_url( $profile_picture ); ?>" title="<?php echo esc_attr( $username ); ?>"/>
590
- <?php
591
- } else {
592
- ?>
593
- <span class="fts-instagram-icon" style="height:40px; width:40px; line-height:40px; font-size:40px;"></span><?php } ?>
594
- </a>
595
- </div>
596
- <div class="fts-profile-name-wrap">
597
- <div class="fts-isnta-full-name">
598
- <a href="https://www.instagram.com/<?php esc_html( $username ); ?>" style="color: #000;">
599
- <?php
600
- if ( 'user' === $type ) {
601
- echo esc_html( $full_name );
602
- } else {
603
- echo esc_html( $username );
604
- }
605
- ?>
606
- </a>
607
- </div>
608
- <?php
609
- if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
610
- echo '<div class="fts-follow-header-wrap">';
611
- echo $this->social_follow_button( 'instagram', $instagram_username );
612
- echo '</div>';
613
- }
614
- ?>
615
- </div>
616
- </div>
617
- <?php
618
- // this is already escaping in the function, re escaping will cause errors.
619
- echo $this->fts_instagram_popup_description( $post_data );
620
- }
621
- ?>
622
- <a href='<?php
623
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup && ( 'image' === $post_data->type || 'carousel' === $post_data->type ) ) {
624
- print esc_url( $this->fts_instagram_image_link( $post_data ) );
625
- } elseif ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'yes' === $popup && 'video' === $post_data->type ) {
626
- print esc_url( $this->fts_instagram_video_link( $post_data ) );
627
- } else {
628
- print esc_url( $this->fts_view_on_instagram_url( $post_data ) );
629
- }
630
- ?>' title='<?php print esc_attr( $instagram_caption_a_title ); ?>' target="_blank" class='fts-instagram-link-target fts-slicker-backg <?php
631
- if ( 'video' === $post_data->type && isset( $popup ) && 'yes' === $popup ) {
632
- ?> fts-instagram-video-link <?php
633
- } else {
634
- ?> fts-instagram-img-link<?php } ?>' style="height:<?php echo esc_attr( $icon_size ); ?> !important; width:<?php echo esc_attr( $icon_size ); ?>; line-height:<?php echo esc_attr( $icon_size ); ?>; font-size:<?php echo esc_attr( $icon_size ); ?>;"><span
635
- class="fts-instagram-icon"
636
- style="height:<?php echo esc_attr( $icon_size ); ?>; width:<?php echo esc_attr( $icon_size ); ?>; line-height:<?php echo esc_attr( $icon_size ); ?>; font-size:<?php echo esc_attr( $icon_size ); ?>;"></span></a>
637
- <?php if ( 'no' === $hide_date_likes_comments ) { ?>
638
- <div class='slicker-date'>
639
- <div class="fts-insta-date-popup-grab"><?php echo esc_html( $instagram_date ); ?></div>
640
- </div>
641
- <?php } ?>
642
- <div class='slicker-instaG-backg-link'>
643
- <div class='slicker-instaG-photoshadow'></div>
644
- </div>
645
- <?php if ( 'no' === $hide_date_likes_comments ) { ?>
646
- <div class="fts-insta-likes-comments-grab-popup">
647
- <?php
648
- // this is already escaping in the function, re escaping will cause errors.
649
- echo $this->fts_share_option( $this->fts_view_on_instagram_url( $post_data ), $this->fts_instagram_description( $post_data ) );
650
- ?>
651
- <div class="fts-instagram-reply-wrap-left">
652
- <ul class='slicker-heart-comments-wrap'>
653
- <li class='slicker-instagram-image-likes'><?php echo esc_html( $this->fts_instagram_likes_count( $post_data ) ); ?> </li>
654
- <li class='slicker-instagram-image-comments'>
655
- <span class="fts-comment-instagram"></span> <?php echo esc_html( $this->fts_instagram_comments_count( $post_data ) ); ?>
656
- </li>
657
- </ul>
658
- </div>
659
- </div>
660
- <?php } ?>
661
- </div>
662
- <?php
663
- }
664
- else {
665
- // Classic Gallery If statement.
666
- ?>
667
- <div class='instagram-placeholder fts-instagram-wrapper' style='width:150px;'>
668
- <?php
669
- if ( isset( $popup ) && 'yes' === $popup ) {
670
- print '<div class="fts-backg"></div>';
671
- } else {
672
- ?>
673
- <a class='fts-backg' target='_blank' href='<?php echo esc_url( $this->fts_view_on_instagram_url( $post_data ) ); ?>'></a><?php }; ?>
674
- <div class='date slicker-date'>
675
- <div class="fts-insta-date-popup-grab"><?php echo esc_html( $instagram_date ); ?></div>
676
- </div>
677
- <?php if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup ) { ?>
678
- <div class="fts-instagram-popup-profile-wrap">
679
- <div class="fts-profile-pic">
680
- <a href="https://www.instagram.com/<?php echo esc_attr( $username ); ?>"><img
681
- src="<?php echo esc_attr( $profile_picture ); ?>" title="<?php echo esc_attr( $username ); ?>"/></a>
682
- </div>
683
- <div class="fts-profile-name-wrap">
684
- <div class="fts-isnta-full-name"><?php echo esc_attr( $full_name ); ?></div>
685
- <?php
686
- if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
687
- echo '<div class="fts-follow-header-wrap">';
688
- echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
689
- echo '</div>';
690
- }
691
- ?>
692
- </div>
693
- </div>
694
- <?php
695
- // caption for our popup.
696
- echo $this->fts_instagram_popup_description( $post_data );
697
- ?>
698
- <?php } ?>
699
- <a href="<?php
700
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup && ( 'image' === $post_data->type || 'carousel' === $post_data->type ) ) {
701
- echo esc_url( $this->fts_instagram_image_link( $post_data ) );
702
- } elseif ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup && 'video' === $post_data->type ) {
703
- echo esc_url( $this->fts_instagram_video_link( $post_data ) );
704
- } else {
705
- echo esc_url( $this->fts_view_on_instagram_url( $post_data ) );
706
- }
707
- ?>" class='fts-instagram-link-target instaG-backg-link <?php
708
- if ( 'video' === $post_data->type ) {
709
- ?>fts-instagram-video-link<?php
710
- } else {
711
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
712
  fts-instagram-img-link<?php } ?>' target='_blank' title='<?php echo esc_attr( $instagram_caption_a_title ); ?>'>
713
- <img src="<?php echo esc_url( $instagram_thumb_url ); ?>" class="instagram-image"/>
714
- <div class='instaG-photoshadow'></div>
715
- </a>
716
- <div class="fts-insta-likes-comments-grab-popup">
717
- <?php echo $this->fts_instagram_likes_comments_wrap( $post_data ); ?>
718
- </div>
719
- </div>
720
- <?php
721
- }
722
- if ( isset( $set_zero ) ) {
723
- $set_zero++;
724
- }
725
- }
726
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && !empty( $scroll_more ) ) {
727
- // ******************
728
- // Load More BUTTON Start
729
- // ******************
730
- $next_url = isset( $insta_data->pagination->next_url ) ? $insta_data->pagination->next_url : '';
731
- // we check to see if the loadmore count number is set and if so pass that as the new count number when fetching the next set of pics/videos.
732
- $_REQUEST['next_url'] = ! empty( $loadmore_count ) ? str_replace( "count=$pics_count", "count=$loadmore_count", $next_url ) : $next_url;
733
- $access_token = 'access_token='.get_option( 'fts_instagram_custom_api_token' );
734
- $_REQUEST['next_url'] = str_replace( $access_token, "access_token=XXX", $next_url );
735
- ?>
736
- <script>var nextURL_<?php echo esc_js( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ); ?>= "<?php echo esc_url_raw( $_REQUEST['next_url'] ); ?>";</script>
737
- <?php
738
- // Make sure it's not ajaxing.
739
- if ( ! isset( $_GET['load_more_ajaxing'] ) && ! isset( $_REQUEST['fts_no_more_posts'] ) && ! empty( $loadmore ) ) {
740
- $fts_dynamic_name = sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) );
741
- $time = time();
742
- $nonce = wp_create_nonce( $time . 'load-more-nonce' );
743
- ?>
744
- <script>jQuery(document).ready(function () {
745
- <?php
746
- // $scroll_more = load_more_posts_style shortcode att.
747
- if ( 'autoscroll' === $scroll_more ) { // this is where we do SCROLL function to LOADMORE if = autoscroll in shortcode.
748
- ?>
749
- jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>instagram").bind("scroll", function () {
750
- if (jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight) {
751
- <?php
752
- } else { // this is where we do CLICK function to LOADMORE if = button in shortcode.
753
- ?>
754
- jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").click(function () {
755
- <?php } ?>
756
- jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").addClass('fts-fb-spinner');
757
- var button = jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div>');
758
- console.log(button);
759
-
760
- var feed_name = "fts_instagram";
761
- var loadmore_count = "pics_count=<?php echo esc_js( $loadmore_count ); ?>";
762
- var feed_attributes = <?php echo wp_json_encode( $atts ); ?>;
763
- var yes_ajax = "yes";
764
- var fts_d_name = "<?php echo esc_js( $fts_dynamic_name ); ?>";
765
- var fts_security = "<?php echo esc_js( $nonce ); ?>";
766
- var fts_time = "<?php echo esc_js( $time ); ?>";
767
- jQuery.ajax({
768
- data: {
769
- action: "my_fts_fb_load_more",
770
- next_url: nextURL_<?php echo esc_js( $fts_dynamic_name ); ?>,
771
- fts_dynamic_name: fts_d_name,
772
- load_more_ajaxing: yes_ajax,
773
- fts_security: fts_security,
774
- fts_time: fts_time,
775
- feed_name: feed_name,
776
- loadmore_count: loadmore_count,
777
- feed_attributes: feed_attributes
778
- },
779
- type: 'GET',
780
- url: "<?php echo esc_js( admin_url( 'admin-ajax.php' ) ); ?>",
781
- success: function (data) {
782
- console.log('Well Done and got this from sever: ' + data);
783
- jQuery('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').append(data).filter('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').html();
784
- if (!nextURL_<?php echo esc_js( sanitize_key( $_REQUEST['fts_dynamic_name'] ) ); ?> || nextURL_<?php echo esc_js( sanitize_key( $_REQUEST['fts_dynamic_name'] ) ); ?> === 'no more') {
785
- jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').replaceWith('<div class="fts-fb-load-more no-more-posts-fts-fb"><?php echo esc_js( $instagram_no_more_photos_text ); ?></div>');
786
- jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').removeAttr('id');
787
- jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>instagram").unbind('scroll');
788
- }
789
- jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<?php echo esc_js( $instagram_load_more_text ); ?>');
790
- jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").removeClass('fts-fb-spinner');
791
- jQuery.fn.ftsShare(); // Reload the share each funcion otherwise you can't open share option
792
- jQuery.fn.slickInstagramPopUpFunction(); // Reload this function again otherwise the popup won't work correctly for the newly loaded items
793
- if (typeof outputSRmargin === "function") {
794
- outputSRmargin(document.querySelector('#margin').value)
795
- } // Reload our margin for the demo
796
- slickremixImageResizing(); // Reload our imagesizing function so the images show up proper
797
- }
798
- }); // end of ajax()
799
- return false;
800
- <?php
801
- // string $scroll_more is at top of this js script. exception for scroll option closing tag.
802
- if ( 'autoscroll' === $scroll_more ) {
803
- ?>
804
- }; // end of scroll ajax load
805
- <?php } ?>
806
- }
807
- ); // end of document.ready
808
- }); // end of form.submit </script>
809
- <?php
810
- }//End Check.
811
- }
812
- // main closing div not included in ajax check so we can close the wrap at all times.
813
- print '</div>'; // closing main div for photos and scroll wrap.
814
- // Make sure it's not ajaxing.
815
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
816
- $fts_dynamic_name = sanitize_key( $_REQUEST['fts_dynamic_name'] );
817
- // this div returns outputs our ajax request via jquery append html from above.
818
- print '<div class="fts-clear"></div>';
819
- print '<div id="output_' . esc_attr( $fts_dynamic_name ) . '"></div>';
820
- if ( ! empty ( $scroll_more ) && 'autoscroll' === $scroll_more ) {
821
- print '<div id="loadMore_' . esc_attr( $fts_dynamic_name ) . '" class="fts-fb-load-more fts-fb-autoscroll-loader">Instagram</div>';
822
- }
823
- }
824
- ?>
825
- <?php
826
- // only show this script if the height option is set to a number.
827
- if ( ! empty ( $height ) && 'auto' !== $height ) {
828
- ?>
829
- <script>
830
- // this makes it so the page does not scroll if you reach the end of scroll bar or go back to top
831
- jQuery.fn.isolatedScrollFacebookFTS = function () {
832
- this.bind('mousewheel DOMMouseScroll', function (e) {
833
- var delta = e.wheelDelta || (e.originalEvent && e.originalEvent.wheelDelta) || -e.detail,
834
- bottomOverflow = this.scrollTop + jQuery(this).outerHeight() - this.scrollHeight >= 0,
835
- topOverflow = this.scrollTop <= 0;
836
- if ((delta < 0 && bottomOverflow) || (delta > 0 && topOverflow)) {
837
- e.preventDefault();
838
- }
839
- });
840
- return this;
841
- };
842
- jQuery('.fts-instagram-scrollable').isolatedScrollFacebookFTS();
843
- </script>
844
- <?php } //end $height !== 'auto' && empty($height) == NULL. ?>
845
- <?php
846
- if ( ! empty( $scroll_more ) && 'autoscroll' === $scroll_more || !empty( $height ) ) {
847
- print '</div>'; // closing height div for scrollable feeds.
848
- }
849
- if( is_plugin_active( 'feed-them-premium/feed-them-premium.php' )) {
850
- // Make sure it's not ajaxing.
851
- if ( !isset( $_GET['load_more_ajaxing'] ) ) {
852
- print '<div class="fts-clear"></div>';
853
- if ( !empty ( $scroll_more ) && 'button' === $scroll_more ) {
854
- print '<div class="fts-instagram-load-more-wrapper">';
855
- print '<div id="loadMore_' . esc_attr( $fts_dynamic_name ) . '" style="';
856
- if ( '' !== $loadmore_btn_maxwidth ) {
857
- print 'max-width:' . esc_attr( $loadmore_btn_maxwidth ) . ';';
858
- }
859
- $loadmore_btn_margin = isset( $loadmore_btn_margin ) ? $loadmore_btn_margin : '10px';
860
- print 'margin:' . esc_attr( $loadmore_btn_margin ) . ' auto ' . esc_attr( $loadmore_btn_margin ) . '" class="fts-fb-load-more">' . esc_html( $instagram_load_more_text ) . '</div>';
861
- print '</div>';
862
- }
863
- }//End Check.
864
- unset( $_REQUEST['next_url'] );
865
- }
866
- // Make sure it's not ajaxing.
867
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
868
- // Social Button.
869
- if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-below' === $fts_instagram_show_follow_btn_where ) {
870
- echo '<div class="instagram-social-btn-bottom">';
871
- echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
872
- echo '</div>';
873
- }
874
- }
875
- } // end nonce
876
- return ob_get_clean();
877
- }
878
- /**
879
- * Random String
880
- *
881
- * Create a random string
882
- *
883
- * @param string $length Length.
884
- * @return mixed
885
- * @since 1.9.6
886
- */
887
- public function fts_rand_string( $length = 10 ) {
888
- $characters = 'abcdefghijklmnopqrstuvwxyz';
889
- $characters_length = strlen( $characters );
890
- $random_string = '';
891
- for ( $i = 0; $i < $length; $i++ ) {
892
- $random_string .= $characters[ wp_rand( 0, $characters_length - 1 ) ];
893
- }
894
- return $random_string;
895
- }
896
- }//end class
897
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  * @since 1.0.0
11
  */
12
  namespace feedthemsocial;
13
+
14
  /**
15
  * Class FTS_Instagram_Feed
16
  *
17
  * @package feedthemsocial
18
  */
19
  class FTS_Instagram_Feed extends feed_them_social_functions {
20
+
21
+ /**
22
+ * Construct
23
+ *
24
+ * Instagram Feed constructor.
25
+ *
26
+ * @since 1.9.6
27
+ */
28
+ public function __construct() {
29
+ add_shortcode( 'fts_instagram', array( $this, 'fts_instagram_func' ) );
30
+ add_action( 'wp_enqueue_scripts', array( $this, 'fts_instagram_head' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  }
32
+
33
+ /**
34
+ * Convert Instagram Description Links using
35
+ *
36
+ * Takes our description and converts and links to a tags.
37
+ *
38
+ * @param string $bio The Bio.
39
+ * @return null|string|string[]
40
+ * @since 1.9.6
41
+ */
42
+ public function convert_instagram_description_links( $bio ) {
43
+ // Create links from @mentions and regular links.
44
+ $bio = preg_replace( '~https?://[^<>\s]+~i', '<a href="$0" target="_blank">$0</a>', $bio );
45
+ $bio = preg_replace( '/#+(\w+)/u', '<a href="https://www.instagram.com/explore/tags/$1" target="_blank">$0</a>', $bio );
46
+ $bio = preg_replace( '/@+(\w+)/u', '<a href="https://www.instagram.com/$1" target="_blank">@$1</a>', $bio );
47
+
48
+ return $bio;
49
+ }
50
+
51
+ /**
52
+ * Convert Instagram Links
53
+ *
54
+ * Convert any link found in the description to a clickable one.
55
+ *
56
+ * @param string $instagram_caption_a_title Caption title.
57
+ * @return null|string|string[]
58
+ * @since 1.9.6
59
+ */
60
+ public function convert_instagram_links( $instagram_caption_a_title ) {
61
+ // Create links from @mentions, #hashtags and regular links.
62
+ $instagram_caption_a_title = preg_replace( '~https?://[^<>\s]+~i', '<a href="$0" target="_blank">$0</a>', $instagram_caption_a_title );
63
+ $instagram_caption = preg_replace( '/#+(\w+)/u', '<a href="https://www.instagram.com/explore/tags/$1" target="_blank">$0</a>', $instagram_caption_a_title );
64
+ $instagram_caption = preg_replace( '/@+(\w+)/u', '<a href="https://www.instagram.com/$1" target="_blank">@$1</a>', $instagram_caption );
65
+
66
+ return $instagram_caption;
67
+ }
68
+
69
+ /**
70
+ * FTS Instagram Head
71
+ *
72
+ * Enqueue styles for this feed.
73
+ *
74
+ * @since 1.9.6
75
+ */
76
+ public function fts_instagram_head() {
77
+ wp_enqueue_style( 'fts-feeds', plugins_url( 'feed-them-social/feeds/css/styles.css' ), array(), FTS_CURRENT_VERSION );
78
+ }
79
+
80
+ /**
81
+ * FTS Instagram Likes Count
82
+ *
83
+ * Convert the likes count to a usable number.
84
+ *
85
+ * @param string $post_data Post data.
86
+ * @return string
87
+ * @since 1.9.6
88
+ */
89
+ public function fts_instagram_likes_count( $post_data ) {
90
+ // These need to be in this order to keep the different counts straight since I used either $instagram_likes or $instagram_comments throughout.
91
+ $hastag_likes = isset( $post_data->like_count ) ? $post_data->like_count : '';
92
+ $instagram_likes = isset( $post_data->likes->count ) ? $post_data->likes->count : $hastag_likes;
93
+ // here we add a , for all numbers below 9,999.
94
+ if ( isset( $instagram_likes ) && $instagram_likes <= 9999 ) {
95
+ $instagram_likes = number_format( $instagram_likes );
96
+ }
97
+ // here we convert the number for the like count like 1,200,000 to 1.2m if the number goes into the millions.
98
+ if ( isset( $instagram_likes ) && $instagram_likes >= 1000000 ) {
99
+ $instagram_likes = round( ( $instagram_likes / 1000000 ), 1 ) . 'm';
100
+ }
101
+ // here we convert the number for the like count like 10,500 to 10.5k if the number goes in the 10 thousands.
102
+ if ( isset( $instagram_likes ) && $instagram_likes >= 10000 ) {
103
+ $instagram_likes = round( ( $instagram_likes / 1000 ), 1 ) . 'k';
104
+ }
105
+
106
+ return $instagram_likes;
107
+ }
108
+
109
+ /**
110
+ * FTS Instagram Comments Count
111
+ *
112
+ * Convert the likes count to a usable number.
113
+ *
114
+ * @param string $post_data Post data.
115
+ * @return string
116
+ * @since 1.9.6
117
+ */
118
+ public function fts_instagram_comments_count( $post_data ) {
119
+ $hastag_comments = isset( $post_data->comments_count ) ? $post_data->comments_count : '';
120
+ $instagram_comments = isset( $post_data->comments->count ) ? $post_data->comments->count : $hastag_comments;
121
+ // here we add a , for all numbers below 9,999.
122
+ if ( isset( $instagram_comments ) && $instagram_comments <= 9999 ) {
123
+ $instagram_comments = number_format( $instagram_comments );
124
+ }
125
+ // here we convert the number for the comment count like 1,200,000 to 1.2m if the number goes into the millions.
126
+ if ( isset( $instagram_comments ) && $instagram_comments >= 1000000 ) {
127
+ $instagram_comments = round( ( $instagram_comments / 1000000 ), 1 ) . 'm';
128
+ }
129
+ // here we convert the number for the comment count like 10,500 to 10.5k if the number goes in the 10 thousands.
130
+ if ( isset( $instagram_comments ) && $instagram_comments >= 10000 ) {
131
+ $instagram_comments = round( ( $instagram_comments / 1000 ), 1 ) . 'k';
132
+ }
133
+
134
+ return $instagram_comments;
135
+ }
136
+
137
+ /**
138
+ * FTS Instagram Likes Comments Wrap
139
+ *
140
+ * Output the likes and comments ul wrapper.
141
+ *
142
+ * @param string $post_data Post data.
143
+ * @return string
144
+ * @since 1.9.6
145
+ */
146
+ public function fts_instagram_likes_comments_wrap( $post_data ) {
147
+ return '<ul class="heart-comments-wrap"><li class="instagram-image-likes">' . $this->fts_instagram_likes_count( $post_data ) . '</li><li class="instagram-image-comments">' . $this->fts_instagram_comments_count( $post_data ) . '</li></ul>';
148
+ }
149
+
150
+ /**
151
+ * FTS Instagram Image Link
152
+ *
153
+ * Instagram image url from the API
154
+ *
155
+ * @param string $post_data Post data.
156
+ * @return string
157
+ * @since 1.9.6
158
+ */
159
+ // One of these statements needs to be fixed so if the video is the first carousel post then we need to use the $post_data->permalink . 'media?size=l', it works ok for single post videos but not carousel ones.
160
+ public function fts_instagram_image_link( $post_data ) {
161
+
162
+ $hashtag_children = isset( $post_data->children ) ? $post_data->children->data[0]->media_url : '';
163
+
164
+ $instagram_api_children = isset( $post_data->images ) ? $post_data->images->standard_resolution->url : $hashtag_children;
165
+
166
+ $data_type_child = strpos( $hashtag_children, 'mp4' ) ? $post_data->permalink . 'media?size=l' : $instagram_api_children ;
167
+
168
+ $hastag_media_url = isset( $post_data->media_url ) ? $post_data->media_url : $data_type_child;
169
+
170
+ $hastag_media_url_final = isset( $post_data->media_type ) && 'VIDEO' === $post_data->media_type ? $post_data->permalink . 'media?size=l' : $hastag_media_url;
171
+
172
+ $instagram_lowrez_url = isset( $post_data->images->standard_resolution->url ) ? $post_data->images->standard_resolution->url : $hastag_media_url_final;
173
+
174
+ return $instagram_lowrez_url;
175
+ }
176
+
177
+ /**
178
+ * FTS Instagram Carousel Images
179
+ *
180
+ * Instagram image url from the API
181
+ *
182
+ * @param string $post_data Post data.
183
+ * @return string
184
+ * @since 1.9.6
185
+ */
186
+ public function fts_instagram_carousel_links( $post_data ) {
187
+
188
+ foreach ( $post_data->children->data as $image ) {?>
189
+ <div class='slicker-instagram-placeholder fts-instagram-wrapper' style='background-image:url(
190
+ <?php
191
+ }
192
+
193
+ }
194
+
195
+ /**
196
+ * FTS Instagram Video Link
197
+ *
198
+ * Video Link from Instagram API
199
+ *
200
+ * @param string $post_data Post data.
201
+ * @return string
202
+ * @since 1.9.6
203
+ */
204
+ public function fts_instagram_video_link( $post_data ) {
205
+
206
+ $hashtag_children = isset( $post_data->children ) ? $post_data->children->data[0]->media_url : '';
207
+
208
+ $instagram_api_children = isset( $post_data->videos ) ? $post_data->videos->standard_resolution->url : $hashtag_children;
209
+
210
+ $hastag_media_url = isset( $post_data->media_url ) ? $post_data->media_url : $instagram_api_children;
211
+
212
+ $instagram_video_standard_resolution = isset( $post_data->videos->standard_resolution->url ) ? $post_data->videos->standard_resolution->url : $hastag_media_url;
213
+
214
+ return $instagram_video_standard_resolution;
215
+ }
216
+
217
+ /**
218
+ * FTS Instagram Description
219
+ *
220
+ * Description of image from Instagram API
221
+ *
222
+ * @param string $post_data Post data.
223
+ * @return null|string|string[]
224
+ * @since 1.9.6
225
+ */
226
+ public function fts_instagram_description( $post_data ) {
227
+
228
+ $hastag_caption = isset( $post_data->caption ) ? $post_data->caption : '';
229
+ $instagram_caption_a_title = isset( $post_data->caption->text ) ? $post_data->caption->text : $hastag_caption;
230
+ $instagram_caption_a_title = htmlspecialchars( $instagram_caption_a_title );
231
+ $instagram_caption = $this->convert_instagram_links( $instagram_caption_a_title );
232
+
233
+ return $instagram_caption;
234
+ }
235
+
236
+ /**
237
+ * FTS View on Instagram url
238
+ *
239
+ * Link to view the image on Instagram
240
+ *
241
+ * @param string $post_data Post data.
242
+ * @return string
243
+ * @since 1.9.6
244
+ */
245
+ public function fts_view_on_instagram_url( $post_data ) {
246
+ $hastag_permalink = isset( $post_data->permalink ) ? $post_data->permalink : '';
247
+ $instagram_post_url = isset( $post_data->link ) ? $post_data->link : $hastag_permalink;
248
+
249
+ return $instagram_post_url;
250
+ }
251
+
252
+ /**
253
+ * FTS View on Instagram Link
254
+ *
255
+ * Full a tag with Instagram url from the function above
256
+ *
257
+ * @param string $post_data Post data.
258
+ * @return string
259
+ * @since 1.9.6
260
+ */
261
+ public function fts_view_on_instagram_link( $post_data ) {
262
+ return '<a href="' . esc_url( $this->fts_view_on_instagram_url( $post_data ) ) . '" class="fts-view-on-instagram-link" target="_blank">' . esc_html( 'View on Instagram', 'feed-them-social' ) . '</a>';
263
+ }
264
+
265
+ /**
266
+ * FTS Instagram Popup Description
267
+ *
268
+ * Full description for our popup
269
+ *
270
+ * @param string $post_data Post data.
271
+ * @return string
272
+ * @since 1.9.6
273
+ */
274
+ public function fts_instagram_popup_description( $post_data ) {
275
+ return '<div class="fts-instagram-caption"><div class="fts-instagram-caption-content"><p>' . $this->fts_instagram_description( $post_data ) . '</p></div>' . $this->fts_view_on_instagram_link( $post_data ) . '</div>';
276
+ }
277
+
278
+ /**
279
+ * FTS Instagram Function
280
+ *
281
+ * Display the Instagram Feed.
282
+ *
283
+ * @param array $atts Attributes array.
284
+ * @return mixed
285
+ * @since 1.9.6
286
+ */
287
+ public function fts_instagram_func( $atts ) {
288
+
289
+ $fts_instagram_feed_nonce = wp_create_nonce( 'fts-instagram-feed-page-nonce' );
290
+
291
+ if ( wp_verify_nonce( $fts_instagram_feed_nonce, 'fts-instagram-feed-page-nonce' ) ) {
292
+
293
+ include_once ABSPATH . 'wp-admin/includes/plugin.php';
294
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
295
+ include WP_CONTENT_DIR . '/plugins/feed-them-premium/feeds/instagram/instagram-feed.php';
296
+ // $popup variable comes from the premium version
297
+ if ( isset( $popup ) && 'yes' === $popup ) {
298
+ // it's ok if these styles & scripts load at the bottom of the page.
299
+ $fts_fix_magnific = get_option( 'fts_fix_magnific' ) ? get_option( 'fts_fix_magnific' ) : '';
300
+ if ( '1' !== $fts_fix_magnific ) {
301
+ wp_enqueue_style( 'fts-popup', plugins_url( 'feed-them-social/feeds/css/magnific-popup.css' ), array(), FTS_CURRENT_VERSION, false );
302
+ }
303
+ wp_enqueue_script( 'fts-popup-js', plugins_url( 'feed-them-social/feeds/js/magnific-popup.js' ), array(), FTS_CURRENT_VERSION, false );
304
+ }
305
+ } else {
306
+ extract(
307
+ shortcode_atts(
308
+ array(
309
+ 'instagram_id' => '',
310
+ 'type' => '',
311
+ 'pics_count' => '',
312
+ 'super_gallery' => '',
313
+ 'image_size' => '',
314
+ 'icon_size' => '',
315
+ 'space_between_photos' => '',
316
+ 'hide_date_likes_comments' => '',
317
+ 'center_container' => '',
318
+ 'height' => '',
319
+ 'width' => '',
320
+ // user profile options.
321
+ 'profile_wrap' => '',
322
+ 'profile_photo' => '',
323
+ 'profile_stats' => '',
324
+ 'profile_name' => '',
325
+ 'profile_description' => '',
326
+ 'columns' => '',
327
+ 'force_columns' => '',
328
+ 'access_token' => '',
329
+ ),
330
+ $atts
331
+ )
332
+ );
333
+ if ( null === $pics_count ) {
334
+ $pics_count = '6';
335
+ }
336
+ }
337
+ // Added new debug option SRL: 6/7/18.
338
+ extract(
339
+ shortcode_atts(
340
+ array(
341
+ 'debug' => '',
342
+ 'debug_userinfo' => '',
343
+ ),
344
+ $atts
345
+ )
346
+ );
347
+
348
+ if ( ! is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && $pics_count > '6' ) {
349
+ $pics_count = '6';
350
+ }
351
+
352
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
353
+ $pics_count = $pics_count;
354
+ } else {
355
+ $pics_count = '10';
356
+ }
357
+
358
+ wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
359
+ $instagram_data_array = array();
360
+
361
+ $fts_hashtag_check_token_type = '' === $access_token ? get_option( 'fts_facebook_instagram_custom_api_token' ) : $access_token;
362
+ $fts_check_token_type = '' === $access_token ? get_option( 'fts_instagram_custom_api_token' ) : $access_token;
363
+ $fts_instagram_access_token = 'hashtag' === $type ? $fts_hashtag_check_token_type : $fts_check_token_type;
364
+ $fts_instagram_show_follow_btn = get_option( 'instagram_show_follow_btn' );
365
+ $fts_instagram_show_follow_btn_where = get_option( 'instagram_show_follow_btn_where' );
366
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
367
+ $instagram_load_more_text = get_option( 'instagram_load_more_text' ) ? get_option( 'instagram_load_more_text' ) : __( 'Load More', 'feed-them-social' );
368
+ $instagram_no_more_photos_text = get_option( 'instagram_no_more_photos_text' ) ? get_option( 'instagram_no_more_photos_text' ) : __( 'No More Photos', 'feed-them-social' );
369
+ }
370
+
371
+ // Make sure it's not ajaxing.
372
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
373
+ // $type is the variable coming the shortcode.
374
+ $_REQUEST['fts_dynamic_name'] = sanitize_key( $this->fts_rand_string( 10 ) . '_' . $type );
375
+ // Create Dynamic Class Name.
376
+ $fts_dynamic_class_name = '';
377
+ if ( isset( $_REQUEST['fts_dynamic_name'] ) ) {
378
+ $fts_dynamic_class_name = 'feed_dynamic_class' . sanitize_key( $_REQUEST['fts_dynamic_name'] );
379
+ }
380
+ }
381
+
382
+ ob_start();
383
+
384
+ // New method since Instagram API changes as of April 4th, 2018.
385
+ if ( '' === $access_token ) {
386
+ $fts_instagram_access_token_final = $fts_instagram_access_token;
387
+ } else {
388
+ $fts_instagram_access_token_final = $access_token;
389
+ }
390
+
391
+ if ( isset( $_REQUEST['next_url'] ) ) {
392
+ $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token=' . $fts_instagram_access_token_final, $_REQUEST['next_url'] );
393
+ }
394
+ // URL to get Feeds.
395
+ $debug = 'false';
396
+ if ( 'hashtag' === $type ) {
397
+ // cheezballs = 17843830210018045
398
+ // sleepytime = 17841401899184039
399
+ // Search for the Instagram hashtag ID's.
400
+ // https://developers.facebook.com/docs/instagram-api/reference/ig-hashtag-search
401
+ // https://developers.facebook.com/docs/instagram-api/reference/hashtag
402
+ // These are the 2 types of things you can search for after getting the id of the hashtag from the above 2 links.
403
+ // https://developers.facebook.com/docs/instagram-api/reference/hashtag/recent-media
404
+ // https://developers.facebook.com/docs/instagram-api/reference/hashtag/top-media
405
+ $cache_hashtag_id_array = 'instagram_cache_' . $instagram_id . '_num' . $pics_count . '_search' . $search . '';
406
+
407
+ if ( false === $this->fts_check_feed_cache_exists( $cache_hashtag_id_array ) ) {
408
+
409
+ $instagram_hashtag_data_array['data'] = 'https://graph.facebook.com/ig_hashtag_search?user_id=' . $instagram_id . '&q=' . $hashtag . '&access_token=' . $fts_instagram_access_token_final;
410
+
411
+ $hashtag_response = $this->fts_get_feed_json( $instagram_hashtag_data_array );
412
+
413
+ $hashtag_error_check = json_decode( $hashtag_response['data'] );
414
+
415
+ foreach ( $hashtag_error_check->data as $ht ) {
416
+ $hashtag_id = $ht->id;
417
+ }
418
+
419
+ $this->fts_create_feed_cache( $cache_hashtag_id_array, $hashtag_response );
420
+ } else {
421
+ $response = $this->fts_get_feed_cache( $cache_hashtag_id_array );
422
+ $hashtag_error_check = json_decode( $response['data'] );
423
+
424
+ foreach ( $hashtag_error_check->data as $ht ) {
425
+ $hashtag_id = $ht->id;
426
+ }
427
+
428
+ // Used for Testing Only.
429
+ if ( current_user_can( 'administrator' ) && 'true' === $debug ) {
430
+ esc_html_e( 'Array Check Cached', 'feed-them-social' );
431
+ echo '<br/><pre>';
432
+ print_r( $hashtag_error_check );
433
+ echo '</pre>';
434
+ }
435
+ }
436
+
437
+ if ( 'recent-media' === $search || '' === $search ) {
438
+ // Now that we have the Instagram ID we can do a search for the endpoint 'Recent Media'.
439
+ $instagram_data_array['data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : 'https://graph.facebook.com/v4.0/' . $hashtag_id . '/recent_media?user_id=' . $instagram_id . '&fields=media_url{id},caption,comments_count,permalink,like_count,media_type,id,children{media_url}&limit=' . $pics_count . '&access_token=' . $fts_instagram_access_token_final;
440
+ } elseif ( 'top-media' === $search ) {
441
+ // Now that we have the Instagram ID we can do a search for the endpoint 'Top Media'.
442
+ $instagram_data_array['data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : 'https://graph.facebook.com/' . $hashtag_id . '/top_media?user_id=' . $instagram_id . '&fields=media_url,caption,id,comments_count,permalink,like_count,media_type,children{media_url}&limit=' . $pics_count . '&access_token=' . $fts_instagram_access_token_final;
443
+ }
444
+ } else {
445
+ $instagram_data_array['data'] = isset( $_REQUEST['next_url'] ) ? esc_url_raw( $_REQUEST['next_url'] ) : 'https://api.instagram.com/v1/users/' . $instagram_id . '/media/recent/?count=' . $pics_count . '&access_token=' . $fts_instagram_access_token_final;
446
+
447
+ $instagram_data_array['user_info'] = 'https://api.instagram.com/v1/users/' . $instagram_id . '?access_token=' . $fts_instagram_access_token_final;
448
+ }
449
+
450
+ $cache = 'instagram_cache_' . $instagram_id . '_num' . $pics_count . '';
451
+ // First we make sure the feed is not cached already before trying to run the Instagram API.
452
+ if ( false === $this->fts_check_feed_cache_exists( $cache ) ) {
453
+ $response = $this->fts_get_feed_json( $instagram_data_array );
454
+
455
+ // Error Check.
456
+ $error_check = json_decode( $response['data'] );
457
+
458
+ // Used for Testing Only.
459
+ if ( current_user_can( 'administrator' ) && 'true' === $debug ) {
460
+ esc_html_e( 'Array Check', 'feed-them-social' );
461
+ echo '<br/><pre>';
462
+ print_r( $error_check );
463
+ echo '</pre>';
464
+ }
465
+ }
466
+
467
+ // If the feed is cached then we run the cached array to display the feed.
468
+ if ( false !== $this->fts_check_feed_cache_exists( $cache ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
469
+ $response = $this->fts_get_feed_cache( $cache );
470
+ $insta_data = json_decode( $response['data'] );
471
+ $note = esc_html( 'Cached', 'feed-them-social' );
472
+
473
+ } elseif ( isset( $error_check->error_message ) || isset( $error_check->meta->error_message ) || empty( $error_check ) ) {
474
+ // If the Instagram API array returns any error messages we check for them here and return the corresponding error message!
475
+ if ( current_user_can( 'administrator' ) ) {
476
+
477
+ if ( isset( $error_check->error_message ) ) {
478
+ $error = $error_check->error_message;
479
+ } elseif ( isset( $error_check->meta->error_message ) ) {
480
+ $error = $error_check->meta->error_message;
481
+ } else {
482
+ $error = esc_html( 'Please go to the Instagram Options page of our plugin a double check your Instagram ID matches the one used in your shortcode on this page.', 'feed-them-social' );
483
+ }
484
+
485
+ return esc_html( 'Feed Them Social (Notice visible to Admin only). Instagram returned:', 'feed-them-social' ) . ' ' . $error;
486
+ } else {
487
+ return;
488
+ }
489
+ } else {
490
+ $insta_data = json_decode( $response['data'] );
491
+ // if Error DON'T Cache.
492
+ if ( ! isset( $error_check->meta->error_message ) && ! isset( $_GET['load_more_ajaxing'] ) || ! isset( $error_check->error_message ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
493
+ $this->fts_create_feed_cache( $cache, $response );
494
+ $note = esc_html( 'Not Cached', 'feed-them-social' );
495
+ }
496
+ }
497
+
498
+ $instagram_user_info = ! empty( $response['user_info'] ) ? json_decode( $response['user_info'] ) : '';
499
+ // URL to get Feeds.
500
+ if ( 'hashtag' !== $type && 'location' !== $type ) {
501
+ $username = $instagram_user_info->data->username;
502
+ $bio = $instagram_user_info->data->bio;
503
+ $profile_picture = $instagram_user_info->data->profile_picture;
504
+ $full_name = $instagram_user_info->data->full_name;
505
+ $website = $instagram_user_info->data->website;
506
+ }
507
+
508
+ if ( current_user_can( 'administrator' ) && 'true' === $debug_userinfo ) {
509
+ echo '<pre>';
510
+ print_r( $instagram_user_info );
511
+ echo '</pre>';
512
+ }
513
+
514
+ // ->pagination->next_url.
515
+ if ( current_user_can( 'administrator' ) && 'true' === $debug ) {
516
+ echo esc_html( $note ) . '<br/><pre>';
517
+ print_r( $response );
518
+ echo '</pre>';
519
+ }
520
+
521
+ // Make sure it's not ajaxing.
522
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
523
+ // Social Button.
524
+ if ( isset( $profile_picture ) && 'yes' === $profile_wrap ) {
525
+ ?>
526
+ <div class="fts-profile-wrap">
527
+ <?php if ( isset( $profile_photo ) && 'yes' === $profile_photo ) { ?>
528
+ <div class="fts-profile-pic">
529
+ <a href="https://www.instagram.com/<?php echo esc_attr( $username ); ?>" target="_blank"><img
530
+ src="<?php echo esc_url( $profile_picture ); ?>" title="<?php echo esc_attr( $username ); ?>"/></a>
531
+ </div>
532
+ <?php
533
  }
534
+
535
+ if ( isset( $profile_name ) && 'yes' === $profile_name ) {
536
+ ?>
537
+ <div class="fts-profile-name-wrap">
538
+
539
+ <div class="fts-isnta-full-name"><?php echo esc_html( $full_name ); ?></div>
540
+ <?php
541
+ if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
542
+ echo '<div class="fts-follow-header-wrap">';
543
+ echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
544
+ echo '</div>';
545
+ }
546
+ ?>
547
+ </div>
548
+ <?php
549
  }
550
+ // $profile stats comes from the shortcode
551
+ if ( 'yes' === $profile_stats ) {
552
+ // These need to be in this order to keep the different counts straight since I used either $instagram_likes or $instagram_comments throughout.
553
+ $number_posted_pics = isset( $instagram_user_info->data->counts->media ) ? $instagram_user_info->data->counts->media : '';
554
+ // here we add a , for all numbers below 9,999.
555
+ if ( isset( $number_posted_pics ) && $number_posted_pics <= 9999 ) {
556
+ $number_posted_pics = number_format( $number_posted_pics );
557
+ }
558
+ // here we convert the number for the like count like 1,200,000 to 1.2m if the number goes into the millions.
559
+ if ( isset( $number_posted_pics ) && $number_posted_pics >= 1000000 ) {
560
+ $number_posted_pics = round( ( $number_posted_pics / 1000000 ), 1 ) . 'm';
561
+ }
562
+ // here we convert the number for the like count like 10,500 to 10.5k if the number goes in the 10 thousands.
563
+ if ( isset( $number_posted_pics ) && $number_posted_pics >= 10000 ) {
564
+ $number_posted_pics = round( ( $number_posted_pics / 1000 ), 1 ) . 'k';
565
+ }
566
+
567
+ $number_followed_by = $instagram_user_info->data->counts->followed_by;
568
+ // here we add a , for all numbers below 9,999.
569
+ if ( isset( $number_followed_by ) && $number_followed_by <= 9999 ) {
570
+ $number_followed_by = number_format( $number_followed_by );
571
+ }
572
+ // here we convert the number for the comment count like 1,200,000 to 1.2m if the number goes into the millions.
573
+ if ( isset( $number_followed_by ) && $number_followed_by >= 1000000 ) {
574
+ $number_followed_by = round( ( $number_followed_by / 1000000 ), 1 ) . 'm';
575
+ }
576
+ // here we convert the number for the comment count like 10,500 to 10.5k if the number goes in the 10 thousands.
577
+ if ( isset( $number_followed_by ) && $number_followed_by >= 10000 ) {
578
+ $number_followed_by = round( ( $number_followed_by / 1000 ), 1 ) . 'k';
579
+ }
580
+
581
+ $number_follows = $instagram_user_info->data->counts->follows;
582
+ // here we add a , for all numbers below 9,999.
583
+ if ( isset( $number_follows ) && $number_follows <= 9999 ) {
584
+ $number_follows = number_format( $number_follows );
585
+ }
586
+ // here we convert the number for the comment count like 1,200,000 to 1.2m if the number goes into the millions.
587
+ if ( isset( $number_follows ) && $number_follows >= 1000000 ) {
588
+ $number_follows = round( ( $number_follows / 1000000 ), 1 ) . 'm';
589
+ }
590
+ // here we convert the number for the comment count like 10,500 to 10.5k if the number goes in the 10 thousands.
591
+ if ( isset( $number_follows ) && $number_follows >= 10000 ) {
592
+ $number_follows = round( ( $number_follows / 1000 ), 1 ) . 'k';
593
+ }
594
+ ?>
595
+ <div class="fts-profile-stats">
596
+ <div class="fts-insta-posts">
597
+ <span><?php echo esc_html( $number_posted_pics ); ?></span> <?php echo esc_html( 'posts', 'feed-them-social' ); ?></div>
598
+ <div class="fts-insta-followers">
599
+ <span><?php echo esc_html( $number_followed_by ); ?></span> <?php echo esc_html( 'followers', 'feed-them-social' ); ?>
600
+ </div>
601
+ <div class="fts-insta-following">
602
+ <span><?php echo esc_html( $number_follows ); ?></span> <?php echo esc_html( 'following', 'feed-them-social' ); ?></div>
603
+ </div>
604
+ <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
605
  }
606
+
607
+ if ( 'yes' === $profile_description ) {
608
+ ?>
609
+
610
+ <div class="fts-profile-description"><?php echo $this->convert_instagram_description_links( $bio ); ?>
611
+ <a href="<?php echo esc_url( $website ); ?>"><?php echo esc_url( $website ); ?></a></div>
612
+
613
+ <?php } ?>
614
+
615
+ <div class="fts-clear"></div>
616
+
617
+ </div>
618
+ <?php
619
+ } elseif ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
620
+ echo '<div class="instagram-social-btn-top">';
621
+ echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
622
+ echo '</div>';
623
+ }
624
+
625
+ if ( isset( $scroll_more ) && 'autoscroll' === $scroll_more || ! empty( $height ) ) {
626
+ ?>
627
  <div class="fts-instagram-scrollable <?php echo esc_attr( $fts_dynamic_class_name ); ?>instagram" style="overflow:auto;
628
+ <?php
629
+ if ( '' !== $width ) {
630
+ ?>
631
+ max-width:
632
+ <?php
633
+ echo esc_attr( $width ) . ';';
634
+ }
635
+ if ( '' !== $height ) {
636
+ ?>
637
+ height:
638
+ <?php
639
+ echo esc_attr( $height );
640
+ }
641
+ ?>
642
+ ">
643
+ <?php
644
+ }
645
+ if ( 'yes' === $super_gallery ) {
646
+ $columns = isset( $columns ) ? $columns : '';
647
+ $force_columns = isset( $force_columns ) ? $force_columns : '';
648
+ ?>
649
+ <div
650
+ <?php
651
+ if ( '' !== $width ) {
652
+ ?>
653
+ style="max-width:
654
+ <?php
655
+ echo esc_attr( $width ) . ';"';
656
+ }
657
+ ?>
658
+ data-ftsi-columns="<?php echo esc_attr( $columns ); ?>" data-ftsi-force-columns="<?php echo esc_attr( $force_columns ); ?>" data-ftsi-margin="<?php echo esc_attr( $space_between_photos ); ?>" data-ftsi-width="<?php echo esc_attr( $image_size ); ?>" class="
659
+ <?php
660
+ echo 'fts-instagram-inline-block-centered ' . esc_attr( $fts_dynamic_class_name );
661
+ if ( isset( $popup ) && 'yes' === $popup ) {
662
+ echo ' popup-gallery';
663
+ }
664
+ echo '">';
665
+ } else {
666
+ ?>
667
+ <div
668
+ <?php
669
+ if ( '' !== $width ) {
670
+ ?>
671
+ style="max-width:
672
+ <?php
673
+ echo esc_attr( $width ) . '; margin:auto;" ';
674
+ }
675
+ ?>
676
+ class="fts-instagram
677
+ <?php
678
+ if ( isset( $popup ) && 'yes' === $popup ) {
679
+ echo 'popup-gallery ';
680
+ }
681
+ echo esc_attr( $fts_dynamic_class_name ) . '">';
682
+ }
683
+ $set_zero = 0;
684
+ } // END Make sure it's not ajaxing
685
+
686
+ if ( ! isset( $insta_data->data ) ) {
687
+ if ( ! function_exists( 'curl_init' ) ) {
688
+ echo esc_html( 'cURL is not installed on this server. It is required to use this plugin. Please contact your host provider to install this.', 'feed-them-social' ) . '</div>';
689
+ } else {
690
+ echo esc_html( 'To see the Instagram feed you need to add your own API Token to the Instagram Options page of our plugin.', 'feed-them-social' ) . '</div>';
691
+ }
692
+ }
693
+ // echo '<pre style="text-align: left;">asdfasdf';
694
+ // print_r( $insta_data );
695
+ // echo '</pre>';
696
+ foreach ( $insta_data->data as $post_data ) {
697
+ if ( isset( $set_zero ) && $set_zero === $pics_count ) {
698
+ break;
699
+ }
700
+
701
+ // Create Instagram Variables
702
+ // tied to date function.
703
+ $feed_type = 'instagram';
704
+ $times = isset( $post_data->created_time ) ? $post_data->created_time : '';
705
+ // call our function to get the date.
706
+ $instagram_date = $this->fts_custom_date( $times, $feed_type );
707
+
708
+ if ( 'hashtag' === $type || 'location' === $type ) {
709
+ $username = isset( $post_data->user->username ) ? $post_data->user->username : '';
710
+ $profile_picture = isset( $post_data->user->profile_picture ) ? $post_data->user->profile_picture : '';
711
+ $full_name = isset( $post_data->user->full_name ) ? $post_data->user->full_name : '';
712
+ $instagram_username = $username;
713
+ } else {
714
+
715
+ $instagram_username = $instagram_user_info->data->username;
716
+ }
717
+ $instagram_caption_a_hashtag_title = isset( $post_data->caption ) ? $post_data->caption : '';
718
+ $instagram_caption_a_title = isset( $post_data->caption->text ) ? $post_data->caption->text : $instagram_caption_a_hashtag_title;
719
+ $instagram_caption_a_title = htmlspecialchars( $instagram_caption_a_title );
720
+ $instagram_caption = $this->convert_instagram_links( $instagram_caption_a_title );
721
+
722
+ $instagram_thumb_url = isset( $post_data->images->thumbnail->url ) ? $post_data->images->thumbnail->url : '';
723
+ $instagram_lowrez_url = isset( $post_data->images->standard_resolution->url ) ? $post_data->images->standard_resolution->url : '';
724
+ $instagram_video_standard_resolution = isset( $post_data->videos->standard_resolution->url ) ? $post_data->videos->standard_resolution->url : '';
725
+
726
+ if ( isset( $_SERVER['HTTPS'] ) ) {
727
+ $instagram_thumb_url = str_replace( 'http://', 'https://', $instagram_thumb_url );
728
+ $instagram_lowrez_url = str_replace( 'http://', 'https://', $instagram_lowrez_url );
729
+ }
730
+
731
+ // Super Gallery If statement.
732
+ if ( 'yes' === $super_gallery ) {
733
+ ?>
734
+ <div class='slicker-instagram-placeholder fts-instagram-wrapper' style='background-image:url(<?php echo esc_url( $this->fts_instagram_image_link( $post_data ) ); ?>);'>
735
+ <?php
736
+
737
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup ) {
738
+ ?>
739
+ <div class="fts-instagram-popup-profile-wrap">
740
+ <div class="fts-profile-pic"><?php $user_type = isset( $hashtag ) ? 'explore/tags/' . $hashtag : $username; ?>
741
+ <a href="https://www.instagram.com/<?php echo esc_html( $user_type ); ?>" target="_blank">
742
+ <?php
743
+ if ( 'user' === $type ) {
744
+ ?>
745
+ <img src="<?php echo esc_url( $profile_picture ); ?>" title="<?php echo esc_attr( $username ); ?>"/>
746
+ <?php
747
+ } else {
748
+ ?>
749
+ <span class="fts-instagram-icon" style="height:40px; width:40px; line-height:40px; font-size:40px;"></span><?php } ?>
750
+ </a>
751
+ </div>
752
+ <div class="fts-profile-name-wrap">
753
+
754
+ <div class="fts-isnta-full-name">
755
+ <a href="https://www.instagram.com/<?php echo esc_html( $user_type ); ?>" target="_blank" style="color: #000;">
756
+ <?php
757
+ if ( 'user' === $type ) {
758
+ echo esc_html( $full_name );
759
+ } else {
760
+ echo esc_html( '#' . $hashtag );
761
+ }
762
+ ?>
763
+ </a>
764
+ </div>
765
+
766
+ <?php
767
+ if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
768
+ echo '<div class="fts-follow-header-wrap">';
769
+ echo $this->social_follow_button( 'instagram', $instagram_username );
770
+ echo '</div>';
771
+ }
772
+ ?>
773
+ </div>
774
+ </div>
775
+ <?php
776
+ // this is already escaping in the function, re escaping will cause errors.
777
+ echo $this->fts_instagram_popup_description( $post_data );
778
+ }
779
+
780
+ // We need to check the type now because hashtag feeds from facebooks API use all caps now.
781
+ $data_type_image = isset( $post_data->type ) && 'image' === $post_data->type ? 'image' : 'IMAGE';
782
+ $data_type_video = isset( $post_data->type ) && 'video' === $post_data->type ? 'video' : 'VIDEO';
783
+ $data_type_carousel = isset( $post_data->type ) && 'carousel' === $post_data->type ? 'carousel' : 'CAROUSEL_ALBUM';
784
+ $data_type_hashtag = isset( $post_data->media_type ) ? $post_data->media_type : '';
785
+ $data_type = isset( $post_data->type ) ? $post_data->type : $data_type_hashtag;
786
+
787
+ // Check to see if a video is the first child if children are present
788
+ $instagram_api_child_url = isset( $post_data->carousel_media ) ? $post_data->carousel_media[0]->videos->standard_resolution->url : '';
789
+ //$child url is the fb/instagram api
790
+ $child_url = isset( $post_data->children ) ? $post_data->children->data[0]->media_url : $instagram_api_child_url;
791
+ $data_type_child = ! empty( $child_url ) && false !== strpos( $child_url, 'mp4' ) ? 'VIDEO' : '';
792
+
793
+ ?>
794
+ <a href='
795
+ <?php
796
+
797
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup && $data_type_image === $data_type || is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'yes' === $popup && $data_type_carousel === $data_type && empty( $data_type_child ) ) {
798
+
799
+ print esc_url( $this->fts_instagram_image_link( $post_data ) );
800
+
801
+ } elseif ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'yes' === $popup && $data_type_video === $data_type || is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'yes' === $popup && ! empty( $data_type_child ) && 'VIDEO' === $data_type_child ) {
802
+
803
+ // this statement below does not make sense, check later.
804
+ print $this->fts_instagram_video_link( $post_data ) ? esc_url( $this->fts_instagram_video_link( $post_data ) ) : esc_url( $post_data->permalink . 'media?size=l' );
805
+
806
+ } else {
807
+ print esc_url( $this->fts_view_on_instagram_url( $post_data ) );
808
+ }
809
+ $fts_child = isset( $post_data->children ) || isset( $post_data->carousel_media ) ? 'fts-child-media ' : '';
810
+ ?>
811
+ ' title='<?php print esc_attr( $instagram_caption_a_title ); ?>' target="_blank" class='<?php print $fts_child; ?>fts-instagram-link-target fts-slicker-backg
812
+ <?php
813
+ if ( $data_type_video === $data_type && isset( $popup ) && 'yes' === $popup && ! empty( $this->fts_instagram_video_link( $post_data ) ) || ! empty( $data_type_child ) && 'VIDEO' === $data_type_child && isset( $popup ) && 'yes' === $popup && ! empty( $this->fts_instagram_video_link( $post_data ) ) ) {
814
+ ?>
815
+ fts-instagram-video-link
816
+ <?php
817
+ } else {
818
+ ?>
819
+ fts-instagram-img-link<?php } ?>' style="height:<?php echo esc_attr( $icon_size ); ?> !important; width:<?php echo esc_attr( $icon_size ); ?>; line-height:<?php echo esc_attr( $icon_size ); ?>; font-size:<?php echo esc_attr( $icon_size ); ?>;"><span
820
+ class="fts-instagram-icon"
821
+ style="height:<?php echo esc_attr( $icon_size ); ?>; width:<?php echo esc_attr( $icon_size ); ?>; line-height:<?php echo esc_attr( $icon_size ); ?>; font-size:<?php echo esc_attr( $icon_size ); ?>;"></span></a>
822
+
823
+
824
+ <?php
825
+ // Must use method where we use the link above which is visible with Instagram icon and then we use the child array below and skip the first child
826
+ // element so we don't have duplicated of the first child. We do this because we need to hide these other links with CSS. We have to have these links here
827
+ // because that is how the magnific popup works in order to get to the next image or video.
828
+ // NOTE: $post_data->childer is FB/Instagram API, $post_data->carousel_media is OG Instagram API.
829
+
830
+ if ( isset( $post_data->children ) || isset( $post_data->carousel_media ) ) {
831
+
832
+ $carousel_media = isset( $post_data->children ) ? $post_data->children->data : $post_data->carousel_media;
833
+ ?>
834
+ <div class="fts-carousel-image-wrapper"><div class="fts-carousel-image" ></div></div>
835
+ <?php
836
+ foreach ( array_slice( $carousel_media, 1 ) as $child ) {
837
+
838
+ // echo '<pre style="text-align: left;"> wwwqwqwq';
839
+ // print_r( $child );
840
+ // echo '</pre>';
841
+
842
+ $url_images = isset( $child->images->standard_resolution->url ) ? $child->images->standard_resolution->url : '';
843
+ $url = isset( $child->videos->standard_resolution->url ) ? $child->videos->standard_resolution->url : $url_images;
844
+ $url_final = isset( $child->media_url ) ? $child->media_url : $url;
845
+ $data_type_video_child = ! empty( $url_final ) && false != strpos( $url_final, 'mp4' ) ? 'video_media' : 'image_media';
846
+ ?>
847
+ <a href='
848
+ <?php
849
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup && 'image_media' === $data_type_video_child ) {
850
+ print esc_url( $this->fts_instagram_image_link( $child ) );
851
+ } elseif ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'yes' === $popup && 'video_media' === $data_type_video_child ) {
852
+ print esc_url( $this->fts_instagram_video_link( $child ) );
853
+ } else {
854
+
855
+ }
856
+ ?>
857
+ ' title='<?php print esc_attr( $instagram_caption_a_title ); ?>' target="_blank" id="fts-child-media" class='fts-child-media fts-child-media-hide fts-instagram-link-target fts-slicker-backg
858
+ <?php
859
+ if ( 'video_media' === $data_type_video_child && isset( $popup ) && 'yes' === $popup ) {
860
+ ?>
861
+ fts-instagram-video-link
862
+ <?php
863
+ } else {
864
+ ?>
865
+ fts-instagram-img-link<?php } ?>'></a>
866
+
867
+
868
+
869
+ <?php
870
+ }
871
+ } elseif ( isset( $data_type ) && 'VIDEO' === $data_type || isset( $data_type ) && 'video' === $data_type ) {
872
+ ?>
873
+ <div class="fts-instagram-video-image-wrapper"><div class="fts-instagram-video-image"></div></div>
874
+ <?php
875
+ }
876
+ ?>
877
+
878
+
879
+
880
+
881
+
882
+
883
+
884
+
885
+
886
+
887
+
888
+
889
+
890
+ <div class='slicker-date'>
891
+
892
+ <div class="fts-insta-date-popup-grab">
893
+ <?php
894
+ if ( 'no' === $hide_date_likes_comments && 'hashtag' !== $type ) {
895
+ echo esc_html( $instagram_date );
896
+ } else {
897
+ echo '&nbsp;'; }
898
+ ?>
899
+ </div>
900
+ </div>
901
+ <div class='slicker-instaG-backg-link'>
902
+
903
+ <div class='slicker-instaG-photoshadow'></div>
904
+ </div>
905
+ <?php if ( 'no' === $hide_date_likes_comments ) { ?>
906
+ <div class="fts-insta-likes-comments-grab-popup">
907
+ <?php
908
+
909
+ // this is already escaping in the function, re escaping will cause errors.
910
+ echo $this->fts_share_option( $this->fts_view_on_instagram_url( $post_data ), $this->fts_instagram_description( $post_data ) );
911
+
912
+ ?>
913
+ <div class="fts-instagram-reply-wrap-left">
914
+ <ul class='slicker-heart-comments-wrap'>
915
+ <li class='slicker-instagram-image-likes'><?php echo esc_html( $this->fts_instagram_likes_count( $post_data ) ); ?> </li>
916
+ <li class='slicker-instagram-image-comments'>
917
+ <span class="fts-comment-instagram"></span> <?php echo esc_html( $this->fts_instagram_comments_count( $post_data ) ); ?>
918
+ </li>
919
+ </ul>
920
+ </div>
921
+ </div>
922
+ <?php } ?>
923
+ </div>
924
+ <?php
925
+ } else {
926
+ // Classic Gallery If statement.
927
+ ?>
928
+ <div class='instagram-placeholder fts-instagram-wrapper' style='width:150px;'>
929
+ <?php
930
+ if ( isset( $popup ) && 'yes' === $popup ) {
931
+ print '<div class="fts-backg"></div>';
932
+ } else {
933
+ ?>
934
+ <a class='fts-backg' target='_blank' href='<?php echo esc_url( $this->fts_view_on_instagram_url( $post_data ) ); ?>'></a><?php }; ?>
935
+ <div class='date slicker-date'>
936
+ <div class="fts-insta-date-popup-grab"><?php echo esc_html( $instagram_date ); ?></div>
937
+ </div>
938
+
939
+
940
+ <?php if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup ) { ?>
941
+
942
+
943
+ <div class="fts-instagram-popup-profile-wrap">
944
+ <div class="fts-profile-pic">
945
+ <a href="https://www.instagram.com/<?php echo esc_attr( $username ); ?>" target="_blank"><img
946
+ src="<?php echo esc_attr( $profile_picture ); ?>" title="<?php echo esc_attr( $username ); ?>"/></a>
947
+ </div>
948
+
949
+ <div class="fts-profile-name-wrap">
950
+
951
+ <div class="fts-isnta-full-name"><?php echo esc_attr( $full_name ); ?></div>
952
+ <?php
953
+ if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
954
+ echo '<div class="fts-follow-header-wrap">';
955
+ echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
956
+ echo '</div>';
957
+ }
958
+ ?>
959
+ </div>
960
+ </div>
961
+
962
+ <?php
963
+ // caption for our popup.
964
+ echo $this->fts_instagram_popup_description( $post_data );
965
+ ?>
966
+ <?php } ?>
967
+
968
+ <a href="
969
+ <?php
970
+ // We need to check the type now because hashtag feeds from facebooks API use all caps now.
971
+ $data_type_image = isset( $post_data->type ) && 'image' === $post_data->type ? : 'IMAGE';
972
+ $data_type_video = isset( $post_data->type ) && 'video' === $post_data->type ? : 'VIDEO';
973
+ $data_type_carousel = isset( $post_data->type ) && 'carousel' === $post_data->type ? : 'CAROUSEL';
974
+ $data_type_hashtag = isset( $post_data->media_type ) ? $post_data->media_type : '';
975
+ $data_type = isset( $post_data->type ) ? $post_data->type : $data_type_hashtag;
976
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup && ( $data_type_image === $data_type || $data_type_carousel === $data_type ) ) {
977
+ print esc_url( $this->fts_instagram_image_link( $post_data ) );
978
+ } elseif ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'yes' === $popup && $data_type_video === $data_type ) {
979
+ print esc_url( $this->fts_instagram_video_link( $post_data ) );
980
+ } else {
981
+ print esc_url( $this->fts_view_on_instagram_url( $post_data ) );
982
+ }
983
+ ?>
984
+ " class='fts-instagram-link-target instaG-backg-link
985
+ <?php
986
+ if ( 'video' === $post_data->type ) {
987
+ ?>
988
+ fts-instagram-video-link
989
+ <?php
990
+ } else {
991
+ ?>
992
  fts-instagram-img-link<?php } ?>' target='_blank' title='<?php echo esc_attr( $instagram_caption_a_title ); ?>'>
993
+ <img src="<?php echo esc_url( $instagram_thumb_url ); ?>" class="instagram-image"/>
994
+ <div class='instaG-photoshadow'></div>
995
+ </a>
996
+ <div class="fts-insta-likes-comments-grab-popup">
997
+ <?php echo $this->fts_instagram_likes_comments_wrap( $post_data ); ?>
998
+ </div>
999
+ </div>
1000
+ <?php
1001
+ }
1002
+ if ( isset( $set_zero ) ) {
1003
+ $set_zero++;
1004
+ }
1005
+ }
1006
+
1007
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && ! empty( $scroll_more ) ) {
1008
+ // ******************
1009
+ // Load More BUTTON Start
1010
+ // Check to see if the next isset for the hashtag feed. If so then pass it down so it's used.
1011
+ // ******************
1012
+ $next_hashtag_url = isset( $insta_data->paging->next ) ? $insta_data->paging->next : '';
1013
+ $next_url = isset( $insta_data->pagination->next_url ) ? $insta_data->pagination->next_url : $next_hashtag_url;
1014
+ // fb api uses limit for the post count and instagram api uses count.
1015
+ $the_count = 'hashtag' === $type ? 'limit' : 'count';
1016
+ // we check to see if the loadmore count number is set and if so pass that as the new count number when fetching the next set of posts.
1017
+ $_REQUEST['next_url'] = '' !== $loadmore_count ? str_replace( "'.$the_count.'=$pics_count", "'.$the_count.'=$loadmore_count", $next_url ) : $next_url;
1018
+ $access_token = 'access_token=' . $fts_instagram_access_token_final;
1019
+ $_REQUEST['next_url'] = str_replace( $access_token, 'access_token=XXX', $next_url );
1020
+
1021
+ ?>
1022
+ <script>var nextURL_<?php echo esc_js( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ); ?>= "<?php echo esc_url_raw( $_REQUEST['next_url'] ); ?>";</script>
1023
+ <?php
1024
+ // Make sure it's not ajaxing.
1025
+ if ( ! isset( $_GET['load_more_ajaxing'] ) && ! isset( $_REQUEST['fts_no_more_posts'] ) && ! empty( $loadmore ) ) {
1026
+ $fts_dynamic_name = sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) );
1027
+ $time = time();
1028
+ $nonce = wp_create_nonce( $time . 'load-more-nonce' );
1029
+ ?>
1030
+ <script>jQuery(document).ready(function () {
1031
+ <?php
1032
+ // $scroll_more = load_more_posts_style shortcode att.
1033
+ if ( 'autoscroll' === $scroll_more ) { // this is where we do SCROLL function to LOADMORE if = autoscroll in shortcode.
1034
+ ?>
1035
+ jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>instagram").bind("scroll", function () {
1036
+ if (jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight) {
1037
+ <?php
1038
+ } else { // this is where we do CLICK function to LOADMORE if = button in shortcode.
1039
+ ?>
1040
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").click(function () {
1041
+ <?php } ?>
1042
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").addClass('fts-fb-spinner');
1043
+ var button = jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div>');
1044
+ console.log(button);
1045
+
1046
+ var feed_name = "fts_instagram";
1047
+ var loadmore_count = "pics_count=<?php echo esc_js( $loadmore_count ); ?>";
1048
+ var feed_attributes = <?php echo wp_json_encode( $atts ); ?>;
1049
+ var yes_ajax = "yes";
1050
+ var fts_d_name = "<?php echo esc_js( $fts_dynamic_name ); ?>";
1051
+ var fts_security = "<?php echo esc_js( $nonce ); ?>";
1052
+ var fts_time = "<?php echo esc_js( $time ); ?>";
1053
+ jQuery.ajax({
1054
+ data: {
1055
+ action: "my_fts_fb_load_more",
1056
+ next_url: nextURL_<?php echo esc_js( $fts_dynamic_name ); ?>,
1057
+ fts_dynamic_name: fts_d_name,
1058
+ load_more_ajaxing: yes_ajax,
1059
+ fts_security: fts_security,
1060
+ fts_time: fts_time,
1061
+ feed_name: feed_name,
1062
+ loadmore_count: loadmore_count,
1063
+ feed_attributes: feed_attributes
1064
+ },
1065
+ type: 'GET',
1066
+ url: "<?php echo esc_js( admin_url( 'admin-ajax.php' ) ); ?>",
1067
+ success: function (data) {
1068
+ console.log('Well Done and got this from sever: ' + data);
1069
+ jQuery('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').append(data).filter('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').html();
1070
+ if (!nextURL_<?php echo esc_js( sanitize_key( $_REQUEST['fts_dynamic_name'] ) ); ?> || nextURL_<?php echo esc_js( sanitize_key( $_REQUEST['fts_dynamic_name'] ) ); ?> === 'no more') {
1071
+ jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').replaceWith('<div class="fts-fb-load-more no-more-posts-fts-fb"><?php echo esc_js( $instagram_no_more_photos_text ); ?></div>');
1072
+ jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').removeAttr('id');
1073
+ jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>instagram").unbind('scroll');
1074
+ }
1075
+ jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<?php echo esc_js( $instagram_load_more_text ); ?>');
1076
+ jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").removeClass('fts-fb-spinner');
1077
+ jQuery.fn.ftsShare(); // Reload the share each funcion otherwise you can't open share option
1078
+ jQuery.fn.slickInstagramPopUpFunction(); // Reload this function again otherwise the popup won't work correctly for the newly loaded items
1079
+ if (typeof outputSRmargin === "function") {
1080
+ outputSRmargin(document.querySelector('#margin').value)
1081
+ } // Reload our margin for the demo
1082
+ slickremixImageResizing(); // Reload our imagesizing function so the images show up proper
1083
+ }
1084
+ }); // end of ajax()
1085
+ return false;
1086
+ <?php
1087
+ // string $scroll_more is at top of this js script. exception for scroll option closing tag.
1088
+ if ( 'autoscroll' === $scroll_more ) {
1089
+ ?>
1090
+ }; // end of scroll ajax load
1091
+ <?php } ?>
1092
+ }
1093
+ ); // end of document.ready
1094
+ }); // end of form.submit </script>
1095
+ <?php
1096
+ }//End Check.
1097
+ }
1098
+ // main closing div not included in ajax check so we can close the wrap at all times.
1099
+ print '</div>'; // closing main div for photos and scroll wrap.
1100
+
1101
+ // Make sure it's not ajaxing.
1102
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
1103
+ $fts_dynamic_name = sanitize_key( $_REQUEST['fts_dynamic_name'] );
1104
+ // this div returns outputs our ajax request via jquery append html from above.
1105
+ print '<div class="fts-clear"></div>';
1106
+ print '<div id="output_' . esc_attr( $fts_dynamic_name ) . '"></div>';
1107
+ if ( ! empty( $scroll_more ) && 'autoscroll' === $scroll_more ) {
1108
+ print '<div id="loadMore_' . esc_attr( $fts_dynamic_name ) . '" class="fts-fb-load-more fts-fb-autoscroll-loader">Instagram</div>';
1109
+ }
1110
+ }
1111
+ ?>
1112
+ <?php
1113
+ // only show this script if the height option is set to a number.
1114
+ if ( ! empty( $height ) && 'auto' !== $height ) {
1115
+ ?>
1116
+ <script>
1117
+ // this makes it so the page does not scroll if you reach the end of scroll bar or go back to top
1118
+ jQuery.fn.isolatedScrollFacebookFTS = function () {
1119
+ this.bind('mousewheel DOMMouseScroll', function (e) {
1120
+ var delta = e.wheelDelta || (e.originalEvent && e.originalEvent.wheelDelta) || -e.detail,
1121
+ bottomOverflow = this.scrollTop + jQuery(this).outerHeight() - this.scrollHeight >= 0,
1122
+ topOverflow = this.scrollTop <= 0;
1123
+ if ((delta < 0 && bottomOverflow) || (delta > 0 && topOverflow)) {
1124
+ e.preventDefault();
1125
+ }
1126
+ });
1127
+ return this;
1128
+ };
1129
+ jQuery('.fts-instagram-scrollable').isolatedScrollFacebookFTS();
1130
+ </script>
1131
+ <?php } //end $height !== 'auto' && empty($height) == NULL. ?>
1132
+ <?php
1133
+ if ( ! empty( $scroll_more ) && 'autoscroll' === $scroll_more || ! empty( $height ) ) {
1134
+ print '</div>'; // closing height div for scrollable feeds.
1135
+ }
1136
+
1137
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
1138
+ // Make sure it's not ajaxing.
1139
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
1140
+ print '<div class="fts-clear"></div>';
1141
+ if ( ! empty( $scroll_more ) && 'button' === $scroll_more ) {
1142
+
1143
+ print '<div class="fts-instagram-load-more-wrapper">';
1144
+ print '<div id="loadMore_' . esc_attr( $fts_dynamic_name ) . '" style="';
1145
+ if ( '' !== $loadmore_btn_maxwidth ) {
1146
+ print 'max-width:' . esc_attr( $loadmore_btn_maxwidth ) . ';';
1147
+ }
1148
+ $loadmore_btn_margin = isset( $loadmore_btn_margin ) ? $loadmore_btn_margin : '10px';
1149
+ print 'margin:' . esc_attr( $loadmore_btn_margin ) . ' auto ' . esc_attr( $loadmore_btn_margin ) . '" class="fts-fb-load-more">' . esc_html( $instagram_load_more_text ) . '</div>';
1150
+ print '</div>';
1151
+
1152
+ }
1153
+ }//End Check.
1154
+ unset( $_REQUEST['next_url'] );
1155
+ }
1156
+ // Make sure it's not ajaxing.
1157
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
1158
+ // Social Button.
1159
+ if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-below' === $fts_instagram_show_follow_btn_where ) {
1160
+ echo '<div class="instagram-social-btn-bottom">';
1161
+ echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
1162
+ echo '</div>';
1163
+ }
1164
+ }
1165
+ } // end nonce
1166
+
1167
+ return ob_get_clean();
1168
+ }
1169
+ /**
1170
+ * Random String
1171
+ *
1172
+ * Create a random string
1173
+ *
1174
+ * @param string $length Length.
1175
+ * @return mixed
1176
+ * @since 1.9.6
1177
+ */
1178
+ public function fts_rand_string( $length = 10 ) {
1179
+ $characters = 'abcdefghijklmnopqrstuvwxyz';
1180
+ $characters_length = strlen( $characters );
1181
+ $random_string = '';
1182
+ for ( $i = 0; $i < $length; $i++ ) {
1183
+ $random_string .= $characters[ wp_rand( 0, $characters_length - 1 ) ];
1184
+ }
1185
+
1186
+ return $random_string;
1187
+ }
1188
+
1189
+ }//end class
1190
+
1191
+ ?>
feeds/js/magnific-popup-full.js CHANGED
@@ -1129,7 +1129,7 @@ jQuery(document).ready(function() {
1129
  markup: '<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half fts-instagram-popup-half"> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <div class="mfp-iframe-scaler mfp-html5videolink" id="fts-html5videolink"> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button> </div> </div><div class="fts-popup-second-half fts-instagram-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://slickremix.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>'
1130
  },
1131
  image: {
1132
- markup: '<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half fts-instagram-popup-half"> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <span class="fts-position-helper"></span><div class="mfp-img"></div> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button> </div><div class="fts-popup-second-half fts-instagram-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://feedthemsocial.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',
1133
  tError: '<a href="%url%">The image #%curr%</a> could not be loaded.'
1134
  },
1135
  iframe: {
1129
  markup: '<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half fts-instagram-popup-half"> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <div class="mfp-iframe-scaler mfp-html5videolink" id="fts-html5videolink"> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button> </div> </div><div class="fts-popup-second-half fts-instagram-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://slickremix.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>'
1130
  },
1131
  image: {
1132
+ markup: '<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half fts-instagram-popup-half"> <div class="fts-carousel-image">asdfasdf</div> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <span class="fts-position-helper"></span><div class="mfp-img"></div> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button> </div><div class="fts-popup-second-half fts-instagram-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://feedthemsocial.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',
1133
  tError: '<a href="%url%">The image #%curr%</a> could not be loaded.'
1134
  },
1135
  iframe: {
feeds/js/magnific-popup.js CHANGED
@@ -1 +1 @@
1
- !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(e){var t,o,i,s,a,r,n="Close",p="BeforeClose",l="MarkupParse",f="Open",c="Change",u="mfp",d="."+u,m="mfp-ready",h="mfp-removing",g="mfp-prevent-close",v=function(){},y=!!window.jQuery,b=e(window),w=function(e,o){t.ev.on(u+e+d,o)},j=function(t,o,i,s){var a=document.createElement("div");return a.className="mfp-"+t,i&&(a.innerHTML=i),s?o&&o.appendChild(a):(a=e(a),o&&a.appendTo(o)),a},C=function(o,i){t.ev.triggerHandler(u+o,i),t.st.callbacks&&(o=o.charAt(0).toLowerCase()+o.slice(1),t.st.callbacks[o]&&t.st.callbacks[o].apply(t,e.isArray(i)?i:[i]))},Q=function(o){return o===r&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),r=o),t.currTemplate.closeBtn},k=function(){e.magnificPopup.instance||((t=new v).init(),e.magnificPopup.instance=t)};v.prototype={constructor:v,init:function(){var o=navigator.appVersion;t.isLowIE=t.isIE8=document.all&&!document.addEventListener,t.isAndroid=/android/gi.test(o),t.isIOS=/iphone|ipad|ipod/gi.test(o),t.supportsTransition=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1}(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),i=e(document),t.popupsCache={}},open:function(o){var s;if(!1===o.isObj){t.items=o.items.toArray(),t.index=0;var r,n=o.items;for(s=0;s<n.length;s++)if(r=n[s],r.parsed&&(r=r.el[0]),r===o.el[0]){t.index=s;break}}else t.items=e.isArray(o.items)?o.items:[o.items],t.index=o.index||0;if(!t.isOpen){t.types=[],a="",o.mainEl&&o.mainEl.length?t.ev=o.mainEl.eq(0):t.ev=i,o.key?(t.popupsCache[o.key]||(t.popupsCache[o.key]={}),t.currTemplate=t.popupsCache[o.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,o),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.st.modal&&(t.st.closeOnContentClick=!1,t.st.closeOnBgClick=!1,t.st.showCloseBtn=!1,t.st.enableEscapeKey=!1),t.bgOverlay||(t.bgOverlay=j("bg").on("click"+d,function(){t.close()}),t.wrap=j("wrap").attr("tabindex",-1).on("click"+d,function(e){t._checkIfClose(e.target)&&t.close()}),t.container=j("container",t.wrap)),t.contentContainer=j("content"),t.st.preloader&&(t.preloader=j("preloader",t.container,t.st.tLoading));var p=e.magnificPopup.modules;for(s=0;s<p.length;s++){var c=p[s];c=c.charAt(0).toUpperCase()+c.slice(1),t["init"+c].call(t)}C("BeforeOpen"),t.st.showCloseBtn&&(t.st.closeBtnInside?(w(l,function(e,t,o,i){o.close_replaceWith=Q(i.type)}),a+=" mfp-close-btn-in"):t.wrap.append(Q())),t.st.alignTop&&(a+=" mfp-align-top"),t.fixedContentPos?t.wrap.css({overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}):t.wrap.css({top:b.scrollTop(),position:"absolute"}),(!1===t.st.fixedBgPos||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:i.height(),position:"absolute"}),t.st.enableEscapeKey&&i.on("keyup"+d,function(e){27===e.keyCode&&t.close()}),b.on("resize"+d,function(){t.updateSize()}),t.st.closeOnContentClick||(a+=" mfp-auto-cursor"),a&&t.wrap.addClass(a);var u=t.wH=b.height(),h={};if(t.fixedContentPos&&t._hasScrollBar(u)){var g=t._getScrollbarSize();g&&(h.marginRight=g)}t.fixedContentPos&&(t.isIE7?e("body, html").css("overflow","hidden"):h.overflow="hidden");var v=t.st.mainClass;return t.isIE7&&(v+=" mfp-ie7"),v&&t._addClassToMFP(v),t.updateItemHTML(),C("BuildControls"),e("html").css(h),t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo||e(document.body)),t._lastFocusedEl=document.activeElement,setTimeout(function(){t.content?(t._addClassToMFP(m),t._setFocus()):t.bgOverlay.addClass(m),i.on("focusin"+d,t._onFocusIn)},16),t.isOpen=!0,t.updateSize(u),C(f),o}t.updateItemHTML()},close:function(){t.isOpen&&(C(p),t.isOpen=!1,t.st.removalDelay&&!t.isLowIE&&t.supportsTransition?(t._addClassToMFP(h),setTimeout(function(){t._close()},t.st.removalDelay)):t._close())},_close:function(){C(n);var o=h+" "+m+" ";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(o+=t.st.mainClass+" "),t._removeClassFromMFP(o),t.fixedContentPos){var s={marginRight:""};t.isIE7?e("body, html").css("overflow",""):s.overflow="",e("html").css(s)}i.off("keyup.mfp focusin"+d),t.ev.off(d),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),!t.st.showCloseBtn||t.st.closeBtnInside&&!0!==t.currTemplate[t.currItem.type]||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t.st.autoFocusLast&&t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currItem=null,t.content=null,t.currTemplate=null,t.prevHeight=0,C("AfterClose")},updateSize:function(e){if(t.isIOS){var o=document.documentElement.clientWidth/window.innerWidth,i=window.innerHeight*o;t.wrap.css("height",i),t.wH=i}else t.wH=e||b.height();t.fixedContentPos||t.wrap.css("height",t.wH),C("Resize")},updateItemHTML:function(){var o=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),o.parsed||(o=t.parseEl(t.index));var i=o.type;if(C("BeforeChange",[t.currItem?t.currItem.type:"",i]),t.currItem=o,!t.currTemplate[i]){var a=!!t.st[i]&&t.st[i].markup;C("FirstMarkupParse",a),t.currTemplate[i]=!a||e(a)}s&&s!==o.type&&t.container.removeClass("mfp-"+s+"-holder");var r=t["get"+i.charAt(0).toUpperCase()+i.slice(1)](o,t.currTemplate[i]);t.appendContent(r,i),o.preloaded=!0,C(c,o),s=o.type,t.container.prepend(t.contentContainer),C("AfterChange")},appendContent:function(e,o){t.content=e,e?t.st.showCloseBtn&&t.st.closeBtnInside&&!0===t.currTemplate[o]?t.content.find(".mfp-close").length||t.content.append(Q()):t.content=e:t.content="",C("BeforeAppend"),t.container.addClass("mfp-"+o+"-holder"),t.contentContainer.append(t.content)},parseEl:function(o){var i,s=t.items[o];if(s.tagName?s={el:e(s)}:(i=s.type,s={data:s,src:s.src}),s.el){for(var a=t.types,r=0;r<a.length;r++)if(s.el.hasClass("mfp-"+a[r])){i=a[r];break}s.src=s.el.attr("data-mfp-src"),s.src||(s.src=s.el.attr("href"))}return s.type=i||t.st.type||"inline",s.index=o,s.parsed=!0,t.items[o]=s,C("ElementParse",s),t.items[o]},addGroup:function(e,o){var i=function(i){i.mfpEl=this,t._openClick(i,e,o)};o||(o={});var s="click.magnificPopup";o.mainEl=e,o.items?(o.isObj=!0,e.off(s).on(s,i)):(o.isObj=!1,o.delegate?e.off(s).on(s,o.delegate,i):(o.items=e,e.off(s).on(s,i)))},_openClick:function(o,i,s){if((void 0!==s.midClick?s.midClick:e.magnificPopup.defaults.midClick)||!(2===o.which||o.ctrlKey||o.metaKey||o.altKey||o.shiftKey)){var a=void 0!==s.disableOn?s.disableOn:e.magnificPopup.defaults.disableOn;if(a)if(e.isFunction(a)){if(!a.call(t))return!0}else if(b.width()<a)return!0;o.type&&(o.preventDefault(),t.isOpen&&o.stopPropagation()),s.el=e(o.mfpEl),s.delegate&&(s.items=i.find(s.delegate)),t.open(s)}},updateStatus:function(e,i){if(t.preloader){o!==e&&t.container.removeClass("mfp-s-"+o),i||"loading"!==e||(i=t.st.tLoading);var s={status:e,text:i};C("UpdateStatus",s),e=s.status,i=s.text,t.preloader.html(i),t.preloader.find("a").on("click",function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),o=e}},_checkIfClose:function(o){if(!e(o).hasClass(g)){var i=t.st.closeOnContentClick,s=t.st.closeOnBgClick;if(i&&s)return!0;if(!t.content||e(o).hasClass("mfp-close")||t.preloader&&o===t.preloader[0])return!0;if(o===t.content[0]||e.contains(t.content[0],o)){if(i)return!0}else if(s&&e.contains(document,o))return!0;return!1}},_addClassToMFP:function(e){t.bgOverlay.addClass(e),t.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),t.wrap.removeClass(e)},_hasScrollBar:function(e){return(t.isIE7?i.height():document.body.scrollHeight)>(e||b.height())},_setFocus:function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},_onFocusIn:function(o){return o.target===t.wrap[0]||e.contains(t.wrap[0],o.target)?void 0:(t._setFocus(),!1)},_parseMarkup:function(t,o,i){var s;i.data&&(o=e.extend(i.data,o)),C(l,[t,o,i]),e.each(o,function(o,i){if(void 0===i||!1===i)return!0;if((s=o.split("_")).length>1){var a=t.find(d+"-"+s[0]);if(a.length>0){var r=s[1];"replaceWith"===r?a[0]!==i[0]&&a.replaceWith(i):"img"===r?a.is("img")?a.attr("src",i):a.replaceWith(e("<img>").attr("src",i).attr("class",a.attr("class"))):a.attr(s[1],i)}}else t.find(d+"-"+o).html(i)})},_getScrollbarSize:function(){if(void 0===t.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return t.scrollbarSize}},e.magnificPopup={instance:null,proto:v.prototype,modules:[],open:function(t,o){return k(),(t=t?e.extend(!0,{},t):{}).isObj=!0,t.index=o||0,this.instance.open(t)},close:function(){return e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,o){o.options&&(e.magnificPopup.defaults[t]=o.options),e.extend(this.proto,o.proto),this.modules.push(t)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},e.fn.magnificPopup=function(o){k();var i=e(this);if("string"==typeof o)if("open"===o){var s,a=y?i.data("magnificPopup"):i[0].magnificPopup,r=parseInt(arguments[1],10)||0;a.items?s=a.items[r]:(s=i,a.delegate&&(s=s.find(a.delegate)),s=s.eq(r)),t._openClick({mfpEl:s},i,a)}else t.isOpen&&t[o].apply(t,Array.prototype.slice.call(arguments,1));else o=e.extend(!0,{},o),y?i.data("magnificPopup",o):i[0].magnificPopup=o,t.addGroup(i,o);return i};var x,I,P,T="inline",S=function(){P&&(I.after(P.addClass(x)).detach(),P=null)};e.magnificPopup.registerModule(T,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){t.types.push(T),w(n+"."+T,function(){S()})},getInline:function(o,i){if(S(),o.src){var s=t.st.inline,a=e(o.src);if(a.length){var r=a[0].parentNode;r&&r.tagName&&(I||(x=s.hiddenClass,I=j(x),x="mfp-"+x),P=a.after(I).detach().removeClass(x)),t.updateStatus("ready")}else t.updateStatus("error",s.tNotFound),a=e("<div>");return o.inlineElement=a,a}return t.updateStatus("ready"),t._parseMarkup(i,{},o),i}}});var _,O="ajax",z=function(){_&&e(document.body).removeClass(_)},E=function(){z(),t.req&&t.req.abort()};e.magnificPopup.registerModule(O,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){t.types.push(O),_=t.st.ajax.cursor,w(n+"."+O,E),w("BeforeChange."+O,E)},getAjax:function(o){_&&e(document.body).addClass(_),t.updateStatus("loading");var i=e.extend({url:o.src,success:function(i,s,a){var r={data:i,xhr:a};C("ParseAjax",r),t.appendContent(e(r.data),O),o.finished=!0,z(),t._setFocus(),setTimeout(function(){t.wrap.addClass(m)},16),t.updateStatus("ready"),C("AjaxContentAdded")},error:function(){z(),o.finished=o.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",o.src))}},t.st.ajax.settings);return t.req=e.ajax(i),""}}});var B;e.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var o=t.st.image,i=".image";t.types.push("image"),w(f+i,function(){"image"===t.currItem.type&&o.cursor&&e(document.body).addClass(o.cursor)}),w(n+i,function(){o.cursor&&e(document.body).removeClass(o.cursor),b.off("resize"+d)}),w("Resize"+i,t.resizeImage),t.isLowIE&&w("AfterChange",t.resizeImage)},resizeImage:function(){var e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var o=0;t.isLowIE&&(o=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-o)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,B&&clearInterval(B),e.isCheckingImgSize=!1,C("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var o=0,i=e.img[0],s=function(a){B&&clearInterval(B),B=setInterval(function(){return i.naturalWidth>0?void t._onImageHasSize(e):(o>200&&clearInterval(B),void(3===++o?s(10):40===o?s(50):100===o&&s(500)))},a)};s(1)},getImage:function(o,i){var s=0,a=function(){o&&(o.img[0].complete?(o.img.off(".mfploader"),o===t.currItem&&(t._onImageHasSize(o),t.updateStatus("ready")),o.hasSize=!0,o.loaded=!0,C("ImageLoadComplete")):200>++s?setTimeout(a,100):r())},r=function(){o&&(o.img.off(".mfploader"),o===t.currItem&&(t._onImageHasSize(o),t.updateStatus("error",n.tError.replace("%url%",o.src))),o.hasSize=!0,o.loaded=!0,o.loadError=!0)},n=t.st.image,p=i.find(".mfp-img");if(p.length){var l=document.createElement("img");l.className="mfp-img",o.el&&o.el.find("img").length&&(l.alt=o.el.find("img").attr("alt")),o.img=e(l).on("load.mfploader",a).on("error.mfploader",r),l.src=o.src,p.is("img")&&(o.img=o.img.clone()),(l=o.img[0]).naturalWidth>0?o.hasSize=!0:l.width||(o.hasSize=!1)}return t._parseMarkup(i,{title:function(o){if(o.data&&void 0!==o.data.title)return o.data.title;var i=t.st.image.titleSrc;if(i){if(e.isFunction(i))return i.call(t,o);if(o.el)return o.el.attr(i)||""}return""}(o),img_replaceWith:o.img},o),t.resizeImage(),o.hasSize?(B&&clearInterval(B),o.loadError?(i.addClass("mfp-loading"),t.updateStatus("error",n.tError.replace("%url%",o.src))):(i.removeClass("mfp-loading"),t.updateStatus("ready")),i):(t.updateStatus("loading"),o.loading=!0,o.hasSize||(o.imgHidden=!0,i.addClass("mfp-loading"),t.findImageSize(o)),i)}}});var F;e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var e,o=t.st.zoom,i=".zoom";if(o.enabled&&t.supportsTransition){var s,a,r=o.duration,l=function(e){var t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),i="all "+o.duration/1e3+"s "+o.easing,s={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},a="transition";return s["-webkit-"+a]=s["-moz-"+a]=s["-o-"+a]=s[a]=i,t.css(s),t},f=function(){t.content.css("visibility","visible")};w("BuildControls"+i,function(){if(t._allowZoom()){if(clearTimeout(s),t.content.css("visibility","hidden"),!(e=t._getItemToZoom()))return void f();(a=l(e)).css(t._getOffset()),t.wrap.append(a),s=setTimeout(function(){a.css(t._getOffset(!0)),s=setTimeout(function(){f(),setTimeout(function(){a.remove(),e=a=null,C("ZoomAnimationEnded")},16)},r)},16)}}),w(p+i,function(){if(t._allowZoom()){if(clearTimeout(s),t.st.removalDelay=r,!e){if(!(e=t._getItemToZoom()))return;a=l(e)}a.css(t._getOffset(!0)),t.wrap.append(a),t.content.css("visibility","hidden"),setTimeout(function(){a.css(t._getOffset())},16)}}),w(n+i,function(){t._allowZoom()&&(f(),a&&a.remove(),e=null)})}},_allowZoom:function(){return"image"===t.currItem.type},_getItemToZoom:function(){return!!t.currItem.hasSize&&t.currItem.img},_getOffset:function(o){var i,s=(i=o?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem)).offset(),a=parseInt(i.css("padding-top"),10),r=parseInt(i.css("padding-bottom"),10);s.top-=e(window).scrollTop()-a;var n={width:i.width(),height:(y?i.innerHeight():i[0].offsetHeight)-r-a};return void 0===F&&(F=void 0!==document.createElement("p").style.MozTransform),F?n["-moz-transform"]=n.transform="translate("+s.left+"px,"+s.top+"px)":(n.left=s.left,n.top=s.top),n}}});var M="iframe",L=function(e){if(t.currTemplate[M]){var o=t.currTemplate[M].find("iframe");o.length&&(e||(o[0].src="//about:blank"),t.isIE8&&o.css("display",e?"block":"none"))}};e.magnificPopup.registerModule(M,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(M),w("BeforeChange",function(e,t,o){t!==o&&(t===M?L():o===M&&L(!0))}),w(n+"."+M,function(){L()})},getIframe:function(o,i){var s=o.src,a=t.st.iframe;e.each(a.patterns,function(){return s.indexOf(this.index)>-1?(this.id&&(s="string"==typeof this.id?s.substr(s.lastIndexOf(this.id)+this.id.length,s.length):this.id.call(this,s)),s=this.src.replace("%id%",s),!1):void 0});var r={};return a.srcAction&&(r[a.srcAction]=s),t._parseMarkup(i,r,o),t.updateStatus("ready"),i}}});var A=function(e){var o=t.items.length;return e>o-1?e-o:0>e?o+e:e},H=function(e,t,o){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,o)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var o=t.st.gallery,s=".mfp-gallery";return t.direction=!0,!(!o||!o.enabled)&&(a+=" mfp-gallery",w(f+s,function(){o.navigateByImgClick&&t.wrap.on("click"+s,".mfp-img",function(){return t.items.length>1?(t.next(),!1):void 0}),i.on("keydown"+s,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),w("UpdateStatus"+s,function(e,o){o.text&&(o.text=H(o.text,t.currItem.index,t.items.length))}),w(l+s,function(e,i,s,a){var r=t.items.length;s.counter=r>1?H(o.tCounter,a.index,r):""}),w("BuildControls"+s,function(){if(t.items.length>1&&o.arrows&&!t.arrowLeft){var i=o.arrowMarkup,s=t.arrowLeft=e(i.replace(/%title%/gi,o.tPrev).replace(/%dir%/gi,"left")).addClass(g),a=t.arrowRight=e(i.replace(/%title%/gi,o.tNext).replace(/%dir%/gi,"right")).addClass(g);s.click(function(){t.prev()}),a.click(function(){t.next()}),t.container.append(s.add(a))}}),w(c+s,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),void w(n+s,function(){i.off(s),t.wrap.off("click"+s),t.arrowRight=t.arrowLeft=null}))},next:function(){t.direction=!0,t.index=A(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=A(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,o=t.st.gallery.preload,i=Math.min(o[0],t.items.length),s=Math.min(o[1],t.items.length);for(e=1;e<=(t.direction?s:i);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?i:s);e++)t._preloadItem(t.index-e)},_preloadItem:function(o){if(o=A(o),!t.items[o].preloaded){var i=t.items[o];i.parsed||(i=t.parseEl(o)),C("LazyLoad",i),"image"===i.type&&(i.img=e('<img class="mfp-img" />').on("load.mfploader",function(){i.hasSize=!0}).on("error.mfploader",function(){i.hasSize=!0,i.loadError=!0,C("LazyLoadError",i)}).attr("src",i.src)),i.preloaded=!0}}}});var N="retina";e.magnificPopup.registerModule(N,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,o=e.ratio;(o=isNaN(o)?o():o)>1&&(w("ImageHasSize."+N,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/o,width:"100%"})}),w("ElementParse."+N,function(t,i){i.src=e.replaceSrc(i,o)}))}}}}),k()}),jQuery(document).ready(function(){jQuery(".popup-gallery-twitter").each(function(){jQuery(this).magnificPopup({delegate:"a.fts-twitter-link-image",type:"image",tLoading:"Loading image #%curr%...",mainClass:"fts-instagram-img-mobile",removalDelay:100,mainClass:"fts-instagram-fade",gallery:{enabled:!0,navigateByImgClick:!0,preload:[0,1]},image:{tError:'<a href="%url%">The image #%curr%</a> could not be loaded.',titleSrc:function(e){return e.el.parents(".fts-tweeter-wrap, .fts-feed-type-twitter").find(".fts-twitter-text, .fts-mashup-description-wrap").html()}}})});var e=jQuery.magnificPopup.instance;jQuery("body").on("click","#fts-photo-prev",function(){e.prev(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()?jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height()):jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height())}),jQuery("body").on("click","#fts-photo-next",function(){e.next(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()&&jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height())}),jQuery("body").on("click",".fts-facebook-popup .mfp-image-holder .fts-popup-image-position",function(){e.next(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()&&jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height())}),jQuery("body").on("click","#fts-photo-prev, #fts-photo-next, .fts-facebook-popup .mfp-image-holder .fts-popup-image-position",function(e){jQuery("body").addClass("fts-using-arrows"),setTimeout(function(){jQuery.fn.ftsShare(),/fbcdn.net/i.test(jQuery(".fts-iframe-popup-element").attr("src"))||/scontent.cdninstagram.com/i.test(jQuery(".fts-iframe-popup-element").attr("src"))?(jQuery("body").addClass("fts-video-iframe-choice"),jQuery(".fts-video-popup-element").show(),jQuery(".fts-iframe-popup-element").attr("src","").hide()):(jQuery("body").removeClass("fts-video-iframe-choice, .fts-using-arrows"),jQuery(".fts-video-popup-element").attr("src","").hide(),jQuery(".fts-iframe-popup-element").show()),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()&&jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height()),jQuery(".fts-popup-second-half .fts-greater-than-width-height")[0]?(console.log("Arrows: Open Callback: Irregular size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:jQuery(".fts-popup-half").height()}),jQuery(".fts-popup-image-position").css({height:"100%","min-height":"auto"}),jQuery(".mfp-iframe-scaler").css("padding-top","100%")):jQuery(".fts-popup-second-half .fts-equal-width-height")[0]?(console.log("Arrows: Open Callback: Square size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:jQuery(".fts-popup-half").height()}),jQuery(".mfp-iframe-scaler").css("padding-top","")):(console.log("Arrows: Open Callback: Regular size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:"100%"}),jQuery(".mfp-iframe-scaler").css("padding-top","56.0%"),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-half").height()))},10)}),jQuery.fn.slickFacebookPopUpFunction=function(){jQuery(".popup-gallery-fb-posts, .popup-gallery-fb, .popup-video-gallery-fb").each(function(){var e=jQuery(this).find("a.fts-facebook-link-target, a.fts-fb-large-photo, a.fts-view-album-photos-large, a.fts-view-fb-videos-large, a.fts-view-fb-videos-btn, a.fts-jal-fb-vid-html5video"),t=[];e.each(function(){var e=jQuery(this),o="image";if(e.hasClass("fts-jal-fb-vid-image")||e.hasClass("fts-view-fb-videos-btn")){o="iframe";var i=jQuery(this).parents(".fts-fb-photo-post-wrap, .fts-events-list-wrap, .fts-jal-single-fb-post").find(".fts-fb-embed-iframe-check-used-for-popup").html();if(i)var s=i;else s=""}else s="";var a={src:e.attr("href"),type:o};a.title=jQuery(this).parents(".fts-fb-photo-post-wrap, .fts-events-list-wrap, .fts-jal-single-fb-post").find(".fts-jal-fb-top-wrap").html()+jQuery(this).parents(".fts-fb-photo-post-wrap, .fts-events-list-wrap, .fts-jal-single-fb-post").find(".fts-likes-shares-etc-wrap").html()+jQuery(this).parents(".fts-fb-photo-post-wrap, .fts-events-list-wrap, .fts-jal-single-fb-post").find(".fts-fb-comments-wrap").html()+s,t.push(a)}),e.magnificPopup({mainClass:"fts-facebook-popup fts-facebook-styles-popup",items:t,removalDelay:150,preloader:!1,closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!1,enableEscapeKey:!0,autoFocusLast:!1,gallery:{enabled:!0,navigateByImgClick:!1,tCounter:'<span class="mfp-counter">%curr% of %total%</span>',preload:[0,1],arrowMarkup:""},type:"image",callbacks:{beforeOpen:function(){var t=e.index(this.st.el);-1!==t&&this.goTo(t)},open:function(){if(console.log("Popup is opened"),jQuery.fn.ftsShare(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()?jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height()):jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height()),jQuery(".fts-popup-second-half .fts-greater-than-width-height")[0]?(console.log("Open Callback: Irregular size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:jQuery(".fts-popup-half").height()}),jQuery(".mfp-iframe-scaler").css("padding-top","100%")):jQuery(".fts-popup-second-half .fts-equal-width-height")[0]?(console.log("Open Callback: Square size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:jQuery(".fts-popup-half").height()}),jQuery(".mfp-iframe-scaler").css("padding-top","")):(console.log("Open Callback: Regular size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:"100%"}),jQuery(".mfp-iframe-scaler").css("padding-top","56.0%"),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-half").height())),matchMedia("only screen and (max-device-width: 736px)").matches){var e=event.target.id,t=jQuery("#"+e).data("poster");jQuery(".fts-fb-vid-popup video").attr("poster",t),console.log(t)}jQuery("body").addClass("fts-using-arrows")},change:function(){jQuery.fn.ftsShare(),jQuery(window).trigger("resize"),console.log("Content changed"),jQuery("body").hasClass("fts-using-arrows")},imageLoadComplete:function(){},markupParse:function(e,t,o){if(console.log("Parsing:",e,t,o),!jQuery("body").hasClass("fts-using-arrows")){var i=o.src;/fbcdn.net/i.test(i)&&"image"!==o.type?jQuery("body").addClass("fts-video-iframe-choice"):jQuery("body").hasClass("fts-using-arrows")||jQuery("body").removeClass("fts-video-iframe-choice")}},afterClose:function(){jQuery("body").removeClass("fts-using-arrows"),console.log("Popup is completely closed")}},image:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half "> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position" style="height:591px;"> <span class="fts-position-helper"></span><div class="mfp-img"></div> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button> </div><div class="fts-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://www.slickremix.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',tError:'<a href="%url%">The image #%curr%</a> could not be loaded.'},iframe:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half "> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"><div class="fts-fb-embed-iframe-check-used-for-popup"></div> <div class="mfp-iframe-scaler"><iframe class="mfp-iframe fts-iframe-popup-element" align="middle" frameborder="0" allowTransparency="true" allow="encrypted-media" allowFullScreen="true"></iframe> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button><script>if(jQuery("body").hasClass("fts-video-iframe-choice")){jQuery(".fts-iframe-popup-element").attr("src", "").hide(); } else if(!jQuery("body").hasClass("fts-using-arrows")){jQuery(".fts-video-popup-element").attr("src", "").hide(); } jQuery(".fts-facebook-popup video").click(function(){jQuery(this).trigger(this.paused ? this.paused ? "play" : "play" : "pause")}); <\/script> </div> </div><div class="fts-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://www.slickremix.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',srcAction:"iframe_src"}})})},jQuery.fn.slickFacebookPopUpFunction(),jQuery.fn.slickInstagramPopUpFunction=function(){jQuery(".popup-gallery").each(function(){var e=jQuery(this).find(".fts-instagram-link-target"),t=[];e.each(function(){var e=jQuery(this);if(e.hasClass("fts-jal-fb-vid-image"))o="iframe";else if(e.hasClass("fts-instagram-video-link"))o="inline";else var o="image";if("inline"==o)var i="",s='<video controls width="100%;" style="max-width:100%;" allowfullscreen controls><source src="'+e.attr("href")+'" type="video/mp4"></video><script>jQuery(".fts-instagram-styles-popup video").get(0).play();jQuery(".fts-instagram-styles-popup video").click(function(){ jQuery(this).trigger(this.paused ? this.paused ? "play" : "play" : "pause") });<\/script>';else i=e.attr("href"),s="";var a={src:i,type:o,html5videolink:s};a.title=jQuery(this).parents(".fts-instagram-wrapper").find(".fts-instagram-popup-profile-wrap").html()+jQuery(this).parents(".fts-instagram-wrapper").find(".slicker-date").html()+jQuery(this).parents(".fts-instagram-wrapper").find(".fts-insta-likes-comments-grab-popup").html()+jQuery(this).parents(".fts-instagram-wrapper").find(".fts-instagram-caption").html(),t.push(a)}),e.magnificPopup({mainClass:"fts-facebook-popup fts-instagram-styles-popup",items:t,removalDelay:150,preloader:!1,closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!1,enableEscapeKey:!0,autoFocusLast:!1,gallery:{enabled:!0,navigateByImgClick:!1,tCounter:'<span class="mfp-counter">%curr% of %total%</span>',preload:[0,1],arrowMarkup:""},callbacks:{beforeOpen:function(){var t=e.index(this.st.el);-1!==t&&this.goTo(t)},open:function(){console.log("Popup is opened"),jQuery.fn.ftsShare(),jQuery(window).resize(function(){jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height())}),jQuery(window).trigger("resize")},change:function(){console.log("Content changed"),console.log(this.content),jQuery.fn.ftsShare(),jQuery("body").hasClass("fts-using-arrows")},imageLoadComplete:function(){jQuery.fn.ftsShare(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()?jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height()):jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height())},markupParse:function(e,t,o){console.log("Parsing:",e,t,o)},afterClose:function(){jQuery("body").removeClass("fts-using-arrows"),console.log("Popup is completely closed")}},inline:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half fts-instagram-popup-half"> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <div class="mfp-iframe-scaler mfp-html5videolink" id="fts-html5videolink"> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button> </div> </div><div class="fts-popup-second-half fts-instagram-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://slickremix.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>'},image:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half fts-instagram-popup-half"> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <span class="fts-position-helper"></span><div class="mfp-img"></div> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button> </div><div class="fts-popup-second-half fts-instagram-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://feedthemsocial.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',tError:'<a href="%url%">The image #%curr%</a> could not be loaded.'},iframe:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half fts-instagram-popup-half"> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <div class="mfp-iframe-scaler"><iframe class="mfp-iframe fts-iframe-popup-element" frameborder="0" allowfullscreen></iframe><video class="mfp-iframe fts-video-popup-element" allowfullscreen autoplay controls></video> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button><script>if(jQuery("body").hasClass("fts-video-iframe-choice")){jQuery(".fts-iframe-popup-element").attr("src", "").hide(); } else if(!jQuery("body").hasClass("fts-using-arrows")){jQuery(".fts-video-popup-element").attr("src", "").hide(); }; jQuery(".fts-facebook-popup video").click(function(){jQuery(this).trigger(this.paused ? this.paused ? "play" : "play" : "pause")});<\/script> </div> </div><div class="fts-popup-second-half fts-instagram-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://feedthemsocial.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',srcAction:"iframe_src"}})})},jQuery.fn.slickInstagramPopUpFunction(),jQuery.fn.slickYoutubePopUpFunction=function(){jQuery(".fts-youtube-popup-gallery").each(function(){var e=jQuery(this).find("a.fts-yt-popup-open"),t=[];e.each(function(){var e=jQuery(this);type="iframe";var o={src:e.attr("href"),type:type};o.title=jQuery(this).parents(".slicker-youtube-placeholder").find(".youtube-social-btn-top").html()||jQuery(this).parents(".slicker-youtube-placeholder").find(".entriestitle").html(),t.push(o)}),e.magnificPopup({mainClass:"fts-facebook-popup fts-facebook-styles-popup fts-youtube-popup",items:t,removalDelay:150,preloader:!1,closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!1,enableEscapeKey:!0,autoFocusLast:!1,gallery:{enabled:!0,navigateByImgClick:!1,tCounter:'<span class="mfp-counter">%curr% of %total%</span>',preload:[0,1],arrowMarkup:""},callbacks:{beforeOpen:function(){var t=e.index(this.st.el);-1!==t&&this.goTo(t)},open:function(){console.log("Popup is opened"),jQuery.fn.ftsShare(),jQuery(window).resize(function(){jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height())}),jQuery(window).trigger("resize")},change:function(){console.log("Content changed"),console.log(this.content),jQuery.fn.ftsShare(),jQuery("body").hasClass("fts-using-arrows")},imageLoadComplete:function(){jQuery.fn.ftsShare(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()?jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height()):jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height())},markupParse:function(e,t,o){console.log("Parsing:",e,t,o)},afterClose:function(){jQuery("body").removeClass("fts-using-arrows"),console.log("Popup is completely closed")}},iframe:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half "> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <div class="mfp-iframe-scaler"><iframe class="mfp-iframe fts-iframe-popup-element" frameborder="0" allowfullscreen></iframe><video class="mfp-iframe fts-video-popup-element" allowfullscreen autoplay controls></video> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button><script>if(jQuery("body").hasClass("fts-video-iframe-choice")){jQuery(".fts-iframe-popup-element").attr("src", "").hide(); } else if(!jQuery("body").hasClass("fts-using-arrows")){jQuery(".fts-video-popup-element").attr("src", "").hide(); }; jQuery(".fts-facebook-popup video").click(function(){jQuery(this).trigger(this.paused ? this.paused ? "play" : "play" : "pause")}); <\/script> </div> </div><div class="fts-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://slickremix.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',srcAction:"iframe_src"}})})},jQuery.fn.slickYoutubePopUpFunction()});
1
+ !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(e){var t,o,i,s,a,r,n="Close",p="BeforeClose",l="MarkupParse",f="Open",c="Change",u="mfp",d="."+u,m="mfp-ready",g="mfp-removing",h="mfp-prevent-close",v=function(){},y=!!window.jQuery,b=e(window),w=function(e,o){t.ev.on(u+e+d,o)},j=function(t,o,i,s){var a=document.createElement("div");return a.className="mfp-"+t,i&&(a.innerHTML=i),s?o&&o.appendChild(a):(a=e(a),o&&a.appendTo(o)),a},C=function(o,i){t.ev.triggerHandler(u+o,i),t.st.callbacks&&(o=o.charAt(0).toLowerCase()+o.slice(1),t.st.callbacks[o]&&t.st.callbacks[o].apply(t,e.isArray(i)?i:[i]))},Q=function(o){return o===r&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),r=o),t.currTemplate.closeBtn},k=function(){e.magnificPopup.instance||((t=new v).init(),e.magnificPopup.instance=t)};v.prototype={constructor:v,init:function(){var o=navigator.appVersion;t.isLowIE=t.isIE8=document.all&&!document.addEventListener,t.isAndroid=/android/gi.test(o),t.isIOS=/iphone|ipad|ipod/gi.test(o),t.supportsTransition=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1}(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),i=e(document),t.popupsCache={}},open:function(o){var s;if(!1===o.isObj){t.items=o.items.toArray(),t.index=0;var r,n=o.items;for(s=0;s<n.length;s++)if((r=n[s]).parsed&&(r=r.el[0]),r===o.el[0]){t.index=s;break}}else t.items=e.isArray(o.items)?o.items:[o.items],t.index=o.index||0;if(!t.isOpen){t.types=[],a="",o.mainEl&&o.mainEl.length?t.ev=o.mainEl.eq(0):t.ev=i,o.key?(t.popupsCache[o.key]||(t.popupsCache[o.key]={}),t.currTemplate=t.popupsCache[o.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,o),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.st.modal&&(t.st.closeOnContentClick=!1,t.st.closeOnBgClick=!1,t.st.showCloseBtn=!1,t.st.enableEscapeKey=!1),t.bgOverlay||(t.bgOverlay=j("bg").on("click"+d,function(){t.close()}),t.wrap=j("wrap").attr("tabindex",-1).on("click"+d,function(e){t._checkIfClose(e.target)&&t.close()}),t.container=j("container",t.wrap)),t.contentContainer=j("content"),t.st.preloader&&(t.preloader=j("preloader",t.container,t.st.tLoading));var p=e.magnificPopup.modules;for(s=0;s<p.length;s++){var c=p[s];c=c.charAt(0).toUpperCase()+c.slice(1),t["init"+c].call(t)}C("BeforeOpen"),t.st.showCloseBtn&&(t.st.closeBtnInside?(w(l,function(e,t,o,i){o.close_replaceWith=Q(i.type)}),a+=" mfp-close-btn-in"):t.wrap.append(Q())),t.st.alignTop&&(a+=" mfp-align-top"),t.fixedContentPos?t.wrap.css({overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}):t.wrap.css({top:b.scrollTop(),position:"absolute"}),(!1===t.st.fixedBgPos||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:i.height(),position:"absolute"}),t.st.enableEscapeKey&&i.on("keyup"+d,function(e){27===e.keyCode&&t.close()}),b.on("resize"+d,function(){t.updateSize()}),t.st.closeOnContentClick||(a+=" mfp-auto-cursor"),a&&t.wrap.addClass(a);var u=t.wH=b.height(),g={};if(t.fixedContentPos&&t._hasScrollBar(u)){var h=t._getScrollbarSize();h&&(g.marginRight=h)}t.fixedContentPos&&(t.isIE7?e("body, html").css("overflow","hidden"):g.overflow="hidden");var v=t.st.mainClass;return t.isIE7&&(v+=" mfp-ie7"),v&&t._addClassToMFP(v),t.updateItemHTML(),C("BuildControls"),e("html").css(g),t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo||e(document.body)),t._lastFocusedEl=document.activeElement,setTimeout(function(){t.content?(t._addClassToMFP(m),t._setFocus()):t.bgOverlay.addClass(m),i.on("focusin"+d,t._onFocusIn)},16),t.isOpen=!0,t.updateSize(u),C(f),o}t.updateItemHTML()},close:function(){t.isOpen&&(C(p),t.isOpen=!1,t.st.removalDelay&&!t.isLowIE&&t.supportsTransition?(t._addClassToMFP(g),setTimeout(function(){t._close()},t.st.removalDelay)):t._close())},_close:function(){C(n);var o=g+" "+m+" ";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(o+=t.st.mainClass+" "),t._removeClassFromMFP(o),t.fixedContentPos){var s={marginRight:""};t.isIE7?e("body, html").css("overflow",""):s.overflow="",e("html").css(s)}i.off("keyup.mfp focusin"+d),t.ev.off(d),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),!t.st.showCloseBtn||t.st.closeBtnInside&&!0!==t.currTemplate[t.currItem.type]||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t.st.autoFocusLast&&t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currItem=null,t.content=null,t.currTemplate=null,t.prevHeight=0,C("AfterClose")},updateSize:function(e){if(t.isIOS){var o=document.documentElement.clientWidth/window.innerWidth,i=window.innerHeight*o;t.wrap.css("height",i),t.wH=i}else t.wH=e||b.height();t.fixedContentPos||t.wrap.css("height",t.wH),C("Resize")},updateItemHTML:function(){var o=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),o.parsed||(o=t.parseEl(t.index));var i=o.type;if(C("BeforeChange",[t.currItem?t.currItem.type:"",i]),t.currItem=o,!t.currTemplate[i]){var a=!!t.st[i]&&t.st[i].markup;C("FirstMarkupParse",a),t.currTemplate[i]=!a||e(a)}s&&s!==o.type&&t.container.removeClass("mfp-"+s+"-holder");var r=t["get"+i.charAt(0).toUpperCase()+i.slice(1)](o,t.currTemplate[i]);t.appendContent(r,i),o.preloaded=!0,C(c,o),s=o.type,t.container.prepend(t.contentContainer),C("AfterChange")},appendContent:function(e,o){t.content=e,e?t.st.showCloseBtn&&t.st.closeBtnInside&&!0===t.currTemplate[o]?t.content.find(".mfp-close").length||t.content.append(Q()):t.content=e:t.content="",C("BeforeAppend"),t.container.addClass("mfp-"+o+"-holder"),t.contentContainer.append(t.content)},parseEl:function(o){var i,s=t.items[o];if(s.tagName?s={el:e(s)}:(i=s.type,s={data:s,src:s.src}),s.el){for(var a=t.types,r=0;r<a.length;r++)if(s.el.hasClass("mfp-"+a[r])){i=a[r];break}s.src=s.el.attr("data-mfp-src"),s.src||(s.src=s.el.attr("href"))}return s.type=i||t.st.type||"inline",s.index=o,s.parsed=!0,t.items[o]=s,C("ElementParse",s),t.items[o]},addGroup:function(e,o){var i=function(i){i.mfpEl=this,t._openClick(i,e,o)};o||(o={});var s="click.magnificPopup";o.mainEl=e,o.items?(o.isObj=!0,e.off(s).on(s,i)):(o.isObj=!1,o.delegate?e.off(s).on(s,o.delegate,i):(o.items=e,e.off(s).on(s,i)))},_openClick:function(o,i,s){if((void 0!==s.midClick?s.midClick:e.magnificPopup.defaults.midClick)||!(2===o.which||o.ctrlKey||o.metaKey||o.altKey||o.shiftKey)){var a=void 0!==s.disableOn?s.disableOn:e.magnificPopup.defaults.disableOn;if(a)if(e.isFunction(a)){if(!a.call(t))return!0}else if(b.width()<a)return!0;o.type&&(o.preventDefault(),t.isOpen&&o.stopPropagation()),s.el=e(o.mfpEl),s.delegate&&(s.items=i.find(s.delegate)),t.open(s)}},updateStatus:function(e,i){if(t.preloader){o!==e&&t.container.removeClass("mfp-s-"+o),i||"loading"!==e||(i=t.st.tLoading);var s={status:e,text:i};C("UpdateStatus",s),e=s.status,i=s.text,t.preloader.html(i),t.preloader.find("a").on("click",function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),o=e}},_checkIfClose:function(o){if(!e(o).hasClass(h)){var i=t.st.closeOnContentClick,s=t.st.closeOnBgClick;if(i&&s)return!0;if(!t.content||e(o).hasClass("mfp-close")||t.preloader&&o===t.preloader[0])return!0;if(o===t.content[0]||e.contains(t.content[0],o)){if(i)return!0}else if(s&&e.contains(document,o))return!0;return!1}},_addClassToMFP:function(e){t.bgOverlay.addClass(e),t.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),t.wrap.removeClass(e)},_hasScrollBar:function(e){return(t.isIE7?i.height():document.body.scrollHeight)>(e||b.height())},_setFocus:function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},_onFocusIn:function(o){return o.target===t.wrap[0]||e.contains(t.wrap[0],o.target)?void 0:(t._setFocus(),!1)},_parseMarkup:function(t,o,i){var s;i.data&&(o=e.extend(i.data,o)),C(l,[t,o,i]),e.each(o,function(o,i){if(void 0===i||!1===i)return!0;if((s=o.split("_")).length>1){var a=t.find(d+"-"+s[0]);if(a.length>0){var r=s[1];"replaceWith"===r?a[0]!==i[0]&&a.replaceWith(i):"img"===r?a.is("img")?a.attr("src",i):a.replaceWith(e("<img>").attr("src",i).attr("class",a.attr("class"))):a.attr(s[1],i)}}else t.find(d+"-"+o).html(i)})},_getScrollbarSize:function(){if(void 0===t.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return t.scrollbarSize}},e.magnificPopup={instance:null,proto:v.prototype,modules:[],open:function(t,o){return k(),(t=t?e.extend(!0,{},t):{}).isObj=!0,t.index=o||0,this.instance.open(t)},close:function(){return e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,o){o.options&&(e.magnificPopup.defaults[t]=o.options),e.extend(this.proto,o.proto),this.modules.push(t)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},e.fn.magnificPopup=function(o){k();var i=e(this);if("string"==typeof o)if("open"===o){var s,a=y?i.data("magnificPopup"):i[0].magnificPopup,r=parseInt(arguments[1],10)||0;a.items?s=a.items[r]:(s=i,a.delegate&&(s=s.find(a.delegate)),s=s.eq(r)),t._openClick({mfpEl:s},i,a)}else t.isOpen&&t[o].apply(t,Array.prototype.slice.call(arguments,1));else o=e.extend(!0,{},o),y?i.data("magnificPopup",o):i[0].magnificPopup=o,t.addGroup(i,o);return i};var x,I,P,T="inline",S=function(){P&&(I.after(P.addClass(x)).detach(),P=null)};e.magnificPopup.registerModule(T,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){t.types.push(T),w(n+"."+T,function(){S()})},getInline:function(o,i){if(S(),o.src){var s=t.st.inline,a=e(o.src);if(a.length){var r=a[0].parentNode;r&&r.tagName&&(I||(x=s.hiddenClass,I=j(x),x="mfp-"+x),P=a.after(I).detach().removeClass(x)),t.updateStatus("ready")}else t.updateStatus("error",s.tNotFound),a=e("<div>");return o.inlineElement=a,a}return t.updateStatus("ready"),t._parseMarkup(i,{},o),i}}});var _,O="ajax",z=function(){_&&e(document.body).removeClass(_)},E=function(){z(),t.req&&t.req.abort()};e.magnificPopup.registerModule(O,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){t.types.push(O),_=t.st.ajax.cursor,w(n+"."+O,E),w("BeforeChange."+O,E)},getAjax:function(o){_&&e(document.body).addClass(_),t.updateStatus("loading");var i=e.extend({url:o.src,success:function(i,s,a){var r={data:i,xhr:a};C("ParseAjax",r),t.appendContent(e(r.data),O),o.finished=!0,z(),t._setFocus(),setTimeout(function(){t.wrap.addClass(m)},16),t.updateStatus("ready"),C("AjaxContentAdded")},error:function(){z(),o.finished=o.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",o.src))}},t.st.ajax.settings);return t.req=e.ajax(i),""}}});var B,F=function(o){if(o.data&&void 0!==o.data.title)return o.data.title;var i=t.st.image.titleSrc;if(i){if(e.isFunction(i))return i.call(t,o);if(o.el)return o.el.attr(i)||""}return""};e.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var o=t.st.image,i=".image";t.types.push("image"),w(f+i,function(){"image"===t.currItem.type&&o.cursor&&e(document.body).addClass(o.cursor)}),w(n+i,function(){o.cursor&&e(document.body).removeClass(o.cursor),b.off("resize"+d)}),w("Resize"+i,t.resizeImage),t.isLowIE&&w("AfterChange",t.resizeImage)},resizeImage:function(){var e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var o=0;t.isLowIE&&(o=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-o)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,B&&clearInterval(B),e.isCheckingImgSize=!1,C("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var o=0,i=e.img[0],s=function(a){B&&clearInterval(B),B=setInterval(function(){return i.naturalWidth>0?void t._onImageHasSize(e):(o>200&&clearInterval(B),void(3===++o?s(10):40===o?s(50):100===o&&s(500)))},a)};s(1)},getImage:function(o,i){var s=0,a=function(){o&&(o.img[0].complete?(o.img.off(".mfploader"),o===t.currItem&&(t._onImageHasSize(o),t.updateStatus("ready")),o.hasSize=!0,o.loaded=!0,C("ImageLoadComplete")):200>++s?setTimeout(a,100):r())},r=function(){o&&(o.img.off(".mfploader"),o===t.currItem&&(t._onImageHasSize(o),t.updateStatus("error",n.tError.replace("%url%",o.src))),o.hasSize=!0,o.loaded=!0,o.loadError=!0)},n=t.st.image,p=i.find(".mfp-img");if(p.length){var l=document.createElement("img");l.className="mfp-img",o.el&&o.el.find("img").length&&(l.alt=o.el.find("img").attr("alt")),o.img=e(l).on("load.mfploader",a).on("error.mfploader",r),l.src=o.src,p.is("img")&&(o.img=o.img.clone()),(l=o.img[0]).naturalWidth>0?o.hasSize=!0:l.width||(o.hasSize=!1)}return t._parseMarkup(i,{title:F(o),img_replaceWith:o.img},o),t.resizeImage(),o.hasSize?(B&&clearInterval(B),o.loadError?(i.addClass("mfp-loading"),t.updateStatus("error",n.tError.replace("%url%",o.src))):(i.removeClass("mfp-loading"),t.updateStatus("ready")),i):(t.updateStatus("loading"),o.loading=!0,o.hasSize||(o.imgHidden=!0,i.addClass("mfp-loading"),t.findImageSize(o)),i)}}});var M;e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var e,o=t.st.zoom,i=".zoom";if(o.enabled&&t.supportsTransition){var s,a,r=o.duration,l=function(e){var t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),i="all "+o.duration/1e3+"s "+o.easing,s={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},a="transition";return s["-webkit-"+a]=s["-moz-"+a]=s["-o-"+a]=s[a]=i,t.css(s),t},f=function(){t.content.css("visibility","visible")};w("BuildControls"+i,function(){if(t._allowZoom()){if(clearTimeout(s),t.content.css("visibility","hidden"),!(e=t._getItemToZoom()))return void f();(a=l(e)).css(t._getOffset()),t.wrap.append(a),s=setTimeout(function(){a.css(t._getOffset(!0)),s=setTimeout(function(){f(),setTimeout(function(){a.remove(),e=a=null,C("ZoomAnimationEnded")},16)},r)},16)}}),w(p+i,function(){if(t._allowZoom()){if(clearTimeout(s),t.st.removalDelay=r,!e){if(!(e=t._getItemToZoom()))return;a=l(e)}a.css(t._getOffset(!0)),t.wrap.append(a),t.content.css("visibility","hidden"),setTimeout(function(){a.css(t._getOffset())},16)}}),w(n+i,function(){t._allowZoom()&&(f(),a&&a.remove(),e=null)})}},_allowZoom:function(){return"image"===t.currItem.type},_getItemToZoom:function(){return!!t.currItem.hasSize&&t.currItem.img},_getOffset:function(o){var i,s=(i=o?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem)).offset(),a=parseInt(i.css("padding-top"),10),r=parseInt(i.css("padding-bottom"),10);s.top-=e(window).scrollTop()-a;var n={width:i.width(),height:(y?i.innerHeight():i[0].offsetHeight)-r-a};return void 0===M&&(M=void 0!==document.createElement("p").style.MozTransform),M?n["-moz-transform"]=n.transform="translate("+s.left+"px,"+s.top+"px)":(n.left=s.left,n.top=s.top),n}}});var L="iframe",A=function(e){if(t.currTemplate[L]){var o=t.currTemplate[L].find("iframe");o.length&&(e||(o[0].src="//about:blank"),t.isIE8&&o.css("display",e?"block":"none"))}};e.magnificPopup.registerModule(L,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(L),w("BeforeChange",function(e,t,o){t!==o&&(t===L?A():o===L&&A(!0))}),w(n+"."+L,function(){A()})},getIframe:function(o,i){var s=o.src,a=t.st.iframe;e.each(a.patterns,function(){return s.indexOf(this.index)>-1?(this.id&&(s="string"==typeof this.id?s.substr(s.lastIndexOf(this.id)+this.id.length,s.length):this.id.call(this,s)),s=this.src.replace("%id%",s),!1):void 0});var r={};return a.srcAction&&(r[a.srcAction]=s),t._parseMarkup(i,r,o),t.updateStatus("ready"),i}}});var H=function(e){var o=t.items.length;return e>o-1?e-o:0>e?o+e:e},N=function(e,t,o){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,o)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var o=t.st.gallery,s=".mfp-gallery";return t.direction=!0,!(!o||!o.enabled)&&(a+=" mfp-gallery",w(f+s,function(){o.navigateByImgClick&&t.wrap.on("click"+s,".mfp-img",function(){return t.items.length>1?(t.next(),!1):void 0}),i.on("keydown"+s,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),w("UpdateStatus"+s,function(e,o){o.text&&(o.text=N(o.text,t.currItem.index,t.items.length))}),w(l+s,function(e,i,s,a){var r=t.items.length;s.counter=r>1?N(o.tCounter,a.index,r):""}),w("BuildControls"+s,function(){if(t.items.length>1&&o.arrows&&!t.arrowLeft){var i=o.arrowMarkup,s=t.arrowLeft=e(i.replace(/%title%/gi,o.tPrev).replace(/%dir%/gi,"left")).addClass(h),a=t.arrowRight=e(i.replace(/%title%/gi,o.tNext).replace(/%dir%/gi,"right")).addClass(h);s.click(function(){t.prev()}),a.click(function(){t.next()}),t.container.append(s.add(a))}}),w(c+s,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),void w(n+s,function(){i.off(s),t.wrap.off("click"+s),t.arrowRight=t.arrowLeft=null}))},next:function(){t.direction=!0,t.index=H(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=H(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,o=t.st.gallery.preload,i=Math.min(o[0],t.items.length),s=Math.min(o[1],t.items.length);for(e=1;e<=(t.direction?s:i);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?i:s);e++)t._preloadItem(t.index-e)},_preloadItem:function(o){if(o=H(o),!t.items[o].preloaded){var i=t.items[o];i.parsed||(i=t.parseEl(o)),C("LazyLoad",i),"image"===i.type&&(i.img=e('<img class="mfp-img" />').on("load.mfploader",function(){i.hasSize=!0}).on("error.mfploader",function(){i.hasSize=!0,i.loadError=!0,C("LazyLoadError",i)}).attr("src",i.src)),i.preloaded=!0}}}});var W="retina";e.magnificPopup.registerModule(W,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,o=e.ratio;(o=isNaN(o)?o():o)>1&&(w("ImageHasSize."+W,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/o,width:"100%"})}),w("ElementParse."+W,function(t,i){i.src=e.replaceSrc(i,o)}))}}}}),k()}),jQuery(document).ready(function(){jQuery(".popup-gallery-twitter").each(function(){jQuery(this).magnificPopup({delegate:"a.fts-twitter-link-image",type:"image",tLoading:"Loading image #%curr%...",mainClass:"fts-instagram-img-mobile",removalDelay:100,mainClass:"fts-instagram-fade",gallery:{enabled:!0,navigateByImgClick:!0,preload:[0,1]},image:{tError:'<a href="%url%">The image #%curr%</a> could not be loaded.',titleSrc:function(e){return e.el.parents(".fts-tweeter-wrap, .fts-feed-type-twitter").find(".fts-twitter-text, .fts-mashup-description-wrap").html()}}})});var e=jQuery.magnificPopup.instance;jQuery("body").on("click","#fts-photo-prev",function(){e.prev(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()?jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height()):jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height())}),jQuery("body").on("click","#fts-photo-next",function(){e.next(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()&&jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height())}),jQuery("body").on("click",".fts-facebook-popup .mfp-image-holder .fts-popup-image-position",function(){e.next(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()&&jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height())}),jQuery("body").on("click","#fts-photo-prev, #fts-photo-next, .fts-facebook-popup .mfp-image-holder .fts-popup-image-position",function(e){jQuery("body").addClass("fts-using-arrows"),setTimeout(function(){jQuery.fn.ftsShare(),/fbcdn.net/i.test(jQuery(".fts-iframe-popup-element").attr("src"))||/scontent.cdninstagram.com/i.test(jQuery(".fts-iframe-popup-element").attr("src"))?(jQuery("body").addClass("fts-video-iframe-choice"),jQuery(".fts-video-popup-element").show(),jQuery(".fts-iframe-popup-element").attr("src","").hide()):(jQuery("body").removeClass("fts-video-iframe-choice, .fts-using-arrows"),jQuery(".fts-video-popup-element").attr("src","").hide(),jQuery(".fts-iframe-popup-element").show()),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()&&jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height()),jQuery(".fts-popup-second-half .fts-greater-than-width-height")[0]?(console.log("Arrows: Open Callback: Irregular size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:jQuery(".fts-popup-half").height()}),jQuery(".fts-popup-image-position").css({height:"100%","min-height":"auto"}),jQuery(".mfp-iframe-scaler").css("padding-top","100%")):jQuery(".fts-popup-second-half .fts-equal-width-height")[0]?(console.log("Arrows: Open Callback: Square size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:jQuery(".fts-popup-half").height()}),jQuery(".mfp-iframe-scaler").css("padding-top","")):(console.log("Arrows: Open Callback: Regular size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:"100%"}),jQuery(".mfp-iframe-scaler").css("padding-top","56.0%"),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-half").height()))},10)}),jQuery.fn.slickFacebookPopUpFunction=function(){jQuery(".popup-gallery-fb-posts, .popup-gallery-fb, .popup-video-gallery-fb").each(function(){var e=jQuery(this).find("a.fts-facebook-link-target, a.fts-fb-large-photo, a.fts-view-album-photos-large, a.fts-view-fb-videos-large, a.fts-view-fb-videos-btn, a.fts-jal-fb-vid-html5video"),t=[];e.each(function(){var e=jQuery(this),o="image";if(e.hasClass("fts-jal-fb-vid-image")||e.hasClass("fts-view-fb-videos-btn")){o="iframe";var i=jQuery(this).parents(".fts-fb-photo-post-wrap, .fts-events-list-wrap, .fts-jal-single-fb-post").find(".fts-fb-embed-iframe-check-used-for-popup").html();if(i)var s=i;else s=""}else s="";var a={src:e.attr("href"),type:o};a.title=jQuery(this).parents(".fts-fb-photo-post-wrap, .fts-events-list-wrap, .fts-jal-single-fb-post").find(".fts-jal-fb-top-wrap").html()+jQuery(this).parents(".fts-fb-photo-post-wrap, .fts-events-list-wrap, .fts-jal-single-fb-post").find(".fts-likes-shares-etc-wrap").html()+jQuery(this).parents(".fts-fb-photo-post-wrap, .fts-events-list-wrap, .fts-jal-single-fb-post").find(".fts-fb-comments-wrap").html()+s,t.push(a)}),e.magnificPopup({mainClass:"fts-facebook-popup fts-facebook-styles-popup",items:t,removalDelay:150,preloader:!1,closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!1,enableEscapeKey:!0,autoFocusLast:!1,gallery:{enabled:!0,navigateByImgClick:!1,tCounter:'<span class="mfp-counter">%curr% of %total%</span>',preload:[0,1],arrowMarkup:""},type:"image",callbacks:{beforeOpen:function(){var t=e.index(this.st.el);-1!==t&&this.goTo(t)},open:function(){if(console.log("Popup is opened"),jQuery.fn.ftsShare(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()?jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height()):jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height()),jQuery(".fts-popup-second-half .fts-greater-than-width-height")[0]?(console.log("Open Callback: Irregular size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:jQuery(".fts-popup-half").height()}),jQuery(".mfp-iframe-scaler").css("padding-top","100%")):jQuery(".fts-popup-second-half .fts-equal-width-height")[0]?(console.log("Open Callback: Square size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:jQuery(".fts-popup-half").height()}),jQuery(".mfp-iframe-scaler").css("padding-top","")):(console.log("Open Callback: Regular size"),jQuery("iframe.fts-iframe-popup-element").css({"max-width":"100%",width:"100%"}),jQuery(".mfp-iframe-scaler").css("padding-top","56.0%"),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-half").height())),matchMedia("only screen and (max-device-width: 736px)").matches){var e=event.target.id,t=jQuery("#"+e).data("poster");jQuery(".fts-fb-vid-popup video").attr("poster",t),console.log(t)}jQuery("body").addClass("fts-using-arrows")},change:function(){jQuery.fn.ftsShare(),jQuery(window).trigger("resize"),console.log("Content changed"),jQuery("body").hasClass("fts-using-arrows")},imageLoadComplete:function(){},markupParse:function(e,t,o){if(console.log("Parsing:",e,t,o),!jQuery("body").hasClass("fts-using-arrows")){var i=o.src;/fbcdn.net/i.test(i)&&"image"!==o.type?jQuery("body").addClass("fts-video-iframe-choice"):jQuery("body").hasClass("fts-using-arrows")||jQuery("body").removeClass("fts-video-iframe-choice")}},afterClose:function(){jQuery("body").removeClass("fts-using-arrows"),console.log("Popup is completely closed")}},image:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half "> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position" style="height:591px;"> <span class="fts-position-helper"></span><div class="mfp-img"></div> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button> </div><div class="fts-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://www.slickremix.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',tError:'<a href="%url%">The image #%curr%</a> could not be loaded.'},iframe:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half "> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"><div class="fts-fb-embed-iframe-check-used-for-popup"></div> <div class="mfp-iframe-scaler"><iframe class="mfp-iframe fts-iframe-popup-element" align="middle" frameborder="0" allowTransparency="true" allow="encrypted-media" allowFullScreen="true"></iframe> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button><script>if(jQuery("body").hasClass("fts-video-iframe-choice")){jQuery(".fts-iframe-popup-element").attr("src", "").hide(); } else if(!jQuery("body").hasClass("fts-using-arrows")){jQuery(".fts-video-popup-element").attr("src", "").hide(); } jQuery(".fts-facebook-popup video").click(function(){jQuery(this).trigger(this.paused ? this.paused ? "play" : "play" : "pause")}); <\/script> </div> </div><div class="fts-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://www.slickremix.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',srcAction:"iframe_src"}})})},jQuery.fn.slickFacebookPopUpFunction(),jQuery.fn.slickInstagramPopUpFunction=function(){jQuery(".popup-gallery").each(function(){var e=jQuery(this).find(".fts-instagram-link-target"),t=[];e.each(function(){var e=jQuery(this);if(e.hasClass("fts-child-media")?(ic=jQuery(this).parents(".fts-instagram-wrapper").find(".fts-carousel-image-wrapper").html(),ivc='<div class="fts-carousel-image"></div>'):(ic="",ivc=""),e.hasClass("fts-jal-fb-vid-image"))o="iframe";else if(e.hasClass("fts-instagram-video-link"))o="inline";else var o="image";if("inline"==o)var i="",s=ivc+'<video controls width="100%;" style="max-width:100%;" allowfullscreen controls><source src="'+e.attr("href")+'" type="video/mp4"></video><script>jQuery(".fts-instagram-styles-popup video").get(0).play();jQuery(".fts-instagram-styles-popup video").click(function(){ jQuery(this).trigger(this.paused ? this.paused ? "play" : "play" : "pause") });<\/script>';else i=e.attr("href"),s="";var a={src:i,type:o,html5videolink:s};a.title=ic+jQuery(this).parents(".fts-instagram-wrapper").find(".fts-instagram-popup-profile-wrap").html()+jQuery(this).parents(".fts-instagram-wrapper").find(".slicker-date").html()+jQuery(this).parents(".fts-instagram-wrapper").find(".fts-insta-likes-comments-grab-popup").html()+jQuery(this).parents(".fts-instagram-wrapper").find(".fts-instagram-caption").html(),t.push(a)}),e.magnificPopup({mainClass:"fts-facebook-popup fts-instagram-styles-popup",items:t,removalDelay:150,preloader:!1,closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!1,enableEscapeKey:!0,autoFocusLast:!1,gallery:{enabled:!0,navigateByImgClick:!1,tCounter:'<span class="mfp-counter">%curr% of %total%</span>',preload:[0,1],arrowMarkup:""},callbacks:{beforeOpen:function(){var t=e.index(this.st.el);-1!==t&&this.goTo(t)},open:function(){console.log("Popup is opened"),jQuery.fn.ftsShare(),jQuery(window).resize(function(){jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height())}),jQuery(window).trigger("resize")},change:function(){console.log("Content changed"),console.log(this.content),jQuery.fn.ftsShare(),jQuery("body").hasClass("fts-using-arrows")},imageLoadComplete:function(){jQuery(".fts-instagram-popup-second-half .fts-carousel-image").length?(jQuery(".fts-instagram-styles-popup .fts-carousel-image").remove(),jQuery(".fts-instagram-popup-half").prepend("<div class='fts-carousel-image'></div>")):jQuery(".fts-instagram-styles-popup .fts-carousel-image").remove(),jQuery.fn.ftsShare(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()?jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height()):jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height())},beforeAppend:function(){jQuery(".fts-instagram-popup-half").prepend("<div class='fts-carousel-image'></div>"),jQuery(".fts-instagram-popup-second-half .fts-carousel-image").length&&alert("wtg")},markupParse:function(e,t,o){console.log("Parsing:",e,t,o)},afterClose:function(){jQuery("body").removeClass("fts-using-arrows"),console.log("Popup is completely closed")}},inline:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half fts-instagram-popup-half"> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <div class="mfp-iframe-scaler mfp-html5videolink" id="fts-html5videolink"> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button> </div> </div><div class="fts-popup-second-half fts-instagram-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://slickremix.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>'},image:{markup:'><div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half fts-instagram-popup-half"> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <span class="fts-position-helper"></span><div class="mfp-img"></div> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button> </div><div class="fts-popup-second-half fts-instagram-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://feedthemsocial.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',tError:'<a href="%url%">The image #%curr%</a> could not be loaded.'},iframe:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half fts-instagram-popup-half"> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <div class="mfp-iframe-scaler"><iframe class="mfp-iframe fts-iframe-popup-element" frameborder="0" allowfullscreen></iframe><video class="mfp-iframe fts-video-popup-element" allowfullscreen autoplay controls></video> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button><script>if(jQuery("body").hasClass("fts-video-iframe-choice")){jQuery(".fts-iframe-popup-element").attr("src", "").hide(); } else if(!jQuery("body").hasClass("fts-using-arrows")){jQuery(".fts-video-popup-element").attr("src", "").hide(); } jQuery(".fts-facebook-popup video").click(function(){jQuery(this).trigger(this.paused ? this.paused ? "play" : "play" : "pause")});<\/script> </div> </div><div class="fts-popup-second-half fts-instagram-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://feedthemsocial.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',srcAction:"iframe_src"}})})},jQuery.fn.slickInstagramPopUpFunction(),jQuery.fn.slickYoutubePopUpFunction=function(){jQuery(".fts-youtube-popup-gallery").each(function(){var e=jQuery(this).find("a.fts-yt-popup-open"),t=[];e.each(function(){var e=jQuery(this);type="iframe";var o={src:e.attr("href"),type:type};o.title=jQuery(this).parents(".slicker-youtube-placeholder").find(".youtube-social-btn-top").html()||jQuery(this).parents(".slicker-youtube-placeholder").find(".entriestitle").html(),t.push(o)}),e.magnificPopup({mainClass:"fts-facebook-popup fts-facebook-styles-popup fts-youtube-popup",items:t,removalDelay:150,preloader:!1,closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!1,enableEscapeKey:!0,autoFocusLast:!1,gallery:{enabled:!0,navigateByImgClick:!1,tCounter:'<span class="mfp-counter">%curr% of %total%</span>',preload:[0,1],arrowMarkup:""},callbacks:{beforeOpen:function(){var t=e.index(this.st.el);-1!==t&&this.goTo(t)},open:function(){console.log("Popup is opened"),jQuery.fn.ftsShare(),jQuery(window).resize(function(){jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height())}),jQuery(window).trigger("resize")},change:function(){console.log("Content changed"),console.log(this.content),jQuery.fn.ftsShare(),jQuery("body").hasClass("fts-using-arrows")},imageLoadComplete:function(){jQuery.fn.ftsShare(),jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").height()<jQuery(".mfp-img").height()?jQuery(".fts-popup-image-position, .fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".mfp-img").height()):jQuery(".fts-popup-second-half .mfp-bottom-bar").css("height",jQuery(".fts-popup-image-position").height())},markupParse:function(e,t,o){console.log("Parsing:",e,t,o)},afterClose:function(){jQuery("body").removeClass("fts-using-arrows"),console.log("Popup is completely closed")}},iframe:{markup:'<div class="mfp-figure"><div class="mfp-close">X</div><div class="fts-popup-wrap"> <div class="fts-popup-half "> <button title="previous" type="button" id="fts-photo-prev" class="mfp-arrow mfp-arrow-left mfp-prevent-close"></button> <div class="fts-popup-image-position"> <div class="mfp-iframe-scaler"><iframe class="mfp-iframe fts-iframe-popup-element" frameborder="0" allowfullscreen></iframe><video class="mfp-iframe fts-video-popup-element" allowfullscreen autoplay controls></video> </div> <button title="next" type="button" id="fts-photo-next" class="mfp-arrow mfp-arrow-right mfp-prevent-close"></button><script>if(jQuery("body").hasClass("fts-video-iframe-choice")){jQuery(".fts-iframe-popup-element").attr("src", "").hide(); } else if(!jQuery("body").hasClass("fts-using-arrows")){jQuery(".fts-video-popup-element").attr("src", "").hide(); } jQuery(".fts-facebook-popup video").click(function(){jQuery(this).trigger(this.paused ? this.paused ? "play" : "play" : "pause")}); <\/script> </div> </div><div class="fts-popup-second-half"><div class="mfp-bottom-bar"><div class="mfp-title"></div><a class="fts-powered-by-text" href="https://slickremix.com" target="_blank">Powered by Feed Them Social</a><div class="mfp-counter"></div></div></div></div></div>',srcAction:"iframe_src"}})})},jQuery.fn.slickYoutubePopUpFunction()});
includes/error-handler.php CHANGED
@@ -214,7 +214,7 @@ class fts_error_handler {
214
  $feed_data = json_decode( $feed_data['data'] );
215
 
216
 
217
- error_log( print_r( $feed_data, true ) );
218
 
219
  // return error if no data retreived!
220
  try {
@@ -237,7 +237,7 @@ class fts_error_handler {
237
  throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">' . $output . '</div>' );
238
  }
239
 
240
- // throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">'.esc_html__('Oops, It appears something is wrong with this YouTube feed. Are there videos posted on the YouTube account?').'</div>' );
241
  }
242
  } catch ( \Exception $e ) {
243
  return array( true, $e->getMessage() );
@@ -245,3 +245,4 @@ class fts_error_handler {
245
  return;
246
  }
247
  }
 
214
  $feed_data = json_decode( $feed_data['data'] );
215
 
216
 
217
+ //error_log( print_r( $feed_data, true ) );
218
 
219
  // return error if no data retreived!
220
  try {
237
  throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">' . $output . '</div>' );
238
  }
239
 
240
+ //throw new \Exception( '<div style="clear:both; padding:15px 0;" class="fts-error-m">'.esc_html__('Oops, It appears something is wrong with this YouTube feed. Are there videos posted on the YouTube account?').'</div>' );
241
  }
242
  } catch ( \Exception $e ) {
243
  return array( true, $e->getMessage() );
245
  return;
246
  }
247
  }
248
+
includes/feed-them-functions.php CHANGED
@@ -227,41 +227,41 @@ class feed_them_social_functions {
227
  return $val;
228
  }
229
 
230
- /**
231
- * FTS Share Option
232
- *
233
- * @param string $fb_link link for social network.
234
- * @param string $description description field for some of the social networks.
235
- * @since
236
- */
237
- public function fts_share_option( $fb_link, $description ) {
238
-
239
- $hide_share = get_option( 'fts_disable_share_button', true ) ? get_option( 'fts_disable_share_button', true ) : '';
240
-
241
- if ( isset( $hide_share ) && '1' !== $hide_share ) {
242
- // Social media sharing URLs
243
- $link = $fb_link;
244
- $description = wp_strip_all_tags( $description );
245
- $ft_gallery_share_linkedin = 'https://www.linkedin.com/shareArticle?mini=true&url=' . $link;
246
- $ft_gallery_share_email = 'mailto:?subject=Shared Link&body=' . $link . ' - ' . $description;
247
- $ft_gallery_share_facebook = 'https://www.facebook.com/sharer/sharer.php?u=' . $link;
248
- $ft_gallery_share_twitter = 'https://twitter.com/intent/tweet?text=' . $link . '+' . $description;
249
- $ft_gallery_share_google = 'https://plus.google.com/share?url=' . $link;
250
-
251
- // The share wrap and links
252
- $output = '<div class="fts-share-wrap">';
253
- $output .= '<a href="javascript:;" class="ft-gallery-link-popup">' . esc_html( '', 'feed-them-social' ) . '</a>';
254
- $output .= '<div class="ft-gallery-share-wrap">';
255
- $output .= '<a href="' . esc_attr( $ft_gallery_share_facebook ) . '" target="_blank" class="ft-galleryfacebook-icon" title="Share this post on Facebook"><i class="fa fa-facebook-square"></i></a>';
256
- $output .= '<a href="' . esc_attr( $ft_gallery_share_twitter ) . '" target="_blank" class="ft-gallerytwitter-icon" title="Share this post on Twitter"><i class="fa fa-twitter"></i></a>';
257
- $output .= '<a href="' . esc_attr( $ft_gallery_share_google ) . '" target="_blank" class="ft-gallerygoogle-icon" title="Share this post on Google"><i class="fa fa-google-plus"></i></a>';
258
- $output .= '<a href="' . esc_attr( $ft_gallery_share_linkedin ) . '" target="_blank" class="ft-gallerylinkedin-icon" title="Share this post on Linkedin"><i class="fa fa-linkedin"></i></a>';
259
- $output .= '<a href="' . esc_attr( $ft_gallery_share_email ) . '" target="_blank" class="ft-galleryemail-icon" title="Share this post in your email"><i class="fa fa-envelope"></i></a>';
260
- $output .= '</div>';
261
- $output .= '</div>';
262
- return $output;
263
- }
264
- }
265
 
266
  /**
267
  * FTS FB Options Page Function
@@ -322,9 +322,9 @@ class feed_them_social_functions {
322
 
323
  // if( !empty( $data->instagram_business_account ) ){
324
 
325
- $data_id = $data->id;
326
- $data_user_name = $data->name;
327
- $data_thumbnail = 'https://graph.facebook.com/' . $data->id . '/picture';
328
  ?>
329
  <li class="fts-fb-main-page-li">
330
  <div class="fb-click-wrapper">
@@ -381,9 +381,9 @@ class feed_them_social_functions {
381
  foreach ( $data->locations->data as $location ) {
382
 
383
  // if ( !empty( $location->instagram_business_account ) ) {
384
- $loc_data_id = $location->id;
385
- $loc_data_user_name = $location->name;
386
- $loc_data_thumbnail = 'https://graph.facebook.com/' . $location->id . '/picture';
387
 
388
  ?>
389
  <li>
227
  return $val;
228
  }
229
 
230
+ /**
231
+ * FTS Share Option
232
+ *
233
+ * @param string $fb_link link for social network.
234
+ * @param string $description description field for some of the social networks.
235
+ * @since
236
+ */
237
+ public function fts_share_option( $fb_link, $description ) {
238
+
239
+ $hide_share = get_option( 'fts_disable_share_button', true ) ? get_option( 'fts_disable_share_button', true ) : '';
240
+
241
+ if ( isset( $hide_share ) && '1' !== $hide_share ) {
242
+ // Social media sharing URLs
243
+ $link = $fb_link;
244
+ $description = wp_strip_all_tags( $description );
245
+ $ft_gallery_share_linkedin = 'https://www.linkedin.com/shareArticle?mini=true&url=' . $link;
246
+ $ft_gallery_share_email = 'mailto:?subject=Shared Link&body=' . $link . ' - ' . $description;
247
+ $ft_gallery_share_facebook = 'https://www.facebook.com/sharer/sharer.php?u=' . $link;
248
+ $ft_gallery_share_twitter = 'https://twitter.com/intent/tweet?text=' . $link . '+' . $description;
249
+ $ft_gallery_share_google = 'https://plus.google.com/share?url=' . $link;
250
+
251
+ // The share wrap and links
252
+ $output = '<div class="fts-share-wrap">';
253
+ $output .= '<a href="javascript:;" class="ft-gallery-link-popup">' . esc_html( '', 'feed-them-social' ) . '</a>';
254
+ $output .= '<div class="ft-gallery-share-wrap">';
255
+ $output .= '<a href="' . esc_attr( $ft_gallery_share_facebook ) . '" target="_blank" class="ft-galleryfacebook-icon" title="Share this post on Facebook"><i class="fa fa-facebook-square"></i></a>';
256
+ $output .= '<a href="' . esc_attr( $ft_gallery_share_twitter ) . '" target="_blank" class="ft-gallerytwitter-icon" title="Share this post on Twitter"><i class="fa fa-twitter"></i></a>';
257
+ $output .= '<a href="' . esc_attr( $ft_gallery_share_google ) . '" target="_blank" class="ft-gallerygoogle-icon" title="Share this post on Google"><i class="fa fa-google-plus"></i></a>';
258
+ $output .= '<a href="' . esc_attr( $ft_gallery_share_linkedin ) . '" target="_blank" class="ft-gallerylinkedin-icon" title="Share this post on Linkedin"><i class="fa fa-linkedin"></i></a>';
259
+ $output .= '<a href="' . esc_attr( $ft_gallery_share_email ) . '" target="_blank" class="ft-galleryemail-icon" title="Share this post in your email"><i class="fa fa-envelope"></i></a>';
260
+ $output .= '</div>';
261
+ $output .= '</div>';
262
+ return $output;
263
+ }
264
+ }
265
 
266
  /**
267
  * FTS FB Options Page Function
322
 
323
  // if( !empty( $data->instagram_business_account ) ){
324
 
325
+ $data_id = isset( $data->instagram_business_account ) && 'fts-facebook-feed-styles-submenu-page' !== $_GET['page'] ? $data->instagram_business_account->id : $data->id;
326
+ $data_user_name = isset( $data->instagram_business_account ) && 'fts-facebook-feed-styles-submenu-page' !== $_GET['page'] ? '<span class="fts-insta-icon"></span>' . $data->instagram_business_account->username . '<span class="fts-arrow-icon"></span><span class="fts-fb-icon"></span>' . $data->name : $data->name;
327
+ $data_thumbnail = isset( $data->instagram_business_account->profile_picture_url ) && 'fts-facebook-feed-styles-submenu-page' !== $_GET['page'] ? $data->instagram_business_account->profile_picture_url : 'https://graph.facebook.com/' . $data->id . '/picture';
328
  ?>
329
  <li class="fts-fb-main-page-li">
330
  <div class="fb-click-wrapper">
381
  foreach ( $data->locations->data as $location ) {
382
 
383
  // if ( !empty( $location->instagram_business_account ) ) {
384
+ $loc_data_id = isset( $location->instagram_business_account ) && 'fts-facebook-feed-styles-submenu-page' !== $_GET['page'] ? $location->instagram_business_account->id : $location->id;
385
+ $loc_data_user_name = isset( $location->instagram_business_account ) && 'fts-facebook-feed-styles-submenu-page' !== $_GET['page'] ? '<span class="fts-insta-icon"></span>' . $location->instagram_business_account->username . '<span class="fts-arrow-icon"></span><span class="fts-fb-icon"></span>' . $location->name : $location->name;
386
+ $loc_data_thumbnail = isset( $location->instagram_business_account->profile_picture_url ) && 'fts-facebook-feed-styles-submenu-page' !== $_GET['page'] ? $location->instagram_business_account->profile_picture_url : 'https://graph.facebook.com/' . $location->id . '/picture';
387
 
388
  ?>
389
  <li>
readme.txt CHANGED
@@ -2,14 +2,14 @@
2
  Contributors: slickremix, slickchris
3
  Tags: Facebook, Instagram, Twitter, YouTube, Feed
4
  Requires at least: 3.6.0
5
- Tested up to: 5.3.1
6
- Stable tag: 2.7.9
7
  License: GPLv2 or later
8
 
9
  Display a Custom Facebook feed, Instagram feed, Twitter feed, Pinterest feed & YouTube feed on pages, posts or widgets.
10
 
11
  == Description ==
12
- Create and Display Responsive Social Feeds for your Facebook Pages, Instagram, Twitter, Pinterest and YouTube feeds while keeping people on your website!
13
 
14
  = Features include the following: =
15
  * Easy to Install and Setup.
@@ -75,36 +75,41 @@ Feed Them Social was Developed By SlickRemix --> [https://www.slickremix.com/](h
75
  * Log into WordPress dashboard then click **Plugins** > **Add new** > Then under the title "Install Plugins" click **Upload** > **choose the zip** > **Activate the plugin!**
76
 
77
  == Changelog ==
 
 
 
 
 
78
 
79
  = Version 2.7.9 Saturday, December 28th, 2019 =
80
  * UPDATED: Updated Readme to better reflect abilities of plugin.
81
 
82
  = Version 2.7.8 Monday, November 18th, 2019 =
83
- * TESTED: Tested plugin with WordPress version 5.3.0.
84
 
85
  = Version 2.7.7.1 - 2.7.7.2 Monday, November 11th, 2019 =
86
- * ADD: New Support Manager Chris to .org so he can help with support on the forum.
87
 
88
  = Version 2.7.7 Thursday, November 7th, 2019 =
89
  * HAPPY BIRTHDAY TO SPENCER! :)
90
  * FIX: Instagram Feed: Multiple feeds problem.
91
-
92
  = Version 2.7.6.2 Thursday, October 31th, 2019 =
93
  * HAPPY HOLLOWEEN!
94
  * FIX: Facebook Options: Issue with Instagram Pages getting included in the return.
95
  * FIX: Twitter Feed: Now the Date has a title so it is accessible.
96
  * FIX: All Feeds: Now the share links are accessible.
97
-
98
  = Version 2.7.6.1 Wednesday, October 30th, 2019 =
99
  * FIX: Settings: Missing js that would add px to the input field.
100
  * FIX: Pinterest: Creator permission was removed by Pinterest on October 25th, 2019. We were not notified of this change however we have corrected the issue.
101
-
102
  = Version 2.7.6 Tuesday, October 29th, 2019 =
103
  * FIX: Facebook Feed & YouTube Feed: Now we have a permanent caching system if the access token fails or reaches the API limit.
104
 
105
  = Version 2.7.4 - 2.7.5 Friday, September 20th, 2019 =
106
  * CHANGE: Remove the words Facebook and Instagram from the name of our plugin as we have been served to change it.
107
-
108
  = Version 2.7.3 Thursday, August 8th, 2019 =
109
  * FIX: Instagram Options: Button not working to get access token because of depreciated API call. public_content does not work anymore for scope, basic was required instead.
110
 
@@ -1033,4 +1038,4 @@ Yes. We have the Premium Extension which also includes Youtube. Then we also hav
1033
  16. Youtube Feed Popup. [Demo](https://feedthemsocial.com/youtube-demo-1-large-with-4-video-per-row/)
1034
  17. Settings page where you can generate a shortcode for any of the feeds and more.
1035
  18. Facebook Options page of our plugin. The other pages have similar options.
1036
- 19. Add the shortcode you generated from the settings page to any post, page or text widget.
2
  Contributors: slickremix, slickchris
3
  Tags: Facebook, Instagram, Twitter, YouTube, Feed
4
  Requires at least: 3.6.0
5
+ Tested up to: 5.3.2
6
+ Stable tag: 2.8.0
7
  License: GPLv2 or later
8
 
9
  Display a Custom Facebook feed, Instagram feed, Twitter feed, Pinterest feed & YouTube feed on pages, posts or widgets.
10
 
11
  == Description ==
12
+ Create and Display Responsive Social Feeds for your Facebook Pages, Instagram, Twitter, Pinterest and YouTube feeds while keeping people on your website!
13
 
14
  = Features include the following: =
15
  * Easy to Install and Setup.
75
  * Log into WordPress dashboard then click **Plugins** > **Add new** > Then under the title "Install Plugins" click **Upload** > **choose the zip** > **Activate the plugin!**
76
 
77
  == Changelog ==
78
+ = Version 2.8.0 Friday, January 10th, 2020 =
79
+ * NEW: Instagram Feed: Video posts now have a video icon indicating it's a video post and also a carousel icon for posts containing more than one image and now those images are also displayed in the popup if you have the premium version.
80
+ * NEW: Twitter Feed: Add a title tag with the date on the post date link.
81
+ * BACK AGAIN: Happy New Year Everyone! If you are a premium user we have good news for you. The Instagram Hashtag feed is back :) You can show the latest or most popular pics and videos tagged with whatever hashtag you add to the shortcode. If you are not using the premium version, well you have just one more thing to look forward to if you upgrade at some point.
82
+ * PLUGIN NOTICE: In a few months from now we will be releasing a new version of Feed Them Social that will contain a custom post type instead of a shortcode with all the options in it. This will allow you to make option changes in a flash, and this will also allow you to have more than one feed of ALL the social networks we offer in this plugin. This major overhaul will be in the free version too so existing free users will gain these additions.
83
 
84
  = Version 2.7.9 Saturday, December 28th, 2019 =
85
  * UPDATED: Updated Readme to better reflect abilities of plugin.
86
 
87
  = Version 2.7.8 Monday, November 18th, 2019 =
88
+ * TESTED: Tested plugin with WordPress version 5.3.0.
89
 
90
  = Version 2.7.7.1 - 2.7.7.2 Monday, November 11th, 2019 =
91
+ * ADD: New Support Manager Chris to .org so he can help with support on the forum.
92
 
93
  = Version 2.7.7 Thursday, November 7th, 2019 =
94
  * HAPPY BIRTHDAY TO SPENCER! :)
95
  * FIX: Instagram Feed: Multiple feeds problem.
96
+
97
  = Version 2.7.6.2 Thursday, October 31th, 2019 =
98
  * HAPPY HOLLOWEEN!
99
  * FIX: Facebook Options: Issue with Instagram Pages getting included in the return.
100
  * FIX: Twitter Feed: Now the Date has a title so it is accessible.
101
  * FIX: All Feeds: Now the share links are accessible.
102
+
103
  = Version 2.7.6.1 Wednesday, October 30th, 2019 =
104
  * FIX: Settings: Missing js that would add px to the input field.
105
  * FIX: Pinterest: Creator permission was removed by Pinterest on October 25th, 2019. We were not notified of this change however we have corrected the issue.
106
+
107
  = Version 2.7.6 Tuesday, October 29th, 2019 =
108
  * FIX: Facebook Feed & YouTube Feed: Now we have a permanent caching system if the access token fails or reaches the API limit.
109
 
110
  = Version 2.7.4 - 2.7.5 Friday, September 20th, 2019 =
111
  * CHANGE: Remove the words Facebook and Instagram from the name of our plugin as we have been served to change it.
112
+
113
  = Version 2.7.3 Thursday, August 8th, 2019 =
114
  * FIX: Instagram Options: Button not working to get access token because of depreciated API call. public_content does not work anymore for scope, basic was required instead.
115
 
1038
  16. Youtube Feed Popup. [Demo](https://feedthemsocial.com/youtube-demo-1-large-with-4-video-per-row/)
1039
  17. Settings page where you can generate a shortcode for any of the feeds and more.
1040
  18. Facebook Options page of our plugin. The other pages have similar options.
1041
+ 19. Add the shortcode you generated from the settings page to any post, page or text widget.