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

Version Description

Download this release

Release Info

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

Code changes from version 2.7.5 to 2.7.6

admin/class-fts-facebook-options-page.php CHANGED
@@ -85,16 +85,15 @@ class FTS_Facebook_Options_Page {
85
  <?php esc_html_e( 'Facebook API Token', 'feed-them-social' ); ?>
86
  </h3>
87
  <?php esc_html_e( 'This Facebook Access Token is for Business Pages, Photos and Videos only and is simply used to display the feed. You must be an admin of the business page to get your token. This will NOT work for personal profiles or groups. ', 'feed-them-social' ); ?>
88
- <p>
89
- <?php
90
- echo sprintf(
91
- esc_html( '%1$sLogin and get my Access Token%2$s', 'feed-them-social' ),
92
- '<a href="' . esc_url( 'https://www.facebook.com/dialog/oauth?client_id=1123168491105924&redirect_uri=https://www.slickremix.com/facebook-token/&state=' . admin_url( 'admin.php?page=fts-facebook-feed-styles-submenu-page' ) . '&scope=manage_pages' ) . '" class="fts-facebook-get-access-token">',
93
- '</a>'
94
- );
95
- ?>
96
- </p>
97
-
98
  </div>
99
  <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>
100
  <?php
@@ -135,7 +134,9 @@ class FTS_Facebook_Options_Page {
135
  <div class="clear"></div>
136
 
137
  <input type="text" hidden name="fts_facebook_custom_api_token_user_name" class="feed-them-social-admin-input" id="fts_facebook_custom_api_token_user_name" value="<?php echo esc_attr( get_option( 'fts_facebook_custom_api_token_user_name' ) ); ?>"/>
138
- <div class="clear"></div>
 
 
139
  <?php
140
  if ( ! empty( $test_app_token_response ) && ! empty( $test_app_token_id ) ) {
141
  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 ) {
@@ -144,7 +145,7 @@ class FTS_Facebook_Options_Page {
144
  echo '<div class="fts-successful-api-token fts-special-working-wrap">';
145
 
146
  if ( ! empty( $fb_id ) && ! empty( $fb_name ) && ! empty( $test_app_token_id ) ) {
147
- echo '<a href="' . esc_url( 'https://www.facebook.com/' . get_option( 'fts_facebook_custom_api_token_user_id' ) ) . '" target="_blank"><img border="0" height="50" width="50" class="fts-fb-page-thumb" src="' . esc_url( 'https://graph.facebook.com/' . $fb_id . '/picture' ) . '"/></a><h3><a href="' . esc_url( 'https://www.facebook.com/' . get_option( 'fts_facebook_custom_api_token_user_id' ) ) . '" target="_blank">' . esc_html( $fb_name ) . '</a></h3>';
148
  }
149
 
150
  echo sprintf(
@@ -242,7 +243,8 @@ class FTS_Facebook_Options_Page {
242
  </div>
243
  <input type="text" name="fts_facebook_custom_api_token_biz" class="feed-them-social-admin-input" id="fts_facebook_custom_api_token_biz" value="<?php echo esc_attr( get_option( 'fts_facebook_custom_api_token_biz' ) ); ?>"/>
244
  <input type="text" hidden name="fts_facebook_custom_api_token_user_name_biz" class="feed-them-social-admin-input" id="fts_facebook_custom_api_token_user_name_biz" value="<?php echo esc_attr( get_option( 'fts_facebook_custom_api_token_user_name_biz' ) ); ?>"/>
245
- <div class="clear"></div>
 
246
 
247
  <?php
248
  if (!empty($test_app_token_response_biz) && !empty($test_app_token_id_biz)) {
@@ -252,8 +254,9 @@ class FTS_Facebook_Options_Page {
252
  echo '<div class="fts-successful-api-token fts-special-working-wrap">';
253
 
254
 
 
255
  if (!empty($fb_id_biz) && !empty($fb_name_biz) && !empty($test_app_token_id_biz)) {
256
- echo '<img border="0" height="50" width="50" class="fts-fb-page-thumb" src="https://graph.facebook.com/' . $fb_id_biz . '/picture"/><h3><a href="https://facebook.com/'.$test_app_token_id_biz.'" target="_blank">' . $fb_name_biz . '</a></h3>';
257
  }
258
  echo __('Your Page Reviews Access Token is now working! Generate your shortcode on the <a href="admin.php?page=feed-them-settings-page#feed_type=facebook_reviews">settings page</a>.', 'feed-them-social') . '</div>';
259
 
85
  <?php esc_html_e( 'Facebook API Token', 'feed-them-social' ); ?>
86
  </h3>
87
  <?php esc_html_e( 'This Facebook Access Token is for Business Pages, Photos and Videos only and is simply used to display the feed. You must be an admin of the business page to get your token. This will NOT work for personal profiles or groups. ', 'feed-them-social' ); ?>
88
+ <p>
89
+ <?php
90
+ echo sprintf(
91
+ esc_html( '%1$sLogin and get my Access Token%2$s', 'feed-them-social' ),
92
+ '<a href="' . esc_url( 'https://www.facebook.com/dialog/oauth?client_id=1123168491105924&redirect_uri=https://www.slickremix.com/facebook-token/&state=' . admin_url( 'admin.php?page=fts-facebook-feed-styles-submenu-page' ) . '&scope=manage_pages' ) . '" class="fts-facebook-get-access-token">',
93
+ '</a>'
94
+ );
95
+ ?>
96
+ </p>
 
97
  </div>
98
  <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>
99
  <?php
134
  <div class="clear"></div>
135
 
136
  <input type="text" hidden name="fts_facebook_custom_api_token_user_name" class="feed-them-social-admin-input" id="fts_facebook_custom_api_token_user_name" value="<?php echo esc_attr( get_option( 'fts_facebook_custom_api_token_user_name' ) ); ?>"/>
137
+ <input type="text" hidden name="fts_facebook_custom_api_token_profile_image" class="feed-them-social-admin-input" id="fts_facebook_custom_api_token_profile_image" value="<?php echo esc_attr( get_option( 'fts_facebook_custom_api_token_profile_image' ) ); ?>"/>
138
+
139
+ <div class="clear"></div>
140
  <?php
141
  if ( ! empty( $test_app_token_response ) && ! empty( $test_app_token_id ) ) {
142
  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 ) {
145
  echo '<div class="fts-successful-api-token fts-special-working-wrap">';
146
 
147
  if ( ! empty( $fb_id ) && ! empty( $fb_name ) && ! empty( $test_app_token_id ) ) {
148
+ echo '<a href="' . esc_url( 'https://www.facebook.com/' . get_option( 'fts_facebook_custom_api_token_user_id' ) ) . '" target="_blank"><img border="0" height="50" width="50" class="fts-fb-page-thumb" src="' . get_option( 'fts_facebook_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">' . esc_html( $fb_name ) . '</a></h3>';
149
  }
150
 
151
  echo sprintf(
243
  </div>
244
  <input type="text" name="fts_facebook_custom_api_token_biz" class="feed-them-social-admin-input" id="fts_facebook_custom_api_token_biz" value="<?php echo esc_attr( get_option( 'fts_facebook_custom_api_token_biz' ) ); ?>"/>
245
  <input type="text" hidden name="fts_facebook_custom_api_token_user_name_biz" class="feed-them-social-admin-input" id="fts_facebook_custom_api_token_user_name_biz" value="<?php echo esc_attr( get_option( 'fts_facebook_custom_api_token_user_name_biz' ) ); ?>"/>
246
+ <input type="text" hidden name="fts_facebook_custom_api_token_biz_profile_image" class="feed-them-social-admin-input" id="fts_facebook_custom_api_token_biz_profile_image" value="<?php echo esc_attr( get_option( 'fts_facebook_custom_api_token_biz_profile_image' ) ); ?>"/>
247
+ <div class="clear"></div>
248
 
249
  <?php
250
  if (!empty($test_app_token_response_biz) && !empty($test_app_token_id_biz)) {
254
  echo '<div class="fts-successful-api-token fts-special-working-wrap">';
255
 
256
 
257
+ // https://graph.facebook.com/' . $fb_id_biz . '/picture
258
  if (!empty($fb_id_biz) && !empty($fb_name_biz) && !empty($test_app_token_id_biz)) {
259
+ echo '<img border="0" height="50" width="50" class="fts-fb-page-thumb" src="' . get_option( 'fts_facebook_custom_api_token_biz_profile_image' ) .'"/><h3><a href="https://facebook.com/'.$test_app_token_id_biz.'" target="_blank">' . $fb_name_biz . '</a></h3>';
260
  }
261
  echo __('Your Page Reviews Access Token is now working! Generate your shortcode on the <a href="admin.php?page=feed-them-settings-page#feed_type=facebook_reviews">settings page</a>.', 'feed-them-social') . '</div>';
262
 
admin/class-fts-settings-page-options.php CHANGED
@@ -57,10 +57,12 @@ class FTS_Settings_Page_Options {
57
  ),
58
 
59
  // All Feeds (1 of each for now)
60
- 2 => array(
61
- 'value' => 'multiple_facebook',
62
- 'title' => __( 'Multiple Facebook Feeds', 'feed-them-social' ),
63
- ),
 
 
64
  ),
65
  'premium_msg_boxes' => array(
66
  'main_select' => array(
@@ -548,10 +550,10 @@ class FTS_Settings_Page_Options {
548
  ),
549
 
550
  // location Feed
551
- array(
552
- 'value' => 'location',
553
- 'label' => __( 'Location Feed', 'feed-them-social' ),
554
- ),
555
  ),
556
  'req_plugin' => 'combine_streams',
557
  'short_attr' => array(
@@ -1201,25 +1203,25 @@ class FTS_Settings_Page_Options {
1201
  ),
1202
 
1203
  // Access Token
1204
- // array(
1205
- // 'option_type' => 'input',
1206
- // 'label' => __( 'Access Token (required) ', 'feed-them-social' ) . '<br/><small>' . __( '', 'feed-them-social' ) . '</small>',
1207
- // 'type' => 'text',
1208
- // 'id' => 'fb_access_token',
1209
- // 'name' => 'fb_access_token',
1210
 
1211
  // Only needed if Prem_Req = More otherwise remove (must have array key req_plugin)
1212
- // 'prem_req_more_msg' => '<br/><small>' . __('More than 6 Requires <a target="_blank" href="https://www.slickremix.com/downloads/feed-them-social-premium-extension/">Premium version</a>', 'feed-them-social') . '</small>',
1213
- // 'placeholder' => __( '', 'feed-them-social' ),
1214
 
1215
  // Relative to JS.
1216
- // 'short_attr' => array(
1217
- // 'attr_name' => 'access_token',
1218
- // 'var_final_if' => 'yes',
1219
- // 'empty_error' => 'set',
1220
- // 'empty_error_value' => '',
1221
- // ),
1222
- // ),
1223
 
1224
  // Facebook Album ID
1225
  array(
@@ -4345,16 +4347,16 @@ class FTS_Settings_Page_Options {
4345
  ),
4346
 
4347
  // hastag Feed
4348
- array(
4349
- 'value' => 'hashtag',
4350
- 'title' => __( 'Hashtag Feed', 'feed-them-social' ),
4351
- ),
4352
 
4353
  // location Feed
4354
- array(
4355
- 'value' => 'location',
4356
- 'title' => __( 'Location Feed', 'feed-them-social' ),
4357
- ),
4358
  ),
4359
 
4360
  // Feed Type Selection
@@ -4384,10 +4386,6 @@ class FTS_Settings_Page_Options {
4384
  'class' => 'instagram-user-option-text',
4385
  ),
4386
  2 => array(
4387
- 'text' => __( 'Hashtag (required)', 'feed-them-social' ),
4388
- 'class' => 'instagram-hashtag-option-text',
4389
- ),
4390
- 3 => array(
4391
  'text' => __( 'Location ID (required)', 'feed-them-social' ),
4392
  'class' => 'instagram-location-option-text',
4393
  ),
@@ -4402,10 +4400,6 @@ class FTS_Settings_Page_Options {
4402
  'class' => 'instagram-user-option-text',
4403
  ),
4404
  2 => array(
4405
- 'text' => __( 'Add your Hashtag below. <strong>DO NOT</strong> add the #, just the name.', 'feed-them-social' ),
4406
- 'class' => 'instagram-hashtag-option-text',
4407
- ),
4408
- 3 => array(
4409
  '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' ),
4410
  'class' => 'instagram-location-option-text',
4411
  ),
@@ -4419,26 +4413,56 @@ class FTS_Settings_Page_Options {
4419
  ),
4420
  ),
4421
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4422
  // Access Token
4423
- // array(
4424
- // 'option_type' => 'input',
4425
- // 'label' => __( 'Access Token (required) ', 'feed-them-social' ) . '<br/><small>' . __( '', 'feed-them-social' ) . '</small>',
4426
- // 'type' => 'text',
4427
- // 'id' => 'insta_access_token',
4428
- // 'name' => 'insta_access_token',
4429
 
4430
  // Only needed if Prem_Req = More otherwise remove (must have array key req_plugin)
4431
- // 'prem_req_more_msg' => '<br/><small>' . __('More than 6 Requires <a target="_blank" href="https://www.slickremix.com/downloads/feed-them-social-premium-extension/">Premium version</a>', 'feed-them-social') . '</small>',
4432
- // 'placeholder' => __( '', 'feed-them-social' ),
4433
 
4434
  // Relative to JS.
4435
- // 'short_attr' => array(
4436
- // 'attr_name' => 'access_token',
4437
- // 'var_final_if' => 'yes',
4438
- // 'empty_error' => 'set',
4439
- // 'empty_error_value' => '',
4440
- // ),
4441
- // ),
4442
 
4443
  // Pic Count
4444
  array(
@@ -4987,4 +5011,4 @@ class FTS_Settings_Page_Options {
4987
 
4988
  return $feed_settings_array;
4989
  }
4990
- }
57
  ),
58
 
59
  // All Feeds (1 of each for now)
60
+ // removing for now since fb remove the Page Public Content Permission on October 23rd, 1999
61
+ // 2 => array(
62
+ // 'value' => 'multiple_facebook',
63
+ // 'title' => __( 'Multiple Facebook Feeds', 'feed-them-social' ),
64
+ // ),
65
+
66
  ),
67
  'premium_msg_boxes' => array(
68
  'main_select' => array(
550
  ),
551
 
552
  // location Feed
553
+ //array(
554
+ // 'value' => 'location',
555
+ // 'label' => __( 'Location Feed', 'feed-them-social' ),
556
+ // ),
557
  ),
558
  'req_plugin' => 'combine_streams',
559
  'short_attr' => array(
1203
  ),
1204
 
1205
  // Access Token
1206
+ array(
1207
+ 'option_type' => 'input',
1208
+ 'label' => __( 'Access Token (required) ', 'feed-them-social' ) . '<br/><small>' . __( '', 'feed-them-social' ) . '</small>',
1209
+ 'type' => 'text',
1210
+ 'id' => 'fb_access_token',
1211
+ 'name' => 'fb_access_token',
1212
 
1213
  // Only needed if Prem_Req = More otherwise remove (must have array key req_plugin)
1214
+ 'prem_req_more_msg' => '<br/><small>' . __('More than 6 Requires <a target="_blank" href="https://www.slickremix.com/downloads/feed-them-social-premium-extension/">Premium version</a>', 'feed-them-social') . '</small>',
1215
+ 'placeholder' => __( '', 'feed-them-social' ),
1216
 
1217
  // Relative to JS.
1218
+ 'short_attr' => array(
1219
+ 'attr_name' => 'access_token',
1220
+ 'var_final_if' => 'yes',
1221
+ 'empty_error' => 'set',
1222
+ 'empty_error_value' => '',
1223
+ ),
1224
+ ),
1225
 
1226
  // Facebook Album ID
1227
  array(
4347
  ),
4348
 
4349
  // hastag Feed
4350
+ // array(
4351
+ // 'value' => 'hashtag',
4352
+ // 'title' => __( 'Hashtag Feed', 'feed-them-social' ),
4353
+ // ),
4354
 
4355
  // location Feed
4356
+ // array(
4357
+ // 'value' => 'location',
4358
+ // 'title' => __( 'Location Feed', 'feed-them-social' ),
4359
+ //),
4360
  ),
4361
 
4362
  // Feed Type Selection
4386
  'class' => 'instagram-user-option-text',
4387
  ),
4388
  2 => array(
 
 
 
 
4389
  'text' => __( 'Location ID (required)', 'feed-them-social' ),
4390
  'class' => 'instagram-location-option-text',
4391
  ),
4400
  'class' => 'instagram-user-option-text',
4401
  ),
4402
  2 => array(
 
 
 
 
4403
  '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' ),
4404
  'class' => 'instagram-location-option-text',
4405
  ),
4413
  ),
4414
  ),
4415
 
4416
+
4417
+ // Instagram Hashtag
4418
+ array(
4419
+ 'option_type' => 'input',
4420
+ 'input_wrap_class' => 'instagram_hashtag',
4421
+ 'label' => array(
4422
+ 1 => array(
4423
+ 'text' => __( 'Hashtag (required)', 'feed-them-social' ),
4424
+ 'class' => 'instagram-hashtag-option-text',
4425
+ ),
4426
+ ),
4427
+ 'type' => 'text',
4428
+ 'id' => 'instagram_hashtag',
4429
+ 'name' => 'instagram_hashtag',
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
+ ),
4437
+
4438
+ // Relative to JS.
4439
+ 'short_attr' => array(
4440
+ 'attr_name' => 'hashtag',
4441
+ 'var_final_if' => 'no',
4442
+ 'empty_error' => 'yes',
4443
+ ),
4444
+ ),
4445
+
4446
  // Access Token
4447
+ array(
4448
+ 'option_type' => 'input',
4449
+ 'label' => __( 'Access Token (required) ', 'feed-them-social' ) . '<br/><small>' . __( '', 'feed-them-social' ) . '</small>',
4450
+ 'type' => 'text',
4451
+ 'id' => 'insta_access_token',
4452
+ 'name' => 'insta_access_token',
4453
 
4454
  // Only needed if Prem_Req = More otherwise remove (must have array key req_plugin)
4455
+ 'prem_req_more_msg' => '<br/><small>' . __('More than 6 Requires <a target="_blank" href="https://www.slickremix.com/downloads/feed-them-social-premium-extension/">Premium version</a>', 'feed-them-social') . '</small>',
4456
+ 'placeholder' => __( '', 'feed-them-social' ),
4457
 
4458
  // Relative to JS.
4459
+ 'short_attr' => array(
4460
+ 'attr_name' => 'access_token',
4461
+ 'var_final_if' => 'yes',
4462
+ 'empty_error' => 'set',
4463
+ 'empty_error_value' => '',
4464
+ ),
4465
+ ),
4466
 
4467
  // Pic Count
4468
  array(
5011
 
5012
  return $feed_settings_array;
5013
  }
5014
+ }
admin/class-fts-settings-page.php CHANGED
@@ -1007,18 +1007,12 @@ class FTS_Settings_Page {
1007
  var fts_notice_message = '<div class="feed-them-social-admin-input-wrap fts-instagram-hashtag-location-options-message fts-premium-options-message" id="not_active_main_select" style="display: block;"><a class="not-active-title" href="https://www.slickremix.com/instagram-hashtag-and-location-options/" target="_blank"><h3>Hashtag and Location Depreciation Notice</h3></a>The hashtag and location options are being retired for the moment. You can <a target="_blank" href="https://www.slickremix.com/instagram-hashtag-and-location-options/">read more about it here</a>. It appears there is a way to do hashtag calls through the Facebook/Instagram api, so we are looking into making this happen. It is limited in terms of API calls so this may not work for many people. Unfortunately these are the new privacy guide lines set forth by facebook since they own Instagram.<br/><br/>Your Existing Hashtag or Location feeds will work until December 11th, 2018. We will be making an update on the 10th to remove the call so any existing hashtag or location feeds will not display</div>';
1008
 
1009
  jQuery('#instagram-messages-selector').bind('change', function (e) {
1010
- if (jQuery('#instagram-messages-selector').val() == 'hashtag') {
1011
- jQuery(".instagram-id-option-wrap,.instagram-user-option-text,.instagram-location-option-text,.main-instagram-profile-options-wrap").hide();
1012
- jQuery(".instagram-hashtag-option-text").show();
1013
- jQuery(".instagram_options_wrap").hide();
1014
- if(!jQuery('div').hasClass('fts-instagram-hashtag-location-options-message')){
1015
- jQuery( ".fts-instagram-shortcode-form").append( fts_notice_message );
1016
- }
1017
- else {
1018
- jQuery(".fts-instagram-hashtag-location-options-message").show();
1019
- }
1020
 
1021
- }
 
 
 
 
1022
  else if (jQuery('#instagram-messages-selector').val() == 'location') {
1023
  jQuery(".instagram-id-option-wrap,.instagram-user-option-text,.instagram-hashtag-option-text,.main-instagram-profile-options-wrap").hide();
1024
  jQuery(".instagram-location-option-text").show();
@@ -1034,7 +1028,7 @@ class FTS_Settings_Page {
1034
  jQuery(".instagram-id-option-wrap,.instagram-user-option-text,.main-instagram-profile-options-wrap").show();
1035
  jQuery(".instagram-hashtag-option-text,.instagram-location-option-text").hide();
1036
  jQuery(".instagram_options_wrap").show();
1037
- jQuery(".fts-instagram-hashtag-location-options-message").hide();
1038
 
1039
  }
1040
  });
@@ -1096,6 +1090,10 @@ class FTS_Settings_Page {
1096
  jQuery('#instagram_id').val(jQuery('#instagram_id').val() + '<?php echo esc_js( get_option( 'fts_instagram_custom_id' ) ); ?>');
1097
  jQuery('#insta_access_token').val(jQuery('#insta_access_token').val() + '<?php echo esc_js( get_option( 'fts_instagram_custom_api_token' ) ); ?>');
1098
  }
 
 
 
 
1099
  else {
1100
  jQuery('#instagram_id').val('');
1101
  }
1007
  var fts_notice_message = '<div class="feed-them-social-admin-input-wrap fts-instagram-hashtag-location-options-message fts-premium-options-message" id="not_active_main_select" style="display: block;"><a class="not-active-title" href="https://www.slickremix.com/instagram-hashtag-and-location-options/" target="_blank"><h3>Hashtag and Location Depreciation Notice</h3></a>The hashtag and location options are being retired for the moment. You can <a target="_blank" href="https://www.slickremix.com/instagram-hashtag-and-location-options/">read more about it here</a>. It appears there is a way to do hashtag calls through the Facebook/Instagram api, so we are looking into making this happen. It is limited in terms of API calls so this may not work for many people. Unfortunately these are the new privacy guide lines set forth by facebook since they own Instagram.<br/><br/>Your Existing Hashtag or Location feeds will work until December 11th, 2018. We will be making an update on the 10th to remove the call so any existing hashtag or location feeds will not display</div>';
1008
 
1009
  jQuery('#instagram-messages-selector').bind('change', function (e) {
 
 
 
 
 
 
 
 
 
 
1010
 
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();
1018
  jQuery(".instagram-location-option-text").show();
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
  });
1090
  jQuery('#instagram_id').val(jQuery('#instagram_id').val() + '<?php echo esc_js( get_option( 'fts_instagram_custom_id' ) ); ?>');
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('');
1099
  }
admin/class-fts-system-info-page.php CHANGED
@@ -73,7 +73,6 @@ PHP Version: <?php echo PHP_VERSION . "\n"; ?>
73
  Web Server Info: <?php echo esc_html( $server_software ) . "\n"; ?>
74
 
75
  -- PHP Configuration:
76
- Safe Mode: <?php echo ini_get( 'safe_mode' ) ? 'Yes' : "No\n"; ?>
77
  Upload Max Size: <?php echo esc_html( ini_get( 'upload_max_filesize' ) ) . "\n"; ?>
78
  Post Max Size: <?php echo esc_html( ini_get( 'post_max_size' ) ) . "\n"; ?>
79
  Upload Max Filesize: <?php echo esc_html( ini_get( 'upload_max_filesize' ) ) . "\n"; ?>
73
  Web Server Info: <?php echo esc_html( $server_software ) . "\n"; ?>
74
 
75
  -- PHP Configuration:
 
76
  Upload Max Size: <?php echo esc_html( ini_get( 'upload_max_filesize' ) ) . "\n"; ?>
77
  Post Max Size: <?php echo esc_html( ini_get( 'post_max_size' ) ) . "\n"; ?>
78
  Upload Max Filesize: <?php echo esc_html( ini_get( 'upload_max_filesize' ) ) . "\n"; ?>
admin/css/settings-page.css CHANGED
@@ -1 +1,1641 @@
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{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{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;: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;letter-spacing:1px;color:#4c4c4c;font-weight:500;padding-top:10px}.board-name,.combine-instagram-hashtag-option-text,.combine-instagram-location-option-text,.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,.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/youtube-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}.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:18px}.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}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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;}
feed-them.php CHANGED
@@ -7,18 +7,18 @@
7
  * Plugin Name: Feed Them Social - Page, Post, Video and Photo Galleries
8
  * Plugin URI: https://feedthemsocial.com/
9
  * Description: Customize feeds for Facebook Pages, Album Photos, Videos & Covers, Instagram, Twitter, Pinterest & YouTube on pages, posts or widgets.
10
- * Version: 2.7.5
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.2.3
17
- * Stable tag: 2.7.5
18
  * License: GPLv2 or later
19
  * License URI: https://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
- * @version 2.7.5
22
  * @package FeedThemSocial/Core
23
  * @copyright Copyright (c) 2012-2019 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.5' );
35
 
36
  define( 'FEED_THEM_SOCIAL_NOTICE_STATUS', get_option( 'rating_fts_slick_notice', false ) );
37
 
@@ -42,477 +42,477 @@ define( 'FEED_THEM_SOCIAL_NOTICE_STATUS', get_option( 'rating_fts_slick_notice',
42
  */
43
  final class Feed_Them_Social {
44
 
45
- /**
46
- * Main Instance of Feed Them Social
47
- *
48
- * @var $instance
49
- */
50
- private static $instance;
51
-
52
- /**
53
- * Create Instance of Feed Them Social
54
- *
55
- * @since 1.0.0
56
- */
57
- public static function instance() {
58
- if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Feed_Them_Social ) ) {
59
- self::$instance = new Feed_Them_Social();
60
-
61
- if ( ! function_exists( 'is_plugin_active' ) ) {
62
- require_once ABSPATH . '/wp-admin/includes/plugin.php';
63
- }
64
-
65
- // Third check the php version is not less than 5.2.9
66
- // Make sure php version is greater than 5.3!
67
- if ( function_exists( 'phpversion' ) ) {
68
- $phpversion = phpversion();
69
- }
70
- $phpcheck = '5.2.9';
71
- if ( $phpversion > $phpcheck ) {
72
- // Add actions!
73
- add_action( 'init', array( self::$instance, 'fts_action_init' ) );
74
- } else {
75
- // if the php version is not at least 5.3 do action!
76
- deactivate_plugins( 'feed-them-social/feed-them-social.php' );
77
- if ( $phpversion < $phpcheck ) {
78
- add_action( 'admin_notices', array( self::$instance, 'fts_required_php_check1' ) );
79
-
80
- }
81
- }
82
-
83
- register_activation_hook( __FILE__, array( self::$instance, 'fts_activate' ) );
84
-
85
- add_action( 'admin_init', array( self::$instance, 'feed_them_social_load_plugin' ) );
86
- add_action( 'admin_notices', array( self::$instance, 'fts_install_notice' ) );
87
- add_action( 'admin_notices', array( self::$instance, 'fts_update_notice' ) );
88
- add_action( 'upgrader_process_complete', array( self::$instance, 'fts_upgrade_completed' ), 10, 2 );
89
-
90
- // Include our own Settings link to plugin activation and update page.
91
- add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( self::$instance, 'fts_free_plugin_actions' ), 10, 4 );
92
-
93
- // Include Leave feedback, Get support and Plugin info links to plugin activation and update page.
94
- add_filter( 'plugin_row_meta', array( self::$instance, 'fts_leave_feedback_link' ), 10, 2 );
95
-
96
- add_action( 'admin_init', array( self::$instance, 'fts_check_nag_get' ) );
97
- add_action( 'admin_init', array( self::$instance, 'fts_maybe_set_transient' ) );
98
-
99
- // only display the notice if the time offset has passed and the user hasn't already dismissed it!
100
- if ( 'fts-review-waiting' !== get_transient( 'rating_fts_slick_notice_waiting' ) && 'dismissed' !== FEED_THEM_SOCIAL_NOTICE_STATUS ) {
101
- add_action( 'admin_notices', array( self::$instance, 'fts_rating_notice_html' ) );
102
- }
103
-
104
- // Setup Constants for FTS!
105
- self::$instance->setup_constants();
106
- // Include the files!
107
- self::$instance->includes();
108
  // Error Handler!
109
  self::$instance->error_handler = new feedthemsocial\fts_error_handler();
110
 
111
  // Truncate HTML Class
112
  self::$instance->truncate_html = new FeedThemSocialTruncateHTML();
113
 
114
- // FTS Custom Post Type
115
- // self::$instance->fts_custom_post_type = new feedthemsocial\FTS_Custom_Post_Type();
116
- // Core (and load init)!
117
- self::$instance->core_functions = new feedthemsocial\feed_them_social_functions();
118
-
119
- // Free Plugin License page!
120
- self::$instance->updater = new feedthemsocial\updater_init();
121
-
122
- // Facebook!
123
- self::$instance->facebook_feed = new feedthemsocial\FTS_Facebook_Feed();
124
-
125
- // Twitter!
126
- self::$instance->twitter_feed = new feedthemsocial\FTS_Twitter_Feed();
127
-
128
- // Instagram!
129
- self::$instance->instagram_feed = new feedthemsocial\FTS_Instagram_Feed();
130
-
131
- // Pinterest!
132
- self::$instance->pinterest_feed = new feedthemsocial\FTS_Pinterest_Feed();
133
-
134
- // Youtube!
135
- self::$instance->youtube_feed = new feedthemsocial\FTS_Youtube_Feed_Free();
136
- }
137
-
138
- return self::$instance;
139
- }
140
-
141
- /**
142
- * This function runs when WordPress completes its upgrade process
143
- *
144
- * It iterates through each plugin updated to see if ours is included
145
- *
146
- * @param string $upgrader_object What we upgrading.
147
- * @param array $options options for upgrade.
148
- * @since 1.0.0
149
- */
150
- public function fts_upgrade_completed( $upgrader_object, $options ) {
151
- // The path to our plugin's main file!
152
- $our_plugin = plugin_basename( __FILE__ );
153
- // If an update has taken place and the updated type is plugins and the plugins element exists!
154
- if ( 'update' === $options['action'] && 'plugin' === $options['type'] && isset( $options['plugins'] ) ) {
155
- // Iterate through the plugins being updated and check if ours is there!
156
- foreach ( $options['plugins'] as $plugin ) {
157
- if ( $plugin === $our_plugin ) {
158
- // Set a transient to record that our plugin has just been updated!
159
- set_transient( 'fts_updated', 1 );
160
- }
161
- }
162
- }
163
- }
164
-
165
- /**
166
- * Show a notice to anyone who has just updated this plugin
167
- * This notice shouldn't display to anyone who has just installed the plugin for the first time
168
- *
169
- * @since 1.0.0
170
- */
171
- public function fts_update_notice() {
172
- // Check the transient to see if we've just updated the plugin!
173
- if ( get_transient( 'fts_updated' ) ) {
174
- echo '<div class="notice notice-success updated is-dismissible"><p>' . esc_html( 'Thanks for updating Feed Them Social. We have deleted the cache in our plugin so you can view any changes we have made.', 'feed-them-social' ) . '</p></div>';
175
- delete_transient( 'fts_updated' );
176
- }
177
- }
178
-
179
- /**
180
- * Show a notice to anyone who has just installed the plugin for the first time
181
- * This notice shouldn't display to anyone who has just updated this plugin
182
- *
183
- * @since 1.0.0
184
- */
185
- public function fts_install_notice() {
186
- // Check the transient to see if we've just activated the plugin!
187
- if ( get_transient( 'fts_activated' ) ) {
188
- echo '<div class="notice notice-success updated is-dismissible"><p>';
189
- echo sprintf(
190
- esc_html( 'Thanks for installing Feed Them Social. To get started please view our %1$sSettings%2$s page.', 'feed-them-social' ),
191
- '<a href="' . esc_url( 'admin.php?page=feed-them-settings-page' ) . '">',
192
- '</a>'
193
- );
194
- echo '</p></div>';
195
- // Delete the transient so we don't keep displaying the activation message!
196
- delete_transient( 'fts_activated' );
197
- }
198
-
199
- }
200
-
201
- /**
202
- * Run this on activation
203
- * Set a transient so that we know we've just activated the plugin
204
- *
205
- * @since 1.0.0
206
- */
207
- public function fts_activate() {
208
- set_transient( 'fts_activated', 1 );
209
-
210
- // we add an db option to check then delete the db option after activation and the cache has emptied.
211
- // the delete_option is on the feed-them-functions.php file at the bottom of the function ftg_clear_cache_script!
212
- add_option( 'Feed_Them_Social_Activated_Plugin', 'feed-them-social' );
213
- }
214
-
215
- /**
216
- * Setup Constants
217
- *
218
- * Setup plugin constants for plugin
219
- *
220
- * @since 1.0.0
221
- */
222
- private function setup_constants() {
223
- // Makes sure the plugin is defined before trying to use it!
224
- if ( ! function_exists( 'is_plugin_active' ) ) {
225
- require_once ABSPATH . '/wp-admin/includes/plugin.php';
226
- }
227
-
228
- $plugin_data = get_plugin_data( __FILE__ );
229
- $plugin_version = $plugin_data['Version'];
230
-
231
- // Free Version Plugin version!
232
- if ( ! defined( 'FEED_THEM_SOCIAL_VERSION' ) ) {
233
- define( 'FEED_THEM_SOCIAL_VERSION', $plugin_version );
234
- }
235
-
236
- // Plugin Folder Path!
237
- if ( ! defined( 'FEED_THEM_SOCIAL_PLUGIN_PATH' ) ) {
238
- define( 'FEED_THEM_SOCIAL_PLUGIN_PATH', plugins_url() );
239
- }
240
- // Plugin Directoy Path!
241
- if ( ! defined( 'FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR' ) ) {
242
- define( 'FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR', plugin_dir_path( __FILE__ ) );
243
- }
244
-
245
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
246
- // Plugin Directoy Path!
247
- if ( ! defined( 'FEED_THEM_SOCIAL_PREMIUM_PLUGIN_FOLDER_DIR' ) ) {
248
- define( 'FEED_THEM_SOCIAL_PREMIUM_PLUGIN_FOLDER_DIR', WP_PLUGIN_DIR . '/feed-them-premium/feed-them-premium.php' );
249
- }
250
- }
251
- // Define constants!
252
- if ( ! defined( 'MY_TEXTDOMAIN' ) ) {
253
- define( 'MY_TEXTDOMAIN', 'feed-them-social' );
254
- }
255
- }
256
-
257
- /**
258
- * Includes Files
259
- *
260
- * Include files needed for Feed Them Social
261
- *
262
- * @since 1.0.0
263
- */
264
- private function includes() {
265
-
266
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'includes/error-handler.php';
267
-
268
- // Core classes!
269
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'includes/feed-them-functions.php';
270
- $load_fts = new feedthemsocial\feed_them_social_functions();
271
- $load_fts->init();
272
-
273
- // Admin Pages!
274
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-system-info-page.php';
275
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-settings-page-options.php';
276
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-settings-page.php';
277
-
278
- // Feed Option Pages!
279
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-facebook-options-page.php';
280
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-twitter-options-page.php';
281
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-instagram-options-page.php';
282
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-pinterest-options-page.php';
283
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-youtube-options-page.php';
284
-
285
- // Updater Classes!
286
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'updater/updater-license-page.php';
287
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'updater/updater-check-class.php';
288
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'updater/updater-check-init.php';
289
-
290
- // Feed Classes!
291
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/facebook/class-fts-facebook-feed.php';
292
- include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/facebook/class-fts-facebook-feed-post-types.php';
293
- $load_fb_fts = 'feedthemsocial\FTS_Facebook_Feed';
294
- new $load_fb_fts();
295
- include_once FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/twitter/class-fts-twitter-feed.php';
296
- $load_tw_fts = 'feedthemsocial\FTS_Twitter_Feed';
297
- new $load_tw_fts();
298
- include_once FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/instagram/class-fts-instagram-feed.php';
299
- include_once FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/pinterest/class-fts-pinterest-feed.php';
300
-
301
- include_once FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/youtube/class-youtube-feed-free.php';
302
 
303
 
304
  include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'includes/trim-words.php';
305
- }
306
-
307
- /**
308
- * FTS Action Init
309
- *
310
- * Loads language files
311
- *
312
- * @since 1.0.0
313
- */
314
- public function fts_action_init() {
315
- // Localization!
316
- load_plugin_textdomain( 'feed-them-social', false, basename( dirname( __FILE__ ) ) . '/languages' );
317
- }
318
-
319
- /**
320
- * FTS Required php Check
321
- *
322
- * Are they running proper PHP version
323
- *
324
- * @since 1.0.0
325
- */
326
- public function fts_required_php_check1() {
327
- echo '<div class="error"><p>';
328
- echo sprintf(
329
- esc_html( '%1$s Feed Them Social Warning:%2$s Your php version is %1$s%3$s%2$s. You need to be running at least %1$s5.3%2$s or greater to use this plugin. Please upgrade the php by contacting your host provider. Some host providers will allow you to change this yourself in the hosting control panel too. %4$s If you are hosting with BlueHost or Godaddy and the php version above is saying you are running %1$s5.2.17%2$s but you are really running something higher please %5$sclick here for the fix%6$s. If you cannot get it to work using the method described in the link please contact your host provider and explain the problem so they can fix it.', 'feed-them-social' ),
330
- '<strong>',
331
- '</strong>',
332
- phpversion(),
333
- '<br/><br/>',
334
- '<a href="' . esc_url( 'https://wordpress.org/support/topic/php-version-difference-after-changing-it-at-bluehost-php-config?replies=4' ) . '" target="_blank">',
335
- '</a>'
336
- );
337
- echo '</p></div>';
338
- }
339
-
340
- /**
341
- * FTS Plugin Actions
342
- *
343
- * Loads links in the Plugins page in WordPress Dashboard
344
- *
345
- * @param array $actions actions.
346
- * @param string $plugin_file path to file.
347
- * @param string $plugin_data plugin info.
348
- * @param string $context the context.
349
- * @return mixed
350
- * @since 1.0.0
351
- */
352
- public function fts_free_plugin_actions( $actions, $plugin_file, $plugin_data, $context ) {
353
- array_unshift(
354
- $actions,
355
- '<a href="admin.php?page=feed-them-settings-page">' . esc_html( 'Settings', 'feed-them-social' ) . '</a> | <a href="' . esc_url( 'https://www.slickremix.com/support/', 'feed-them-social' ) . '">' . esc_html( 'Support' ) . '</a>'
356
- );
357
- return $actions;
358
- }
359
-
360
- /**
361
- * FTS Leave Feedback Link
362
- *
363
- * Link to add feedback for plugin
364
- *
365
- * @param array $links links to check.
366
- * @param string $file path to plugin main file.
367
- * @return mixed
368
- * @since 1.0.0
369
- */
370
- public function fts_leave_feedback_link( $links, $file ) {
371
- if ( plugin_basename( __FILE__ ) === $file ) {
372
- $links['feedback'] = '<a href="' . esc_url( 'https://wordpress.org/support/view/plugin-reviews/feed-them-social', 'feed-them-social' ) . '" target="_blank">' . esc_html( 'Rate Plugin', 'feed-them-social' ) . '</a>';
373
- }
374
- return $links;
375
- }
376
-
377
- /**
378
- * FTS Load Plugin
379
- *
380
- * Load plugin options on activation check
381
- *
382
- * @since 1.0.0
383
- */
384
- public function feed_them_social_load_plugin() {
385
-
386
- if ( is_admin() && 'feed-them-social' === get_option( 'Feed_Them_Social_Activated_Plugin' ) ) {
387
-
388
- // The Options list!
389
- $activation_options = array(
390
- 'fts-date-and-time-format' => 'one-day-ago',
391
- 'fts_clear_cache_developer_mode' => '86400',
392
- );
393
-
394
- foreach ( $activation_options as $option_key => $option_value ) {
395
- // We don't use update_option because we only want this to run for options that have not already been set by the user!
396
- add_option( $option_key, $option_value );
397
- }
398
- }
399
- }
400
-
401
- /**
402
- * FTS Review Check
403
- *
404
- * Checks $_GET to see if the nag variable is set and what it's value is
405
- *
406
- * @since 2.4.5
407
- */
408
- public function fts_check_nag_get() {
409
- $fts_nag_nonce = wp_create_nonce( 'fts-nag-nonce' );
410
-
411
- global $current_user;
412
- $user_id = $current_user->ID;
413
- // Used for testing: delete_user_meta( $user_id, 'fts_slick_ignore_rating_notice' );
414
- if ( wp_verify_nonce( $fts_nag_nonce, 'fts-nag-nonce' ) ) {
415
-
416
- $transient = 'rating_fts_slick_notice_waiting';
417
- $option = 'rating_fts_slick_notice';
418
- $nag = 'rating_fts_slick_ignore_notice_nag';
419
-
420
- // Used for testing: echo isset( $_GET[ $nag ] ) ? $_GET[ $nag ] : 'no set nag';.
421
- if ( isset( $_GET[ $nag ] ) && '1' === $_GET[ $nag ] && ! get_user_meta( $user_id, 'fts_slick_ignore_rating_notice' ) ) {
422
-
423
- update_option( $option, 'dismissed' );
424
- update_user_meta( $user_id, 'fts_slick_ignore_rating_notice', '1' );
425
- } elseif ( isset( $_GET[ $nag ] ) && 'later' === $_GET[ $nag ] ) {
426
- $time = 2 * WEEK_IN_SECONDS;
427
- // Used for testin: echo $time;.
428
- set_transient( $transient, 'fts-review-waiting', $time );
429
- update_option( $option, 'pending' );
430
- }
431
- // Used for testin: echo 'no hit';.
432
- return;
433
- }
434
- }
435
-
436
- /**
437
- * FTS Set Review Transient
438
- *
439
- * Set a transient if the notice has not been dismissed or has not been set yet.
440
- *
441
- * @since 2.4.5
442
- */
443
- public function fts_maybe_set_transient() {
444
-
445
- $fts_set_transient_nonce = wp_create_nonce( 'fts-set-transient-nonce' );
446
-
447
- if ( wp_verify_nonce( $fts_set_transient_nonce, 'fts-set-transient-nonce' ) ) {
448
- // Variables to define specific terms!
449
- $transient = 'rating_fts_slick_notice_waiting';
450
- $option = 'rating_fts_slick_notice';
451
-
452
- $fts_rating_notice_waiting = get_transient( $transient );
453
- $notice_status = get_option( $option, false );
454
-
455
- global $current_user;
456
- $user_id = $current_user->ID;
457
-
458
- if ( ! $fts_rating_notice_waiting && ! ( 'dismissed' === $notice_status || 'pending' === $notice_status ) && ! get_user_meta( $user_id, 'fts_slick_ignore_rating_notice' ) ) {
459
- $time = 2 * WEEK_IN_SECONDS;
460
- set_transient( $transient, 'fts-review-waiting', $time );
461
- update_option( $option, 'pending' );
462
- // Used for testing: print 'waiting';.
463
- }
464
- // Used for testing:
465
  // print get_transient( $transient );
466
- // Used for testing: print ' & ';
467
- // Used for testing: print $notice_status;
468
- // Used for testing:
469
  // update_option( $option, '' );
470
- // Used for testing:
471
  // set_transient( $transient, '', '' );
472
- // Used for testing: echo 'no hit2';.
473
- return;
474
- }
475
- }
476
-
477
- /**
478
- * FTS Ratings Notice
479
- *
480
- * Generates the html for the admin notice
481
- *
482
- * @since 2.4.5
483
- */
484
- public function fts_rating_notice_html() {
485
-
486
- // Only show to admins!
487
- if ( current_user_can( 'manage_options' ) ) {
488
-
489
- global $current_user;
490
- $user_id = $current_user->ID;
491
-
492
- // Used for testing: print_r( get_user_meta( $user_id, 'fts_slick_ignore_rating_notice' ) );
493
- // Used for testing: $all_meta_for_user = get_user_meta( $user_id );
494
- // Used for testing: print_r( $all_meta_for_user );.
495
- /* Has the user already clicked to ignore the message? */
496
- if ( ! get_user_meta( $user_id, 'fts_slick_ignore_rating_notice' ) && ! isset( $_GET['rating_fts_slick_ignore_notice_nag'] ) ) {
497
-
498
- ?>
499
- <div class="fts_notice fts_review_notice">
500
- <img src="<?php echo esc_url( plugins_url( 'feed-them-social/admin/images/feed-them-social-logo.png' ) ); ?>" alt="Feed Them Social">
501
- <div class="fts-notice-text">
502
- <p><?php echo esc_html( 'It\'s great to see that you\'ve been using our Feed Them Social plugin for a while now. Hopefully you\'re happy with it! If so, would you consider leaving a positive review? It really helps support the plugin and helps others discover it too!', 'feed-them-social' ); ?></p>
503
- <p class="fts-links">
504
- <a class="fts_notice_dismiss" href="<?php echo esc_url( 'https://wordpress.org/support/plugin/feed-them-social/reviews/#new-post' ); ?>" target="_blank"><?php echo esc_html( 'Sure, I\'d love to', 'feed-them-social' ); ?></a>
505
- <a class="fts_notice_dismiss" href="<?php echo esc_url( add_query_arg( 'rating_fts_slick_ignore_notice_nag', '1' ) ); ?>"><?php echo esc_html( 'I\'ve already given a review', 'feed-them-social' ); ?></a>
506
- <a class="fts_notice_dismiss" href="<?php echo esc_url( add_query_arg( 'rating_fts_slick_ignore_notice_nag', 'later' ) ); ?>"><?php echo esc_html( 'Ask me later', 'feed-them-social' ); ?></a>
507
- <a class="fts_notice_dismiss" href="<?php echo esc_url( 'https://wordpress.org/support/plugin/feed-them-social/reviews/#new-post' ); ?>" target="_blank"><?php echo esc_html( 'Not working, I need support', 'feed-them-social' ); ?></a>
508
- <a class="fts_notice_dismiss" href="<?php echo esc_url( add_query_arg( 'rating_fts_slick_ignore_notice_nag', '1' ) ); ?>"><?php echo esc_html( 'No thanks', 'feed-them-social' ); ?></a>
509
- </p>
510
- </div>
511
- </div>
512
- <?php
513
- }
514
- }
515
- }
516
  }
517
 
518
  /**
@@ -525,7 +525,7 @@ final class Feed_Them_Social {
525
  */
526
  function feed_them_social() {
527
 
528
- return Feed_Them_Social::instance();
529
  }
530
 
531
  // Initiate Feed Them Social!
7
  * Plugin Name: Feed Them Social - Page, Post, Video and Photo Galleries
8
  * Plugin URI: https://feedthemsocial.com/
9
  * Description: Customize feeds for Facebook Pages, Album Photos, Videos & Covers, Instagram, Twitter, Pinterest & YouTube on pages, posts or widgets.
10
+ * Version: 2.7.6
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.2.4
17
+ * Stable tag: 2.7.6
18
  * License: GPLv2 or later
19
  * License URI: https://www.gnu.org/licenses/gpl-3.0.html
20
  *
21
+ * @version 2.7.6
22
  * @package FeedThemSocial/Core
23
  * @copyright Copyright (c) 2012-2019 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.7.6' );
35
 
36
  define( 'FEED_THEM_SOCIAL_NOTICE_STATUS', get_option( 'rating_fts_slick_notice', false ) );
37
 
42
  */
43
  final class Feed_Them_Social {
44
 
45
+ /**
46
+ * Main Instance of Feed Them Social
47
+ *
48
+ * @var $instance
49
+ */
50
+ private static $instance;
51
+
52
+ /**
53
+ * Create Instance of Feed Them Social
54
+ *
55
+ * @since 1.0.0
56
+ */
57
+ public static function instance() {
58
+ if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Feed_Them_Social ) ) {
59
+ self::$instance = new Feed_Them_Social();
60
+
61
+ if ( ! function_exists( 'is_plugin_active' ) ) {
62
+ require_once ABSPATH . '/wp-admin/includes/plugin.php';
63
+ }
64
+
65
+ // Third check the php version is not less than 5.2.9
66
+ // Make sure php version is greater than 5.3!
67
+ if ( function_exists( 'phpversion' ) ) {
68
+ $phpversion = phpversion();
69
+ }
70
+ $phpcheck = '5.2.9';
71
+ if ( $phpversion > $phpcheck ) {
72
+ // Add actions!
73
+ add_action( 'init', array( self::$instance, 'fts_action_init' ) );
74
+ } else {
75
+ // if the php version is not at least 5.3 do action!
76
+ deactivate_plugins( 'feed-them-social/feed-them-social.php' );
77
+ if ( $phpversion < $phpcheck ) {
78
+ add_action( 'admin_notices', array( self::$instance, 'fts_required_php_check1' ) );
79
+
80
+ }
81
+ }
82
+
83
+ register_activation_hook( __FILE__, array( self::$instance, 'fts_activate' ) );
84
+
85
+ add_action( 'admin_init', array( self::$instance, 'feed_them_social_load_plugin' ) );
86
+ add_action( 'admin_notices', array( self::$instance, 'fts_install_notice' ) );
87
+ add_action( 'admin_notices', array( self::$instance, 'fts_update_notice' ) );
88
+ add_action( 'upgrader_process_complete', array( self::$instance, 'fts_upgrade_completed' ), 10, 2 );
89
+
90
+ // Include our own Settings link to plugin activation and update page.
91
+ add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( self::$instance, 'fts_free_plugin_actions' ), 10, 4 );
92
+
93
+ // Include Leave feedback, Get support and Plugin info links to plugin activation and update page.
94
+ add_filter( 'plugin_row_meta', array( self::$instance, 'fts_leave_feedback_link' ), 10, 2 );
95
+
96
+ add_action( 'admin_init', array( self::$instance, 'fts_check_nag_get' ) );
97
+ add_action( 'admin_init', array( self::$instance, 'fts_maybe_set_transient' ) );
98
+
99
+ // only display the notice if the time offset has passed and the user hasn't already dismissed it!
100
+ if ( 'fts-review-waiting' !== get_transient( 'rating_fts_slick_notice_waiting' ) && 'dismissed' !== FEED_THEM_SOCIAL_NOTICE_STATUS ) {
101
+ add_action( 'admin_notices', array( self::$instance, 'fts_rating_notice_html' ) );
102
+ }
103
+
104
+ // Setup Constants for FTS!
105
+ self::$instance->setup_constants();
106
+ // Include the files!
107
+ self::$instance->includes();
108
  // Error Handler!
109
  self::$instance->error_handler = new feedthemsocial\fts_error_handler();
110
 
111
  // Truncate HTML Class
112
  self::$instance->truncate_html = new FeedThemSocialTruncateHTML();
113
 
114
+ // FTS Custom Post Type
115
+ // self::$instance->fts_custom_post_type = new feedthemsocial\FTS_Custom_Post_Type();
116
+ // Core (and load init)!
117
+ self::$instance->core_functions = new feedthemsocial\feed_them_social_functions();
118
+
119
+ // Free Plugin License page!
120
+ self::$instance->updater = new feedthemsocial\updater_init();
121
+
122
+ // Facebook!
123
+ self::$instance->facebook_feed = new feedthemsocial\FTS_Facebook_Feed();
124
+
125
+ // Twitter!
126
+ self::$instance->twitter_feed = new feedthemsocial\FTS_Twitter_Feed();
127
+
128
+ // Instagram!
129
+ self::$instance->instagram_feed = new feedthemsocial\FTS_Instagram_Feed();
130
+
131
+ // Pinterest!
132
+ self::$instance->pinterest_feed = new feedthemsocial\FTS_Pinterest_Feed();
133
+
134
+ // Youtube!
135
+ self::$instance->youtube_feed = new feedthemsocial\FTS_Youtube_Feed_Free();
136
+ }
137
+
138
+ return self::$instance;
139
+ }
140
+
141
+ /**
142
+ * This function runs when WordPress completes its upgrade process
143
+ *
144
+ * It iterates through each plugin updated to see if ours is included
145
+ *
146
+ * @param string $upgrader_object What we upgrading.
147
+ * @param array $options options for upgrade.
148
+ * @since 1.0.0
149
+ */
150
+ public function fts_upgrade_completed( $upgrader_object, $options ) {
151
+ // The path to our plugin's main file!
152
+ $our_plugin = plugin_basename( __FILE__ );
153
+ // If an update has taken place and the updated type is plugins and the plugins element exists!
154
+ if ( 'update' === $options['action'] && 'plugin' === $options['type'] && isset( $options['plugins'] ) ) {
155
+ // Iterate through the plugins being updated and check if ours is there!
156
+ foreach ( $options['plugins'] as $plugin ) {
157
+ if ( $plugin === $our_plugin ) {
158
+ // Set a transient to record that our plugin has just been updated!
159
+ set_transient( 'fts_updated', 1 );
160
+ }
161
+ }
162
+ }
163
+ }
164
+
165
+ /**
166
+ * Show a notice to anyone who has just updated this plugin
167
+ * This notice shouldn't display to anyone who has just installed the plugin for the first time
168
+ *
169
+ * @since 1.0.0
170
+ */
171
+ public function fts_update_notice() {
172
+ // Check the transient to see if we've just updated the plugin!
173
+ if ( get_transient( 'fts_updated' ) ) {
174
+ echo '<div class="notice notice-success updated is-dismissible"><p>' . esc_html( 'Thanks for updating Feed Them Social. We have deleted the cache in our plugin so you can view any changes we have made.', 'feed-them-social' ) . '</p></div>';
175
+ delete_transient( 'fts_updated' );
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Show a notice to anyone who has just installed the plugin for the first time
181
+ * This notice shouldn't display to anyone who has just updated this plugin
182
+ *
183
+ * @since 1.0.0
184
+ */
185
+ public function fts_install_notice() {
186
+ // Check the transient to see if we've just activated the plugin!
187
+ if ( get_transient( 'fts_activated' ) ) {
188
+ echo '<div class="notice notice-success updated is-dismissible"><p>';
189
+ echo sprintf(
190
+ esc_html( 'Thanks for installing Feed Them Social. To get started please view our %1$sSettings%2$s page.', 'feed-them-social' ),
191
+ '<a href="' . esc_url( 'admin.php?page=feed-them-settings-page' ) . '">',
192
+ '</a>'
193
+ );
194
+ echo '</p></div>';
195
+ // Delete the transient so we don't keep displaying the activation message!
196
+ delete_transient( 'fts_activated' );
197
+ }
198
+
199
+ }
200
+
201
+ /**
202
+ * Run this on activation
203
+ * Set a transient so that we know we've just activated the plugin
204
+ *
205
+ * @since 1.0.0
206
+ */
207
+ public function fts_activate() {
208
+ set_transient( 'fts_activated', 1 );
209
+
210
+ // we add an db option to check then delete the db option after activation and the cache has emptied.
211
+ // the delete_option is on the feed-them-functions.php file at the bottom of the function ftg_clear_cache_script!
212
+ add_option( 'Feed_Them_Social_Activated_Plugin', 'feed-them-social' );
213
+ }
214
+
215
+ /**
216
+ * Setup Constants
217
+ *
218
+ * Setup plugin constants for plugin
219
+ *
220
+ * @since 1.0.0
221
+ */
222
+ private function setup_constants() {
223
+ // Makes sure the plugin is defined before trying to use it!
224
+ if ( ! function_exists( 'is_plugin_active' ) ) {
225
+ require_once ABSPATH . '/wp-admin/includes/plugin.php';
226
+ }
227
+
228
+ $plugin_data = get_plugin_data( __FILE__ );
229
+ $plugin_version = $plugin_data['Version'];
230
+
231
+ // Free Version Plugin version!
232
+ if ( ! defined( 'FEED_THEM_SOCIAL_VERSION' ) ) {
233
+ define( 'FEED_THEM_SOCIAL_VERSION', $plugin_version );
234
+ }
235
+
236
+ // Plugin Folder Path!
237
+ if ( ! defined( 'FEED_THEM_SOCIAL_PLUGIN_PATH' ) ) {
238
+ define( 'FEED_THEM_SOCIAL_PLUGIN_PATH', plugins_url() );
239
+ }
240
+ // Plugin Directoy Path!
241
+ if ( ! defined( 'FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR' ) ) {
242
+ define( 'FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR', plugin_dir_path( __FILE__ ) );
243
+ }
244
+
245
+ if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
246
+ // Plugin Directoy Path!
247
+ if ( ! defined( 'FEED_THEM_SOCIAL_PREMIUM_PLUGIN_FOLDER_DIR' ) ) {
248
+ define( 'FEED_THEM_SOCIAL_PREMIUM_PLUGIN_FOLDER_DIR', WP_PLUGIN_DIR . '/feed-them-premium/feed-them-premium.php' );
249
+ }
250
+ }
251
+ // Define constants!
252
+ if ( ! defined( 'MY_TEXTDOMAIN' ) ) {
253
+ define( 'MY_TEXTDOMAIN', 'feed-them-social' );
254
+ }
255
+ }
256
+
257
+ /**
258
+ * Includes Files
259
+ *
260
+ * Include files needed for Feed Them Social
261
+ *
262
+ * @since 1.0.0
263
+ */
264
+ private function includes() {
265
+
266
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'includes/error-handler.php';
267
+
268
+ // Core classes!
269
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'includes/feed-them-functions.php';
270
+ $load_fts = new feedthemsocial\feed_them_social_functions();
271
+ $load_fts->init();
272
+
273
+ // Admin Pages!
274
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-system-info-page.php';
275
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-settings-page-options.php';
276
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-settings-page.php';
277
+
278
+ // Feed Option Pages!
279
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-facebook-options-page.php';
280
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-twitter-options-page.php';
281
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-instagram-options-page.php';
282
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-pinterest-options-page.php';
283
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'admin/class-fts-youtube-options-page.php';
284
+
285
+ // Updater Classes!
286
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'updater/updater-license-page.php';
287
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'updater/updater-check-class.php';
288
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'updater/updater-check-init.php';
289
+
290
+ // Feed Classes!
291
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/facebook/class-fts-facebook-feed.php';
292
+ include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/facebook/class-fts-facebook-feed-post-types.php';
293
+ $load_fb_fts = 'feedthemsocial\FTS_Facebook_Feed';
294
+ new $load_fb_fts();
295
+ include_once FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/twitter/class-fts-twitter-feed.php';
296
+ $load_tw_fts = 'feedthemsocial\FTS_Twitter_Feed';
297
+ new $load_tw_fts();
298
+ include_once FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/instagram/class-fts-instagram-feed.php';
299
+ include_once FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/pinterest/class-fts-pinterest-feed.php';
300
+
301
+ include_once FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'feeds/youtube/class-youtube-feed-free.php';
302
 
303
 
304
  include FEED_THEM_SOCIAL_PLUGIN_FOLDER_DIR . 'includes/trim-words.php';
305
+ }
306
+
307
+ /**
308
+ * FTS Action Init
309
+ *
310
+ * Loads language files
311
+ *
312
+ * @since 1.0.0
313
+ */
314
+ public function fts_action_init() {
315
+ // Localization!
316
+ load_plugin_textdomain( 'feed-them-social', false, basename( dirname( __FILE__ ) ) . '/languages' );
317
+ }
318
+
319
+ /**
320
+ * FTS Required php Check
321
+ *
322
+ * Are they running proper PHP version
323
+ *
324
+ * @since 1.0.0
325
+ */
326
+ public function fts_required_php_check1() {
327
+ echo '<div class="error"><p>';
328
+ echo sprintf(
329
+ esc_html( '%1$s Feed Them Social Warning:%2$s Your php version is %1$s%3$s%2$s. You need to be running at least %1$s5.3%2$s or greater to use this plugin. Please upgrade the php by contacting your host provider. Some host providers will allow you to change this yourself in the hosting control panel too. %4$s If you are hosting with BlueHost or Godaddy and the php version above is saying you are running %1$s5.2.17%2$s but you are really running something higher please %5$sclick here for the fix%6$s. If you cannot get it to work using the method described in the link please contact your host provider and explain the problem so they can fix it.', 'feed-them-social' ),
330
+ '<strong>',
331
+ '</strong>',
332
+ phpversion(),
333
+ '<br/><br/>',
334
+ '<a href="' . esc_url( 'https://wordpress.org/support/topic/php-version-difference-after-changing-it-at-bluehost-php-config?replies=4' ) . '" target="_blank">',
335
+ '</a>'
336
+ );
337
+ echo '</p></div>';
338
+ }
339
+
340
+ /**
341
+ * FTS Plugin Actions
342
+ *
343
+ * Loads links in the Plugins page in WordPress Dashboard
344
+ *
345
+ * @param array $actions actions.
346
+ * @param string $plugin_file path to file.
347
+ * @param string $plugin_data plugin info.
348
+ * @param string $context the context.
349
+ * @return mixed
350
+ * @since 1.0.0
351
+ */
352
+ public function fts_free_plugin_actions( $actions, $plugin_file, $plugin_data, $context ) {
353
+ array_unshift(
354
+ $actions,
355
+ '<a href="admin.php?page=feed-them-settings-page">' . esc_html( 'Settings', 'feed-them-social' ) . '</a> | <a href="' . esc_url( 'https://www.slickremix.com/support/', 'feed-them-social' ) . '">' . esc_html( 'Support' ) . '</a>'
356
+ );
357
+ return $actions;
358
+ }
359
+
360
+ /**
361
+ * FTS Leave Feedback Link
362
+ *
363
+ * Link to add feedback for plugin
364
+ *
365
+ * @param array $links links to check.
366
+ * @param string $file path to plugin main file.
367
+ * @return mixed
368
+ * @since 1.0.0
369
+ */
370
+ public function fts_leave_feedback_link( $links, $file ) {
371
+ if ( plugin_basename( __FILE__ ) === $file ) {
372
+ $links['feedback'] = '<a href="' . esc_url( 'https://wordpress.org/support/view/plugin-reviews/feed-them-social', 'feed-them-social' ) . '" target="_blank">' . esc_html( 'Rate Plugin', 'feed-them-social' ) . '</a>';
373
+ }
374
+ return $links;
375
+ }
376
+
377
+ /**
378
+ * FTS Load Plugin
379
+ *
380
+ * Load plugin options on activation check
381
+ *
382
+ * @since 1.0.0
383
+ */
384
+ public function feed_them_social_load_plugin() {
385
+
386
+ if ( is_admin() && 'feed-them-social' === get_option( 'Feed_Them_Social_Activated_Plugin' ) ) {
387
+
388
+ // The Options list!
389
+ $activation_options = array(
390
+ 'fts-date-and-time-format' => 'one-day-ago',
391
+ 'fts_clear_cache_developer_mode' => '86400',
392
+ );
393
+
394
+ foreach ( $activation_options as $option_key => $option_value ) {
395
+ // We don't use update_option because we only want this to run for options that have not already been set by the user!
396
+ add_option( $option_key, $option_value );
397
+ }
398
+ }
399
+ }
400
+
401
+ /**
402
+ * FTS Review Check
403
+ *
404
+ * Checks $_GET to see if the nag variable is set and what it's value is
405
+ *
406
+ * @since 2.4.5
407
+ */
408
+ public function fts_check_nag_get() {
409
+ $fts_nag_nonce = wp_create_nonce( 'fts-nag-nonce' );
410
+
411
+ global $current_user;
412
+ $user_id = $current_user->ID;
413
+ // Used for testing: delete_user_meta( $user_id, 'fts_slick_ignore_rating_notice' );
414
+ if ( wp_verify_nonce( $fts_nag_nonce, 'fts-nag-nonce' ) ) {
415
+
416
+ $transient = 'rating_fts_slick_notice_waiting';
417
+ $option = 'rating_fts_slick_notice';
418
+ $nag = 'rating_fts_slick_ignore_notice_nag';
419
+
420
+ // Used for testing: echo isset( $_GET[ $nag ] ) ? $_GET[ $nag ] : 'no set nag';.
421
+ if ( isset( $_GET[ $nag ] ) && '1' === $_GET[ $nag ] && ! get_user_meta( $user_id, 'fts_slick_ignore_rating_notice' ) ) {
422
+
423
+ update_option( $option, 'dismissed' );
424
+ update_user_meta( $user_id, 'fts_slick_ignore_rating_notice', '1' );
425
+ } elseif ( isset( $_GET[ $nag ] ) && 'later' === $_GET[ $nag ] ) {
426
+ $time = 2 * WEEK_IN_SECONDS;
427
+ // Used for testin: echo $time;.
428
+ set_transient( $transient, 'fts-review-waiting', $time );
429
+ update_option( $option, 'pending' );
430
+ }
431
+ // Used for testin: echo 'no hit';.
432
+ return;
433
+ }
434
+ }
435
+
436
+ /**
437
+ * FTS Set Review Transient
438
+ *
439
+ * Set a transient if the notice has not been dismissed or has not been set yet.
440
+ *
441
+ * @since 2.4.5
442
+ */
443
+ public function fts_maybe_set_transient() {
444
+
445
+ $fts_set_transient_nonce = wp_create_nonce( 'fts-set-transient-nonce' );
446
+
447
+ if ( wp_verify_nonce( $fts_set_transient_nonce, 'fts-set-transient-nonce' ) ) {
448
+ // Variables to define specific terms!
449
+ $transient = 'rating_fts_slick_notice_waiting';
450
+ $option = 'rating_fts_slick_notice';
451
+
452
+ $fts_rating_notice_waiting = get_transient( $transient );
453
+ $notice_status = get_option( $option, false );
454
+
455
+ global $current_user;
456
+ $user_id = $current_user->ID;
457
+
458
+ if ( ! $fts_rating_notice_waiting && ! ( 'dismissed' === $notice_status || 'pending' === $notice_status ) && ! get_user_meta( $user_id, 'fts_slick_ignore_rating_notice' ) ) {
459
+ $time = 2 * WEEK_IN_SECONDS;
460
+ set_transient( $transient, 'fts-review-waiting', $time );
461
+ update_option( $option, 'pending' );
462
+ // Used for testing: print 'waiting';.
463
+ }
464
+ // Used for testing:
465
  // print get_transient( $transient );
466
+ // Used for testing: print ' & ';
467
+ // Used for testing: print $notice_status;
468
+ // Used for testing:
469
  // update_option( $option, '' );
470
+ // Used for testing:
471
  // set_transient( $transient, '', '' );
472
+ // Used for testing: echo 'no hit2';.
473
+ return;
474
+ }
475
+ }
476
+
477
+ /**
478
+ * FTS Ratings Notice
479
+ *
480
+ * Generates the html for the admin notice
481
+ *
482
+ * @since 2.4.5
483
+ */
484
+ public function fts_rating_notice_html() {
485
+
486
+ // Only show to admins!
487
+ if ( current_user_can( 'manage_options' ) ) {
488
+
489
+ global $current_user;
490
+ $user_id = $current_user->ID;
491
+
492
+ // Used for testing: print_r( get_user_meta( $user_id, 'fts_slick_ignore_rating_notice' ) );
493
+ // Used for testing: $all_meta_for_user = get_user_meta( $user_id );
494
+ // Used for testing: print_r( $all_meta_for_user );.
495
+ /* Has the user already clicked to ignore the message? */
496
+ if ( ! get_user_meta( $user_id, 'fts_slick_ignore_rating_notice' ) && ! isset( $_GET['rating_fts_slick_ignore_notice_nag'] ) ) {
497
+
498
+ ?>
499
+ <div class="fts_notice fts_review_notice">
500
+ <img src="<?php echo esc_url( plugins_url( 'feed-them-social/admin/images/feed-them-social-logo.png' ) ); ?>" alt="Feed Them Social">
501
+ <div class="fts-notice-text">
502
+ <p><?php echo esc_html( 'It\'s great to see that you\'ve been using our Feed Them Social plugin for a while now. Hopefully you\'re happy with it! If so, would you consider leaving a positive review? It really helps support the plugin and helps others discover it too!', 'feed-them-social' ); ?></p>
503
+ <p class="fts-links">
504
+ <a class="fts_notice_dismiss" href="<?php echo esc_url( 'https://wordpress.org/support/plugin/feed-them-social/reviews/#new-post' ); ?>" target="_blank"><?php echo esc_html( 'Sure, I\'d love to', 'feed-them-social' ); ?></a>
505
+ <a class="fts_notice_dismiss" href="<?php echo esc_url( add_query_arg( 'rating_fts_slick_ignore_notice_nag', '1' ) ); ?>"><?php echo esc_html( 'I\'ve already given a review', 'feed-them-social' ); ?></a>
506
+ <a class="fts_notice_dismiss" href="<?php echo esc_url( add_query_arg( 'rating_fts_slick_ignore_notice_nag', 'later' ) ); ?>"><?php echo esc_html( 'Ask me later', 'feed-them-social' ); ?></a>
507
+ <a class="fts_notice_dismiss" href="<?php echo esc_url( 'https://wordpress.org/support/plugin/feed-them-social/reviews/#new-post' ); ?>" target="_blank"><?php echo esc_html( 'Not working, I need support', 'feed-them-social' ); ?></a>
508
+ <a class="fts_notice_dismiss" href="<?php echo esc_url( add_query_arg( 'rating_fts_slick_ignore_notice_nag', '1' ) ); ?>"><?php echo esc_html( 'No thanks', 'feed-them-social' ); ?></a>
509
+ </p>
510
+ </div>
511
+ </div>
512
+ <?php
513
+ }
514
+ }
515
+ }
516
  }
