Image Photo Gallery Final Tiles Grid - Version 3.4.19

Version Description

  • Escaping and Sanitization
  • Fixed edit link in admin dashboard
Download this release

Release Info

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

Code changes from version 3.4.18 to 3.4.19

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.18
7
  * Author: MachoThemes
8
  * Author URI: https://www.machothemes.com
9
  * Tested up to: 5.2
@@ -24,7 +24,7 @@
24
  * Original Author URI: https://greentreelabs.net
25
  * Original Author: https://profiles.wordpress.org/greentreealbs/
26
  */
27
- define( "FTGVERSION", "3.4.18" );
28
  // Create a helper function for easy SDK access.
29
 
30
  if ( !function_exists( "ftg_fs" ) ) {
@@ -283,7 +283,7 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
283
  wp_set_script_translations( 'FinalTiles-gallery', 'final-tiles-gallery', dirname( plugin_basename( __FILE__ ) ) . '/lib/languages/' );
284
  $galls = [ [
285
  'value' => 0,
286
- 'label' => __( 'Select gallery', 'final-tiles-grid-gallery-lite' ),
287
  ] ];
288
  $galleries = $this->FinalTilesdb->getGalleries();
289
  if ( $galleries ) {
@@ -365,20 +365,20 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
365
  ?>
366
  <div class="notice notice-info is-dismissible ftg-review-notice">
367
  <p><?php
368
- _e( 'Hey, I noticed you created a photo gallery with Final Tiles - that’s awesome! Would you mind give it a 5-star rating on WordPress to help us spread the word and boost our motivation for new featrues?', 'final-tiles-grid-gallery-lite' );
369
  ?></p>
370
  <p><strong><?php
371
- _e( 'MachoThemes', 'final-tiles-grid-gallery-lite' );
372
  ?></strong></p>
373
  <p>
374
  <a href="https://wordpress.org/support/plugin/final-tiles-grid-gallery-lite/reviews/?filter=5#new-post" class="ftg-dismiss-review-notice ftg-review-out" target="_blank" rel="noopener"><?php
375
- _e( 'Ok, you deserve it', 'final-tiles-grid-gallery-lite' );
376
  ?></a><br>
377
  <a href="#" class="ftg-dismiss-review-notice" rel="noopener"><?php
378
- _e( 'Nope, maybe later', 'final-tiles-grid-gallery-lite' );
379
  ?></a><br>
380
  <a href="#" class="ftg-dismiss-review-notice" rel="noopener"><?php
381
- _e( 'I already did', 'final-tiles-grid-gallery-lite' );
382
  ?></a><br>
383
  </p>
384
  </div>
@@ -417,7 +417,7 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
417
  global $current_screen ;
418
 
419
  if ( !empty($current_screen->id) && strpos( $current_screen->id, 'ftg' ) !== false ) {
420
- $url = 'https://wordpress.org/support/plugin/final-tiles-grid-gallery-lite/reviews/?filter=5#new-post';
421
  $text = sprintf( __( 'Please rate <strong>Final Tiles Gallery</strong> <a href="%s" target="_blank">&#9733;&#9733;&#9733;&#9733;&#9733;</a> on <a href="%s" target="_blank">WordPress.org</a> to help us spread the word. Thank you from the Final Tiles Gallery team!', 'final-tiles-grid-gallery-lite' ), $url, $url );
422
  }
423
 
@@ -481,7 +481,7 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
481
  load_plugin_textdomain( 'final-tiles-grid-gallery-lite', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
482
  foreach ( $this->fields as $s => $section ) {
483
  foreach ( $section["fields"] as $f => $field ) {
484
- $this->fields[$s]["fields"][$f]["description"] = __( $this->fields[$s]["fields"][$f]["description"], 'final-tiles-grid-gallery-lite' );
485
  }
486
  }
487
  }
@@ -556,10 +556,10 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
556
  public function attachment_fields_to_save( $post, $attachment )
557
  {
558
  if ( isset( $attachment['ftg_link'] ) ) {
559
- update_post_meta( $post['ID'], '_ftg_link', $attachment['ftg_link'] );
560
  }
561
  if ( isset( $attachment['ftg_target'] ) ) {
562
- update_post_meta( $post['ID'], '_ftg_target', $attachment['ftg_target'] );
563
  }
564
  return $post;
565
  }
@@ -739,8 +739,8 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
739
  );
740
  $add_gallery = add_submenu_page(
741
  'ftg-lite-gallery-admin',
742
- __( 'FinalTiles Gallery >> Add Gallery', 'final-tiles-grid-gallery-lite' ),
743
- __( 'Add Gallery', 'final-tiles-grid-gallery-lite' ),
744
  'edit_posts',
745
  'ftg-add-gallery',
746
  array( $this, 'add_gallery' )
@@ -872,12 +872,12 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
872
 
873
  if ( $_POST['source'] == 'posts' ) {
874
  foreach ( explode( ",", $_POST["id"] ) as $id ) {
875
- update_post_meta( intval( $id ), 'ftg_filters', $_POST['filters'] );
876
  }
877
  } else {
878
  foreach ( explode( ",", $_POST["id"] ) as $id ) {
879
  $result = $this->FinalTilesdb->editImage( $id, array(
880
- "filters" => $_POST["filters"],
881
  ) );
882
  }
883
  }
@@ -905,12 +905,12 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
905
 
906
  if ( $_POST['source'] == 'posts' ) {
907
  foreach ( explode( ",", $_POST["id"] ) as $id ) {
908
- update_post_meta( intval( $id ), 'ftg_group', $_POST['group'] );
909
  }
910
  } else {
911
  foreach ( explode( ",", $_POST["id"] ) as $id ) {
912
  $result = $this->FinalTilesdb->editImage( $id, array(
913
- "group" => $_POST["group"],
914
  ) );
915
  }
916
  }
@@ -1008,20 +1008,20 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
1008
  $result = true;
1009
  $postId = intval( $_POST['post_id'] );
1010
  $img_url = stripslashes( $_POST['img_url'] );
1011
- update_post_meta( $postId, 'ftg_image_url', $img_url );
1012
  if ( array_key_exists( "filters", $_POST ) && strlen( $_POST['filters'] ) ) {
1013
- update_post_meta( $postId, 'ftg_filters', $_POST['filters'] );
1014
  }
1015
  } else {
1016
- $type = $_POST['type'];
1017
  $imageUrl = stripslashes( $_POST['img_url'] );
1018
- $imageCaption = stripslashes( $_POST['description'] );
1019
  $filters = stripslashes( $_POST['filters'] );
1020
- $title = stripslashes( $_POST['imageTitle'] );
1021
- $target = $_POST['target'];
1022
- $group = $_POST['group'];
1023
- $alt = $_POST['alt'];
1024
- $hidden = $_POST['hidden'];
1025
  $link = ( isset( $_POST['link'] ) ? stripslashes( $_POST['link'] ) : null );
1026
  $imageId = intval( $_POST['img_id'] );
1027
  $sortOrder = intval( $_POST['sortOrder'] );
@@ -1070,7 +1070,7 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
1070
  $type = ( isset( $_POST['type'] ) ? $_POST['type'] : "" );
1071
  $data = array(
1072
  "imagePath" => stripslashes( $_POST["embed"] ),
1073
- "filters" => stripslashes( $_POST['filters'] ),
1074
  "gid" => intval( $_POST['galleryId'] ),
1075
  );
1076
  $id = ( isset( $_POST['id'] ) ? intval( $_POST['id'] ) : "" );
@@ -1133,17 +1133,17 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
1133
 
1134
  if ( check_admin_referer( 'FinalTiles_gallery', 'FinalTiles_gallery' ) ) {
1135
  $data = $this->defaultValues;
1136
- $data["name"] = $_POST['ftg_name'];
1137
- $data["description"] = $_POST['ftg_description'];
1138
- $data["source"] = $_POST['ftg_source'];
1139
- $data["wp_field_caption"] = $_POST['ftg_wp_field_caption'];
1140
- $data["wp_field_title"] = $_POST['ftg_wp_field_title'];
1141
- $data["captionEffect"] = $_POST['ftg_captionEffect'];
1142
- $data["post_types"] = $_POST["post_types"];
1143
- $data["layout"] = $_POST["layout"];
1144
- $data["defaultWooImageSize"] = $_POST['def_imgsize'];
1145
- $data["defaultPostImageSize"] = $_POST['def_imgsize'];
1146
- $data["woo_categories"] = $_POST["woo_categories"];
1147
  $result = $this->FinalTilesdb->addGallery( $data );
1148
  $id = $this->FinalTilesdb->getNewGalleryId();
1149
 
@@ -1179,40 +1179,40 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
1179
  $margin = intval( $_POST['ftg_margin'] );
1180
  $minTileWidth = intval( $_POST['ftg_minTileWidth'] );
1181
  $gridCellSize = intval( $_POST['ftg_gridCellSize'] );
1182
- $imagesOrder = $_POST['ftg_imagesOrder'];
1183
- $width = $_POST['ftg_width'];
1184
  $enableTwitter = $this->checkboxVal( 'ftg_enableTwitter' );
1185
  $filterClick = $this->checkboxVal( 'ftg_filterClick' );
1186
  $enableFacebook = $this->checkboxVal( 'ftg_enableFacebook' );
1187
  $enableGplus = $this->checkboxVal( 'ftg_enableGplus' );
1188
  $enablePinterest = $this->checkboxVal( 'ftg_enablePinterest' );
1189
- $lightbox = $_POST['ftg_lightbox'];
1190
- $mobileLightbox = $_POST['ftg_mobileLightbox'];
1191
  $blank = $this->checkboxVal( 'ftg_blank' );
1192
- $filters = $_POST['ftg_filters'];
1193
  $scrollEffect = $_POST['ftg_scrollEffect'];
1194
- $captionBehavior = $_POST['ftg_captionBehavior'];
1195
- $captionMobileBehavior = $_POST['ftg_captionMobileBehavior'];
1196
- $captionEffect = $_POST['ftg_captionEffect'];
1197
- $captionColor = $_POST['ftg_captionColor'];
1198
- $captionBackgroundColor = $_POST['ftg_captionBackgroundColor'];
1199
- $captionEasing = $_POST['ftg_captionEasing'];
1200
- $captionHorizontalAlignment = $_POST['ftg_captionHorizontalAlignment'];
1201
- $captionVerticalAlignment = $_POST['ftg_captionVerticalAlignment'];
1202
- $captionEmpty = $_POST['ftg_captionEmpty'];
1203
  $captionOpacity = intval( $_POST['ftg_captionOpacity'] );
1204
  $borderSize = intval( $_POST['ftg_borderSize'] );
1205
- $borderColor = $_POST['ftg_borderColor'];
1206
  $titleFontSize = intval( $_POST['ftg_titleFontSize'] );
1207
- $loadingBarColor = $_POST['ftg_loadingBarColor'];
1208
- $loadingBarBackgroundColor = $_POST['ftg_loadingBarBackgroundColor'];
1209
  $borderRadius = intval( $_POST['ftg_borderRadius'] );
1210
- $allFilterLabel = $_POST['ftg_allFilterLabel'];
1211
- $shadowColor = $_POST['ftg_shadowColor'];
1212
  $shadowSize = intval( $_POST['ftg_shadowSize'] );
1213
  $enlargeImages = $this->checkboxVal( 'ftg_enlargeImages' );
1214
- $wp_field_caption = $_POST['ftg_wp_field_caption'];
1215
- $wp_field_title = $_POST['ftg_wp_field_title'];
1216
  $style = $_POST['ftg_style'];
1217
  $script = $_POST['ftg_script'];
1218
  $loadedHSlide = intval( $_POST['ftg_loadedHSlide'] );
@@ -1220,16 +1220,16 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
1220
  $captionEffectDuration = intval( $_POST['ftg_captionEffectDuration'] );
1221
  $id = ( isset( $_POST['ftg_gallery_edit'] ) ? intval( $_POST['ftg_gallery_edit'] ) : 0 );
1222
  $data = array(
1223
- 'ajaxLoading' => $_POST['ftg_ajaxLoading'],
1224
- 'layout' => $_POST['ftg_layout'],
1225
  'name' => $galleryName,
1226
  'slug' => $slug,
1227
  'description' => $galleryDescription,
1228
  'lightbox' => $lightbox,
1229
- 'lightboxOptions' => $_POST['ftg_lightboxOptions'],
1230
- 'lightboxOptionsMobile' => $_POST['lightboxOptionsMobile'],
1231
  'mobileLightbox' => $mobileLightbox,
1232
- 'lightboxImageSize' => $_POST['ftg_lightboxImageSize'],
1233
  'blank' => $blank,
1234
  'margin' => $margin,
1235
  'allFilterLabel' => $allFilterLabel,
@@ -1237,41 +1237,41 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
1237
  'gridCellSize' => $gridCellSize,
1238
  'gridCellSizeDisabledBelow' => intval( $_POST['ftg_gridCellSizeDisabledBelow'] ),
1239
  'enableTwitter' => $enableTwitter,
1240
- 'backgroundColor' => $_POST['ftg_backgroundColor'],
1241
  'filterClick' => $filterClick,
1242
  'disableLightboxGroups' => $this->checkboxVal( 'ftg_disableLightboxGroups' ),
1243
- 'defaultFilter' => $_POST['ftg_filterDef'],
1244
  'enableFacebook' => $enableFacebook,
1245
  'enableGplus' => $enableGplus,
1246
  'enablePinterest' => $enablePinterest,
1247
  'imagesOrder' => $imagesOrder,
1248
  'compressHTML' => $this->checkboxVal( 'ftg_compressHTML' ),
1249
- 'loadMethod' => $_POST['ftg_loadMethod'],
1250
- 'socialIconColor' => $_POST['ftg_socialIconColor'],
1251
- 'socialIconPosition' => $_POST['ftg_socialIconPosition'],
1252
- 'socialIconStyle' => $_POST['ftg_socialIconStyle'],
1253
- 'recentPostsCaption' => $_POST['ftg_recentPostsCaption'],
1254
  'recentPostsCaptionAutoExcerptLength' => intval( $_POST['ftg_recentPostsCaptionAutoExcerptLength'] ),
1255
  'captionBehavior' => $captionBehavior,
1256
  'captionEffect' => $captionEffect,
1257
  'captionEmpty' => $captionEmpty,
1258
  'captionBackgroundColor' => $captionBackgroundColor,
1259
  'captionColor' => $captionColor,
1260
- 'captionCustomFields' => $_POST['ftg_captionCustomFields'],
1261
- 'captionFrameColor' => $_POST['ftg_captionFrameColor'],
1262
  'captionEffectDuration' => $captionEffectDuration,
1263
  'captionEasing' => $captionEasing,
1264
  'captionVerticalAlignment' => $captionVerticalAlignment,
1265
  'captionHorizontalAlignment' => $captionHorizontalAlignment,
1266
  'captionMobileBehavior' => $captionMobileBehavior,
1267
  'captionOpacity' => $captionOpacity,
1268
- 'captionIcon' => $_POST['ftg_captionIcon'],
1269
  'captionFrame' => $this->checkboxVal( 'ftg_captionFrame' ),
1270
- 'customCaptionIcon' => $_POST['ftg_customCaptionIcon'],
1271
- 'captionIconColor' => $_POST['ftg_captionIconColor'],
1272
  'captionIconSize' => intval( $_POST['ftg_captionIconSize'] ),
1273
  'captionFontSize' => intval( $_POST['ftg_captionFontSize'] ),
1274
- 'captionPosition' => $_POST['ftg_captionPosition'],
1275
  'titleFontSize' => intval( $_POST['ftg_titleFontSize'] ),
1276
  'hoverZoom' => intval( $_POST['ftg_hoverZoom'] ),
1277
  'hoverRotation' => intval( $_POST['ftg_hoverRotation'] ),
@@ -1291,8 +1291,8 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
1291
  'imageSizeFactorTabletPortrait' => intval( $_POST['ftg_imageSizeFactorTabletPortrait'] ),
1292
  'imageSizeFactorPhoneLandscape' => intval( $_POST['ftg_imageSizeFactorPhoneLandscape'] ),
1293
  'imageSizeFactorPhonePortrait' => intval( $_POST['ftg_imageSizeFactorPhonePortrait'] ),
1294
- 'imageSizeFactorCustom' => $_POST['ftg_imageSizeFactorCustom'],
1295
- 'taxonomyAsFilter' => $_POST['ftg_taxonomyAsFilter'],
1296
  'columns' => intval( $_POST['ftg_columns'] ),
1297
  'columnsTabletLandscape' => intval( $_POST['ftg_columnsTabletLandscape'] ),
1298
  'columnsTabletPortrait' => intval( $_POST['ftg_columnsTabletPortrait'] ),
@@ -1301,33 +1301,32 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
1301
  'max_posts' => intval( $_POST['ftg_max_posts'] ),
1302
  'shadowSize' => $shadowSize,
1303
  'shadowColor' => $shadowColor,
1304
- 'source' => $_POST['ftg_source'],
1305
- 'post_types' => $_POST['ftg_post_types'],
1306
- 'post_taxonomies' => $_POST['ftg_post_taxonomies'],
1307
- 'taxonomyOperator' => $_POST['ftg_taxonomyOperator'],
1308
- 'post_tags' => $_POST['ftg_post_tags'],
1309
  'tilesPerPage' => intval( $_POST['ftg_tilesPerPage'] ),
1310
  'woo_categories' => ( isset( $_POST['ftg_woo_categories'] ) ? $_POST['ftg_woo_categories'] : '' ),
1311
- 'defaultPostImageSize' => $_POST['ftg_defaultPostImageSize'],
1312
  'defaultWooImageSize' => ( isset( $_POST['ftg_defaultWooImageSize'] ) ? $_POST['ftg_defaultWooImageSize'] : '' ),
1313
  'width' => $width,
1314
- 'beforeGalleryText' => $_POST['ftg_beforeGalleryText'],
1315
- 'afterGalleryText' => $_POST['ftg_afterGalleryText'],
1316
- 'aClass' => $_POST['ftg_aClass'],
1317
- 'rel' => $_POST['ftg_rel'],
1318
  'style' => $style,
1319
  'delay' => intval( $_POST['ftg_delay'] ),
1320
  'script' => $script,
1321
  'support' => $this->checkboxVal( 'ftg_support' ),
1322
- 'supportText' => $_POST['ftg_supportText'],
1323
  'scrollEffect' => $scrollEffect,
1324
  'loadedScaleY' => intval( $_POST['ftg_loadedScaleY'] ),
1325
  'loadedScaleX' => intval( $_POST['ftg_loadedScaleX'] ),
1326
- 'loadedRotate' => $loadedRotate,
1327
  'loadedHSlide' => $loadedHSlide,
1328
  'loadedVSlide' => $loadedVSlide,
1329
- 'loadedEasing' => $_POST['ftg_loadedEasing'],
1330
- 'loadedDuration' => $_POST['ftg_loadedDuration'],
1331
  'loadedRotateY' => intval( $_POST['ftg_loadedRotateY'] ),
1332
  'loadedRotateX' => intval( $_POST['ftg_loadedRotateX'] ),
1333
  );
@@ -1468,6 +1467,7 @@ if ( !class_exists( 'FinalTiles_Gallery' ) ) {
1468
  $this->photon_removed = remove_filter( 'image_downsize', array( Jetpack_Photon::instance(), 'filter_image_downsize' ) );
1469
  }
1470
  return $this->create_gallery( $atts );
 
1471
  if ( $this->photon_removed ) {
1472
  add_filter(
1473
  'image_downsize',
3
  /**
4
  * Plugin Name: Final Tiles Grid Gallery - Image Gallery
5
  * Description: Wordpress Plugin for creating responsive image galleries.
6
+ * Version: 3.4.19
7
  * Author: MachoThemes
8
  * Author URI: https://www.machothemes.com
9
  * Tested up to: 5.2
24
  * Original Author URI: https://greentreelabs.net
25
  * Original Author: https://profiles.wordpress.org/greentreealbs/
26
  */
27
+ define( "FTGVERSION", "3.4.19" );
28
  // Create a helper function for easy SDK access.
29
 
30
  if ( !function_exists( "ftg_fs" ) ) {
283
  wp_set_script_translations( 'FinalTiles-gallery', 'final-tiles-gallery', dirname( plugin_basename( __FILE__ ) ) . '/lib/languages/' );
284
  $galls = [ [
285
  'value' => 0,
286
+ 'label' => esc_html__( 'Select gallery', 'final-tiles-grid-gallery-lite' ),
287
  ] ];
288
  $galleries = $this->FinalTilesdb->getGalleries();
289
  if ( $galleries ) {
365
  ?>
366
  <div class="notice notice-info is-dismissible ftg-review-notice">
367
  <p><?php
368
+ esc_html_e( 'Hey, I noticed you created a photo gallery with Final Tiles - that’s awesome! Would you mind give it a 5-star rating on WordPress to help us spread the word and boost our motivation for new featrues?', 'final-tiles-grid-gallery-lite' );
369
  ?></p>
370
  <p><strong><?php
371
+ esc_html_e( 'MachoThemes', 'final-tiles-grid-gallery-lite' );
372
  ?></strong></p>
373
  <p>
374
  <a href="https://wordpress.org/support/plugin/final-tiles-grid-gallery-lite/reviews/?filter=5#new-post" class="ftg-dismiss-review-notice ftg-review-out" target="_blank" rel="noopener"><?php
375
+ esc_html_e( 'Ok, you deserve it', 'final-tiles-grid-gallery-lite' );
376
  ?></a><br>
377
  <a href="#" class="ftg-dismiss-review-notice" rel="noopener"><?php
378
+ esc_html_e( 'Nope, maybe later', 'final-tiles-grid-gallery-lite' );
379
  ?></a><br>
380
  <a href="#" class="ftg-dismiss-review-notice" rel="noopener"><?php
381
+ esc_html_e( 'I already did', 'final-tiles-grid-gallery-lite' );
382
  ?></a><br>
383
  </p>
384
  </div>
417
  global $current_screen ;
418
 
419
  if ( !empty($current_screen->id) && strpos( $current_screen->id, 'ftg' ) !== false ) {
420
+ $url = esc_url( 'https://wordpress.org/support/plugin/final-tiles-grid-gallery-lite/reviews/?filter=5#new-post' );
421
  $text = sprintf( __( 'Please rate <strong>Final Tiles Gallery</strong> <a href="%s" target="_blank">&#9733;&#9733;&#9733;&#9733;&#9733;</a> on <a href="%s" target="_blank">WordPress.org</a> to help us spread the word. Thank you from the Final Tiles Gallery team!', 'final-tiles-grid-gallery-lite' ), $url, $url );
422
  }
423
 
481
  load_plugin_textdomain( 'final-tiles-grid-gallery-lite', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
482
  foreach ( $this->fields as $s => $section ) {
483
  foreach ( $section["fields"] as $f => $field ) {
484
+ $this->fields[$s]["fields"][$f]["description"] = esc_html__( $this->fields[$s]["fields"][$f]["description"], 'final-tiles-grid-gallery-lite' );
485
  }
486
  }
487
  }
556
  public function attachment_fields_to_save( $post, $attachment )
557
  {
558
  if ( isset( $attachment['ftg_link'] ) ) {
559
+ update_post_meta( $post['ID'], '_ftg_link', esc_url_raw( $attachment['ftg_link'] ) );
560
  }
561
  if ( isset( $attachment['ftg_target'] ) ) {
562
+ update_post_meta( $post['ID'], '_ftg_target', sanitize_text_field( $attachment['ftg_target'] ) );
563
  }
564
  return $post;
565
  }
739
  );
740
  $add_gallery = add_submenu_page(
741
  'ftg-lite-gallery-admin',
742
+ esc_html__( 'FinalTiles Gallery >> Add Gallery', 'final-tiles-grid-gallery-lite' ),
743
+ esc_html__( 'Add Gallery', 'final-tiles-grid-gallery-lite' ),
744
  'edit_posts',
745
  'ftg-add-gallery',
746
  array( $this, 'add_gallery' )
872
 
873
  if ( $_POST['source'] == 'posts' ) {
874
  foreach ( explode( ",", $_POST["id"] ) as $id ) {
875
+ update_post_meta( intval( $id ), 'ftg_filters', sanitize_text_field( $_POST['filters'] ) );
876
  }
877
  } else {
878
  foreach ( explode( ",", $_POST["id"] ) as $id ) {
879
  $result = $this->FinalTilesdb->editImage( $id, array(
880
+ "filters" => sanitize_text_field( $_POST["filters"] ),
881
  ) );
882
  }
883
  }
905
 
906
  if ( $_POST['source'] == 'posts' ) {
907
  foreach ( explode( ",", $_POST["id"] ) as $id ) {
908
+ update_post_meta( intval( $id ), 'ftg_group', sanitize_text_field( $_POST['group'] ) );
909
  }
910
  } else {
911
  foreach ( explode( ",", $_POST["id"] ) as $id ) {
912
  $result = $this->FinalTilesdb->editImage( $id, array(
913
+ "group" => sanitize_text_field( $_POST["group"] ),
914
  ) );
915
  }
916
  }
1008
  $result = true;
1009
  $postId = intval( $_POST['post_id'] );
1010
  $img_url = stripslashes( $_POST['img_url'] );
1011
+ update_post_meta( $postId, 'ftg_image_url', esc_url_raw( $img_url ) );
1012
  if ( array_key_exists( "filters", $_POST ) && strlen( $_POST['filters'] ) ) {
1013
+ update_post_meta( $postId, 'ftg_filters', sanitize_text_field( $_POST['filters'] ) );
1014
  }
1015
  } else {
1016
+ $type = sanitize_text_field( $_POST['type'] );
1017
  $imageUrl = stripslashes( $_POST['img_url'] );
1018
+ $imageCaption = wp_kses_post( $_POST['description'] );
1019
  $filters = stripslashes( $_POST['filters'] );
1020
+ $title = esc_html( $_POST['imageTitle'] );
1021
+ $target = sanitize_text_field( $_POST['target'] );
1022
+ $group = sanitize_text_field( $_POST['group'] );
1023
+ $alt = sanitize_text_field( $_POST['alt'] );
1024
+ $hidden = $this->checkboxVal( 'hidden' );
1025
  $link = ( isset( $_POST['link'] ) ? stripslashes( $_POST['link'] ) : null );
1026
  $imageId = intval( $_POST['img_id'] );
1027
  $sortOrder = intval( $_POST['sortOrder'] );
1070
  $type = ( isset( $_POST['type'] ) ? $_POST['type'] : "" );
1071
  $data = array(
1072
  "imagePath" => stripslashes( $_POST["embed"] ),
1073
+ "filters" => sanitize_text_field( $_POST['filters'] ),
1074
  "gid" => intval( $_POST['galleryId'] ),
1075
  );
1076
  $id = ( isset( $_POST['id'] ) ? intval( $_POST['id'] ) : "" );
1133
 
1134
  if ( check_admin_referer( 'FinalTiles_gallery', 'FinalTiles_gallery' ) ) {
1135
  $data = $this->defaultValues;
1136
+ $data["name"] = wp_filter_post_kses( $_POST['ftg_name'] );
1137
+ $data["description"] = wp_filter_post_kses( $_POST['ftg_description'] );
1138
+ $data["source"] = sanitize_text_field( $_POST['ftg_source'] );
1139
+ $data["wp_field_caption"] = sanitize_text_field( $_POST['ftg_wp_field_caption'] );
1140
+ $data["wp_field_title"] = sanitize_text_field( $_POST['ftg_wp_field_title'] );
1141
+ $data["captionEffect"] = sanitize_text_field( $_POST['ftg_captionEffect'] );
1142
+ $data["post_types"] = sanitize_text_field( $_POST["post_types"] );
1143
+ $data["layout"] = sanitize_text_field( $_POST["layout"] );
1144
+ $data["defaultWooImageSize"] = sanitize_text_field( $_POST['def_imgsize'] );
1145
+ $data["defaultPostImageSize"] = sanitize_text_field( $_POST['def_imgsize'] );
1146
+ $data["woo_categories"] = sanitize_text_field( $_POST["woo_categories"] );
1147
  $result = $this->FinalTilesdb->addGallery( $data );
1148
  $id = $this->FinalTilesdb->getNewGalleryId();
1149
 
1179
  $margin = intval( $_POST['ftg_margin'] );
1180
  $minTileWidth = intval( $_POST['ftg_minTileWidth'] );
1181
  $gridCellSize = intval( $_POST['ftg_gridCellSize'] );
1182
+ $imagesOrder = sanitize_text_field( $_POST['ftg_imagesOrder'] );
1183
+ $width = sanitize_text_field( $_POST['ftg_width'] );
1184
  $enableTwitter = $this->checkboxVal( 'ftg_enableTwitter' );
1185
  $filterClick = $this->checkboxVal( 'ftg_filterClick' );
1186
  $enableFacebook = $this->checkboxVal( 'ftg_enableFacebook' );
1187
  $enableGplus = $this->checkboxVal( 'ftg_enableGplus' );
1188
  $enablePinterest = $this->checkboxVal( 'ftg_enablePinterest' );
1189
+ $lightbox = sanitize_text_field( $_POST['ftg_lightbox'] );
1190
+ $mobileLightbox = sanitize_text_field( $_POST['ftg_mobileLightbox'] );
1191
  $blank = $this->checkboxVal( 'ftg_blank' );
1192
+ $filters = sanitize_text_field( $_POST['ftg_filters'] );
1193
  $scrollEffect = $_POST['ftg_scrollEffect'];
1194
+ $captionBehavior = sanitize_text_field( $_POST['ftg_captionBehavior'] );
1195
+ $captionMobileBehavior = sanitize_text_field( $_POST['ftg_captionMobileBehavior'] );
1196
+ $captionEffect = sanitize_text_field( $_POST['ftg_captionEffect'] );
1197
+ $captionColor = sanitize_hex_color( $_POST['ftg_captionColor'] );
1198
+ $captionBackgroundColor = sanitize_hex_color( $_POST['ftg_captionBackgroundColor'] );
1199
+ $captionEasing = sanitize_text_field( $_POST['ftg_captionEasing'] );
1200
+ $captionHorizontalAlignment = sanitize_text_field( $_POST['ftg_captionHorizontalAlignment'] );
1201
+ $captionVerticalAlignment = sanitize_text_field( $_POST['ftg_captionVerticalAlignment'] );
1202
+ $captionEmpty = sanitize_text_field( $_POST['ftg_captionEmpty'] );
1203
  $captionOpacity = intval( $_POST['ftg_captionOpacity'] );
1204
  $borderSize = intval( $_POST['ftg_borderSize'] );
1205
+ $borderColor = sanitize_hex_color( $_POST['ftg_borderColor'] );
1206
  $titleFontSize = intval( $_POST['ftg_titleFontSize'] );
1207
+ $loadingBarColor = sanitize_hex_color( $_POST['ftg_loadingBarColor'] );
1208
+ $loadingBarBackgroundColor = sanitize_hex_color( $_POST['ftg_loadingBarBackgroundColor'] );
1209
  $borderRadius = intval( $_POST['ftg_borderRadius'] );
1210
+ $allFilterLabel = sanitize_text_field( $_POST['ftg_allFilterLabel'] );
1211
+ $shadowColor = sanitize_hex_color( $_POST['ftg_shadowColor'] );
1212
  $shadowSize = intval( $_POST['ftg_shadowSize'] );
1213
  $enlargeImages = $this->checkboxVal( 'ftg_enlargeImages' );
1214
+ $wp_field_caption = sanitize_text_field( $_POST['ftg_wp_field_caption'] );
1215
+ $wp_field_title = sanitize_text_field( $_POST['ftg_wp_field_title'] );
1216
  $style = $_POST['ftg_style'];
1217
  $script = $_POST['ftg_script'];
1218
  $loadedHSlide = intval( $_POST['ftg_loadedHSlide'] );
1220
  $captionEffectDuration = intval( $_POST['ftg_captionEffectDuration'] );
1221
  $id = ( isset( $_POST['ftg_gallery_edit'] ) ? intval( $_POST['ftg_gallery_edit'] ) : 0 );
1222
  $data = array(
1223
+ 'ajaxLoading' => sanitize_text_field( $_POST['ftg_ajaxLoading'] ),
1224
+ 'layout' => sanitize_text_field( $_POST['ftg_layout'] ),
1225
  'name' => $galleryName,
1226
  'slug' => $slug,
1227
  'description' => $galleryDescription,
1228
  'lightbox' => $lightbox,
1229
+ 'lightboxOptions' => sanitize_text_field( $_POST['ftg_lightboxOptions'] ),
1230
+ 'lightboxOptionsMobile' => sanitize_text_field( $_POST['lightboxOptionsMobile'] ),
1231
  'mobileLightbox' => $mobileLightbox,
1232
+ 'lightboxImageSize' => sanitize_text_field( $_POST['ftg_lightboxImageSize'] ),
1233
  'blank' => $blank,
1234
  'margin' => $margin,
1235
  'allFilterLabel' => $allFilterLabel,
1237
  'gridCellSize' => $gridCellSize,
1238
  'gridCellSizeDisabledBelow' => intval( $_POST['ftg_gridCellSizeDisabledBelow'] ),
1239
  'enableTwitter' => $enableTwitter,
1240
+ 'backgroundColor' => sanitize_hex_color( $_POST['ftg_backgroundColor'] ),
1241
  'filterClick' => $filterClick,
1242
  'disableLightboxGroups' => $this->checkboxVal( 'ftg_disableLightboxGroups' ),
1243
+ 'defaultFilter' => sanitize_text_field( $_POST['ftg_filterDef'] ),
1244
  'enableFacebook' => $enableFacebook,
1245
  'enableGplus' => $enableGplus,
1246
  'enablePinterest' => $enablePinterest,
1247
  'imagesOrder' => $imagesOrder,
1248
  'compressHTML' => $this->checkboxVal( 'ftg_compressHTML' ),
1249
+ 'loadMethod' => sanitize_text_field( $_POST['ftg_loadMethod'] ),
1250
+ 'socialIconColor' => sanitize_hex_color( $_POST['ftg_socialIconColor'] ),
1251
+ 'socialIconPosition' => sanitize_text_field( $_POST['ftg_socialIconPosition'] ),
1252
+ 'socialIconStyle' => sanitize_text_field( $_POST['ftg_socialIconStyle'] ),
1253
+ 'recentPostsCaption' => sanitize_text_field( $_POST['ftg_recentPostsCaption'] ),
1254
  'recentPostsCaptionAutoExcerptLength' => intval( $_POST['ftg_recentPostsCaptionAutoExcerptLength'] ),
1255
  'captionBehavior' => $captionBehavior,
1256
  'captionEffect' => $captionEffect,
1257
  'captionEmpty' => $captionEmpty,
1258
  'captionBackgroundColor' => $captionBackgroundColor,
1259
  'captionColor' => $captionColor,
1260
+ 'captionCustomFields' => wp_kses_post( $_POST['ftg_captionCustomFields'] ),
1261
+ 'captionFrameColor' => sanitize_hex_color( $_POST['ftg_captionFrameColor'] ),
1262
  'captionEffectDuration' => $captionEffectDuration,
1263
  'captionEasing' => $captionEasing,
1264
  'captionVerticalAlignment' => $captionVerticalAlignment,
1265
  'captionHorizontalAlignment' => $captionHorizontalAlignment,
1266
  'captionMobileBehavior' => $captionMobileBehavior,
1267
  'captionOpacity' => $captionOpacity,
1268
+ 'captionIcon' => sanitize_text_field( $_POST['ftg_captionIcon'] ),
1269
  'captionFrame' => $this->checkboxVal( 'ftg_captionFrame' ),
1270
+ 'customCaptionIcon' => sanitize_text_field( $_POST['ftg_customCaptionIcon'] ),
1271
+ 'captionIconColor' => sanitize_hex_color( $_POST['ftg_captionIconColor'] ),
1272
  'captionIconSize' => intval( $_POST['ftg_captionIconSize'] ),
1273
  'captionFontSize' => intval( $_POST['ftg_captionFontSize'] ),
1274
+ 'captionPosition' => sanitize_text_field( $_POST['ftg_captionPosition'] ),
1275
  'titleFontSize' => intval( $_POST['ftg_titleFontSize'] ),
1276
  'hoverZoom' => intval( $_POST['ftg_hoverZoom'] ),
1277
  'hoverRotation' => intval( $_POST['ftg_hoverRotation'] ),
1291
  'imageSizeFactorTabletPortrait' => intval( $_POST['ftg_imageSizeFactorTabletPortrait'] ),
1292
  'imageSizeFactorPhoneLandscape' => intval( $_POST['ftg_imageSizeFactorPhoneLandscape'] ),
1293
  'imageSizeFactorPhonePortrait' => intval( $_POST['ftg_imageSizeFactorPhonePortrait'] ),
1294
+ 'imageSizeFactorCustom' => sanitize_text_field( $_POST['ftg_imageSizeFactorCustom'] ),
1295
+ 'taxonomyAsFilter' => sanitize_text_field( $_POST['ftg_taxonomyAsFilter'] ),
1296
  'columns' => intval( $_POST['ftg_columns'] ),
1297
  'columnsTabletLandscape' => intval( $_POST['ftg_columnsTabletLandscape'] ),
1298
  'columnsTabletPortrait' => intval( $_POST['ftg_columnsTabletPortrait'] ),
1301
  'max_posts' => intval( $_POST['ftg_max_posts'] ),
1302
  'shadowSize' => $shadowSize,
1303
  'shadowColor' => $shadowColor,
1304
+ 'source' => sanitize_text_field( $_POST['ftg_source'] ),
1305
+ 'post_types' => sanitize_text_field( $_POST['ftg_post_types'] ),
1306
+ 'post_taxonomies' => sanitize_text_field( $_POST['ftg_post_taxonomies'] ),
1307
+ 'taxonomyOperator' => sanitize_text_field( $_POST['ftg_taxonomyOperator'] ),
1308
+ 'post_tags' => sanitize_text_field( $_POST['ftg_post_tags'] ),
1309
  'tilesPerPage' => intval( $_POST['ftg_tilesPerPage'] ),
1310
  'woo_categories' => ( isset( $_POST['ftg_woo_categories'] ) ? $_POST['ftg_woo_categories'] : '' ),
1311
+ 'defaultPostImageSize' => sanitize_text_field( $_POST['ftg_defaultPostImageSize'] ),
1312
  'defaultWooImageSize' => ( isset( $_POST['ftg_defaultWooImageSize'] ) ? $_POST['ftg_defaultWooImageSize'] : '' ),
1313
  'width' => $width,
1314
+ 'beforeGalleryText' => wp_kses_post( $_POST['ftg_beforeGalleryText'] ),
1315
+ 'afterGalleryText' => wp_kses_post( $_POST['ftg_afterGalleryText'] ),
1316
+ 'aClass' => sanitize_text_field( $_POST['ftg_aClass'] ),
1317
+ 'rel' => sanitize_text_field( $_POST['ftg_rel'] ),
1318
  'style' => $style,
1319
  'delay' => intval( $_POST['ftg_delay'] ),
1320
  'script' => $script,
1321
  'support' => $this->checkboxVal( 'ftg_support' ),
1322
+ 'supportText' => sanitize_text_field( $_POST['ftg_supportText'] ),
1323
  'scrollEffect' => $scrollEffect,
1324
  'loadedScaleY' => intval( $_POST['ftg_loadedScaleY'] ),
1325
  'loadedScaleX' => intval( $_POST['ftg_loadedScaleX'] ),
 
1326
  'loadedHSlide' => $loadedHSlide,
1327
  'loadedVSlide' => $loadedVSlide,
1328
+ 'loadedEasing' => sanitize_text_field( $_POST['ftg_loadedEasing'] ),
1329
+ 'loadedDuration' => absint( $_POST['ftg_loadedDuration'] ),
1330
  'loadedRotateY' => intval( $_POST['ftg_loadedRotateY'] ),
1331
  'loadedRotateX' => intval( $_POST['ftg_loadedRotateX'] ),
1332
  );
1467
  $this->photon_removed = remove_filter( 'image_downsize', array( Jetpack_Photon::instance(), 'filter_image_downsize' ) );
1468
  }
1469
  return $this->create_gallery( $atts );
1470
+ //@todo: statement can't be reached. Investigate
1471
  if ( $this->photon_removed ) {
1472
  add_filter(
1473
  'image_downsize',
admin/add-gallery.php CHANGED
@@ -15,7 +15,7 @@ include "header.php";
15
 
16
  <div id="ftg-wizard">
17
  <h2><?php
18
- _e( 'Add new gallery wizard', 'final-tiles-grid-gallery-lite' );
19
  ?></h2>
20
 
21
  <form action="#" method="post">
@@ -31,28 +31,28 @@ wp_nonce_field( 'FinalTiles_gallery', 'FinalTiles_gallery' );
31
  <div class="row">
32
  <div class="ftg-field">
33
  <label for="name"><?php
34
- _e( 'Name of the gallery', 'final-tiles-grid-gallery-lite' );
35
  ?> <span class="req">(<?php
36
- _e( 'required', 'final-tiles-grid-gallery-lite' );
37
- ?>)</span></label>
38
  <input name="ftg_name" id="name" type="text" required="required">
39
  </div>
40
  </div>
41
  <div class="ftg-field">
42
  <label for="description"><?php
43
- _e( 'Description of the gallery', 'final-tiles-grid-gallery-lite' );
44
  ?></label>
45
  <textarea name="ftg_description" id="description"></textarea>
46
  </div>
47
  </fieldset>
48
  <fieldset data-step="2">
49
  <h5><?php
50
- _e( 'Choose the source of the images', 'final-tiles-grid-gallery-lite' );
51
  ?></h5>
52
  <p class="ftg-inline">
53
  <input class="with-gap browser-default" type="radio" checked="checked" name="ftg_source" id="source1" value="images" />
54
  <label for="source1"><?php
55
- _e( 'Media library', 'final-tiles-grid-gallery-lite' );
56
  ?></label>
57
  </p>
58
  <p class="ftg-inline">
@@ -60,12 +60,12 @@ _e( 'Media library', 'final-tiles-grid-gallery-lite' );
60
  ?>
61
  <input disabled class="with-gap browser-default" type="radio" name="ftg_source" value="*" id="source2" />
62
  <label for="source2"><?php
63
- _e( 'Recent posts', 'final-tiles-grid-gallery-lite' );
64
  ?> - <a class="in-wizard-cta" href="<?php
65
  echo ftg_fs()->get_upgrade_url() ;
66
  ?>"><i class="mdi mdi-bell-ring-outline"></i>
67
  <?php
68
- _e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
69
  ?>
70
  </a></label>
71
  <?php
@@ -76,12 +76,12 @@ _e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
76
  ?>
77
  <input class="with-gap browser-default" disabled type="radio" name="ftg_source" value="*" id="source3" />
78
  <label for="source3"><?php
79
- _e( 'WooCommerce products', 'final-tiles-grid-gallery-lite' );
80
  ?> - <a class="in-wizard-cta" href="<?php
81
  echo ftg_fs()->get_upgrade_url() ;
82
  ?>"><i class="mdi mdi-bell-ring-outline"></i>
83
  <?php
84
- _e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
85
  ?>
86
  </a></label>
87
  <?php
@@ -91,13 +91,21 @@ _e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
91
  <fieldset data-step="3" data-branch="images">
92
  <div class="field">
93
  <h5><?php
94
- _e( 'WordPress field for captions:', 'final-tiles-grid-gallery-lite' );
95
  ?></h5>
96
  <select class="browser-default" name="ftg_wp_field_caption">
97
- <option value="none"> Don't use captions </option>
98
- <option value="title"> Title </option>
99
- <option selected value="caption"> Caption </option>
100
- <option value="description"> Description </option>
 
 
 
 
 
 
 
 
101
  </select>
102
  </div>
103
 
@@ -106,9 +114,15 @@ _e( 'WordPress field for captions:', 'final-tiles-grid-gallery-lite' );
106
  _e( 'WordPress field for titles:', 'final-tiles-grid-gallery-lite' );
107
  ?></h5>
108
  <select class="browser-default" name="ftg_wp_field_title">
109
- <option value="none"> Don't use titles </option>
110
- <option selected value="title"> Title </option>
111
- <option value="description"> Description </option>
 
 
 
 
 
 
112
  </select>
113
  </div>
114
  <!--
@@ -130,32 +144,32 @@ _e( 'WordPress field for titles:', 'final-tiles-grid-gallery-lite' );
130
  -->
131
  <div class="field">
132
  <h5><?php
133
- _e( 'Caption effect:', 'final-tiles-grid-gallery-lite' );
134
  ?></h5>
135
  <select class="browser-default" name="ftg_captionEffect">
136
  <option value="none"><?php
137
- _e( 'Fade', 'final-tiles-grid-gallery-lite' );
138
  ?></option>
139
  <?php
140
  ?>
141
  <option value="fixed" disabled><?php
142
- _e( 'Fixed', 'final-tiles-grid-gallery-lite' );
143
- ?> (Upgrade to unlock)</option>
144
  <option value="fixed-bg" disabled><?php
145
- _e( 'Fixed with background', 'final-tiles-grid-gallery-lite' );
146
- ?> (Upgrade to unlock)</option>
147
  <option value="fixed-then-hidden" disabled><?php
148
- _e( 'Fixed, hidden on hover', 'final-tiles-grid-gallery-lite' );
149
- ?> (Upgrade to unlock)</option>
150
  <option value="fixed-bottom" disabled><?php
151
- _e( 'Fixed at bottom', 'final-tiles-grid-gallery-lite' );
152
- ?> (Upgrade to unlock)</option>
153
  <option value="slide-from-top" disabled><?php
154
- _e( 'Slide from top', 'final-tiles-grid-gallery-lite' );
155
- ?> (Upgrade to unlock)</option>
156
  <option value="slide-from-bottom" disabled><?php
157
- _e( 'Slide from bottom', 'final-tiles-grid-gallery-lite' );
158
- ?> (Upgrade to unlock)</option>
159
  <?php
160
  ?>
161
  </select>
@@ -166,25 +180,25 @@ _e( 'Slide from bottom', 'final-tiles-grid-gallery-lite' );
166
  <fieldset data-step="4" data-save="true">
167
  <div class="field">
168
  <h5><?php
169
- _e( 'Choose the layout', 'final-tiles-grid-gallery-lite' );
170
  ?></h5>
171
  <select class="browser-default" name="layout">
172
  <option value="final"><?php
173
- __( 'Final Tiles Gallery (mixed image width)', 'final-tiles-grid-gallery-lite' );
174
  ?></option>
175
  <option value="columns"><?php
176
- __( 'Masonry (columns, same image width)', 'final-tiles-grid-gallery-lite' );
177
  ?></option>
178
  </select>
179
  </div>
180
  <div class="field">
181
  <!--<h5><?php
182
- _e( 'Choose a default image size', 'final-tiles-grid-gallery-lite' );
183
  ?></h5>
184
  <select class="browser-default def_imgsize" name="def_imgsize">
185
  <?php
186
  foreach ( $this->list_thumbnail_sizes() as $size => $atts ) {
187
- print '<option value="' . $size . '">' . $size . " (" . implode( 'x', $atts ) . ")</option>";
188
  }
189
  ?>
190
  </select>-->
@@ -193,11 +207,11 @@ foreach ( $this->list_thumbnail_sizes() as $size => $atts ) {
193
  <div class="field select-images">
194
  <a class="button add-images">
195
  <?php
196
- _e( 'Add images', 'final-tiles-grid-gallery-lite' );
197
  ?></a>
198
 
199
  <label><?php
200
- _e( 'You can add images now or later.', 'final-tiles-grid-gallery-lite' );
201
  ?></label>
202
  <div class="images list-group"></div>
203
  </div>
@@ -207,54 +221,58 @@ _e( 'You can add images now or later.', 'final-tiles-grid-gallery-lite' );
207
  <div class="indeterminate"></div>
208
  </div>
209
  <a class="button prev"><?php
210
- _e( 'Previous', 'final-tiles-grid-gallery-lite' );
211
  ?></a>
212
  <a class="button components-button is-primary next"><?php
213
- _e( 'Next', 'final-tiles-grid-gallery-lite' );
214
  ?></a>
215
  </footer>
216
  </form>
217
  <div id="success" class="modal">
218
  <div class="modal-content">
219
  <h4><?php
220
- _e( 'Success!', 'final-tiles-grid-gallery-lite' );
221
  ?></h4>
222
  <p><?php
223
- _e( 'Your gallery', 'final-tiles-grid-gallery-lite' );
224
  ?> "<span class="gallery-name"></span>" <?php
225
- _e( 'has been created. Copy the following shortcode:', 'final-tiles-grid-gallery-lite' );
226
  ?><br>
227
  <input type="text" readonly class="code"><br>
228
  <?php
229
- _e( 'and paste it inside a post or a page. Otherwise click', 'final-tiles-grid-gallery-lite' );
230
  ?> <a class='customize'><?php
231
- _e( 'here', 'final-tiles-grid-gallery-lite' );
232
  ?></a> <?php
233
- _e( 'to customize
234
  the gallery.', 'final-tiles-grid-gallery-lite' );
235
  ?>
236
  </p>
237
  </div>
238
  <div class="modal-'footer">
239
- <a href="?page=ftg-lite-gallery-admin" id="modal-close" class="button modal-action"><?php
240
- _e( 'Close', 'final-tiles-grid-gallery-lite' );
 
 
241
  ?></a>
242
  </div>
243
  </div>
244
  <div id="error" class="modal">
245
  <div class="modal-content">
246
  <h4><?php
247
- _e( 'Error!', 'final-tiles-grid-gallery-lite' );
248
  ?></h4>
249
  <p><?php
250
- _e( 'For some reason it was not possible to save your gallery, please contact', 'final-tiles-grid-gallery-lite' );
251
  ?><a href="?page=ftg-support"><?php
252
- _e( 'support', 'final-tiles-grid-gallery-lite' );
253
  ?></a>.</p>
254
  </div>
255
  <div class="modal-footer">
256
- <a href="?page=ftg-lite-gallery-admin" class="waves-effect waves-green btn-flat modal-action modal-close"><?php
257
- _e( 'Close', 'final-tiles-grid-gallery-lite' );
 
 
258
  ?></a>
259
  </div>
260
  </div>
15
 
16
  <div id="ftg-wizard">
17
  <h2><?php
18
+ esc_html_e( 'Add new gallery wizard', 'final-tiles-grid-gallery-lite' );
19
  ?></h2>
20
 
21
  <form action="#" method="post">
31
  <div class="row">
32
  <div class="ftg-field">
33
  <label for="name"><?php
34
+ esc_html_e( 'Name of the gallery', 'final-tiles-grid-gallery-lite' );
35
  ?> <span class="req">(<?php
36
+ esc_html_e( 'required', 'final-tiles-grid-gallery-lite' );
37
+ ?>)</span></label>
38
  <input name="ftg_name" id="name" type="text" required="required">
39
  </div>
40
  </div>
41
  <div class="ftg-field">
42
  <label for="description"><?php
43
+ esc_html_e( 'Description of the gallery', 'final-tiles-grid-gallery-lite' );
44
  ?></label>
45
  <textarea name="ftg_description" id="description"></textarea>
46
  </div>
47
  </fieldset>
48
  <fieldset data-step="2">
49
  <h5><?php
50
+ esc_html_e( 'Choose the source of the images', 'final-tiles-grid-gallery-lite' );
51
  ?></h5>
52
  <p class="ftg-inline">
53
  <input class="with-gap browser-default" type="radio" checked="checked" name="ftg_source" id="source1" value="images" />
54
  <label for="source1"><?php
55
+ esc_html_e( 'Media library', 'final-tiles-grid-gallery-lite' );
56
  ?></label>
57
  </p>
58
  <p class="ftg-inline">
60
  ?>
61
  <input disabled class="with-gap browser-default" type="radio" name="ftg_source" value="*" id="source2" />
62
  <label for="source2"><?php
63
+ esc_html_e( 'Recent posts', 'final-tiles-grid-gallery-lite' );
64
  ?> - <a class="in-wizard-cta" href="<?php
65
  echo ftg_fs()->get_upgrade_url() ;
66
  ?>"><i class="mdi mdi-bell-ring-outline"></i>
67
  <?php
68
+ esc_html_e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
69
  ?>
70
  </a></label>
71
  <?php
76
  ?>
77
  <input class="with-gap browser-default" disabled type="radio" name="ftg_source" value="*" id="source3" />
78
  <label for="source3"><?php
79
+ esc_html_e( 'WooCommerce products', 'final-tiles-grid-gallery-lite' );
80
  ?> - <a class="in-wizard-cta" href="<?php
81
  echo ftg_fs()->get_upgrade_url() ;
82
  ?>"><i class="mdi mdi-bell-ring-outline"></i>
83
  <?php
84
+ esc_html_e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
85
  ?>
86
  </a></label>
87
  <?php
91
  <fieldset data-step="3" data-branch="images">
92
  <div class="field">
93
  <h5><?php
94
+ esc_html_e( 'WordPress field for captions:', 'final-tiles-grid-gallery-lite' );
95
  ?></h5>
96
  <select class="browser-default" name="ftg_wp_field_caption">
97
+ <option value="none"> <?php
98
+ esc_html_e( 'Don\'t use captions', 'final-tiles-grid-gallery-lite' );
99
+ ?> </option>
100
+ <option value="title"> <?php
101
+ esc_html_e( 'Title', 'final-tiles-grid-gallery-lite' );
102
+ ?> </option>
103
+ <option selected value="caption"> <?php
104
+ esc_html_e( 'Caption', 'final-tiles-grid-gallery-lite' );
105
+ ?> </option>
106
+ <option value="description"> <?php
107
+ esc_html_e( 'Description', 'final-tiles-grid-gallery-lite' );
108
+ ?> </option>
109
  </select>
110
  </div>
111
 
114
  _e( 'WordPress field for titles:', 'final-tiles-grid-gallery-lite' );
115
  ?></h5>
116
  <select class="browser-default" name="ftg_wp_field_title">
117
+ <option value="none"> <?php
118
+ esc_html_e( 'Don\'t use titles', 'final-tiles-grid-gallery-lite' );
119
+ ?> </option>
120
+ <option selected value="title"> <?php
121
+ esc_html_e( 'Title', 'final-tiles-grid-gallery-lite' );
122
+ ?> </option>
123
+ <option value="description"> <?php
124
+ esc_html_e( 'Description', 'final-tiles-grid-gallery-lite' );
125
+ ?> </option>
126
  </select>
127
  </div>
128
  <!--
144
  -->
145
  <div class="field">
146
  <h5><?php
147
+ esc_html_e( 'Caption effect:', 'final-tiles-grid-gallery-lite' );
148
  ?></h5>
149
  <select class="browser-default" name="ftg_captionEffect">
150
  <option value="none"><?php
151
+ esc_html_e( 'Fade', 'final-tiles-grid-gallery-lite' );
152
  ?></option>
153
  <?php
154
  ?>
155
  <option value="fixed" disabled><?php
156
+ esc_html_e( 'Fixed (Upgrade to unlock)', 'final-tiles-grid-gallery-lite' );
157
+ ?> </option>
158
  <option value="fixed-bg" disabled><?php
159
+ esc_html_e( 'Fixed with background (Upgrade to unlock)', 'final-tiles-grid-gallery-lite' );
160
+ ?></option>
161
  <option value="fixed-then-hidden" disabled><?php
162
+ esc_html_e( 'Fixed, hidden on hover (Upgrade to unlock)', 'final-tiles-grid-gallery-lite' );
163
+ ?></option>
164
  <option value="fixed-bottom" disabled><?php
165
+ esc_html_e( 'Fixed at bottom (Upgrade to unlock)', 'final-tiles-grid-gallery-lite' );
166
+ ?></option>
167
  <option value="slide-from-top" disabled><?php
168
+ esc_html_e( 'Slide from top (Upgrade to unlock)', 'final-tiles-grid-gallery-lite' );
169
+ ?></option>
170
  <option value="slide-from-bottom" disabled><?php
171
+ esc_html_e( 'Slide from bottom (Upgrade to unlock)', 'final-tiles-grid-gallery-lite' );
172
+ ?></option>
173
  <?php
174
  ?>
175
  </select>
180
  <fieldset data-step="4" data-save="true">
181
  <div class="field">
182
  <h5><?php
183
+ esc_html_e( 'Choose the layout', 'final-tiles-grid-gallery-lite' );
184
  ?></h5>
185
  <select class="browser-default" name="layout">
186
  <option value="final"><?php
187
+ esc_html_e( 'Final Tiles Gallery (mixed image width)', 'final-tiles-grid-gallery-lite' );
188
  ?></option>
189
  <option value="columns"><?php
190
+ esc_html_e( 'Masonry (columns, same image width)', 'final-tiles-grid-gallery-lite' );
191
  ?></option>
192
  </select>
193
  </div>
194
  <div class="field">
195
  <!--<h5><?php
196
+ esc_html_e( 'Choose a default image size', 'final-tiles-grid-gallery-lite' );
197
  ?></h5>
198
  <select class="browser-default def_imgsize" name="def_imgsize">
199
  <?php
200
  foreach ( $this->list_thumbnail_sizes() as $size => $atts ) {
201
+ echo '<option value="' . esc_attr( $size ) . '">' . esc_html( $size ) . " (" . implode( 'x', $atts ) . ")</option>" ;
202
  }
203
  ?>
204
  </select>-->
207
  <div class="field select-images">
208
  <a class="button add-images">
209
  <?php
210
+ esc_html_e( 'Add images', 'final-tiles-grid-gallery-lite' );
211
  ?></a>
212
 
213
  <label><?php
214
+ esc_html_e( 'You can add images now or later.', 'final-tiles-grid-gallery-lite' );
215
  ?></label>
216
  <div class="images list-group"></div>
217
  </div>
221
  <div class="indeterminate"></div>
222
  </div>
223
  <a class="button prev"><?php
224
+ esc_html_e( 'Previous', 'final-tiles-grid-gallery-lite' );
225
  ?></a>
226
  <a class="button components-button is-primary next"><?php
227
+ esc_html_e( 'Next', 'final-tiles-grid-gallery-lite' );
228
  ?></a>
229
  </footer>
230
  </form>
231
  <div id="success" class="modal">
232
  <div class="modal-content">
233
  <h4><?php
234
+ esc_html_e( 'Success!', 'final-tiles-grid-gallery-lite' );
235
  ?></h4>
236
  <p><?php
237
+ esc_html_e( 'Your gallery', 'final-tiles-grid-gallery-lite' );
238
  ?> "<span class="gallery-name"></span>" <?php
239
+ esc_html_e( 'has been created. Copy the following shortcode:', 'final-tiles-grid-gallery-lite' );
240
  ?><br>
241
  <input type="text" readonly class="code"><br>
242
  <?php
243
+ esc_html_e( 'and paste it inside a post or a page. Otherwise click', 'final-tiles-grid-gallery-lite' );
244
  ?> <a class='customize'><?php
245
+ esc_html_e( 'here', 'final-tiles-grid-gallery-lite' );
246
  ?></a> <?php
247
+ esc_html_e( 'to customize
248
  the gallery.', 'final-tiles-grid-gallery-lite' );
249
  ?>
250
  </p>
251
  </div>
252
  <div class="modal-'footer">
253
+ <a href="<?php
254
+ echo admin_url( 'admin.php?page=ftg-lite-gallery-admin' ) ;
255
+ ?>" id="modal-close" class="button modal-action"><?php
256
+ esc_html_e( 'Close', 'final-tiles-grid-gallery-lite' );
257
  ?></a>
258
  </div>
259
  </div>
260
  <div id="error" class="modal">
261
  <div class="modal-content">
262
  <h4><?php
263
+ esc_html_e( 'Error!', 'final-tiles-grid-gallery-lite' );
264
  ?></h4>
265
  <p><?php
266
+ esc_html_e( 'For some reason it was not possible to save your gallery, please contact', 'final-tiles-grid-gallery-lite' );
267
  ?><a href="?page=ftg-support"><?php
268
+ esc_html_e( 'support', 'final-tiles-grid-gallery-lite' );
269
  ?></a>.</p>
270
  </div>
271
  <div class="modal-footer">
272
+ <a href="<?php
273
+ admin_url( 'admin.php?page=ftg-lite-gallery-admin' );
274
+ ?>" class="waves-effect waves-green btn-flat modal-action modal-close"><?php
275
+ esc_html_e( 'Close', 'final-tiles-grid-gallery-lite' );
276
  ?></a>
277
  </div>
278
  </div>
admin/edit-gallery.php CHANGED
@@ -18,7 +18,7 @@
18
  $ftg_parent_page = "edit-gallery";
19
 
20
  ?>
21
- <?php $ftg_subtitle = "Edit gallery: " . $gallery->name ?>
22
  <?php include "header.php" ?>
23
 
24
  <div class='bd'>
@@ -26,7 +26,7 @@
26
  <div id="settings">
27
  <form name="gallery_form" id="edit-gallery" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" method="post">
28
  <?php wp_nonce_field('FinalTiles_gallery', 'FinalTiles_gallery'); ?>
29
- <input type="hidden" name="ftg_gallery_edit" id="gallery-id" value="<?php _e($gid); ?>" />
30
  <?php include("include/edit-gallery.php") ?>
31
  </form>
32
  </div>
@@ -72,32 +72,32 @@
72
 
73
  <div id="groups-modal" class="modal">
74
  <div class="modal-content">
75
- <h3><?php _e('Assign group', 'final-tiles-grid-gallery-lite')?></h3>
76
- <p><?php _e('The group name is for internal use and it won\'t be shown, avoid space and special characters', 'final-tiles-grid-gallery-lite')?></p>
77
  <input type="text" id="group-name-to-assign" />
78
  </div>
79
  <div class="modal-footer">
80
- <a href="#!" data-action-assign-group class="action modal-action modal-close waves-effect waves-green btn-flat"><?php _e('Save', 'final-tiles-grid-gallery-lite')?></a>
81
- <a href="#!" data-action="cancel" class="action modal-action modal-close waves-effect waves-yellow btn-flat"><?php _e('Cancel', 'final-tiles-grid-gallery-lite')?></a>
82
  </div>
83
  </div>
84
 
85
  <div id="filters-modal" class="modal">
86
  <div class="modal-content">
87
- <h3><?php _e('Assign filters', 'final-tiles-grid-gallery-lite')?></h3>
88
 
89
  <div id="filters-to-assign">
90
  <?php foreach($filters as $filter): ?>
91
  <label>
92
- <input type="checkbox" value="<?php print htmlspecialchars($filter, ENT_QUOTES) ?>" />
93
- <span><?php print $filter; ?></span>
94
  </label>
95
  <?php endforeach; ?>
96
  </div>
97
- <p><?php _e("If you don't see all filters please save and reload the page", 'final-tiles-grid-gallery-lite')?></p>
98
  </div>
99
  <div class="modal-footer">
100
- <a href="#!" data-action-assign-filters class="action modal-action modal-close waves-effect waves-green btn-flat"><?php _e('Save', 'final-tiles-grid-gallery-lite')?></a>
101
- <a href="#!" data-action="cancel" class="action modal-action modal-close waves-effect waves-yellow btn-flat"><?php _e('Cancel', 'final-tiles-grid-gallery-lite')?></a>
102
  </div>
103
  </div>
18
  $ftg_parent_page = "edit-gallery";
19
 
20
  ?>
21
+ <?php $ftg_subtitle = "Edit gallery: " . $gallery->name ?>
22
  <?php include "header.php" ?>
23
 
24
  <div class='bd'>
26
  <div id="settings">
27
  <form name="gallery_form" id="edit-gallery" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" method="post">
28
  <?php wp_nonce_field('FinalTiles_gallery', 'FinalTiles_gallery'); ?>
29
+ <input type="hidden" name="ftg_gallery_edit" id="gallery-id" value="<?php echo absint($gid); ?>" />
30
  <?php include("include/edit-gallery.php") ?>
31
  </form>
32
  </div>
72
 
73
  <div id="groups-modal" class="modal">
74
  <div class="modal-content">
75
+ <h3><?php esc_html_e('Assign group', 'final-tiles-grid-gallery-lite')?></h3>
76
+ <p><?php esc_html_e('The group name is for internal use and it won\'t be shown, avoid space and special characters', 'final-tiles-grid-gallery-lite')?></p>
77
  <input type="text" id="group-name-to-assign" />
78
  </div>
79
  <div class="modal-footer">
80
+ <a href="#!" data-action-assign-group class="action modal-action modal-close waves-effect waves-green btn-flat"><?php esc_html_e('Save', 'final-tiles-grid-gallery-lite')?></a>
81
+ <a href="#!" data-action="cancel" class="action modal-action modal-close waves-effect waves-yellow btn-flat"><?php esc_html_e('Cancel', 'final-tiles-grid-gallery-lite')?></a>
82
  </div>
83
  </div>
84
 
85
  <div id="filters-modal" class="modal">
86
  <div class="modal-content">
87
+ <h3><?php esc_html_e('Assign filters', 'final-tiles-grid-gallery-lite')?></h3>
88
 
89
  <div id="filters-to-assign">
90
  <?php foreach($filters as $filter): ?>
91
  <label>
92
+ <input type="checkbox" value="<?php echo esc_attr($filter, ENT_QUOTES) ?>" />
93
+ <span><?php echo esc_html($filter); ?></span>
94
  </label>
95
  <?php endforeach; ?>
96
  </div>
97
+ <p><?php esc_html_e("If you don't see all filters please save and reload the page", 'final-tiles-grid-gallery-lite')?></p>
98
  </div>
99
  <div class="modal-footer">
100
+ <a href="#!" data-action-assign-filters class="action modal-action modal-close waves-effect waves-green btn-flat"><?php esc_html_e('Save', 'final-tiles-grid-gallery-lite')?></a>
101
+ <a href="#!" data-action="cancel" class="action modal-action modal-close waves-effect waves-yellow btn-flat"><?php esc_html_e('Cancel', 'final-tiles-grid-gallery-lite')?></a>
102
  </div>
103
  </div>
admin/facebook.php CHANGED
@@ -1,5 +1,5 @@
1
  <p>Support Final Tiles Grid Gallery, share on Facebook</p>
2
- <div class="fb-like" data-href="https://www.facebook.com/greentreelabs" data-layout="standard" data-action="recommend" data-show-faces="false" data-share="true"></div>
3
 
4
 
5
  <div id="fb-root"></div>
1
  <p>Support Final Tiles Grid Gallery, share on Facebook</p>
2
+ <div class="fb-like" data-href="https://www.facebook.com/machothemes" data-layout="standard" data-action="recommend" data-show-faces="false" data-share="true"></div>
3
 
4
 
5
  <div id="fb-root"></div>
admin/header.php CHANGED
@@ -4,6 +4,6 @@
4
 
5
  ?>
6
  <header id="top">
7
- <h1 class="hidden header center-on-small-only">Final Tiles Grid Gallery <small><?php print FTGVERSION ?> <?php print FTG_PLAN ?></small></h1>
8
- <h4 class="center-on-small-only"><?php print $ftg_subtitle ?></h4>
9
  </header>
4
 
5
  ?>
6
  <header id="top">
7
+ <h1 class="hidden header center-on-small-only">Final Tiles Grid Gallery <small><?php echo esc_html(FTGVERSION); ?> <?php echo esc_html(FTG_PLAN); ?></small></h1>
8
+ <h4 class="center-on-small-only"><?php echo esc_html($ftg_subtitle); ?></h4>
9
  </header>
admin/include/edit-gallery.php CHANGED
@@ -1,227 +1,227 @@
1
- <?php
2
-
3
- if ( !function_exists( 'ftg_p' ) ) {
4
- function ftg_p( $gallery, $field, $default = NULL )
5
- {
6
- global $ftg_options ;
7
-
8
- if ( $ftg_options ) {
9
- if ( array_key_exists( $field, $ftg_options ) ) {
10
- print stripslashes( $ftg_options[$field] );
11
- }
12
- return;
13
- }
14
-
15
-
16
- if ( $gallery == NULL || $gallery->{$field} === NULL ) {
17
-
18
- if ( $default === NULL ) {
19
- print "";
20
- } else {
21
- print stripslashes( $default );
22
- }
23
-
24
- } else {
25
- print stripslashes( $gallery->{$field} );
26
- }
27
-
28
- }
29
-
30
- function ftg_sel(
31
- $gallery,
32
- $field,
33
- $value,
34
- $type = "selected"
35
- )
36
- {
37
- global $ftg_options ;
38
-
39
- if ( $ftg_options && $ftg_options[$field] == $value ) {
40
- print $type;
41
- return;
42
- }
43
-
44
-
45
- if ( $gallery == NULL || !isset( $gallery->{$field} ) ) {
46
- print "";
47
- } else {
48
- if ( $gallery->{$field} == $value ) {
49
- print $type;
50
- }
51
- }
52
-
53
- }
54
-
55
- function ftg_checkFieldDisabled( $options )
56
- {
57
- if ( is_array( $options ) && count( $options ) == 3 && $options[2] == "disabled" ) {
58
- return "disabled";
59
- }
60
- return "";
61
- }
62
-
63
- function ftg_checkDisabledOption( $plan )
64
- {
65
- return "disabled";
66
- return "";
67
- }
68
-
69
- function ftg_printPro( $plan )
70
- {
71
- return " (upgrade to unlock)";
72
- return "";
73
- }
74
-
75
- function ftg_printFieldPro( $options )
76
- {
77
- if ( is_array( $options ) && count( $options ) == 3 && $options[2] == "disabled" ) {
78
- return " (upgrade to unlock)";
79
- }
80
- return "";
81
- }
82
-
83
- }
84
-
85
- global $ftg_parent_page ;
86
- global $ftg_fields ;
87
- $filters = array();
88
- //print_r($gallery);
89
- $idx = 0;
90
- function ftgSortByName( $a, $b )
91
- {
92
- return $a["name"] > $b["name"];
93
- }
94
-
95
- ?>
96
 
97
  <div class="row">
98
  <div class="col s9">
99
  <ul class="collapsible" id="all-settings" data-collapsible="accordion">
100
  <li id="images" class="active">
101
  <div class="collapsible-header">
102
- <i class="fa fa-picture-o light-green darken-1 white-text ftg-section-icon"></i> <?php
103
- _e( 'Images', 'final-tiles-grid-gallery-lite' );
104
- ?>
105
  </div>
106
  <div class="collapsible-body" style="display:block">
107
  <div class="actions">
108
  <div class="images-bar">
109
  <select name="ftg_source" class="browser-default">
110
- <option <?php
111
- ftg_sel( $gallery, "source", "images" );
112
- ?> value="images"><?php
113
- _e( 'User images', 'final-tiles-grid-gallery-lite' );
114
  ?></option>
115
- <option <?php
116
- ftg_sel( $gallery, "source", "posts" );
117
- ?> value="posts" <?php
118
- echo ftg_checkDisabledOption( 'ultimate' ) ;
119
- ?>><?php
120
- _e( 'Recent posts with featured image', 'final-tiles-grid-gallery-lite' );
121
- echo ftg_printPro( 'ultimate' ) ;
122
  ?></option>
123
- <?php
124
-
125
- if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
126
- ?>
127
- <option <?php
128
- ftg_sel( $gallery, "source", "woocommerce" );
129
- ?> value="woocommerce" <?php
130
- echo ftg_checkDisabledOption( 'ultimate' ) ;
131
- ?>><?php
132
- _e( 'WooCommerce products', 'final-tiles-grid-gallery-lite' );
133
- echo ftg_printPro( 'ultimate' ) ;
134
  ?></option>
135
- <?php
136
- }
137
-
138
- ?>
139
  </select>
140
  <select class="current-image-size browser-default">
141
- <?php
142
- foreach ( $this->list_thumbnail_sizes() as $size => $atts ) {
143
- print '<option ' . (( $size == 'large' ? 'selected' : '' )) . ' value="' . $size . '">' . $size . " (" . implode( 'x', $atts ) . ")</option>";
144
- }
145
- ?>
146
  </select>
147
 
148
  <a href="#" class="open-media-panel button">
149
- <?php
150
- _e( 'Add images', 'final-tiles-grid-gallery-lite' );
151
- ?>
152
  </a>
153
- <?php
154
- ?>
155
- <a onclick="alert('Upgrade to unlock')" href="#" class=" button"><?php
156
- _e( 'Add video', 'final-tiles-grid-gallery-lite' );
157
  ?></a>
158
- <?php
159
- ?>
160
- <a class="button button-delete" data-remove-images href="#!"><?php
161
- _e( 'Remove selected', 'final-tiles-grid-gallery-lite' );
162
  ?></a>
163
  </div>
164
  <div class="row selection-row">
165
  <div class="bulk options">
166
  <span>
167
- <a class="button" href="#" data-action="select"><?php
168
- _e( 'Select all', 'final-tiles-grid-gallery-lite' );
169
  ?></a>
170
- <a class="button" href="#" data-action="deselect"><?php
171
- _e( 'Deselect all', 'final-tiles-grid-gallery-lite' );
172
  ?></a>
173
- <a class="button" href="#" data-action="toggle"><?php
174
- _e( 'Toggle selection', 'final-tiles-grid-gallery-lite' );
175
  ?></a>
176
  </span>
177
  <span>
178
- <?php
179
- ?>
180
- <?php
181
- ?>
182
  </span>
183
  <span>
184
- <a class="button" href="#" data-action="show-hide"><?php
185
- _e( 'Toggle visibility', 'final-tiles-grid-gallery-lite' );
186
  ?></a>
187
  </span>
188
  </div>
189
  </div>
190
- <?php
191
-
192
- if ( is_array( $filters ) && count( $filters ) > 1 ) {
193
- ?>
194
  <div class="row filter-list">
195
- <b> <?php
196
- _e( 'Select by filter:', 'final-tiles-grid-gallery-lite' );
197
  ?> </b>
198
  <span class="filter-select-control">
199
- <?php
200
- foreach ( $filters as $filter ) {
201
- ?>
202
- <em class='button filter-item' ><?php
203
- print $filter;
204
  ?></em>
205
- <?php
206
- }
207
- ?>
208
  </span>
209
  </div>
210
- <?php
211
- }
212
-
213
- ?>
214
  </div>
215
  <div id="image-list" class="row"></div>
216
 
217
  <div class="actions">
218
  <div class="row">
219
- <?php
220
- _e( 'Add links by clicking the EDIT (pencil) button', 'final-tiles-grid-gallery-lite' );
221
  ?><br>
222
- <?php
223
- _e( 'Drag the images to change their order.', 'final-tiles-grid-gallery-lite' );
224
- ?>
225
  </div>
226
  </div>
227
  <div id="images" class="ftg-section form-fields">
@@ -229,730 +229,740 @@ _e( 'Drag the images to change their order.', 'final-tiles-grid-gallery-lite' );
229
  <div class="row">
230
  <label>Taxonomy operator</label>
231
  <select name="ftg_taxonomyOperator" class="browser-default js-ajax-loading-control">
232
- <option <?php
233
- ftg_sel( $gallery, "taxonomyOperator", "OR" );
234
- ?> value="OR">OR: all posts matching 1 ore more selected taxonomies</option>
235
- <option <?php
236
- ftg_sel( $gallery, "taxonomyOperator", "AND" );
237
- ?> value="AND">AND: all posts matching all the selected taxonomies</option>
 
 
 
 
238
  </select>
239
  </div>
240
  <div class="row">
241
  <label>Taxonomy as filter</label>
242
  <select name="ftg_taxonomyAsFilter" class="browser-default js-ajax-loading-control">
243
  <option></option>
244
- <?php
245
- foreach ( get_taxonomies( array(), "objects" ) as $taxonomy => $t ) {
246
- ?>
247
- <?php
248
-
249
- if ( $t->publicly_queryable ) {
250
- ?>
251
- <option <?php
252
- ftg_sel( $gallery, "taxonomyAsFilter", $t->label );
253
- ?> value="<?php
254
- _e( $t->label );
255
- ?>"><?php
256
- _e( $t->label );
257
  ?></option>
258
- <?php
259
- }
260
-
261
- ?>
262
- <?php
263
- }
264
- ?>
265
  </select>
266
  </div>
267
  <div class="row checkboxes">
268
- <strong class="label"><?php
269
- _e( 'Post type:', 'final-tiles-grid-gallery-lite' );
270
  ?></strong>
271
  <span>
272
- <?php
273
- $idx = 0;
274
- ?>
275
- <?php
276
- foreach ( get_post_types( '', 'names' ) as $t ) {
277
- ?>
278
- <?php
279
-
280
- if ( !in_array( $t, $excluded_post_types ) ) {
281
- ?>
282
  <span class="tax-item">
283
- <input class="browser-default" id="post-type-<?php
284
- _e( $idx );
285
- ?>" type="checkbox" name="post_types" value="<?php
286
- _e( $t );
287
  ?>">
288
- <label for="post-type-<?php
289
- _e( $idx );
290
- ?>"><?php
291
- _e( $t );
292
  ?></label>
293
  </span>
294
- <?php
295
- $idx++;
296
- ?>
297
- <?php
298
- }
299
-
300
- ?>
301
- <?php
302
- }
303
- ?>
304
- <input type="hidden" name="ftg_post_types" value="<?php
305
- _e( $gallery->post_types );
306
  ?>" />
307
  </span>
308
  </div>
309
- <?php
310
- //print_r(get_taxonomies(array(), "objects")); exit();
311
- ?>
312
- <?php
313
- foreach ( get_taxonomies( array(), "objects" ) as $taxonomy => $t ) {
314
- ?>
315
- <?php
316
-
317
- if ( $t->publicly_queryable ) {
318
- ?>
319
- <?php
320
- $items = get_terms( $taxonomy, array(
321
- "hide_empty" => false,
322
- ) );
323
- ?>
324
- <?php
325
-
326
- if ( count( $items ) > 0 ) {
327
- ?>
328
- <?php
329
- //print_r($items);
330
- ?>
331
  <div class="row checkboxes">
332
- <strong class="label"><?php
333
- echo $t->label ;
334
  ?></strong>
335
  <span>
336
- <?php
337
- $idx = 0;
338
- ?>
339
- <?php
340
- foreach ( $items as $c ) {
341
- ?>
342
  <span class="tax-item">
343
- <input id="post-tax-<?php
344
- _e( $c->term_id );
345
- ?>" type="checkbox" name="post_taxonomy" data-taxonomy="<?php
346
- _e( $t->name );
347
- ?>" value="<?php
348
- _e( $c->term_id );
349
  ?>">
350
- <label for="post-tax-<?php
351
- _e( $c->term_id );
352
- ?>"><?php
353
- _e( $c->name );
354
  ?></label>
355
  </span>
356
- <?php
357
- $idx++;
358
- ?>
359
- <?php
360
- }
361
- ?>
362
  </span>
363
  </div>
364
- <?php
365
- }
366
-
367
- ?>
368
- <?php
369
- }
370
-
371
- ?>
372
- <?php
373
- }
374
- ?>
375
- <input type="hidden" name="ftg_post_taxonomies" value="<?php
376
- _e( $gallery->post_taxonomies );
377
  ?>" />
378
  <div class="row checkboxes">
379
- <strong class="label"><?php
380
- _e( 'Max posts:', 'final-tiles-grid-gallery-lite' );
381
  ?></strong>
382
  <span class="aside">
383
- <input type="text" name="ftg_max_posts" value="<?php
384
- echo $gallery->max_posts ;
385
  ?>">
386
- <span><?php
387
- _e( '(enter 0 for unlimited posts)', 'final-tiles-grid-gallery-lite' );
388
  ?></span>
389
  </span>
390
  </div>
391
  </div>
392
- <?php
393
-
394
- if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
395
- ?>
396
  <div class="actions source-woocommerce source-panel">
397
  <div class="row checkboxes">
398
- <strong class="label"><?php
399
- _e( 'Categories', 'final-tiles-grid-gallery-lite' );
400
  ?>:</strong>
401
  <span>
402
- <?php
403
- $idx = 0;
404
- ?>
405
- <?php
406
- foreach ( $woo_categories as $c ) {
407
- ?>
408
- <input class="browser-default" id="woo-cat-<?php
409
- _e( $idx );
410
- ?>" type="checkbox" name="woo_cat" value="<?php
411
- _e( $c->term_id );
412
  ?>">
413
- <label for="woo-cat-<?php
414
- _e( $idx );
415
- ?>"><?php
416
- _e( $c->cat_name );
417
  ?></label>
418
- <?php
419
- $idx++;
420
- ?>
421
- <?php
422
- }
423
- ?>
424
- <input type="hidden" name="ftg_woo_categories" value="<?php
425
- _e( $gallery->woo_categories );
426
  ?>" />
427
  </span>
428
  </div>
429
  </div>
430
- <?php
431
- }
432
-
433
- ?>
434
  </div>
435
  </div>
436
  </li>
437
- <?php
438
- foreach ( $ftg_fields as $section => $s ) {
439
- ?>
440
- <li id="<?php
441
- _e( FinalTiles_Gallery::slugify( $section ) );
442
  ?>">
443
  <div class="collapsible-header">
444
- <i class="<?php
445
- echo $s["icon"] ;
446
- ?> light-green darken-1 white-text ftg-section-icon"></i> <?php
447
- _e( $section, 'final-tiles-grid-gallery-lite' );
448
- ?>
449
  </div>
450
  <div class="collapsible-body tab form-fields">
451
  <div class="jump-head">
452
- <?php
453
- $jumpFields = array();
454
- foreach ( $s["fields"] as $f => $data ) {
455
- $jumpFields[$f] = $data;
456
- $jumpFields[$f]['_code'] = $f;
457
- }
458
- unset( $f );
459
- unset( $data );
460
- usort( $jumpFields, "ftgSortByName" );
461
- ?>
462
  <select class="browser-default jump">
463
- <option><?php
464
- _e( 'Jump to setting', 'final-tiles-grid-gallery-lite' );
465
  ?></option>
466
- <?php
467
- foreach ( $jumpFields as $f => $data ) {
468
- ?>
469
- <?php
470
-
471
- if ( is_array( $data["excludeFrom"] ) && !in_array( $ftg_parent_page, $data["excludeFrom"] ) ) {
472
- ?>
473
- <option value="<?php
474
- _e( $data['_code'], 'final-tiles-grid-gallery-lite' );
475
  ?>">
476
- <?php
477
- _e( $data["name"], 'final-tiles-grid-gallery-lite' );
478
- ?>
479
  </option>
480
- <?php
481
- }
482
-
483
- ?>
484
- <?php
485
- }
486
- ?>
487
  </select>
488
 
489
- <?php
490
-
491
- if ( array_key_exists( "presets", $s ) ) {
492
- ?>
493
- <select class="browser-default presets" data-field-idx="<?php
494
- echo $idx ;
495
  ?>">
496
  <option value="">Select preset</option>
497
- <?php
498
- foreach ( $s["presets"] as $preset => $data ) {
499
- ?>
500
- <option><?php
501
- echo $preset ;
502
  ?></option>
503
- <?php
504
- }
505
- ?>
506
  </select>
507
- <?php
508
- }
509
-
510
- ?>
511
  </div>
512
  <table>
513
  <tbody>
514
- <?php
515
- foreach ( $s["fields"] as $f => $data ) {
516
- ?>
517
- <?php
518
-
519
- if ( is_array( $data["excludeFrom"] ) && !in_array( $ftg_parent_page, $data["excludeFrom"] ) ) {
520
- ?>
521
 
522
- <tr class="field-row row-<?php
523
- print $f;
524
- ?> <?php
525
- print $data["type"];
526
  ?>">
527
  <th scope="row">
528
- <label><?php
529
- _e( $data["name"], 'final-tiles-grid-gallery-lite' );
530
- ?>
531
- <?php
532
-
533
- if ( $data["mu"] ) {
534
- ?>
535
- (<?php
536
- _e( $data["mu"] );
537
  ?>)
538
- <?php
539
- }
540
-
541
- ?>
542
 
543
- <?php
544
-
545
- if ( strlen( $data["description"] ) ) {
546
- ?>
547
  <div class="tab-header-tooltip-container ftg-tooltip">
548
  <span>[?]</span>
549
  <div class="tab-header-description ftg-tooltip-content">
550
- <?php
551
- echo wp_kses_post( $data["description"] ) ;
552
- ?>
553
  </div>
554
  </div>
555
- <?php
556
- }
557
-
558
- ?>
559
  </label>
560
  </th>
561
  <td>
562
- <div class="field <?php
563
- echo ( in_array( 'shortcode', $data["excludeFrom"] ) ? "" : "js-update-shortcode" ) ;
564
  ?>">
565
- <?php
566
-
567
- if ( $data["type"] == "text" ) {
568
- ?>
569
  <div class="text">
570
- <input type="text" size="30" name="ftg_<?php
571
- print $f;
572
- ?>" value="<?php
573
- ftg_p( $gallery, $f, $data["default"] );
574
  ?>" />
575
  </div>
576
- <?php
577
- } elseif ( $data["type"] == "cta" ) {
578
- ?>
579
  <div class="text">
580
- <a class="in-table-cta" href="<?php
581
- echo ftg_fs()->get_upgrade_url() ;
582
  ?>"><i class="mdi mdi-bell-ring-outline"></i>
583
- <?php
584
- _e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
585
- ?>
586
  </a>
587
  </div>
588
- <?php
589
- } elseif ( $data["type"] == "select" ) {
590
- ?>
591
  <div class="text">
592
- <select class="browser-default" name="ftg_<?php
593
- print $f;
594
  ?>">
595
- <?php
596
- foreach ( array_keys( $data["values"] ) as $optgroup ) {
597
- ?>
598
- <optgroup label="<?php
599
- print $optgroup;
600
  ?>">
601
- <?php
602
- foreach ( $data["values"][$optgroup] as $option ) {
603
- ?>
604
 
605
- <?php
606
- $v = explode( "|", $option );
607
- ?>
608
 
609
- <option <?php
610
- echo ftg_checkFieldDisabled( $v ) ;
611
- ?> <?php
612
- ftg_sel( $gallery, $f, $v[0] );
613
- ?> value="<?php
614
- print $v[0];
615
- ?>"><?php
616
- _e( $v[1], 'final-tiles-grid-gallery-lite' );
617
- echo ftg_printFieldPro( $v ) ;
618
  ?></option>
619
- <?php
620
- }
621
- ?>
622
  </optgroup>
623
- <?php
624
- }
625
- ?>
626
  </select>
627
- <?php
628
-
629
- if ( $f == "lightbox" ) {
630
- ?>
631
  <div class="col s12 ftg-everlightbox-settings">
632
- <?php
633
-
634
- if ( class_exists( 'Everlightbox_Public' ) ) {
635
- ?>
636
  <div class="card-panel light-green lighten-4">
637
- <a href="?page=everlightbox_options" target="_blank"><?php
638
- _e( 'EverlightBox settings', 'final-tiles-grid-gallery-lite' );
639
  ?></a>
640
  </div>
641
- <?php
642
- } else {
643
- ?>
644
  <div class="card-panel yellow lighten-3">
645
- <?php
646
- _e( 'EverlightBox not installed', 'final-tiles-grid-gallery-lite' );
647
- ?>. <a target="_blank" class="open-checkout" href="https://checkout.freemius.com/mode/dialog/plugin/1981/plan/2954/"><?php
648
- _e( 'Purchase', 'final-tiles-grid-gallery-lite' );
649
  ?></a>
650
  </div>
651
- <?php
652
- }
653
-
654
- ?>
655
  </div>
656
- <?php
657
- }
658
-
659
- ?>
660
  </div>
661
- <?php
662
- } elseif ( $data["type"] == "toggle" ) {
663
- ?>
664
  <div class="switch">
665
  <label>
666
  Off
667
- <input disabled type="checkbox" id="ftg_<?php
668
- print $f;
669
- ?>" name="ftg_<?php
670
- print $f;
671
- ?>" value="<?php
672
- ftg_p( $gallery, $f, $data["default"] );
673
- ?>" <?php
674
- ftg_sel(
675
- $gallery,
676
- $f,
677
- "T",
678
- "checked"
679
- );
680
  ?> >
681
  <span class="lever"></span>
682
  On
683
  </label>
684
  </div>
685
- <?php
686
- } elseif ( $data["type"] == "slider" ) {
687
- ?>
688
 
689
  <div class="text">
690
- <b id="preview-<?php
691
- print $f;
692
- ?>" class="range-preview"><?php
693
- ftg_p( $gallery, $f, $data["default"] );
694
  ?></b>
695
  <p class="range-field">
696
- <input data-preview="<?php
697
- echo $f ;
698
- ?>" name="ftg_<?php
699
- print $f;
700
- ?>" value="<?php
701
- ftg_p( $gallery, $f, $data["default"] );
702
- ?>" type="range" min="<?php
703
- print $data["min"];
704
- ?>" max="<?php
705
- print $data["max"];
706
  ?>" />
707
  </p>
708
  </div>
709
 
710
- <?php
711
- } elseif ( $data["type"] == "number" ) {
712
- ?>
713
  <div class="text">
714
- <input type="text" name="ftg_<?php
715
- print $f;
716
- ?>" class="integer-only" value="<?php
717
- ftg_p( $gallery, $f, $data["default"] );
718
  ?>" >
719
  </div>
720
 
721
- <?php
722
- } elseif ( $data["type"] == "color" ) {
723
- ?>
724
  <div class="text">
725
- <input type="text" size="6" data-default-color="<?php
726
- print $data["default"];
727
- ?>" name="ftg_<?php
728
- print $f;
729
- ?>" value="<?php
730
- ftg_p( $gallery, $f, $data["default"] );
731
  ?>" class='pickColor' /> </div>
732
 
733
- <?php
734
- } elseif ( $data["type"] == "filter" ) {
735
- ?>
736
 
737
  <div class="filters gallery-filters dynamic-table">
738
  <div class="text"></div>
739
- <a href="#" class="add button"><?php
740
- _e( 'Add filter', 'final-tiles-grid-gallery-lite' );
741
  ?></a>
742
- <a href="#" class="reset-default-filter button"><?php
743
- _e( 'Reset selected filter', 'final-tiles-grid-gallery-lite' );
744
  ?></a>
745
- <input type="hidden" name="ftg_filters" value="<?php
746
- ftg_p( $gallery, "filters" );
747
  ?>" />
748
- <input type="hidden" name="filter_def" value="<?php
749
- ftg_p( $gallery, "defaultFilter" );
750
  ?>" />
751
  </div>
752
 
753
- <?php
754
- } elseif ( $data["type"] == "textarea" ) {
755
- ?>
756
  <div class="text">
757
- <textarea name="ftg_<?php
758
- print $f;
759
- ?>"><?php
760
- ftg_p( $gallery, $f );
761
  ?></textarea>
762
  </div>
763
- <?php
764
- } elseif ( $data["type"] == "custom_isf" ) {
765
- ?>
766
  <div class="custom_isf dynamic-table">
767
  <table class="striped">
768
  <thead>
769
  <tr>
770
  <th></th>
771
- <th><?php
772
- _e( 'Resolution', 'final-tiles-grid-gallery-lite' );
773
  ?> (px)</th>
774
- <th><?php
775
- _e( 'Size factor', 'final-tiles-grid-gallery-lite' );
776
  ?> (%)</th>
777
  </tr>
778
  </thead>
779
  <tbody>
780
  </tbody>
781
  </table>
782
- <input type="hidden" name="ftg_imageSizeFactorCustom" value="<?php
783
- ftg_p( $gallery, "imageSizeFactorCustom" );
784
  ?>" />
785
  <a href="#" class="add button">
786
- <?php
787
- _e( 'Add resolution', 'final-tiles-grid-gallery-lite' );
788
  ?></a>
789
  </div>
790
- <?php
791
- }
792
-
793
- ?>
794
- <div class="help" id="help-<?php
795
- echo $f ;
796
  ?>">
797
- <?php
798
-
799
- if ( !in_array( 'shortcode', $data["excludeFrom"] ) && $data["type"] != "cta" ) {
800
- ?>
801
  <div class="ftg-code">
802
- <a href="#" class="toggle-shortcode" data-code="<?php
803
- print $f;
804
  ?>"><i class="fa fa-eye-slash"></i></a>
805
- <span id="shortcode-<?php
806
- print $f;
807
  ?>">
808
- <?php
809
- _e( 'Shortcode attribute', 'final-tiles-grid-gallery-lite' );
810
  ?>:
811
- <code class="shortcode-val"><?php
812
- _e( FinalTilesGalleryUtils::fieldNameToShortcode( $f ) );
813
- ?>="<?php
814
- ftg_p( $gallery, $f, $data["default"] );
815
  ?>"</code>
816
  </span>
817
  </div>
818
- <?php
819
- }
820
-
821
- ?>
822
  </div>
823
 
824
  </div>
825
  </td>
826
  </tr>
827
- <?php
828
- }
829
-
830
- ?>
831
- <?php
832
- }
833
- ?>
834
  </tbody>
835
  </table>
836
  </div>
837
  </li>
838
- <?php
839
- $idx++;
840
- ?>
841
- <?php
842
- }
843
- ?>
844
 
845
  </ul>
846
  </div>
847
  <div class="col s3">
848
- <?php
849
-
850
- if ( ftg_fs()->is_not_paying() ) {
851
- ?>
852
  <ul class="collapsible gallery-actions">
853
  <li class="active">
854
- <div class="collapsible-header"><?php
855
- _e( 'Upgrade', 'final-tiles-grid-gallery-lite' );
856
- ?>: <?php
857
- _e( 'unlock features', 'final-tiles-grid-gallery-lite' );
858
  ?></div>
859
  <div class="collapsible-body">
860
  <div class="ftg-upsell">
861
- <a href="<?php
862
- echo ftg_fs()->get_upgrade_url() ;
863
- ?>"><i class="fa fa-hand-o-right"></i> <?php
864
- _e( 'Upgrade', 'final-tiles-grid-gallery-lite' );
865
  ?></a>
866
  </div>
867
- <p>or save 30% purchasing the <strong>BUNDLE</strong>:</p>
 
 
 
 
868
  <div class="ftg-upsell">
869
  <a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
870
  <i class="fa fa-star"></i>
871
- Bundle: 30% <?php
872
- _e( 'discount', 'final-tiles-grid-gallery-lite' );
 
 
873
  ?></a>
874
  </div>
875
  <p class="upsell-info">
876
- <?php
877
- _e( 'GET 3 plugins', 'final-tiles-grid-gallery-lite' );
878
  ?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
879
  </p>
880
  </div>
881
  </li>
882
  </ul>
883
- <?php
884
- }
885
-
886
- ?>
887
  <ul class="collapsible gallery-actions">
888
  <li class="active">
889
- <div class="collapsible-header"><?php
890
- _e( 'Publish', 'final-tiles-grid-gallery-lite' );
891
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
892
  <div class="collapsible-body">
893
  <div>
894
- <input readonly="" type="text" value="[FinalTilesGallery id='<?php
895
- print $gid;
896
  ?>']" style="max-width:200px;display:inline-block;">
897
  <a href="#" title="Click to copy shortcode" class="copy-ftg-shortcode button button-primary dashicons dashicons-format-gallery" style="width:40px; display: inline-block;"></a><span style="margin-left:15px;"></span>
898
  </div>
899
  <div>
900
- <button data-update-gallery class="button components-button is-primary"><?php
901
- _e( 'Save gallery', 'final-tiles-grid-gallery-lite' );
902
  ?></button>
903
  </div>
904
  </div>
905
  </li>
906
  <li>
907
- <div class="collapsible-header"><?php
908
- _e( 'Import settings', 'final-tiles-grid-gallery-lite' );
909
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
910
  <div class="collapsible-body">
911
- <p><?php
912
- _e( 'Paste Here the configuration code', 'final-tiles-grid-gallery-lite' );
913
  ?></p>
914
  <div><textarea data-import-text></textarea></div>
915
- <button data-ftg-import class="button"><i class="fa fa-upload"></i> <?php
916
- _e( 'Import', 'final-tiles-grid-gallery-lite' );
917
  ?></button>
918
  </div>
919
  </li>
920
  <li>
921
- <div class="collapsible-header"><?php
922
- _e( 'Export settings', 'final-tiles-grid-gallery-lite' );
923
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
924
  <div class="collapsible-body">
925
- <p><?php
926
- _e( 'Settings', 'final-tiles-grid-gallery-lite' );
927
  ?></p>
928
  <div><textarea readonly id="ftg-export-code"></textarea></div>
929
- <button id="ftg-export" class="button"><i class="fa fa-download"></i> <?php
930
- _e( 'Refresh code', 'final-tiles-grid-gallery-lite' );
931
  ?></button>
932
  </div>
933
  </li>
934
  <li>
935
- <div class="collapsible-header"><?php
936
- _e( 'Help', 'final-tiles-grid-gallery-lite' );
937
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
938
  <div class="collapsible-body">
939
  <ul class="collection">
940
  <li class="collection-item">
941
  <i class="fa fa-chevron-right"></i>
942
- <a href="http://issuu.com/greentreelabs/docs/finaltilesgridgallery-documentation?e=17859916/13243836" target="_blank"><?php
943
- _e( 'Documentation', 'final-tiles-grid-gallery-lite' );
944
  ?></a></li>
945
  <li class="collection-item">
946
  <i class="fa fa-chevron-right"></i>
947
  <a target="_blank" href="https://www.youtube.com/watch?v=RNT4JGjtyrs">
948
- <?php
949
- _e( 'Tutorial', 'final-tiles-grid-gallery-lite' );
950
  ?></a>
951
  </li>
952
  <li class="collection-item">
953
  <i class="fa fa-chevron-right"></i>
954
- <a href="http://www.wpbeginner.com/wp-tutorials/how-to-create-additional-image-sizes-in-wordpress/" target="_blank"><?php
955
- _e( 'How to add additional image sizes', 'final-tiles-grid-gallery-lite' );
956
  ?></a>
957
  </li>
958
  </ul>
@@ -961,38 +971,38 @@ _e( 'How to add additional image sizes', 'final-tiles-grid-gallery-lite' );
961
  </ul>
962
  <ul class="collapsible gallery-actions">
963
  <li>
964
- <div class="collapsible-header"><?php
965
- _e( 'FAQ', 'final-tiles-grid-gallery-lite' );
966
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
967
  <div class="collapsible-body">
968
  <ul class="collapsible gallery-actions">
969
  <li>
970
- <div class="collapsible-header"><?php
971
- _e( 'How can I change the grid on mobile?', 'final-tiles-grid-gallery-lite' );
972
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
973
  <div class="collapsible-body">
974
- <p><?php
975
- _e( 'You can customize the aspect of your galleries for any device. Find the options "Image size factor" into the "Advanced" section. Set a lower value to make images smaller and a higher value to make images larger.', 'final-tiles-grid-gallery-lite' );
976
  ?></p>
977
  </div>
978
  </li>
979
  <li>
980
- <div class="collapsible-header"><?php
981
- _e( 'How to add a link to a picture?', 'final-tiles-grid-gallery-lite' );
982
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
983
  <div class="collapsible-body">
984
- <p><?php
985
- _e( 'Click the edit (pencil) icon on the image and insert the link inside the "Link" field', 'final-tiles-grid-gallery-lite' );
986
  ?></p>
987
  </div>
988
  </li>
989
  <li>
990
- <div class="collapsible-header"><?php
991
- _e( 'Why my images look blurry?', 'final-tiles-grid-gallery-lite' );
992
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
993
  <div class="collapsible-body">
994
- <p><?php
995
- _e( 'You probably have chosen a small image size. Click the edit (pencil) icon on the blurry image and choose a larger size. Remember, you can choose the size before adding the images to the gallery', 'final-tiles-grid-gallery-lite' );
996
  ?></p>
997
  </div>
998
  </li>
@@ -1008,35 +1018,35 @@ _e( 'You probably have chosen a small image size. Click the edit (pencil) icon o
1008
  <!-- video panel -->
1009
  <div id="video-panel-model" class="modal">
1010
  <div class="modal-content">
1011
- <p><?php
1012
- _e( 'Paste here the embed code (it must be an ', 'final-tiles-grid-gallery-lite' );
1013
- ?><strong><?php
1014
- _e( 'iframe', 'final-tiles-grid-gallery-lite' );
1015
  ?></strong>
1016
- <?php
1017
- _e( 'and it must contain the attributes', 'final-tiles-grid-gallery-lite' );
1018
- ?> <strong><?php
1019
- _e( 'width', 'final-tiles-grid-gallery-lite' );
1020
- ?></strong> <?php
1021
- _e( 'and', 'final-tiles-grid-gallery-lite' );
1022
- ?><strong><?php
1023
- _e( ' height', 'final-tiles-grid-gallery-lite' );
1024
  ?></strong>)</p>
1025
  <div class="text dark">
1026
  <textarea></textarea>
1027
  </div>
1028
  <div class="field video-filters clearfix" ></div>
1029
- <input type="hidden" id="filter-video" value="<?php
1030
- print $gallery->filters;
1031
  ?>">
1032
  </div>
1033
  <input type="hidden" id="video-panel-action" >
1034
  <div class="field buttons modal-footer">
1035
- <a href="#" data-action="edit" class="action positive save modal-action modal-close waves-effect waves-green btn-flat"><?php
1036
- _e( 'Save', 'final-tiles-grid-gallery-lite' );
1037
  ?></a>
1038
- <a href="#" data-action="cancel" class="action neutral modal-action modal-close waves-effect waves-yellow btn-flat"><?php
1039
- _e( 'Cancel', 'final-tiles-grid-gallery-lite' );
1040
  ?></a>
1041
  </div>
1042
  </div>
@@ -1045,8 +1055,8 @@ _e( 'Cancel', 'final-tiles-grid-gallery-lite' );
1045
  <!-- image panel -->
1046
  <div id="image-panel-model" class="modal">
1047
  <div class="modal-content cf">
1048
- <h4><?php
1049
- _e( 'Edit image', 'final-tiles-grid-gallery-lite' );
1050
  ?></h4>
1051
  <div class="left">
1052
  <div class="figure"></div>
@@ -1054,26 +1064,26 @@ _e( 'Edit image', 'final-tiles-grid-gallery-lite' );
1054
  </div>
1055
  <div class="right-side">
1056
  <div class="field">
1057
- <label><?php
1058
- _e( 'Title', 'final-tiles-grid-gallery-lite' );
1059
  ?></label>
1060
  <div class="text">
1061
  <textarea name="imageTitle"></textarea>
1062
  </div>
1063
  </div>
1064
  <div class="field">
1065
- <label><?php
1066
- _e( 'Caption', 'final-tiles-grid-gallery-lite' );
1067
  ?></label>
1068
  <div class="text">
1069
  <textarea name="description"></textarea>
1070
  </div>
1071
  </div>
1072
  <div class="field">
1073
- <label><?php
1074
- _e( 'Alt', 'final-tiles-grid-gallery-lite' );
1075
- ?> <?php
1076
- _e( '(leave empty to use title or description as ALT attribute)', 'final-tiles-grid-gallery-lite' );
1077
  ?></label>
1078
  <div class="text">
1079
  <input type="text" name="alt" />
@@ -1082,9 +1092,9 @@ _e( '(leave empty to use title or description as ALT attribute)', 'final-tiles-g
1082
  <div class="field">
1083
  <input class="browser-default" id="hidden-image" type="checkbox" name="hidden" value="T" />
1084
  <label for="hidden-image">
1085
- <?php
1086
- _e( 'Hidden, visible only with lightbox', 'final-tiles-grid-gallery-lite' );
1087
- ?>
1088
  </label>
1089
  </div>
1090
  <div class="field js-no-hidden">
@@ -1092,43 +1102,43 @@ _e( 'Hidden, visible only with lightbox', 'final-tiles-grid-gallery-lite' );
1092
  <table>
1093
  <tr>
1094
  <td style="width: 60%">
1095
- <label><?php
1096
- _e( 'Link', 'final-tiles-grid-gallery-lite' );
1097
  ?></label><br>
1098
  <input type="text" size="20" value="" name="link" />
1099
  </td>
1100
  <td>
1101
- <label><?php
1102
- _e( 'Link target', 'final-tiles-grid-gallery-lite' );
1103
  ?></label>
1104
  <select name="target" class="browser-default">
1105
- <option value="default"><?php
1106
- _e( 'Default target', 'final-tiles-grid-gallery-lite' );
1107
  ?></option>
1108
- <option value="_self"><?php
1109
- _e( 'Open in same page', 'final-tiles-grid-gallery-lite' );
1110
  ?></option>
1111
- <option value="_blank"><?php
1112
- _e( 'Open in _blank', 'final-tiles-grid-gallery-lite' );
1113
  ?></option>
1114
- <option value="_lightbox"><?php
1115
- _e( 'Open in lightbox (when using a lightbox)', 'final-tiles-grid-gallery-lite' );
1116
  ?></option>
1117
  </select>
1118
  </td>
1119
  </tr>
1120
  </table>
1121
  </div>
1122
- <?php
1123
- ?>
1124
  </div>
1125
  </div>
1126
  <div class="field buttons modal-footer">
1127
- <a href="#" data-action="cancel" class="modal-close action button"><i class="mdi-content-reply"></i> <?php
1128
- _e( 'Cancel', 'final-tiles-grid-gallery-lite' );
1129
  ?></a>
1130
- <a href="#" data-action="save" class="modal-close button components-button is-primary"><i class="fa fa-save"></i> <?php
1131
- _e( 'Save', 'final-tiles-grid-gallery-lite' );
1132
  ?></a>
1133
  </div>
1134
  </div>
@@ -1150,20 +1160,20 @@ _e( 'Save', 'final-tiles-grid-gallery-lite' );
1150
 
1151
  <script>
1152
  var presets = {};
1153
- <?php
1154
- $presetIdx = 0;
1155
- foreach ( $ftg_fields as $section => $s ) {
1156
- if ( array_key_exists( "presets", $s ) ) {
1157
- foreach ( $s["presets"] as $preset => $values ) {
1158
- echo "presets['preset_" . $presetIdx . "_" . $preset . "'] = " . json_encode( $values ) . ";\n" ;
1159
- }
1160
- }
1161
- $presetIdx++;
1162
- }
1163
- ?>
1164
 
1165
- var ftg_wp_caption_field = '<?php
1166
- ftg_p( $gallery, "wp_field_caption" );
1167
  ?>';
1168
  (function ($) {
1169
  $("[name=captionFullHeight]").change(function () {
@@ -1177,8 +1187,8 @@ ftg_p( $gallery, "wp_field_caption" );
1177
  }
1178
  });
1179
 
1180
- <?php
1181
- ?>
1182
 
1183
  })(jQuery);
1184
  </script>
1
+ <?php
2
+
3
+ if ( !function_exists( 'ftg_p' ) ) {
4
+ function ftg_p( $gallery, $field, $default = NULL )
5
+ {
6
+ global $ftg_options ;
7
+
8
+ if ( $ftg_options ) {
9
+ if ( array_key_exists( $field, $ftg_options ) ) {
10
+ print stripslashes( $ftg_options[$field] );
11
+ }
12
+ return;
13
+ }
14
+
15
+
16
+ if ( $gallery == NULL || $gallery->{$field} === NULL ) {
17
+
18
+ if ( $default === NULL ) {
19
+ print "";
20
+ } else {
21
+ print stripslashes( $default );
22
+ }
23
+
24
+ } else {
25
+ print stripslashes( $gallery->{$field} );
26
+ }
27
+
28
+ }
29
+
30
+ function ftg_sel(
31
+ $gallery,
32
+ $field,
33
+ $value,
34
+ $type = "selected"
35
+ )
36
+ {
37
+ global $ftg_options ;
38
+
39
+ if ( $ftg_options && $ftg_options[$field] == $value ) {
40
+ print $type;
41
+ return;
42
+ }
43
+
44
+
45
+ if ( $gallery == NULL || !isset( $gallery->{$field} ) ) {
46
+ print "";
47
+ } else {
48
+ if ( $gallery->{$field} == $value ) {
49
+ print $type;
50
+ }
51
+ }
52
+
53
+ }
54
+
55
+ function ftg_checkFieldDisabled( $options )
56
+ {
57
+ if ( is_array( $options ) && count( $options ) == 3 && $options[2] == "disabled" ) {
58
+ return "disabled";
59
+ }
60
+ return "";
61
+ }
62
+
63
+ function ftg_checkDisabledOption( $plan )
64
+ {
65
+ return "disabled";
66
+ return "";
67
+ }
68
+
69
+ function ftg_printPro( $plan )
70
+ {
71
+ return " (upgrade to unlock)";
72
+ return "";
73
+ }
74
+
75
+ function ftg_printFieldPro( $options )
76
+ {
77
+ if ( is_array( $options ) && count( $options ) == 3 && $options[2] == "disabled" ) {
78
+ return " (upgrade to unlock)";
79
+ }
80
+ return "";
81
+ }
82
+
83
+ }
84
+
85
+ global $ftg_parent_page ;
86
+ global $ftg_fields ;
87
+ $filters = array();
88
+ //print_r($gallery);
89
+ $idx = 0;
90
+ function ftgSortByName( $a, $b )
91
+ {
92
+ return $a["name"] > $b["name"];
93
+ }
94
+
95
+ ?>
96
 
97
  <div class="row">
98
  <div class="col s9">
99
  <ul class="collapsible" id="all-settings" data-collapsible="accordion">
100
  <li id="images" class="active">
101
  <div class="collapsible-header">
102
+ <i class="fa fa-picture-o light-green darken-1 white-text ftg-section-icon"></i> <?php
103
+ esc_html_e( 'Images', 'final-tiles-grid-gallery-lite' );
104
+ ?>
105
  </div>
106
  <div class="collapsible-body" style="display:block">
107
  <div class="actions">
108
  <div class="images-bar">
109
  <select name="ftg_source" class="browser-default">
110
+ <option <?php
111
+ ftg_sel( $gallery, "source", "images" );
112
+ ?> value="images"><?php
113
+ esc_html_e( 'User images', 'final-tiles-grid-gallery-lite' );
114
  ?></option>
115
+ <option <?php
116
+ ftg_sel( $gallery, "source", "posts" );
117
+ ?> value="posts" <?php
118
+ echo ftg_checkDisabledOption( 'ultimate' ) ;
119
+ ?>><?php
120
+ esc_html_e( 'Recent posts with featured image', 'final-tiles-grid-gallery-lite' );
121
+ echo ftg_printPro( 'ultimate' ) ;
122
  ?></option>
123
+ <?php
124
+
125
+ if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
126
+ ?>
127
+ <option <?php
128
+ ftg_sel( $gallery, "source", "woocommerce" );
129
+ ?> value="woocommerce" <?php
130
+ echo ftg_checkDisabledOption( 'ultimate' ) ;
131
+ ?>><?php
132
+ _e( 'WooCommerce products', 'final-tiles-grid-gallery-lite' );
133
+ echo ftg_printPro( 'ultimate' ) ;
134
  ?></option>
135
+ <?php
136
+ }
137
+
138
+ ?>
139
  </select>
140
  <select class="current-image-size browser-default">
141
+ <?php
142
+ foreach ( $this->list_thumbnail_sizes() as $size => $atts ) {
143
+ echo '<option ' . (( $size == 'large' ? 'selected' : '' )) . ' value="' . esc_attr( $size ) . '">' . esc_html( $size ) . " (" . implode( 'x', $atts ) . ")</option>" ;
144
+ }
145
+ ?>
146
  </select>
147
 
148
  <a href="#" class="open-media-panel button">
149
+ <?php
150
+ esc_html_e( 'Add images', 'final-tiles-grid-gallery-lite' );
151
+ ?>
152
  </a>
153
+ <?php
154
+ ?>
155
+ <a onclick="alert('Upgrade to unlock')" href="#" class=" button"><?php
156
+ esc_html_e( 'Add video', 'final-tiles-grid-gallery-lite' );
157
  ?></a>
158
+ <?php
159
+ ?>
160
+ <a class="button button-delete" data-remove-images href="#!"><?php
161
+ esc_html_e( 'Remove selected', 'final-tiles-grid-gallery-lite' );
162
  ?></a>
163
  </div>
164
  <div class="row selection-row">
165
  <div class="bulk options">
166
  <span>
167
+ <a class="button" href="#" data-action="select"><?php
168
+ esc_html_e( 'Select all', 'final-tiles-grid-gallery-lite' );
169
  ?></a>
170
+ <a class="button" href="#" data-action="deselect"><?php
171
+ esc_html_e( 'Deselect all', 'final-tiles-grid-gallery-lite' );
172
  ?></a>
173
+ <a class="button" href="#" data-action="toggle"><?php
174
+ esc_html_e( 'Toggle selection', 'final-tiles-grid-gallery-lite' );
175
  ?></a>
176
  </span>
177
  <span>
178
+ <?php
179
+ ?>
180
+ <?php
181
+ ?>
182
  </span>
183
  <span>
184
+ <a class="button" href="#" data-action="show-hide"><?php
185
+ esc_html_e( 'Toggle visibility', 'final-tiles-grid-gallery-lite' );
186
  ?></a>
187
  </span>
188
  </div>
189
  </div>
190
+ <?php
191
+
192
+ if ( is_array( $filters ) && count( $filters ) > 1 ) {
193
+ ?>
194
  <div class="row filter-list">
195
+ <b> <?php
196
+ esc_html_e( 'Select by filter:', 'final-tiles-grid-gallery-lite' );
197
  ?> </b>
198
  <span class="filter-select-control">
199
+ <?php
200
+ foreach ( $filters as $filter ) {
201
+ ?>
202
+ <em class='button filter-item' ><?php
203
+ echo esc_html( $filter ) ;
204
  ?></em>
205
+ <?php
206
+ }
207
+ ?>
208
  </span>
209
  </div>
210
+ <?php
211
+ }
212
+
213
+ ?>
214
  </div>
215
  <div id="image-list" class="row"></div>
216
 
217
  <div class="actions">
218
  <div class="row">
219
+ <?php
220
+ esc_html_e( 'Add links by clicking the EDIT (pencil) button', 'final-tiles-grid-gallery-lite' );
221
  ?><br>
222
+ <?php
223
+ esc_html_e( 'Drag the images to change their order.', 'final-tiles-grid-gallery-lite' );
224
+ ?>
225
  </div>
226
  </div>
227
  <div id="images" class="ftg-section form-fields">
229
  <div class="row">
230
  <label>Taxonomy operator</label>
231
  <select name="ftg_taxonomyOperator" class="browser-default js-ajax-loading-control">
232
+ <option <?php
233
+ ftg_sel( $gallery, "taxonomyOperator", "OR" );
234
+ ?> value="OR"><?php
235
+ esc_html_e( 'OR: all posts matching 1 ore more selected taxonomies', 'final-tiles-grid-gallery-lite' );
236
+ ?></option>
237
+ <option <?php
238
+ ftg_sel( $gallery, "taxonomyOperator", "AND" );
239
+ ?> value="AND"><?php
240
+ esc_html_e( 'AND: all posts matching all the selected taxonomies', 'final-tiles-grid-gallery-lite' );
241
+ ?> </option>
242
  </select>
243
  </div>
244
  <div class="row">
245
  <label>Taxonomy as filter</label>
246
  <select name="ftg_taxonomyAsFilter" class="browser-default js-ajax-loading-control">
247
  <option></option>
248
+ <?php
249
+ foreach ( get_taxonomies( array(), "objects" ) as $taxonomy => $t ) {
250
+ ?>
251
+ <?php
252
+
253
+ if ( $t->publicly_queryable ) {
254
+ ?>
255
+ <option <?php
256
+ ftg_sel( $gallery, "taxonomyAsFilter", $t->label );
257
+ ?> value="<?php
258
+ esc_attr_e( $t->label );
259
+ ?>"><?php
260
+ echo esc_html( $t->label ) ;
261
  ?></option>
262
+ <?php
263
+ }
264
+
265
+ ?>
266
+ <?php
267
+ }
268
+ ?>
269
  </select>
270
  </div>
271
  <div class="row checkboxes">
272
+ <strong class="label"><?php
273
+ esc_html_e( 'Post type:', 'final-tiles-grid-gallery-lite' );
274
  ?></strong>
275
  <span>
276
+ <?php
277
+ $idx = 0;
278
+ ?>
279
+ <?php
280
+ foreach ( get_post_types( '', 'names' ) as $t ) {
281
+ ?>
282
+ <?php
283
+
284
+ if ( !in_array( $t, $excluded_post_types ) ) {
285
+ ?>
286
  <span class="tax-item">
287
+ <input class="browser-default" id="post-type-<?php
288
+ echo esc_attr( $idx ) ;
289
+ ?>" type="checkbox" name="post_types" value="<?php
290
+ echo esc_attr( $t ) ;
291
  ?>">
292
+ <label for="post-type-<?php
293
+ echo esc_attr( $idx ) ;
294
+ ?>"><?php
295
+ echo esc_html( $t ) ;
296
  ?></label>
297
  </span>
298
+ <?php
299
+ $idx++;
300
+ ?>
301
+ <?php
302
+ }
303
+
304
+ ?>
305
+ <?php
306
+ }
307
+ ?>
308
+ <input type="hidden" name="ftg_post_types" value="<?php
309
+ echo esc_attr( $gallery->post_types ) ;
310
  ?>" />
311
  </span>
312
  </div>
313
+ <?php
314
+ //print_r(get_taxonomies(array(), "objects")); exit();
315
+ ?>
316
+ <?php
317
+ foreach ( get_taxonomies( array(), "objects" ) as $taxonomy => $t ) {
318
+ ?>
319
+ <?php
320
+
321
+ if ( $t->publicly_queryable ) {
322
+ ?>
323
+ <?php
324
+ $items = get_terms( $taxonomy, array(
325
+ "hide_empty" => false,
326
+ ) );
327
+ ?>
328
+ <?php
329
+
330
+ if ( count( $items ) > 0 ) {
331
+ ?>
332
+ <?php
333
+ //print_r($items);
334
+ ?>
335
  <div class="row checkboxes">
336
+ <strong class="label"><?php
337
+ echo esc_html( $t->label ) ;
338
  ?></strong>
339
  <span>
340
+ <?php
341
+ $idx = 0;
342
+ ?>
343
+ <?php
344
+ foreach ( $items as $c ) {
345
+ ?>
346
  <span class="tax-item">
347
+ <input id="post-tax-<?php
348
+ echo esc_attr( $c->term_id ) ;
349
+ ?>" type="checkbox" name="post_taxonomy" data-taxonomy="<?php
350
+ echo esc_attr( $t->name ) ;
351
+ ?>" value="<?php
352
+ echo esc_attr( $c->term_id ) ;
353
  ?>">
354
+ <label for="post-tax-<?php
355
+ echo esc_attr( $c->term_id ) ;
356
+ ?>"><?php
357
+ echo esc_html( $c->name ) ;
358
  ?></label>
359
  </span>
360
+ <?php
361
+ $idx++;
362
+ ?>
363
+ <?php
364
+ }
365
+ ?>
366
  </span>
367
  </div>
368
+ <?php
369
+ }
370
+
371
+ ?>
372
+ <?php
373
+ }
374
+
375
+ ?>
376
+ <?php
377
+ }
378
+ ?>
379
+ <input type="hidden" name="ftg_post_taxonomies" value="<?php
380
+ echo esc_attr( $gallery->post_taxonomies ) ;
381
  ?>" />
382
  <div class="row checkboxes">
383
+ <strong class="label"><?php
384
+ esc_html_e( 'Max posts:', 'final-tiles-grid-gallery-lite' );
385
  ?></strong>
386
  <span class="aside">
387
+ <input type="text" name="ftg_max_posts" value="<?php
388
+ echo esc_attr( $gallery->max_posts ) ;
389
  ?>">
390
+ <span><?php
391
+ esc_html_e( '(enter 0 for unlimited posts)', 'final-tiles-grid-gallery-lite' );
392
  ?></span>
393
  </span>
394
  </div>
395
  </div>
396
+ <?php
397
+
398
+ if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
399
+ ?>
400
  <div class="actions source-woocommerce source-panel">
401
  <div class="row checkboxes">
402
+ <strong class="label"><?php
403
+ _e( 'Categories', 'final-tiles-grid-gallery-lite' );
404
  ?>:</strong>
405
  <span>
406
+ <?php
407
+ $idx = 0;
408
+ ?>
409
+ <?php
410
+ foreach ( $woo_categories as $c ) {
411
+ ?>
412
+ <input class="browser-default" id="woo-cat-<?php
413
+ echo esc_attr( $idx ) ;
414
+ ?>" type="checkbox" name="woo_cat" value="<?php
415
+ echo esc_attr( $c->term_id ) ;
416
  ?>">
417
+ <label for="woo-cat-<?php
418
+ echo esc_attr( $idx ) ;
419
+ ?>"><?php
420
+ echo esc_html( $c->cat_name ) ;
421
  ?></label>
422
+ <?php
423
+ $idx++;
424
+ ?>
425
+ <?php
426
+ }
427
+ ?>
428
+ <input type="hidden" name="ftg_woo_categories" value="<?php
429
+ echo esc_attr( $gallery->woo_categories ) ;
430
  ?>" />
431
  </span>
432
  </div>
433
  </div>
434
+ <?php
435
+ }
436
+
437
+ ?>
438
  </div>
439
  </div>
440
  </li>
441
+ <?php
442
+ foreach ( $ftg_fields as $section => $s ) {
443
+ ?>
444
+ <li id="<?php
445
+ _e( FinalTiles_Gallery::slugify( $section ) );
446
  ?>">
447
  <div class="collapsible-header">
448
+ <i class="<?php
449
+ echo $s["icon"] ;
450
+ ?> light-green darken-1 white-text ftg-section-icon"></i> <?php
451
+ esc_html_e( $section, 'final-tiles-grid-gallery-lite' );
452
+ ?>
453
  </div>
454
  <div class="collapsible-body tab form-fields">
455
  <div class="jump-head">
456
+ <?php
457
+ $jumpFields = array();
458
+ foreach ( $s["fields"] as $f => $data ) {
459
+ $jumpFields[$f] = $data;
460
+ $jumpFields[$f]['_code'] = $f;
461
+ }
462
+ unset( $f );
463
+ unset( $data );
464
+ usort( $jumpFields, "ftgSortByName" );
465
+ ?>
466
  <select class="browser-default jump">
467
+ <option><?php
468
+ esc_html_e( 'Jump to setting', 'final-tiles-grid-gallery-lite' );
469
  ?></option>
470
+ <?php
471
+ foreach ( $jumpFields as $f => $data ) {
472
+ ?>
473
+ <?php
474
+
475
+ if ( is_array( $data["excludeFrom"] ) && !in_array( $ftg_parent_page, $data["excludeFrom"] ) ) {
476
+ ?>
477
+ <option value="<?php
478
+ esc_attr_e( $data['_code'], 'final-tiles-grid-gallery-lite' );
479
  ?>">
480
+ <?php
481
+ esc_html_e( $data["name"], 'final-tiles-grid-gallery-lite' );
482
+ ?>
483
  </option>
484
+ <?php
485
+ }
486
+
487
+ ?>
488
+ <?php
489
+ }
490
+ ?>
491
  </select>
492
 
493
+ <?php
494
+
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
+ ?>
504
+ <option><?php
505
+ echo esc_html( $preset ) ;
506
  ?></option>
507
+ <?php
508
+ }
509
+ ?>
510
  </select>
511
+ <?php
512
+ }
513
+
514
+ ?>
515
  </div>
516
  <table>
517
  <tbody>
518
+ <?php
519
+ foreach ( $s["fields"] as $f => $data ) {
520
+ ?>
521
+ <?php
522
+
523
+ if ( is_array( $data["excludeFrom"] ) && !in_array( $ftg_parent_page, $data["excludeFrom"] ) ) {
524
+ ?>
525
 
526
+ <tr class="field-row row-<?php
527
+ echo esc_attr( $f ) ;
528
+ ?> <?php
529
+ echo esc_attr( $data["type"] ) ;
530
  ?>">
531
  <th scope="row">
532
+ <label><?php
533
+ echo wp_kses_post( $data["name"] ) ;
534
+ ?>
535
+ <?php
536
+
537
+ if ( $data["mu"] ) {
538
+ ?>
539
+ (<?php
540
+ esc_html_e( $data["mu"] );
541
  ?>)
542
+ <?php
543
+ }
544
+
545
+ ?>
546
 
547
+ <?php
548
+
549
+ if ( strlen( $data["description"] ) ) {
550
+ ?>
551
  <div class="tab-header-tooltip-container ftg-tooltip">
552
  <span>[?]</span>
553
  <div class="tab-header-description ftg-tooltip-content">
554
+ <?php
555
+ echo wp_kses_post( $data["description"] ) ;
556
+ ?>
557
  </div>
558
  </div>
559
+ <?php
560
+ }
561
+
562
+ ?>
563
  </label>
564
  </th>
565
  <td>
566
+ <div class="field <?php
567
+ echo ( in_array( 'shortcode', $data["excludeFrom"] ) ? "" : "js-update-shortcode" ) ;
568
  ?>">
569
+ <?php
570
+
571
+ if ( $data["type"] == "text" ) {
572
+ ?>
573
  <div class="text">
574
+ <input type="text" size="30" name="ftg_<?php
575
+ echo esc_attr( $f ) ;
576
+ ?>" value="<?php
577
+ ftg_p( $gallery, $f, $data["default"] );
578
  ?>" />
579
  </div>
580
+ <?php
581
+ } elseif ( $data["type"] == "cta" ) {
582
+ ?>
583
  <div class="text">
584
+ <a class="in-table-cta" href="<?php
585
+ echo ftg_fs()->get_upgrade_url() ;
586
  ?>"><i class="mdi mdi-bell-ring-outline"></i>
587
+ <?php
588
+ esc_html_e( 'Unlock this feature. Upgrade Now!', 'final-tiles-grid-gallery-lite' );
589
+ ?>
590
  </a>
591
  </div>
592
+ <?php
593
+ } elseif ( $data["type"] == "select" ) {
594
+ ?>
595
  <div class="text">
596
+ <select class="browser-default" name="ftg_<?php
597
+ print $f;
598
  ?>">
599
+ <?php
600
+ foreach ( array_keys( $data["values"] ) as $optgroup ) {
601
+ ?>
602
+ <optgroup label="<?php
603
+ echo esc_attr( $optgroup ) ;
604
  ?>">
605
+ <?php
606
+ foreach ( $data["values"][$optgroup] as $option ) {
607
+ ?>
608
 
609
+ <?php
610
+ $v = explode( "|", $option );
611
+ ?>
612
 
613
+ <option <?php
614
+ echo ftg_checkFieldDisabled( $v ) ;
615
+ ?> <?php
616
+ ftg_sel( $gallery, $f, $v[0] );
617
+ ?> value="<?php
618
+ echo esc_attr( $v[0] ) ;
619
+ ?>"><?php
620
+ esc_html_e( $v[1], 'final-tiles-grid-gallery-lite' );
621
+ echo ftg_printFieldPro( $v ) ;
622
  ?></option>
623
+ <?php
624
+ }
625
+ ?>
626
  </optgroup>
627
+ <?php
628
+ }
629
+ ?>
630
  </select>
631
+ <?php
632
+
633
+ if ( $f == "lightbox" ) {
634
+ ?>
635
  <div class="col s12 ftg-everlightbox-settings">
636
+ <?php
637
+
638
+ if ( class_exists( 'Everlightbox_Public' ) ) {
639
+ ?>
640
  <div class="card-panel light-green lighten-4">
641
+ <a href="?page=everlightbox_options" target="_blank"><?php
642
+ esc_html_e( 'EverlightBox settings', 'final-tiles-grid-gallery-lite' );
643
  ?></a>
644
  </div>
645
+ <?php
646
+ } else {
647
+ ?>
648
  <div class="card-panel yellow lighten-3">
649
+ <?php
650
+ esc_html_e( 'EverlightBox not installed', 'final-tiles-grid-gallery-lite' );
651
+ ?>. <a target="_blank" class="open-checkout" href="https://checkout.freemius.com/mode/dialog/plugin/1981/plan/2954/"><?php
652
+ esc_html_e( 'Purchase', 'final-tiles-grid-gallery-lite' );
653
  ?></a>
654
  </div>
655
+ <?php
656
+ }
657
+
658
+ ?>
659
  </div>
660
+ <?php
661
+ }
662
+
663
+ ?>
664
  </div>
665
+ <?php
666
+ } elseif ( $data["type"] == "toggle" ) {
667
+ ?>
668
  <div class="switch">
669
  <label>
670
  Off
671
+ <input disabled type="checkbox" id="ftg_<?php
672
+ echo esc_attr( $f ) ;
673
+ ?>" name="ftg_<?php
674
+ echo esc_attr( $f ) ;
675
+ ?>" value="<?php
676
+ ftg_p( $gallery, $f, $data["default"] );
677
+ ?>" <?php
678
+ ftg_sel(
679
+ $gallery,
680
+ $f,
681
+ "T",
682
+ "checked"
683
+ );
684
  ?> >
685
  <span class="lever"></span>
686
  On
687
  </label>
688
  </div>
689
+ <?php
690
+ } elseif ( $data["type"] == "slider" ) {
691
+ ?>
692
 
693
  <div class="text">
694
+ <b id="preview-<?php
695
+ echo esc_attr( $f ) ;
696
+ ?>" class="range-preview"><?php
697
+ ftg_p( $gallery, $f, $data["default"] );
698
  ?></b>
699
  <p class="range-field">
700
+ <input data-preview="<?php
701
+ echo esc_attr( $f ) ;
702
+ ?>" name="ftg_<?php
703
+ echo esc_attr( $f ) ;
704
+ ?>" value="<?php
705
+ ftg_p( $gallery, $f, $data["default"] );
706
+ ?>" type="range" min="<?php
707
+ echo esc_attr( $data["min"] ) ;
708
+ ?>" max="<?php
709
+ echo esc_attr( $data["max"] ) ;
710
  ?>" />
711
  </p>
712
  </div>
713
 
714
+ <?php
715
+ } elseif ( $data["type"] == "number" ) {
716
+ ?>
717
  <div class="text">
718
+ <input type="text" name="ftg_<?php
719
+ echo esc_attr( $f ) ;
720
+ ?>" class="integer-only" value="<?php
721
+ ftg_p( $gallery, $f, $data["default"] );
722
  ?>" >
723
  </div>
724
 
725
+ <?php
726
+ } elseif ( $data["type"] == "color" ) {
727
+ ?>
728
  <div class="text">
729
+ <input type="text" size="6" data-default-color="<?php
730
+ echo esc_attr( $data["default"] ) ;
731
+ ?>" name="ftg_<?php
732
+ echo esc_attr( $f ) ;
733
+ ?>" value="<?php
734
+ ftg_p( $gallery, $f, $data["default"] );
735
  ?>" class='pickColor' /> </div>
736
 
737
+ <?php
738
+ } elseif ( $data["type"] == "filter" ) {
739
+ ?>
740
 
741
  <div class="filters gallery-filters dynamic-table">
742
  <div class="text"></div>
743
+ <a href="#" class="add button"><?php
744
+ esc_html_e( 'Add filter', 'final-tiles-grid-gallery-lite' );
745
  ?></a>
746
+ <a href="#" class="reset-default-filter button"><?php
747
+ esc_html_e( 'Reset selected filter', 'final-tiles-grid-gallery-lite' );
748
  ?></a>
749
+ <input type="hidden" name="ftg_filters" value="<?php
750
+ ftg_p( $gallery, "filters" );
751
  ?>" />
752
+ <input type="hidden" name="filter_def" value="<?php
753
+ ftg_p( $gallery, "defaultFilter" );
754
  ?>" />
755
  </div>
756
 
757
+ <?php
758
+ } elseif ( $data["type"] == "textarea" ) {
759
+ ?>
760
  <div class="text">
761
+ <textarea name="ftg_<?php
762
+ echo esc_attr( $f ) ;
763
+ ?>"><?php
764
+ ftg_p( $gallery, $f );
765
  ?></textarea>
766
  </div>
767
+ <?php
768
+ } elseif ( $data["type"] == "custom_isf" ) {
769
+ ?>
770
  <div class="custom_isf dynamic-table">
771
  <table class="striped">
772
  <thead>
773
  <tr>
774
  <th></th>
775
+ <th><?php
776
+ esc_html_e( 'Resolution', 'final-tiles-grid-gallery-lite' );
777
  ?> (px)</th>
778
+ <th><?php
779
+ esc_html_e( 'Size factor', 'final-tiles-grid-gallery-lite' );
780
  ?> (%)</th>
781
  </tr>
782
  </thead>
783
  <tbody>
784
  </tbody>
785
  </table>
786
+ <input type="hidden" name="ftg_imageSizeFactorCustom" value="<?php
787
+ ftg_p( $gallery, "imageSizeFactorCustom" );
788
  ?>" />
789
  <a href="#" class="add button">
790
+ <?php
791
+ esc_html_e( 'Add resolution', 'final-tiles-grid-gallery-lite' );
792
  ?></a>
793
  </div>
794
+ <?php
795
+ }
796
+
797
+ ?>
798
+ <div class="help" id="help-<?php
799
+ echo $f ;
800
  ?>">
801
+ <?php
802
+
803
+ if ( !in_array( 'shortcode', $data["excludeFrom"] ) && $data["type"] != "cta" ) {
804
+ ?>
805
  <div class="ftg-code">
806
+ <a href="#" class="toggle-shortcode" data-code="<?php
807
+ print $f;
808
  ?>"><i class="fa fa-eye-slash"></i></a>
809
+ <span id="shortcode-<?php
810
+ echo esc_attr( $f ) ;
811
  ?>">
812
+ <?php
813
+ _e( 'Shortcode attribute', 'final-tiles-grid-gallery-lite' );
814
  ?>:
815
+ <code class="shortcode-val"><?php
816
+ _e( FinalTilesGalleryUtils::fieldNameToShortcode( $f ) );
817
+ ?>="<?php
818
+ ftg_p( $gallery, $f, $data["default"] );
819
  ?>"</code>
820
  </span>
821
  </div>
822
+ <?php
823
+ }
824
+
825
+ ?>
826
  </div>
827
 
828
  </div>
829
  </td>
830
  </tr>
831
+ <?php
832
+ }
833
+
834
+ ?>
835
+ <?php
836
+ }
837
+ ?>
838
  </tbody>
839
  </table>
840
  </div>
841
  </li>
842
+ <?php
843
+ $idx++;
844
+ ?>
845
+ <?php
846
+ }
847
+ ?>
848
 
849
  </ul>
850
  </div>
851
  <div class="col s3">
852
+ <?php
853
+
854
+ if ( ftg_fs()->is_not_paying() ) {
855
+ ?>
856
  <ul class="collapsible gallery-actions">
857
  <li class="active">
858
+ <div class="collapsible-header"><?php
859
+ _e( 'Upgrade', 'final-tiles-grid-gallery-lite' );
860
+ ?>: <?php
861
+ esc_html_e( 'unlock features', 'final-tiles-grid-gallery-lite' );
862
  ?></div>
863
  <div class="collapsible-body">
864
  <div class="ftg-upsell">
865
+ <a href="<?php
866
+ echo ftg_fs()->get_upgrade_url() ;
867
+ ?>"><i class="fa fa-hand-o-right"></i> <?php
868
+ esc_html_e( 'Upgrade', 'final-tiles-grid-gallery-lite' );
869
  ?></a>
870
  </div>
871
+ <p><?php
872
+ echo esc_html_e( 'or save 30% purchasing the', 'final-tiles-grid-gallery-lite' ) ;
873
+ ?> <strong><?php
874
+ esc_html_e( 'BUNDLE', 'final-tiles-grid-gallery-lite' );
875
+ ?></strong>:</p>
876
  <div class="ftg-upsell">
877
  <a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
878
  <i class="fa fa-star"></i>
879
+ <?php
880
+ esc_html_e( 'Bundle: 30%', 'final-tiles-grid-gallery-lite' );
881
+ ?> <?php
882
+ esc_html_e( 'discount', 'final-tiles-grid-gallery-lite' );
883
  ?></a>
884
  </div>
885
  <p class="upsell-info">
886
+ <?php
887
+ esc_html_e( 'GET 3 plugins', 'final-tiles-grid-gallery-lite' );
888
  ?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
889
  </p>
890
  </div>
891
  </li>
892
  </ul>
893
+ <?php
894
+ }
895
+
896
+ ?>
897
  <ul class="collapsible gallery-actions">
898
  <li class="active">
899
+ <div class="collapsible-header"><?php
900
+ esc_html_e( 'Publish', 'final-tiles-grid-gallery-lite' );
901
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
902
  <div class="collapsible-body">
903
  <div>
904
+ <input readonly="" type="text" value="[FinalTilesGallery id='<?php
905
+ echo esc_attr( $gid ) ;
906
  ?>']" style="max-width:200px;display:inline-block;">
907
  <a href="#" title="Click to copy shortcode" class="copy-ftg-shortcode button button-primary dashicons dashicons-format-gallery" style="width:40px; display: inline-block;"></a><span style="margin-left:15px;"></span>
908
  </div>
909
  <div>
910
+ <button data-update-gallery class="button components-button is-primary"><?php
911
+ esc_html_e( 'Save gallery', 'final-tiles-grid-gallery-lite' );
912
  ?></button>
913
  </div>
914
  </div>
915
  </li>
916
  <li>
917
+ <div class="collapsible-header"><?php
918
+ _e( 'Import settings', 'final-tiles-grid-gallery-lite' );
919
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
920
  <div class="collapsible-body">
921
+ <p><?php
922
+ esc_html_e( 'Paste Here the configuration code', 'final-tiles-grid-gallery-lite' );
923
  ?></p>
924
  <div><textarea data-import-text></textarea></div>
925
+ <button data-ftg-import class="button"><i class="fa fa-upload"></i> <?php
926
+ esc_html_e( 'Import', 'final-tiles-grid-gallery-lite' );
927
  ?></button>
928
  </div>
929
  </li>
930
  <li>
931
+ <div class="collapsible-header"><?php
932
+ _e( 'Export settings', 'final-tiles-grid-gallery-lite' );
933
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
934
  <div class="collapsible-body">
935
+ <p><?php
936
+ _e( 'Settings', 'final-tiles-grid-gallery-lite' );
937
  ?></p>
938
  <div><textarea readonly id="ftg-export-code"></textarea></div>
939
+ <button id="ftg-export" class="button"><i class="fa fa-download"></i> <?php
940
+ _e( 'Refresh code', 'final-tiles-grid-gallery-lite' );
941
  ?></button>
942
  </div>
943
  </li>
944
  <li>
945
+ <div class="collapsible-header"><?php
946
+ _e( 'Help', 'final-tiles-grid-gallery-lite' );
947
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
948
  <div class="collapsible-body">
949
  <ul class="collection">
950
  <li class="collection-item">
951
  <i class="fa fa-chevron-right"></i>
952
+ <a href="http://issuu.com/greentreelabs/docs/finaltilesgridgallery-documentation?e=17859916/13243836" target="_blank"><?php
953
+ _e( 'Documentation', 'final-tiles-grid-gallery-lite' );
954
  ?></a></li>
955
  <li class="collection-item">
956
  <i class="fa fa-chevron-right"></i>
957
  <a target="_blank" href="https://www.youtube.com/watch?v=RNT4JGjtyrs">
958
+ <?php
959
+ _e( 'Tutorial', 'final-tiles-grid-gallery-lite' );
960
  ?></a>
961
  </li>
962
  <li class="collection-item">
963
  <i class="fa fa-chevron-right"></i>
964
+ <a href="http://www.wpbeginner.com/wp-tutorials/how-to-create-additional-image-sizes-in-wordpress/" target="_blank"><?php
965
+ _e( 'How to add additional image sizes', 'final-tiles-grid-gallery-lite' );
966
  ?></a>
967
  </li>
968
  </ul>
971
  </ul>
972
  <ul class="collapsible gallery-actions">
973
  <li>
974
+ <div class="collapsible-header"><?php
975
+ _e( 'FAQ', 'final-tiles-grid-gallery-lite' );
976
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
977
  <div class="collapsible-body">
978
  <ul class="collapsible gallery-actions">
979
  <li>
980
+ <div class="collapsible-header"><?php
981
+ _e( 'How can I change the grid on mobile?', 'final-tiles-grid-gallery-lite' );
982
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
983
  <div class="collapsible-body">
984
+ <p><?php
985
+ _e( 'You can customize the aspect of your galleries for any device. Find the options "Image size factor" into the "Advanced" section. Set a lower value to make images smaller and a higher value to make images larger.', 'final-tiles-grid-gallery-lite' );
986
  ?></p>
987
  </div>
988
  </li>
989
  <li>
990
+ <div class="collapsible-header"><?php
991
+ _e( 'How to add a link to a picture?', 'final-tiles-grid-gallery-lite' );
992
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
993
  <div class="collapsible-body">
994
+ <p><?php
995
+ _e( 'Click the edit (pencil) icon on the image and insert the link inside the "Link" field', 'final-tiles-grid-gallery-lite' );
996
  ?></p>
997
  </div>
998
  </li>
999
  <li>
1000
+ <div class="collapsible-header"><?php
1001
+ _e( 'Why my images look blurry?', 'final-tiles-grid-gallery-lite' );
1002
  ?> <svg class="components-panel__arrow" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" focusable="false"><g><path fill="none" d="M0,0h24v24H0V0z"></path></g><g><path d="M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"></path></g></svg></div>
1003
  <div class="collapsible-body">
1004
+ <p><?php
1005
+ _e( 'You probably have chosen a small image size. Click the edit (pencil) icon on the blurry image and choose a larger size. Remember, you can choose the size before adding the images to the gallery', 'final-tiles-grid-gallery-lite' );
1006
  ?></p>
1007
  </div>
1008
  </li>
1018
  <!-- video panel -->
1019
  <div id="video-panel-model" class="modal">
1020
  <div class="modal-content">
1021
+ <p><?php
1022
+ _e( 'Paste here the embed code (it must be an ', 'final-tiles-grid-gallery-lite' );
1023
+ ?><strong><?php
1024
+ _e( 'iframe', 'final-tiles-grid-gallery-lite' );
1025
  ?></strong>
1026
+ <?php
1027
+ _e( 'and it must contain the attributes', 'final-tiles-grid-gallery-lite' );
1028
+ ?> <strong><?php
1029
+ _e( 'width', 'final-tiles-grid-gallery-lite' );
1030
+ ?></strong> <?php
1031
+ _e( 'and', 'final-tiles-grid-gallery-lite' );
1032
+ ?><strong><?php
1033
+ _e( ' height', 'final-tiles-grid-gallery-lite' );
1034
  ?></strong>)</p>
1035
  <div class="text dark">
1036
  <textarea></textarea>
1037
  </div>
1038
  <div class="field video-filters clearfix" ></div>
1039
+ <input type="hidden" id="filter-video" value="<?php
1040
+ print $gallery->filters;
1041
  ?>">
1042
  </div>
1043
  <input type="hidden" id="video-panel-action" >
1044
  <div class="field buttons modal-footer">
1045
+ <a href="#" data-action="edit" class="action positive save modal-action modal-close waves-effect waves-green btn-flat"><?php
1046
+ _e( 'Save', 'final-tiles-grid-gallery-lite' );
1047
  ?></a>
1048
+ <a href="#" data-action="cancel" class="action neutral modal-action modal-close waves-effect waves-yellow btn-flat"><?php
1049
+ _e( 'Cancel', 'final-tiles-grid-gallery-lite' );
1050
  ?></a>
1051
  </div>
1052
  </div>
1055
  <!-- image panel -->
1056
  <div id="image-panel-model" class="modal">
1057
  <div class="modal-content cf">
1058
+ <h4><?php
1059
+ _e( 'Edit image', 'final-tiles-grid-gallery-lite' );
1060
  ?></h4>
1061
  <div class="left">
1062
  <div class="figure"></div>
1064
  </div>
1065
  <div class="right-side">
1066
  <div class="field">
1067
+ <label><?php
1068
+ _e( 'Title', 'final-tiles-grid-gallery-lite' );
1069
  ?></label>
1070
  <div class="text">
1071
  <textarea name="imageTitle"></textarea>
1072
  </div>
1073
  </div>
1074
  <div class="field">
1075
+ <label><?php
1076
+ _e( 'Caption', 'final-tiles-grid-gallery-lite' );
1077
  ?></label>
1078
  <div class="text">
1079
  <textarea name="description"></textarea>
1080
  </div>
1081
  </div>
1082
  <div class="field">
1083
+ <label><?php
1084
+ _e( 'Alt', 'final-tiles-grid-gallery-lite' );
1085
+ ?> <?php
1086
+ _e( '(leave empty to use title or description as ALT attribute)', 'final-tiles-grid-gallery-lite' );
1087
  ?></label>
1088
  <div class="text">
1089
  <input type="text" name="alt" />
1092
  <div class="field">
1093
  <input class="browser-default" id="hidden-image" type="checkbox" name="hidden" value="T" />
1094
  <label for="hidden-image">
1095
+ <?php
1096
+ _e( 'Hidden, visible only with lightbox', 'final-tiles-grid-gallery-lite' );
1097
+ ?>
1098
  </label>
1099
  </div>
1100
  <div class="field js-no-hidden">
1102
  <table>
1103
  <tr>
1104
  <td style="width: 60%">
1105
+ <label><?php
1106
+ _e( 'Link', 'final-tiles-grid-gallery-lite' );
1107
  ?></label><br>
1108
  <input type="text" size="20" value="" name="link" />
1109
  </td>
1110
  <td>
1111
+ <label><?php
1112
+ _e( 'Link target', 'final-tiles-grid-gallery-lite' );
1113
  ?></label>
1114
  <select name="target" class="browser-default">
1115
+ <option value="default"><?php
1116
+ _e( 'Default target', 'final-tiles-grid-gallery-lite' );
1117
  ?></option>
1118
+ <option value="_self"><?php
1119
+ _e( 'Open in same page', 'final-tiles-grid-gallery-lite' );
1120
  ?></option>
1121
+ <option value="_blank"><?php
1122
+ _e( 'Open in _blank', 'final-tiles-grid-gallery-lite' );
1123
  ?></option>
1124
+ <option value="_lightbox"><?php
1125
+ _e( 'Open in lightbox (when using a lightbox)', 'final-tiles-grid-gallery-lite' );
1126
  ?></option>
1127
  </select>
1128
  </td>
1129
  </tr>
1130
  </table>
1131
  </div>
1132
+ <?php
1133
+ ?>
1134
  </div>
1135
  </div>
1136
  <div class="field buttons modal-footer">
1137
+ <a href="#" data-action="cancel" class="modal-close action button"><i class="mdi-content-reply"></i> <?php
1138
+ _e( 'Cancel', 'final-tiles-grid-gallery-lite' );
1139
  ?></a>
1140
+ <a href="#" data-action="save" class="modal-close button components-button is-primary"><i class="fa fa-save"></i> <?php
1141
+ _e( 'Save', 'final-tiles-grid-gallery-lite' );
1142
  ?></a>
1143
  </div>
1144
  </div>
1160
 
1161
  <script>
1162
  var presets = {};
1163
+ <?php
1164
+ $presetIdx = 0;
1165
+ foreach ( $ftg_fields as $section => $s ) {
1166
+ if ( array_key_exists( "presets", $s ) ) {
1167
+ foreach ( $s["presets"] as $preset => $values ) {
1168
+ echo "presets['preset_" . $presetIdx . "_" . $preset . "'] = " . json_encode( $values ) . ";\n" ;
1169
+ }
1170
+ }
1171
+ $presetIdx++;
1172
+ }
1173
+ ?>
1174
 
1175
+ var ftg_wp_caption_field = '<?php
1176
+ ftg_p( $gallery, "wp_field_caption" );
1177
  ?>';
1178
  (function ($) {
1179
  $("[name=captionFullHeight]").change(function () {
1187
  }
1188
  });
1189
 
1190
+ <?php
1191
+ ?>
1192
 
1193
  })(jQuery);
1194
  </script>
admin/include/fields.php CHANGED
@@ -149,7 +149,7 @@ $this->fields = array(
149
  ),
150
  );
151
  $this->addField( "Advanced", "loadMethod", array(
152
- "name" => __( "Loading method" ),
153
  "hiddenFor" => array( "dashboard", "shortcode" ),
154
  "type" => "select",
155
  "values" => array(
@@ -160,41 +160,41 @@ $this->addField( "Advanced", "loadMethod", array(
160
  "excludeFrom" => array( "dashboard", "shortcode" ),
161
  ) );
162
  $this->addField( "Advanced", "ajaxLoading", array(
163
- "name" => __( "Asynchronous loading", 'final-tiles-grid-gallery-lite' ),
164
  "hiddenFor" => array( "dashboard", "shortcode" ),
165
  "type" => "select",
166
  "values" => array(
167
  "Loading method" => array( "F|Complete markup on page", "lazy|Enable ajax loading" ),
168
  ),
169
- "description" => __( "Don't enable ajax loading if you need to index your images on search engines", "final-tiles-grid-gallery-lite" ),
170
  "proCall" => false,
171
  "excludeFrom" => array( "dashboard", "shortcode" ),
172
  ) );
173
  $this->addField( "Advanced", "tilesPerPage", array(
174
- "name" => __( "Number of images to load via ajax", 'final-tiles-grid-gallery-lite' ),
175
  "hiddenFor" => array( "dashboard", "shortcode" ),
176
  "type" => "number",
177
  "proCall" => false,
178
  "excludeFrom" => array( "dashboard", "shortcode" ),
179
  ) );
180
  $this->addField( "General", "name", array(
181
- "name" => __( "Name", 'final-tiles-grid-gallery-lite' ),
182
  "hiddenFor" => array( "dashboard", "shortcode" ),
183
  "type" => "text",
184
- "description" => __( "Name of the gallery, for internal use.", "final-tiles-grid-gallery-lite" ),
185
  "proCall" => false,
186
  "excludeFrom" => array( "dashboard", "shortcode" ),
187
  ) );
188
  $this->addField( "General", "description", array(
189
- "name" => __( "Description", 'final-tiles-grid-gallery-lite' ),
190
  "hiddenFor" => array( "dashboard", "shortcode" ),
191
  "type" => "text",
192
- "description" => __( "Description of the gallery, for internal use.", "final-tiles-grid-gallery-lite" ),
193
  "proCall" => false,
194
  "excludeFrom" => array( "dashboard", "shortcode" ),
195
  ) );
196
  $this->addField( "General", "layout", array(
197
- "name" => __( "Layout", 'final-tiles-grid-gallery-lite' ),
198
  "type" => "select",
199
  "description" => __( "<strong>Final Tiles</strong>: use images with different sizes<br><strong>Masonry</strong>: multi-column layout, use this one if you need images of the same size.", "final-tiles-grid-gallery-lite" ),
200
  "values" => array(
@@ -204,16 +204,16 @@ $this->addField( "General", "layout", array(
204
  "excludeFrom" => array(),
205
  ) );
206
  $this->addField( "General", "width", array(
207
- "name" => __( "Width" ),
208
  "type" => "text",
209
- "description" => __( "Width of the gallery in pixels or percentage.", "final-tiles-grid-gallery-lite" ),
210
  "proCall" => false,
211
  "excludeFrom" => array(),
212
  ) );
213
  $this->addField( "General", "margin", array(
214
- "name" => __( "Margin", "final-tiles-grid-gallery-lite" ),
215
  "type" => "number",
216
- "description" => __( "Margin between images", "final-tiles-grid-gallery-lite" ),
217
  "mu" => "px",
218
  "min" => 0,
219
  "max" => 50,
@@ -221,7 +221,7 @@ $this->addField( "General", "margin", array(
221
  "excludeFrom" => array(),
222
  ) );
223
  $this->addField( "General", "columns", array(
224
- "name" => __( "Number of columns", "final-tiles-grid-gallery-lite" ),
225
  "type" => "number",
226
  "description" => "",
227
  "mu" => "",
@@ -231,9 +231,9 @@ $this->addField( "General", "columns", array(
231
  "excludeFrom" => array(),
232
  ) );
233
  $this->addField( "General", "imagesOrder", array(
234
- "name" => __( "Images order", "final-tiles-grid-gallery-lite" ),
235
  "type" => "select",
236
- "description" => __( "Choose the order of the images", "final-tiles-grid-gallery-lite" ),
237
  "default" => "",
238
  "values" => array(
239
  "Images order" => array( "user|User", "reverse|Reverse", "random|Random" ),
@@ -242,23 +242,23 @@ $this->addField( "General", "imagesOrder", array(
242
  "excludeFrom" => array(),
243
  ) );
244
  $this->addField( "General", "filter", array(
245
- "name" => __( "Filters" ),
246
  "type" => FinalTiles_Gallery::getFieldType( "filter" ),
247
- "description" => __( "Manage here all the filters of this gallery", "final-tiles-grid-gallery-lite" ),
248
  "proCall" => true,
249
  "excludeFrom" => array( "dashboard", "shortcode" ),
250
  ) );
251
  if ( ftg_fs()->is_plan_or_trial( 'ultimate' ) ) {
252
  $this->addField( "General", "filterClick", array(
253
- "name" => __( "Reload Page on filter click", "final-tiles-grid-gallery-lite" ),
254
  "type" => "toggle",
255
- "description" => __( "Turn this feature ON if you want to use filters with most lightboxes", "final-tiles-grid-gallery-lite" ),
256
  "proCall" => false,
257
  "excludeFrom" => array(),
258
  ) );
259
  }
260
  $this->addField( "General", "gridCellSize", array(
261
- "name" => __( "Size of the grid", "final-tiles-grid-gallery-lite" ),
262
  "type" => "number",
263
  "default" => 25,
264
  "min" => 1,
@@ -269,13 +269,13 @@ $this->addField( "General", "gridCellSize", array(
269
  "excludeFrom" => array(),
270
  ) );
271
  $this->addField( "General", "gridCellSizeDisabledBelow", array(
272
- "name" => __( "Disable grid size below resolution", "final-tiles-grid-gallery-lite" ),
273
  "type" => "number",
274
  "default" => 800,
275
  "min" => 0,
276
  "max" => 4000,
277
  "mu" => "px",
278
- "description" => __( "If you have small tiny images under certain resolutions then you can switch off grid size (image cropping) when the screen resolution is below this value.", "final-tiles-grid-gallery-lite" ),
279
  "proCall" => false,
280
  "excludeFrom" => array(),
281
  ) );
@@ -294,7 +294,7 @@ $this->addField( "General", "gridCellSizeDisabledBelow", array(
294
  $this->addField( "Links & Lightbox", "lightbox", array(
295
  "name" => "Links &amp; Lightbox",
296
  "type" => "select",
297
- "description" => __( "Define here what happens when user click on the images. Lightboxes with video support: EverlightBox, LightGallery, Magnific popup, Colorbox (require embed URL)); PrettyPhoto, FancyBox (require embed URL)", "final-tiles-grid-gallery-lite" ),
298
  "values" => array(
299
  "Link" => array( " |No lightbox", "direct|Direct link to image (useful for external lightboxes)|disabled", "post|Post or WooCommerce product|disabled" ),
300
  "Lightboxes" => array(
@@ -314,7 +314,7 @@ $this->addField( "Links & Lightbox", "lightbox", array(
314
  $this->addField( "Links & Lightbox", "mobileLightbox", array(
315
  "name" => "Links &amp; Lightbox (mobile)",
316
  "type" => "select",
317
- "description" => __( "Define here what happens when user click on the images. Lightboxes with video support: EverlightBox, LightGallery, Magnific popup, Colorbox (require embed URL)); PrettyPhoto, FancyBox (require embed URL)", "final-tiles-grid-gallery-lite" ),
318
  "values" => array(
319
  "Link" => array( " |No lightbox", "direct|Direct link to image (useful for external lightboxes)", "post|Post or WooCommerce product|disabled" ),
320
  "Lightboxes" => array(
@@ -332,7 +332,7 @@ $this->addField( "Links & Lightbox", "mobileLightbox", array(
332
  "excludeFrom" => array(),
333
  ) );
334
  $this->addField( "Links & Lightbox", "lightboxImageSize", array(
335
- "name" => __( "Image size for the lightbox", "final-tiles-grid-gallery-lite" ),
336
  "type" => "select",
337
  "description" => "",
338
  "values" => array(
@@ -342,64 +342,64 @@ $this->addField( "Links & Lightbox", "lightboxImageSize", array(
342
  "excludeFrom" => array(),
343
  ) );
344
  $this->addField( "Links & Lightbox", "disableLightboxGroups", array(
345
- "name" => __( "Disable lightbox grouping", "final-tiles-grid-gallery-lite" ),
346
  "type" => "toggle",
347
- "description" => __( "Flag this option if you don't want to group images when opened in a lightbox.", "final-tiles-grid-gallery-lite" ),
348
  "default" => "F",
349
  "proCall" => false,
350
  "excludeFrom" => array(),
351
  ) );
352
  $this->addField( "Links & Lightbox", "blank", array(
353
- "name" => __( "Links target", "final-tiles-grid-gallery-lite" ),
354
  "type" => "toggle",
355
- "description" => __( "Open links in a blank page.", "final-tiles-grid-gallery-lite" ),
356
  "proCall" => false,
357
  "excludeFrom" => array(),
358
  ) );
359
  $this->addField( "Links & Lightbox", "enableTwitter", array(
360
- "name" => __( "Enable Twitter icon", "final-tiles-grid-gallery-lite" ),
361
  "type" => "toggle",
362
- "description" => __( "Enable Twitter sharing.", "final-tiles-grid-gallery-lite" ),
363
  "default" => "F",
364
  "proCall" => false,
365
  "excludeFrom" => array(),
366
  ) );
367
  $this->addField( "Links & Lightbox", "enableFacebook", array(
368
- "name" => __( "Enable Facebook icon", "final-tiles-grid-gallery-lite" ),
369
  "type" => "toggle",
370
- "description" => __( "Enable Facebook sharing. Note: after the last version of OpenGraph API it's not possible to share a specific image anymore.", "final-tiles-grid-gallery-lite" ),
371
  "default" => "F",
372
  "proCall" => false,
373
  "excludeFrom" => array(),
374
  ) );
375
  $this->addField( "Links & Lightbox", "enableGplus", array(
376
- "name" => __( "Enable Google Plus icon", "final-tiles-grid-gallery-lite" ),
377
  "type" => "toggle",
378
- "description" => __( "Enable Google Plus sharing", "final-tiles-grid-gallery-lite" ),
379
  "default" => "F",
380
  "proCall" => false,
381
  "excludeFrom" => array(),
382
  ) );
383
  $this->addField( "Links & Lightbox", "enablePinterest", array(
384
- "name" => __( "Enable Pinterest icon", "final-tiles-grid-gallery-lite" ),
385
  "type" => "toggle",
386
- "description" => __( "Enable Pinterest sharing", "final-tiles-grid-gallery-lite" ),
387
  "default" => "F",
388
  "proCall" => false,
389
  "excludeFrom" => array(),
390
  ) );
391
  $this->addField( "Links & Lightbox", "socialIconColor", array(
392
- "name" => __( "Color of social sharing icons", "final-tiles-grid-gallery-lite" ),
393
  "type" => "color",
394
- "description" => __( "Set the color of the social sharing icons", "final-tiles-grid-gallery-lite" ),
395
  "default" => "#ffffff",
396
  "proCall" => false,
397
  "excludeFrom" => array(),
398
  ) );
399
  $this->addField( "Links & Lightbox", "socialIconStyle", array(
400
- "name" => __( "Style of the social icons panel", "final-tiles-grid-gallery-lite" ),
401
  "type" => "select",
402
- "description" => __( "Set the color of the social sharing icons", "final-tiles-grid-gallery-lite" ),
403
  "default" => "none",
404
  "values" => array(
405
  "Style" => array( "none|None", "circle|Circles", "bar|Bar" ),
@@ -408,9 +408,9 @@ $this->addField( "Links & Lightbox", "socialIconStyle", array(
408
  "excludeFrom" => array(),
409
  ) );
410
  $this->addField( "Links & Lightbox", "socialIconPosition", array(
411
- "name" => __( "Position of the social icons panel", "final-tiles-grid-gallery-lite" ),
412
  "type" => "select",
413
- "description" => __( "Set the position of the social sharing icons", "final-tiles-grid-gallery-lite" ),
414
  "default" => "bottom",
415
  "values" => array(
416
  "Position" => array( "bottom|Bottom", "right|Right" ),
@@ -419,9 +419,9 @@ $this->addField( "Links & Lightbox", "socialIconPosition", array(
419
  "excludeFrom" => array(),
420
  ) );
421
  $this->addField( "Captions", "captionBehavior", array(
422
- "name" => __( "Caption behavior", "final-tiles-grid-gallery-lite" ),
423
  "type" => "select",
424
- "description" => __( "Effect used to show the captions.", "final-tiles-grid-gallery-lite" ),
425
  "values" => array(
426
  "Effect" => array(
427
  "none|Fade in",
@@ -438,9 +438,9 @@ $this->addField( "Captions", "captionBehavior", array(
438
  "excludeFrom" => array(),
439
  ) );
440
  $this->addField( "Captions", "captionMobileBehavior", array(
441
- "name" => __( "Caption mobile behavior", "final-tiles-grid-gallery-lite" ),
442
  "type" => "select",
443
- "description" => __( "Caption behavior for mobile devices.", "final-tiles-grid-gallery-lite" ),
444
  "values" => array(
445
  "Behavior" => array(
446
  "desktop|Same as desktop",
@@ -454,9 +454,9 @@ $this->addField( "Captions", "captionMobileBehavior", array(
454
  "excludeFrom" => array(),
455
  ) );
456
  $this->addField( "Captions", "captionPosition", array(
457
- "name" => __( "Position", "final-tiles-grid-gallery-lite" ),
458
  "type" => "select",
459
- "description" => __( "Choose the position of the caption.", "final-tiles-grid-gallery-lite" ),
460
  "values" => array(
461
  "Behavior" => array( "inside|Inside", "outside|Outside (EXPERIMENTAL)" ),
462
  ),
@@ -472,9 +472,9 @@ $this->addField( "Captions", "captionPosition", array(
472
  "excludeFrom" => array()
473
  ));*/
474
  $this->addField( "Captions", "captionEmpty", array(
475
- "name" => __( "Empty captions", "final-tiles-grid-gallery-lite" ),
476
  "type" => "select",
477
- "description" => __( "Choose if empty caption has to be shown.", "final-tiles-grid-gallery-lite" ),
478
  "values" => array(
479
  "Empty captions" => array( "hide|Don't show empty captions", "show|Show empty captions|disabled" ),
480
  ),
@@ -482,9 +482,9 @@ $this->addField( "Captions", "captionEmpty", array(
482
  "excludeFrom" => array(),
483
  ) );
484
  $this->addField( "Captions", "captionIcon", array(
485
- "name" => __( "Caption icon", "final-tiles-grid-gallery-lite" ),
486
  "type" => "select",
487
- "description" => __( "Choose the icon for the captions.", "final-tiles-grid-gallery-lite" ),
488
  "values" => array(
489
  "Icon" => array(
490
  "|None",
@@ -507,24 +507,24 @@ $this->addField( "Captions", "captionIcon", array(
507
  "excludeFrom" => array(),
508
  ) );
509
  $this->addField( "Captions", "customCaptionIcon", array(
510
- "name" => __( "Custom caption icon", "final-tiles-grid-gallery-lite" ),
511
  "type" => FinalTiles_Gallery::getFieldType( "customCaptionIcon" ),
512
  "description" => __( "Use this field to insert the class of a FontAwesome icon (i.e.: fa-heart). <a href='https://fontawesome.com/v4.7.0/icons/' target='blank'>See all available icons</a>. <strong>This value override the <i>Caption icon</i> value</strong>.", "final-tiles-grid-gallery-lite" ),
513
  "proCall" => false,
514
  "excludeFrom" => array(),
515
  ) );
516
  $this->addField( "Captions", "captionIconColor", array(
517
- "name" => __( "Caption icon color", "final-tiles-grid-gallery-lite" ),
518
  "type" => "color",
519
- "description" => __( "Color of the icon in captions.", "final-tiles-grid-gallery-lite" ),
520
  "default" => "#ffffff",
521
  "proCall" => false,
522
  "excludeFrom" => array(),
523
  ) );
524
  $this->addField( "Captions", "captionIconSize", array(
525
- "name" => __( "Caption icon size", "final-tiles-grid-gallery-lite" ),
526
  "type" => "number",
527
- "description" => __( "Size of the icon in captions.", "final-tiles-grid-gallery-lite" ),
528
  "default" => 12,
529
  "min" => 10,
530
  "max" => 96,
@@ -533,9 +533,9 @@ $this->addField( "Captions", "captionIconSize", array(
533
  "excludeFrom" => array(),
534
  ) );
535
  $this->addField( "Captions", "captionFontSize", array(
536
- "name" => __( "Caption font size", "final-tiles-grid-gallery-lite" ),
537
  "type" => "number",
538
- "description" => __( "Size of the font in captions.", "final-tiles-grid-gallery-lite" ),
539
  "default" => 12,
540
  "min" => 10,
541
  "max" => 96,
@@ -544,9 +544,9 @@ $this->addField( "Captions", "captionFontSize", array(
544
  "excludeFrom" => array(),
545
  ) );
546
  $this->addField( "Captions", "captionEasing", array(
547
- "name" => __( "Caption effect easing", "final-tiles-grid-gallery-lite" ),
548
  "type" => "select",
549
- "description" => __( "Easing function for the caption animation, works better with sliding animations.", "final-tiles-grid-gallery-lite" ),
550
  "values" => array(
551
  "Easing" => array(
552
  "ease|Ease",
@@ -560,33 +560,33 @@ $this->addField( "Captions", "captionEasing", array(
560
  "excludeFrom" => array(),
561
  ) );
562
  $this->addField( "Captions", "captionFrame", array(
563
- "name" => __( "Caption frame", "final-tiles-grid-gallery-lite" ),
564
  "type" => "toggle",
565
- "description" => __( "Add a frame around the caption", "final-tiles-grid-gallery-lite" ),
566
  "default" => "F",
567
  "proCall" => false,
568
  "excludeFrom" => array(),
569
  ) );
570
  $this->addField( "Captions", "captionFrameColor", array(
571
- "name" => __( "Caption frame color", "final-tiles-grid-gallery-lite" ),
572
  "type" => "color",
573
- "description" => __( "Color of the frame around the caption", "final-tiles-grid-gallery-lite" ),
574
  "default" => "#ffffff",
575
  "proCall" => false,
576
  "excludeFrom" => array(),
577
  ) );
578
  $this->addField( "Captions", "captionColor", array(
579
- "name" => __( "Caption color", "final-tiles-grid-gallery-lite" ),
580
  "type" => "color",
581
- "description" => __( "Text color of the captions.", "final-tiles-grid-gallery-lite" ),
582
  "default" => "#ffffff",
583
  "proCall" => false,
584
  "excludeFrom" => array(),
585
  ) );
586
  $this->addField( "Captions", "captionEffectDuration", array(
587
- "name" => __( "Caption effect duration", "final-tiles-grid-gallery-lite" ),
588
  "type" => "text",
589
- "description" => __( "Duration of the caption animation.", "final-tiles-grid-gallery-lite" ),
590
  "default" => 250,
591
  "mu" => "ms",
592
  "min" => 0,
@@ -595,17 +595,17 @@ $this->addField( "Captions", "captionEffectDuration", array(
595
  "excludeFrom" => array(),
596
  ) );
597
  $this->addField( "Captions", "captionBackgroundColor", array(
598
- "name" => __( "Caption background color", "final-tiles-grid-gallery-lite" ),
599
  "type" => "color",
600
- "description" => __( "Caption background color", "final-tiles-grid-gallery-lite" ),
601
  "default" => "#000000",
602
  "proCall" => false,
603
  "excludeFrom" => array(),
604
  ) );
605
  $this->addField( "Captions", "captionOpacity", array(
606
- "name" => __( "Caption opacity", "final-tiles-grid-gallery-lite" ),
607
  "type" => "text",
608
- "description" => __( "Opacity of the caption, 0% means 'invisible' while 100% is a plain color without opacity.", "final-tiles-grid-gallery-lite" ),
609
  "default" => 80,
610
  "min" => 0,
611
  "max" => 100,
@@ -614,7 +614,7 @@ $this->addField( "Captions", "captionOpacity", array(
614
  "excludeFrom" => array(),
615
  ) );
616
  $this->addField( "Captions", "wp_field_caption", array(
617
- "name" => __( "WordPress caption field", "final-tiles-grid-gallery-lite" ),
618
  "type" => "select",
619
  "description" => __( "WordPress field used for captions. <strong>This field is used ONLY when images are added to the gallery, </strong> however, if you want to ignore captions just set it to '<i>Don't use captions</i>'.", "final-tiles-grid-gallery-lite" ),
620
  "values" => array(
@@ -629,7 +629,7 @@ $this->addField( "Captions", "wp_field_caption", array(
629
  "excludeFrom" => array( "shortcode" ),
630
  ) );
631
  $this->addField( "Captions", "wp_field_title", array(
632
- "name" => __( "WordPress title field", "final-tiles-grid-gallery-lite" ),
633
  "type" => "select",
634
  "description" => __( "WordPress field used for titles. <strong>This field is used ONLY when images are added to the gallery, </strong> however, if you want to ignore titles just set it to '<i>Don't use titles</i>'.", "final-tiles-grid-gallery-lite" ),
635
  "values" => array(
@@ -639,9 +639,9 @@ $this->addField( "Captions", "wp_field_title", array(
639
  "excludeFrom" => array( "shortcode" ),
640
  ) );
641
  $this->addField( "Captions", "recentPostsCaption", array(
642
- "name" => __( "Recent posts caption", "final-tiles-grid-gallery-lite" ),
643
  "type" => "select",
644
- "description" => __( "Field of the post used for captions when using \"Recent posts\" as source.", "final-tiles-grid-gallery-lite" ),
645
  "values" => array(
646
  "Field" => array(
647
  "none|Don't use captions",
@@ -655,7 +655,7 @@ $this->addField( "Captions", "recentPostsCaption", array(
655
  "excludeFrom" => array( "shortcode" ),
656
  ) );
657
  $this->addField( "Captions", "recentPostsCaptionAutoExcerptLength", array(
658
- "name" => __( "Max number of words for 'Auto excerpt'", "final-tiles-grid-gallery-lite" ),
659
  "type" => "text",
660
  "description" => __( "Define the max number of words of the caption when <i>Recent posts caption</i> is set to <i>Auto excerpt</i>.", "final-tiles-grid-gallery-lite" ),
661
  "default" => "20",
@@ -663,9 +663,9 @@ $this->addField( "Captions", "recentPostsCaptionAutoExcerptLength", array(
663
  "excludeFrom" => array(),
664
  ) );
665
  $this->addField( "Captions", "captionVerticalAlignment", array(
666
- "name" => __( "Caption Vertical Alignment", "final-tiles-grid-gallery-lite" ),
667
  "type" => "select",
668
- "description" => __( "Choose the vertical alignment of the caption", "final-tiles-grid-gallery-lite" ),
669
  "values" => array(
670
  "Caption vertical alignment" => array( "top|Top", "middle|Middle", "bottom|Bottom" ),
671
  ),
@@ -673,9 +673,9 @@ $this->addField( "Captions", "captionVerticalAlignment", array(
673
  "excludeFrom" => array(),
674
  ) );
675
  $this->addField( "Captions", "captionHorizontalAlignment", array(
676
- "name" => __( "Caption Horizontal Alignment", "final-tiles-grid-gallery-lite" ),
677
  "type" => "select",
678
- "description" => __( "Choose the horizontal alignment of the caption", "final-tiles-grid-gallery-lite" ),
679
  "values" => array(
680
  "Caption horizontal alignment" => array( "left|Left", "center|Center", "right|Right" ),
681
  ),
@@ -683,9 +683,9 @@ $this->addField( "Captions", "captionHorizontalAlignment", array(
683
  "excludeFrom" => array(),
684
  ) );
685
  $this->addField( "Captions", "titleFontSize", array(
686
- "name" => __( "Title font size", "final-tiles-grid-gallery-lite" ),
687
  "type" => "number",
688
- "description" => __( "Size of the font in captions.", "final-tiles-grid-gallery-lite" ),
689
  "min" => 10,
690
  "max" => 96,
691
  "mu" => "px",
@@ -693,9 +693,9 @@ $this->addField( "Captions", "titleFontSize", array(
693
  "excludeFrom" => array(),
694
  ) );
695
  $this->addField( "Hover effects", "hoverZoom", array(
696
- "name" => __( "Zoom", "final-tiles-grid-gallery-lite" ),
697
  "type" => FinalTiles_gallery::getFieldType( "hoverZoom" ),
698
- "description" => __( "Scale value.", "final-tiles-grid-gallery-lite" ),
699
  "default" => 100,
700
  "min" => 0,
701
  "max" => 600,
@@ -704,9 +704,9 @@ $this->addField( "Hover effects", "hoverZoom", array(
704
  "excludeFrom" => array(),
705
  ) );
706
  $this->addField( "Hover effects", "hoverRotation", array(
707
- "name" => __( "Rotation", "final-tiles-grid-gallery-lite" ),
708
  "type" => FinalTiles_gallery::getFieldType( "hoverRotation" ),
709
- "description" => __( "Rotation value in degrees.", "final-tiles-grid-gallery-lite" ),
710
  "min" => 0,
711
  "max" => 360,
712
  "mu" => "deg",
@@ -715,7 +715,7 @@ $this->addField( "Hover effects", "hoverRotation", array(
715
  "excludeFrom" => array(),
716
  ) );
717
  $this->addField( "Hover effects", "hoverDuration", array(
718
- "name" => __( "Duration", "final-tiles-grid-gallery-lite" ),
719
  "description" => "",
720
  "type" => FinalTiles_gallery::getFieldType( "hoverDuration" ),
721
  "min" => 10,
@@ -726,15 +726,15 @@ $this->addField( "Hover effects", "hoverDuration", array(
726
  "excludeFrom" => array(),
727
  ) );
728
  $this->addField( "Hover effects", "hoverIconRotation", array(
729
- "name" => __( "Rotate icon", "final-tiles-grid-gallery-lite" ),
730
  "type" => "toggle",
731
  "default" => "F",
732
- "description" => __( "Enable rotation of the icon.", "final-tiles-grid-gallery-lite" ),
733
  "proCall" => false,
734
  "excludeFrom" => array(),
735
  ) );
736
  $this->addField( "Image loaded effects", "loadedDuration", array(
737
- "name" => __( "Duration", "final-tiles-grid-gallery-lite" ),
738
  "description" => "",
739
  "type" => "slider",
740
  "min" => 10,
@@ -745,9 +745,9 @@ $this->addField( "Image loaded effects", "loadedDuration", array(
745
  "excludeFrom" => array(),
746
  ) );
747
  $this->addField( "Image loaded effects", "loadedEasing", array(
748
- "name" => __( "Easing curve", "final-tiles-grid-gallery-lite" ),
749
  "type" => "select",
750
- "description" => __( "Choose the easing curve for the loading effect animation", "final-tiles-grid-gallery-lite" ),
751
  "values" => array(
752
  "Easing curve" => array(
753
  "linear|Linear",
@@ -764,7 +764,7 @@ $this->addField( "Image loaded effects", "loadedEasing", array(
764
  "excludeFrom" => array(),
765
  ) );
766
  $this->addField( "Image loaded effects", "loadedScaleY", array(
767
- "name" => __( "Vertical scaling", "final-tiles-grid-gallery-lite" ),
768
  "description" => "",
769
  "type" => "slider",
770
  "min" => 1,
@@ -775,7 +775,7 @@ $this->addField( "Image loaded effects", "loadedScaleY", array(
775
  "excludeFrom" => array(),
776
  ) );
777
  $this->addField( "Image loaded effects", "loadedScaleX", array(
778
- "name" => __( "Horizontal scaling", "final-tiles-grid-gallery-lite" ),
779
  "description" => "",
780
  "type" => "slider",
781
  "min" => 1,
@@ -786,7 +786,7 @@ $this->addField( "Image loaded effects", "loadedScaleX", array(
786
  "excludeFrom" => array(),
787
  ) );
788
  $this->addField( "Image loaded effects", "loadedRotateY", array(
789
- "name" => __( "Vertical rotation", "final-tiles-grid-gallery-lite" ),
790
  "description" => "",
791
  "type" => "slider",
792
  "min" => -180,
@@ -797,7 +797,7 @@ $this->addField( "Image loaded effects", "loadedRotateY", array(
797
  "excludeFrom" => array(),
798
  ) );
799
  $this->addField( "Image loaded effects", "loadedRotateX", array(
800
- "name" => __( "Horizontal rotation", "final-tiles-grid-gallery-lite" ),
801
  "description" => "",
802
  "type" => "slider",
803
  "min" => -180,
@@ -808,7 +808,7 @@ $this->addField( "Image loaded effects", "loadedRotateX", array(
808
  "excludeFrom" => array(),
809
  ) );
810
  $this->addField( "Image loaded effects", "loadedHSlide", array(
811
- "name" => __( "Horizontal slide", "final-tiles-grid-gallery-lite" ),
812
  "description" => "",
813
  "type" => "slider",
814
  "min" => -1000,
@@ -819,7 +819,7 @@ $this->addField( "Image loaded effects", "loadedHSlide", array(
819
  "excludeFrom" => array(),
820
  ) );
821
  $this->addField( "Image loaded effects", "loadedVSlide", array(
822
- "name" => __( "Vertical slide", "final-tiles-grid-gallery-lite" ),
823
  "description" => "",
824
  "type" => "slider",
825
  "min" => -1000,
@@ -830,9 +830,9 @@ $this->addField( "Image loaded effects", "loadedVSlide", array(
830
  "excludeFrom" => array(),
831
  ) );
832
  $this->addField( "Style", "borderSize", array(
833
- "name" => __( "Border size", "final-tiles-grid-gallery-lite" ),
834
  "type" => "number",
835
- "description" => __( "Size of the border of each image.", "final-tiles-grid-gallery-lite" ),
836
  "default" => 0,
837
  "min" => 0,
838
  "max" => 10,
@@ -841,9 +841,9 @@ $this->addField( "Style", "borderSize", array(
841
  "excludeFrom" => array(),
842
  ) );
843
  $this->addField( "Style", "borderRadius", array(
844
- "name" => __( "Border radius", "final-tiles-grid-gallery-lite" ),
845
  "type" => "number",
846
- "description" => __( "Border radius of the images.", "final-tiles-grid-gallery-lite" ),
847
  "default" => 0,
848
  "min" => 0,
849
  "max" => 100,
@@ -852,33 +852,33 @@ $this->addField( "Style", "borderRadius", array(
852
  "excludeFrom" => array(),
853
  ) );
854
  $this->addField( "Style", "borderColor", array(
855
- "name" => __( "Border color", "final-tiles-grid-gallery-lite" ),
856
  "type" => "color",
857
- "description" => __( "Color of the border when size is greater than 0.", "final-tiles-grid-gallery-lite" ),
858
  "default" => "#000000",
859
  "proCall" => false,
860
  "excludeFrom" => array(),
861
  ) );
862
  $this->addField( "Style", "loadingBarColor", array(
863
- "name" => __( "Loading Bar color", "final-tiles-grid-gallery-lite" ),
864
  "type" => "color",
865
- "description" => __( "Color of the loading bar", "final-tiles-grid-gallery-lite" ),
866
  "default" => "#000000",
867
  "proCall" => false,
868
  "excludeFrom" => array(),
869
  ) );
870
  $this->addField( "Style", "loadingBarBackgroundColor", array(
871
- "name" => __( "Loading Bar background color", "final-tiles-grid-gallery-lite" ),
872
  "type" => "color",
873
- "description" => __( "Background color of the loading bar", "final-tiles-grid-gallery-lite" ),
874
  "default" => "#cccccc",
875
  "proCall" => false,
876
  "excludeFrom" => array(),
877
  ) );
878
  $this->addField( "Style", "shadowSize", array(
879
- "name" => __( "Shadow size", "final-tiles-grid-gallery-lite" ),
880
  "type" => "number",
881
- "description" => __( "Shadow size of the images.", "final-tiles-grid-gallery-lite" ),
882
  "default" => 0,
883
  "min" => 0,
884
  "max" => 20,
@@ -887,48 +887,48 @@ $this->addField( "Style", "shadowSize", array(
887
  "excludeFrom" => array(),
888
  ) );
889
  $this->addField( "Style", "shadowColor", array(
890
- "name" => __( "Shadow color", "final-tiles-grid-gallery-lite" ),
891
  "type" => "color",
892
- "description" => __( "Color of the shadow when size is greater than 0.", "final-tiles-grid-gallery-lite" ),
893
  "default" => "#000000",
894
  "proCall" => false,
895
  "excludeFrom" => array(),
896
  ) );
897
  $this->addField( "Style", "backgroundColor", array(
898
- "name" => __( "Tile background color", "final-tiles-grid-gallery-lite" ),
899
  "type" => "color",
900
- "description" => __( "Background color of tiles", "final-tiles-grid-gallery-lite" ),
901
  "default" => "#fafafa",
902
  "proCall" => false,
903
  "excludeFrom" => array(),
904
  ) );
905
  $this->addField( "Customizations", "aClass", array(
906
- "name" => __( "Additional CSS class on A tag", "final-tiles-grid-gallery-lite" ),
907
  "type" => "text",
908
- "description" => __( "Use this field if you need to add additional CSS classes to the link that contains the image.", "final-tiles-grid-gallery-lite" ),
909
  "default" => "",
910
  "proCall" => false,
911
  "excludeFrom" => array(),
912
  ) );
913
  $this->addField( "Customizations", "rel", array(
914
- "name" => __( "Value of 'rel' attribute on the link that contains the image.", "final-tiles-grid-gallery-lite" ),
915
  "type" => "text",
916
- "description" => __( "Use this field if you need to add additional CSS classes to the link that contains the image. This is useful mostly to integrate the gallery with other lightbox plugins.", "final-tiles-grid-gallery-lite" ),
917
  "default" => "",
918
  "proCall" => false,
919
  "excludeFrom" => array(),
920
  ) );
921
  $this->addField( "Customizations", "beforeGalleryText", array(
922
- "name" => __( "Text before gallery", "final-tiles-grid-gallery-lite" ),
923
  "type" => "textarea",
924
- "description" => __( "Use this field to add text/html to be placed just before your gallery.", "final-tiles-grid-gallery-lite" ),
925
  "proCall" => false,
926
  "excludeFrom" => array( "shortcode" ),
927
  ) );
928
  $this->addField( "Customizations", "afterGalleryText", array(
929
- "name" => __( "Text after gallery", "final-tiles-grid-gallery-lite" ),
930
  "type" => "textarea",
931
- "description" => __( "Use this field to add text/html to be placed just after your gallery.", "final-tiles-grid-gallery-lite" ),
932
  "proCall" => false,
933
  "excludeFrom" => array( "shortcode" ),
934
  ) );
@@ -940,16 +940,16 @@ $this->addField( "Customizations", "style", array(
940
  "excludeFrom" => array( "shortcode" ),
941
  ) );
942
  $this->addField( "Customizations", "script", array(
943
- "name" => __( "Custom scripts", "final-tiles-grid-gallery-lite" ),
944
  "type" => "textarea",
945
  "description" => __( "This script will be called after the gallery initialization. Useful for custom lightboxes.\n <br />\n <br />\n <strong>Write just the code without using the &lt;script&gt;&lt;/script&gt; tags</strong>", "final-tiles-grid-gallery-lite" ),
946
  "proCall" => false,
947
  "excludeFrom" => array( "shortcode" ),
948
  ) );
949
  $this->addField( "Customizations", "delay", array(
950
- "name" => __( "Delay", "final-tiles-grid-gallery-lite" ),
951
  "type" => "text",
952
- "description" => __( "Delay (in milliseconds) before firing the gallery. Sometimes it's needed to avoid conflicts with other plugins.", "final-tiles-grid-gallery-lite" ),
953
  "min" => 0,
954
  "max" => 5000,
955
  "mu" => "ms",
@@ -958,9 +958,9 @@ $this->addField( "Customizations", "delay", array(
958
  "excludeFrom" => array(),
959
  ) );
960
  $this->addField( "Customizations", "support", array(
961
- "name" => __( "Show developer link", "final-tiles-grid-gallery-lite" ),
962
  "type" => "toggle",
963
- "description" => __( "I want to support this plugin, show the developer link!", "final-tiles-grid-gallery-lite" ),
964
  "default" => "F",
965
  "proCall" => false,
966
  "excludeFrom" => array(),
@@ -968,15 +968,15 @@ $this->addField( "Customizations", "support", array(
968
  "excludeFrom" => array(),
969
  ) );
970
  $this->addField( "Customizations", "supportText", array(
971
- "name" => __( "Developer link text", "final-tiles-grid-gallery-lite" ),
972
  "type" => "text",
973
- "description" => __( "Text for the developer link", "final-tiles-grid-gallery-lite" ),
974
  "default" => "powered by Final Tiles Grid Gallery",
975
  "proCall" => false,
976
  "excludeFrom" => array(),
977
  ) );
978
  $this->addField( "Advanced", "columnsTabletLandscape", array(
979
- "name" => __( "Number of columns (Tablet landscape)", "final-tiles-grid-gallery-lite" ),
980
  "type" => "number",
981
  "description" => "",
982
  "mu" => "",
@@ -986,7 +986,7 @@ $this->addField( "Advanced", "columnsTabletLandscape", array(
986
  "excludeFrom" => array(),
987
  ) );
988
  $this->addField( "Advanced", "columnsTabletPortrait", array(
989
- "name" => __( "Number of columns (Tablet portrait)", "final-tiles-grid-gallery-lite" ),
990
  "type" => "number",
991
  "description" => "",
992
  "mu" => "",
@@ -996,7 +996,7 @@ $this->addField( "Advanced", "columnsTabletPortrait", array(
996
  "excludeFrom" => array(),
997
  ) );
998
  $this->addField( "Advanced", "columnsPhoneLandscape", array(
999
- "name" => __( "Number of columns (Phone landscape)", "final-tiles-grid-gallery-lite" ),
1000
  "type" => "number",
1001
  "description" => "",
1002
  "mu" => "",
@@ -1006,7 +1006,7 @@ $this->addField( "Advanced", "columnsPhoneLandscape", array(
1006
  "excludeFrom" => array(),
1007
  ) );
1008
  $this->addField( "Advanced", "columnsPhonePortrait", array(
1009
- "name" => __( "Number of columns (Phone portrait)", "final-tiles-grid-gallery-lite" ),
1010
  "type" => "number",
1011
  "description" => "",
1012
  "mu" => "",
@@ -1016,9 +1016,9 @@ $this->addField( "Advanced", "columnsPhonePortrait", array(
1016
  "excludeFrom" => array(),
1017
  ) );
1018
  $this->addField( "Advanced", "imageSizeFactor", array(
1019
- "name" => __( "Image size factor", "final-tiles-grid-gallery-lite" ),
1020
  "type" => "slider",
1021
- "description" => __( "Percentage of image size, i.e.: if an image of the gallery is 300x200 and the size factor is 50% then the resulting image will be 150x100.\n 90% is a suggested default value, because under some circumstances, the images could be enlarged by the script (to fill gaps and avoid blank spaces between tiles).", "final-tiles-grid-gallery-lite" ),
1022
  "default" => 90,
1023
  "min" => 1,
1024
  "max" => 100,
@@ -1027,9 +1027,9 @@ $this->addField( "Advanced", "imageSizeFactor", array(
1027
  "excludeFrom" => array(),
1028
  ) );
1029
  $this->addField( "Advanced", "imageSizeFactorTabletLandscape", array(
1030
- "name" => __( "Image size factor (Tablet Landscape)", "final-tiles-grid-gallery-lite" ),
1031
  "type" => "slider",
1032
- "description" => __( "Image size factor to apply when the viewport is 1024px, typically for tablets with landscape orientation", "final-tiles-grid-gallery-lite" ),
1033
  "default" => 80,
1034
  "min" => 1,
1035
  "max" => 100,
@@ -1038,9 +1038,9 @@ $this->addField( "Advanced", "imageSizeFactorTabletLandscape", array(
1038
  "excludeFrom" => array(),
1039
  ) );
1040
  $this->addField( "Advanced", "imageSizeFactorTabletPortrait", array(
1041
- "name" => __( "Image size factor Tablet Portrait", "final-tiles-grid-gallery-lite" ),
1042
  "type" => "slider",
1043
- "description" => __( "Image size factor to apply when the viewport is 768px, typically for tablets with portrait orientation", "final-tiles-grid-gallery-lite" ),
1044
  "default" => 70,
1045
  "min" => 1,
1046
  "max" => 100,
@@ -1049,9 +1049,9 @@ $this->addField( "Advanced", "imageSizeFactorTabletPortrait", array(
1049
  "excludeFrom" => array(),
1050
  ) );
1051
  $this->addField( "Advanced", "imageSizeFactorPhoneLandscape", array(
1052
- "name" => __( "Image size factor Smartphone Landscape", "final-tiles-grid-gallery-lite" ),
1053
  "type" => "slider",
1054
- "description" => __( "Image size factor to apply when the viewport is 640px, typically for smartphones with landscape orientation", "final-tiles-grid-gallery-lite" ),
1055
  "default" => 60,
1056
  "min" => 1,
1057
  "max" => 100,
@@ -1060,9 +1060,9 @@ $this->addField( "Advanced", "imageSizeFactorPhoneLandscape", array(
1060
  "excludeFrom" => array(),
1061
  ) );
1062
  $this->addField( "Advanced", "imageSizeFactorPhonePortrait", array(
1063
- "name" => __( "Image size factor Phone Portrait", "final-tiles-grid-gallery-lite" ),
1064
  "type" => "slider",
1065
- "description" => __( "Image size factor to apply when the viewport is 320px, typically for smartphones with portrait orientation", "final-tiles-grid-gallery-lite" ),
1066
  "default" => 50,
1067
  "min" => 1,
1068
  "max" => 100,
@@ -1071,7 +1071,7 @@ $this->addField( "Advanced", "imageSizeFactorPhonePortrait", array(
1071
  "excludeFrom" => array(),
1072
  ) );
1073
  $this->addField( "Advanced", "imageSizeFactorCustom", array(
1074
- "name" => __( "Custom image size factor", "final-tiles-grid-gallery-lite" ),
1075
  "hiddenFor" => array( "dashboard", "shortcode" ),
1076
  "type" => FinalTiles_Gallery::getFieldType( "custom_isf" ),
1077
  "description" => __( "Use this field if you need further resolutions. Make custom layout for any device and resolution.", "final-tiles-grid-gallery-lite" ),
@@ -1079,17 +1079,17 @@ $this->addField( "Advanced", "imageSizeFactorCustom", array(
1079
  "excludeFrom" => array( "dashboard", "shortcode" ),
1080
  ) );
1081
  $this->addField( "Advanced", "compressHTML", array(
1082
- "name" => __( "Compress HTML", "final-tiles-grid-gallery-lite" ),
1083
  "type" => "toggle",
1084
- "description" => __( "Enable or disable HTML compression, some themes prefer uncompressed, switch it off in case of problems.", "final-tiles-grid-gallery-lite" ),
1085
  "default" => "T",
1086
  "proCall" => false,
1087
  "excludeFrom" => array(),
1088
  ) );
1089
  $this->addField( "Advanced", "minTileWidth", array(
1090
- "name" => __( "Tile minimum width", "final-tiles-grid-gallery-lite" ),
1091
  "type" => "number",
1092
- "description" => __( "Minimum width of each tile, <strong>multiply this value for the image size factor to get the real size</strong>.", "final-tiles-grid-gallery-lite" ),
1093
  "mu" => "px",
1094
  "min" => 50,
1095
  "max" => 500,
@@ -1098,7 +1098,7 @@ $this->addField( "Advanced", "minTileWidth", array(
1098
  "excludeFrom" => array(),
1099
  ) );
1100
  $this->addField( "Advanced", "enlargeImages", array(
1101
- "name" => __( "Allow image enlargement", "final-tiles-grid-gallery-lite" ),
1102
  "type" => "toggle",
1103
  "description" => __( "Images can be occasionally enlarged to avoid gaps. If you notice a quality loss try to reduce the <strong>Image size factor</strong> parameter.", "final-tiles-grid-gallery-lite" ),
1104
  "default" => "T",
@@ -1107,9 +1107,9 @@ $this->addField( "Advanced", "enlargeImages", array(
1107
  ) );
1108
  if ( ftg_fs()->is_plan_or_trial( 'ultimate' ) ) {
1109
  $this->addField( "Advanced", "allFilterLabel", array(
1110
- "name" => __( "Text for 'All' filter", "final-tiles-grid-gallery-lite" ),
1111
  "type" => "text",
1112
- "description" => __( "Write here the label for the 'All' filter", "final-tiles-grid-gallery-lite" ),
1113
  "proCall" => false,
1114
  "excludeFrom" => array(),
1115
  ) );
149
  ),
150
  );
151
  $this->addField( "Advanced", "loadMethod", array(
152
+ "name" => esc_html__( "Loading method", 'final-tiles-grid-gallery-lite' ),
153
  "hiddenFor" => array( "dashboard", "shortcode" ),
154
  "type" => "select",
155
  "values" => array(
160
  "excludeFrom" => array( "dashboard", "shortcode" ),
161
  ) );
162
  $this->addField( "Advanced", "ajaxLoading", array(
163
+ "name" => esc_html__( "Asynchronous loading", 'final-tiles-grid-gallery-lite' ),
164
  "hiddenFor" => array( "dashboard", "shortcode" ),
165
  "type" => "select",
166
  "values" => array(
167
  "Loading method" => array( "F|Complete markup on page", "lazy|Enable ajax loading" ),
168
  ),
169
+ "description" => esc_html__( "Don't enable ajax loading if you need to index your images on search engines", "final-tiles-grid-gallery-lite" ),
170
  "proCall" => false,
171
  "excludeFrom" => array( "dashboard", "shortcode" ),
172
  ) );
173
  $this->addField( "Advanced", "tilesPerPage", array(
174
+ "name" => esc_html__( "Number of images to load via ajax", 'final-tiles-grid-gallery-lite' ),
175
  "hiddenFor" => array( "dashboard", "shortcode" ),
176
  "type" => "number",
177
  "proCall" => false,
178
  "excludeFrom" => array( "dashboard", "shortcode" ),
179
  ) );
180
  $this->addField( "General", "name", array(
181
+ "name" => esc_html__( "Name", 'final-tiles-grid-gallery-lite' ),
182
  "hiddenFor" => array( "dashboard", "shortcode" ),
183
  "type" => "text",
184
+ "description" => esc_html__( "Name of the gallery, for internal use.", "final-tiles-grid-gallery-lite" ),
185
  "proCall" => false,
186
  "excludeFrom" => array( "dashboard", "shortcode" ),
187
  ) );
188
  $this->addField( "General", "description", array(
189
+ "name" => esc_html__( "Description", 'final-tiles-grid-gallery-lite' ),
190
  "hiddenFor" => array( "dashboard", "shortcode" ),
191
  "type" => "text",
192
+ "description" => esc_html__( "Description of the gallery, for internal use.", "final-tiles-grid-gallery-lite" ),
193
  "proCall" => false,
194
  "excludeFrom" => array( "dashboard", "shortcode" ),
195
  ) );
196
  $this->addField( "General", "layout", array(
197
+ "name" => esc_html__( "Layout", 'final-tiles-grid-gallery-lite' ),
198
  "type" => "select",
199
  "description" => __( "<strong>Final Tiles</strong>: use images with different sizes<br><strong>Masonry</strong>: multi-column layout, use this one if you need images of the same size.", "final-tiles-grid-gallery-lite" ),
200
  "values" => array(
204
  "excludeFrom" => array(),
205
  ) );
206
  $this->addField( "General", "width", array(
207
+ "name" => esc_html__( "Width" ),
208
  "type" => "text",
209
+ "description" => esc_html__( "Width of the gallery in pixels or percentage.", "final-tiles-grid-gallery-lite" ),
210
  "proCall" => false,
211
  "excludeFrom" => array(),
212
  ) );
213
  $this->addField( "General", "margin", array(
214
+ "name" => esc_html__( "Margin", "final-tiles-grid-gallery-lite" ),
215
  "type" => "number",
216
+ "description" => esc_html__( "Margin between images", "final-tiles-grid-gallery-lite" ),
217
  "mu" => "px",
218
  "min" => 0,
219
  "max" => 50,
221
  "excludeFrom" => array(),
222
  ) );
223
  $this->addField( "General", "columns", array(
224
+ "name" => esc_html__( "Number of columns", "final-tiles-grid-gallery-lite" ),
225
  "type" => "number",
226
  "description" => "",
227
  "mu" => "",
231
  "excludeFrom" => array(),
232
  ) );
233
  $this->addField( "General", "imagesOrder", array(
234
+ "name" => esc_html__( "Images order", "final-tiles-grid-gallery-lite" ),
235
  "type" => "select",
236
+ "description" => esc_html__( "Choose the order of the images", "final-tiles-grid-gallery-lite" ),
237
  "default" => "",
238
  "values" => array(
239
  "Images order" => array( "user|User", "reverse|Reverse", "random|Random" ),
242
  "excludeFrom" => array(),
243
  ) );
244
  $this->addField( "General", "filter", array(
245
+ "name" => esc_html__( "Filters" ),
246
  "type" => FinalTiles_Gallery::getFieldType( "filter" ),
247
+ "description" => esc_html__( "Manage here all the filters of this gallery", "final-tiles-grid-gallery-lite" ),
248
  "proCall" => true,
249
  "excludeFrom" => array( "dashboard", "shortcode" ),
250
  ) );
251
  if ( ftg_fs()->is_plan_or_trial( 'ultimate' ) ) {
252
  $this->addField( "General", "filterClick", array(
253
+ "name" => esc_html__( "Reload Page on filter click", "final-tiles-grid-gallery-lite" ),
254
  "type" => "toggle",
255
+ "description" => esc_html__( "Turn this feature ON if you want to use filters with most lightboxes", "final-tiles-grid-gallery-lite" ),
256
  "proCall" => false,
257
  "excludeFrom" => array(),
258
  ) );
259
  }
260
  $this->addField( "General", "gridCellSize", array(
261
+ "name" => esc_html__( "Size of the grid", "final-tiles-grid-gallery-lite" ),
262
  "type" => "number",
263
  "default" => 25,
264
  "min" => 1,
269
  "excludeFrom" => array(),
270
  ) );
271
  $this->addField( "General", "gridCellSizeDisabledBelow", array(
272
+ "name" => esc_html__( "Disable grid size below resolution", "final-tiles-grid-gallery-lite" ),
273
  "type" => "number",
274
  "default" => 800,
275
  "min" => 0,
276
  "max" => 4000,
277
  "mu" => "px",
278
+ "description" => esc_html__( "If you have small tiny images under certain resolutions then you can switch off grid size (image cropping) when the screen resolution is below this value.", "final-tiles-grid-gallery-lite" ),
279
  "proCall" => false,
280
  "excludeFrom" => array(),
281
  ) );
294
  $this->addField( "Links & Lightbox", "lightbox", array(
295
  "name" => "Links &amp; Lightbox",
296
  "type" => "select",
297
+ "description" => esc_html__( "Define here what happens when user click on the images. Lightboxes with video support: EverlightBox, LightGallery, Magnific popup, Colorbox (require embed URL)); PrettyPhoto, FancyBox (require embed URL)", "final-tiles-grid-gallery-lite" ),
298
  "values" => array(
299
  "Link" => array( " |No lightbox", "direct|Direct link to image (useful for external lightboxes)|disabled", "post|Post or WooCommerce product|disabled" ),
300
  "Lightboxes" => array(
314
  $this->addField( "Links & Lightbox", "mobileLightbox", array(
315
  "name" => "Links &amp; Lightbox (mobile)",
316
  "type" => "select",
317
+ "description" => esc_html__( "Define here what happens when user click on the images. Lightboxes with video support: EverlightBox, LightGallery, Magnific popup, Colorbox (require embed URL)); PrettyPhoto, FancyBox (require embed URL)", "final-tiles-grid-gallery-lite" ),
318
  "values" => array(
319
  "Link" => array( " |No lightbox", "direct|Direct link to image (useful for external lightboxes)", "post|Post or WooCommerce product|disabled" ),
320
  "Lightboxes" => array(
332
  "excludeFrom" => array(),
333
  ) );
334
  $this->addField( "Links & Lightbox", "lightboxImageSize", array(
335
+ "name" => esc_html__( "Image size for the lightbox", "final-tiles-grid-gallery-lite" ),
336
  "type" => "select",
337
  "description" => "",
338
  "values" => array(
342
  "excludeFrom" => array(),
343
  ) );
344
  $this->addField( "Links & Lightbox", "disableLightboxGroups", array(
345
+ "name" => esc_html__( "Disable lightbox grouping", "final-tiles-grid-gallery-lite" ),
346
  "type" => "toggle",
347
+ "description" => esc_html__( "Flag this option if you don't want to group images when opened in a lightbox.", "final-tiles-grid-gallery-lite" ),
348
  "default" => "F",
349
  "proCall" => false,
350
  "excludeFrom" => array(),
351
  ) );
352
  $this->addField( "Links & Lightbox", "blank", array(
353
+ "name" => esc_html__( "Links target", "final-tiles-grid-gallery-lite" ),
354
  "type" => "toggle",
355
+ "description" => esc_html__( "Open links in a blank page.", "final-tiles-grid-gallery-lite" ),
356
  "proCall" => false,
357
  "excludeFrom" => array(),
358
  ) );
359
  $this->addField( "Links & Lightbox", "enableTwitter", array(
360
+ "name" => esc_html__( "Enable Twitter icon", "final-tiles-grid-gallery-lite" ),
361
  "type" => "toggle",
362
+ "description" => esc_html__( "Enable Twitter sharing.", "final-tiles-grid-gallery-lite" ),
363
  "default" => "F",
364
  "proCall" => false,
365
  "excludeFrom" => array(),
366
  ) );
367
  $this->addField( "Links & Lightbox", "enableFacebook", array(
368
+ "name" => esc_html__( "Enable Facebook icon", "final-tiles-grid-gallery-lite" ),
369
  "type" => "toggle",
370
+ "description" => esc_html__( "Enable Facebook sharing. Note: after the last version of OpenGraph API it's not possible to share a specific image anymore.", "final-tiles-grid-gallery-lite" ),
371
  "default" => "F",
372
  "proCall" => false,
373
  "excludeFrom" => array(),
374
  ) );
375
  $this->addField( "Links & Lightbox", "enableGplus", array(
376
+ "name" => esc_html__( "Enable Google Plus icon", "final-tiles-grid-gallery-lite" ),
377
  "type" => "toggle",
378
+ "description" => esc_html__( "Enable Google Plus sharing", "final-tiles-grid-gallery-lite" ),
379
  "default" => "F",
380
  "proCall" => false,
381
  "excludeFrom" => array(),
382
  ) );
383
  $this->addField( "Links & Lightbox", "enablePinterest", array(
384
+ "name" => esc_html__( "Enable Pinterest icon", "final-tiles-grid-gallery-lite" ),
385
  "type" => "toggle",
386
+ "description" => esc_html__( "Enable Pinterest sharing", "final-tiles-grid-gallery-lite" ),
387
  "default" => "F",
388
  "proCall" => false,
389
  "excludeFrom" => array(),
390
  ) );
391
  $this->addField( "Links & Lightbox", "socialIconColor", array(
392
+ "name" => esc_html__( "Color of social sharing icons", "final-tiles-grid-gallery-lite" ),
393
  "type" => "color",
394
+ "description" => esc_html__( "Set the color of the social sharing icons", "final-tiles-grid-gallery-lite" ),
395
  "default" => "#ffffff",
396
  "proCall" => false,
397
  "excludeFrom" => array(),
398
  ) );
399
  $this->addField( "Links & Lightbox", "socialIconStyle", array(
400
+ "name" => esc_html__( "Style of the social icons panel", "final-tiles-grid-gallery-lite" ),
401
  "type" => "select",
402
+ "description" => esc_html__( "Set the color of the social sharing icons", "final-tiles-grid-gallery-lite" ),
403
  "default" => "none",
404
  "values" => array(
405
  "Style" => array( "none|None", "circle|Circles", "bar|Bar" ),
408
  "excludeFrom" => array(),
409
  ) );
410
  $this->addField( "Links & Lightbox", "socialIconPosition", array(
411
+ "name" => esc_html__( "Position of the social icons panel", "final-tiles-grid-gallery-lite" ),
412
  "type" => "select",
413
+ "description" => esc_html__( "Set the position of the social sharing icons", "final-tiles-grid-gallery-lite" ),
414
  "default" => "bottom",
415
  "values" => array(
416
  "Position" => array( "bottom|Bottom", "right|Right" ),
419
  "excludeFrom" => array(),
420
  ) );
421
  $this->addField( "Captions", "captionBehavior", array(
422
+ "name" => esc_html__( "Caption behavior", "final-tiles-grid-gallery-lite" ),
423
  "type" => "select",
424
+ "description" => esc_html__( "Effect used to show the captions.", "final-tiles-grid-gallery-lite" ),
425
  "values" => array(
426
  "Effect" => array(
427
  "none|Fade in",
438
  "excludeFrom" => array(),
439
  ) );
440
  $this->addField( "Captions", "captionMobileBehavior", array(
441
+ "name" => esc_html__( "Caption mobile behavior", "final-tiles-grid-gallery-lite" ),
442
  "type" => "select",
443
+ "description" => esc_html__( "Caption behavior for mobile devices.", "final-tiles-grid-gallery-lite" ),
444
  "values" => array(
445
  "Behavior" => array(
446
  "desktop|Same as desktop",
454
  "excludeFrom" => array(),
455
  ) );
456
  $this->addField( "Captions", "captionPosition", array(
457
+ "name" => esc_html__( "Position", "final-tiles-grid-gallery-lite" ),
458
  "type" => "select",
459
+ "description" => esc_html__( "Choose the position of the caption.", "final-tiles-grid-gallery-lite" ),
460
  "values" => array(
461
  "Behavior" => array( "inside|Inside", "outside|Outside (EXPERIMENTAL)" ),
462
  ),
472
  "excludeFrom" => array()
473
  ));*/
474
  $this->addField( "Captions", "captionEmpty", array(
475
+ "name" => esc_html__( "Empty captions", "final-tiles-grid-gallery-lite" ),
476
  "type" => "select",
477
+ "description" => esc_html__( "Choose if empty caption has to be shown.", "final-tiles-grid-gallery-lite" ),
478
  "values" => array(
479
  "Empty captions" => array( "hide|Don't show empty captions", "show|Show empty captions|disabled" ),
480
  ),
482
  "excludeFrom" => array(),
483
  ) );
484
  $this->addField( "Captions", "captionIcon", array(
485
+ "name" => esc_html__( "Caption icon", "final-tiles-grid-gallery-lite" ),
486
  "type" => "select",
487
+ "description" => esc_html__( "Choose the icon for the captions.", "final-tiles-grid-gallery-lite" ),
488
  "values" => array(
489
  "Icon" => array(
490
  "|None",
507
  "excludeFrom" => array(),
508
  ) );
509
  $this->addField( "Captions", "customCaptionIcon", array(
510
+ "name" => esc_html__( "Custom caption icon", "final-tiles-grid-gallery-lite" ),
511
  "type" => FinalTiles_Gallery::getFieldType( "customCaptionIcon" ),
512
  "description" => __( "Use this field to insert the class of a FontAwesome icon (i.e.: fa-heart). <a href='https://fontawesome.com/v4.7.0/icons/' target='blank'>See all available icons</a>. <strong>This value override the <i>Caption icon</i> value</strong>.", "final-tiles-grid-gallery-lite" ),
513
  "proCall" => false,
514
  "excludeFrom" => array(),
515
  ) );
516
  $this->addField( "Captions", "captionIconColor", array(
517
+ "name" => esc_html__( "Caption icon color", "final-tiles-grid-gallery-lite" ),
518
  "type" => "color",
519
+ "description" => esc_html__( "Color of the icon in captions.", "final-tiles-grid-gallery-lite" ),
520
  "default" => "#ffffff",
521
  "proCall" => false,
522
  "excludeFrom" => array(),
523
  ) );
524
  $this->addField( "Captions", "captionIconSize", array(
525
+ "name" => esc_html__( "Caption icon size", "final-tiles-grid-gallery-lite" ),
526
  "type" => "number",
527
+ "description" => esc_html__( "Size of the icon in captions.", "final-tiles-grid-gallery-lite" ),
528
  "default" => 12,
529
  "min" => 10,
530
  "max" => 96,
533
  "excludeFrom" => array(),
534
  ) );
535
  $this->addField( "Captions", "captionFontSize", array(
536
+ "name" => esc_html__( "Caption font size", "final-tiles-grid-gallery-lite" ),
537
  "type" => "number",
538
+ "description" => esc_html__( "Size of the font in captions.", "final-tiles-grid-gallery-lite" ),
539
  "default" => 12,
540
  "min" => 10,
541
  "max" => 96,
544
  "excludeFrom" => array(),
545
  ) );
546
  $this->addField( "Captions", "captionEasing", array(
547
+ "name" => esc_html__( "Caption effect easing", "final-tiles-grid-gallery-lite" ),
548
  "type" => "select",
549
+ "description" => esc_html__( "Easing function for the caption animation, works better with sliding animations.", "final-tiles-grid-gallery-lite" ),
550
  "values" => array(
551
  "Easing" => array(
552
  "ease|Ease",
560
  "excludeFrom" => array(),
561
  ) );
562
  $this->addField( "Captions", "captionFrame", array(
563
+ "name" => esc_html__( "Caption frame", "final-tiles-grid-gallery-lite" ),
564
  "type" => "toggle",
565
+ "description" => esc_html__( "Add a frame around the caption", "final-tiles-grid-gallery-lite" ),
566
  "default" => "F",
567
  "proCall" => false,
568
  "excludeFrom" => array(),
569
  ) );
570
  $this->addField( "Captions", "captionFrameColor", array(
571
+ "name" => esc_html__( "Caption frame color", "final-tiles-grid-gallery-lite" ),
572
  "type" => "color",
573
+ "description" => esc_html__( "Color of the frame around the caption", "final-tiles-grid-gallery-lite" ),
574
  "default" => "#ffffff",
575
  "proCall" => false,
576
  "excludeFrom" => array(),
577
  ) );
578
  $this->addField( "Captions", "captionColor", array(
579
+ "name" => esc_html__( "Caption color", "final-tiles-grid-gallery-lite" ),
580
  "type" => "color",
581
+ "description" => esc_html__( "Text color of the captions.", "final-tiles-grid-gallery-lite" ),
582
  "default" => "#ffffff",
583
  "proCall" => false,
584
  "excludeFrom" => array(),
585
  ) );
586
  $this->addField( "Captions", "captionEffectDuration", array(
587
+ "name" => esc_html__( "Caption effect duration", "final-tiles-grid-gallery-lite" ),
588
  "type" => "text",
589
+ "description" => esc_html__( "Duration of the caption animation.", "final-tiles-grid-gallery-lite" ),
590
  "default" => 250,
591
  "mu" => "ms",
592
  "min" => 0,
595
  "excludeFrom" => array(),
596
  ) );
597
  $this->addField( "Captions", "captionBackgroundColor", array(
598
+ "name" => esc_html__( "Caption background color", "final-tiles-grid-gallery-lite" ),
599
  "type" => "color",
600
+ "description" => esc_html__( "Caption background color", "final-tiles-grid-gallery-lite" ),
601
  "default" => "#000000",
602
  "proCall" => false,
603
  "excludeFrom" => array(),
604
  ) );
605
  $this->addField( "Captions", "captionOpacity", array(
606
+ "name" => esc_html__( "Caption opacity", "final-tiles-grid-gallery-lite" ),
607
  "type" => "text",
608
+ "description" => esc_html__( "Opacity of the caption, 0% means 'invisible' while 100% is a plain color without opacity.", "final-tiles-grid-gallery-lite" ),
609
  "default" => 80,
610
  "min" => 0,
611
  "max" => 100,
614
  "excludeFrom" => array(),
615
  ) );
616
  $this->addField( "Captions", "wp_field_caption", array(
617
+ "name" => esc_html__( "WordPress caption field", "final-tiles-grid-gallery-lite" ),
618
  "type" => "select",
619
  "description" => __( "WordPress field used for captions. <strong>This field is used ONLY when images are added to the gallery, </strong> however, if you want to ignore captions just set it to '<i>Don't use captions</i>'.", "final-tiles-grid-gallery-lite" ),
620
  "values" => array(
629
  "excludeFrom" => array( "shortcode" ),
630
  ) );
631
  $this->addField( "Captions", "wp_field_title", array(
632
+ "name" => esc_html__( "WordPress title field", "final-tiles-grid-gallery-lite" ),
633
  "type" => "select",
634
  "description" => __( "WordPress field used for titles. <strong>This field is used ONLY when images are added to the gallery, </strong> however, if you want to ignore titles just set it to '<i>Don't use titles</i>'.", "final-tiles-grid-gallery-lite" ),
635
  "values" => array(
639
  "excludeFrom" => array( "shortcode" ),
640
  ) );
641
  $this->addField( "Captions", "recentPostsCaption", array(
642
+ "name" => esc_html__( "Recent posts caption", "final-tiles-grid-gallery-lite" ),
643
  "type" => "select",
644
+ "description" => esc_html__( "Field of the post used for captions when using \"Recent posts\" as source.", "final-tiles-grid-gallery-lite" ),
645
  "values" => array(
646
  "Field" => array(
647
  "none|Don't use captions",
655
  "excludeFrom" => array( "shortcode" ),
656
  ) );
657
  $this->addField( "Captions", "recentPostsCaptionAutoExcerptLength", array(
658
+ "name" => esc_html__( "Max number of words for 'Auto excerpt'", "final-tiles-grid-gallery-lite" ),
659
  "type" => "text",
660
  "description" => __( "Define the max number of words of the caption when <i>Recent posts caption</i> is set to <i>Auto excerpt</i>.", "final-tiles-grid-gallery-lite" ),
661
  "default" => "20",
663
  "excludeFrom" => array(),
664
  ) );
665
  $this->addField( "Captions", "captionVerticalAlignment", array(
666
+ "name" => esc_html__( "Caption Vertical Alignment", "final-tiles-grid-gallery-lite" ),
667
  "type" => "select",
668
+ "description" => esc_html__( "Choose the vertical alignment of the caption", "final-tiles-grid-gallery-lite" ),
669
  "values" => array(
670
  "Caption vertical alignment" => array( "top|Top", "middle|Middle", "bottom|Bottom" ),
671
  ),
673
  "excludeFrom" => array(),
674
  ) );
675
  $this->addField( "Captions", "captionHorizontalAlignment", array(
676
+ "name" => esc_html__( "Caption Horizontal Alignment", "final-tiles-grid-gallery-lite" ),
677
  "type" => "select",
678
+ "description" => esc_html__( "Choose the horizontal alignment of the caption", "final-tiles-grid-gallery-lite" ),
679
  "values" => array(
680
  "Caption horizontal alignment" => array( "left|Left", "center|Center", "right|Right" ),
681
  ),
683
  "excludeFrom" => array(),
684
  ) );
685
  $this->addField( "Captions", "titleFontSize", array(
686
+ "name" => esc_html__( "Title font size", "final-tiles-grid-gallery-lite" ),
687
  "type" => "number",
688
+ "description" => esc_html__( "Size of the font in captions.", "final-tiles-grid-gallery-lite" ),
689
  "min" => 10,
690
  "max" => 96,
691
  "mu" => "px",
693
  "excludeFrom" => array(),
694
  ) );
695
  $this->addField( "Hover effects", "hoverZoom", array(
696
+ "name" => esc_html__( "Zoom", "final-tiles-grid-gallery-lite" ),
697
  "type" => FinalTiles_gallery::getFieldType( "hoverZoom" ),
698
+ "description" => esc_html__( "Scale value.", "final-tiles-grid-gallery-lite" ),
699
  "default" => 100,
700
  "min" => 0,
701
  "max" => 600,
704
  "excludeFrom" => array(),
705
  ) );
706
  $this->addField( "Hover effects", "hoverRotation", array(
707
+ "name" => esc_html__( "Rotation", "final-tiles-grid-gallery-lite" ),
708
  "type" => FinalTiles_gallery::getFieldType( "hoverRotation" ),
709
+ "description" => esc_html__( "Rotation value in degrees.", "final-tiles-grid-gallery-lite" ),
710
  "min" => 0,
711
  "max" => 360,
712
  "mu" => "deg",
715
  "excludeFrom" => array(),
716
  ) );
717
  $this->addField( "Hover effects", "hoverDuration", array(
718
+ "name" => esc_html__( "Duration", "final-tiles-grid-gallery-lite" ),
719
  "description" => "",
720
  "type" => FinalTiles_gallery::getFieldType( "hoverDuration" ),
721
  "min" => 10,
726
  "excludeFrom" => array(),
727
  ) );
728
  $this->addField( "Hover effects", "hoverIconRotation", array(
729
+ "name" => esc_html__( "Rotate icon", "final-tiles-grid-gallery-lite" ),
730
  "type" => "toggle",
731
  "default" => "F",
732
+ "description" => esc_html__( "Enable rotation of the icon.", "final-tiles-grid-gallery-lite" ),
733
  "proCall" => false,
734
  "excludeFrom" => array(),
735
  ) );
736
  $this->addField( "Image loaded effects", "loadedDuration", array(
737
+ "name" => esc_html__( "Duration", "final-tiles-grid-gallery-lite" ),
738
  "description" => "",
739
  "type" => "slider",
740
  "min" => 10,
745
  "excludeFrom" => array(),
746
  ) );
747
  $this->addField( "Image loaded effects", "loadedEasing", array(
748
+ "name" => esc_html__( "Easing curve", "final-tiles-grid-gallery-lite" ),
749
  "type" => "select",
750
+ "description" => esc_html__( "Choose the easing curve for the loading effect animation", "final-tiles-grid-gallery-lite" ),
751
  "values" => array(
752
  "Easing curve" => array(
753
  "linear|Linear",
764
  "excludeFrom" => array(),
765
  ) );
766
  $this->addField( "Image loaded effects", "loadedScaleY", array(
767
+ "name" => esc_html__( "Vertical scaling", "final-tiles-grid-gallery-lite" ),
768
  "description" => "",
769
  "type" => "slider",
770
  "min" => 1,
775
  "excludeFrom" => array(),
776
  ) );
777
  $this->addField( "Image loaded effects", "loadedScaleX", array(
778
+ "name" => esc_html__( "Horizontal scaling", "final-tiles-grid-gallery-lite" ),
779
  "description" => "",
780
  "type" => "slider",
781
  "min" => 1,
786
  "excludeFrom" => array(),
787
  ) );
788
  $this->addField( "Image loaded effects", "loadedRotateY", array(
789
+ "name" => esc_html__( "Vertical rotation", "final-tiles-grid-gallery-lite" ),
790
  "description" => "",
791
  "type" => "slider",
792
  "min" => -180,
797
  "excludeFrom" => array(),
798
  ) );
799
  $this->addField( "Image loaded effects", "loadedRotateX", array(
800
+ "name" => esc_html__( "Horizontal rotation", "final-tiles-grid-gallery-lite" ),
801
  "description" => "",
802
  "type" => "slider",
803
  "min" => -180,
808
  "excludeFrom" => array(),
809
  ) );
810
  $this->addField( "Image loaded effects", "loadedHSlide", array(
811
+ "name" => esc_html__( "Horizontal slide", "final-tiles-grid-gallery-lite" ),
812
  "description" => "",
813
  "type" => "slider",
814
  "min" => -1000,
819
  "excludeFrom" => array(),
820
  ) );
821
  $this->addField( "Image loaded effects", "loadedVSlide", array(
822
+ "name" => esc_html__( "Vertical slide", "final-tiles-grid-gallery-lite" ),
823
  "description" => "",
824
  "type" => "slider",
825
  "min" => -1000,
830
  "excludeFrom" => array(),
831
  ) );
832
  $this->addField( "Style", "borderSize", array(
833
+ "name" => esc_html__( "Border size", "final-tiles-grid-gallery-lite" ),
834
  "type" => "number",
835
+ "description" => esc_html__( "Size of the border of each image.", "final-tiles-grid-gallery-lite" ),
836
  "default" => 0,
837
  "min" => 0,
838
  "max" => 10,
841
  "excludeFrom" => array(),
842
  ) );
843
  $this->addField( "Style", "borderRadius", array(
844
+ "name" => esc_html__( "Border radius", "final-tiles-grid-gallery-lite" ),
845
  "type" => "number",
846
+ "description" => esc_html__( "Border radius of the images.", "final-tiles-grid-gallery-lite" ),
847
  "default" => 0,
848
  "min" => 0,
849
  "max" => 100,
852
  "excludeFrom" => array(),
853
  ) );
854
  $this->addField( "Style", "borderColor", array(
855
+ "name" => esc_html__( "Border color", "final-tiles-grid-gallery-lite" ),
856
  "type" => "color",
857
+ "description" => esc_html__( "Color of the border when size is greater than 0.", "final-tiles-grid-gallery-lite" ),
858
  "default" => "#000000",
859
  "proCall" => false,
860
  "excludeFrom" => array(),
861
  ) );
862
  $this->addField( "Style", "loadingBarColor", array(
863
+ "name" => esc_html__( "Loading Bar color", "final-tiles-grid-gallery-lite" ),
864
  "type" => "color",
865
+ "description" => esc_html__( "Color of the loading bar", "final-tiles-grid-gallery-lite" ),
866
  "default" => "#000000",
867
  "proCall" => false,
868
  "excludeFrom" => array(),
869
  ) );
870
  $this->addField( "Style", "loadingBarBackgroundColor", array(
871
+ "name" => esc_html__( "Loading Bar background color", "final-tiles-grid-gallery-lite" ),
872
  "type" => "color",
873
+ "description" => esc_html__( "Background color of the loading bar", "final-tiles-grid-gallery-lite" ),
874
  "default" => "#cccccc",
875
  "proCall" => false,
876
  "excludeFrom" => array(),
877
  ) );
878
  $this->addField( "Style", "shadowSize", array(
879
+ "name" => esc_html__( "Shadow size", "final-tiles-grid-gallery-lite" ),
880
  "type" => "number",
881
+ "description" => esc_html__( "Shadow size of the images.", "final-tiles-grid-gallery-lite" ),
882
  "default" => 0,
883
  "min" => 0,
884
  "max" => 20,
887
  "excludeFrom" => array(),
888
  ) );
889
  $this->addField( "Style", "shadowColor", array(
890
+ "name" => esc_html__( "Shadow color", "final-tiles-grid-gallery-lite" ),
891
  "type" => "color",
892
+ "description" => esc_html__( "Color of the shadow when size is greater than 0.", "final-tiles-grid-gallery-lite" ),
893
  "default" => "#000000",
894
  "proCall" => false,
895
  "excludeFrom" => array(),
896
  ) );
897
  $this->addField( "Style", "backgroundColor", array(
898
+ "name" => esc_html__( "Tile background color", "final-tiles-grid-gallery-lite" ),
899
  "type" => "color",
900
+ "description" => esc_html__( "Background color of tiles", "final-tiles-grid-gallery-lite" ),
901
  "default" => "#fafafa",
902
  "proCall" => false,
903
  "excludeFrom" => array(),
904
  ) );
905
  $this->addField( "Customizations", "aClass", array(
906
+ "name" => esc_html__( "Additional CSS class on A tag", "final-tiles-grid-gallery-lite" ),
907
  "type" => "text",
908
+ "description" => esc_html__( "Use this field if you need to add additional CSS classes to the link that contains the image.", "final-tiles-grid-gallery-lite" ),
909
  "default" => "",
910
  "proCall" => false,
911
  "excludeFrom" => array(),
912
  ) );
913
  $this->addField( "Customizations", "rel", array(
914
+ "name" => esc_html__( "Value of 'rel' attribute on the link that contains the image.", "final-tiles-grid-gallery-lite" ),
915
  "type" => "text",
916
+ "description" => esc_html__( "Use this field if you need to add additional CSS classes to the link that contains the image. This is useful mostly to integrate the gallery with other lightbox plugins.", "final-tiles-grid-gallery-lite" ),
917
  "default" => "",
918
  "proCall" => false,
919
  "excludeFrom" => array(),
920
  ) );
921
  $this->addField( "Customizations", "beforeGalleryText", array(
922
+ "name" => esc_html__( "Text before gallery", "final-tiles-grid-gallery-lite" ),
923
  "type" => "textarea",
924
+ "description" => esc_html__( "Use this field to add text/html to be placed just before your gallery.", "final-tiles-grid-gallery-lite" ),
925
  "proCall" => false,
926
  "excludeFrom" => array( "shortcode" ),
927
  ) );
928
  $this->addField( "Customizations", "afterGalleryText", array(
929
+ "name" => esc_html__( "Text after gallery", "final-tiles-grid-gallery-lite" ),
930
  "type" => "textarea",
931
+ "description" => esc_html__( "Use this field to add text/html to be placed just after your gallery.", "final-tiles-grid-gallery-lite" ),
932
  "proCall" => false,
933
  "excludeFrom" => array( "shortcode" ),
934
  ) );
940
  "excludeFrom" => array( "shortcode" ),
941
  ) );
942
  $this->addField( "Customizations", "script", array(
943
+ "name" => esc_html__( "Custom scripts", "final-tiles-grid-gallery-lite" ),
944
  "type" => "textarea",
945
  "description" => __( "This script will be called after the gallery initialization. Useful for custom lightboxes.\n <br />\n <br />\n <strong>Write just the code without using the &lt;script&gt;&lt;/script&gt; tags</strong>", "final-tiles-grid-gallery-lite" ),
946
  "proCall" => false,
947
  "excludeFrom" => array( "shortcode" ),
948
  ) );
949
  $this->addField( "Customizations", "delay", array(
950
+ "name" => esc_html__( "Delay", "final-tiles-grid-gallery-lite" ),
951
  "type" => "text",
952
+ "description" => esc_html__( "Delay (in milliseconds) before firing the gallery. Sometimes it's needed to avoid conflicts with other plugins.", "final-tiles-grid-gallery-lite" ),
953
  "min" => 0,
954
  "max" => 5000,
955
  "mu" => "ms",
958
  "excludeFrom" => array(),
959
  ) );
960
  $this->addField( "Customizations", "support", array(
961
+ "name" => esc_html__( "Show developer link", "final-tiles-grid-gallery-lite" ),
962
  "type" => "toggle",
963
+ "description" => esc_html__( "I want to support this plugin, show the developer link!", "final-tiles-grid-gallery-lite" ),
964
  "default" => "F",
965
  "proCall" => false,
966
  "excludeFrom" => array(),
968
  "excludeFrom" => array(),
969
  ) );
970
  $this->addField( "Customizations", "supportText", array(
971
+ "name" => esc_html__( "Developer link text", "final-tiles-grid-gallery-lite" ),
972
  "type" => "text",
973
+ "description" => esc_html__( "Text for the developer link", "final-tiles-grid-gallery-lite" ),
974
  "default" => "powered by Final Tiles Grid Gallery",
975
  "proCall" => false,
976
  "excludeFrom" => array(),
977
  ) );
978
  $this->addField( "Advanced", "columnsTabletLandscape", array(
979
+ "name" => esc_html__( "Number of columns (Tablet landscape)", "final-tiles-grid-gallery-lite" ),
980
  "type" => "number",
981
  "description" => "",
982
  "mu" => "",
986
  "excludeFrom" => array(),
987
  ) );
988
  $this->addField( "Advanced", "columnsTabletPortrait", array(
989
+ "name" => esc_html__( "Number of columns (Tablet portrait)", "final-tiles-grid-gallery-lite" ),
990
  "type" => "number",
991
  "description" => "",
992
  "mu" => "",
996
  "excludeFrom" => array(),
997
  ) );
998
  $this->addField( "Advanced", "columnsPhoneLandscape", array(
999
+ "name" => esc_html__( "Number of columns (Phone landscape)", "final-tiles-grid-gallery-lite" ),
1000
  "type" => "number",
1001
  "description" => "",
1002
  "mu" => "",
1006
  "excludeFrom" => array(),
1007
  ) );
1008
  $this->addField( "Advanced", "columnsPhonePortrait", array(
1009
+ "name" => esc_html__( "Number of columns (Phone portrait)", "final-tiles-grid-gallery-lite" ),
1010
  "type" => "number",
1011
  "description" => "",
1012
  "mu" => "",
1016
  "excludeFrom" => array(),
1017
  ) );
1018
  $this->addField( "Advanced", "imageSizeFactor", array(
1019
+ "name" => esc_html__( "Image size factor", "final-tiles-grid-gallery-lite" ),
1020
  "type" => "slider",
1021
+ "description" => esc_html__( "Percentage of image size, i.e.: if an image of the gallery is 300x200 and the size factor is 50% then the resulting image will be 150x100.\n 90% is a suggested default value, because under some circumstances, the images could be enlarged by the script (to fill gaps and avoid blank spaces between tiles).", "final-tiles-grid-gallery-lite" ),
1022
  "default" => 90,
1023
  "min" => 1,
1024
  "max" => 100,
1027
  "excludeFrom" => array(),
1028
  ) );
1029
  $this->addField( "Advanced", "imageSizeFactorTabletLandscape", array(
1030
+ "name" => esc_html__( "Image size factor (Tablet Landscape)", "final-tiles-grid-gallery-lite" ),
1031
  "type" => "slider",
1032
+ "description" => esc_html__( "Image size factor to apply when the viewport is 1024px, typically for tablets with landscape orientation", "final-tiles-grid-gallery-lite" ),
1033
  "default" => 80,
1034
  "min" => 1,
1035
  "max" => 100,
1038
  "excludeFrom" => array(),
1039
  ) );
1040
  $this->addField( "Advanced", "imageSizeFactorTabletPortrait", array(
1041
+ "name" => esc_html__( "Image size factor Tablet Portrait", "final-tiles-grid-gallery-lite" ),
1042
  "type" => "slider",
1043
+ "description" => esc_html__( "Image size factor to apply when the viewport is 768px, typically for tablets with portrait orientation", "final-tiles-grid-gallery-lite" ),
1044
  "default" => 70,
1045
  "min" => 1,
1046
  "max" => 100,
1049
  "excludeFrom" => array(),
1050
  ) );
1051
  $this->addField( "Advanced", "imageSizeFactorPhoneLandscape", array(
1052
+ "name" => esc_html__( "Image size factor Smartphone Landscape", "final-tiles-grid-gallery-lite" ),
1053
  "type" => "slider",
1054
+ "description" => esc_html__( "Image size factor to apply when the viewport is 640px, typically for smartphones with landscape orientation", "final-tiles-grid-gallery-lite" ),
1055
  "default" => 60,
1056
  "min" => 1,
1057
  "max" => 100,
1060
  "excludeFrom" => array(),
1061
  ) );
1062
  $this->addField( "Advanced", "imageSizeFactorPhonePortrait", array(
1063
+ "name" => esc_html__( "Image size factor Phone Portrait", "final-tiles-grid-gallery-lite" ),
1064
  "type" => "slider",
1065
+ "description" => esc_html__( "Image size factor to apply when the viewport is 320px, typically for smartphones with portrait orientation", "final-tiles-grid-gallery-lite" ),
1066
  "default" => 50,
1067
  "min" => 1,
1068
  "max" => 100,
1071
  "excludeFrom" => array(),
1072
  ) );
1073
  $this->addField( "Advanced", "imageSizeFactorCustom", array(
1074
+ "name" => esc_html__( "Custom image size factor", "final-tiles-grid-gallery-lite" ),
1075
  "hiddenFor" => array( "dashboard", "shortcode" ),
1076
  "type" => FinalTiles_Gallery::getFieldType( "custom_isf" ),
1077
  "description" => __( "Use this field if you need further resolutions. Make custom layout for any device and resolution.", "final-tiles-grid-gallery-lite" ),
1079
  "excludeFrom" => array( "dashboard", "shortcode" ),
1080
  ) );
1081
  $this->addField( "Advanced", "compressHTML", array(
1082
+ "name" => esc_html__( "Compress HTML", "final-tiles-grid-gallery-lite" ),
1083
  "type" => "toggle",
1084
+ "description" => esc_html__( "Enable or disable HTML compression, some themes prefer uncompressed, switch it off in case of problems.", "final-tiles-grid-gallery-lite" ),
1085
  "default" => "T",
1086
  "proCall" => false,
1087
  "excludeFrom" => array(),
1088
  ) );
1089
  $this->addField( "Advanced", "minTileWidth", array(
1090
+ "name" => esc_html__( "Tile minimum width", "final-tiles-grid-gallery-lite" ),
1091
  "type" => "number",
1092
+ "description" => esc_html__( "Minimum width of each tile, <strong>multiply this value for the image size factor to get the real size</strong>.", "final-tiles-grid-gallery-lite" ),
1093
  "mu" => "px",
1094
  "min" => 50,
1095
  "max" => 500,
1098
  "excludeFrom" => array(),
1099
  ) );
1100
  $this->addField( "Advanced", "enlargeImages", array(
1101
+ "name" => esc_html__( "Allow image enlargement", "final-tiles-grid-gallery-lite" ),
1102
  "type" => "toggle",
1103
  "description" => __( "Images can be occasionally enlarged to avoid gaps. If you notice a quality loss try to reduce the <strong>Image size factor</strong> parameter.", "final-tiles-grid-gallery-lite" ),
1104
  "default" => "T",
1107
  ) );
1108
  if ( ftg_fs()->is_plan_or_trial( 'ultimate' ) ) {
1109
  $this->addField( "Advanced", "allFilterLabel", array(
1110
+ "name" => esc_html__( "Text for 'All' filter", "final-tiles-grid-gallery-lite" ),
1111
  "type" => "text",
1112
+ "description" => esc_html__( "Write here the label for the 'All' filter", "final-tiles-grid-gallery-lite" ),
1113
  "proCall" => false,
1114
  "excludeFrom" => array(),
1115
  ) );
admin/include/image-list.php CHANGED
@@ -17,16 +17,16 @@ if(isset($gallery))
17
  else
18
  $thumb = plugins_url('../images/video.jpg', __FILE__);
19
  ?>
20
- <div class='item card hidden-<?php echo $image->hidden ?>' data-type='<?php echo $image->type ?>' data-image-id="<?php echo $image->imageId ?>" data-id="<?php echo $image->Id ?>">
21
  <div class="figure card-image" style="background-image: url('<?php echo $thumb ?>');">
22
  <?php if($image->type == 'image') : ?>
23
- <img class="thumb" src="<?php echo plugins_url('../images/square.gif', __FILE__) ?>" />
24
  <?php else : ?>
25
  <div class="aspect-ratio">
26
- <?php print $image->imagePath ?>
27
  </div>
28
  <?php endif ?>
29
- <a href="#<?php echo $image->type ?>-panel-model" class="edit modal-trigger">
30
  <i class="mdi mdi-pencil"></i>
31
  </a>
32
 
@@ -49,21 +49,21 @@ if(isset($gallery))
49
 
50
  if(isset($image->group) && trim($image->group))
51
  {
52
- echo "<li><i class=\"mdi mdi-folder-outline\"></i> $image->group</li>";
53
  }
54
 
55
  if(! empty($image->filters))
56
  {
57
  foreach ( explode( '|', $image->filters ) as $f ) {
58
  if ( in_array( $f, $active_filters ) ) {
59
- echo "<li><i class='mdi mdi-tag-outline'></i> $f</li>";
60
  }
61
  }
62
  }
63
 
64
  echo "</ul>";
65
 
66
- echo "<input type='hidden' class ='current_image_filter' value=$image->filters>";
67
 
68
  }
69
 
@@ -71,31 +71,31 @@ if(isset($gallery))
71
  </div>
72
  <div class="card-content">
73
  <p class="truncate">
74
- <?php echo (isset($image->title) && !empty($image->title)) ? $image->title : $image->description ?>
75
  </p>
76
 
77
- <input class="copy" type="hidden" name="id" value="<?php echo $image->Id ?>" />
78
- <input class="copy" type="hidden" name="type" value="<?php echo $image->type ?>" />
79
- <input class="copy" type="hidden" name="img_id" value="<?php echo $image->imageId ?>" />
80
- <input class="copy" type="hidden" name="sortOrder" value="<?php echo $image->sortOrder; ?>" />
81
- <input class="copy" type="hidden" name="filters" value="<?php echo $image->filters ?>" />
82
- <input class="copy" type="hidden" name="post_id" value="<?php echo isset($image->postId) ? $image->postId : 0 ?>" />
83
  <select name="img_url" class="select hidden">
84
  <?php foreach($sizes as $k => $v) : ?>
85
- <option <?php echo $v == $image->imagePath ? "selected" : "" ?> value="<?php print $v ?>"><?php print $k ?></option>
86
  <?php endforeach ?>
87
  </select>
88
- <input type="hidden" name="target" value="<?php echo $image->target ?>" />
89
- <input type="hidden" name="group" value="<?php echo $image->group ?>" />
90
- <input type="hidden" name="zoom" value="<?php echo $image->zoom ?>" />
91
- <input type="hidden" name="link" value="<?php echo $image->link ?>" />
92
- <input type="hidden" name="blank" value="<?php echo $image->blank ?>" />
93
- <input type="hidden" name="hidden" value="<?php echo $image->hidden ?>" />
94
- <input type="hidden" name="sortOrder" value="<?php echo $image->sortOrder ?>" />
95
- <pre class="hidden description"><?php echo $image->description ?></pre>
96
- <pre class="hidden imagepath"><?php echo htmlentities($image->imagePath) ?></pre>
97
- <input type="hidden" id="img-title" value="<?php echo $image->title ?>">
98
- <input type="hidden" id="img-alt" value="<?php echo $image->alt ?>">
99
  </div>
100
  </div>
101
  <?php } ?>
17
  else
18
  $thumb = plugins_url('../images/video.jpg', __FILE__);
19
  ?>
20
+ <div class='item card hidden-<?php echo esc_attr($image->hidden );?>' data-type='<?php echo esc_attr($image->type); ?>' data-image-id="<?php echo esc_attr($image->imageId); ?>" data-id="<?php echo esc_attr($image->Id); ?>">
21
  <div class="figure card-image" style="background-image: url('<?php echo $thumb ?>');">
22
  <?php if($image->type == 'image') : ?>
23
+ <img class="thumb" src="<?php echo esc_url(plugins_url('../images/square.gif', __FILE__)); ?>" />
24
  <?php else : ?>
25
  <div class="aspect-ratio">
26
+ <?php echo esc_url($image->imagePath); ?>
27
  </div>
28
  <?php endif ?>
29
+ <a href="#<?php echo esc_attr($image->type );?>-panel-model" class="edit modal-trigger">
30
  <i class="mdi mdi-pencil"></i>
31
  </a>
32
 
49
 
50
  if(isset($image->group) && trim($image->group))
51
  {
52
+ echo "<li><i class=\"mdi mdi-folder-outline\"></i> ".esc_html($image->group)."</li>";
53
  }
54
 
55
  if(! empty($image->filters))
56
  {
57
  foreach ( explode( '|', $image->filters ) as $f ) {
58
  if ( in_array( $f, $active_filters ) ) {
59
+ echo "<li><i class='mdi mdi-tag-outline'></i> ".esc_html($f)."</li>";
60
  }
61
  }
62
  }
63
 
64
  echo "</ul>";
65
 
66
+ echo "<input type='hidden' class ='current_image_filter' value=".esc_attr($image->filters).">";
67
 
68
  }
69
 
71
  </div>
72
  <div class="card-content">
73
  <p class="truncate">
74
+ <?php echo (isset($image->title) && !empty($image->title)) ? esc_html($image->title ): wp_kses_post($image->description );?>
75
  </p>
76
 
77
+ <input class="copy" type="hidden" name="id" value="<?php echo esc_attr($image->Id );?>" />
78
+ <input class="copy" type="hidden" name="type" value="<?php echo esc_attr($image->type );?>" />
79
+ <input class="copy" type="hidden" name="img_id" value="<?php echo esc_attr($image->imageId );?>" />
80
+ <input class="copy" type="hidden" name="sortOrder" value="<?php echo esc_attr($image->sortOrder); ?>" />
81
+ <input class="copy" type="hidden" name="filters" value="<?php echo esc_attr($image->filters );?>" />
82
+ <input class="copy" type="hidden" name="post_id" value="<?php echo isset($image->postId) ? esc_attr($image->postId ): 0 ?>" />
83
  <select name="img_url" class="select hidden">
84
  <?php foreach($sizes as $k => $v) : ?>
85
+ <option <?php echo $v == $image->imagePath ? "selected" : "" ?> value="<?php echo esc_attr($v );?>"><?php echo esc_html($k); ?></option>
86
  <?php endforeach ?>
87
  </select>
88
+ <input type="hidden" name="target" value="<?php echo esc_attr($image->target );?>" />
89
+ <input type="hidden" name="group" value="<?php echo esc_attr($image->group );?>" />
90
+ <input type="hidden" name="zoom" value="<?php echo esc_attr($image->zoom );?>" />
91
+ <input type="hidden" name="link" value="<?php echo esc_attr($image->link );?>" />
92
+ <input type="hidden" name="blank" value="<?php echo esc_attr($image->blank );?>" />
93
+ <input type="hidden" name="hidden" value="<?php echo esc_attr($image->hidden );?>" />
94
+ <input type="hidden" name="sortOrder" value="<?php echo esc_attr($image->sortOrder );?>" />
95
+ <pre class="hidden description"><?php echo wp_kses_post($image->description );?></pre>
96
+ <pre class="hidden imagepath"><?php echo esc_url($image->imagePath) ?></pre>
97
+ <input type="hidden" id="img-title" value="<?php echo esc_attr($image->title );?>">
98
+ <input type="hidden" id="img-alt" value="<?php echo esc_attr($image->alt );?>">
99
  </div>
100
  </div>
101
  <?php } ?>
admin/overview.php CHANGED
@@ -1,4 +1,4 @@
1
- <?php if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('You are not allowed to call this page directly.', 'final-tiles-grid-gallery-lite')); } ?>
2
 
3
  <?php $ftg_subtitle = "Dashboard" ?>
4
 
@@ -7,16 +7,16 @@
7
  ?>
8
 
9
  <div class="bd wrap">
10
- <h1 class="wp-heading-inline"><?php _e('Final Tiles Gallery') ?> <small><?php echo FTGVERSION . " " . FTG_PLAN ?></small></h1>
11
  <h2 class="ftg-subtitle"><?php _e('Galleries','final-tiles-grid-gallery-lite') ?></h2>
12
  <hr class="wp-header-end">
13
  <?php if(count($galleries) == 0) : ?>
14
  <div class="row ">
15
  <div class="col s9">
16
  <div class="card-panel light-green lighten-4">
17
- <h5 class="cyan-text text-darken-3"><?php _e('Welcome to Final Tiles Grid Gallery!', 'final-tiles-grid-gallery-lite')?></h5>
18
  <p>
19
- <?php _e('Create your first awesome gallery, click', 'final-tiles-grid-gallery-lite')?> <a href="?page=ftg-add-gallery"><?php _e('here', 'final-tiles-grid-gallery-lite')?></a>.
20
  </p>
21
  </div>
22
  </div>
@@ -24,19 +24,19 @@
24
  <?php if ( ftg_fs()->is_not_paying()) : ?>
25
  <ul class="collapsible gallery-actions">
26
  <li class="active">
27
- <div class="collapsible-header"><?php _e('Upgrade', 'final-tiles-grid-gallery-lite') ?>: <?php _e('unlock features', 'final-tiles-grid-gallery-lite') ?></div>
28
  <div class="collapsible-body">
29
  <div class="ftg-upsell">
30
- <a href="<?php echo ftg_fs()->get_upgrade_url() ?>"><i class="fa fa-hand-o-right"></i> <?php _e('Upgrade', 'final-tiles-grid-gallery-lite') ?></a>
31
  </div>
32
- <p>or save 30% purchasing the <strong>BUNDLE</strong>:</p>
33
  <div class="ftg-upsell">
34
  <a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
35
  <i class="fa fa-star"></i>
36
- Bundle: 30% <?php _e('discount', 'final-tiles-grid-gallery-lite') ?></a>
37
  </div>
38
  <p class="upsell-info">
39
- <?php _e('GET 3 plugins', 'final-tiles-grid-gallery-lite') ?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
40
  </p>
41
  </div>
42
  </li>
@@ -54,46 +54,46 @@
54
  <thead>
55
  <tr>
56
  <td scope="col" class="manage-column column-title column-primary">
57
- <?php _e('Title', 'final-tiles-grid-gallery-lite') ?>
58
  </td>
59
  <td scope="col" class="manage-column column-title column-primary">
60
- <?php _e('Description', 'final-tiles-grid-gallery-lite') ?>
61
  </td>
62
  <td scope="col" class="manage-column column-title column-primary">
63
- <?php _e('type', 'final-tiles-grid-gallery-lite') ?>
64
  </td>
65
  <td scope="col" class="manage-column column-title column-primary">
66
- <?php _e('Shortcode', 'final-tiles-grid-gallery-lite') ?>
67
  </td>
68
  </thead>
69
 
70
  <tbody id="the-list">
71
  <?php foreach($galleries as $gallery) : ?>
72
- <tr id="gallery-<?php print $gallery->Id ?>" class="iedit author-self level-0 post-10 type-post status-publish format-standard hentry">
73
  <td class="title column-title has-row-actions column-primary page-title" data-colname="Title">
74
  <strong>
75
- <a href="?page=ftg-lite-gallery-admin&id=<?php print $gallery->Id ?>"><?php print $gallery->name ?></a>
76
  </strong>
77
  <div class="row-actions">
78
  <span class="edit">
79
- <a href="?page=ftg-lite-gallery-admin&id=<?php print $gallery->Id ?>" aria-label="Edit"><?php _e("Edit","final-tiles-grid-gallery-lite") ?></a> |
80
  </span>
81
  <span class="edit">
82
- <a href="#" class="clone-gallery" data-gid="<?php print $gallery->Id ?>" aria-label="Clone"><?php _e("Clone gallery","final-tiles-grid-gallery-lite") ?></a> |
83
  </span>
84
  <span class="trash">
85
- <a href="#delete-gallery-modal" data-gid="<?php print $gallery->Id ?>" class="modal-trigger submitdelete"><?php _e("Delete gallery", "final-tiles-grid-gallery-lite") ?></a>
86
  </span>
87
  </div>
88
  </td>
89
  <td class="title column-title has-row-actions column-primary">
90
- <?php print $gallery->description ?>
91
  </td>
92
  <td class="title column-title has-row-actions column-primary">
93
- <?php print $gallery->source ?>
94
  </td>
95
  <td class="title column-title has-row-actions column-primary">
96
- <input readonly type="text" value="[FinalTilesGallery id='<?php echo $gallery->Id ?>']" style="height:30px;">
97
  <a href="#" title="Click to copy shortcode" class="copy-ftg-shortcode button button-primary dashicons dashicons-format-gallery" style="width:40px;"></a><span style="margin-left:15px;"></span>
98
  </td>
99
  </tr>
@@ -105,19 +105,19 @@
105
  <?php if (ftg_fs()->is_not_paying() ) : ?>
106
  <ul class="collapsible gallery-actions">
107
  <li class="active">
108
- <div class="collapsible-header"><?php _e('Upgrade', 'final-tiles-grid-gallery-lite') ?>: <?php _e('unlock features', 'final-tiles-grid-gallery-lite') ?></div>
109
  <div class="collapsible-body">
110
  <div class="ftg-upsell">
111
- <a href="<?php echo ftg_fs()->get_upgrade_url() ?>"><i class="fa fa-hand-o-right"></i> <?php _e('Upgrade', 'final-tiles-grid-gallery-lite') ?></a>
112
  </div>
113
- <p>or save 30% purchasing the <strong>BUNDLE</strong>:</p>
114
  <div class="ftg-upsell">
115
  <a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
116
  <i class="fa fa-star"></i>
117
- Bundle: 30% <?php _e('discount', 'final-tiles-grid-gallery-lite') ?></a>
118
  </div>
119
  <p class="upsell-info">
120
- <?php _e('GET 3 plugins', 'final-tiles-grid-gallery-lite') ?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
121
  </p>
122
  </div>
123
  </li>
@@ -127,11 +127,11 @@
127
  <ul class="collapsible gallery-actions">
128
  <li class="active">
129
  <div class="collapsible-header">
130
- <?php _e('Redeem your coupon', 'final-tiles-grid-gallery-lite')?>
131
  </div>
132
  <div class="collapsible-body">
133
- <a href="?page=ftg-add-gallery" class="button components-button is-primary"><?php _e('Add gallery', 'final-tiles-grid-gallery-lite')?></a>
134
- <a href="#" class="no-thank-you"><?php _e('No, thank you', 'final-tiles-grid-gallery-lite') ?></a>
135
  </div>
136
  </li>
137
  </ul>
@@ -139,10 +139,10 @@
139
  <ul class="collapsible gallery-actions">
140
  <li class="active">
141
  <div class="collapsible-header">
142
- <?php _e('Galleries', 'final-tiles-grid-gallery-lite')?>
143
  </div>
144
  <div class="collapsible-body">
145
- <a href="?page=ftg-add-gallery" class="button components-button is-primary"><?php _e('Add gallery', 'final-tiles-grid-gallery-lite')?></a>
146
  </div>
147
  </li>
148
  </ul>
@@ -155,23 +155,23 @@
155
  <!-- Delete gallery modal -->
156
  <div id="delete-gallery-modal" class="modal">
157
  <div class="modal-content">
158
- <h4><?php _e('Confirmation', 'final-tiles-grid-gallery-lite')?></h4>
159
- <p><?php _e('Do you really want to delete the gallery', 'final-tiles-grid-gallery-lite')?> <span></span> ?</p>
160
  </div>
161
  <div class="modal-footer">
162
- <a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat yes"><?php _e('Yes', 'final-tiles-grid-gallery-lite')?></a>
163
- <a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat"><?php _e('No', 'final-tiles-grid-gallery-lite')?></a>
164
  </div>
165
  </div>
166
  <!-- Shortcode gallery modal -->
167
  <div id="shortcode-gallery-modal" class="modal">
168
  <div class="modal-content">
169
  <h4></h4>
170
- <p><?php _e('Copy and paste the following shortcode inside a post, page or widget:', 'final-tiles-grid-gallery-lite')?></p>
171
  <code></code>
172
  </div>
173
  <div class="modal-footer">
174
- <a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat"><?php _e('Close', 'final-tiles-grid-gallery-lite')?></a>
175
  </div>
176
  </div>
177
 
1
+ <?php if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(esc_html_e('You are not allowed to call this page directly.', 'final-tiles-grid-gallery-lite')); } ?>
2
 
3
  <?php $ftg_subtitle = "Dashboard" ?>
4
 
7
  ?>
8
 
9
  <div class="bd wrap">
10
+ <h1 class="wp-heading-inline"><?php echo esc_html('Final Tiles Gallery') ?> <small><?php echo FTGVERSION . " " . FTG_PLAN ?></small></h1>
11
  <h2 class="ftg-subtitle"><?php _e('Galleries','final-tiles-grid-gallery-lite') ?></h2>
12
  <hr class="wp-header-end">
13
  <?php if(count($galleries) == 0) : ?>
14
  <div class="row ">
15
  <div class="col s9">
16
  <div class="card-panel light-green lighten-4">
17
+ <h5 class="cyan-text text-darken-3"><?php esc_html_e('Welcome to Final Tiles Grid Gallery!', 'final-tiles-grid-gallery-lite')?></h5>
18
  <p>
19
+ <?php esc_html_e('Create your first awesome gallery, click', 'final-tiles-grid-gallery-lite')?> <a href="<?php echo admin_url('admin.php?page=ftg-add-gallery'); ?>"><?php esc_html_e('here', 'final-tiles-grid-gallery-lite')?></a>.
20
  </p>
21
  </div>
22
  </div>
24
  <?php if ( ftg_fs()->is_not_paying()) : ?>
25
  <ul class="collapsible gallery-actions">
26
  <li class="active">
27
+ <div class="collapsible-header"><?php esc_html_e('Upgrade', 'final-tiles-grid-gallery-lite') ?>: <?php esc_html_e('unlock features', 'final-tiles-grid-gallery-lite') ?></div>
28
  <div class="collapsible-body">
29
  <div class="ftg-upsell">
30
+ <a href="<?php echo ftg_fs()->get_upgrade_url() ?>"><i class="fa fa-hand-o-right"></i> <?php esc_html_e('Upgrade', 'final-tiles-grid-gallery-lite') ?></a>
31
  </div>
32
+ <p><?php esc_html_e('or save 30% purchasing the','final-tiles-grid-gallery-lite'); ?> <strong><?php esc_html_e('BUNDLE','final-tiles-grid-gallery-lite'); ?></strong>:</p>
33
  <div class="ftg-upsell">
34
  <a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
35
  <i class="fa fa-star"></i>
36
+ Bundle: 30% <?php esc_html_e('discount', 'final-tiles-grid-gallery-lite') ?></a>
37
  </div>
38
  <p class="upsell-info">
39
+ <?php esc_html_e('GET 3 plugins', 'final-tiles-grid-gallery-lite') ?>: <?php echo esc_html('Final Tiles Gallery Ultimate + EverlightBox + PostSnippet'); ?>
40
  </p>
41
  </div>
42
  </li>
54
  <thead>
55
  <tr>
56
  <td scope="col" class="manage-column column-title column-primary">
57
+ <?php esc_html_e('Title', 'final-tiles-grid-gallery-lite') ?>
58
  </td>
59
  <td scope="col" class="manage-column column-title column-primary">
60
+ <?php esc_html_e('Description', 'final-tiles-grid-gallery-lite') ?>
61
  </td>
62
  <td scope="col" class="manage-column column-title column-primary">
63
+ <?php esc_html_e('type', 'final-tiles-grid-gallery-lite') ?>
64
  </td>
65
  <td scope="col" class="manage-column column-title column-primary">
66
+ <?php esc_html_e('Shortcode', 'final-tiles-grid-gallery-lite') ?>
67
  </td>
68
  </thead>
69
 
70
  <tbody id="the-list">
71
  <?php foreach($galleries as $gallery) : ?>
72
+ <tr id="gallery-<?php echo absint($gallery->Id); ?>" class="iedit author-self level-0 post-10 type-post status-publish format-standard hentry">
73
  <td class="title column-title has-row-actions column-primary page-title" data-colname="Title">
74
  <strong>
75
+ <a href="<?php echo admin_url('?page=ftg-lite-gallery-admin&id='.absint($gallery->Id)); ?>"><?php echo esc_html($gallery->name); ?></a>
76
  </strong>
77
  <div class="row-actions">
78
  <span class="edit">
79
+ <a href="<?php echo admin_url('?page=ftg-lite-gallery-admin&id=' . absint( $gallery->Id ) ); ?>" aria-label="Edit"><?php esc_html_e("Edit","final-tiles-grid-gallery-lite") ?></a> |
80
  </span>
81
  <span class="edit">
82
+ <a href="#" class="clone-gallery" data-gid="<?php echo absint($gallery->Id); ?>" aria-label="Clone"><?php esc_html_e("Clone gallery","final-tiles-grid-gallery-lite") ?></a> |
83
  </span>
84
  <span class="trash">
85
+ <a href="#delete-gallery-modal" data-gid="<?php echo absint($gallery->Id); ?>" class="modal-trigger submitdelete"><?php esc_html_e("Delete gallery", "final-tiles-grid-gallery-lite") ?></a>
86
  </span>
87
  </div>
88
  </td>
89
  <td class="title column-title has-row-actions column-primary">
90
+ <?php echo wp_kses_post($gallery->description); ?>
91
  </td>
92
  <td class="title column-title has-row-actions column-primary">
93
+ <?php echo wp_kses_post($gallery->source); ?>
94
  </td>
95
  <td class="title column-title has-row-actions column-primary">
96
+ <input readonly type="text" value="[FinalTilesGallery id='<?php echo absint($gallery->Id); ?>']" style="height:30px;">
97
  <a href="#" title="Click to copy shortcode" class="copy-ftg-shortcode button button-primary dashicons dashicons-format-gallery" style="width:40px;"></a><span style="margin-left:15px;"></span>
98
  </td>
99
  </tr>
105
  <?php if (ftg_fs()->is_not_paying() ) : ?>
106
  <ul class="collapsible gallery-actions">
107
  <li class="active">
108
+ <div class="collapsible-header"><?php _e('Upgrade', 'final-tiles-grid-gallery-lite') ?>: <?php esc_html_e('unlock features', 'final-tiles-grid-gallery-lite') ?></div>
109
  <div class="collapsible-body">
110
  <div class="ftg-upsell">
111
+ <a href="<?php echo ftg_fs()->get_upgrade_url() ?>"><i class="fa fa-hand-o-right"></i> <?php esc_html_e('Upgrade', 'final-tiles-grid-gallery-lite') ?></a>
112
  </div>
113
+ <p><?php esc_html_e('or save 30% purchasing the','final-tiles-grid-gallery-lite'); ?> <strong><?php esc_html_e('BUNDLE','final-tiles-grid-gallery-lite'); ?></strong>:</p>
114
  <div class="ftg-upsell">
115
  <a target="_blank" href="https://www.final-tiles-gallery.com/wordpress/bundle">
116
  <i class="fa fa-star"></i>
117
+ <?php esc_html_e('Bundle: 30%','final-tiles-grid-gallery-lite'); ?> <?php esc_html_e('discount', 'final-tiles-grid-gallery-lite') ?></a>
118
  </div>
119
  <p class="upsell-info">
120
+ <?php esc_html_e('GET 3 plugins', 'final-tiles-grid-gallery-lite') ?>: Final Tiles Gallery Ultimate + EverlightBox + PostSnippet
121
  </p>
122
  </div>
123
  </li>
127
  <ul class="collapsible gallery-actions">
128
  <li class="active">
129
  <div class="collapsible-header">
130
+ <?php esc_html_e('Redeem your coupon', 'final-tiles-grid-gallery-lite')?>
131
  </div>
132
  <div class="collapsible-body">
133
+ <a href="<?php echo admin_url('admin.php?page=ftg-add-gallery'); ?>" class="button components-button is-primary"><?php esc_html_e('Add gallery', 'final-tiles-grid-gallery-lite')?></a>
134
+ <a href="#" class="no-thank-you"><?php esc_html_e('No, thank you', 'final-tiles-grid-gallery-lite') ?></a>
135
  </div>
136
  </li>
137
  </ul>
139
  <ul class="collapsible gallery-actions">
140
  <li class="active">
141
  <div class="collapsible-header">
142
+ <?php esc_html_e('Galleries', 'final-tiles-grid-gallery-lite')?>
143
  </div>
144
  <div class="collapsible-body">
145
+ <a href="<?php echo admin_url('admin.php?page=ftg-add-gallery');?>" class="button components-button is-primary"><?php esc_html_e('Add gallery', 'final-tiles-grid-gallery-lite')?></a>
146
  </div>
147
  </li>
148
  </ul>
155
  <!-- Delete gallery modal -->
156
  <div id="delete-gallery-modal" class="modal">
157
  <div class="modal-content">
158
+ <h4><?php esc_html_e('Confirmation', 'final-tiles-grid-gallery-lite')?></h4>
159
+ <p><?php esc_html_e('Do you really want to delete the gallery', 'final-tiles-grid-gallery-lite')?> <span></span> ?</p>
160
  </div>
161
  <div class="modal-footer">
162
+ <a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat yes"><?php esc_html_e('Yes', 'final-tiles-grid-gallery-lite')?></a>
163
+ <a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat"><?php esc_html_e('No', 'final-tiles-grid-gallery-lite')?></a>
164
  </div>
165
  </div>
166
  <!-- Shortcode gallery modal -->
167
  <div id="shortcode-gallery-modal" class="modal">
168
  <div class="modal-content">
169
  <h4></h4>
170
+ <p><?php esc_html_e('Copy and paste the following shortcode inside a post, page or widget:', 'final-tiles-grid-gallery-lite')?></p>
171
  <code></code>
172
  </div>
173
  <div class="modal-footer">
174
+ <a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat"><?php esc_html_e('Close', 'final-tiles-grid-gallery-lite')?></a>
175
  </div>
176
  </div>
177
 
lib/db-class.php CHANGED
@@ -188,19 +188,19 @@ if(! class_exists('FinalTilesDB'))
188
  $image->group = "";
189
 
190
  $data = array( 'gid' => $gid,
191
- 'imagePath' => $image->imagePath,
192
- 'description' => isset($image->description) ? $image->description : "",
193
- 'imageId' => $image->imageId,
194
- 'group' => $image->group,
195
- 'link' => $image->link,
196
- 'alt' => $image->alt,
197
- 'target' => $image->target,
198
- 'title' => isset($image->title) ? $image->title : "", 'sortOrder' => 0 );
199
 
200
  if(isset($image->filters))
201
- $data['filters'] = $image->filters;
202
 
203
- $data['type'] = isset($image->type) ? $image->type : 'image';
204
 
205
  $imageAdded = $wpdb->insert( $tb_i, $data );
206
  $id = $wpdb->insert_id;
188
  $image->group = "";
189
 
190
  $data = array( 'gid' => $gid,
191
+ 'imagePath' => esc_url_raw($image->imagePath),
192
+ 'description' => isset($image->description) ? sanitize_text_field($image->description) : "",
193
+ 'imageId' => absint($image->imageId),
194
+ 'group' => sanitize_text_field($image->group),
195
+ 'link' => esc_url_raw($image->link),
196
+ 'alt' => sanitize_text_field($image->alt),
197
+ 'target' => sanitize_text_field($image->target),
198
+ 'title' => isset($image->title) ? sanitize_text_field($image->title ): "", 'sortOrder' => 0 );
199
 
200
  if(isset($image->filters))
201
+ $data['filters'] = sanitize_text_field($image->filters);
202
 
203
+ $data['type'] = isset($image->type) ? sanitize_text_field($image->type): 'image';
204
 
205
  $imageAdded = $wpdb->insert( $tb_i, $data );
206
  $id = $wpdb->insert_id;
lib/gallery-class.php CHANGED
@@ -117,7 +117,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
117
  private function getLink( $image )
118
  {
119
  if ( !empty($image->link) ) {
120
- return "href='" . $image->link . "'";
121
  }
122
  $l = ( wp_is_mobile() ? $this->gallery->mobileLightbox : $this->gallery->lightbox );
123
  $l = trim( $l );
@@ -126,13 +126,13 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
126
  }
127
  switch ( trim( $l ) ) {
128
  case 'attachment-page':
129
- return "href='" . $image->page . "'";
130
  case '':
131
  case 'nolink':
132
  return '';
133
  }
134
  $url = ( isset( $image->url ) ? $image->url : "" );
135
- return "href='" . $url . "'";
136
  }
137
 
138
  private function getTarget( $image )
@@ -141,7 +141,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
141
  return '';
142
  }
143
  if ( !empty($image->target) ) {
144
- return "target='" . $image->target . "'";
145
  }
146
  if ( $this->gallery->blank == 'T' ) {
147
  return "target='_blank'";
@@ -279,7 +279,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
279
  if ( $this->gallery->hoverRotation == 0 ) {
280
  return "";
281
  }
282
- return $prefix . "rotate(" . $this->gallery->hoverRotation . "deg) ";
283
  }
284
 
285
  public function cssRuleZoom( $prefix )
@@ -287,7 +287,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
287
  if ( $this->gallery->hoverZoom == 100 || $this->gallery->hoverZoom == 0 ) {
288
  return "";
289
  }
290
- return $prefix . "scale(" . $this->gallery->hoverZoom / 100 . ") ";
291
  }
292
 
293
  private function hasCaptionIcon()
@@ -306,7 +306,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
306
  public function render()
307
  {
308
  if ( !$this->loaded ) {
309
- return "<pre style='font-size:10px'>Final Tiles Gallery id=" . $this->id . " does not exist</pre>";
310
  }
311
  $rid = $this->id;
312
  $gallery = $this->gallery;
@@ -326,60 +326,60 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
326
  $captionHorizontal = null;
327
  $html .= "<style>\n";
328
  if ( $gallery->borderSize ) {
329
- $html .= "#ftg-{$this->id}{$rid} .tile { border: " . $gallery->borderSize . "px solid " . $gallery->borderColor . "; }\n";
330
  }
331
  if ( $gallery->captionIconColor ) {
332
- $html .= "#ftg-{$this->id}{$rid} .tile .icon { color:" . $gallery->captionIconColor . "; }\n";
333
  }
334
  if ( $gallery->loadingBarColor ) {
335
- $html .= "#ftg-{$this->id}{$rid} .ftg-items .loading-bar i { background:" . $gallery->loadingBarColor . "; }\n";
336
  }
337
  if ( $gallery->loadingBarBackgroundColor ) {
338
- $html .= "#ftg-{$this->id}{$rid} .ftg-items .loading-bar { background:" . $gallery->loadingBarBackgroundColor . "; }\n";
339
  }
340
 
341
  if ( $gallery->captionIconSize ) {
342
- $html .= "#ftg-{$this->id}{$rid} .tile .icon { font-size:" . $gallery->captionIconSize . "px; }\n";
343
- $html .= "#ftg-{$this->id}{$rid} .tile .icon { margin: -" . $gallery->captionIconSize / 2 . "px 0 0 -" . $gallery->captionIconSize / 2 . "px; }\n";
344
  }
345
 
346
  if ( $gallery->captionFontSize ) {
347
- $html .= "#ftg-{$this->id}{$rid} .tile .caption-block .text-wrapper span.text { font-size:" . $gallery->captionFontSize . "px; }\n";
348
  }
349
  if ( $gallery->titleFontSize ) {
350
- $html .= "#ftg-{$this->id}{$rid} .tile .caption-block .text-wrapper span.title { font-size:" . $gallery->titleFontSize . "px; }\n";
351
  }
352
  if ( $gallery->backgroundColor ) {
353
- $html .= "#ftg-{$this->id}{$rid} .tile { background-color: " . $gallery->backgroundColor . "; }\n";
354
  }
355
 
356
  if ( $gallery->captionColor ) {
357
- $html .= "#ftg-{$this->id}{$rid} .tile .caption-block .text-wrapper span.text { color: " . $gallery->captionColor . "; }\n";
358
- $html .= "#ftg-{$this->id}{$rid} .tile .caption-block .text-wrapper span.title { color: " . $gallery->captionColor . "; }\n";
359
  }
360
 
361
  if ( $gallery->socialIconColor ) {
362
- $html .= "#ftg-{$this->id}{$rid} .tile .ftg-social a { color: " . $gallery->socialIconColor . "; }\n";
363
  }
364
  if ( $gallery->borderRadius ) {
365
- $html .= "#ftg-{$this->id}{$rid} .tile { border-radius: " . $gallery->borderRadius . "px; }\n";
366
  }
367
  if ( $gallery->shadowSize ) {
368
- $html .= "#ftg-{$this->id}{$rid} .tile { box-shadow: " . $gallery->shadowColor . " 0px 0px " . $gallery->shadowSize . "px; }\n";
369
  }
370
  if ( $gallery->captionEasing ) {
371
- $html .= "#ftg-{$this->id}{$rid} .tile .caption-block { transition-timing-function:" . $gallery->captionEasing . "; }\n";
372
  }
373
  if ( $gallery->captionEffectDuration ) {
374
- $html .= "#ftg-{$this->id}{$rid} .tile .caption-block { transition-duration:" . $gallery->captionEffectDuration / 1000 . "s; }\n";
375
  }
376
- $html .= "#ftg-{$this->id}{$rid} .tile .tile-inner:before { background-color: {$gallery->captionBackgroundColor}; }\n";
377
- $html .= "#ftg-{$this->id}{$rid} .tile .tile-inner:before { background-color: rgba({$bgCaption[0]}, {$bgCaption[1]}, {$bgCaption[2]}, " . $gallery->captionOpacity / 100 . "); }\n";
378
  if ( $gallery->captionBehavior == "flip-h" ) {
379
- $html .= "#ftg-{$this->id}{$rid} .tile .tile-inner .caption-block { background-color: rgba({$bgCaption[0]}, {$bgCaption[1]}, {$bgCaption[2]}, " . $gallery->captionOpacity / 100 . "); }\n";
380
  }
381
  if ( $gallery->captionFrame == 'T' && $gallery->captionFrameColor ) {
382
- $html .= "#ftg-{$this->id}{$rid} .tile .caption-block.frame .text { border-color: " . $gallery->captionFrameColor . "; }\n";
383
  }
384
  $loadedEasing = $gallery->loadedEasing;
385
  if ( $gallery->loadedEasing == "ease-out-back" ) {
@@ -396,7 +396,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
396
  }
397
 
398
  if ( $gallery->hoverZoom != 100 || $gallery->hoverRotation != 0 ) {
399
- $html .= "#ftg-{$this->id}{$rid} .tile:hover img {\n";
400
  foreach ( $this->cssPrefixes as $prefix ) {
401
  $html .= "\t" . $prefix . "transform: " . $this->cssRuleRotation( $prefix ) . $this->cssRuleZoom( $prefix ) . ";\n";
402
  }
@@ -405,12 +405,12 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
405
 
406
 
407
  if ( $gallery->hoverIconRotation == 'T' ) {
408
- $html .= "#ftg-{$this->id}{$rid} .tile .icon {\n";
409
  foreach ( $this->cssPrefixes as $prefix ) {
410
  $html .= "\t" . $prefix . "transition: all .5s;\n";
411
  }
412
  $html .= "}\n";
413
- $html .= "#ftg-{$this->id}{$rid} .tile:hover .icon {\n";
414
  foreach ( $this->cssPrefixes as $prefix ) {
415
  $html .= "\t" . $prefix . "transform: rotate(360deg);\n";
416
  }
@@ -426,17 +426,17 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
426
  if ( $gallery->captionMobileBehavior == "desktop" ) {
427
  $gallery->captionMobileBehavior = $gallery->captionBehavior;
428
  }
429
- $captionBehavior = ( wp_is_mobile() ? $gallery->captionMobileBehavior : $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-" . $gallery->socialIconPosition . " social-icons-" . $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-{$gallery->captionVerticalAlignment} caption-{$gallery->captionHorizontalAlignment}' id='ftg-{$this->id}{$rid}' style='width:{$gallery->width}'>\n";
440
  if ( strlen( $gallery->filters ) ) {
441
  }
442
  $html .= "<div class='ftg-items'>\n";
@@ -448,56 +448,56 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
448
  $html .= $this->images_markup();
449
  $html .= "</div>\n";
450
  if ( $gallery->support == 'T' ) {
451
- $html .= "<div class='support-text'><a target='_blank' href='https://www.final-tiles-gallery.com/wordpress'>" . $gallery->supportText . "</a></div>";
452
  }
453
  $html .= "</div>\n";
454
  $html .= "<script type='text/javascript'>\n";
455
  if ( $lightbox != 'lightgallery' ) {
456
- $html .= "jQuery('#ftg-{$this->id}{$rid} img.item').removeAttr('src');\n";
457
  }
458
  $html .= "jQuery(document).ready(function () {\n";
459
  $html .= "setTimeout(function () {\n";
460
- $html .= "\tjQuery('#ftg-{$this->id}{$rid}').finalTilesGallery({\n";
461
- $html .= "\t\tminTileWidth: {$gallery->minTileWidth},\n";
462
  if ( strlen( $gallery->script ) ) {
463
- $html .= "\t\tonComplete: function () { " . stripslashes( $gallery->script ) . "},\n";
464
  }
465
- $html .= "\t\tmargin: {$gallery->margin},\n";
466
  $jsLoadMethod = $gallery->loadMethod;
467
  if ( $gallery->loadMethod == 'trueLazy' ) {
468
  $jsLoadMethod = 'lazy';
469
  }
470
- $html .= "\t\tloadMethod: '{$jsLoadMethod}',\n";
471
 
472
  if ( $gallery->ajaxLoading == 'T' ) {
473
  $html .= "\t\tautoLoadURL: '" . admin_url( 'admin-ajax.php' ) . "',\n";
474
- $html .= "\t\tpageSize: {$gallery->tilesPerPage},\n";
475
  }
476
 
477
  $html .= "\t\tnonce: '" . wp_create_nonce( 'finaltilesgallery' ) . "',\n";
478
- $html .= "\t\tgalleryId: '{$this->id}',\n";
479
  $html .= "\t\tsetupFilters: " . (( $gallery->filterClick == 'F' ? "true" : "false" )) . ",\n";
480
- $html .= "\t\tlayout: '{$gallery->layout}',\n";
481
  $html .= "\t\tdebug: " . (( empty($_GET['debug']) ? "false" : "true" )) . ",\n";
482
- $html .= "\t\tgridSize: {$gallery->gridCellSize},\n";
483
- $html .= "\t\tdisableGridSizeBelow: {$gallery->gridCellSizeDisabledBelow},\n";
484
  $html .= "\t\tallowEnlargement: " . (( $gallery->enlargeImages == "T" ? "true" : "false" )) . ",\n";
485
 
486
  if ( $gallery->layout == "columns" ) {
487
- $html .= "\t\tcolumns: [\n" . "\t\t\t[4000, {$gallery->columns}],\n" . "\t\t\t[1024, {$gallery->columnsTabletLandscape}],\n" . "\t\t\t[800, {$gallery->columnsTabletPortrait}],\n" . "\t\t\t[480, {$gallery->columnsPhoneLandscape}],\n" . "\t\t\t[320, {$gallery->columnsPhonePortrait}]\n" . "\t\t],";
488
  } else {
489
- $html .= "\t\timageSizeFactor: [\n" . "\t\t\t [4000, " . $gallery->imageSizeFactor / 100 . "]\n" . "\t\t\t,[1024, " . $gallery->imageSizeFactorTabletLandscape / 100 . "]\n" . "\t\t\t,[768, " . $gallery->imageSizeFactorTabletPortrait / 100 . "]\n" . "\t\t\t,[640, " . $gallery->imageSizeFactorPhoneLandscape / 100 . "]\n" . "\t\t\t,[320, " . $gallery->imageSizeFactorPhonePortrait / 100 . "]\n";
490
  foreach ( explode( "|", $gallery->imageSizeFactorCustom ) as $isf ) {
491
  $_ = explode( ",", $isf );
492
  if ( !empty($_[0]) ) {
493
- $html .= "\t\t\t,[" . $_[0] . ", " . $_[1] / 100 . "]\n";
494
  }
495
  }
496
  $html .= "\t\t],\n";
497
  }
498
 
499
  if ( isset( $scrollEffect ) ) {
500
- $html .= "\t\tscrollEffect: '" . $gallery->scrollEffect . "',\n";
501
  }
502
  $html .= "\t\tselectedFilter: '" . $this->slugify( $gallery->defaultFilter ) . "'\n";
503
  $html .= "\t});\n";
@@ -506,10 +506,10 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
506
 
507
  if ( $gallery->disableLightboxGroups == 'T' ) {
508
  if ( $lightbox == "prettyphoto" || $lightbox == "fancybox" || $lightbox == "swipebox" || $lightbox == "lightbox2" ) {
509
- $html .= "jQuery('#ftg-{$this->id}{$rid} .tile a.ftg-lightbox').each(function (i) { jQuery(this).attr('rel', 'no-group-' + i);});\n";
510
  }
511
  if ( $lightbox == "lightbox2" ) {
512
- $html .= "jQuery('#ftg-{$this->id}{$rid} .tile a.ftg-lightbox').each(function (i) { jQuery(this).attr('data-lightbox', 'no-group-' + i);});\n";
513
  }
514
  }
515
 
@@ -521,42 +521,42 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
521
  $html .= "\t\t});\n";
522
  }*/
523
  $html .= "\t\tvar rel = '';\n";
524
- $html .= "\t\tjQuery('#ftg-{$this->id}{$rid} .ftg-lightbox').click(function (e) {\n";
525
  $html .= "\t\t\trel = jQuery(this).attr('rel');\n";
526
- $html .= "\t\t\tjQuery('#ftg-{$this->id}{$rid} .ftg-current').removeClass('ftg-current');\n";
527
- $html .= "\t\t\tjQuery('#ftg-{$this->id}{$rid} [rel=\"'+rel+'\"]').addClass('ftg-current');\n";
528
  $html .= "\t\t});\n";
529
  $html .= "\t})();\n";
530
  $lightbox_options = ( wp_is_mobile() ? $gallery->lightboxOptionsMobile : $gallery->lightboxOptions );
531
  switch ( $lightbox ) {
532
  case 'magnific':
533
- $html .= "\t\tjQuery('#ftg-{$this->id}{$rid}').magnificPopup({type:'image', zoom: {\n";
534
  $html .= "\t\t\tenabled: true, duration: 300, easing: 'ease-in-out' },\n";
535
  $html .= "\t\t\timage: { titleSrc: 'data-title' }, gallery: { enabled: " . (( $gallery->disableLightboxGroups == 'T' ? "false" : "true" )) . " }, delegate: '.tile:not(.ftg-filter-hidden-tile) .ftg-lightbox.ftg-current',\n";
536
  $html .= stripslashes( $lightbox_options );
537
  $html .= "\t\t});\n";
538
- $html .= "\t\tjQuery('#ftg-{$this->id}{$rid} .ftg-lightbox-iframe').magnificPopup({type:'iframe',";
539
  $html .= stripslashes( $lightbox_options );
540
  $html .= "});\n";
541
  break;
542
  case 'prettyphoto':
543
- $html .= "\t\tjQuery('#ftg-{$this->id}{$rid} .tile a.ftg-lightbox').prettyPhoto({";
544
  $html .= "});\n";
545
  break;
546
  case 'colorbox':
547
- $html .= "\t\tjQuery('#ftg-{$this->id}{$rid} .tile a.ftg-lightbox').colorbox({";
548
- $html .= "rel: '" . (( $gallery->disableLightboxGroups == 'T' ? "nofollow" : $this->id )) . "',";
549
  $html .= "title: function () { return jQuery(this).data('title'); }});\n";
550
- $html .= "\t\tjQuery('#ftg-{$this->id}{$rid} .tile a.ftg-lightbox-iframe').colorbox({ iframe:true, width:'75%', height:'75%' });\n";
551
  break;
552
  case 'fancybox':
553
- $html .= "\t\tjQuery('#ftg-{$this->id}{$rid} .tile a.ftg-lightbox').fancybox();\n";
554
  break;
555
  case 'swipebox':
556
- $html .= "\t\tjQuery('#ftg-{$this->id}{$rid} .tile a.ftg-lightbox').swipebox({ removeBarsOnMobile: false});\n";
557
  break;
558
  case 'lightgallery':
559
- $html .= "\t\tjQuery('#ftg-{$this->id}{$rid}').lightGallery({\n\t\t\tselector: '.tile:not(.ftg-hidden) .ftg-lightbox',\n";
560
 
561
  if ( $gallery->disableLightboxGroups == 'T' ) {
562
  $html .= "\t\t\tthumbnail: false,\n";
@@ -577,7 +577,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
577
  }
578
  $html .= "\n";
579
  $html .= "\t});\n";
580
- $html .= "\t}, " . $gallery->delay . ");\n";
581
  $html .= "\t});\n";
582
  $html .= "</script>";
583
  $html .= stripslashes( $this->gallery->afterGalleryText );
@@ -599,7 +599,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
599
  $gallery = $this->gallery;
600
  $current_filter = ( isset( $_GET['ftg-set'] ) ? $_GET['ftg-set'] : null );
601
  $html = "";
602
- $lightbox = ( wp_is_mobile() ? ( $gallery->mobileLightbox == "desktop" ? $gallery->lightbox : $gallery->mobileLightbox ) : $gallery->lightbox );
603
  $groups = array();
604
  foreach ( $this->images as $image ) {
605
  $img_filters = array_map( "FinalTilesGallery::slugify", explode( '|', $image->filters ) );
@@ -618,16 +618,16 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
618
  if ( $lightbox == 'lightgallery' && $this->useCaptions() ) {
619
  $title = 'data-sub-html';
620
  }
621
- $rel = ( $lightbox == "prettyphoto" ? "prettyPhoto[ftg-{$this->id}{$rid}]" : "ftg-{$this->id}{$rid}" );
622
  if ( $gallery->rel ) {
623
  $rel = $gallery->rel;
624
  }
625
 
626
  if ( isset( $image->group ) && !empty($image->group) ) {
627
- $rel = ( $lightbox == "prettyphoto" ? "prettyPhoto[{$image->group}]" : $image->group );
628
  $groups[$image->group] = 1;
629
  } else {
630
- $groups["ftg-{$this->id}{$rid}"] = 1;
631
  }
632
 
633
  if ( wp_is_mobile() && $gallery->mobileLightbox == "lightbox2" && empty($image->link) ) {
@@ -641,11 +641,11 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
641
  $image->filters = "";
642
  }
643
  $hiddenClass = ( isset( $image->hidden ) && $image->hidden == "T" ? "ftg-hidden-tile" : "" );
644
- $html .= "<div {$data_keep_aspect_ratio} class='tile ftg-preload {$hiddenClass} " . $this->getImageFilters( $image ) . "'>\n";
645
 
646
  if ( property_exists( $image, "type" ) && $image->type == "video" ) {
647
  $html .= "<div class='fitvidsignore'>";
648
- $html .= $image->imagePath;
649
  $html .= "</div>";
650
  } else {
651
  //$src = $gallery->sequentialImageLoading == "T" ? "" : $image->imagePath;
@@ -660,16 +660,16 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
660
  }
661
  $title_text = htmlspecialchars( $description, ENT_QUOTES );
662
  if ( $lightbox == 'lightgallery' && $this->useCaptions() ) {
663
- $title_text = "<span class='title'>{$image->title}</span><span class='text'>{$image->description}</span>";
664
  }
665
  $html .= "<a {$title}=\"" . $title_text . "\" ";
666
- $html .= ( $lightbox == "lightbox2" && empty($image->link) ? "data-lightbox='{$rel}'" : "" );
667
- $html .= " rel='{$rel}' ";
668
  $html .= $this->getTarget( $image );
669
  $html .= " class=' tile-inner " . $gallery->aClass . " ";
670
  $html .= $this->getLightboxClass( $image ) . "' ";
671
  $html .= $this->getLink( $image ) . " ";
672
- $html .= ( $lightbox == "lightgallery" ? "data-download-url='{$image->original}'" : '' );
673
  $html .= ">\n";
674
  if ( !isset( $image->width ) ) {
675
  $image->width = "auto";
@@ -680,7 +680,7 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
680
  if ( !isset( $image->alt ) || empty($image->alt) ) {
681
  $image->alt = $description;
682
  }
683
- $html .= "<img alt='{$image->alt}' class='item skip-lazy' data-class='item' data-ftg-source='{$image->imagePath}' src='{$src}' width='{$image->width}' height='{$image->height}' />\n";
684
  if ( $gallery->captionPosition == 'inside' ) {
685
 
686
  if ( !(empty($image->description) && empty($image->title)) && $this->useCaptions() || $gallery->captionEmpty == "show" || $this->hasCaptionIcon() ) {
@@ -692,10 +692,10 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
692
  if ( $gallery->source == "images" && $this->useCaptions() ) {
693
  $html .= "\t<div class='text-wrapper'>\n";
694
  if ( !empty($image->title) && $gallery->wp_field_title != "none" ) {
695
- $html .= "<span class='title'>" . $image->title . "</span>\n";
696
  }
697
  if ( !empty($image->description) && $gallery->wp_field_caption != "none" ) {
698
- $html .= "\t<span class='text'>{$image->description}</span>\n";
699
  }
700
  $html .= "\t</div>\n";
701
  }
@@ -703,11 +703,11 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
703
 
704
  if ( ($gallery->source == "posts" || $gallery->source == "woocommerce") && $this->useCaptions() ) {
705
  $html .= "\t<div class='text-wrapper'>\n";
706
- $html .= "\t\t<span class='text'>{$image->description}</span>\n";
707
 
708
  if ( $gallery->source == "woocommerce" ) {
709
- $html .= "<div class='woo' data-href='" . get_site_url() . "/cart/?add-to-cart=" . $image->postID . "'>";
710
- $html .= "\t<span class='price'>" . $image->price . get_woocommerce_currency_symbol() . "</span>\n";
711
  $html .= "\t<span> <i class='fa fa-shopping-cart add-to-cart'></i></span>";
712
  $html .= "</div>";
713
  }
@@ -728,22 +728,22 @@ if ( !class_exists( "FinalTilesGallery" ) ) {
728
  if ( $gallery->source == "images" ) {
729
  $html .= "\t<span>\n";
730
  if ( !empty($image->title) && $this->useCaptions() ) {
731
- $html .= "<span class='title'>" . $image->title . "</span>\n";
732
  }
733
  if ( !empty($image->description) && $this->useCaptions() ) {
734
- $html .= "\t<span class='text'>{$image->description}</span>\n";
735
  }
736
  $html .= "\t</span>\n";
737
  }
738
 
739
  if ( ($gallery->source == "posts" || $gallery->source == "woocommerce") && $this->useCaptions() ) {
740
- $html .= "\t<span class='text'>{$image->description}</span>\n";
741
  }
742
 
743
  if ( $gallery->source == "woocommerce" ) {
744
  $html .= "<div class='woo'>";
745
- $html .= "\t<span class='price'>" . $image->price . get_woocommerce_currency_symbol() . "</span>\n";
746
- $html .= "\t<span href='" . get_site_url() . "/cart/?add-to-cart=" . $image->postID . "'><i class='fa fa-shopping-cart add-to-cart'></i></span>";
747
  $html .= "</div>";
748
  }
749
 
117
  private function getLink( $image )
118
  {
119
  if ( !empty($image->link) ) {
120
+ return "href='" . esc_url( $image->link ) . "'";
121
  }
122
  $l = ( wp_is_mobile() ? $this->gallery->mobileLightbox : $this->gallery->lightbox );
123
  $l = trim( $l );
126
  }
127
  switch ( trim( $l ) ) {
128
  case 'attachment-page':
129
+ return "href='" . esc_url( $image->page ) . "'";
130
  case '':
131
  case 'nolink':
132
  return '';
133
  }
134
  $url = ( isset( $image->url ) ? $image->url : "" );
135
+ return "href='" . esc_url( $url ) . "'";
136
  }
137
 
138
  private function getTarget( $image )
141
  return '';
142
  }
143
  if ( !empty($image->target) ) {
144
+ return "target='" . esc_attr( $image->target ) . "'";
145
  }
146
  if ( $this->gallery->blank == 'T' ) {
147
  return "target='_blank'";
279
  if ( $this->gallery->hoverRotation == 0 ) {
280
  return "";
281
  }
282
+ return $prefix . "rotate(" . absint( $this->gallery->hoverRotation ) . "deg) ";
283
  }
284
 
285
  public function cssRuleZoom( $prefix )
287
  if ( $this->gallery->hoverZoom == 100 || $this->gallery->hoverZoom == 0 ) {
288
  return "";
289
  }
290
+ return $prefix . "scale(" . absint( $this->gallery->hoverZoom ) / 100 . ") ";
291
  }
292
 
293
  private function hasCaptionIcon()
306
  public function render()
307
  {
308
  if ( !$this->loaded ) {
309
+ return "<pre style='font-size:10px'>Final Tiles Gallery id=" . esc_attr( $this->id ) . " does not exist</pre>";
310
  }
311
  $rid = $this->id;
312
  $gallery = $this->gallery;
326
  $captionHorizontal = null;
327
  $html .= "<style>\n";
328
  if ( $gallery->borderSize ) {
329
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile { border: " . absint( $gallery->borderSize ) . "px solid " . esc_attr( $gallery->borderColor ) . "; }\n";
330
  }
331
  if ( $gallery->captionIconColor ) {
332
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .icon { color:" . esc_attr( $gallery->captionIconColor ) . "; }\n";
333
  }
334
  if ( $gallery->loadingBarColor ) {
335
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .ftg-items .loading-bar i { background:" . esc_attr( $gallery->loadingBarColor ) . "; }\n";
336
  }
337
  if ( $gallery->loadingBarBackgroundColor ) {
338
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .ftg-items .loading-bar { background:" . esc_attr( $gallery->loadingBarBackgroundColor ) . "; }\n";
339
  }
340
 
341
  if ( $gallery->captionIconSize ) {
342
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .icon { font-size:" . absint( $gallery->captionIconSize ) . "px; }\n";
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
  }
355
 
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 ) {
362
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .ftg-social a { color: " . esc_attr( $gallery->socialIconColor ) . "; }\n";
363
  }
364
  if ( $gallery->borderRadius ) {
365
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile { border-radius: " . absint( $gallery->borderRadius ) . "px; }\n";
366
  }
367
  if ( $gallery->shadowSize ) {
368
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile { box-shadow: " . esc_attr( $gallery->shadowColor ) . " 0px 0px " . absint( $gallery->shadowSize ) . "px; }\n";
369
  }
370
  if ( $gallery->captionEasing ) {
371
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block { transition-timing-function:" . $gallery->captionEasing . "; }\n";
372
  }
373
  if ( $gallery->captionEffectDuration ) {
374
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .caption-block { transition-duration:" . absint( $gallery->captionEffectDuration ) / 1000 . "s; }\n";
375
  }
376
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .tile-inner:before { background-color: " . esc_attr( $gallery->captionBackgroundColor ) . "; }\n";
377
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .tile-inner:before { background-color: rgba({$bgCaption[0]}, {$bgCaption[1]}, {$bgCaption[2]}, " . absint( $gallery->captionOpacity ) / 100 . "); }\n";
378
  if ( $gallery->captionBehavior == "flip-h" ) {
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" ) {
396
  }
397
 
398
  if ( $gallery->hoverZoom != 100 || $gallery->hoverRotation != 0 ) {
399
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile:hover img {\n";
400
  foreach ( $this->cssPrefixes as $prefix ) {
401
  $html .= "\t" . $prefix . "transform: " . $this->cssRuleRotation( $prefix ) . $this->cssRuleZoom( $prefix ) . ";\n";
402
  }
405
 
406
 
407
  if ( $gallery->hoverIconRotation == 'T' ) {
408
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile .icon {\n";
409
  foreach ( $this->cssPrefixes as $prefix ) {
410
  $html .= "\t" . $prefix . "transition: all .5s;\n";
411
  }
412
  $html .= "}\n";
413
+ $html .= "#ftg-" . absint( $this->id . $rid ) . " .tile:hover .icon {\n";
414
  foreach ( $this->cssPrefixes as $prefix ) {
415
  $html .= "\t" . $prefix . "transform: rotate(360deg);\n";
416
  }
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";
448
  $html .= $this->images_markup();
449
  $html .= "</div>\n";
450
  if ( $gallery->support == 'T' ) {
451
+ $html .= "<div class='support-text'><a target='_blank' href='https://www.final-tiles-gallery.com/wordpress'>" . esc_html( $gallery->supportText ) . "</a></div>";
452
  }
453
  $html .= "</div>\n";
454
  $html .= "<script type='text/javascript'>\n";
455
  if ( $lightbox != 'lightgallery' ) {
456
+ $html .= "jQuery('#ftg-" . absint( $this->id . $rid ) . " img.item').removeAttr('src');\n";
457
  }
458
  $html .= "jQuery(document).ready(function () {\n";
459
  $html .= "setTimeout(function () {\n";
460
+ $html .= "\tjQuery('#ftg-" . absint( $this->id . $rid ) . "').finalTilesGallery({\n";
461
+ $html .= "\t\tminTileWidth: " . esc_attr( $gallery->minTileWidth ) . ",\n";
462
  if ( strlen( $gallery->script ) ) {
463
+ $html .= "\t\tonComplete: function () { " . stripslashes( strip_tags( $gallery->script ) ) . "},\n";
464
  }
465
+ $html .= "\t\tmargin: " . esc_attr( $gallery->margin ) . ",\n";
466
  $jsLoadMethod = $gallery->loadMethod;
467
  if ( $gallery->loadMethod == 'trueLazy' ) {
468
  $jsLoadMethod = 'lazy';
469
  }
470
+ $html .= "\t\tloadMethod: '" . esc_attr( $jsLoadMethod ) . "',\n";
471
 
472
  if ( $gallery->ajaxLoading == 'T' ) {
473
  $html .= "\t\tautoLoadURL: '" . admin_url( 'admin-ajax.php' ) . "',\n";
474
+ $html .= "\t\tpageSize: " . esc_attr( $gallery->tilesPerPage ) . ",\n";
475
  }
476
 
477
  $html .= "\t\tnonce: '" . wp_create_nonce( 'finaltilesgallery' ) . "',\n";
478
+ $html .= "\t\tgalleryId: '" . absint( $this->id ) . "',\n";
479
  $html .= "\t\tsetupFilters: " . (( $gallery->filterClick == 'F' ? "true" : "false" )) . ",\n";
480
+ $html .= "\t\tlayout: '" . esc_attr( $gallery->layout ) . "',\n";
481
  $html .= "\t\tdebug: " . (( empty($_GET['debug']) ? "false" : "true" )) . ",\n";
482
+ $html .= "\t\tgridSize: " . esc_attr( $gallery->gridCellSize ) . ",\n";
483
+ $html .= "\t\tdisableGridSizeBelow:" . esc_attr( $gallery->gridCellSizeDisabledBelow ) . ",\n";
484
  $html .= "\t\tallowEnlargement: " . (( $gallery->enlargeImages == "T" ? "true" : "false" )) . ",\n";
485
 
486
  if ( $gallery->layout == "columns" ) {
487
+ $html .= "\t\tcolumns: [\n" . "\t\t\t[4000, " . esc_attr( $gallery->columns ) . "],\n" . "\t\t\t[1024, " . esc_attr( $gallery->columnsTabletLandscape ) . "],\n" . "\t\t\t[800, " . esc_attr( $gallery->columnsTabletPortrait ) . "],\n" . "\t\t\t[480, " . esc_attr( $gallery->columnsPhoneLandscape ) . "],\n" . "\t\t\t[320, " . esc_attr( $gallery->columnsPhonePortrait ) . "]\n" . "\t\t],";
488
  } else {
489
+ $html .= "\t\timageSizeFactor: [\n" . "\t\t\t [4000, " . absint( $gallery->imageSizeFactor ) / 100 . "]\n" . "\t\t\t,[1024, " . absint( $gallery->imageSizeFactorTabletLandscape ) / 100 . "]\n" . "\t\t\t,[768, " . absint( $gallery->imageSizeFactorTabletPortrait ) / 100 . "]\n" . "\t\t\t,[640, " . absint( $gallery->imageSizeFactorPhoneLandscape ) / 100 . "]\n" . "\t\t\t,[320, " . absint( $gallery->imageSizeFactorPhonePortrait ) / 100 . "]\n";
490
  foreach ( explode( "|", $gallery->imageSizeFactorCustom ) as $isf ) {
491
  $_ = explode( ",", $isf );
492
  if ( !empty($_[0]) ) {
493
+ $html .= "\t\t\t,[" . esc_attr( $_[0] ) . ", " . absint( $_[1] ) / 100 . "]\n";
494
  }
495
  }
496
  $html .= "\t\t],\n";
497
  }
498
 
499
  if ( isset( $scrollEffect ) ) {
500
+ $html .= "\t\tscrollEffect: '" . esc_attr( $gallery->scrollEffect ) . "',\n";
501
  }
502
  $html .= "\t\tselectedFilter: '" . $this->slugify( $gallery->defaultFilter ) . "'\n";
503
  $html .= "\t});\n";
506
 
507
  if ( $gallery->disableLightboxGroups == 'T' ) {
508
  if ( $lightbox == "prettyphoto" || $lightbox == "fancybox" || $lightbox == "swipebox" || $lightbox == "lightbox2" ) {
509
+ $html .= "jQuery('#ftg-" . absint( $this->id . $rid ) . " .tile a.ftg-lightbox').each(function (i) { jQuery(this).attr('rel', 'no-group-' + i);});\n";
510
  }
511
  if ( $lightbox == "lightbox2" ) {
512
+ $html .= "jQuery('#ftg-" . absint( $this->id . $rid ) . " .tile a.ftg-lightbox').each(function (i) { jQuery(this).attr('data-lightbox', 'no-group-' + i);});\n";
513
  }
514
  }
515
 
521
  $html .= "\t\t});\n";
522
  }*/
523
  $html .= "\t\tvar rel = '';\n";
524
+ $html .= "\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . " .ftg-lightbox').click(function (e) {\n";
525
  $html .= "\t\t\trel = jQuery(this).attr('rel');\n";
526
+ $html .= "\t\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . " .ftg-current').removeClass('ftg-current');\n";
527
+ $html .= "\t\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . " [rel=\"'+rel+'\"]').addClass('ftg-current');\n";
528
  $html .= "\t\t});\n";
529
  $html .= "\t})();\n";
530
  $lightbox_options = ( wp_is_mobile() ? $gallery->lightboxOptionsMobile : $gallery->lightboxOptions );
531
  switch ( $lightbox ) {
532
  case 'magnific':
533
+ $html .= "\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . "').magnificPopup({type:'image', zoom: {\n";
534
  $html .= "\t\t\tenabled: true, duration: 300, easing: 'ease-in-out' },\n";
535
  $html .= "\t\t\timage: { titleSrc: 'data-title' }, gallery: { enabled: " . (( $gallery->disableLightboxGroups == 'T' ? "false" : "true" )) . " }, delegate: '.tile:not(.ftg-filter-hidden-tile) .ftg-lightbox.ftg-current',\n";
536
  $html .= stripslashes( $lightbox_options );
537
  $html .= "\t\t});\n";
538
+ $html .= "\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . " .ftg-lightbox-iframe').magnificPopup({type:'iframe',";
539
  $html .= stripslashes( $lightbox_options );
540
  $html .= "});\n";
541
  break;
542
  case 'prettyphoto':
543
+ $html .= "\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . " .tile a.ftg-lightbox').prettyPhoto({";
544
  $html .= "});\n";
545
  break;
546
  case 'colorbox':
547
+ $html .= "\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . " .tile a.ftg-lightbox').colorbox({";
548
+ $html .= "rel: '" . (( $gallery->disableLightboxGroups == 'T' ? "nofollow" : absint( $this->id ) )) . "',";
549
  $html .= "title: function () { return jQuery(this).data('title'); }});\n";
550
+ $html .= "\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . " .tile a.ftg-lightbox-iframe').colorbox({ iframe:true, width:'75%', height:'75%' });\n";
551
  break;
552
  case 'fancybox':
553
+ $html .= "\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . " .tile a.ftg-lightbox').fancybox();\n";
554
  break;
555
  case 'swipebox':
556
+ $html .= "\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . " .tile a.ftg-lightbox').swipebox({ removeBarsOnMobile: false});\n";
557
  break;
558
  case 'lightgallery':
559
+ $html .= "\t\tjQuery('#ftg-" . absint( $this->id . $rid ) . "').lightGallery({\n\t\t\tselector: '.tile:not(.ftg-hidden) .ftg-lightbox',\n";
560
 
561
  if ( $gallery->disableLightboxGroups == 'T' ) {
562
  $html .= "\t\t\tthumbnail: false,\n";
577
  }
578
  $html .= "\n";
579
  $html .= "\t});\n";
580
+ $html .= "\t}, " . esc_attr( $gallery->delay ) . ");\n";
581
  $html .= "\t});\n";
582
  $html .= "</script>";
583
  $html .= stripslashes( $this->gallery->afterGalleryText );
599
  $gallery = $this->gallery;
600
  $current_filter = ( isset( $_GET['ftg-set'] ) ? $_GET['ftg-set'] : null );
601
  $html = "";
602
+ $lightbox = ( wp_is_mobile() ? ( $gallery->mobileLightbox == "desktop" ? esc_attr( $gallery->lightbox ) : esc_attr( $gallery->mobileLightbox ) ) : esc_attr( $gallery->lightbox ) );
603
  $groups = array();
604
  foreach ( $this->images as $image ) {
605
  $img_filters = array_map( "FinalTilesGallery::slugify", explode( '|', $image->filters ) );
618
  if ( $lightbox == 'lightgallery' && $this->useCaptions() ) {
619
  $title = 'data-sub-html';
620
  }
621
+ $rel = ( $lightbox == "prettyphoto" ? "prettyPhoto[ftg-" . absint( $this->id . $rid ) . "]" : "ftg-" . absint( $this->id . $rid ) );
622
  if ( $gallery->rel ) {
623
  $rel = $gallery->rel;
624
  }
625
 
626
  if ( isset( $image->group ) && !empty($image->group) ) {
627
+ $rel = ( $lightbox == "prettyphoto" ? "prettyPhoto[" . esc_attr( $image->group ) . "]" : esc_attr( $image->group ) );
628
  $groups[$image->group] = 1;
629
  } else {
630
+ $groups["ftg-" . absint( $this->id . $rid ) . ""] = 1;
631
  }
632
 
633
  if ( wp_is_mobile() && $gallery->mobileLightbox == "lightbox2" && empty($image->link) ) {
641
  $image->filters = "";
642
  }
643
  $hiddenClass = ( isset( $image->hidden ) && $image->hidden == "T" ? "ftg-hidden-tile" : "" );
644
+ $html .= "<div {$data_keep_aspect_ratio} class='tile ftg-preload " . esc_attr( $hiddenClass ) . " " . $this->getImageFilters( $image ) . "'>\n";
645
 
646
  if ( property_exists( $image, "type" ) && $image->type == "video" ) {
647
  $html .= "<div class='fitvidsignore'>";
648
+ $html .= esc_url( $image->imagePath );
649
  $html .= "</div>";
650
  } else {
651
  //$src = $gallery->sequentialImageLoading == "T" ? "" : $image->imagePath;
660
  }
661
  $title_text = htmlspecialchars( $description, ENT_QUOTES );
662
  if ( $lightbox == 'lightgallery' && $this->useCaptions() ) {
663
+ $title_text = "<span class='title'>" . esc_html( $image->title ) . "</span><span class='text'>" . wp_kses_post( $image->description ) . "</span>";
664
  }
665
  $html .= "<a {$title}=\"" . $title_text . "\" ";
666
+ $html .= ( $lightbox == "lightbox2" && empty($image->link) ? "data-lightbox='" . esc_attr( $rel ) . "'" : "" );
667
+ $html .= " rel='" . esc_attr( $rel ) . "' ";
668
  $html .= $this->getTarget( $image );
669
  $html .= " class=' tile-inner " . $gallery->aClass . " ";
670
  $html .= $this->getLightboxClass( $image ) . "' ";
671
  $html .= $this->getLink( $image ) . " ";
672
+ $html .= ( $lightbox == "lightgallery" ? "data-download-url='" . esc_url( $image->original ) . "'" : '' );
673
  $html .= ">\n";
674
  if ( !isset( $image->width ) ) {
675
  $image->width = "auto";
680
  if ( !isset( $image->alt ) || empty($image->alt) ) {
681
  $image->alt = $description;
682
  }
683
+ $html .= "<img alt='" . esc_attr( $image->alt ) . "' class='item skip-lazy' data-class='item' data-ftg-source='" . esc_url( $image->imagePath ) . "' src='" . esc_url( $src ) . "' width='" . esc_attr( $image->width ) . "' height='" . esc_attr( $image->height ) . "' />\n";
684
  if ( $gallery->captionPosition == 'inside' ) {
685
 
686
  if ( !(empty($image->description) && empty($image->title)) && $this->useCaptions() || $gallery->captionEmpty == "show" || $this->hasCaptionIcon() ) {
692
  if ( $gallery->source == "images" && $this->useCaptions() ) {
693
  $html .= "\t<div class='text-wrapper'>\n";
694
  if ( !empty($image->title) && $gallery->wp_field_title != "none" ) {
695
+ $html .= "<span class='title'>" . esc_html( $image->title ) . "</span>\n";
696
  }
697
  if ( !empty($image->description) && $gallery->wp_field_caption != "none" ) {
698
+ $html .= "\t<span class='text'>" . wp_kses_post( $image->description ) . "</span>\n";
699
  }
700
  $html .= "\t</div>\n";
701
  }
703
 
704
  if ( ($gallery->source == "posts" || $gallery->source == "woocommerce") && $this->useCaptions() ) {
705
  $html .= "\t<div class='text-wrapper'>\n";
706
+ $html .= "\t\t<span class='text'>" . wp_kses_post( $image->description ) . "</span>\n";
707
 
708
  if ( $gallery->source == "woocommerce" ) {
709
+ $html .= "<div class='woo' data-href='" . get_site_url() . "/cart/?add-to-cart=" . absint( $image->postID ) . "'>";
710
+ $html .= "\t<span class='price'>" . esc_html( $image->price ) . get_woocommerce_currency_symbol() . "</span>\n";
711
  $html .= "\t<span> <i class='fa fa-shopping-cart add-to-cart'></i></span>";
712
  $html .= "</div>";
713
  }
728
  if ( $gallery->source == "images" ) {
729
  $html .= "\t<span>\n";
730
  if ( !empty($image->title) && $this->useCaptions() ) {
731
+ $html .= "<span class='title'>" . esc_html( $image->title ) . "</span>\n";
732
  }
733
  if ( !empty($image->description) && $this->useCaptions() ) {
734
+ $html .= "\t<span class='text'>" . wp_kses_post( $image->description ) . "</span>\n";
735
  }
736
  $html .= "\t</span>\n";
737
  }
738
 
739
  if ( ($gallery->source == "posts" || $gallery->source == "woocommerce") && $this->useCaptions() ) {
740
+ $html .= "\t<span class='text'>" . wp_kses_post( $image->description ) . "</span>\n";
741
  }
742
 
743
  if ( $gallery->source == "woocommerce" ) {
744
  $html .= "<div class='woo'>";
745
+ $html .= "\t<span class='price'>" . esc_html( $image->price ) . get_woocommerce_currency_symbol() . "</span>\n";
746
+ $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>";
747
  $html .= "</div>";
748
  }
749
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: machothemes, 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: 3.8.2
5
  Tested up to: 5.3
6
- Stable tag: 3.4.18
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -129,12 +129,15 @@ Currently galleries made with Envira, FooGallery, Instagram, NextGen, JetPack, M
129
 
130
  == Changelog ==
131
 
 
 
 
 
132
  = 3.4.18 =
133
  * Minor update for tooltips
134
  * Add shortcode copy functionality
135
  * Color picker bug gix
136
  * Toggle input bug fix
137
- *
138
 
139
  = 3.4.17 =
140
  * Fix and update tooltips
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: 3.8.2
5
  Tested up to: 5.3
6
+ Stable tag: 3.4.19
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
129
 
130
  == Changelog ==
131
 
132
+ = 3.4.19 =
133
+ * Escaping and Sanitization
134
+ * Fixed edit link in admin dashboard
135
+
136
  = 3.4.18 =
137
  * Minor update for tooltips
138
  * Add shortcode copy functionality
139
  * Color picker bug gix
140
  * Toggle input bug fix
 
141
 
142
  = 3.4.17 =
143
  * Fix and update tooltips