Image Photo Gallery Final Tiles Grid - Version 3.5.0

Version Description

  • 17/03/2021 =
  • Fixed: After deleting/cloning a gallery the Gallery page is properly reloading.
  • Fixed: Caption option on mobile.
  • Fixed: Loading bar progress bug.
  • Fixed: Presets for Loading and Hover effects.
Download this release

Release Info

Developer giucu91
Plugin Icon 128x128 Image Photo Gallery Final Tiles Grid
Version 3.5.0
Comparing to
See all releases

Code changes from version 3.4.22 to 3.5.0

FinalTilesGalleryLite.php CHANGED
@@ -3,7 +3,7 @@
3
  /**
4
  * Plugin Name: Final Tiles Grid Gallery - Image Gallery
5
  * Description: Wordpress Plugin for creating responsive image galleries.
6
- * Version: 3.4.22
7
  * Author: WPChill
8
  * Author URI: https://wpchill.com
9
  * Tested up to: 5.2
@@ -25,7 +25,7 @@
25
  * Original Author: https://profiles.wordpress.org/greentreealbs/
26
  *
27
  */
28
- define( "FTGVERSION", "3.4.22" );
29
  // Create a helper function for easy SDK access.
30
 
31
  if ( !function_exists( 'ftg_fs' ) ) {
@@ -571,7 +571,7 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
571
  if ( check_admin_referer( 'FinalTiles_gallery', 'FinalTiles_gallery' ) ) {
572
  $this->FinalTilesdb->deleteGallery( intval( $_POST['id'] ) );
573
  }
574
- exit;
575
  }
576
 
577
  public function update_configuration()
@@ -624,7 +624,7 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
624
  $this->FinalTilesdb->addImages( $id, $images );
625
  }
626
 
627
- exit;
628
  }
629
 
630
  //Add gallery scripts
3
  /**
4
  * Plugin Name: Final Tiles Grid Gallery - Image Gallery
5
  * Description: Wordpress Plugin for creating responsive image galleries.
6
+ * Version: 3.5.0
7
  * Author: WPChill
8
  * Author URI: https://wpchill.com
9
  * Tested up to: 5.2
25
  * Original Author: https://profiles.wordpress.org/greentreealbs/
26
  *
27
  */
28
+ define( "FTGVERSION", "3.5.0" );
29
  // Create a helper function for easy SDK access.
30
 
31
  if ( !function_exists( 'ftg_fs' ) ) {
571
  if ( check_admin_referer( 'FinalTiles_gallery', 'FinalTiles_gallery' ) ) {
572
  $this->FinalTilesdb->deleteGallery( intval( $_POST['id'] ) );
573
  }
574
+ return array();
575
  }
576
 
577
  public function update_configuration()
624
  $this->FinalTilesdb->addImages( $id, $images );
625
  }
626
 
627
+ return array();
628
  }
629
 
630
  //Add gallery scripts