517
 
518
  /**
525
  */
526
  function feed_them_social() {
527
 
528
+ return Feed_Them_Social::instance();
529
  }
530
 
531
  // Initiate 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--thumbs-up"],.fts-jal-fb-see-more [class*=" icon--file"],.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;filter:alpha(opacity=60);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:20px 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:0px;}
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}
feeds/facebook/class-fts-facebook-feed.php CHANGED
@@ -113,8 +113,7 @@ class FTS_Facebook_Feed extends feed_them_social_functions {
113
  'show_media' => '',
114
  'show_date' => '',
115
  'show_name' => '',
116
- // 'access_token' => '',
117
-
118
  ),
119
  $atts
120
  );
@@ -140,8 +139,7 @@ class FTS_Facebook_Feed extends feed_them_social_functions {
140
  'image_position_lr' => '',
141
  'image_position_top' => '',
142
  'hide_comments_popup' => '',
143
- // 'access_token' => '',
144
-
145
  ),
146
  $atts
147
  );
@@ -164,12 +162,12 @@ class FTS_Facebook_Feed extends feed_them_social_functions {
164
  }
165
 
166
  // Get Access Token.
167
- // $access_token = isset( $fb_shortcode['access_token'] ) ? $fb_shortcode['access_token'] : '';
168
- // if ( ! empty( $access_token ) ) {
169
- // $access_token = $fb_shortcode['access_token'];
170
- // } else {
171
  $access_token = $this->get_access_token();
172
- // }
173
 
174
  // UserName?.
175
  if ( ! $fb_shortcode['id'] ) {
@@ -319,15 +317,12 @@ class FTS_Facebook_Feed extends feed_them_social_functions {
319
 
320
  $feed_data = json_decode( $response['feed_data'] );
321
 
322
- $feed_data = (object) $feed_data;
323
- // Add Feed Type to post array.
324
-
325
  // SHOW THE REVIEWS FEED PRINT_R
326
  // echo '<pre>';
327
  // print_r($feed_data );
328
  // echo '</pre>';
329
-
330
-
331
  if ( 'yes' === $fb_shortcode['remove_reviews_no_description'] ) {
332
  // $no_description_count2 = 0;.
333
  foreach ( $feed_data->data as $k => $v ) {
@@ -344,22 +339,20 @@ class FTS_Facebook_Feed extends feed_them_social_functions {
344
  // echo '<pre>';
345
  // print_r($ratings_data );
346
  // echo '</pre>';.
 
 
347
 
348
- // Add fts_profile_pic_url to the array so we can show profile photos for reviews and comments in popup
349
- foreach ( $feed_data->data as $post_array ) {
350
-
351
- $the_image = 'https://graph.facebook.com/'.$post_array->reviewer->id.'/picture?redirect=false&access_token='.$biz_access_token.'';
352
-
353
- $profile_pic_response = wp_remote_get($the_image );
354
- $profile_pic_data = wp_remote_retrieve_body( $profile_pic_response );
355
- $profile_pic_output = json_decode( $profile_pic_data );
356
 
357
- // echo '<pre>';
358
- // print_r($profile_pic_output->data->url);
359
- // echo '</pre>';
360
 
361
- $post_array->fts_profile_pic_url = $profile_pic_output->data->url;
362
- }
 
 
 
363
  }
364
 
365
  if ( is_plugin_active( 'feed-them-social-combined-streams/feed-them-social-combined-streams.php' ) ) {
@@ -386,7 +379,6 @@ class FTS_Facebook_Feed extends feed_them_social_functions {
386
  // echo '<pre>';
387
  // print_r($feed_data );
388
  // echo '</pre>';
389
-
390
  // If No Response or Error then return.
391
  if ( is_array( $response ) && isset( $response[0] ) && isset( $response[1] ) && false === $response[0] ) {
392
  return $response[1];
@@ -643,7 +635,7 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
643
  // Post Information
644
  // *********************
645
  $fb_load_more_text = get_option( 'fb_load_more_text' ) ? get_option( 'fb_load_more_text' ) : esc_html( 'Load More', 'feed-them-social' );
646
- $response_post_array = $this->get_post_info( $feed_data, $fb_shortcode, $access_token, $language );
647
 
648
  // Single event info call.
649
  if ( 'events' === $fb_shortcode['type'] ) {
@@ -653,9 +645,9 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
653
  $set_zero = 0;
654
 
655
  // echo '<br/><br/>feed array<br/><br/>';.
656
- // echo '<pre>';
657
- // print_r($feed_data );
658
- // echo '</pre>';
659
  // THE MAIN FEED
660
  // LOOP to fix Post count!
661
  foreach ( $feed_data->data as $k => $v ) {
@@ -957,7 +949,7 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
957
  * @since 1.9.6
958
  */
959
  public function fts_facebook_post_desc( $fb_description, $fb_shortcode, $fb_type, $fb_post_id = null, $fb_by = null ) {
960
- $trunacate_words = new \ FeedThemSocialTruncateHTML();
961
  switch ( $fb_type ) {
962
  case 'video':
963
  $fb_description = $this->fts_facebook_tag_filter( $fb_description );
@@ -1170,7 +1162,7 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1170
  * @since 1.9.6
1171
  */
1172
  public function fts_facebook_post_cap( $fb_caption, $fb_shortcode, $fb_type, $fb_post_id = null ) {
1173
- $trunacate_words = new \ FeedThemSocialTruncateHTML();
1174
  switch ( $fb_type ) {
1175
  case 'video':
1176
  $fb_caption = $this->fts_facebook_tag_filter( str_replace( 'www.', '', $fb_caption ) );
@@ -1609,6 +1601,7 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1609
  * @param string $access_token The Access Token.
1610
  * @param string $language Language.
1611
  * @return array|mixed
 
1612
  * @since 1.9.6
1613
  */
1614
  public function get_facebook_feed_response( $fb_shortcode, $fb_cache_name, $access_token, $language ) {
@@ -1626,9 +1619,9 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1626
  if ( 'page' === $fb_shortcode['type'] && 'page_only' === $fb_shortcode['posts_displayed'] ) {
1627
  $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=id,name,description&access_token=' . $access_token . $language . '' );
1628
 
1629
- if(isset($_REQUEST['next_url'])){
1630
- $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token='.get_option('fts_facebook_custom_api_token'), $_REQUEST['next_url'] );
1631
- }
1632
 
1633
  if ( ! $fts_count_ids >= 1 ) {
1634
  // We cannot add sanitize_text_field here on the $_REQUEST['next_url'] otherwise it will fail to load the contents from the facebook API.
@@ -1640,9 +1633,9 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1640
  // Albums.
1641
  'albums' === $fb_shortcode['type'] ) {
1642
  $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=id,name,description,link&access_token=' . $access_token . $language . '' );
1643
- if(isset($_REQUEST['next_url'])){
1644
- $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token='.get_option('fts_facebook_custom_api_token'), $_REQUEST['next_url'] );
1645
- }
1646
  // Check If Ajax next URL needs to be used.
1647
  if ( ! $fts_count_ids >= 1 ) {
1648
  $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 . '' );
@@ -1655,9 +1648,9 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1655
  // Album Photos.
1656
  'album_photos' === $fb_shortcode['type'] ) {
1657
  $mulit_data = array( 'page_data' => 'https://graph.facebook.com/' . $fb_shortcode['id'] . '?fields=id,name,description&access_token=' . $access_token . $language . '' );
1658
- if(isset($_REQUEST['next_url'])){
1659
- $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token='.get_option('fts_facebook_custom_api_token'), $_REQUEST['next_url'] );
1660
- }
1661
  // Check If Ajax next URL needs to be used
1662
  // 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.
1663
  if ( isset( $fb_shortcode['video_album'] ) && 'yes' === $fb_shortcode['video_album'] ) {
@@ -1688,7 +1681,6 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1688
 
1689
  $mulit_data['ratings_data'] = esc_url_raw( 'https://graph.facebook.com/' . $fb_shortcode['id'] . '/?fields=overall_star_rating,rating_count&access_token=' . $access_token . '' );
1690
 
1691
-
1692
  } else {
1693
  return 'Please Purchase and Activate the Feed Them Social Reviews plugin.';
1694
  exit;
@@ -1711,12 +1703,38 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1711
  $fts_error_check = new fts_error_handler();
1712
  $fts_error_check_complete = $fts_error_check->facebook_error_check( $fb_shortcode, $feed_data );
1713
  if ( is_array( $fts_error_check_complete ) && true === $fts_error_check_complete[0] ) {
1714
- return array( false, $fts_error_check_complete[1] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1715
  }
1716
  }
1717
 
1718
  // Make sure it's not ajaxing.
1719
- if ( ! isset( $_GET['load_more_ajaxing'] ) && ! empty( $response['feed_data'] ) ) {
1720
  // Create Cache.
1721
  $this->fts_create_feed_cache( $fb_cache_name, $response );
1722
  }
@@ -1768,7 +1786,7 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1768
  * @return array|mixed
1769
  * @since 1.9.6
1770
  */
1771
- public function get_post_info( $feed_data, $fb_shortcode, $access_token, $language ) {
1772
  $developer_mode = get_option( 'fts_clear_cache_developer_mode' );
1773
 
1774
  if ( 'album_photos' === $fb_shortcode['type'] ) {
@@ -1778,6 +1796,7 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1778
  }
1779
  if ( false !== $this->fts_check_feed_cache_exists( $fb_post_data_cache ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
1780
  $response_post_array = $this->fts_get_feed_cache( $fb_post_data_cache );
 
1781
  } else {
1782
  // Build the big post counter.
1783
  $fb_post_array = array();
@@ -1821,6 +1840,18 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1821
  $set_zero++;
1822
  }
1823
 
 
 
 
 
 
 
 
 
 
 
 
 
1824
  // Response.
1825
  $response_post_array = $this->fts_get_feed_json( $fb_post_array );
1826
  // Make sure it's not ajaxing.
@@ -1961,8 +1992,8 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
1961
  /**
1962
  * FTS Custom Trim Words
1963
  *
1964
- * 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
1965
- *
1966
  * @param string $text The description text.
1967
  * @param int $num_words Number of words you want to be showm.
1968
  * @param string $more The ...
@@ -2063,15 +2094,15 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
2063
  $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' );
2064
 
2065
  // Load More BUTTON Start.
2066
- $next_url = isset( $feed_data->paging->next ) ? $feed_data->paging->next : '';
2067
 
2068
  $posts = isset( $fb_shortcode['posts'] ) ? $fb_shortcode['posts'] : '';
2069
  $loadmore_count = isset( $fb_shortcode['loadmore_count'] ) && '' !== $fb_shortcode['loadmore_count'] ? $fb_shortcode['loadmore_count'] : '';
2070
  // 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.
2071
  $_REQUEST['next_url'] = '' !== $loadmore_count ? str_replace( "limit=$posts", "limit=$loadmore_count", $next_url ) : $next_url;
2072
 
2073
- $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' );
2074
- $_REQUEST['next_url'] = str_replace( $access_token, "access_token=XXX", $next_url );
2075
 
2076
  echo '<script>';
2077
  echo 'var nextURL_' . esc_js( $_REQUEST['fts_dynamic_name'] ) . '= "' . esc_url_raw( $_REQUEST['next_url'] ) . '";';
@@ -2217,4 +2248,4 @@ style="margin:' . ( isset( $fb_shortcode['slider_margin'] ) && '' !== $fb_shortc
2217
 
2218
  return $random_string;
2219
  }
2220
- }//end class
113
  'show_media' => '',
114
  'show_date' => '',
115
  'show_name' => '',
116
+ // 'access_token' => '',
 
117
  ),
118
  $atts
119
  );
139
  'image_position_lr' => '',
140
  'image_position_top' => '',
141
  'hide_comments_popup' => '',
142
+ 'access_token' => '',
 
143
  ),
144
  $atts
145
  );
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'] ) {
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 ) {
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' ) ) {
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];
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'] ) {
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 ) {
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 );
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 ) );
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 ) {
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.
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 . '' );
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'] ) {
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;
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
  }
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'] ) {
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();
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.
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 ...
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'] ) . '";';
2248
 
2249
  return $random_string;
2250
  }
2251
+ }//end class
feeds/instagram/class-fts-instagram-feed.php CHANGED
@@ -10,974 +10,888 @@
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
- $instagram_likes = isset( $post_data->likes->count ) ? $post_data->likes->count : '';
92
- // here we add a , for all numbers below 9,999.
93
- if ( isset( $instagram_likes ) && $instagram_likes <= 9999 ) {
94
- $instagram_likes = number_format( $instagram_likes );
95
- }
96
- // here we convert the number for the like count like 1,200,000 to 1.2m if the number goes into the millions.
97
- if ( isset( $instagram_likes ) && $instagram_likes >= 1000000 ) {
98
- $instagram_likes = round( ( $instagram_likes / 1000000 ), 1 ) . 'm';
99
- }
100
- // here we convert the number for the like count like 10,500 to 10.5k if the number goes in the 10 thousands.
101
- if ( isset( $instagram_likes ) && $instagram_likes >= 10000 ) {
102
- $instagram_likes = round( ( $instagram_likes / 1000 ), 1 ) . 'k';
103
- }
104
-
105
- return $instagram_likes;
106
- }
107
-
108
- /**
109
- * FTS Instagram Comments Count
110
- *
111
- * Convert the likes count to a usable number.
112
- *
113
- * @param string $post_data Post data.
114
- * @return string
115
- * @since 1.9.6
116
- */
117
- public function fts_instagram_comments_count( $post_data ) {
118
- $instagram_comments = isset( $post_data->comments->count ) ? $post_data->comments->count : '';
119
- // here we add a , for all numbers below 9,999.
120
- if ( isset( $instagram_comments ) && $instagram_comments <= 9999 ) {
121
- $instagram_comments = number_format( $instagram_comments );
122
- }
123
- // here we convert the number for the comment count like 1,200,000 to 1.2m if the number goes into the millions.
124
- if ( isset( $instagram_comments ) && $instagram_comments >= 1000000 ) {
125
- $instagram_comments = round( ( $instagram_comments / 1000000 ), 1 ) . 'm';
126
- }
127
- // here we convert the number for the comment count like 10,500 to 10.5k if the number goes in the 10 thousands.
128
- if ( isset( $instagram_comments ) && $instagram_comments >= 10000 ) {
129
- $instagram_comments = round( ( $instagram_comments / 1000 ), 1 ) . 'k';
130
- }
131
-
132
- return $instagram_comments;
133
- }
134
-
135
- /**
136
- * FTS Instagram Likes Comments Wrap
137
- *
138
- * Output the likes and comments ul wrapper.
139
- *
140
- * @param string $post_data Post data.
141
- * @return string
142
- * @since 1.9.6
143
- */
144
- public function fts_instagram_likes_comments_wrap( $post_data ) {
145
- 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>';
146
- }
147
-
148
- /**
149
- * FTS Instagram Image Link
150
- *
151
- * Instagram image url from the API
152
- *
153
- * @param string $post_data Post data.
154
- * @return string
155
- * @since 1.9.6
156
- */
157
- public function fts_instagram_image_link( $post_data ) {
158
- $instagram_lowrez_url = isset( $post_data->images->standard_resolution->url ) ? $post_data->images->standard_resolution->url : '';
159
-
160
- return $instagram_lowrez_url;
161
- }
162
-
163
- /**
164
- * FTS Instagram Video Link
165
- *
166
- * Video Link from Instagram API
167
- *
168
- * @param string $post_data Post data.
169
- * @return string
170
- * @since 1.9.6
171
- */
172
- public function fts_instagram_video_link( $post_data ) {
173
- $instagram_video_standard_resolution = isset( $post_data->videos->standard_resolution->url ) ? $post_data->videos->standard_resolution->url : '';
174
-
175
- return $instagram_video_standard_resolution;
176
- }
177
-
178
- /**
179
- * FTS Instagram Description
180
- *
181
- * Description of image from Instagram API
182
- *
183
- * @param string $post_data Post data.
184
- * @return null|string|string[]
185
- * @since 1.9.6
186
- */
187
- public function fts_instagram_description( $post_data ) {
188
- $instagram_caption_a_title = isset( $post_data->caption->text ) ? $post_data->caption->text : '';
189
- $instagram_caption_a_title = htmlspecialchars( $instagram_caption_a_title );
190
- $instagram_caption = $this->convert_instagram_links( $instagram_caption_a_title );
191
-
192
- return $instagram_caption;
193
- }
194
-
195
- /**
196
- * FTS View on Instagram url
197
- *
198
- * Link to view the image on Instagram
199
- *
200
- * @param string $post_data Post data.
201
- * @return string
202
- * @since 1.9.6
203
- */
204
- public function fts_view_on_instagram_url( $post_data ) {
205
- $instagram_post_url = isset( $post_data->link ) ? $post_data->link : '';
206
-
207
- return $instagram_post_url;
208
- }
209
-
210
- /**
211
- * FTS View on Instagram Link
212
- *
213
- * Full a tag with Instagram url from the function above
214
- *
215
- * @param string $post_data Post data.
216
- * @return string
217
- * @since 1.9.6
218
- */
219
- public function fts_view_on_instagram_link( $post_data ) {
220
- 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>';
221
- }
222
-
223
- /**
224
- * FTS Instagram Popup Description
225
- *
226
- * Full description for our popup
227
- *
228
- * @param string $post_data Post data.
229
- * @return string
230
- * @since 1.9.6
231
- */
232
- public function fts_instagram_popup_description( $post_data ) {
233
- 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>';
234
- }
235
-
236
- /**
237
- * FTS Instagram Function
238
- *
239
- * Display the Instagram Feed.
240
- *
241
- * @param array $atts Attributes array.
242
- * @return mixed
243
- * @since 1.9.6
244
- */
245
- public function fts_instagram_func( $atts ) {
246
-
247
- $fts_instagram_feed_nonce = wp_create_nonce( 'fts-instagram-feed-page-nonce' );
248
-
249
- if ( wp_verify_nonce( $fts_instagram_feed_nonce, 'fts-instagram-feed-page-nonce' ) ) {
250
-
251
- include_once ABSPATH . 'wp-admin/includes/plugin.php';
252
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
253
- include WP_CONTENT_DIR . '/plugins/feed-them-premium/feeds/instagram/instagram-feed.php';
254
- // $popup variable comes from the premium version
255
- if ( isset( $popup ) && 'yes' === $popup ) {
256
- // it's ok if these styles & scripts load at the bottom of the page.
257
- $fts_fix_magnific = get_option( 'fts_fix_magnific' ) ? get_option( 'fts_fix_magnific' ) : '';
258
- if ( '1' !== $fts_fix_magnific ) {
259
- wp_enqueue_style( 'fts-popup', plugins_url( 'feed-them-social/feeds/css/magnific-popup.css' ), array(), FTS_CURRENT_VERSION, false );
260
- }
261
- wp_enqueue_script( 'fts-popup-js', plugins_url( 'feed-them-social/feeds/js/magnific-popup.js' ), array(), FTS_CURRENT_VERSION, false );
262
- }
263
- } else {
264
- extract(
265
- shortcode_atts(
266
- array(
267
- 'instagram_id' => '',
268
- 'type' => '',
269
- 'pics_count' => '',
270
- 'super_gallery' => '',
271
- 'image_size' => '',
272
- 'icon_size' => '',
273
- 'space_between_photos' => '',
274
- 'hide_date_likes_comments' => '',
275
- 'center_container' => '',
276
- 'height' => '',
277
- 'width' => '',
278
- // user profile options.
279
- 'profile_wrap' => '',
280
- 'profile_photo' => '',
281
- 'profile_stats' => '',
282
- 'profile_name' => '',
283
- 'profile_description' => '',
284
- 'columns' => '',
285
- 'force_columns' => '',
286
- // 'access_token' => '',
287
- ),
288
- $atts
289
- )
290
- );
291
- if ( null === $pics_count ) {
292
- $pics_count = '6';
293
- }
294
- }
295
- // Added new debug option SRL: 6/7/18.
296
- extract(
297
- shortcode_atts(
298
- array(
299
- 'debug' => '',
300
- 'debug_userinfo' => '',
301
- ),
302
- $atts
303
- )
304
- );
305
-
306
- if ( ! is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && $pics_count > '6' ) {
307
- $pics_count = '6';
308
- }
309
-
310
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
311
- $pics_count = $pics_count;
312
- } else {
313
- $pics_count = '10';
314
- }
315
-
316
- wp_enqueue_script( 'fts-global', plugins_url( 'feed-them-social/feeds/js/fts-global.js' ), array( 'jquery' ), FTS_CURRENT_VERSION, false );
317
- $instagram_data_array = array();
318
-
319
- $fts_instagram_access_token = get_option( 'fts_instagram_custom_api_token' );
320
- $fts_instagram_show_follow_btn = get_option( 'instagram_show_follow_btn' );
321
- $fts_instagram_show_follow_btn_where = get_option( 'instagram_show_follow_btn_where' );
322
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
323
- $instagram_load_more_text = get_option( 'instagram_load_more_text' ) ? get_option( 'instagram_load_more_text' ) : __( 'Load More', 'feed-them-social' );
324
- $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' );
325
- }
326
-
327
- // Make sure it's not ajaxing.
328
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
329
- // $type is the variable coming the shortcode.
330
- $_REQUEST['fts_dynamic_name'] = sanitize_key( $this->fts_rand_string( 10 ) . '_' . $type );
331
- // Create Dynamic Class Name.
332
- $fts_dynamic_class_name = '';
333
- if ( isset( $_REQUEST['fts_dynamic_name'] ) ) {
334
- $fts_dynamic_class_name = 'feed_dynamic_class' . sanitize_key( $_REQUEST['fts_dynamic_name'] );
335
- }
336
- }
337
-
338
- ob_start();
339
-
340
- // New method since Instagram API changes as of April 4th, 2018.
341
- // if ( '' === $access_token ) {
342
- $fts_instagram_access_token_final = $fts_instagram_access_token;
343
- // } else {
344
- // $fts_instagram_access_token_final = $access_token;
345
- // }
346
-
347
- if(isset($_REQUEST['next_url'])){
348
- $_REQUEST['next_url'] = str_replace( 'access_token=XXX', 'access_token='.get_option('fts_instagram_custom_api_token'), $_REQUEST['next_url'] );
349
- }
350
- // $instagram_id comes from our shortcode.
351
- // URL to get Feeds.
352
- if ( 'hashtag' === $type ) {
353
- $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;
354
- } elseif ( 'location' === $type ) {
355
- $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;
356
- } else {
357
- $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;
358
- }
359
-
360
- $instagram_data_array['user_info'] = 'https://api.instagram.com/v1/users/' . $instagram_id . '?access_token=' . $fts_instagram_access_token_final;
361
-
362
- $cache = 'instagram_cache_' . $instagram_id . '_num' . $pics_count . '';
363
-
364
- // First we make sure the feed is not cached already before trying to run the Instagram API.
365
- if ( false === $this->fts_check_feed_cache_exists( $cache ) ) {
366
- $response = $this->fts_get_feed_json( $instagram_data_array );
367
-
368
- // Error Check.
369
- $error_check = json_decode( $response['data'] );
370
-
371
- // $error_check_test = 'test error zzzz';.
372
- // || $error_check_test == 'test error';.
373
- if ( current_user_can( 'administrator' ) && 'true' === $debug ) {
374
- esc_html_e( 'Check if user exists in Instagram\'s API', 'feed-them-social' );
375
- echo '<br/><pre>';
376
- print_r( $error_check );
377
- echo '</pre>';
378
- }
379
- }
380
-
381
- // If the feed is cached then we run the cached array to display the feed.
382
- if ( false !== $this->fts_check_feed_cache_exists( $cache ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
383
- $response = $this->fts_get_feed_cache( $cache );
384
- $insta_data = json_decode( $response['data'] );
385
- $note = esc_html( 'Cached', 'feed-them-social' );
386
- } elseif ( isset( $error_check->error_message ) || isset( $error_check->meta->error_message ) || empty( $error_check ) ) {
387
- // If the Instagram API array returns any error messages we check for them here and return the corresponding error message!
388
- if ( current_user_can( 'administrator' ) ) {
389
-
390
- if ( isset( $error_check->error_message ) ) {
391
- $error = $error_check->error_message;
392
- } elseif ( isset( $error_check->meta->error_message ) ) {
393
- $error = $error_check->meta->error_message;
394
- } else {
395
- $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' );
396
- }
397
-
398
- return esc_html( 'Feed Them Social (Notice visible to Admin only). Instagram returned:', 'feed-them-social' ) . ' ' . $error;
399
- } else {
400
- return;
401
- }
402
- } else {
403
- $insta_data = json_decode( $response['data'] );
404
- // if Error DON'T Cache.
405
- if ( ! isset( $error_check->meta->error_message ) && ! isset( $_GET['load_more_ajaxing'] ) || ! isset( $error_check->error_message ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
406
- $this->fts_create_feed_cache( $cache, $response );
407
- $note = esc_html( 'Not Cached', 'feed-them-social' );
408
- }
409
- }
410
-
411
- $instagram_user_info = ! empty( $response['user_info'] ) ? json_decode( $response['user_info'] ) : '';
412
- // URL to get Feeds.
413
- if ( 'hashtag' !== $type && 'location' !== $type ) {
414
- $username = $instagram_user_info->data->username;
415
- $bio = $instagram_user_info->data->bio;
416
- $profile_picture = $instagram_user_info->data->profile_picture;
417
- $full_name = $instagram_user_info->data->full_name;
418
- $website = $instagram_user_info->data->website;
419
- }
420
-
421
- if ( current_user_can( 'administrator' ) && 'true' === $debug_userinfo ) {
422
- echo '<pre>';
423
- print_r( $instagram_user_info );
424
- echo '</pre>';
425
- }
426
-
427
- // ->pagination->next_url.
428
- if ( current_user_can( 'administrator' ) && 'true' === $debug ) {
429
- echo esc_html( $note ) . '<br/><pre>';
430
- print_r( $response );
431
- echo '</pre>';
432
- }
433
-
434
- // Make sure it's not ajaxing.
435
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
436
- // Social Button.
437
- if ( isset( $profile_picture ) && 'yes' === $profile_wrap ) { ?>
438
- <div class="fts-profile-wrap">
439
- <?php if ( isset( $profile_photo ) && 'yes' === $profile_photo ) { ?>
440
- <div class="fts-profile-pic">
441
- <a href="https://www.instagram.com/<?php echo esc_attr( $username ); ?>"><img
442
- src="<?php echo esc_url( $profile_picture ); ?>" title="<?php echo esc_attr( $username ); ?>"/></a>
443
- </div>
444
- <?php
445
  }
446
-
447
- if ( isset( $profile_name ) && 'yes' === $profile_name ) {
448
- ?>
449
- <div class="fts-profile-name-wrap">
450
-
451
- <div class="fts-isnta-full-name"><?php echo esc_html( $full_name ); ?></div>
452
- <?php
453
- if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
454
- echo '<div class="fts-follow-header-wrap">';
455
- echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
456
- echo '</div>';
457
- }
458
- ?>
459
- </div>
460
- <?php
 
 
 
 
 
 
 
 
 
461
  }
462
- // $profile stats comes from the shortcode
463
- if ( 'yes' === $profile_stats ) {
464
- // These need to be in this order to keep the different counts straight since I used either $instagram_likes or $instagram_comments throughout.
465
- $number_posted_pics = isset( $instagram_user_info->data->counts->media ) ? $instagram_user_info->data->counts->media : '';
466
- // here we add a , for all numbers below 9,999.
467
- if ( isset( $number_posted_pics ) && $number_posted_pics <= 9999 ) {
468
- $number_posted_pics = number_format( $number_posted_pics );
469
- }
470
- // here we convert the number for the like count like 1,200,000 to 1.2m if the number goes into the millions.
471
- if ( isset( $number_posted_pics ) && $number_posted_pics >= 1000000 ) {
472
- $number_posted_pics = round( ( $number_posted_pics / 1000000 ), 1 ) . 'm';
473
- }
474
- // here we convert the number for the like count like 10,500 to 10.5k if the number goes in the 10 thousands.
475
- if ( isset( $number_posted_pics ) && $number_posted_pics >= 10000 ) {
476
- $number_posted_pics = round( ( $number_posted_pics / 1000 ), 1 ) . 'k';
477
- }
478
-
479
- $number_followed_by = $instagram_user_info->data->counts->followed_by;
480
- // here we add a , for all numbers below 9,999.
481
- if ( isset( $number_followed_by ) && $number_followed_by <= 9999 ) {
482
- $number_followed_by = number_format( $number_followed_by );
483
- }
484
- // here we convert the number for the comment count like 1,200,000 to 1.2m if the number goes into the millions.
485
- if ( isset( $number_followed_by ) && $number_followed_by >= 1000000 ) {
486
- $number_followed_by = round( ( $number_followed_by / 1000000 ), 1 ) . 'm';
487
- }
488
- // here we convert the number for the comment count like 10,500 to 10.5k if the number goes in the 10 thousands.
489
- if ( isset( $number_followed_by ) && $number_followed_by >= 10000 ) {
490
- $number_followed_by = round( ( $number_followed_by / 1000 ), 1 ) . 'k';
491
- }
492
-
493
- $number_follows = $instagram_user_info->data->counts->follows;
494
- // here we add a , for all numbers below 9,999.
495
- if ( isset( $number_follows ) && $number_follows <= 9999 ) {
496
- $number_follows = number_format( $number_follows );
497
- }
498
- // here we convert the number for the comment count like 1,200,000 to 1.2m if the number goes into the millions.
499
- if ( isset( $number_follows ) && $number_follows >= 1000000 ) {
500
- $number_follows = round( ( $number_follows / 1000000 ), 1 ) . 'm';
501
- }
502
- // here we convert the number for the comment count like 10,500 to 10.5k if the number goes in the 10 thousands.
503
- if ( isset( $number_follows ) && $number_follows >= 10000 ) {
504
- $number_follows = round( ( $number_follows / 1000 ), 1 ) . 'k';
505
- }
506
- ?>
507
- <div class="fts-profile-stats">
508
- <div class="fts-insta-posts">
509
- <span><?php echo esc_html( $number_posted_pics ); ?></span> <?php echo esc_html( 'posts', 'feed-them-social' ); ?></div>
510
- <div class="fts-insta-followers">
511
- <span><?php echo esc_html( $number_followed_by ); ?></span> <?php echo esc_html( 'followers', 'feed-them-social' ); ?>
512
- </div>
513
- <div class="fts-insta-following">
514
- <span><?php echo esc_html( $number_follows ); ?></span> <?php echo esc_html( 'following', 'feed-them-social' ); ?></div>
515
- </div>
516
- <?php
517
  }
518
-
519
- if ( 'yes' === $profile_description ) {
520
- ?>
521
-
522
- <div class="fts-profile-description"><?php echo $this->convert_instagram_description_links( $bio ); ?>
523
- <a href="<?php echo esc_url( $website ); ?>"><?php echo esc_url( $website ); ?></a></div>
524
-
525
- <?php } ?>
526
-
527
- <div class="fts-clear"></div>
528
-
529
- </div>
530
- <?php
531
- } elseif ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
532
- echo '<div class="instagram-social-btn-top">';
533
- echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
534
- echo '</div>';
535
- }
536
-
537
- if ( isset( $scroll_more ) && 'autoscroll' === $scroll_more || ! empty( $height ) ) {
538
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
539
  <div class="fts-instagram-scrollable <?php echo esc_attr( $fts_dynamic_class_name ); ?>instagram" style="overflow:auto;
540
- <?php
541
- if ( '' !== $width ) {
542
- ?>
543
- max-width:
544
- <?php
545
- echo esc_attr( $width ) . ';';
546
- }
547
- if ( '' !== $height ) {
548
- ?>
549
- height:
550
- <?php
551
- echo esc_attr( $height );
552
- }
553
- ?>">
554
- <?php
555
- }
556
- if ( 'yes' === $super_gallery ) {
557
- $columns = isset( $columns ) ? $columns : '';
558
- $force_columns = isset( $force_columns ) ? $force_columns : '';
559
- ?>
560
- <div <?php if ( '' !== $width ) {
561
- ?>style="max-width: <?php echo esc_attr( $width ) . ';"';
562
- }
563
- ?>
564
- 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 );
565
- if ( isset( $popup ) && 'yes' === $popup ) {
566
- echo ' popup-gallery';
567
- }
568
- echo '">';
569
- } else {
570
- ?>
571
- <div
572
- <?php
573
- if ( '' !== $width ) {
574
- ?>
575
- style="max-width:
576
- <?php
577
- echo esc_attr( $width ) . '; margin:auto;" ';
578
- }
579
- ?>
580
- class="fts-instagram
581
- <?php
582
- if ( isset( $popup ) && 'yes' === $popup ) {
583
- echo 'popup-gallery ';
584
- }
585
- echo esc_attr( $fts_dynamic_class_name ) . '">';
586
- }
587
- $set_zero = 0;
588
- } // END Make sure it's not ajaxing
589
-
590
- if ( ! isset( $insta_data->data ) ) {
591
- if ( ! function_exists( 'curl_init' ) ) {
592
- 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>';
593
- } else {
594
- 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>';
595
- }
596
- }
597
- // echo '<pre>';.
598
- // print_r($insta_data);.
599
- // echo '</pre>';.
600
- foreach ( $insta_data->data as $post_data ) {
601
- if ( isset( $set_zero ) && $set_zero === $pics_count ) {
602
- break;
603
- }
604
-
605
- // Create Instagram Variables
606
- // tied to date function.
607
- $feed_type = 'instagram';
608
- $times = $post_data->created_time;
609
- // call our function to get the date.
610
- $instagram_date = $this->fts_custom_date( $times, $feed_type );
611
-
612
- if ( 'hashtag' === $type || 'location' === $type ) {
613
- $username = isset( $post_data->user->username ) ? $post_data->user->username : '';
614
- $profile_picture = isset( $post_data->user->profile_picture ) ? $post_data->user->profile_picture : '';
615
- $full_name = isset( $post_data->user->full_name ) ? $post_data->user->full_name : '';
616
- $instagram_username = $username;
617
- } else {
618
-
619
- $instagram_username = $instagram_user_info->data->username;
620
- }
621
-
622
- $instagram_caption_a_title = isset( $post_data->caption->text ) ? $post_data->caption->text : '';
623
- $instagram_caption_a_title = htmlspecialchars( $instagram_caption_a_title );
624
- $instagram_caption = $this->convert_instagram_links( $instagram_caption_a_title );
625
-
626
- $instagram_thumb_url = isset( $post_data->images->thumbnail->url ) ? $post_data->images->thumbnail->url : '';
627
- $instagram_lowrez_url = isset( $post_data->images->standard_resolution->url ) ? $post_data->images->standard_resolution->url : '';
628
- $instagram_video_standard_resolution = isset( $post_data->videos->standard_resolution->url ) ? $post_data->videos->standard_resolution->url : '';
629
-
630
- if ( isset( $_SERVER['HTTPS'] ) ) {
631
- $instagram_thumb_url = str_replace( 'http://', 'https://', $instagram_thumb_url );
632
- $instagram_lowrez_url = str_replace( 'http://', 'https://', $instagram_lowrez_url );
633
- }
634
-
635
- // Super Gallery If statement.
636
- if ( 'yes' === $super_gallery ) {
637
- ?>
638
- <div class='slicker-instagram-placeholder fts-instagram-wrapper' style='background-image:url(<?php echo esc_url( $this->fts_instagram_image_link( $post_data ) ); ?>);'>
639
- <?php
640
-
641
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup ) {
642
- ?>
643
- <div class="fts-instagram-popup-profile-wrap">
644
- <div class="fts-profile-pic">
645
- <a href="https://www.instagram.com/<?php echo esc_html( $username ); ?>">
646
- <?php
647
- if ( 'user' === $type ) {
648
- ?>
649
- <img src="<?php echo esc_url( $profile_picture ); ?>" title="<?php echo esc_attr( $username ); ?>"/>
650
- <?php
651
- } else {
652
- ?>
653
- <span class="fts-instagram-icon" style="height:40px; width:40px; line-height:40px; font-size:40px;"></span><?php } ?>
654
- </a>
655
- </div>
656
- <div class="fts-profile-name-wrap">
657
-
658
- <div class="fts-isnta-full-name">
659
- <a href="https://www.instagram.com/<?php esc_html( $username ); ?>" style="color: #000;">
660
- <?php
661
- if ( 'user' === $type ) {
662
- echo esc_html( $full_name );
663
- } else {
664
- echo esc_html( $username );
665
- }
666
- ?>
667
- </a>
668
- </div>
669
- <?php
670
- if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
671
- echo '<div class="fts-follow-header-wrap">';
672
- echo $this->social_follow_button( 'instagram', $instagram_username );
673
- echo '</div>';
674
- }
675
- ?>
676
- </div>
677
- </div>
678
- <?php
679
- // this is already escaping in the function, re escaping will cause errors.
680
- echo $this->fts_instagram_popup_description( $post_data );
681
- }
682
-
683
- ?>
684
- <a href='<?php
685
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup && ( 'image' === $post_data->type || 'carousel' === $post_data->type ) ) {
686
- print esc_url( $this->fts_instagram_image_link( $post_data ) );
687
- } elseif ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && 'yes' === $popup && 'video' === $post_data->type ) {
688
- print esc_url( $this->fts_instagram_video_link( $post_data ) );
689
- } else {
690
- print esc_url( $this->fts_view_on_instagram_url( $post_data ) );
691
- }
692
- ?>' title='<?php print esc_attr( $instagram_caption_a_title ); ?>' target="_blank" class='fts-instagram-link-target fts-slicker-backg <?php
693
- if ( 'video' === $post_data->type && isset( $popup ) && 'yes' === $popup ) {
694
- ?> fts-instagram-video-link <?php
695
- } else {
696
- ?> 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
697
- class="fts-instagram-icon"
698
- 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>
699
-
700
-
701
- <?php if ( 'no' === $hide_date_likes_comments ) { ?>
702
- <div class='slicker-date'>
703
- <div class="fts-insta-date-popup-grab"><?php echo esc_html( $instagram_date ); ?></div>
704
- </div>
705
- <?php } ?>
706
- <div class='slicker-instaG-backg-link'>
707
-
708
- <div class='slicker-instaG-photoshadow'></div>
709
- </div>
710
- <?php if ( 'no' === $hide_date_likes_comments ) { ?>
711
- <div class="fts-insta-likes-comments-grab-popup">
712
- <?php
713
-
714
- // this is already escaping in the function, re escaping will cause errors.
715
- echo $this->fts_share_option( $this->fts_view_on_instagram_url( $post_data ), $this->fts_instagram_description( $post_data ) );
716
-
717
- ?>
718
- <div class="fts-instagram-reply-wrap-left">
719
- <ul class='slicker-heart-comments-wrap'>
720
- <li class='slicker-instagram-image-likes'><?php echo esc_html( $this->fts_instagram_likes_count( $post_data ) ); ?> </li>
721
- <li class='slicker-instagram-image-comments'>
722
- <span class="fts-comment-instagram"></span> <?php echo esc_html( $this->fts_instagram_comments_count( $post_data ) ); ?>
723
- </li>
724
- </ul>
725
- </div>
726
- </div>
727
- <?php } ?>
728
- </div>
729
- <?php
730
- }
731
- else {
732
- // Classic Gallery If statement.
733
- ?>
734
- <div class='instagram-placeholder fts-instagram-wrapper' style='width:150px;'>
735
- <?php
736
- if ( isset( $popup ) && 'yes' === $popup ) {
737
- print '<div class="fts-backg"></div>';
738
- } else {
739
- ?>
740
- <a class='fts-backg' target='_blank' href='<?php echo esc_url( $this->fts_view_on_instagram_url( $post_data ) ); ?>'></a><?php }; ?>
741
- <div class='date slicker-date'>
742
- <div class="fts-insta-date-popup-grab"><?php echo esc_html( $instagram_date ); ?></div>
743
- </div>
744
-
745
-
746
- <?php if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup ) { ?>
747
-
748
-
749
- <div class="fts-instagram-popup-profile-wrap">
750
- <div class="fts-profile-pic">
751
- <a href="https://www.instagram.com/<?php echo esc_attr( $username ); ?>"><img
752
- src="<?php echo esc_attr( $profile_picture ); ?>" title="<?php echo esc_attr( $username ); ?>"/></a>
753
- </div>
754
-
755
- <div class="fts-profile-name-wrap">
756
-
757
- <div class="fts-isnta-full-name"><?php echo esc_attr( $full_name ); ?></div>
758
- <?php
759
- if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-above' === $fts_instagram_show_follow_btn_where ) {
760
- echo '<div class="fts-follow-header-wrap">';
761
- echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
762
- echo '</div>';
763
- }
764
- ?>
765
- </div>
766
- </div>
767
-
768
- <?php
769
- // caption for our popup.
770
- echo $this->fts_instagram_popup_description( $post_data );
771
- ?>
772
- <?php } ?>
773
-
774
- <a href="<?php
775
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup && ( 'image' === $post_data->type || 'carousel' === $post_data->type ) ) {
776
- echo esc_url( $this->fts_instagram_image_link( $post_data ) );
777
- } elseif ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && isset( $popup ) && 'yes' === $popup && 'video' === $post_data->type ) {
778
- echo esc_url( $this->fts_instagram_video_link( $post_data ) );
779
- } else {
780
- echo esc_url( $this->fts_view_on_instagram_url( $post_data ) );
781
- }
782
- ?>" class='fts-instagram-link-target instaG-backg-link <?php
783
- if ( 'video' === $post_data->type ) {
784
- ?>fts-instagram-video-link<?php
785
- } else {
786
- ?>
787
- fts-instagram-img-link<?php } ?>' target='_blank' title='<?php echo esc_attr( $instagram_caption_a_title ); ?>'>
788
- <img src="<?php echo esc_url( $instagram_thumb_url ); ?>" class="instagram-image"/>
789
- <div class='instaG-photoshadow'></div>
790
- </a>
791
- <div class="fts-insta-likes-comments-grab-popup">
792
- <?php echo $this->fts_instagram_likes_comments_wrap( $post_data ); ?>
793
- </div>
794
- </div>
795
- <?php
796
- }
797
- if ( isset( $set_zero ) ) {
798
- $set_zero++;
799
- }
800
- }
801
-
802
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && !empty( $scroll_more ) ) {
803
- // ******************
804
- // Load More BUTTON Start
805
- // ******************
806
- $next_url = isset( $insta_data->pagination->next_url ) ? $insta_data->pagination->next_url : '';
807
- // 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.
808
- $_REQUEST['next_url'] = ! empty( $loadmore_count ) ? str_replace( "count=$pics_count", "count=$loadmore_count", $next_url ) : $next_url;
809
-
810
- $access_token = 'access_token='.get_option( 'fts_instagram_custom_api_token' );
811
- $_REQUEST['next_url'] = str_replace( $access_token, "access_token=XXX", $next_url );
812
-
813
  ?>
814
- <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>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
815
  <?php
816
- // Make sure it's not ajaxing.
817
- if ( ! isset( $_GET['load_more_ajaxing'] ) && ! isset( $_REQUEST['fts_no_more_posts'] ) && ! empty( $loadmore ) ) {
818
- $fts_dynamic_name = sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) );
819
- $time = time();
820
- $nonce = wp_create_nonce( $time . 'load-more-nonce' );
821
  ?>
822
- <script>jQuery(document).ready(function () {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
823
  <?php
824
- // $scroll_more = load_more_posts_style shortcode att.
825
- if ( 'autoscroll' === $scroll_more ) { // this is where we do SCROLL function to LOADMORE if = autoscroll in shortcode.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
826
  ?>
827
- jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>instagram").bind("scroll", function () {
828
- if (jQuery(this).scrollTop() + jQuery(this).innerHeight() >= jQuery(this)[0].scrollHeight) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
829
  <?php
830
- } else { // this is where we do CLICK function to LOADMORE if = button in shortcode.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
831
  ?>
832
- jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").click(function () {
833
- <?php } ?>
834
- jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").addClass('fts-fb-spinner');
835
- var button = jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div>');
836
- console.log(button);
837
-
838
- var feed_name = "fts_instagram";
839
- var loadmore_count = "pics_count=<?php echo esc_js( $loadmore_count ); ?>";
840
- var feed_attributes = <?php echo wp_json_encode( $atts ); ?>;
841
- var yes_ajax = "yes";
842
- var fts_d_name = "<?php echo esc_js( $fts_dynamic_name ); ?>";
843
- var fts_security = "<?php echo esc_js( $nonce ); ?>";
844
- var fts_time = "<?php echo esc_js( $time ); ?>";
845
- jQuery.ajax({
846
- data: {
847
- action: "my_fts_fb_load_more",
848
- next_url: nextURL_<?php echo esc_js( $fts_dynamic_name ); ?>,
849
- fts_dynamic_name: fts_d_name,
850
- load_more_ajaxing: yes_ajax,
851
- fts_security: fts_security,
852
- fts_time: fts_time,
853
- feed_name: feed_name,
854
- loadmore_count: loadmore_count,
855
- feed_attributes: feed_attributes
856
- },
857
- type: 'GET',
858
- url: "<?php echo esc_js( admin_url( 'admin-ajax.php' ) ); ?>",
859
- success: function (data) {
860
- console.log('Well Done and got this from sever: ' + data);
861
- jQuery('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').append(data).filter('.<?php echo esc_js( $fts_dynamic_class_name ); ?>').html();
862
- 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') {
863
- 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>');
864
- jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').removeAttr('id');
865
- jQuery(".<?php echo esc_js( $fts_dynamic_class_name ); ?>instagram").unbind('scroll');
866
- }
867
- jQuery('#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>').html('<?php echo esc_js( $instagram_load_more_text ); ?>');
868
- jQuery("#loadMore_<?php echo esc_js( $fts_dynamic_name ); ?>").removeClass('fts-fb-spinner');
869
- jQuery.fn.ftsShare(); // Reload the share each funcion otherwise you can't open share option
870
- jQuery.fn.slickInstagramPopUpFunction(); // Reload this function again otherwise the popup won't work correctly for the newly loaded items
871
- if (typeof outputSRmargin === "function") {
872
- outputSRmargin(document.querySelector('#margin').value)
873
- } // Reload our margin for the demo
874
- slickremixImageResizing(); // Reload our imagesizing function so the images show up proper
875
- }
876
- }); // end of ajax()
877
- return false;
878
- <?php
879
- // string $scroll_more is at top of this js script. exception for scroll option closing tag.
880
- if ( 'autoscroll' === $scroll_more ) {
881
- ?>
882
- }; // end of scroll ajax load
883
  <?php } ?>
884
- }
885
- ); // end of document.ready
886
- }); // end of form.submit </script>
887
- <?php
888
- }//End Check.
889
- }
890
- // main closing div not included in ajax check so we can close the wrap at all times.
891
- print '</div>'; // closing main div for photos and scroll wrap.
892
-
893
- // Make sure it's not ajaxing.
894
- if ( is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
895
- $fts_dynamic_name = sanitize_key( $_REQUEST['fts_dynamic_name'] );
896
- // this div returns outputs our ajax request via jquery append html from above.
897
- print '<div class="fts-clear"></div>';
898
- print '<div id="output_' . esc_attr( $fts_dynamic_name ) . '"></div>';
899
- if ( ! empty ( $scroll_more ) && 'autoscroll' === $scroll_more ) {
900
- print '<div id="loadMore_' . esc_attr( $fts_dynamic_name ) . '" class="fts-fb-load-more fts-fb-autoscroll-loader">Instagram</div>';
901
- }
902
- }
903
- ?>
904
- <?php
905
- // only show this script if the height option is set to a number.
906
- if ( ! empty ( $height ) && 'auto' !== $height ) {
907
- ?>
908
- <script>
909
- // this makes it so the page does not scroll if you reach the end of scroll bar or go back to top
910
- jQuery.fn.isolatedScrollFacebookFTS = function () {
911
- this.bind('mousewheel DOMMouseScroll', function (e) {
912
- var delta = e.wheelDelta || (e.originalEvent && e.originalEvent.wheelDelta) || -e.detail,
913
- bottomOverflow = this.scrollTop + jQuery(this).outerHeight() - this.scrollHeight >= 0,
914
- topOverflow = this.scrollTop <= 0;
915
- if ((delta < 0 && bottomOverflow) || (delta > 0 && topOverflow)) {
916
- e.preventDefault();
917
- }
918
- });
919
- return this;
920
- };
921
- jQuery('.fts-instagram-scrollable').isolatedScrollFacebookFTS();
922
- </script>
923
- <?php } //end $height !== 'auto' && empty($height) == NULL. ?>
924
- <?php
925
- if ( ! empty( $scroll_more ) && 'autoscroll' === $scroll_more || !empty( $height ) ) {
926
- print '</div>'; // closing height div for scrollable feeds.
927
- }
928
-
929
- if( is_plugin_active( 'feed-them-premium/feed-them-premium.php' )) {
930
- // Make sure it's not ajaxing.
931
- if ( !isset( $_GET['load_more_ajaxing'] ) ) {
932
- print '<div class="fts-clear"></div>';
933
- if ( !empty ( $scroll_more ) && 'button' === $scroll_more ) {
934
-
935
- print '<div class="fts-instagram-load-more-wrapper">';
936
- print '<div id="loadMore_' . esc_attr( $fts_dynamic_name ) . '" style="';
937
- if ( '' !== $loadmore_btn_maxwidth ) {
938
- print 'max-width:' . esc_attr( $loadmore_btn_maxwidth ) . ';';
939
- }
940
- $loadmore_btn_margin = isset( $loadmore_btn_margin ) ? $loadmore_btn_margin : '10px';
941
- 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>';
942
- print '</div>';
943
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
944
  }
945
- }//End Check.
946
- unset( $_REQUEST['next_url'] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
947
  }
948
- // Make sure it's not ajaxing.
949
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
950
- // Social Button.
951
- if ( isset( $instagram_user_info->data->username ) && 'yes' === $fts_instagram_show_follow_btn && 'instagram-follow-below' === $fts_instagram_show_follow_btn_where ) {
952
- echo '<div class="instagram-social-btn-bottom">';
953
- echo $this->social_follow_button( 'instagram', $instagram_user_info->data->username );
954
- echo '</div>';
955
- }
956
- }
957
- } // end nonce
958
-
959
- return ob_get_clean();
960
- }
961
- /**
962
- * Random String
963
- *
964
- * Create a random string
965
- *
966
- * @param string $length Length.
967
- * @return mixed
968
- * @since 1.9.6
969
- */
970
- public function fts_rand_string( $length = 10 ) {
971
- $characters = 'abcdefghijklmnopqrstuvwxyz';
972
- $characters_length = strlen( $characters );
973
- $random_string = '';
974
- for ( $i = 0; $i < $length; $i++ ) {
975
- $random_string .= $characters[ wp_rand( 0, $characters_length - 1 ) ];
976
- }
977
-
978
- return $random_string;
979
- }
980
-
981
- }//end class
982
-
983
- ?>
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
+ ?>
 