admin/include/edit-gallery.php CHANGED
@@ -495,9 +495,11 @@ foreach ( $ftg_fields as $section => $s ) {
495
  if ( array_key_exists( "presets", $s ) ) {
496
  ?>
497
  <select class="browser-default presets" data-field-idx="<?php
498
- echo esc_attr( $idx ) ;
499
  ?>">
500
- <option value="">Select preset</option>
 
 
501
  <?php
502
  foreach ( $s["presets"] as $preset => $data ) {
503
  ?>
495
  if ( array_key_exists( "presets", $s ) ) {
496
  ?>
497
  <select class="browser-default presets" data-field-idx="<?php
498
+ echo esc_attr( $s['idx'] ) ;
499
  ?>">
500
+ <option value=""><?php
501
+ echo esc_html__( 'Select preset', 'final-tiles-grid-gallery-lite' ) ;
502
+ ?></option>
503
  <?php
504
  foreach ( $s["presets"] as $preset => $data ) {
505
  ?>
admin/include/fields.php CHANGED
@@ -15,6 +15,7 @@ $this->fields = array(
15
  ),
16
  "Hover effects" => array(
17
  "icon" => "fa fa-diamond",
 
18
  "presets" => array(
19
  "Slow zoom in" => array(
20
  "hoverDuration" => 60000,
@@ -51,6 +52,7 @@ $this->fields = array(
51
  ),
52
  "Image loaded effects" => array(
53
  "icon" => "fa fa-star",
 
54
  "presets" => array(
55
  "Wobble" => array(
56
  "loadedDuration" => 600,
15
  ),
16
  "Hover effects" => array(
17
  "icon" => "fa fa-diamond",
18
+ "idx" => 3,
19
  "presets" => array(
20
  "Slow zoom in" => array(
21
  "hoverDuration" => 60000,
52
  ),
53
  "Image loaded effects" => array(
54
  "icon" => "fa fa-star",
55
+ "idx" => 4,
56
  "presets" => array(
57
  "Wobble" => array(
58
  "loadedDuration" => 600,
admin/overview.php CHANGED
@@ -187,6 +187,7 @@
187
  e.preventDefault();
188
  var id = $(this).data("gid");
189
  FTG.show_loading();
 
190
  $.ajax({
191
  url: ajaxurl,
192
  data: {
@@ -200,7 +201,7 @@
200
  FTG.hide_loading();
201
  },
202
  success: function(r) {
203
- location.href = "?page=ftg-lite-gallery-admin";
204
  }
205
  });
206
  });
187
  e.preventDefault();
188
  var id = $(this).data("gid");
189
  FTG.show_loading();
190
+
191
  $.ajax({
192
  url: ajaxurl,
193
  data: {
201
  FTG.hide_loading();
202
  },
203
  success: function(r) {
204
+ location.href = "?page=ftg-lite-gallery-admin";
205
  }
206
  });
207
  });
admin/scripts/final-tiles-gallery-admin.js CHANGED
@@ -46,9 +46,7 @@ var FTG = function($) {
46
  FinalTiles_gallery: $('#FinalTiles_gallery').val(),
47
  gid: $("#gallery-id").val()
48
  };
49
-
50
- /* Premium Code Stripped by Freemius */
51
-
52
  $.post(ajaxurl, data, function(html) {
53
  $("#image-list").empty().append(html);
54
 
@@ -131,20 +129,14 @@ var FTG = function($) {
131
  });
132
  },
133
  update_filters: function() {
134
-
135
- /* Premium Code Stripped by Freemius */
136
-
137
  },
138
  update_custom_isf: function() {
139
  var isf = [];
140
-
141
- /* Premium Code Stripped by Freemius */
142
-
143
  },
144
  add_filter: function(value) {
145
-
146
- /* Premium Code Stripped by Freemius */
147
-
148
  },
149
  add_isf: function(value) {
150
  var $item = $("<tr><td class='del'></td><td></td><td></td></tr>");
@@ -167,19 +159,13 @@ var FTG = function($) {
167
 
168
  var source = $('[name="ftg_source"]').val();
169
 
170
-
171
- /* Premium Code Stripped by Freemius */
172
-
173
  },
174
  refresh_woocommerce: function() {
175
-
176
- /* Premium Code Stripped by Freemius */
177
-
178
  },
179
  refresh_posts: function() {
180
-
181
- /* Premium Code Stripped by Freemius */
182
-
183
  },
184
  save_gallery: function() {
185
  // !gallery save
@@ -542,9 +528,7 @@ var FTG = function($) {
542
  e.preventDefault();
543
  FTG.save_gallery();
544
  });
545
-
546
- /* Premium Code Stripped by Freemius */
547
-
548
  $("#image-list").on("click", ".item .thumb", function() {
549
  $(this).parents(".item").toggleClass("selected");
550
  $(this).parents(".item").find(".checkbox").toggleClass("checked");
@@ -622,9 +606,7 @@ var FTG = function($) {
622
  else
623
  $(".js-no-hidden").show();
624
 
625
-
626
- /* Premium Code Stripped by Freemius */
627
-
628
 
629
  var link = $item.find("[name=link]").val();
630
 
@@ -684,9 +666,7 @@ var FTG = function($) {
684
  $("[data-action='remove']").show();
685
  }
686
 
687
-
688
- /* Premium Code Stripped by Freemius */
689
-
690
  });
691
 
692
  var refreshPostsTO = 0;
@@ -712,9 +692,7 @@ var FTG = function($) {
712
  }, 500);
713
  });
714
 
715
-
716
- /* Premium Code Stripped by Freemius */
717
-
718
  $("body").on("click", "[name=click_action]", function() {
719
  if ($(this).val() == "url") {
720
  $(this).siblings("[name=url]").get(0).disabled = false;
@@ -723,7 +701,7 @@ var FTG = function($) {
723
  }
724
  });
725
  $("body").on("change", ".presets", function () {
726
- var idx = $(this).data("field-idx");
727
  for(p in presets["preset_" + idx + "_" + $(this).val()]) {
728
  $('[name="ftg_'+ p +'"]').val(presets["preset_" + idx + "_" + $(this).val()][p]).change();
729
  }
@@ -929,9 +907,7 @@ var FTG = function($) {
929
  $("#shortcode-" + code).toggleClass("visible");
930
  });
931
 
932
-
933
- /* Premium Code Stripped by Freemius */
934
-
935
 
936
  $(".open-media-panel").on("click", function(e) {
937
  e.preventDefault();
@@ -1080,22 +1056,16 @@ var FTGWizard = function($) {
1080
  $(this).text("Save");
1081
  if (branch == 'images') {
1082
  $(".select-images").show();
1083
-
1084
- /* Premium Code Stripped by Freemius */
1085
-
1086
  //$("[name=ftg_max_posts]").val(0);
1087
  } else if (branch == 'posts') {
1088
  $(".select-images").hide();
1089
  $("[name=enc_images]").val("");
1090
-
1091
- /* Premium Code Stripped by Freemius */
1092
-
1093
  } else {
1094
  $(".select-images").hide();
1095
  $("[name=enc_images]").val("");
1096
-
1097
- /* Premium Code Stripped by Freemius */
1098
-
1099
  }
1100
  } else {
1101
  $(this).text("Next");
46
  FinalTiles_gallery: $('#FinalTiles_gallery').val(),
47
  gid: $("#gallery-id").val()
48
  };
49
+
 
 
50
  $.post(ajaxurl, data, function(html) {
51
  $("#image-list").empty().append(html);
52
 
129
  });
130
  },
131
  update_filters: function() {
132
+
 
 
133
  },
134
  update_custom_isf: function() {
135
  var isf = [];
136
+
 
 
137
  },
138
  add_filter: function(value) {
139
+
 
 
140
  },
141
  add_isf: function(value) {
142
  var $item = $("<tr><td class='del'></td><td></td><td></td></tr>");
159
 
160
  var source = $('[name="ftg_source"]').val();
161
 
162
+
 
 
163
  },
164
  refresh_woocommerce: function() {
165
+
 
 
166
  },
167
  refresh_posts: function() {
168
+
 
 
169
  },
170
  save_gallery: function() {
171
  // !gallery save
528
  e.preventDefault();
529
  FTG.save_gallery();
530
  });
531
+
 
 
532
  $("#image-list").on("click", ".item .thumb", function() {
533
  $(this).parents(".item").toggleClass("selected");
534
  $(this).parents(".item").find(".checkbox").toggleClass("checked");
606
  else
607
  $(".js-no-hidden").show();
608
 
609
+
 
 
610
 
611
  var link = $item.find("[name=link]").val();
612
 
666
  $("[data-action='remove']").show();
667
  }
668
 
669
+
 
 
670
  });
671
 
672
  var refreshPostsTO = 0;
692
  }, 500);
693
  });
694
 
695
+
 
 
696
  $("body").on("click", "[name=click_action]", function() {
697
  if ($(this).val() == "url") {
698
  $(this).siblings("[name=url]").get(0).disabled = false;
701
  }
702
  });
703
  $("body").on("change", ".presets", function () {
704
+ var idx = $(this).data("field-idx");
705
  for(p in presets["preset_" + idx + "_" + $(this).val()]) {
706
  $('[name="ftg_'+ p +'"]').val(presets["preset_" + idx + "_" + $(this).val()][p]).change();
707
  }
907
  $("#shortcode-" + code).toggleClass("visible");
908
  });
909
 
910
+
 
 
911
 
912
  $(".open-media-panel").on("click", function(e) {
913
  e.preventDefault();
1056
  $(this).text("Save");
1057
  if (branch == 'images') {
1058
  $(".select-images").show();
1059
+
 
 
1060
  //$("[name=ftg_max_posts]").val(0);
1061
  } else if (branch == 'posts') {
1062
  $(".select-images").hide();
1063
  $("[name=enc_images]").val("");
1064
+
 
 
1065
  } else {
1066
  $(".select-images").hide();
1067
  $("[name=enc_images]").val("");
1068
+
 
 
1069
  }
1070
  } else {
1071
  $(this).text("Next");
freemius/assets/img/final-tiles-grid-gallery-lite.jpg ADDED
Binary file
lib/gallery-class.php CHANGED
@@ -343,12 +343,18 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
343
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .icon { margin: -" . absint( $gallery->captionIconSize ) / 2 . "px 0 0 -" . absint( $gallery->captionIconSize ) / 2 . "px; }\n";
344
  }
345
 
 
346
  if ( $gallery->captionFontSize ) {
347
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block .text-wrapper span.text { font-size:" . absint( $gallery->captionFontSize ) . "px; }\n";
 
348
  }
 
 
349
  if ( $gallery->titleFontSize ) {
350
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block .text-wrapper span.title { font-size:" . absint( $gallery->titleFontSize ) . "px; }\n";
 
351
  }
 
352
  if ( $gallery->backgroundColor ) {
353
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile { background-color: " . esc_attr( $gallery->backgroundColor ) . "; }\n";
354
  }
@@ -356,6 +362,8 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
356
  if ( $gallery->captionColor ) {
357
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block .text-wrapper span.text { color: " . esc_attr( $gallery->captionColor ) . "; }\n";
358
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block .text-wrapper span.title { color: " . esc_attr( $gallery->captionColor ) . "; }\n";
 
 
359
  }
360
 
361
  if ( $gallery->socialIconColor ) {
@@ -379,7 +387,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
379
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .tile-inner .caption-block { background-color: rgba({$bgCaption[0]}, {$bgCaption[1]}, {$bgCaption[2]}, " . absint( $gallery->captionOpacity ) / 100 . "); }\n";
380
  }
381
  if ( $gallery->captionFrame == 'T' && $gallery->captionFrameColor ) {
382
- $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block.frame .text { border-color: " . esc_attr( $gallery->captionFrameColor ) . "; }\n";
383
  }
384
  $loadedEasing = $gallery->loadedEasing;
385
  if ( $gallery->loadedEasing == "ease-out-back" ) {
@@ -426,17 +434,29 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
426
  if ( $gallery->captionMobileBehavior == "desktop" ) {
427
  $gallery->captionMobileBehavior = $gallery->captionBehavior;
428
  }
429
- $captionBehavior = ( wp_is_mobile() ? esc_attr( $gallery->captionMobileBehavior ) : esc_attr( $gallery->captionBehavior ) );
430
- $hover = ( $captionBehavior == "never" ? "" : "ftg-hover-enabled" );
431
- if ( $captionBehavior != "none" && !ftg_fs()->is_plan_or_trial( 'ultimate' ) ) {
 
 
 
 
 
 
 
 
432
  $captionBehavior = "none";
433
  }
434
  $socialClasses = "";
435
  if ( $this->hasSocial() ) {
436
  $socialClasses .= "social-icons-" . esc_attr( $gallery->socialIconPosition ) . " social-icons-" . esc_attr( $gallery->socialIconStyle );
437
  }
 
 
 
 
438
  $html .= "<a name='{$this->id}'></a>";
439
- $html .= "<div class='final-tiles-gallery {$socialClasses} {$hover} " . (( $gallery->captionFrame == 'T' ? "caption-frame" : "" )) . " caption-{$captionBehavior} caption-" . esc_attr( $gallery->captionVerticalAlignment ) . " caption-" . esc_attr( $gallery->captionHorizontalAlignment ) . "' id='ftg-" . absint( $this->id . $rid ) . "' style='width:" . esc_attr( $gallery->width ) . "'>\n";
440
  if ( strlen( $gallery->filters ) ) {
441
  }
442
  $html .= "<div class='ftg-items'>\n";
@@ -701,7 +721,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
701
 
702
  if ( !(empty($image->description) && empty($image->title)) && $this->useCaptions() || $gallery->captionEmpty == "show" || $this->hasCaptionIcon() ) {
703
  if ( $this->hasCaptionIcon() ) {
704
- $html .= "\t<span class='icon fa fa-" . $this->getCaptionIcon() . "'></span>\n";
705
  }
706
  $html .= "<div class='caption-block'>\n";
707
 
@@ -738,32 +758,39 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
738
  $html .= "</a>\n";
739
  if ( $gallery->captionPosition == 'outside' ) {
740
 
741
- if ( !(empty($image->description) && empty($image->title)) && $this->useCaptions() ) {
742
- $html .= "<span class='caption-outside'>\n";
 
 
 
743
 
744
- if ( $gallery->source == "images" ) {
745
- $html .= "\t<span>\n";
746
- if ( !empty($image->title) && $this->useCaptions() ) {
747
  $html .= "<span class='title'>" . wp_kses_post( $image->title ) . "</span>\n";
748
  }
749
- if ( !empty($image->description) && $this->useCaptions() ) {
750
  $html .= "\t<span class='text'>" . wp_kses_post( $image->description ) . "</span>\n";
751
  }
752
- $html .= "\t</span>\n";
753
  }
754
 
755
- if ( ($gallery->source == "posts" || $gallery->source == "woocommerce") && $this->useCaptions() ) {
756
- $html .= "\t<span class='text'>" . wp_kses_post( $image->description ) . "</span>\n";
757
- }
758
 
759
- if ( $gallery->source == "woocommerce" ) {
760
- $html .= "<div class='woo'>";
761
- $html .= "\t<span class='price'>" . esc_html( $image->price ) . get_woocommerce_currency_symbol() . "</span>\n";
762
- $html .= "\t<span href='" . get_site_url() . "/cart/?add-to-cart=" . absint( $image->postID ) . "'><i class='fa fa-shopping-cart add-to-cart'></i></span>";
763
- $html .= "</div>";
 
 
 
 
 
 
 
764
  }
765
 
766
- $html .= "</span>\n";
767
  }
768
 
769
  }
343
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .icon { margin: -" . absint( $gallery->captionIconSize ) / 2 . "px 0 0 -" . absint( $gallery->captionIconSize ) / 2 . "px; }\n";
344
  }
345
 
346
+
347
  if ( $gallery->captionFontSize ) {
348
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block .text-wrapper span.text { font-size:" . absint( $gallery->captionFontSize ) . "px; }\n";
349
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-outside .text-wrapper span.text { font-size:" . absint( $gallery->captionFontSize ) . "px; }\n";
350
  }
351
+
352
+
353
  if ( $gallery->titleFontSize ) {
354
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block .text-wrapper span.title { font-size:" . absint( $gallery->titleFontSize ) . "px; }\n";
355
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-outside .text-wrapper span.title { font-size:" . absint( $gallery->titleFontSize ) . "px; }\n";
356
  }
357
+
358
  if ( $gallery->backgroundColor ) {
359
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile { background-color: " . esc_attr( $gallery->backgroundColor ) . "; }\n";
360
  }
362
  if ( $gallery->captionColor ) {
363
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block .text-wrapper span.text { color: " . esc_attr( $gallery->captionColor ) . "; }\n";
364
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block .text-wrapper span.title { color: " . esc_attr( $gallery->captionColor ) . "; }\n";
365
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-outside .text-wrapper span.text { color: " . esc_attr( $gallery->captionColor ) . "; }\n";
366
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-outside .text-wrapper span.title { color: " . esc_attr( $gallery->captionColor ) . "; }\n";
367
  }
368
 
369
  if ( $gallery->socialIconColor ) {
387
  $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .tile-inner .caption-block { background-color: rgba({$bgCaption[0]}, {$bgCaption[1]}, {$bgCaption[2]}, " . absint( $gallery->captionOpacity ) / 100 . "); }\n";
388
  }
389
  if ( $gallery->captionFrame == 'T' && $gallery->captionFrameColor ) {
390
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block, #ftg-" . absint( $this->id . $rid ) . " .tile .caption-outside { border-color: " . esc_attr( $gallery->captionFrameColor ) . "; }\n";
391
  }
392
  $loadedEasing = $gallery->loadedEasing;
393
  if ( $gallery->loadedEasing == "ease-out-back" ) {
434
  if ( $gallery->captionMobileBehavior == "desktop" ) {
435
  $gallery->captionMobileBehavior = $gallery->captionBehavior;
436
  }
437
+ $captionBehavior = $gallery->captionBehavior;
438
+ $hover = ( $gallery->captionBehavior == "never" ? "" : "ftg-hover-enabled" );
439
+
440
+ if ( $gallery->captionMobileBehavior && wp_is_mobile() ) {
441
+ if ( 'none' == $gallery->captionMobileBehavior ) {
442
+ $hover = "";
443
+ }
444
+ $captionBehavior = esc_attr( $gallery->captionMobileBehavior );
445
+ }
446
+
447
+ if ( $gallery->captionBehavior != "none" && !ftg_fs()->is_plan_or_trial( 'ultimate' ) ) {
448
  $captionBehavior = "none";
449
  }
450
  $socialClasses = "";
451
  if ( $this->hasSocial() ) {
452
  $socialClasses .= "social-icons-" . esc_attr( $gallery->socialIconPosition ) . " social-icons-" . esc_attr( $gallery->socialIconStyle );
453
  }
454
+ $captionClasses = '';
455
+ if ( isset( $gallery->captionPosition ) ) {
456
+ $captionClasses = 'caption-' . esc_attr( $gallery->captionPosition );
457
+ }
458
  $html .= "<a name='{$this->id}'></a>";
459
+ $html .= "<div class='final-tiles-gallery {$socialClasses} {$hover} {$captionClasses} " . (( $gallery->captionFrame == 'T' ? "caption-frame" : "" )) . " caption-{$captionBehavior} caption-" . esc_attr( $gallery->captionVerticalAlignment ) . " caption-" . esc_attr( $gallery->captionHorizontalAlignment ) . "' id='ftg-" . absint( $this->id . $rid ) . "' style='width:" . esc_attr( $gallery->width ) . "'>\n";
460
  if ( strlen( $gallery->filters ) ) {
461
  }
462
  $html .= "<div class='ftg-items'>\n";
721
 
722
  if ( !(empty($image->description) && empty($image->title)) && $this->useCaptions() || $gallery->captionEmpty == "show" || $this->hasCaptionIcon() ) {
723
  if ( $this->hasCaptionIcon() ) {
724
+ $html .= "\t<span class='icon fa fa-" . esc_attr( $this->getCaptionIcon() ) . "'></span>\n";
725
  }
726
  $html .= "<div class='caption-block'>\n";
727
 
758
  $html .= "</a>\n";
759
  if ( $gallery->captionPosition == 'outside' ) {
760
 
761
+ if ( !(empty($image->description) && empty($image->title)) && $this->useCaptions() || $gallery->captionEmpty == "show" || $this->hasCaptionIcon() ) {
762
+ if ( $this->hasCaptionIcon() ) {
763
+ $html .= "\t<span class='icon fa fa-" . $this->getCaptionIcon() . "'></span>\n";
764
+ }
765
+ $html .= "<div class='caption-outside'>\n";
766
 
767
+ if ( $gallery->source == "images" && $this->useCaptions() ) {
768
+ $html .= "\t<div class='text-wrapper'>\n";
769
+ if ( !empty($image->title) && $gallery->wp_field_title != "none" ) {
770
  $html .= "<span class='title'>" . wp_kses_post( $image->title ) . "</span>\n";
771
  }
772
+ if ( !empty($image->description) && $gallery->wp_field_caption != "none" ) {
773
  $html .= "\t<span class='text'>" . wp_kses_post( $image->description ) . "</span>\n";
774
  }
775
+ $html .= "\t</div>\n";
776
  }
777
 
 
 
 
778
 
779
+ if ( ($gallery->source == "posts" || $gallery->source == "woocommerce") && $this->useCaptions() ) {
780
+ $html .= "\t<div class='text-wrapper'>\n";
781
+ $html .= "\t\t<span class='text'>" . wp_kses_post( $image->description ) . "</span>\n";
782
+
783
+ if ( $gallery->source == "woocommerce" ) {
784
+ $html .= "<div class='woo' data-href='" . get_site_url() . "/cart/?add-to-cart=" . absint( $image->postID ) . "'>";
785
+ $html .= "\t<span class='price'>" . esc_html( $image->price ) . get_woocommerce_currency_symbol() . "</span>\n";
786
+ $html .= "\t<span> <i class='fa fa-shopping-cart add-to-cart'></i></span>";
787
+ $html .= "</div>";
788
+ }
789
+
790
+ $html .= "\t</div>\n";
791
  }
792
 
793
+ $html .= "</div>\n";
794
  }
795
 
796
  }
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: wpchill, silkalns, freemius
3
  Tags: gallery, grid gallery, best gallery plugin, free gallery, gallery plugin, gallery grid plugin, masonry, photo gallery, image gallery, social gallery, portfolio gallery, lightbox, justified gallery
4
  Requires at least: 5.2
5
- Tested up to: 5.7
6
- Stable tag: 3.4.22
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -124,6 +124,12 @@ Currently galleries made with Envira, FooGallery, Instagram, NextGen, JetPack, M
124
  6. 52 pages documentation
125
 
126
  == Changelog ==
 
 
 
 
 
 
127
  = 3.4.22 =
128
  * Update freemius framework.
129
 
2
  Contributors: wpchill, silkalns, freemius
3
  Tags: gallery, grid gallery, best gallery plugin, free gallery, gallery plugin, gallery grid plugin, masonry, photo gallery, image gallery, social gallery, portfolio gallery, lightbox, justified gallery
4
  Requires at least: 5.2
5
+ Tested up to: 5.5
6
+ Stable tag: 3.5.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
124
  6. 52 pages documentation
125
 
126
  == Changelog ==
127
+ = 3.5.0 - 17/03/2021 =
128
+ - Fixed: After deleting/cloning a gallery the Gallery page is properly reloading.
129
+ - Fixed: Caption option on mobile.
130
+ - Fixed: Loading bar progress bug.
131
+ - Fixed: Presets for Loading and Hover effects.
132
+
133
  = 3.4.22 =
134
  * Update freemius framework.
135
 
scripts/ftg.css CHANGED
@@ -25,6 +25,8 @@
25
  .final-tiles-gallery .loading-bar i {
26
  width: 0%;
27
  display: block;
 
 
28
  }
29
  .final-tiles-gallery .tile {
30
  float: left;
@@ -37,7 +39,7 @@
37
  transition-duration: .25s;
38
  perspective: 1000px;
39
  }
40
- .final-tiles-gallery .tile.ftg-loaded {
41
  opacity: 1;
42
  display: block;
43
  }
@@ -150,6 +152,11 @@
150
  .final-tiles-gallery.caption-frame .tile .caption-block {
151
  border:1px solid #fff;
152
  }
 
 
 
 
 
153
  .final-tiles-gallery.caption-frame.caption-middle .tile .caption-block {
154
  top:10px;
155
  bottom: 10px;
@@ -279,9 +286,9 @@
279
  .final-tiles-gallery.effect-speed-fast .tile img { transition-duration: .2s; }
280
  .final-tiles-gallery.effect-speed-very-fast .tile img { transition-duration: .1s; }
281
 
282
- .final-tiles-gallery.caption-left .tile .caption-block { text-align: left; }
283
- .final-tiles-gallery.caption-center .tile .caption-block { text-align: center; }
284
- .final-tiles-gallery.caption-right .tile .caption-block { text-align: right; }
285
 
286
  /* CAPTION TOP */
287
  .final-tiles-gallery.caption-top .tile .caption-block {
@@ -423,8 +430,6 @@
423
  -ms-transform: translateY(50px);
424
  transform: translateY(50px);
425
  }
426
-
427
- /* Premium Code Stripped by Freemius */
428
 
429
  /* EFFECT FRAME */
430
  .final-tiles-gallery.effect-frame.ftg-hover-enabled .tile:hover .tile-inner:before {
25
  .final-tiles-gallery .loading-bar i {
26
  width: 0%;
27
  display: block;
28
+ height: 2px;
29
+ transition: all 1s;
30
  }
31
  .final-tiles-gallery .tile {
32
  float: left;
39
  transition-duration: .25s;
40
  perspective: 1000px;
41
  }
42
+ html body .final-tiles-gallery .ftg-items .tile.ftg-loaded {
43
  opacity: 1;
44
  display: block;
45
  }
152
  .final-tiles-gallery.caption-frame .tile .caption-block {
153
  border:1px solid #fff;
154
  }
155
+ .final-tiles-gallery.caption-frame .tile .caption-outside {
156
+ border:1px solid #fff;
157
+ padding: 0 10px;
158
+ margin-top: 3px;
159
+ }
160
  .final-tiles-gallery.caption-frame.caption-middle .tile .caption-block {
161
  top:10px;
162
  bottom: 10px;
286
  .final-tiles-gallery.effect-speed-fast .tile img { transition-duration: .2s; }
287
  .final-tiles-gallery.effect-speed-very-fast .tile img { transition-duration: .1s; }
288
 
289
+ .final-tiles-gallery.caption-left .tile .caption-block, .final-tiles-gallery.caption-left .tile .caption-outside { text-align: left; }
290
+ .final-tiles-gallery.caption-center .tile .caption-block, .final-tiles-gallery.caption-center .tile .caption-outside { text-align: center; }
291
+ .final-tiles-gallery.caption-right .tile .caption-block, .final-tiles-gallery.caption-right .tile .caption-outside { text-align: right; }
292
 
293
  /* CAPTION TOP */
294
  .final-tiles-gallery.caption-top .tile .caption-block {
430
  -ms-transform: translateY(50px);
431
  transform: translateY(50px);
432
  }
 
 
433
 
434
  /* EFFECT FRAME */
435
  .final-tiles-gallery.effect-frame.ftg-hover-enabled .tile:hover .tile-inner:before {
scripts/jquery.finalTilesGallery.js CHANGED
@@ -1,7 +1,6 @@
1
  function ftg_getURLParameter(name) {
2
  return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null
3
  }
4
-
5
  //credits James Padolsey http://james.padolsey.com/
6
  var qualifyURL = function (url) {
7
  var img = document.createElement('img');
@@ -59,9 +58,7 @@ var qualifyURL = function (url) {
59
  autoLoadURL: null,
60
  selectedFilter: '',
61
  loadMethod: 'sequential',
62
-
63
- /* Premium Code Stripped by Freemius */
64
-
65
  onComplete: function () {},
66
  onUpdate: function () {},
67
  onLoading: function () {},
@@ -299,9 +296,7 @@ var qualifyURL = function (url) {
299
  });
300
  }
301
 
302
-
303
- /* Premium Code Stripped by Freemius */
304
-
305
  this.edges.push({ left: 0, top: 0, width: this.currentWidth, index: 0 });
306
 
307
  this.isImageLoading = false;
@@ -325,9 +320,7 @@ var qualifyURL = function (url) {
325
  this.$element.find(".ftg-items").height(0).empty();
326
  this.refresh();
327
  },
328
-
329
- /* Premium Code Stripped by Freemius */
330
-
331
  printEdges: function () {
332
  this.$element.find(".edge").remove();
333
  for (i = 0; i < this.edges.length; i++) {
@@ -658,8 +651,6 @@ var qualifyURL = function (url) {
658
  var t_h = t_w * ratio;
659
  var t_h_b = t_w * ratio;
660
 
661
- //console.log("tw, th", t_w, t_h);
662
-
663
  if(this.currentGridSize) {
664
  var n = Math.floor(t_h / this.currentGridSize);
665
  if(n > 0) {
@@ -693,15 +684,13 @@ var qualifyURL = function (url) {
693
  top: 0 - (hdiff / 2)
694
  });
695
  }
696
-
697
  var transition = $t.css('transition');
698
- $t.css({
699
- display: 'block',
700
- //opacity: 1,
701
- transform: 'scale(1)'
702
- //transition: 'none'
703
  });
704
- $t.addClass("ftg-loaded");
705
 
706
  this.columns[slot.col].push(slot.top + t_h + this.settings.margin);
707
 
@@ -710,14 +699,18 @@ var qualifyURL = function (url) {
710
  });
711
  },
712
  add_to_final: function (tileIndex) {
 
 
 
 
713
  var $t = this.tiles.eq(tileIndex);
714
 
715
  var $item = $t.find('.item');
716
  var key = "tile" + tileIndex;
 
717
  var w = this.imagesData[key].width;
718
  var h = this.imagesData[key].height;
719
 
720
-
721
  var hEdge = this.higherEdge();
722
  this.print(hEdge);
723
  hEdge.tileIndex = tileIndex;
@@ -728,6 +721,9 @@ var qualifyURL = function (url) {
728
  if (hEdge.top > 0) {
729
  hEdge.top += this.settings.margin;
730
  }
 
 
 
731
 
732
  $t.css({
733
  left: hEdge.left,
@@ -844,21 +840,16 @@ var qualifyURL = function (url) {
844
  this.print(w + "x" + h);
845
  this.print("----");
846
 
 
 
 
 
847
  $t.css({
848
  width: w,
849
  height: h
850
  });
851
-
852
  var transition = $t.css('transition');
853
- $t.css({
854
- display: 'block',
855
- //opacity: 1,
856
- transform: 'scale(1)'
857
- //transition: 'none'
858
- });
859
-
860
  var ratio = w / this.imagesData[key].width;
861
-
862
  var hdiff = (this.imagesData[key].height * ratio) - h;
863
 
864
  if ($t.data("ftg-type") != "iframe")
@@ -869,6 +860,15 @@ var qualifyURL = function (url) {
869
  top: 0 - (hdiff / 2)
870
  });
871
  }
 
 
 
 
 
 
 
 
 
872
  $t.addClass("ftg-loaded");
873
  }
874
  });
@@ -884,11 +884,15 @@ var qualifyURL = function (url) {
884
  return this;
885
  };
886
 
887
- $(function () {
888
-
889
- /* Premium Code Stripped by Freemius */
 
 
890
 
891
- $(".ftg-social a").click(function(e) {
 
 
892
 
893
  e.preventDefault();
894
  var social = $(this).data("social");
1
  function ftg_getURLParameter(name) {
2
  return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null
3
  }
 
4
  //credits James Padolsey http://james.padolsey.com/
5
  var qualifyURL = function (url) {
6
  var img = document.createElement('img');
58
  autoLoadURL: null,
59
  selectedFilter: '',
60
  loadMethod: 'sequential',
61
+
 
 
62
  onComplete: function () {},
63
  onUpdate: function () {},
64
  onLoading: function () {},
296
  });
297
  }
298
 
299
+
 
 
300
  this.edges.push({ left: 0, top: 0, width: this.currentWidth, index: 0 });
301
 
302
  this.isImageLoading = false;
320
  this.$element.find(".ftg-items").height(0).empty();
321
  this.refresh();
322
  },
323
+
 
 
324
  printEdges: function () {
325
  this.$element.find(".edge").remove();
326
  for (i = 0; i < this.edges.length; i++) {
651
  var t_h = t_w * ratio;
652
  var t_h_b = t_w * ratio;
653
 
 
 
654
  if(this.currentGridSize) {
655
  var n = Math.floor(t_h / this.currentGridSize);
656
  if(n > 0) {
684
  top: 0 - (hdiff / 2)
685
  });
686
  }
 
687
  var transition = $t.css('transition');
688
+ $(window).on('load', function(){
689
+ $t.css({
690
+ display: 'block',
691
+ transform: 'scale(1)'
692
+ });
693
  });
 
694
 
695
  this.columns[slot.col].push(slot.top + t_h + this.settings.margin);
696
 
699
  });
700
  },
701
  add_to_final: function (tileIndex) {
702
+ var outside = false;
703
+ if ($('.final-tiles-gallery').hasClass('caption-outside')) {
704
+ outside = true;
705
+ }
706
  var $t = this.tiles.eq(tileIndex);
707
 
708
  var $item = $t.find('.item');
709
  var key = "tile" + tileIndex;
710
+
711
  var w = this.imagesData[key].width;
712
  var h = this.imagesData[key].height;
713
 
 
714
  var hEdge = this.higherEdge();
715
  this.print(hEdge);
716
  hEdge.tileIndex = tileIndex;
721
  if (hEdge.top > 0) {
722
  hEdge.top += this.settings.margin;
723
  }
724
+ if (outside === true) {
725
+ h += 30;
726
+ }
727
 
728
  $t.css({
729
  left: hEdge.left,
840
  this.print(w + "x" + h);
841
  this.print("----");
842
 
843
+ if (outside === true) {
844
+ h += 30;
845
+ }
846
+
847
  $t.css({
848
  width: w,
849
  height: h
850
  });
 
851
  var transition = $t.css('transition');
 
 
 
 
 
 
 
852
  var ratio = w / this.imagesData[key].width;
 
853
  var hdiff = (this.imagesData[key].height * ratio) - h;
854
 
855
  if ($t.data("ftg-type") != "iframe")
860
  top: 0 - (hdiff / 2)
861
  });
862
  }
863
+
864
+ // Set a minor timeout so that the function won't be triggered right away
865
+ setTimeout( function () {
866
+ $t.css( {
867
+ display : 'block',
868
+ transform: 'scale(1)'
869
+ } );
870
+ }, 1 );
871
+
872
  $t.addClass("ftg-loaded");
873
  }
874
  });
884
  return this;
885
  };
886
 
887
+ $(window).on('loadl', function(){
888
+ $('.loading-bar i').css({
889
+ width: '100%'
890
+ });
891
+ });
892
 
893
+ $(function () {
894
+
895
+ $(".ftg-social a").on( 'click', function(e) {
896
 
897
  e.preventDefault();
898
  var social = $(this).data("social");