feeds/youtube/class-youtube-feed-free.php CHANGED
@@ -165,7 +165,7 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
165
 
166
  $youtube_show_follow_btn = get_option( 'youtube_show_follow_btn' );
167
  $youtube_show_follow_btn_where = get_option( 'youtube_show_follow_btn_where' );
168
- $share_this = new feed_them_social_functions();
169
 
170
  $thumbs_play_iframe = $thumbs_play_in_iframe;
171
 
@@ -187,30 +187,49 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
187
  if ( empty( $video_id_or_link ) ) {
188
  if ( ! empty( $username ) ) {
189
  // here we are getting the users channel ID for their uploaded videos.
190
- $youtube_user_id_data['items'] = 'https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=' . $username . '&' . $youtube_api_key_or_token;
191
- $user_id_returned = $this->fts_get_feed_json( $youtube_user_id_data );
192
- $user_id_final = json_decode( $user_id_returned['items'] );
193
-
194
- // now we parse the users uploaded vids ID and create the playlist.
195
- foreach ( $user_id_final->items as $user_id ) {
196
- $video_data['videos'] = isset( $_REQUEST['next_url'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) : sanitize_text_field( wp_unslash( 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=' . $vid_count . '&playlistId=' . $user_id->contentDetails->relatedPlaylists->uploads . '&order=date&' . $youtube_api_key_or_token ) );
197
  }
198
 
199
- $videos_returned = $this->fts_get_feed_json( $video_data );
200
- $videos = $videos_returned['videos'];
 
 
 
 
 
 
 
 
 
 
 
 
201
 
202
- // Youtube Username Cache Folder.
 
 
 
 
 
 
203
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
204
- $youtube_cache_url = 'pics_vids_list_' . $username . '_bnum' . $vid_count . '_user';
205
  }
206
  } elseif ( ! empty( $channel_id ) && empty( $playlist_id ) ) {
207
 
 
208
  $youtube_channel_id_data['items'] = isset( $_REQUEST['next_url'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) : sanitize_text_field( wp_unslash( 'https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=' . $channel_id . '&order=date&maxResults=' . $vid_count . '&' . $youtube_api_key_or_token ) );
209
  $user_channel_returned = $this->fts_get_feed_json( $youtube_channel_id_data );
210
  $videos = $user_channel_returned['items'];
211
 
212
  $videos_check = json_decode( $videos );
213
- $set_zero = '';
 
214
  if ( isset( $videos_check->items ) ) {
215
 
216
  $set_zero = 0;
@@ -225,7 +244,7 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
225
  }// END POST foreach.
226
  }
227
  $unset_count = $vid_count + $set_zero;
228
- $vid_count = $unset_count;
229
  // Uncomment these for testing purposes to see the actual count and the offset count.
230
  // echo'<pre>';
231
  // print_r($set_zero);
@@ -236,38 +255,27 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
236
  // echo'<pre>';
237
  // print_r($videos_check);
238
  // echo'</pre>';.
239
- $youtube_channel_id_data['items'] = isset( $_REQUEST['next_url'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) : sanitize_text_field( wp_unslash( 'https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=' . $channel_id . '&order=date&maxResults=' . $vid_count . '&' . $youtube_api_key_or_token ) );
240
- $user_channel_returned = $this->fts_get_feed_json( $youtube_channel_id_data );
241
- $videos = $user_channel_returned['items'];
242
 
243
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
244
  // Youtube Channel Cache.
245
- $youtube_cache_url = 'pics_vids_list_' . $channel_id . '_bnum' . $vid_count . '_channel';
246
  }
247
  } elseif ( ! empty( $playlist_id ) || ! empty( $playlist_id ) && ! empty( $channel_id ) ) {
248
- $youtube_playlist_id_data = isset( $_REQUEST['next_url'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) : sanitize_text_field( wp_unslash( 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=' . $vid_count . '&playlistId=' . $playlist_id . '&order=date&' . $youtube_api_key_or_token ) );
249
- $video_data['videos'] = $youtube_playlist_id_data;
250
- $videos_returned = $this->fts_get_feed_json( $video_data );
251
- $videos = $videos_returned['videos'];
252
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
253
  // Youtube Playlist Cache Folder.
254
- $youtube_cache_url = 'pics_vids_list_' . $playlist_id . '_bnum' . $vid_count . '_playlist';
255
  }
256
  }
257
- // Youtube Create Cache.
258
- if ( false !== $this->fts_check_feed_cache_exists( $youtube_cache_url ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
259
- if ( empty( $youtube_access_token_new ) ) {
260
- $videos = $this->fts_get_feed_cache( $youtube_cache_url );
261
- } else {
262
- $videos = json_decode( $videos );
263
- $this->fts_create_feed_cache( $youtube_cache_url, $videos );
264
- }
265
- } else {
266
- $videos = json_decode( $videos );
267
 
268
- if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
269
- $this->fts_create_feed_cache( $youtube_cache_url, $videos );
270
- }
 
 
 
271
  }
272
  }
273
 
@@ -314,7 +322,7 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
314
  echo '<div id="fts-yt-' . esc_attr( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ) . '" class="' . esc_attr( $thumbgallery_class_master . 'fts-master-youtube-wrap fts-yt-videogroup fts-yt-user-' . $username . ' fts-yt-vids-in-row' . $vids_in_row ) . '">';
315
  echo '<div id="fts-yt-videolist-' . esc_attr( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ) . '" class="fts-yt-videolist">';
316
 
317
- if ( 'yes' === $large_vid || '1' === $vids_in_row ) {
318
  foreach ( $videos->items as $post_data ) {
319
  // we check to make sure no playlist video kinds are in the array ($post_data->id->kind !== 'youtube#playlist') because they return a blank video in the channel feed because youtube is simply adding it to the array for youtube not thinking of the API in this case it would seem.
320
  $video_check = isset( $post_data->id->kind ) && 'youtube#playlist' === $post_data->id->kind ? 'set' : 'notset';
@@ -410,7 +418,7 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
410
 
411
  $this->fts_youtube_single_video_info( $video_id_or_link, $youtube_api_key_or_token, $youtube_access_token_new );
412
 
413
- echo $share_this->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
414
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html( 'View on YouTube', 'feed-them-premium' ) . '</a>';
415
  if ( '0' !== $comments_count && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
416
  $this->fts_youtube_commentThreads( $video_id_or_link, $youtube_api_key_or_token, $comments_count );
@@ -424,7 +432,7 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
424
 
425
  }
426
  }
427
- if ( '0' !== $vids_in_row && empty( $video_id_or_link ) && 'yes' !== $large_vid_title && 'yes' !== $large_vid_description ) {
428
 
429
  $count = '0';
430
  foreach ( $videos->items as $post_data ) {
@@ -499,7 +507,7 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
499
  'small' => array(),
500
  )
501
  ) . '</div>';
502
- echo $share_this->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
503
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html( 'View on YouTube', 'feed-them-premium' ) . '</a>';
504
  if ( isset( $comments_count ) && '0' !== $comments_count && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
505
  $this->fts_youtube_commentThreads( $video_id, $youtube_api_key_or_token, $comments_count );
@@ -535,7 +543,7 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
535
  'small' => array(),
536
  )
537
  ) . '</div>';
538
- echo $share_this->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
539
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html( 'View on YouTube', 'feed-them-premium' ) . '</a>';
540
  if ( isset( $comments_count ) && '0' !== $comments_count && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
541
  $this->fts_youtube_commentThreads( $video_id, $youtube_api_key_or_token, $comments_count );
@@ -560,9 +568,7 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
560
 
561
  if ( ! empty( $username ) ) {
562
  // now we parse the users uploaded vids ID and create the playlist.
563
- foreach ( $user_id_final->items as $user_id ) {
564
- $next_url = isset( $videos->nextPageToken ) ? 'https://www.googleapis.com/youtube/v3/playlistItems?pageToken=' . $videos->nextPageToken . '&part=snippet&maxResults=' . $vid_count . '&playlistId=' . $user_id->contentDetails->relatedPlaylists->uploads . '&order=date&' . $youtube_api_key_or_token : '';
565
- }
566
  } elseif ( ! empty( $channel_id ) && empty( $playlist_id ) ) {
567
  $next_url = isset( $videos->nextPageToken ) ? 'https://www.googleapis.com/youtube/v3/search?pageToken=' . $videos->nextPageToken . '&part=snippet&channelId=' . $channel_id . '&order=date&maxResults=' . $vid_count . '&' . $youtube_api_key_or_token : '';
568
  } elseif ( ! empty( $playlist_id ) || ! empty( $playlist_id ) && ! empty( $channel_id ) ) {
@@ -918,6 +924,74 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
918
  }
919
  }
920
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
921
  /**
922
  * Random String generator
923
  *
@@ -937,4 +1011,3 @@ class FTS_Youtube_Feed_Free extends feed_them_social_functions {
937
  }
938
 
939
  }
940
-
165
 
166
  $youtube_show_follow_btn = get_option( 'youtube_show_follow_btn' );
167
  $youtube_show_follow_btn_where = get_option( 'youtube_show_follow_btn_where' );
168
+ $fts_functions_class = new feed_them_social_functions();
169
 
170
  $thumbs_play_iframe = $thumbs_play_in_iframe;
171
 
187
  if ( empty( $video_id_or_link ) ) {
188
  if ( ! empty( $username ) ) {
189
  // here we are getting the users channel ID for their uploaded videos.
190
+ $youtube_user_id_data = 'https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=' . $username . '&' . $youtube_api_key_or_token;
191
+ // $user_id_returned = $this->fts_get_feed_json( $youtube_user_id_data );
192
+ // $user_id_final = json_decode( $user_id_returned['items'] );
193
+ // Youtube Username.
194
+ if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
195
+ $user_cache_name = 'yt_user_' . $username;
 
196
  }
197
 
198
+ // $fts_functions_class->delete_permanent_feed_cache($user_cache_name);
199
+
200
+ $user_returned = $this->use_cache_check( $youtube_user_id_data, $user_cache_name );
201
+
202
+ // If the YT User returned is not empty and is an arary.
203
+ if ( ! empty( $user_returned ) && is_array( $user_returned ) ) {
204
+
205
+ // Decode User's data.
206
+ $user_returned = json_decode( $user_returned['data'] );
207
+
208
+ // error_log( print_r( $user_returned, true ) );
209
+ if ( is_object( $user_returned ) && isset( $user_returned->items ) ) {
210
+ // User Playlist ID!
211
+ $user_playlist_id = $user_returned->items[0]->contentDetails->relatedPlaylists->uploads;
212
 
213
+ // error_log( print_r( $user_playlist_id, true ) );
214
+ // now we parse the users uploaded vids ID and create the playlist.
215
+ $youtube_feed_api_url = isset( $_REQUEST['next_url'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) : sanitize_text_field( wp_unslash( 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=' . $vid_count . '&playlistId=' . $user_playlist_id . '&order=date&' . $youtube_api_key_or_token ) );
216
+ }
217
+ }
218
+
219
+ // Youtube Playlist Cache Name.
220
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
221
+ $feed_cache_name = 'pics_vids_list_' . $username . '_bnum' . $vid_count . '_user';
222
  }
223
  } elseif ( ! empty( $channel_id ) && empty( $playlist_id ) ) {
224
 
225
+ /*
226
  $youtube_channel_id_data['items'] = isset( $_REQUEST['next_url'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) : sanitize_text_field( wp_unslash( 'https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=' . $channel_id . '&order=date&maxResults=' . $vid_count . '&' . $youtube_api_key_or_token ) );
227
  $user_channel_returned = $this->fts_get_feed_json( $youtube_channel_id_data );
228
  $videos = $user_channel_returned['items'];
229
 
230
  $videos_check = json_decode( $videos );
231
+
232
+ $set_zero = '';
233
  if ( isset( $videos_check->items ) ) {
234
 
235
  $set_zero = 0;
244
  }// END POST foreach.
245
  }
246
  $unset_count = $vid_count + $set_zero;
247
+ $vid_count = $unset_count;*/
248
  // Uncomment these for testing purposes to see the actual count and the offset count.
249
  // echo'<pre>';
250
  // print_r($set_zero);
255
  // echo'<pre>';
256
  // print_r($videos_check);
257
  // echo'</pre>';.
258
+ $youtube_feed_api_url = isset( $_REQUEST['next_url'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) : sanitize_text_field( wp_unslash( 'https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=' . $channel_id . '&order=date&maxResults=' . $vid_count . '&' . $youtube_api_key_or_token ) );
 
 
259
 
260
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
261
  // Youtube Channel Cache.
262
+ $feed_cache_name = 'pics_vids_list_' . $channel_id . '_bnum' . $vid_count . '_channel';
263
  }
264
  } elseif ( ! empty( $playlist_id ) || ! empty( $playlist_id ) && ! empty( $channel_id ) ) {
265
+ $youtube_feed_api_url = isset( $_REQUEST['next_url'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) : sanitize_text_field( wp_unslash( 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=' . $vid_count . '&playlistId=' . $playlist_id . '&order=date&' . $youtube_api_key_or_token ) );
266
+
 
 
267
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
268
  // Youtube Playlist Cache Folder.
269
+ $feed_cache_name = 'pics_vids_list_' . $playlist_id . '_bnum' . $vid_count . '_playlist';
270
  }
271
  }
 
 
 
 
 
 
 
 
 
 
272
 
273
+ if ( isset( $youtube_feed_api_url ) ) {
274
+ // Call, fetch and Check data from API url!
275
+ $feed_returned = $this->use_cache_check( $youtube_feed_api_url, $feed_cache_name );
276
+
277
+ // JSON Decode the Feed Data.
278
+ $videos = json_decode( $feed_returned['data'] );
279
  }
280
  }
281
 
322
  echo '<div id="fts-yt-' . esc_attr( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ) . '" class="' . esc_attr( $thumbgallery_class_master . 'fts-master-youtube-wrap fts-yt-videogroup fts-yt-user-' . $username . ' fts-yt-vids-in-row' . $vids_in_row ) . '">';
323
  echo '<div id="fts-yt-videolist-' . esc_attr( sanitize_text_field( wp_unslash( $_REQUEST['fts_dynamic_name'] ) ) ) . '" class="fts-yt-videolist">';
324
 
325
+ if ( isset( $videos->items ) && ( 'yes' === $large_vid || '1' === $vids_in_row ) ) {
326
  foreach ( $videos->items as $post_data ) {
327
  // we check to make sure no playlist video kinds are in the array ($post_data->id->kind !== 'youtube#playlist') because they return a blank video in the channel feed because youtube is simply adding it to the array for youtube not thinking of the API in this case it would seem.
328
  $video_check = isset( $post_data->id->kind ) && 'youtube#playlist' === $post_data->id->kind ? 'set' : 'notset';
418
 
419
  $this->fts_youtube_single_video_info( $video_id_or_link, $youtube_api_key_or_token, $youtube_access_token_new );
420
 
421
+ echo $fts_functions_class->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
422
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html( 'View on YouTube', 'feed-them-premium' ) . '</a>';
423
  if ( '0' !== $comments_count && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
424
  $this->fts_youtube_commentThreads( $video_id_or_link, $youtube_api_key_or_token, $comments_count );
432
 
433
  }
434
  }
435
+ if ( '0' !== $vids_in_row && empty( $video_id_or_link ) && 'yes' !== $large_vid_title && 'yes' !== $large_vid_description && isset( $videos->items ) ) {
436
 
437
  $count = '0';
438
  foreach ( $videos->items as $post_data ) {
507
  'small' => array(),
508
  )
509
  ) . '</div>';
510
+ echo $fts_functions_class->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
511
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html( 'View on YouTube', 'feed-them-premium' ) . '</a>';
512
  if ( isset( $comments_count ) && '0' !== $comments_count && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
513
  $this->fts_youtube_commentThreads( $video_id, $youtube_api_key_or_token, $comments_count );
543
  'small' => array(),
544
  )
545
  ) . '</div>';
546
+ echo $fts_functions_class->fts_share_option( isset( $youtube_video_url ) ? $youtube_video_url : null, isset( $youtube_title ) ? $youtube_title : null );
547
  echo '<a href="' . esc_url( $youtube_video_url ) . '" target="_blank" class="fts-jal-fb-see-more">' . esc_html( 'View on YouTube', 'feed-them-premium' ) . '</a>';
548
  if ( isset( $comments_count ) && '0' !== $comments_count && is_plugin_active( 'feed-them-premium/feed-them-premium.php' ) ) {
549
  $this->fts_youtube_commentThreads( $video_id, $youtube_api_key_or_token, $comments_count );
568
 
569
  if ( ! empty( $username ) ) {
570
  // now we parse the users uploaded vids ID and create the playlist.
571
+ $next_url = isset( $videos->nextPageToken ) ? 'https://www.googleapis.com/youtube/v3/playlistItems?pageToken=' . $videos->nextPageToken . '&part=snippet&maxResults=' . $vid_count . '&playlistId=' . $user_playlist_id . '&order=date&' . $youtube_api_key_or_token : '';
 
 
572
  } elseif ( ! empty( $channel_id ) && empty( $playlist_id ) ) {
573
  $next_url = isset( $videos->nextPageToken ) ? 'https://www.googleapis.com/youtube/v3/search?pageToken=' . $videos->nextPageToken . '&part=snippet&channelId=' . $channel_id . '&order=date&maxResults=' . $vid_count . '&' . $youtube_api_key_or_token : '';
574
  } elseif ( ! empty( $playlist_id ) || ! empty( $playlist_id ) && ! empty( $channel_id ) ) {
924
  }
925
  }
926
  }
927
+
928
+
929
+ /**
930
+ * Use Cache Check
931
+ *
932
+ * Checks to see if we need to use cache or not
933
+ * n
934
+ *
935
+ * @param string|array $api_call API Call.
936
+ * @param string $cache_name Cache name.
937
+ * @return array|mixed
938
+ * @throws \Exception Thow Exeption if all fails.
939
+ * @since
940
+ */
941
+ public function use_cache_check( $api_call, $cache_name ) {
942
+
943
+ // error_log( print_r( $api_call, true ) );
944
+ // error_log( print_r( $cache_name, true ) );
945
+ // error_log( print_r( 'NEXT!' ) );
946
+ if ( true === $this->fts_check_feed_cache_exists( $cache_name ) ) {
947
+ // Return Cache because it exists in Database.
948
+ return $this->fts_get_feed_cache( $cache_name );
949
+ }
950
+
951
+ // Get Feed using API call.
952
+ $feed_data = $this->fts_get_feed_json( $api_call );
953
+
954
+ if ( ! empty( $feed_data ) && ! empty( $cache_name ) && ! isset( $_GET['load_more_ajaxing'] ) ) {
955
+ // Error Check.
956
+ $fts_error_check = new fts_error_handler();
957
+ $fts_error_check_complete = $fts_error_check->youtube_error_check( $feed_data );
958
+
959
+ if ( is_array( $fts_error_check_complete ) && ( true === $fts_error_check_complete[0] || 1 === $fts_error_check_complete[0] ) ) {
960
+
961
+ // If old Cache still exists use it instead of showing an error. This prevents feed from breaking if old cache is still there.
962
+ if ( true === $this->fts_check_feed_cache_exists( $cache_name, true ) ) {
963
+
964
+ // If Current user is Admin and Cache exists for use then still show Admin the error for debugging purposes.
965
+ if ( current_user_can( 'administrator' ) ) {
966
+ echo wp_kses(
967
+ $fts_error_check_complete[1] . ' <em>**NOTE** This error is only shown to logged in Admins of this WordPress install</em>',
968
+ array(
969
+ 'a' => array(
970
+ 'href' => array(),
971
+ 'title' => array(),
972
+ ),
973
+ 'br' => array(),
974
+ 'em' => array(),
975
+ 'strong' => array(),
976
+ )
977
+ );
978
+ }
979
+
980
+ // Return Cache because it exists in Database. Better than showing nothing right?
981
+ return $this->fts_get_feed_cache( $cache_name, true );
982
+ }
983
+ } elseif ( false !== $this->fts_check_feed_cache_exists( $cache_name ) ) {
984
+
985
+ // Create Cache.
986
+ $this->fts_create_feed_cache( $cache_name, $feed_data );
987
+
988
+ return $feed_data;
989
+ }
990
+ }
991
+
992
+ return $feed_data;
993
+ }
994
+
995
  /**
996
  * Random String generator
997
  *
1011
  }
1012
 
1013
  }
 
includes/error-handler.php CHANGED
@@ -197,6 +197,51 @@ class fts_error_handler {
197
  return array( true, '' );
198
  }
199
  }
 
 
200
  }
201
- }
202
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
  return array( true, '' );
198
  }
199
  }
200
+
201
+ return;
202
  }
 
203
 
204
+ /**
205
+ * Youtube Error Check
206
+ *
207
+ * @param string|array $feed_data feed data.
208
+ * @return string|array
209
+ * @throws \Exception Don't let old plugins activate.
210
+ * @since 1.9.6
211
+ */
212
+ public function youtube_error_check( $feed_data ) {
213
+
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 {
221
+ if ( ! isset( $feed_data->data ) || empty( $feed_data->data ) ) {
222
+
223
+ // Solution Text!
224
+ $solution_text = 'Here are some possible solutions to fix the error.';
225
+ if ( isset( $feed_data->error ) && 400 === $feed_data->error->code ) {
226
+ throw new \Exception( '<div style="clear:both; padding:15px 0;">#' . $feed_data->error->code . ' - A VALID access token is required to request this resource. <a style="color:red !important;" href="https://www.slickremix.com/docs/facebook-error-messages/#error-access-token-required" target="_blank">' . $solution_text . '</a></div>' );
227
+ }
228
+ if ( isset( $feed_data->error ) ) {
229
+ // If Custom Exception is not needed but still error then throw ugly error.
230
+ if ( isset( $feed_data->error->message ) ) {
231
+ $output = 'Error: ' . $feed_data->error->message;
232
+ }
233
+ if ( isset( $feed_data->error->code ) ) {
234
+ $output .= '<br />Code: ' . $feed_data->error->code;
235
+ }
236
+
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() );
244
+ }
245
+ return;
246
+ }
247
+ }
includes/feed-them-functions.php CHANGED
@@ -140,9 +140,10 @@ class feed_them_social_functions {
140
 
141
  if ( wp_verify_nonce( $fts_refresh_token_nonce, 'access_token' ) ) {
142
 
143
- $auth_obj = $_GET['access_token'];
 
144
 
145
- if ( isset( $auth_obj ) ) {
146
  ?>
147
  <script>
148
  jQuery(document).ready(function () {
@@ -176,8 +177,8 @@ class feed_them_social_functions {
176
  '</a></div>'
177
  );
178
  ?>
179
- jQuery('.fts-failed-api-token').hide();
180
- if (!jQuery('.fts-successful-api-token').length) {
181
  jQuery('.fts-instagram-last-row').append('<?php echo $fts_instagram_message; ?>');
182
  }
183
  jQuery('.fts-success').show();
@@ -191,8 +192,8 @@ class feed_them_social_functions {
191
  '</div>'
192
  );
193
  ?>
194
- if (jQuery('.fts-failed-api-token').length) {
195
- jQuery('.fts-failed-api-token').hide();
196
  jQuery('.fts-instagram-last-row').append('<?php echo $fts_instagram_message; ?>');
197
  }
198
  <?php
@@ -283,7 +284,7 @@ class feed_them_social_functions {
283
  ob_start();
284
 
285
  if ( ! isset( $_GET['locations'] ) ) {
286
- $fb_token_response = isset( $_REQUEST['next_url'] ) ? wp_remote_fopen( esc_url_raw( $_REQUEST['next_url'] ) ) : wp_remote_fopen( 'https://graph.facebook.com/me/accounts?fields=locations{name,id,page_username,locations,store_number,store_location_descriptor,access_token},name,id,link,access_token&access_token=' . $_GET['access_token'] . '&limit=25' );
287
  $test_fb_app_token_response = json_decode( $fb_token_response );
288
  $_REQUEST['next_url'] = isset( $test_fb_app_token_response->paging->next ) ? esc_url_raw( $test_fb_app_token_response->paging->next ) : '';
289
  } else {
@@ -292,7 +293,7 @@ class feed_them_social_functions {
292
  }
293
 
294
  // echo '<pre>';
295
- // echo _r($test_fb_app_token_response);
296
  // echo '</pre>';
297
  // Make sure it's not ajaxing!
298
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
@@ -318,16 +319,21 @@ class feed_them_social_functions {
318
  } //End make sure it's not ajaxing!
319
 
320
  foreach ( $test_fb_app_token_response->data as $data ) {
 
 
 
 
 
321
  ?>
322
  <li class="fts-fb-main-page-li">
323
  <div class="fb-click-wrapper">
324
  <div class="fb-image">
325
  <img border="0" height="50" width="50"
326
- src="<?php echo esc_url( 'https://graph.facebook.com/' . $data->id . '/picture' ); ?>"/>
327
  </div>
328
  <div class="fb-name-wrap"><span class="fb-name">
329
  <?php
330
- echo esc_html( $data->name );
331
  if ( isset( $data->store_number, $data->store_location_descriptor ) ) {
332
  print '(' . $data->store_location_descriptor . ')';
333
  }
@@ -336,7 +342,7 @@ class feed_them_social_functions {
336
  <div class="fb-other-wrap">
337
  <small>
338
  <?php echo esc_html( 'ID: ', 'feed-them-social' ); ?>
339
- <span class="fts-api-facebook-id"><?php echo esc_html( $data->id ); ?></span>
340
  <?php echo isset( $data->store_number ) ? esc_html( '| Location: ' . $data->store_number, 'feed-them-social' ) : ''; ?>
341
  </small>
342
  </div>
@@ -356,7 +362,7 @@ class feed_them_social_functions {
356
  </div>
357
  <?php
358
  $_REQUEST['next_location_url'] = isset( $data->locations->paging->next ) ? esc_url_raw( $data->locations->paging->next ) : '';
359
- $remove_class_or_not = isset( $data->locations->paging->next ) ? 'fb-sublist-page-id-' . esc_attr( $data->id ) : '';
360
  if ( isset( $data->locations->data ) ) {
361
  $location_count = count( $data->locations->data );
362
  $location_plus_sign = isset( $data->locations->paging->next ) ? '+' : '';
@@ -370,65 +376,78 @@ class feed_them_social_functions {
370
  <div class="fts-fb-location-text-wrap"><?php echo esc_html( $location_text . ' ' . $data->name ); ?></div>
371
  <ul class="fb-page-list fb-sublist <?php echo esc_attr( $remove_class_or_not ); ?>"
372
  style="<?php echo esc_attr( $location_scroll_loadmore_needed_check ); ?>">
373
- <?php foreach ( $data->locations->data as $location ) { ?>
374
- <li>
375
- <div class="fb-click-wrapper">
376
- <div class="fb-image">
377
- <img border="0" height="50" width="50"
378
- src="<?php echo esc_url( 'https://graph.facebook.com/' . $location->id . '/picture' ); ?>"/>
379
- </div>
380
- <div class="fb-name-wrap"><span
381
- class="fb-name"><?php echo esc_html( $location->name ); ?>
382
- <?php
383
- if ( isset( $location->store_location_descriptor ) ) {
384
- echo '(' . esc_html( $location->store_location_descriptor ) . ')';
385
- }
386
- ?>
387
- </span></div>
388
- <div class="fb-other-wrap">
389
- <small>
390
- <?php echo esc_html( 'ID: ', 'feed-them-social' ); ?>
391
- <span class="fts-api-facebook-id"><?php echo esc_html( $location->id ); ?></span>
392
- <?php
393
- if ( isset( $location->store_number ) ) {
394
- print '| ';
395
- esc_html( 'Location:', 'feed-them-social' );
396
- print ' ' . esc_html( $location->store_number );
397
- }
398
- ?>
399
- </small>
400
- </div>
401
-
402
- <div class="page-token"><?php echo esc_html( $location->access_token ); ?></div>
403
- <?php
404
- $facebook_input_token = get_option( 'fts_facebook_custom_api_token' );
405
- $facebook_access_token = $location->access_token;
406
- if ( $facebook_input_token === $facebook_access_token ) {
407
- ?>
408
- <div class="feed-them-social-admin-submit-btn "
409
- style="display: block !important;">Active
410
- </div>
411
- <?php } else { ?>
412
- <div class="feed-them-social-admin-submit-btn fts-token-save">Save
413
- </div>
414
- <?php } ?>
415
- <div class="fts-clear"></div>
416
- </div>
417
- </li>
418
- <?php } ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
419
  </ul>
420
 
421
  <?php
422
  // Make sure it's not ajaxing locations!
423
  if ( ! isset( $_GET['locations'] ) && isset( $data->locations->paging->next ) ) {
424
- echo '<div id="loadMore_' . esc_attr( $data->id ) . '_location" class="fts-fb-load-more" style="background:none !Important;">' . esc_html( 'Scroll to view more Locations', 'feed-them-instagram' ) . '</div>';
425
  }//End Check
426
 
427
  // Make sure it's not ajaxing locations!
428
  if ( ! isset( $_GET['locations'] ) ) {
429
  $time = time();
430
  $nonce = wp_create_nonce( $time . 'load-more-nonce' );
431
- $fb_page_id = $data->id;
432
  ?>
433
  <script>
434
  jQuery(document).ready(function () {
@@ -490,6 +509,8 @@ class feed_them_social_functions {
490
  </li>
491
 
492
  <?php
 
 
493
  } // foreach loop of locations
494
 
495
  // Make sure it's not ajaxing!
@@ -580,7 +601,13 @@ class feed_them_social_functions {
580
  // alert('test');
581
  var newUrl = "<?php echo esc_url( admin_url( 'admin.php?page=fts-facebook-feed-styles-submenu-page/' ) ); ?>";
582
  history.replaceState({}, null, newUrl);
583
- $("#fts-facebook-feed-options-form").submit();
 
 
 
 
 
 
584
  });
585
 
586
  var fb = ".fb-page-list .fb-click-wrapper";
@@ -592,14 +619,26 @@ class feed_them_social_functions {
592
  var token = $(this).find('.page-token').html();
593
  // alert(token);
594
  var name = $(this).find('.fb-name').html();
595
- <?php if ( 'no' === $reviews_token || isset( $_GET['fts_reviews_feed'] ) && 'no' === $_GET['fts_reviews_feed'] ) { ?>
596
- $("#fts_facebook_custom_api_token").val(token);
597
- $("#fts_facebook_custom_api_token_user_id").val(fb_page_id);
598
- $("#fts_facebook_custom_api_token_user_name").val(name);
599
- <?php } else { ?>
 
 
 
 
 
 
 
 
 
 
 
600
  $("#fts_facebook_custom_api_token_biz").val(token);
601
  $("#fts_facebook_custom_api_token_user_id_biz").val(fb_page_id);
602
  $("#fts_facebook_custom_api_token_user_name_biz").val(name);
 
603
  <?php } ?>
604
  $('.fb-page-list .feed-them-social-admin-submit-btn').hide();
605
  $(this).find('.feed-them-social-admin-submit-btn').toggle();
@@ -766,8 +805,8 @@ class feed_them_social_functions {
766
  } else {
767
 
768
  if ( isset( $_REQUEST['feed_name'] ) && 'fts_fb_page_token' === $_REQUEST['feed_name'] ) {
769
- if ( isset( $_REQUEST['next_url'] ) && false === strpos( sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ), 'https://graph.facebook.com/v3.1' ) ||
770
- isset( $_REQUEST['next_location_url'] ) && false === strpos( sanitize_text_field( wp_unslash( $_REQUEST['next_location_url'] ) ), 'https://graph.facebook.com/v3.1' ) ||
771
  isset( $_REQUEST['next_url'] ) && sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) !== sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) ||
772
  isset( $_REQUEST['next_location_url'] ) && sanitize_text_field( wp_unslash( $_REQUEST['next_location_url'] ) ) !== sanitize_text_field( wp_unslash( $_REQUEST['next_location_url'] ) ) ) {
773
 
@@ -1061,8 +1100,10 @@ class feed_them_social_functions {
1061
  'fb_hide_no_posts_message',
1062
  'fts_facebook_custom_api_token_user_id',
1063
  'fts_facebook_custom_api_token_user_name',
 
1064
  'fts_facebook_custom_api_token_user_id_biz',
1065
  'fts_facebook_custom_api_token_user_name_biz',
 
1066
  'fb_loadmore_background_color',
1067
  'fb_loadmore_text_color',
1068
  'fb_load_more_text',
@@ -1135,6 +1176,10 @@ class feed_them_social_functions {
1135
  'instagram_loadmore_text_color',
1136
  'instagram_load_more_text',
1137
  'instagram_no_more_photos_text',
 
 
 
 
1138
  );
1139
  $this->register_settings( 'fts-instagram-feed-style-options', $instagram_style_options );
1140
  }
@@ -2722,73 +2767,125 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
2722
  /**
2723
  * FTS Create Feed Cache
2724
  *
 
 
2725
  * @param string $transient_name transient name.
2726
  * @param array $response Data returned from response.
2727
  * @since 1.9.6
2728
  */
2729
  public function fts_create_feed_cache( $transient_name, $response ) {
 
 
 
 
 
 
 
2730
  $cache_time_limit = true === get_option( 'fts_clear_cache_developer_mode' ) && '1' !== get_option( 'fts_clear_cache_developer_mode' ) ? get_option( 'fts_clear_cache_developer_mode' ) : '900';
2731
- set_transient( 'fts_' . $transient_name, $response, $cache_time_limit );
 
 
 
 
 
2732
  }
2733
 
2734
  /**
2735
  * FTS Get Feed Cache
2736
  *
2737
- * @param string $transient_name transient name.
 
2738
  * @return mixed
2739
  * @since 1.9.6
2740
  */
2741
- public function fts_get_feed_cache( $transient_name ) {
2742
- $returned_cache_data = get_transient( 'fts_' . $transient_name );
2743
- return $returned_cache_data;
 
 
 
 
 
 
2744
  }
2745
 
2746
  /**
2747
  * FTS Check Feed Cache Exists
2748
  *
2749
  * @param string $transient_name transient name.
 
2750
  * @return bool
2751
  * @since 1.9.6
2752
  */
2753
- public function fts_check_feed_cache_exists( $transient_name ) {
2754
- if ( false === get_transient( 'fts_' . $transient_name ) ) {
2755
- return false;
 
 
 
 
 
2756
  }
2757
- return true;
 
 
 
 
2758
  }
2759
 
2760
  /**
2761
- * FTS Clear Cache Ajax
2762
  *
2763
  * @since 1.9.6
2764
  */
2765
  public function fts_clear_cache_ajax() {
2766
  global $wpdb;
2767
- // Clear UnExpired!
2768
- $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_fts_%' ) );
2769
- // Clear Exired Transients!
2770
- $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_timeout_fts_%' ) );
 
 
2771
  wp_reset_query();
2772
  }
2773
 
2774
  /**
2775
  * Feed Them Clear Cache
2776
  *
2777
- * Clear Cache Folder.
2778
  *
2779
  * @return string
2780
  * @since 1.9.6
2781
  */
2782
  public function feed_them_clear_cache() {
2783
  global $wpdb;
2784
- // Clear UnExpired!
2785
- $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_fts_%' ) );
2786
- // Clear Exired Transients!
2787
- $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_timeout_fts_%' ) );
2788
  wp_reset_query();
2789
- return 'Cache for all FTS Feeds cleared!';
2790
  }
2791
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2792
  /**
2793
  * FTS Admin Bar Menu
2794
  *
@@ -2926,63 +3023,64 @@ if ( ! empty( $youtube_loadmore_text_color ) ) {
2926
  // not setting isset'ing anything because you have to save the settings page to even enable this feature
2927
  $fts_language_second = get_option( 'fts_language_second' );
2928
  if ( empty( $fts_language_second ) ) {
2929
- $fts_language_second = 'second';
2930
  }
2931
  $fts_language_seconds = get_option( 'fts_language_seconds' );
2932
  if ( empty( $fts_language_seconds ) ) {
2933
- $fts_language_seconds = 'seconds';
2934
  }
2935
  $fts_language_minute = get_option( 'fts_language_minute' );
2936
  if ( empty( $fts_language_minute ) ) {
2937
- $fts_language_minute = 'minute';
2938
  }
2939
  $fts_language_minutes = get_option( 'fts_language_minutes' );
2940
  if ( empty( $fts_language_minute ) ) {
2941
- $fts_language_minute = 'minutes';
2942
  }
2943
  $fts_language_hour = get_option( 'fts_language_hour' );
2944
  if ( empty( $fts_language_hour ) ) {
2945
- $fts_language_hour = 'hour';
2946
  }
2947
  $fts_language_hours = get_option( 'fts_language_hours' );
2948
  if ( empty( $fts_language_hours ) ) {
2949
- $fts_language_hours = 'hours';
2950
  }
2951
  $fts_language_day = get_option( 'fts_language_day' );
2952
  if ( empty( $fts_language_day ) ) {
2953
- $fts_language_day = 'day';
 
2954
  }
2955
  $fts_language_days = get_option( 'fts_language_days' );
2956
  if ( empty( $fts_language_days ) ) {
2957
- $fts_language_days = 'days';
2958
  }
2959
  $fts_language_week = get_option( 'fts_language_week' );
2960
  if ( empty( $fts_language_week ) ) {
2961
- $fts_language_week = 'week';
2962
  }
2963
  $fts_language_weeks = get_option( 'fts_language_weeks' );
2964
  if ( empty( $fts_language_weeks ) ) {
2965
- $fts_language_weeks = 'weeks';
2966
  }
2967
  $fts_language_month = get_option( 'fts_language_month' );
2968
  if ( empty( $fts_language_month ) ) {
2969
- $fts_language_month = 'month';
2970
  }
2971
  $fts_language_months = get_option( 'fts_language_months' );
2972
  if ( empty( $fts_language_months ) ) {
2973
- $fts_language_months = 'months';
2974
  }
2975
  $fts_language_year = get_option( 'fts_language_year' );
2976
  if ( empty( $fts_language_year ) ) {
2977
- $fts_language_year = 'year';
2978
  }
2979
  $fts_language_years = get_option( 'fts_language_years' );
2980
  if ( empty( $fts_language_years ) ) {
2981
- $fts_language_years = 'years';
2982
  }
2983
  $fts_language_ago = get_option( 'fts_language_ago' );
2984
  if ( empty( $fts_language_ago ) ) {
2985
- $fts_language_ago = 'ago';
2986
  }
2987
 
2988
  // $periods = array( "sec", "min", "hour", "day", "week", "month", "years", "decade" );.
140
 
141
  if ( wp_verify_nonce( $fts_refresh_token_nonce, 'access_token' ) ) {
142
 
143
+ $auth_obj = $_GET['access_token'];
144
+ $feed_type = $_GET['feed_type'];
145
 
146
+ if ( isset( $auth_obj ) && 'original_instagram' === $feed_type ) {
147
  ?>
148
  <script>
149
  jQuery(document).ready(function () {
177
  '</a></div>'
178
  );
179
  ?>
180
+ jQuery('.instagram-failed-message').hide();
181
+ if (!jQuery('.fts-instagram-last-row .fts-successful-api-token').length) {
182
  jQuery('.fts-instagram-last-row').append('<?php echo $fts_instagram_message; ?>');
183
  }
184
  jQuery('.fts-success').show();
192
  '</div>'
193
  );
194
  ?>
195
+ if (jQuery('.instagram-failed-message').length) {
196
+ jQuery('.instagram-failed-message').hide();
197
  jQuery('.fts-instagram-last-row').append('<?php echo $fts_instagram_message; ?>');
198
  }
199
  <?php
284
  ob_start();
285
 
286
  if ( ! isset( $_GET['locations'] ) ) {
287
+ $fb_token_response = isset( $_REQUEST['next_url'] ) ? wp_remote_fopen( esc_url_raw( $_REQUEST['next_url'] ) ) : wp_remote_fopen( 'https://graph.facebook.com/me/accounts?fields=instagram_business_account{id,username,profile_picture_url},locations{instagram_business_account{profile_picture_url,id,username},name,id,page_username,locations,store_number,store_location_descriptor,access_token},name,id,link,access_token&access_token=' . $_GET['access_token'] . '&limit=25' );
288
  $test_fb_app_token_response = json_decode( $fb_token_response );
289
  $_REQUEST['next_url'] = isset( $test_fb_app_token_response->paging->next ) ? esc_url_raw( $test_fb_app_token_response->paging->next ) : '';
290
  } else {
293
  }
294
 
295
  // echo '<pre>';
296
+ // print_r($test_fb_app_token_response);
297
  // echo '</pre>';
298
  // Make sure it's not ajaxing!
299
  if ( ! isset( $_GET['load_more_ajaxing'] ) ) {
319
  } //End make sure it's not ajaxing!
320
 
321
  foreach ( $test_fb_app_token_response->data as $data ) {
322
+
323
+ // if( !empty( $data->instagram_business_account ) ){
324
+ $data_id = isset( $data->instagram_business_account ) && 'fts-facebook-feed-styles-submenu-page' !== $_GET['page'] ? $data->instagram_business_account->id : $data->id;
325
+ $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;
326
+ $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';
327
  ?>
328
  <li class="fts-fb-main-page-li">
329
  <div class="fb-click-wrapper">
330
  <div class="fb-image">
331
  <img border="0" height="50" width="50"
332
+ src="<?php echo esc_url( $data_thumbnail ); ?>"/>
333
  </div>
334
  <div class="fb-name-wrap"><span class="fb-name">
335
  <?php
336
+ echo $data_user_name;
337
  if ( isset( $data->store_number, $data->store_location_descriptor ) ) {
338
  print '(' . $data->store_location_descriptor . ')';
339
  }
342
  <div class="fb-other-wrap">
343
  <small>
344
  <?php echo esc_html( 'ID: ', 'feed-them-social' ); ?>
345
+ <span class="fts-api-facebook-id"><?php echo esc_html( $data_id ); ?></span>
346
  <?php echo isset( $data->store_number ) ? esc_html( '| Location: ' . $data->store_number, 'feed-them-social' ) : ''; ?>
347
  </small>
348
  </div>
362
  </div>
363
  <?php
364
  $_REQUEST['next_location_url'] = isset( $data->locations->paging->next ) ? esc_url_raw( $data->locations->paging->next ) : '';
365
+ $remove_class_or_not = isset( $data->locations->paging->next ) ? 'fb-sublist-page-id-' . esc_attr( $data_id ) : '';
366
  if ( isset( $data->locations->data ) ) {
367
  $location_count = count( $data->locations->data );
368
  $location_plus_sign = isset( $data->locations->paging->next ) ? '+' : '';
376
  <div class="fts-fb-location-text-wrap"><?php echo esc_html( $location_text . ' ' . $data->name ); ?></div>
377
  <ul class="fb-page-list fb-sublist <?php echo esc_attr( $remove_class_or_not ); ?>"
378
  style="<?php echo esc_attr( $location_scroll_loadmore_needed_check ); ?>">
379
+ <?php
380
+ foreach ( $data->locations->data as $location ) {
381
+
382
+ // if ( !empty( $location->instagram_business_account ) ) {
383
+ $loc_data_id = isset( $location->instagram_business_account ) && 'fts-facebook-feed-styles-submenu-page' !== $_GET['page'] ? $location->instagram_business_account->id : $location->id;
384
+ $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;
385
+ $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';
386
+
387
+ ?>
388
+ <li>
389
+ <div class="fb-click-wrapper">
390
+ <div class="fb-image">
391
+ <img border="0" height="50" width="50"
392
+ src="<?php echo esc_url( $loc_data_thumbnail ); ?>"/>
393
+ </div>
394
+ <div class="fb-name-wrap"><span
395
+ class="fb-name"><?php echo $loc_data_user_name; ?>
396
+ <?php
397
+ if ( isset( $location->store_location_descriptor ) ) {
398
+ echo '(' . esc_html( $location->store_location_descriptor ) . ')';
399
+ }
400
+ ?>
401
+ </span></div>
402
+ <div class="fb-other-wrap">
403
+ <small>
404
+ <?php echo esc_html( 'ID: ', 'feed-them-social' ); ?>
405
+ <span class="fts-api-facebook-id"><?php echo esc_html( $loc_data_id ); ?></span>
406
+ <?php
407
+ if ( isset( $location->store_number ) ) {
408
+ print '| ';
409
+ esc_html( 'Location:', 'feed-them-social' );
410
+ print ' ' . esc_html( $location->store_number );
411
+ }
412
+ ?>
413
+ </small>
414
+ </div>
415
+
416
+ <div class="page-token"><?php echo esc_html( $location->access_token ); ?></div>
417
+ <?php
418
+ $facebook_input_token = get_option( 'fts_facebook_custom_api_token' );
419
+ $facebook_access_token = $location->access_token;
420
+ if ( $facebook_input_token === $facebook_access_token ) {
421
+ ?>
422
+ <div class="feed-them-social-admin-submit-btn "
423
+ style="display: block !important;">Active
424
+ </div>
425
+ <?php } else { ?>
426
+ <div class="feed-them-social-admin-submit-btn fts-token-save">
427
+ Save
428
+ </div>
429
+ <?php } ?>
430
+ <div class="fts-clear"></div>
431
+ </div>
432
+ </li>
433
+
434
+ <?php
435
+ // }
436
+ }
437
+ ?>
438
  </ul>
439
 
440
  <?php
441
  // Make sure it's not ajaxing locations!
442
  if ( ! isset( $_GET['locations'] ) && isset( $data->locations->paging->next ) ) {
443
+ echo '<div id="loadMore_' . esc_attr( $data_id ) . '_location" class="fts-fb-load-more" style="background:none !Important;">' . esc_html( 'Scroll to view more Locations', 'feed-them-instagram' ) . '</div>';
444
  }//End Check
445
 
446
  // Make sure it's not ajaxing locations!
447
  if ( ! isset( $_GET['locations'] ) ) {
448
  $time = time();
449
  $nonce = wp_create_nonce( $time . 'load-more-nonce' );
450
+ $fb_page_id = $data_id;
451
  ?>
452
  <script>
453
  jQuery(document).ready(function () {
509
  </li>
510
 
511
  <?php
512
+
513
+ // }
514
  } // foreach loop of locations
515
 
516
  // Make sure it's not ajaxing!
601
  // alert('test');
602
  var newUrl = "<?php echo esc_url( admin_url( 'admin.php?page=fts-facebook-feed-styles-submenu-page/' ) ); ?>";
603
  history.replaceState({}, null, newUrl);
604
+ <?php if ( 'fts-facebook-feed-styles-submenu-page' === $_GET['page'] ) { ?>
605
+ $("#fts-facebook-feed-options-form").submit();
606
+ <?php
607
+ } elseif ( 'fts-instagram-feed-styles-submenu-page' === $_GET['page'] ) {
608
+ ?>
609
+ $("#fts-instagram-feed-options-form").submit();
610
+ <?php } ?>
611
  });
612
 
613
  var fb = ".fb-page-list .fb-click-wrapper";
619
  var token = $(this).find('.page-token').html();
620
  // alert(token);
621
  var name = $(this).find('.fb-name').html();
622
+ var profile_image = $(this).find('.fb-image img').attr('src');
623
+ <?php if ( isset( $_GET['feed_type'] ) && 'instagram' === $_GET['feed_type'] ) { ?>
624
+ $("#fts_facebook_instagram_custom_api_token").val(token);
625
+ $("#fts_facebook_instagram_custom_api_token_user_id").val(fb_page_id);
626
+ $("#fts_facebook_instagram_custom_api_token_user_name").val(name);
627
+ $("#fts_facebook_instagram_custom_api_token_profile_image").val(profile_image);
628
+ <?php
629
+ } elseif ( 'no' === $reviews_token || isset( $_GET['fts_reviews_feed'] ) && 'no' === $_GET['fts_reviews_feed'] ) {
630
+ ?>
631
+ $("#fts_facebook_custom_api_token").val(token);
632
+ $("#fts_facebook_custom_api_token_user_id").val(fb_page_id);
633
+ $("#fts_facebook_custom_api_token_user_name").val(name);
634
+ $("#fts_facebook_custom_api_token_profile_image").val(profile_image);
635
+ <?php
636
+ } else {
637
+ ?>
638
  $("#fts_facebook_custom_api_token_biz").val(token);
639
  $("#fts_facebook_custom_api_token_user_id_biz").val(fb_page_id);
640
  $("#fts_facebook_custom_api_token_user_name_biz").val(name);
641
+ $("#fts_facebook_custom_api_token_biz_profile_image").val(profile_image);
642
  <?php } ?>
643
  $('.fb-page-list .feed-them-social-admin-submit-btn').hide();
644
  $(this).find('.feed-them-social-admin-submit-btn').toggle();
805
  } else {
806
 
807
  if ( isset( $_REQUEST['feed_name'] ) && 'fts_fb_page_token' === $_REQUEST['feed_name'] ) {
808
+ if ( isset( $_REQUEST['next_url'] ) && false === strpos( sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ), 'https://graph.facebook.com/' ) ||
809
+ isset( $_REQUEST['next_location_url'] ) && false === strpos( sanitize_text_field( wp_unslash( $_REQUEST['next_location_url'] ) ), 'https://graph.facebook.com/' ) ||
810
  isset( $_REQUEST['next_url'] ) && sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) !== sanitize_text_field( wp_unslash( $_REQUEST['next_url'] ) ) ||
811
  isset( $_REQUEST['next_location_url'] ) && sanitize_text_field( wp_unslash( $_REQUEST['next_location_url'] ) ) !== sanitize_text_field( wp_unslash( $_REQUEST['next_location_url'] ) ) ) {
812
 
1100
  'fb_hide_no_posts_message',
1101
  'fts_facebook_custom_api_token_user_id',
1102
  'fts_facebook_custom_api_token_user_name',
1103
+ 'fts_facebook_custom_api_token_profile_image',
1104
  'fts_facebook_custom_api_token_user_id_biz',
1105
  'fts_facebook_custom_api_token_user_name_biz',
1106
+ 'fts_facebook_custom_api_token_biz_profile_image',
1107
  'fb_loadmore_background_color',
1108
  'fb_loadmore_text_color',
1109
  'fb_load_more_text',
1176
  'instagram_loadmore_text_color',
1177
  'instagram_load_more_text',
1178
  'instagram_no_more_photos_text',
1179
+ 'fts_facebook_instagram_custom_api_token',
1180
+ 'fts_facebook_instagram_custom_api_token_user_id',
1181
+ 'fts_facebook_instagram_custom_api_token_user_name',
1182
+ 'fts_facebook_instagram_custom_api_token_profile_image',
1183
  );
1184
  $this->register_settings( 'fts-instagram-feed-style-options', $instagram_style_options );
1185
  }
2767
  /**
2768
  * FTS Create Feed Cache
2769
  *
2770
+ * Create Feed Cache. This is also where the previous cache is deleted and replace with new cache.
2771
+ *
2772
  * @param string $transient_name transient name.
2773
  * @param array $response Data returned from response.
2774
  * @since 1.9.6
2775
  */
2776
  public function fts_create_feed_cache( $transient_name, $response ) {
2777
+
2778
+ // Is there old Cache? If so Delete it!
2779
+ if ( true === $this->fts_check_feed_cache_exists( $transient_name ) ) {
2780
+ // Make Sure to delete old permanent cache before setting up new cache!
2781
+ $this->delete_permanent_feed_cache( $transient_name );
2782
+ }
2783
+ // Cache Time set on Settings Page under FTS Tab.
2784
  $cache_time_limit = true === get_option( 'fts_clear_cache_developer_mode' ) && '1' !== get_option( 'fts_clear_cache_developer_mode' ) ? get_option( 'fts_clear_cache_developer_mode' ) : '900';
2785
+
2786
+ // Timed Cache.
2787
+ set_transient( 'fts_t_' . $transient_name, $response, $cache_time_limit );
2788
+
2789
+ // Permanent Feed cache. NOTE set to 0.
2790
+ set_transient( 'fts_p_' . $transient_name, $response, 0 );
2791
  }
2792
 
2793
  /**
2794
  * FTS Get Feed Cache
2795
  *
2796
+ * @param string $transient_name Transient name.
2797
+ * @param boolean $errored Error Check.
2798
  * @return mixed
2799
  * @since 1.9.6
2800
  */
2801
+ public function fts_get_feed_cache( $transient_name, $errored = null ) {
2802
+
2803
+ // If Error use Permanent Cache!
2804
+ if ( true === $errored ) {
2805
+ return get_transient( 'fts_p_' . $transient_name );
2806
+ }
2807
+
2808
+ // If no error use Timed Cache!
2809
+ return get_transient( 'fts_t_' . $transient_name );
2810
  }
2811
 
2812
  /**
2813
  * FTS Check Feed Cache Exists
2814
  *
2815
  * @param string $transient_name transient name.
2816
+ * @param boolean $errored Error Check.
2817
  * @return bool
2818
  * @since 1.9.6
2819
  */
2820
+ public function fts_check_feed_cache_exists( $transient_name, $errored = null ) {
2821
+
2822
+ $transient_permanent_check = get_transient( 'fts_p_' . $transient_name );
2823
+ $transient_time_check = get_transient( 'fts_t_' . $transient_name );
2824
+
2825
+ // If error exists is set and old cache still exists.
2826
+ if ( true === $errored && false !== $transient_permanent_check ) {
2827
+ return true;
2828
  }
2829
+ if ( true !== $errored && false !== $transient_permanent_check && false !== $transient_time_check ) {
2830
+ return true;
2831
+ }
2832
+
2833
+ return false;
2834
  }
2835
 
2836
  /**
2837
+ * FTS Clear ALL FTS Cache Ajax
2838
  *
2839
  * @since 1.9.6
2840
  */
2841
  public function fts_clear_cache_ajax() {
2842
  global $wpdb;
2843
+
2844
+ // Clear UnExpired Timed Cache!
2845
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_fts_t_%' ) );
2846
+ // Clear Expired Timed Cache!
2847
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_timeout_fts_t_%' ) );
2848
+
2849
  wp_reset_query();
2850
  }
2851
 
2852
  /**
2853
  * Feed Them Clear Cache
2854
  *
2855
+ * Clear ALL FTS Cache.
2856
  *
2857
  * @return string
2858
  * @since 1.9.6
2859
  */
2860
  public function feed_them_clear_cache() {
2861
  global $wpdb;
2862
+ // Clear UnExpired Timed Cache!
2863
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_fts_t_%' ) );
2864
+ // Clear Expired Timed Cache!
2865
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_timeout_fts_t_%' ) );
2866
  wp_reset_query();
2867
+ return 'Cache for ALL FTS Feeds cleared!';
2868
  }
2869
 
2870
+ /**
2871
+ * Delete permanent feed Cache
2872
+ *
2873
+ * Clear ONLY permanent feed's cache.
2874
+ *
2875
+ * @return string
2876
+ * @since 1.9.6
2877
+ */
2878
+ public function delete_permanent_feed_cache( $transient_name ) {
2879
+ global $wpdb;
2880
+
2881
+ // Clear ONLY Specfic Feeds Cache!
2882
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name LIKE %s ", '_transient_fts_p_' . $transient_name ) );
2883
+
2884
+ wp_reset_query();
2885
+ return 'Cache for this feed cleared!';
2886
+ }
2887
+
2888
+
2889
  /**
2890
  * FTS Admin Bar Menu
2891
  *
3023
  // not setting isset'ing anything because you have to save the settings page to even enable this feature
3024
  $fts_language_second = get_option( 'fts_language_second' );
3025
  if ( empty( $fts_language_second ) ) {
3026
+ $fts_language_second = esc_html__( 'second', 'feed-them-social' );
3027
  }
3028
  $fts_language_seconds = get_option( 'fts_language_seconds' );
3029
  if ( empty( $fts_language_seconds ) ) {
3030
+ $fts_language_seconds = esc_html__( 'seconds', 'feed-them-social' );
3031
  }
3032
  $fts_language_minute = get_option( 'fts_language_minute' );
3033
  if ( empty( $fts_language_minute ) ) {
3034
+ $fts_language_minute = esc_html__( 'minute', 'feed-them-social' );
3035
  }
3036
  $fts_language_minutes = get_option( 'fts_language_minutes' );
3037
  if ( empty( $fts_language_minute ) ) {
3038
+ $fts_language_minute = esc_html__( 'minutes', 'feed-them-social' );
3039
  }
3040
  $fts_language_hour = get_option( 'fts_language_hour' );
3041
  if ( empty( $fts_language_hour ) ) {
3042
+ $fts_language_hour = esc_html__( 'hour', 'feed-them-social' );
3043
  }
3044
  $fts_language_hours = get_option( 'fts_language_hours' );
3045
  if ( empty( $fts_language_hours ) ) {
3046
+ $fts_language_hours = esc_html__( 'hours', 'feed-them-social' );
3047
  }
3048
  $fts_language_day = get_option( 'fts_language_day' );
3049
  if ( empty( $fts_language_day ) ) {
3050
+ $fts_language_day = esc_html__( 'day', 'feed-them-social' );
3051
+
3052
  }
3053
  $fts_language_days = get_option( 'fts_language_days' );
3054
  if ( empty( $fts_language_days ) ) {
3055
+ $fts_language_days = esc_html__( 'days', 'feed-them-social' );
3056
  }
3057
  $fts_language_week = get_option( 'fts_language_week' );
3058
  if ( empty( $fts_language_week ) ) {
3059
+ $fts_language_week = esc_html__( 'week', 'feed-them-social' );
3060
  }
3061
  $fts_language_weeks = get_option( 'fts_language_weeks' );
3062
  if ( empty( $fts_language_weeks ) ) {
3063
+ $fts_language_weeks = esc_html__( 'weeks', 'feed-them-social' );
3064
  }
3065
  $fts_language_month = get_option( 'fts_language_month' );
3066
  if ( empty( $fts_language_month ) ) {
3067
+ $fts_language_month = esc_html__( 'month', 'feed-them-social' );
3068
  }
3069
  $fts_language_months = get_option( 'fts_language_months' );
3070
  if ( empty( $fts_language_months ) ) {
3071
+ $fts_language_months = esc_html__( 'months', 'feed-them-social' );
3072
  }
3073
  $fts_language_year = get_option( 'fts_language_year' );
3074
  if ( empty( $fts_language_year ) ) {
3075
+ $fts_language_year = esc_html__( 'year', 'feed-them-social' );
3076
  }
3077
  $fts_language_years = get_option( 'fts_language_years' );
3078
  if ( empty( $fts_language_years ) ) {
3079
+ $fts_language_years = esc_html__( 'years', 'feed-them-social' );
3080
  }
3081
  $fts_language_ago = get_option( 'fts_language_ago' );
3082
  if ( empty( $fts_language_ago ) ) {
3083
+ $fts_language_ago = esc_html__( 'ago', 'feed-them-social' );
3084
  }
3085
 
3086
  // $periods = array( "sec", "min", "hour", "day", "week", "month", "years", "decade" );.
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: slickremix
3
  Tags: Facebook, Instagram, Twitter, YouTube, Feed
4
  Requires at least: 3.6.0
5
- Tested up to: 5.2.3
6
- Stable tag: 2.7.5
7
  License: GPLv2 or later
8
 
9
  Custom feeds for Facebook Pages, Album Photos, Videos & Covers, Instagram, Twitter, Pinterest & YouTube on pages, posts or widgets.
@@ -75,6 +75,9 @@ 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
  = Version 2.7.4 - 2.7.5 Friday, September 20th, 2019 =
79
  * CHANGE: Remove the words Facebook and Instagram from the name of our plugin as we have been served to change it.
80
 
2
  Contributors: slickremix
3
  Tags: Facebook, Instagram, Twitter, YouTube, Feed
4
  Requires at least: 3.6.0
5
+ Tested up to: 5.2.4
6
+ Stable tag: 2.7.6
7
  License: GPLv2 or later
8
 
9
  Custom feeds for Facebook Pages, Album Photos, Videos & Covers, Instagram, Twitter, Pinterest & YouTube on pages, posts or widgets.
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.7.6 Tuesday, October 29th, 2019 =
79
+ * FIX: Facebook Feed & YouTube Feed: Now we have a permanent caching system if the access token fails or reaches the API limit.
80
+
81
  = Version 2.7.4 - 2.7.5 Friday, September 20th, 2019 =
82
  * CHANGE: Remove the words Facebook and Instagram from the name of our plugin as we have been served to change it.
83