Visual Portfolio, Photo Gallery & Post Grid - Version 2.9.1

Version Description

Download this release

Release Info

Developer nko
Plugin Icon 128x128 Visual Portfolio, Photo Gallery & Post Grid
Version 2.9.1
Comparing to
See all releases

Code changes from version 2.9.0 to 2.9.1

assets/admin/js/elementor.js CHANGED
@@ -2,7 +2,7 @@
2
  * Additional js for Elementor
3
  *
4
  * Name : Visual Portfolio
5
- * Version : 2.9.0
6
  * Author : nK https://nkdev.info
7
  */
8
  import { throttle } from 'throttle-debounce';
2
  * Additional js for Elementor
3
  *
4
  * Name : Visual Portfolio
5
+ * Version : 2.9.1
6
  * Author : nK https://nkdev.info
7
  */
8
  import { throttle } from 'throttle-debounce';
assets/admin/js/mce-dropdown.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
  * Name : Visual Portfolio
3
- * Version : 2.9.0
4
  * Author : nK https://nkdev.info
5
  */
6
  const {
1
  /*!
2
  * Name : Visual Portfolio
3
+ * Version : 2.9.1
4
  * Author : nK https://nkdev.info
5
  */
6
  const {
assets/admin/js/script.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
  * Name : Visual Portfolio
3
- * Version : 2.9.0
4
  * Author : nK https://nkdev.info
5
  */
6
  import { debounce } from 'throttle-debounce';
1
  /*!
2
  * Name : Visual Portfolio
3
+ * Version : 2.9.1
4
  * Author : nK https://nkdev.info
5
  */
6
  import { debounce } from 'throttle-debounce';
assets/admin/js/vc-frontend.js CHANGED
@@ -2,7 +2,7 @@
2
  * Additional js for frontend VC
3
  *
4
  * Name : Visual Portfolio
5
- * Version : 2.9.0
6
  * Author : nK https://nkdev.info
7
  */
8
  const {
2
  * Additional js for frontend VC
3
  *
4
  * Name : Visual Portfolio
5
+ * Version : 2.9.1
6
  * Author : nK https://nkdev.info
7
  */
8
  const {
assets/js/preview.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
  * Name : Visual Portfolio
3
- * Version : 2.9.0
4
  * Author : nK https://nkdev.info
5
  */
6
  const $ = window.jQuery;
1
  /*!
2
  * Name : Visual Portfolio
3
+ * Version : 2.9.1
4
  * Author : nK https://nkdev.info
5
  */
6
  const $ = window.jQuery;
class-visual-portfolio.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Visual Portfolio, Posts & Image Gallery
4
  * Description: Modern gallery and portfolio plugin with advanced layouts editor. Clean and powerful gallery styles with enormous settings in the Gutenberg block.
5
- * Version: 2.9.0
6
  * Author: nK
7
  * Author URI: https://nkdev.info
8
  * License: GPLv2 or later
@@ -165,6 +165,9 @@ class Visual_Portfolio {
165
  * Include dependencies
166
  */
167
  private function include_dependencies() {
 
 
 
168
  require_once $this->plugin_path . 'gutenberg/utils/control-condition-check/index.php';
169
  require_once $this->plugin_path . 'gutenberg/utils/control-get-value/index.php';
170
  require_once $this->plugin_path . 'gutenberg/utils/controls-dynamic-css/index.php';
@@ -186,8 +189,11 @@ class Visual_Portfolio {
186
  require_once $this->plugin_path . 'classes/class-vc.php';
187
  require_once $this->plugin_path . 'classes/class-elementor.php';
188
  require_once $this->plugin_path . 'classes/class-supported-themes.php';
189
- require_once $this->plugin_path . 'classes/class-migration.php';
190
  require_once $this->plugin_path . 'classes/class-breakpoints.php';
 
 
 
 
191
  }
192
 
193
  /**
2
  /**
3
  * Plugin Name: Visual Portfolio, Posts & Image Gallery
4
  * Description: Modern gallery and portfolio plugin with advanced layouts editor. Clean and powerful gallery styles with enormous settings in the Gutenberg block.
5
+ * Version: 2.9.1
6
  * Author: nK
7
  * Author URI: https://nkdev.info
8
  * License: GPLv2 or later
165
  * Include dependencies
166
  */
167
  private function include_dependencies() {
168
+ // Deprecations run before all features.
169
+ require_once $this->plugin_path . 'classes/class-deprecated.php';
170
+
171
  require_once $this->plugin_path . 'gutenberg/utils/control-condition-check/index.php';
172
  require_once $this->plugin_path . 'gutenberg/utils/control-get-value/index.php';
173
  require_once $this->plugin_path . 'gutenberg/utils/controls-dynamic-css/index.php';
189
  require_once $this->plugin_path . 'classes/class-vc.php';
190
  require_once $this->plugin_path . 'classes/class-elementor.php';
191
  require_once $this->plugin_path . 'classes/class-supported-themes.php';
 
192
  require_once $this->plugin_path . 'classes/class-breakpoints.php';
193
+ require_once $this->plugin_path . 'classes/class-wpml.php';
194
+
195
+ // Migration run after all features.
196
+ require_once $this->plugin_path . 'classes/class-migration.php';
197
  }
198
 
199
  /**
classes/class-admin.php CHANGED
@@ -42,9 +42,9 @@ class Visual_Portfolio_Admin {
42
  'nonce' => wp_create_nonce( 'vp-ajax-nonce' ),
43
  );
44
 
45
- wp_enqueue_script( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/js/script.min.js', array( 'jquery', 'wp-data' ), '2.9.0', true );
46
  wp_localize_script( 'visual-portfolio-admin', 'VPAdminVariables', $data_init );
47
- wp_enqueue_style( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/css/style.min.css', array(), '2.9.0' );
48
  wp_style_add_data( 'visual-portfolio-admin', 'rtl', 'replace' );
49
  wp_style_add_data( 'visual-portfolio-admin', 'suffix', '.min' );
50
  }
@@ -58,8 +58,8 @@ class Visual_Portfolio_Admin {
58
  );
59
 
60
  if ( 'vp_lists' === get_post_type() ) {
61
- wp_enqueue_script( 'visual-portfolio-saved-layouts', visual_portfolio()->plugin_url . 'gutenberg/layouts-editor.min.js', array( 'jquery' ), '2.9.0', true );
62
- wp_enqueue_style( 'visual-portfolio-saved-layouts', visual_portfolio()->plugin_url . 'gutenberg/layouts-editor.min.css', array(), '2.9.0' );
63
  wp_style_add_data( 'visual-portfolio-saved-layouts', 'rtl', 'replace' );
64
  wp_style_add_data( 'visual-portfolio-saved-layouts', 'suffix', '.min' );
65
 
@@ -105,7 +105,7 @@ class Visual_Portfolio_Admin {
105
  // phpcs:ignore
106
  if ( 'visual_portfolio_go_pro' === $_GET['page'] ) {
107
  // phpcs:ignore
108
- wp_redirect( 'https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=admin_page&utm_content=2.9.0' );
109
  exit();
110
  }
111
  }
@@ -684,6 +684,7 @@ class Visual_Portfolio_Admin {
684
  'default' => 'Read More',
685
  'hint' => esc_attr__( 'Read More Button Label', 'visual-portfolio' ),
686
  'hint_place' => 'left',
 
687
  'condition' => array(
688
  array(
689
  'control' => 'show_read_more',
@@ -1350,6 +1351,7 @@ class Visual_Portfolio_Admin {
1350
  'category' => 'content-source-images',
1351
  'type' => 'gallery',
1352
  'name' => 'images',
 
1353
  'setup_wizard' => true,
1354
  'focal_point' => true,
1355
  'image_controls' => array(
@@ -1436,7 +1438,7 @@ class Visual_Portfolio_Admin {
1436
  array(
1437
  'category' => 'content-source-images',
1438
  'type' => 'select',
1439
- 'label' => esc_html__( 'Titles', 'visual-portfolio' ),
1440
  'name' => 'images_titles_source',
1441
  'default' => 'custom',
1442
  'options' => array(
@@ -1453,7 +1455,7 @@ class Visual_Portfolio_Admin {
1453
  array(
1454
  'category' => 'content-source-images',
1455
  'type' => 'select',
1456
- 'label' => esc_html__( 'Descriptions', 'visual-portfolio' ),
1457
  'name' => 'images_descriptions_source',
1458
  'default' => 'custom',
1459
  'options' => array(
@@ -1542,6 +1544,7 @@ class Visual_Portfolio_Admin {
1542
  'placeholder' => esc_html__( 'Notice', 'visual-portfolio' ),
1543
  'name' => 'no_items_notice',
1544
  'default' => esc_html__( 'No items were found matching your selection.', 'visual-portfolio' ),
 
1545
  'condition' => array(
1546
  array(
1547
  'control' => 'no_items_action',
@@ -1822,6 +1825,7 @@ class Visual_Portfolio_Admin {
1822
  'default' => 'F j, Y',
1823
  'hint' => esc_attr__( "Date format \r\n Example: F j, Y", 'visual-portfolio' ),
1824
  'hint_place' => 'left',
 
1825
  'condition' => array(
1826
  array(
1827
  'control' => 'show_date',
@@ -2030,7 +2034,7 @@ class Visual_Portfolio_Admin {
2030
  array(
2031
  'category' => 'items-click-action',
2032
  'type' => 'select',
2033
- 'label' => esc_html__( 'Title', 'visual-portfolio' ),
2034
  'name' => 'items_click_action_popup_title_source',
2035
  'default' => 'title',
2036
  'options' => array(
@@ -2052,7 +2056,7 @@ class Visual_Portfolio_Admin {
2052
  array(
2053
  'category' => 'items-click-action',
2054
  'type' => 'select',
2055
- 'label' => esc_html__( 'Description', 'visual-portfolio' ),
2056
  'name' => 'items_click_action_popup_description_source',
2057
  'default' => 'description',
2058
  'options' => array(
@@ -2282,11 +2286,12 @@ class Visual_Portfolio_Admin {
2282
  );
2283
  Visual_Portfolio_Controls::register(
2284
  array(
2285
- 'category' => 'filter',
2286
- 'type' => 'text',
2287
- 'label' => esc_html__( 'All Button Text', 'visual-portfolio' ),
2288
- 'name' => 'filter_text_all',
2289
- 'default' => esc_attr__( 'All', 'visual-portfolio' ),
 
2290
  )
2291
  );
2292
 
@@ -2590,6 +2595,7 @@ class Visual_Portfolio_Admin {
2590
  'placeholder' => esc_attr__( 'Load more button label', 'visual-portfolio' ),
2591
  'hint' => esc_attr__( 'Load more button label', 'visual-portfolio' ),
2592
  'hint_place' => 'left',
 
2593
  'condition' => array(
2594
  array(
2595
  'control' => 'pagination',
@@ -2608,6 +2614,7 @@ class Visual_Portfolio_Admin {
2608
  'placeholder' => esc_attr__( 'Loading more button label', 'visual-portfolio' ),
2609
  'hint' => esc_attr__( 'Loading more button label', 'visual-portfolio' ),
2610
  'hint_place' => 'left',
 
2611
  'condition' => array(
2612
  array(
2613
  'control' => 'pagination',
@@ -2626,6 +2633,7 @@ class Visual_Portfolio_Admin {
2626
  'placeholder' => esc_attr__( 'End of the list text', 'visual-portfolio' ),
2627
  'hint' => esc_attr__( 'End of the list text', 'visual-portfolio' ),
2628
  'hint_place' => 'left',
 
2629
  'condition' => array(
2630
  array(
2631
  'control' => 'pagination',
@@ -2644,6 +2652,7 @@ class Visual_Portfolio_Admin {
2644
  'placeholder' => esc_attr__( 'Load more button label', 'visual-portfolio' ),
2645
  'hint' => esc_attr__( 'Load more button label', 'visual-portfolio' ),
2646
  'hint_place' => 'left',
 
2647
  'condition' => array(
2648
  array(
2649
  'control' => 'pagination',
@@ -2662,6 +2671,7 @@ class Visual_Portfolio_Admin {
2662
  'placeholder' => esc_attr__( 'Loading more button label', 'visual-portfolio' ),
2663
  'hint' => esc_attr__( 'Loading more button label', 'visual-portfolio' ),
2664
  'hint_place' => 'left',
 
2665
  'condition' => array(
2666
  array(
2667
  'control' => 'pagination',
@@ -2680,6 +2690,7 @@ class Visual_Portfolio_Admin {
2680
  'placeholder' => esc_attr__( 'End of the list text', 'visual-portfolio' ),
2681
  'hint' => esc_attr__( 'End of the list text', 'visual-portfolio' ),
2682
  'hint_place' => 'left',
 
2683
  'condition' => array(
2684
  array(
2685
  'control' => 'pagination',
42
  'nonce' => wp_create_nonce( 'vp-ajax-nonce' ),
43
  );
44
 
45
+ wp_enqueue_script( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/js/script.min.js', array( 'jquery', 'wp-data' ), '2.9.1', true );
46
  wp_localize_script( 'visual-portfolio-admin', 'VPAdminVariables', $data_init );
47
+ wp_enqueue_style( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/css/style.min.css', array(), '2.9.1' );
48
  wp_style_add_data( 'visual-portfolio-admin', 'rtl', 'replace' );
49
  wp_style_add_data( 'visual-portfolio-admin', 'suffix', '.min' );
50
  }
58
  );
59
 
60
  if ( 'vp_lists' === get_post_type() ) {
61
+ wp_enqueue_script( 'visual-portfolio-saved-layouts', visual_portfolio()->plugin_url . 'gutenberg/layouts-editor.min.js', array( 'jquery' ), '2.9.1', true );
62
+ wp_enqueue_style( 'visual-portfolio-saved-layouts', visual_portfolio()->plugin_url . 'gutenberg/layouts-editor.min.css', array(), '2.9.1' );
63
  wp_style_add_data( 'visual-portfolio-saved-layouts', 'rtl', 'replace' );
64
  wp_style_add_data( 'visual-portfolio-saved-layouts', 'suffix', '.min' );
65
 
105
  // phpcs:ignore
106
  if ( 'visual_portfolio_go_pro' === $_GET['page'] ) {
107
  // phpcs:ignore
108
+ wp_redirect( 'https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=admin_page&utm_content=2.9.1' );
109
  exit();
110
  }
111
  }
684
  'default' => 'Read More',
685
  'hint' => esc_attr__( 'Read More Button Label', 'visual-portfolio' ),
686
  'hint_place' => 'left',
687
+ 'wpml' => true,
688
  'condition' => array(
689
  array(
690
  'control' => 'show_read_more',
1351
  'category' => 'content-source-images',
1352
  'type' => 'gallery',
1353
  'name' => 'images',
1354
+ 'wpml' => true,
1355
  'setup_wizard' => true,
1356
  'focal_point' => true,
1357
  'image_controls' => array(
1438
  array(
1439
  'category' => 'content-source-images',
1440
  'type' => 'select',
1441
+ 'label' => esc_html__( 'Titles Source', 'visual-portfolio' ),
1442
  'name' => 'images_titles_source',
1443
  'default' => 'custom',
1444
  'options' => array(
1455
  array(
1456
  'category' => 'content-source-images',
1457
  'type' => 'select',
1458
+ 'label' => esc_html__( 'Descriptions Source', 'visual-portfolio' ),
1459
  'name' => 'images_descriptions_source',
1460
  'default' => 'custom',
1461
  'options' => array(
1544
  'placeholder' => esc_html__( 'Notice', 'visual-portfolio' ),
1545
  'name' => 'no_items_notice',
1546
  'default' => esc_html__( 'No items were found matching your selection.', 'visual-portfolio' ),
1547
+ 'wpml' => true,
1548
  'condition' => array(
1549
  array(
1550
  'control' => 'no_items_action',
1825
  'default' => 'F j, Y',
1826
  'hint' => esc_attr__( "Date format \r\n Example: F j, Y", 'visual-portfolio' ),
1827
  'hint_place' => 'left',
1828
+ 'wpml' => true,
1829
  'condition' => array(
1830
  array(
1831
  'control' => 'show_date',
2034
  array(
2035
  'category' => 'items-click-action',
2036
  'type' => 'select',
2037
+ 'label' => esc_html__( 'Title Source', 'visual-portfolio' ),
2038
  'name' => 'items_click_action_popup_title_source',
2039
  'default' => 'title',
2040
  'options' => array(
2056
  array(
2057
  'category' => 'items-click-action',
2058
  'type' => 'select',
2059
+ 'label' => esc_html__( 'Description Source', 'visual-portfolio' ),
2060
  'name' => 'items_click_action_popup_description_source',
2061
  'default' => 'description',
2062
  'options' => array(
2286
  );
2287
  Visual_Portfolio_Controls::register(
2288
  array(
2289
+ 'category' => 'filter',
2290
+ 'type' => 'text',
2291
+ 'label' => esc_html__( 'All Button Text', 'visual-portfolio' ),
2292
+ 'name' => 'filter_text_all',
2293
+ 'default' => esc_attr__( 'All', 'visual-portfolio' ),
2294
+ 'wpml' => true,
2295
  )
2296
  );
2297
 
2595
  'placeholder' => esc_attr__( 'Load more button label', 'visual-portfolio' ),
2596
  'hint' => esc_attr__( 'Load more button label', 'visual-portfolio' ),
2597
  'hint_place' => 'left',
2598
+ 'wpml' => true,
2599
  'condition' => array(
2600
  array(
2601
  'control' => 'pagination',
2614
  'placeholder' => esc_attr__( 'Loading more button label', 'visual-portfolio' ),
2615
  'hint' => esc_attr__( 'Loading more button label', 'visual-portfolio' ),
2616
  'hint_place' => 'left',
2617
+ 'wpml' => true,
2618
  'condition' => array(
2619
  array(
2620
  'control' => 'pagination',
2633
  'placeholder' => esc_attr__( 'End of the list text', 'visual-portfolio' ),
2634
  'hint' => esc_attr__( 'End of the list text', 'visual-portfolio' ),
2635
  'hint_place' => 'left',
2636
+ 'wpml' => true,
2637
  'condition' => array(
2638
  array(
2639
  'control' => 'pagination',
2652
  'placeholder' => esc_attr__( 'Load more button label', 'visual-portfolio' ),
2653
  'hint' => esc_attr__( 'Load more button label', 'visual-portfolio' ),
2654
  'hint_place' => 'left',
2655
+ 'wpml' => true,
2656
  'condition' => array(
2657
  array(
2658
  'control' => 'pagination',
2671
  'placeholder' => esc_attr__( 'Loading more button label', 'visual-portfolio' ),
2672
  'hint' => esc_attr__( 'Loading more button label', 'visual-portfolio' ),
2673
  'hint_place' => 'left',
2674
+ 'wpml' => true,
2675
  'condition' => array(
2676
  array(
2677
  'control' => 'pagination',
2690
  'placeholder' => esc_attr__( 'End of the list text', 'visual-portfolio' ),
2691
  'hint' => esc_attr__( 'End of the list text', 'visual-portfolio' ),
2692
  'hint_place' => 'left',
2693
+ 'wpml' => true,
2694
  'condition' => array(
2695
  array(
2696
  'control' => 'pagination',
classes/class-assets.php CHANGED
@@ -98,11 +98,11 @@ class Visual_Portfolio_Assets {
98
  foreach ( self::$stored_assets[ $type ] as $name => $data ) {
99
  if ( isset( $data['value'] ) && $data['value'] ) {
100
  if ( 'script' === $type ) {
101
- wp_enqueue_script( $name, '', array(), '2.9.0', true );
102
  } elseif ( is_string( $data['value'] ) ) {
103
- visual_portfolio()->include_template_style( $name, $data['value'], array(), '2.9.0' );
104
  } else {
105
- wp_enqueue_style( $name, '', array(), '2.9.0' );
106
  }
107
 
108
  self::$stored_assets[ $type ]['value'] = false;
@@ -259,7 +259,7 @@ class Visual_Portfolio_Assets {
259
  $dynamic_styles = Visual_Portfolio_Controls_Dynamic_CSS::get( $options );
260
  $controls_css_handle = 'vp-dynamic-styles-' . $options['id'];
261
 
262
- wp_register_style( $controls_css_handle, false, array(), '2.9.0' );
263
  wp_enqueue_style( $controls_css_handle );
264
  wp_add_inline_style( $controls_css_handle, $dynamic_styles ? $dynamic_styles : ' ' );
265
 
@@ -395,7 +395,7 @@ class Visual_Portfolio_Assets {
395
  );
396
 
397
  foreach ( $vp_styles as $name => $data ) {
398
- wp_register_style( $name, visual_portfolio()->plugin_url . $data[0], $data[1], '2.9.0' );
399
  wp_style_add_data( $name, 'rtl', 'replace' );
400
  wp_style_add_data( $name, 'suffix', '.min' );
401
  }
@@ -514,7 +514,7 @@ class Visual_Portfolio_Assets {
514
  );
515
 
516
  foreach ( $vp_scripts as $name => $data ) {
517
- wp_register_script( $name, visual_portfolio()->plugin_url . $data[0], $data[1], '2.9.0', true );
518
  }
519
 
520
  do_action( 'vpf_after_assets_register' );
98
  foreach ( self::$stored_assets[ $type ] as $name => $data ) {
99
  if ( isset( $data['value'] ) && $data['value'] ) {
100
  if ( 'script' === $type ) {
101
+ wp_enqueue_script( $name, '', array(), '2.9.1', true );
102
  } elseif ( is_string( $data['value'] ) ) {
103
+ visual_portfolio()->include_template_style( $name, $data['value'], array(), '2.9.1' );
104
  } else {
105
+ wp_enqueue_style( $name, '', array(), '2.9.1' );
106
  }
107
 
108
  self::$stored_assets[ $type ]['value'] = false;
259
  $dynamic_styles = Visual_Portfolio_Controls_Dynamic_CSS::get( $options );
260
  $controls_css_handle = 'vp-dynamic-styles-' . $options['id'];
261
 
262
+ wp_register_style( $controls_css_handle, false, array(), '2.9.1' );
263
  wp_enqueue_style( $controls_css_handle );
264
  wp_add_inline_style( $controls_css_handle, $dynamic_styles ? $dynamic_styles : ' ' );
265
 
395
  );
396
 
397
  foreach ( $vp_styles as $name => $data ) {
398
+ wp_register_style( $name, visual_portfolio()->plugin_url . $data[0], $data[1], '2.9.1' );
399
  wp_style_add_data( $name, 'rtl', 'replace' );
400
  wp_style_add_data( $name, 'suffix', '.min' );
401
  }
514
  );
515
 
516
  foreach ( $vp_scripts as $name => $data ) {
517
+ wp_register_script( $name, visual_portfolio()->plugin_url . $data[0], $data[1], '2.9.1', true );
518
  }
519
 
520
  do_action( 'vpf_after_assets_register' );
classes/class-controls.php CHANGED
@@ -88,6 +88,9 @@ class Visual_Portfolio_Controls {
88
  // display in setup wizard.
89
  'setup_wizard' => false,
90
 
 
 
 
91
  // condition.
92
  'condition' => array(
93
  /**
@@ -237,7 +240,7 @@ class Visual_Portfolio_Controls {
237
  $result[ $k ]['image_controls'] = $img_controls;
238
  }
239
 
240
- $result[ $k ] = apply_filters( 'vpf_print_layout_control_args', $result[ $k ] );
241
  }
242
 
243
  self::$cached_all_registered_controls = apply_filters( 'vpf_registered_controls', $result );
@@ -285,7 +288,7 @@ class Visual_Portfolio_Controls {
285
  }
286
 
287
  // filter.
288
- $result = apply_filters( 'vpf_get_layout_option', $result, $name, $post_id );
289
 
290
  // fix for gallery array.
291
  if ( isset( $registered_data['type'] ) && 'gallery' === $registered_data['type'] ) {
88
  // display in setup wizard.
89
  'setup_wizard' => false,
90
 
91
+ // support for WPML.
92
+ 'wpml' => false,
93
+
94
  // condition.
95
  'condition' => array(
96
  /**
240
  $result[ $k ]['image_controls'] = $img_controls;
241
  }
242
 
243
+ $result[ $k ] = apply_filters( 'vpf_registered_control_args', $result[ $k ] );
244
  }
245
 
246
  self::$cached_all_registered_controls = apply_filters( 'vpf_registered_controls', $result );
288
  }
289
 
290
  // filter.
291
+ $result = apply_filters( 'vpf_control_value', $result, $name, $post_id );
292
 
293
  // fix for gallery array.
294
  if ( isset( $registered_data['type'] ) && 'gallery' === $registered_data['type'] ) {
classes/class-custom-post-type.php CHANGED
@@ -248,7 +248,7 @@ class Visual_Portfolio_Custom_Post_Type {
248
  if ( ! is_blog_installed() ) {
249
  return;
250
  }
251
- if ( get_option( 'visual_portfolio_updated_caps' ) === '2.9.0' ) {
252
  return;
253
  }
254
 
@@ -325,7 +325,7 @@ class Visual_Portfolio_Custom_Post_Type {
325
  $wp_roles->add_cap( 'administrator', $cap );
326
  }
327
 
328
- update_option( 'visual_portfolio_updated_caps', '2.9.0' );
329
  }
330
 
331
  /**
248
  if ( ! is_blog_installed() ) {
249
  return;
250
  }
251
+ if ( get_option( 'visual_portfolio_updated_caps' ) === '2.9.1' ) {
252
  return;
253
  }
254
 
325
  $wp_roles->add_cap( 'administrator', $cap );
326
  }
327
 
328
+ update_option( 'visual_portfolio_updated_caps', '2.9.1' );
329
  }
330
 
331
  /**
classes/class-deprecated.php ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Deprecations.
4
+ *
5
+ * @package visual-portfolio
6
+ */
7
+
8
+ if ( ! defined( 'ABSPATH' ) ) {
9
+ exit;
10
+ }
11
+
12
+ /**
13
+ * Class Visual_Portfolio_Deprecations
14
+ */
15
+ class Visual_Portfolio_Deprecations {
16
+ /**
17
+ * The list of all deprecated hooks.
18
+ *
19
+ * @var array
20
+ */
21
+ public $hooks = array();
22
+
23
+ /**
24
+ * Visual_Portfolio_Deprecations constructor.
25
+ */
26
+ public function __construct() {
27
+ // Deprecated filters in v2.9.0.
28
+ $this->add_deprecated_filter( 'vpf_print_layout_control_args', '2.9.0', 'vpf_registered_control_args' );
29
+ $this->add_deprecated_filter( 'vpf_get_layout_option', '2.9.0', 'vpf_control_value' );
30
+ $this->add_deprecated_filter( 'vpf_extend_popup_image', '2.9.0', 'vpf_popup_image_data' );
31
+ $this->add_deprecated_filter( 'vpf_extend_custom_popup_image', '2.9.0', 'vpf_popup_custom_image_data' );
32
+ $this->add_deprecated_filter( 'vpf_print_popup_data', '2.9.0', 'vpf_popup_output' );
33
+ $this->add_deprecated_filter( 'vpf_wp_get_attachment_image_extend', '2.9.0', 'vpf_wp_get_attachment_image' );
34
+ }
35
+
36
+ /**
37
+ * Add Deprecated Filter
38
+ *
39
+ * @param string $deprecated The deprecated hook.
40
+ * @param string $version The version this hook was deprecated.
41
+ * @param string $replacement The replacement hook.
42
+ */
43
+ public function add_deprecated_filter( $deprecated, $version, $replacement ) {
44
+ // Store replacement data.
45
+ $this->hooks[] = array(
46
+ 'type' => 'filter',
47
+ 'deprecated' => $deprecated,
48
+ 'replacement' => $replacement,
49
+ 'version' => $version,
50
+ );
51
+
52
+ // Add generic handler.
53
+ // Use a priority of 10, and accepted args of 10 (ignored by WP).
54
+ add_filter( $replacement, array( $this, 'apply_deprecated_hook' ), 10, 10 );
55
+ }
56
+
57
+ /**
58
+ * Add Deprecated Action
59
+ *
60
+ * @param string $deprecated The deprecated hook.
61
+ * @param string $version The version this hook was deprecated.
62
+ * @param string $replacement The replacement hook.
63
+ */
64
+ public function add_deprecated_action( $deprecated, $version, $replacement ) {
65
+ // Store replacement data.
66
+ $hooks[] = array(
67
+ 'type' => 'action',
68
+ 'deprecated' => $deprecated,
69
+ 'replacement' => $replacement,
70
+ 'version' => $version,
71
+ );
72
+
73
+ // Add generic handler.
74
+ // Use a priority of 10, and accepted args of 10 (ignored by WP).
75
+ add_action( $replacement, '_acf_apply_deprecated_hook', 10, 10 );
76
+ }
77
+
78
+ /**
79
+ * Apply Deprecated Hook
80
+ *
81
+ * Apply a deprecated filter during apply_filters() or do_action().
82
+ *
83
+ * @return mixed
84
+ */
85
+ public function apply_deprecated_hook() {
86
+ // Get current hook.
87
+ $hook_name = current_filter();
88
+
89
+ // Get args provided to function.
90
+ $args = func_get_args();
91
+
92
+ foreach ( $this->hooks as $hook_data ) {
93
+ if ( $hook_name !== $hook_data['replacement'] ) {
94
+ continue;
95
+ }
96
+
97
+ // Check if anyone is hooked into this deprecated hook.
98
+ if ( has_filter( $hook_data['deprecated'] ) ) {
99
+ // Log warning.
100
+ // Most probably we will add it later.
101
+ //
102
+ // _deprecated_hook( $hook_data['deprecated'], $hook_data['version'], $hook_name ); .
103
+
104
+ // Apply filters.
105
+ if ( 'filter' === $hook_data['type'] ) {
106
+ // phpcs:ignore
107
+ $args[0] = apply_filters_ref_array( $hook_data['deprecated'], $args );
108
+
109
+ // Or do action.
110
+ } else {
111
+ // phpcs:ignore
112
+ do_action_ref_array( $hook_data['deprecated'], $args );
113
+ }
114
+ }
115
+ }
116
+
117
+ // Return first arg.
118
+ return $args[0];
119
+ }
120
+ }
121
+
122
+ new Visual_Portfolio_Deprecations();
classes/class-elementor-widget.php CHANGED
@@ -33,9 +33,9 @@ class Visual_Portfolio_Elementor_Widget extends \Elementor\Widget_Base {
33
 
34
  if ( $this->is_preview_mode() ) {
35
  wp_register_script( 'iframe-resizer', visual_portfolio()->plugin_url . 'assets/vendor/iframe-resizer/js/iframeResizer.min.js', '', '4.2.11', true );
36
- wp_register_script( 'visual-portfolio-elementor', visual_portfolio()->plugin_url . 'assets/admin/js/elementor.min.js', array( 'elementor-frontend', 'iframe-resizer', 'jquery' ), '2.9.0', true );
37
 
38
- wp_register_style( 'visual-portfolio-elementor', visual_portfolio()->plugin_url . 'assets/admin/css/elementor.min.css', array(), '2.9.0' );
39
  wp_style_add_data( 'visual-portfolio-elementor', 'rtl', 'replace' );
40
  wp_style_add_data( 'visual-portfolio-elementor', 'suffix', '.min' );
41
  }
33
 
34
  if ( $this->is_preview_mode() ) {
35
  wp_register_script( 'iframe-resizer', visual_portfolio()->plugin_url . 'assets/vendor/iframe-resizer/js/iframeResizer.min.js', '', '4.2.11', true );
36
+ wp_register_script( 'visual-portfolio-elementor', visual_portfolio()->plugin_url . 'assets/admin/js/elementor.min.js', array( 'elementor-frontend', 'iframe-resizer', 'jquery' ), '2.9.1', true );
37
 
38
+ wp_register_style( 'visual-portfolio-elementor', visual_portfolio()->plugin_url . 'assets/admin/css/elementor.min.css', array(), '2.9.1' );
39
  wp_style_add_data( 'visual-portfolio-elementor', 'rtl', 'replace' );
40
  wp_style_add_data( 'visual-portfolio-elementor', 'suffix', '.min' );
41
  }
classes/class-get-portfolio.php CHANGED
@@ -1932,7 +1932,7 @@ class Visual_Portfolio_Get {
1932
  $img_sm_meta = wp_get_attachment_image_src( $args['image_id'], $args['img_size_sm_popup'] );
1933
 
1934
  $popup_image = apply_filters(
1935
- 'vpf_extend_popup_image',
1936
  array(
1937
  'id' => $args['image_id'],
1938
  'title' => $attachment->post_title,
@@ -1952,7 +1952,7 @@ class Visual_Portfolio_Get {
1952
  )
1953
  );
1954
  } elseif ( $args['image_id'] ) {
1955
- $popup_image = apply_filters( 'vpf_extend_custom_popup_image', false, $args['image_id'] );
1956
  }
1957
  }
1958
  }
@@ -1998,7 +1998,7 @@ class Visual_Portfolio_Get {
1998
  }
1999
 
2000
  $popup_output = ob_get_clean();
2001
- $popup_output = apply_filters( 'vpf_print_popup_data', $popup_output, $args );
2002
 
2003
  // phpcs:ignore
2004
  echo $popup_output;
1932
  $img_sm_meta = wp_get_attachment_image_src( $args['image_id'], $args['img_size_sm_popup'] );
1933
 
1934
  $popup_image = apply_filters(
1935
+ 'vpf_popup_image_data',
1936
  array(
1937
  'id' => $args['image_id'],
1938
  'title' => $attachment->post_title,
1952
  )
1953
  );
1954
  } elseif ( $args['image_id'] ) {
1955
+ $popup_image = apply_filters( 'vpf_popup_custom_image_data', false, $args['image_id'] );
1956
  }
1957
  }
1958
  }
1998
  }
1999
 
2000
  $popup_output = ob_get_clean();
2001
+ $popup_output = apply_filters( 'vpf_popup_output', $popup_output, $args );
2002
 
2003
  // phpcs:ignore
2004
  echo $popup_output;
classes/class-gutenberg-saved.php CHANGED
@@ -92,6 +92,10 @@ class Visual_Portfolio_Gutenberg_Saved_Block {
92
  return '';
93
  }
94
 
 
 
 
 
95
  $class_name = 'wp-block-visual-portfolio';
96
 
97
  if ( $attributes['align'] ) {
92
  return '';
93
  }
94
 
95
+ // WPML support.
96
+ // phpcs:ignore
97
+ $attributes['id'] = apply_filters( 'wpml_object_id', $attributes['id'], 'vp_lists', true );
98
+
99
  $class_name = 'wp-block-visual-portfolio';
100
 
101
  if ( $attributes['align'] ) {
classes/class-gutenberg.php CHANGED
@@ -173,14 +173,14 @@ class Visual_Portfolio_Gutenberg_Block {
173
  'visual-portfolio-gutenberg',
174
  plugins_url( '../gutenberg/index.min.js', __FILE__ ),
175
  array( 'wp-editor', 'wp-i18n', 'wp-element', 'wp-components', 'jquery' ),
176
- '2.9.0',
177
  true
178
  );
179
  wp_enqueue_style(
180
  'visual-portfolio-gutenberg',
181
  plugins_url( '../gutenberg/style.min.css', __FILE__ ),
182
  array(),
183
- '2.9.0'
184
  );
185
  wp_style_add_data( 'visual-portfolio-gutenberg', 'rtl', 'replace' );
186
  wp_style_add_data( 'visual-portfolio-gutenberg', 'suffix', '.min' );
@@ -200,7 +200,7 @@ class Visual_Portfolio_Gutenberg_Block {
200
  'visual-portfolio-gutenberg-custom-post-meta',
201
  plugins_url( '../gutenberg/custom-post-meta.min.js', __FILE__ ),
202
  array( 'wp-editor', 'wp-i18n', 'wp-element', 'wp-components', 'wp-plugins', 'jquery' ),
203
- '2.9.0',
204
  true
205
  );
206
 
173
  'visual-portfolio-gutenberg',
174
  plugins_url( '../gutenberg/index.min.js', __FILE__ ),
175
  array( 'wp-editor', 'wp-i18n', 'wp-element', 'wp-components', 'jquery' ),
176
+ '2.9.1',
177
  true
178
  );
179
  wp_enqueue_style(
180
  'visual-portfolio-gutenberg',
181
  plugins_url( '../gutenberg/style.min.css', __FILE__ ),
182
  array(),
183
+ '2.9.1'
184
  );
185
  wp_style_add_data( 'visual-portfolio-gutenberg', 'rtl', 'replace' );
186
  wp_style_add_data( 'visual-portfolio-gutenberg', 'suffix', '.min' );
200
  'visual-portfolio-gutenberg-custom-post-meta',
201
  plugins_url( '../gutenberg/custom-post-meta.min.js', __FILE__ ),
202
  array( 'wp-editor', 'wp-i18n', 'wp-element', 'wp-components', 'wp-plugins', 'jquery' ),
203
+ '2.9.1',
204
  true
205
  );
206
 
classes/class-images.php CHANGED
@@ -129,7 +129,7 @@ class Visual_Portfolio_Images {
129
  }
130
 
131
  if ( $lazyload ) {
132
- $noscript = apply_filters( 'vpf_wp_get_attachment_image_extend', false, $attachment_id, $size, $attr, false );
133
 
134
  if ( ! $noscript ) {
135
  $noscript = wp_get_attachment_image( $attachment_id, $size, $icon, $attr );
@@ -144,7 +144,7 @@ class Visual_Portfolio_Images {
144
  self::$image_processing = true;
145
  }
146
 
147
- $image = apply_filters( 'vpf_wp_get_attachment_image_extend', false, $attachment_id, $size, $attr, $lazyload );
148
 
149
  if ( ! $image ) {
150
  $image = wp_get_attachment_image( $attachment_id, $size, $icon, $attr );
129
  }
130
 
131
  if ( $lazyload ) {
132
+ $noscript = apply_filters( 'vpf_wp_get_attachment_image', false, $attachment_id, $size, $attr, false );
133
 
134
  if ( ! $noscript ) {
135
  $noscript = wp_get_attachment_image( $attachment_id, $size, $icon, $attr );
144
  self::$image_processing = true;
145
  }
146
 
147
+ $image = apply_filters( 'vpf_wp_get_attachment_image', false, $attachment_id, $size, $attr, $lazyload );
148
 
149
  if ( ! $image ) {
150
  $image = wp_get_attachment_image( $attachment_id, $size, $icon, $attr );
classes/class-migration.php CHANGED
@@ -18,7 +18,7 @@ class Visual_Portfolio_Migrations {
18
  *
19
  * @var string
20
  */
21
- protected $version = '2.9.0';
22
 
23
  /**
24
  * Initial version.
18
  *
19
  * @var string
20
  */
21
+ protected $version = '2.9.1';
22
 
23
  /**
24
  * Initial version.
classes/class-preview.php CHANGED
@@ -232,7 +232,7 @@ class Visual_Portfolio_Preview {
232
 
233
  // Enqueue assets.
234
  wp_enqueue_script( 'iframe-resizer-content', visual_portfolio()->plugin_url . 'assets/vendor/iframe-resizer/js/iframeResizer.contentWindow.min.js', array(), '4.2.11', true );
235
- wp_enqueue_script( 'visual-portfolio-preview', visual_portfolio()->plugin_url . 'assets/js/preview.min.js', array( 'jquery', 'iframe-resizer-content' ), '2.9.0', true );
236
 
237
  // Post data for script.
238
  wp_localize_script(
@@ -275,7 +275,7 @@ class Visual_Portfolio_Preview {
275
  Visual_Portfolio_Assets::enqueue( $options );
276
 
277
  // Custom styles.
278
- visual_portfolio()->include_template_style( 'visual-portfolio-preview', 'preview/style', array(), '2.9.0' );
279
 
280
  // Output template.
281
  visual_portfolio()->include_template(
232
 
233
  // Enqueue assets.
234
  wp_enqueue_script( 'iframe-resizer-content', visual_portfolio()->plugin_url . 'assets/vendor/iframe-resizer/js/iframeResizer.contentWindow.min.js', array(), '4.2.11', true );
235
+ wp_enqueue_script( 'visual-portfolio-preview', visual_portfolio()->plugin_url . 'assets/js/preview.min.js', array( 'jquery', 'iframe-resizer-content' ), '2.9.1', true );
236
 
237
  // Post data for script.
238
  wp_localize_script(
275
  Visual_Portfolio_Assets::enqueue( $options );
276
 
277
  // Custom styles.
278
+ visual_portfolio()->include_template_style( 'visual-portfolio-preview', 'preview/style', array(), '2.9.1' );
279
 
280
  // Output template.
281
  visual_portfolio()->include_template(
classes/class-settings.php CHANGED
@@ -367,7 +367,7 @@ class Visual_Portfolio_Settings {
367
  array(
368
  'name' => 'deep_linking',
369
  'label' => esc_html__( 'Deep Linking', 'visual-portfolio' ),
370
- 'desc' => esc_html__( 'Makes URL automatically change when you open popup and you can easily link to specific popup image.', 'visual-portfolio' ),
371
  'type' => 'checkbox',
372
  'default' => ! class_exists( 'Visual_Portfolio_Pro' ) ? 'off' : 'on',
373
  'is_pro' => true,
@@ -473,7 +473,7 @@ class Visual_Portfolio_Settings {
473
  <h3>' . esc_html__( 'PRO Feature', 'visual-portfolio' ) . '</h3>
474
  <div>
475
  <p>' . esc_html__( 'Social feeds such as Instagram, Youtube, Flickr, Twitter, etc...', 'visual-portfolio' ) . '</p>
476
- <a class="vpf-settings-info-pro-button" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=plugin_settings&utm_content=2.9.0">' . esc_html__( 'Read More', 'visual-portfolio' ) . '</a>
477
  </div>
478
  </div>
479
  ',
367
  array(
368
  'name' => 'deep_linking',
369
  'label' => esc_html__( 'Deep Linking', 'visual-portfolio' ),
370
+ 'desc' => esc_html__( 'Makes URL automatically change to reflect the current opened popup, and you can easily link directly to that image or video.', 'visual-portfolio' ),
371
  'type' => 'checkbox',
372
  'default' => ! class_exists( 'Visual_Portfolio_Pro' ) ? 'off' : 'on',
373
  'is_pro' => true,
473
  <h3>' . esc_html__( 'PRO Feature', 'visual-portfolio' ) . '</h3>
474
  <div>
475
  <p>' . esc_html__( 'Social feeds such as Instagram, Youtube, Flickr, Twitter, etc...', 'visual-portfolio' ) . '</p>
476
+ <a class="vpf-settings-info-pro-button" target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&utm_medium=link&utm_campaign=plugin_settings&utm_content=2.9.1">' . esc_html__( 'Read More', 'visual-portfolio' ) . '</a>
477
  </div>
478
  </div>
479
  ',
classes/class-supported-themes.php CHANGED
@@ -74,7 +74,7 @@ class Visual_Portfolio_Supported_Themes {
74
  public function wp_enqueue_scripts() {
75
  $theme_compat = $this->get_theme_compatibility_style();
76
  if ( $theme_compat ) {
77
- wp_enqueue_style( $theme_compat['name'], $theme_compat['url'], array(), '2.9.0' );
78
  wp_style_add_data( $theme_compat['name'], 'rtl', 'replace' );
79
  wp_style_add_data( $theme_compat['name'], 'suffix', '.min' );
80
  }
74
  public function wp_enqueue_scripts() {
75
  $theme_compat = $this->get_theme_compatibility_style();
76
  if ( $theme_compat ) {
77
+ wp_enqueue_style( $theme_compat['name'], $theme_compat['url'], array(), '2.9.1' );
78
  wp_style_add_data( $theme_compat['name'], 'rtl', 'replace' );
79
  wp_style_add_data( $theme_compat['name'], 'suffix', '.min' );
80
  }
classes/class-tinymce.php CHANGED
@@ -70,7 +70,7 @@ class Visual_Portfolio_TinyMCE {
70
  return;
71
  }
72
 
73
- wp_enqueue_script( 'visual-portfolio-tinymce-localize', visual_portfolio()->plugin_url . 'assets/admin/js/mce-localize.min.js', array(), '2.9.0', true );
74
  wp_localize_script( 'visual-portfolio-tinymce-localize', 'VPTinyMCEOptions', $data_tiny_mce );
75
  }
76
  }
70
  return;
71
  }
72
 
73
+ wp_enqueue_script( 'visual-portfolio-tinymce-localize', visual_portfolio()->plugin_url . 'assets/admin/js/mce-localize.min.js', array(), '2.9.1', true );
74
  wp_localize_script( 'visual-portfolio-tinymce-localize', 'VPTinyMCEOptions', $data_tiny_mce );
75
  }
76
  }
classes/class-vc.php CHANGED
@@ -35,7 +35,7 @@ class Visual_Portfolio_VC {
35
  */
36
  public function admin_enqueue_scripts( $page ) {
37
  if ( 'post.php' === $page || 'post-new.php' === $page ) {
38
- wp_enqueue_script( 'visual-portfolio-vc-frontend', visual_portfolio()->plugin_url . 'assets/admin/js/vc-frontend.min.js', array( 'jquery' ), '2.9.0', true );
39
  }
40
  }
41
 
35
  */
36
  public function admin_enqueue_scripts( $page ) {
37
  if ( 'post.php' === $page || 'post-new.php' === $page ) {
38
+ wp_enqueue_script( 'visual-portfolio-vc-frontend', visual_portfolio()->plugin_url . 'assets/admin/js/vc-frontend.min.js', array( 'jquery' ), '2.9.1', true );
39
  }
40
  }
41
 
classes/class-wpml.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Register some fields for WPML.
4
+ *
5
+ * @package visual-portfolio/preview
6
+ */
7
+
8
+ if ( ! defined( 'ABSPATH' ) ) {
9
+ exit;
10
+ }
11
+
12
+ // phpcs:disable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase
13
+
14
+ /**
15
+ * Class Visual_Portfolio_WPML
16
+ */
17
+ class Visual_Portfolio_WPML {
18
+ /**
19
+ * Visual_Portfolio_WPML constructor.
20
+ */
21
+ public function __construct() {
22
+ global $iclTranslationManagement;
23
+
24
+ if ( ! isset( $iclTranslationManagement ) ) {
25
+ return;
26
+ }
27
+
28
+ add_filter( 'vpf_registered_controls', array( $this, 'make_control_translatable' ) );
29
+ }
30
+
31
+ /**
32
+ * Make Control Translatable.
33
+ * https://wpml.org/forums/topic/unable-to-save-custom-field-translation-settings-when-acf-ml-is-installed/
34
+ *
35
+ * @param array $controls - controls array.
36
+ *
37
+ * @return array
38
+ */
39
+ public function make_control_translatable( $controls ) {
40
+ global $iclTranslationManagement;
41
+
42
+ $allow_save = false;
43
+
44
+ // Prepare Saved Layouts meta fields.
45
+ foreach ( $controls as $control ) {
46
+ $name = 'vp_' . $control['name'];
47
+
48
+ // Create initial arrays.
49
+ if ( ! isset( $iclTranslationManagement->settings['custom_fields_translation'] ) ) {
50
+ $iclTranslationManagement->settings['custom_fields_translation'] = array();
51
+ }
52
+ if ( ! isset( $iclTranslationManagement->settings['custom_fields_readonly_config'] ) ) {
53
+ $iclTranslationManagement->settings['custom_fields_readonly_config'] = array();
54
+ }
55
+
56
+ // Add fields translation.
57
+ if ( ! isset( $iclTranslationManagement->settings['custom_fields_translation'][ $name ] ) ) {
58
+ $iclTranslationManagement->settings['custom_fields_translation'][ $name ] = $control['wpml'] ? WPML_TRANSLATE_CUSTOM_FIELD : WPML_COPY_CUSTOM_FIELD;
59
+
60
+ $allow_save = true;
61
+ }
62
+
63
+ // Add fields read only.
64
+ if ( ! in_array( $name, $iclTranslationManagement->settings['custom_fields_readonly_config'], true ) ) {
65
+ $iclTranslationManagement->settings['custom_fields_readonly_config'][] = $name;
66
+
67
+ $allow_save = true;
68
+ }
69
+ }
70
+
71
+ // Images meta array.
72
+ if ( ! isset( $iclTranslationManagement->settings['custom_fields_attributes_whitelist']['vp_images'] ) ) {
73
+ $iclTranslationManagement->settings['custom_fields_attributes_whitelist']['vp_images'] = array(
74
+ '*' => array(
75
+ 'title' => array(),
76
+ 'description' => array(),
77
+ 'author' => array(),
78
+ 'categories' => array(),
79
+ ),
80
+ );
81
+
82
+ $allow_save = true;
83
+ }
84
+
85
+ if ( $allow_save ) {
86
+ $iclTranslationManagement->save_settings();
87
+ }
88
+
89
+ return $controls;
90
+ }
91
+ }
92
+
93
+ new Visual_Portfolio_WPML();
gutenberg/components/controls-render/index.js CHANGED
@@ -463,7 +463,7 @@ ControlsRender.Control = function( props ) {
463
  { renderControlHelp ? (
464
  <p>{ renderControlHelp }</p>
465
  ) : '' }
466
- <ProNote.Button target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&amp;utm_medium=link&amp;utm_campaign=block_settings&amp;utm_content=2.9.0">
467
  { __( 'Read More', 'visual-portfolio' ) }
468
  </ProNote.Button>
469
  </ProNote>
463
  { renderControlHelp ? (
464
  <p>{ renderControlHelp }</p>
465
  ) : '' }
466
+ <ProNote.Button target="_blank" rel="noopener noreferrer" href="https://visualportfolio.co/pro/?utm_source=freeplugin&amp;utm_medium=link&amp;utm_campaign=block_settings&amp;utm_content=2.9.1">
467
  { __( 'Read More', 'visual-portfolio' ) }
468
  </ProNote.Button>
469
  </ProNote>
languages/visual-portfolio.pot CHANGED
@@ -87,7 +87,7 @@ msgstr ""
87
  msgid "Coverflow"
88
  msgstr ""
89
 
90
- #: dist/visual-portfolio/classes/class-admin.php:344, dist/visual-portfolio/classes/class-admin.php:777
91
  msgid "Fade"
92
  msgstr ""
93
 
@@ -135,7 +135,7 @@ msgstr ""
135
  msgid "Slides Per View"
136
  msgstr ""
137
 
138
- #: dist/visual-portfolio/classes/class-admin.php:439, dist/visual-portfolio/classes/class-admin.php:609, dist/visual-portfolio/classes/class-admin.php:1444, dist/visual-portfolio/classes/class-admin.php:1461
139
  msgid "Custom"
140
  msgstr ""
141
 
@@ -155,7 +155,7 @@ msgstr ""
155
  msgid "Free Scroll Sticky"
156
  msgstr ""
157
 
158
- #: dist/visual-portfolio/classes/class-admin.php:506, dist/visual-portfolio/classes/class-admin.php:2696, dist/visual-portfolio/classes/class-settings.php:379
159
  msgid "Display Arrows"
160
  msgstr ""
161
 
@@ -187,7 +187,7 @@ msgstr ""
187
  msgid "Thumbnails Per View"
188
  msgstr ""
189
 
190
- #: dist/visual-portfolio/classes/class-admin.php:653, dist/visual-portfolio/classes/class-admin.php:2179, dist/visual-portfolio/classes/class-admin.php:2307, dist/visual-portfolio/classes/class-admin.php:2429
191
  msgid "Classic"
192
  msgstr ""
193
 
@@ -195,7 +195,7 @@ msgstr ""
195
  msgid "Display Read More Button"
196
  msgstr ""
197
 
198
- #: dist/visual-portfolio/classes/class-admin.php:675, dist/visual-portfolio/classes/class-admin.php:1534, dist/visual-portfolio/classes/class-admin.php:1813
199
  msgid "Hide"
200
  msgstr ""
201
 
@@ -211,562 +211,570 @@ msgstr ""
211
  msgid "Read More Button Label"
212
  msgstr ""
213
 
214
- #: dist/visual-portfolio/classes/class-admin.php:697, dist/visual-portfolio/classes/class-admin.php:795
215
  msgid "Display Overlay"
216
  msgstr ""
217
 
218
- #: dist/visual-portfolio/classes/class-admin.php:701, dist/visual-portfolio/classes/class-admin.php:799, dist/visual-portfolio/classes/class-admin.php:912, dist/visual-portfolio/classes/class-admin.php:971
219
  msgid "Hover State Only"
220
  msgstr ""
221
 
222
- #: dist/visual-portfolio/classes/class-admin.php:702, dist/visual-portfolio/classes/class-admin.php:800, dist/visual-portfolio/classes/class-admin.php:913, dist/visual-portfolio/classes/class-admin.php:972
223
  msgid "Default State Only"
224
  msgstr ""
225
 
226
- #: dist/visual-portfolio/classes/class-admin.php:703, dist/visual-portfolio/classes/class-admin.php:801, dist/visual-portfolio/classes/class-admin.php:914, dist/visual-portfolio/classes/class-admin.php:973
227
  msgid "Always"
228
  msgstr ""
229
 
230
- #: dist/visual-portfolio/classes/class-admin.php:708, dist/visual-portfolio/classes/class-admin.php:806, dist/visual-portfolio/classes/class-admin.php:857
231
  msgid "Overlay Background Color"
232
  msgstr ""
233
 
234
- #: dist/visual-portfolio/classes/class-admin.php:720, dist/visual-portfolio/classes/class-admin.php:818, dist/visual-portfolio/classes/class-admin.php:869
235
  msgid "Overlay Text Color"
236
  msgstr ""
237
 
238
- #: dist/visual-portfolio/classes/class-admin.php:732, dist/visual-portfolio/classes/class-admin.php:931
239
  msgid "Caption Text Color"
240
  msgstr ""
241
 
242
- #: dist/visual-portfolio/classes/class-admin.php:744, dist/visual-portfolio/classes/class-admin.php:943
243
  msgid "Caption Links Color"
244
  msgstr ""
245
 
246
- #: dist/visual-portfolio/classes/class-admin.php:756, dist/visual-portfolio/classes/class-admin.php:955
247
  msgid "Caption Links Hover Color"
248
  msgstr ""
249
 
250
- #: dist/visual-portfolio/classes/class-admin.php:769, dist/visual-portfolio/classes/class-admin.php:831, dist/visual-portfolio/classes/class-admin.php:882, dist/visual-portfolio/classes/class-admin.php:991, dist/visual-portfolio/classes/class-admin.php:1340, dist/visual-portfolio/classes/class-admin.php:1506, dist/visual-portfolio/classes/class-admin.php:2078, dist/visual-portfolio/classes/class-admin.php:2410, dist/visual-portfolio/classes/class-settings.php:473
251
  msgid "PRO Feature"
252
  msgstr ""
253
 
254
- #: dist/visual-portfolio/classes/class-admin.php:770, dist/visual-portfolio/classes/class-admin.php:832, dist/visual-portfolio/classes/class-admin.php:883, dist/visual-portfolio/classes/class-admin.php:992
255
  msgid "Instagram-like filters for your images"
256
  msgstr ""
257
 
258
- #: dist/visual-portfolio/classes/class-admin.php:839
259
  msgid "Fly"
260
  msgstr ""
261
 
262
- #: dist/visual-portfolio/classes/class-admin.php:890
263
  msgid "Emerge"
264
  msgstr ""
265
 
266
- #: dist/visual-portfolio/classes/class-admin.php:908
267
  msgid "Display Caption"
268
  msgstr ""
269
 
270
- #: dist/visual-portfolio/classes/class-admin.php:919
271
  msgid "Caption Background Color"
272
  msgstr ""
273
 
274
- #: dist/visual-portfolio/classes/class-admin.php:967
275
  msgid "Display Image Overlay"
276
  msgstr ""
277
 
278
- #: dist/visual-portfolio/classes/class-admin.php:978
279
  msgid "Image Overlay Background Color"
280
  msgstr ""
281
 
282
- #: dist/visual-portfolio/classes/class-admin.php:1013
283
  msgid "Content Source"
284
  msgstr ""
285
 
286
- #: dist/visual-portfolio/classes/class-admin.php:1021
287
  msgid "Posts Settings"
288
  msgstr ""
289
 
290
- #: dist/visual-portfolio/classes/class-admin.php:1026
291
  msgid "Images Settings"
292
  msgstr ""
293
 
294
- #: dist/visual-portfolio/classes/class-admin.php:1031
295
  msgid "Social Stream Settings"
296
  msgstr ""
297
 
298
- #: dist/visual-portfolio/classes/class-admin.php:1036
299
  msgid "Layout"
300
  msgstr ""
301
 
302
- #: dist/visual-portfolio/classes/class-admin.php:1041
303
  msgid "Items Style"
304
  msgstr ""
305
 
306
- #: dist/visual-portfolio/classes/class-admin.php:1046
307
  msgid "Items Click Action"
308
  msgstr ""
309
 
310
- #: dist/visual-portfolio/classes/class-admin.php:1051
311
  msgid "Custom CSS"
312
  msgstr ""
313
 
314
- #: dist/visual-portfolio/classes/class-admin.php:1082
315
  msgid "Posts"
316
  msgstr ""
317
 
318
- #: dist/visual-portfolio/classes/class-admin.php:1087, dist/visual-portfolio/classes/class-settings.php:135
319
  msgid "Images"
320
  msgstr ""
321
 
322
- #: dist/visual-portfolio/classes/class-admin.php:1092
323
  msgid "Social"
324
  msgstr ""
325
 
326
- #: dist/visual-portfolio/classes/class-admin.php:1121, dist/visual-portfolio/classes/class-admin.php:2841
327
  msgid "Custom Query"
328
  msgstr ""
329
 
330
  #. translators: %1$s - escaped url.
331
- #: dist/visual-portfolio/classes/class-admin.php:1123
332
  msgid "Build custom query according to WordPress Codex. See example here <a href=\"%1$s\">%1$s</a>."
333
  msgstr ""
334
 
335
- #: dist/visual-portfolio/classes/class-admin.php:1140
336
  msgid "Specific Posts"
337
  msgstr ""
338
 
339
- #: dist/visual-portfolio/classes/class-admin.php:1158
340
  msgid "Excluded Posts"
341
  msgstr ""
342
 
343
- #: dist/visual-portfolio/classes/class-admin.php:1187
344
  msgid "Taxonomies"
345
  msgstr ""
346
 
347
- #: dist/visual-portfolio/classes/class-admin.php:1216
348
  msgid "Taxonomies Relation"
349
  msgstr ""
350
 
351
- #: dist/visual-portfolio/classes/class-admin.php:1220
352
  msgid "OR"
353
  msgstr ""
354
 
355
- #: dist/visual-portfolio/classes/class-admin.php:1221
356
  msgid "AND"
357
  msgstr ""
358
 
359
- #: dist/visual-portfolio/classes/class-admin.php:1246, dist/visual-portfolio/classes/class-admin.php:1473
360
  msgid "Order by"
361
  msgstr ""
362
 
363
- #: dist/visual-portfolio/classes/class-admin.php:1250, dist/visual-portfolio/templates/items-list/items-style/meta.php:146, dist/visual-portfolio/templates/items-list/items-style/emerge/meta.php:147, dist/visual-portfolio/templates/items-list/items-style/fade/meta.php:178, dist/visual-portfolio/templates/items-list/items-style/fly/meta.php:177
364
  msgid "Date"
365
  msgstr ""
366
 
367
- #: dist/visual-portfolio/classes/class-admin.php:1251, dist/visual-portfolio/classes/class-admin.php:1358, dist/visual-portfolio/classes/class-admin.php:1479, dist/visual-portfolio/classes/class-admin.php:2033
368
  msgid "Title"
369
  msgstr ""
370
 
371
- #: dist/visual-portfolio/classes/class-admin.php:1252
372
  msgid "ID"
373
  msgstr ""
374
 
375
- #: dist/visual-portfolio/classes/class-admin.php:1253
376
  msgid "Comments Count"
377
  msgstr ""
378
 
379
- #: dist/visual-portfolio/classes/class-admin.php:1254
380
  msgid "Modified"
381
  msgstr ""
382
 
383
- #: dist/visual-portfolio/classes/class-admin.php:1255
384
  msgid "Menu Order"
385
  msgstr ""
386
 
387
- #: dist/visual-portfolio/classes/class-admin.php:1256, dist/visual-portfolio/classes/class-admin.php:1480
388
  msgid "Random"
389
  msgstr ""
390
 
391
- #: dist/visual-portfolio/classes/class-admin.php:1276, dist/visual-portfolio/classes/class-admin.php:1488
392
  msgid "Order Direction"
393
  msgstr ""
394
 
395
- #: dist/visual-portfolio/classes/class-admin.php:1280, dist/visual-portfolio/classes/class-admin.php:1492
396
  msgid "ASC"
397
  msgstr ""
398
 
399
- #: dist/visual-portfolio/classes/class-admin.php:1281, dist/visual-portfolio/classes/class-admin.php:1493
400
  msgid "DESC"
401
  msgstr ""
402
 
403
- #: dist/visual-portfolio/classes/class-admin.php:1301
404
  msgid "Avoid Duplicates"
405
  msgstr ""
406
 
407
- #: dist/visual-portfolio/classes/class-admin.php:1302
408
  msgid "Enable to avoid duplicate posts from showing up. This only affects the frontend"
409
  msgstr ""
410
 
411
- #: dist/visual-portfolio/classes/class-admin.php:1311
412
  msgid "Offset"
413
  msgstr ""
414
 
415
- #: dist/visual-portfolio/classes/class-admin.php:1312
416
  msgid "Use this setting to skip over posts (e.g. `2` to skip over 2 posts)"
417
  msgstr ""
418
 
419
- #: dist/visual-portfolio/classes/class-admin.php:1341
420
  msgid "Additional query settings."
421
  msgstr ""
422
 
423
- #: dist/visual-portfolio/classes/class-admin.php:1369, dist/visual-portfolio/classes/class-admin.php:2055
424
  msgid "Description"
425
  msgstr ""
426
 
427
- #: dist/visual-portfolio/classes/class-admin.php:1380, dist/visual-portfolio/classes/class-custom-post-type.php:124
428
  msgid "Categories"
429
  msgstr ""
430
 
431
- #: dist/visual-portfolio/classes/class-admin.php:1386
432
  msgid "Format"
433
  msgstr ""
434
 
435
- #: dist/visual-portfolio/classes/class-admin.php:1389
436
  msgid "Standard"
437
  msgstr ""
438
 
439
- #: dist/visual-portfolio/classes/class-admin.php:1390, dist/visual-portfolio/classes/class-custom-post-meta.php:140
440
  msgid "Video"
441
  msgstr ""
442
 
443
- #: dist/visual-portfolio/classes/class-admin.php:1395
444
  msgid "Video URL"
445
  msgstr ""
446
 
447
- #: dist/visual-portfolio/classes/class-admin.php:1396, dist/visual-portfolio/classes/class-admin.php:1409
448
  msgid "https://..."
449
  msgstr ""
450
 
451
- #: dist/visual-portfolio/classes/class-admin.php:1397
452
  msgid "Full list of supported links"
453
  msgstr ""
454
 
455
- #: dist/visual-portfolio/classes/class-admin.php:1397
456
  msgid "see here"
457
  msgstr ""
458
 
459
- #: dist/visual-portfolio/classes/class-admin.php:1407, dist/visual-portfolio/classes/class-admin.php:1979
460
  msgid "URL"
461
  msgstr ""
462
 
463
- #: dist/visual-portfolio/classes/class-admin.php:1408
464
  msgid "By default used full image url, you can use custom one"
465
  msgstr ""
466
 
467
- #: dist/visual-portfolio/classes/class-admin.php:1413
468
  msgid "Author Name"
469
  msgstr ""
470
 
471
- #: dist/visual-portfolio/classes/class-admin.php:1418
472
  msgid "Author URL"
473
  msgstr ""
474
 
475
- #: dist/visual-portfolio/classes/class-admin.php:1439
476
- msgid "Titles"
477
  msgstr ""
478
 
479
- #: dist/visual-portfolio/classes/class-admin.php:1443, dist/visual-portfolio/classes/class-admin.php:1460, dist/visual-portfolio/classes/class-admin.php:2037, dist/visual-portfolio/classes/class-admin.php:2059
480
  msgid "None"
481
  msgstr ""
482
 
483
- #: dist/visual-portfolio/classes/class-admin.php:1445, dist/visual-portfolio/classes/class-admin.php:1462, dist/visual-portfolio/classes/class-admin.php:2038, dist/visual-portfolio/classes/class-admin.php:2060
484
  msgid "Image Title"
485
  msgstr ""
486
 
487
- #: dist/visual-portfolio/classes/class-admin.php:1446, dist/visual-portfolio/classes/class-admin.php:1463, dist/visual-portfolio/classes/class-admin.php:2039, dist/visual-portfolio/classes/class-admin.php:2061
488
  msgid "Image Caption"
489
  msgstr ""
490
 
491
- #: dist/visual-portfolio/classes/class-admin.php:1447, dist/visual-portfolio/classes/class-admin.php:1464, dist/visual-portfolio/classes/class-admin.php:2040, dist/visual-portfolio/classes/class-admin.php:2062
492
  msgid "Image Alt"
493
  msgstr ""
494
 
495
- #: dist/visual-portfolio/classes/class-admin.php:1448, dist/visual-portfolio/classes/class-admin.php:1465, dist/visual-portfolio/classes/class-admin.php:2041, dist/visual-portfolio/classes/class-admin.php:2063
496
  msgid "Image Description"
497
  msgstr ""
498
 
499
- #: dist/visual-portfolio/classes/class-admin.php:1456
500
- msgid "Descriptions"
501
  msgstr ""
502
 
503
- #: dist/visual-portfolio/classes/class-admin.php:1477, dist/visual-portfolio/classes/class-admin.php:1814, dist/visual-portfolio/classes/class-admin.php:2000
504
  msgid "Default"
505
  msgstr ""
506
 
507
- #: dist/visual-portfolio/classes/class-admin.php:1478
508
  msgid "Uploaded"
509
  msgstr ""
510
 
511
- #: dist/visual-portfolio/classes/class-admin.php:1507, dist/visual-portfolio/classes/class-settings.php:475
512
  msgid "Social feeds such as Instagram, Youtube, Flickr, Twitter, etc..."
513
  msgstr ""
514
 
515
- #: dist/visual-portfolio/classes/class-admin.php:1518
516
  msgid "Items Per Page"
517
  msgstr ""
518
 
519
- #: dist/visual-portfolio/classes/class-admin.php:1529
520
  msgid "No Items Action"
521
  msgstr ""
522
 
523
- #: dist/visual-portfolio/classes/class-admin.php:1533, dist/visual-portfolio/classes/class-admin.php:1542
524
  msgid "Notice"
525
  msgstr ""
526
 
527
- #: dist/visual-portfolio/classes/class-admin.php:1544
528
  msgid "No items were found matching your selection."
529
  msgstr ""
530
 
531
- #: dist/visual-portfolio/classes/class-admin.php:1558
532
  msgid "Note: you will see the notice in the preview. Block will be hidden in the site frontend."
533
  msgstr ""
534
 
535
- #: dist/visual-portfolio/classes/class-admin.php:1574
536
  msgid "Stretch"
537
  msgstr ""
538
 
539
- #: dist/visual-portfolio/classes/class-admin.php:1577
540
  msgid "Break container and display it wide"
541
  msgstr ""
542
 
543
- #: dist/visual-portfolio/classes/class-admin.php:1646
544
  msgid "Gap"
545
  msgstr ""
546
 
547
- #: dist/visual-portfolio/classes/class-admin.php:1664
548
  msgid "Vertical Gap"
549
  msgstr ""
550
 
551
- #: dist/visual-portfolio/classes/class-admin.php:1665
552
  msgid "When empty, used Gap option"
553
  msgstr ""
554
 
555
- #: dist/visual-portfolio/classes/class-admin.php:1763
556
  msgid "Images Rounded Corners"
557
  msgstr ""
558
 
559
- #: dist/visual-portfolio/classes/class-admin.php:1780
560
  msgid "Display Title"
561
  msgstr ""
562
 
563
- #: dist/visual-portfolio/classes/class-admin.php:1788
564
  msgid "Display Categories"
565
  msgstr ""
566
 
567
- #: dist/visual-portfolio/classes/class-admin.php:1794
568
  msgid "Categories Count"
569
  msgstr ""
570
 
571
- #: dist/visual-portfolio/classes/class-admin.php:1809
572
  msgid "Display Date"
573
  msgstr ""
574
 
575
- #: dist/visual-portfolio/classes/class-admin.php:1815
576
  msgid "Human Format"
577
  msgstr ""
578
 
579
- #: dist/visual-portfolio/classes/class-admin.php:1823
580
  msgid ""
581
  "Date format
582
  " Example: F j, Y"
583
  msgstr ""
584
 
585
- #: dist/visual-portfolio/classes/class-admin.php:1835
586
  msgid "Display Author"
587
  msgstr ""
588
 
589
- #: dist/visual-portfolio/classes/class-admin.php:1843
590
  msgid "Display Comments Count"
591
  msgstr ""
592
 
593
- #: dist/visual-portfolio/classes/class-admin.php:1857
594
  msgid "Display Views Count"
595
  msgstr ""
596
 
597
- #: dist/visual-portfolio/classes/class-admin.php:1871
598
  msgid "Display Reading Time"
599
  msgstr ""
600
 
601
- #: dist/visual-portfolio/classes/class-admin.php:1885
602
  msgid "Display Excerpt"
603
  msgstr ""
604
 
605
- #: dist/visual-portfolio/classes/class-admin.php:1891
606
  msgid "Excerpt Words Count"
607
  msgstr ""
608
 
609
- #: dist/visual-portfolio/classes/class-admin.php:1906
610
  msgid "Display Icon"
611
  msgstr ""
612
 
613
- #: dist/visual-portfolio/classes/class-admin.php:1914
614
  msgid "Caption Align"
615
  msgstr ""
616
 
617
- #: dist/visual-portfolio/classes/class-admin.php:1974
618
  msgid "Disabled"
619
  msgstr ""
620
 
621
- #: dist/visual-portfolio/classes/class-admin.php:1984
622
  msgid "Popup"
623
  msgstr ""
624
 
625
- #: dist/visual-portfolio/classes/class-admin.php:1996
626
  msgid "Target"
627
  msgstr ""
628
 
629
- #: dist/visual-portfolio/classes/class-admin.php:2001
630
  msgid "New Tab (_blank)"
631
  msgstr ""
632
 
633
- #: dist/visual-portfolio/classes/class-admin.php:2002
634
  msgid "Top Frame (_top)"
635
  msgstr ""
636
 
637
- #: dist/visual-portfolio/classes/class-admin.php:2016
638
  msgid "Rel"
639
  msgstr ""
640
 
641
- #: dist/visual-portfolio/classes/class-admin.php:2079
 
 
 
 
 
 
 
 
642
  msgid "Display pages in popup iframe, not just images."
643
  msgstr ""
644
 
645
- #: dist/visual-portfolio/classes/class-admin.php:2099
646
  msgid "Top"
647
  msgstr ""
648
 
649
- #: dist/visual-portfolio/classes/class-admin.php:2109
650
  msgid "Bottom"
651
  msgstr ""
652
 
653
- #: dist/visual-portfolio/classes/class-admin.php:2133
654
  msgid "Filter"
655
  msgstr ""
656
 
657
- #: dist/visual-portfolio/classes/class-admin.php:2139
658
  msgid "Sort"
659
  msgstr ""
660
 
661
- #: dist/visual-portfolio/classes/class-admin.php:2145
662
  msgid "Search"
663
  msgstr ""
664
 
665
- #: dist/visual-portfolio/classes/class-admin.php:2151
666
  msgid "Items"
667
  msgstr ""
668
 
669
- #: dist/visual-portfolio/classes/class-admin.php:2156
670
  msgid "Pagination"
671
  msgstr ""
672
 
673
- #: dist/visual-portfolio/classes/class-admin.php:2172, dist/visual-portfolio/classes/class-admin.php:2300, dist/visual-portfolio/classes/class-admin.php:2422
674
  msgid "Minimal"
675
  msgstr ""
676
 
677
- #: dist/visual-portfolio/classes/class-admin.php:2186, dist/visual-portfolio/classes/class-admin.php:2314
678
  msgid "Dropdown"
679
  msgstr ""
680
 
681
- #: dist/visual-portfolio/classes/class-admin.php:2278
682
  msgid "Display Count"
683
  msgstr ""
684
 
685
- #: dist/visual-portfolio/classes/class-admin.php:2287
686
  msgid "All Button Text"
687
  msgstr ""
688
 
689
- #: dist/visual-portfolio/classes/class-admin.php:2289
690
  msgid "All"
691
  msgstr ""
692
 
693
- #: dist/visual-portfolio/classes/class-admin.php:2411
694
  msgid "The search module is only available for PRO users."
695
  msgstr ""
696
 
697
- #: dist/visual-portfolio/classes/class-admin.php:2516
698
  msgid "Type"
699
  msgstr ""
700
 
701
- #: dist/visual-portfolio/classes/class-admin.php:2523
702
  msgid "Paged"
703
  msgstr ""
704
 
705
- #: dist/visual-portfolio/classes/class-admin.php:2528, dist/visual-portfolio/classes/class-admin.php:2589, dist/visual-portfolio/classes/class-admin.php:2643
706
  msgid "Load More"
707
  msgstr ""
708
 
709
- #: dist/visual-portfolio/classes/class-admin.php:2533
710
  msgid "Infinite"
711
  msgstr ""
712
 
713
- #: dist/visual-portfolio/classes/class-admin.php:2543
714
  msgid "Note: you will see the \"Load More\" pagination in the preview. \"Infinite\" pagination will be visible on the site."
715
  msgstr ""
716
 
717
- #: dist/visual-portfolio/classes/class-admin.php:2558, dist/visual-portfolio/classes/class-admin.php:2573
718
  msgid "Texts"
719
  msgstr ""
720
 
721
- #: dist/visual-portfolio/classes/class-admin.php:2590, dist/visual-portfolio/classes/class-admin.php:2591, dist/visual-portfolio/classes/class-admin.php:2644, dist/visual-portfolio/classes/class-admin.php:2645
722
  msgid "Load more button label"
723
  msgstr ""
724
 
725
- #: dist/visual-portfolio/classes/class-admin.php:2607, dist/visual-portfolio/classes/class-admin.php:2661
726
  msgid "Loading More..."
727
  msgstr ""
728
 
729
- #: dist/visual-portfolio/classes/class-admin.php:2608, dist/visual-portfolio/classes/class-admin.php:2609, dist/visual-portfolio/classes/class-admin.php:2662, dist/visual-portfolio/classes/class-admin.php:2663
730
  msgid "Loading more button label"
731
  msgstr ""
732
 
733
- #: dist/visual-portfolio/classes/class-admin.php:2625, dist/visual-portfolio/classes/class-admin.php:2679
734
  msgid "You’ve reached the end of the list"
735
  msgstr ""
736
 
737
- #: dist/visual-portfolio/classes/class-admin.php:2626, dist/visual-portfolio/classes/class-admin.php:2627, dist/visual-portfolio/classes/class-admin.php:2680, dist/visual-portfolio/classes/class-admin.php:2681
738
  msgid "End of the list text"
739
  msgstr ""
740
 
741
- #: dist/visual-portfolio/classes/class-admin.php:2711
742
  msgid "Display Numbers"
743
  msgstr ""
744
 
745
- #: dist/visual-portfolio/classes/class-admin.php:2726
746
  msgid "Scroll to Top"
747
  msgstr ""
748
 
749
- #: dist/visual-portfolio/classes/class-admin.php:2741
750
  msgid "Scroll to Top Offset"
751
  msgstr ""
752
 
753
- #: dist/visual-portfolio/classes/class-admin.php:2759
754
  msgid "Hide on Reached End"
755
  msgstr ""
756
 
757
- #: dist/visual-portfolio/classes/class-admin.php:2789
758
  msgid "Use <code>selector</code> rule to change block styles."
759
  msgstr ""
760
 
761
- #: dist/visual-portfolio/classes/class-admin.php:2790
762
  msgid "Example:"
763
  msgstr ""
764
 
765
- #: dist/visual-portfolio/classes/class-admin.php:2836
766
  msgid "Manual Selection"
767
  msgstr ""
768
 
769
- #: dist/visual-portfolio/classes/class-admin.php:2846
770
  msgid "Current Query"
771
  msgstr ""
772
 
@@ -850,7 +858,7 @@ msgstr ""
850
  msgid "Zoom"
851
  msgstr ""
852
 
853
- #: dist/visual-portfolio/classes/class-controls.php:155
854
  msgid "Dynamic control callback function is not found."
855
  msgstr ""
856
 
@@ -1202,7 +1210,7 @@ msgid "Deep Linking"
1202
  msgstr ""
1203
 
1204
  #: dist/visual-portfolio/classes/class-settings.php:370
1205
- msgid "Makes URL automatically change when you open popup and you can easily link to specific popup image."
1206
  msgstr ""
1207
 
1208
  #: dist/visual-portfolio/classes/class-settings.php:380
87
  msgid "Coverflow"
88
  msgstr ""
89
 
90
+ #: dist/visual-portfolio/classes/class-admin.php:344, dist/visual-portfolio/classes/class-admin.php:778
91
  msgid "Fade"
92
  msgstr ""
93
 
135
  msgid "Slides Per View"
136
  msgstr ""
137
 
138
+ #: dist/visual-portfolio/classes/class-admin.php:439, dist/visual-portfolio/classes/class-admin.php:609, dist/visual-portfolio/classes/class-admin.php:1446, dist/visual-portfolio/classes/class-admin.php:1463
139
  msgid "Custom"
140
  msgstr ""
141
 
155
  msgid "Free Scroll Sticky"
156
  msgstr ""
157
 
158
+ #: dist/visual-portfolio/classes/class-admin.php:506, dist/visual-portfolio/classes/class-admin.php:2707, dist/visual-portfolio/classes/class-settings.php:379
159
  msgid "Display Arrows"
160
  msgstr ""
161
 
187
  msgid "Thumbnails Per View"
188
  msgstr ""
189
 
190
+ #: dist/visual-portfolio/classes/class-admin.php:653, dist/visual-portfolio/classes/class-admin.php:2183, dist/visual-portfolio/classes/class-admin.php:2312, dist/visual-portfolio/classes/class-admin.php:2434
191
  msgid "Classic"
192
  msgstr ""
193
 
195
  msgid "Display Read More Button"
196
  msgstr ""
197
 
198
+ #: dist/visual-portfolio/classes/class-admin.php:675, dist/visual-portfolio/classes/class-admin.php:1536, dist/visual-portfolio/classes/class-admin.php:1816
199
  msgid "Hide"
200
  msgstr ""
201
 
211
  msgid "Read More Button Label"
212
  msgstr ""
213
 
214
+ #: dist/visual-portfolio/classes/class-admin.php:698, dist/visual-portfolio/classes/class-admin.php:796
215
  msgid "Display Overlay"
216
  msgstr ""
217
 
218
+ #: dist/visual-portfolio/classes/class-admin.php:702, dist/visual-portfolio/classes/class-admin.php:800, dist/visual-portfolio/classes/class-admin.php:913, dist/visual-portfolio/classes/class-admin.php:972
219
  msgid "Hover State Only"
220
  msgstr ""
221
 
222
+ #: dist/visual-portfolio/classes/class-admin.php:703, dist/visual-portfolio/classes/class-admin.php:801, dist/visual-portfolio/classes/class-admin.php:914, dist/visual-portfolio/classes/class-admin.php:973
223
  msgid "Default State Only"
224
  msgstr ""
225
 
226
+ #: dist/visual-portfolio/classes/class-admin.php:704, dist/visual-portfolio/classes/class-admin.php:802, dist/visual-portfolio/classes/class-admin.php:915, dist/visual-portfolio/classes/class-admin.php:974
227
  msgid "Always"
228
  msgstr ""
229
 
230
+ #: dist/visual-portfolio/classes/class-admin.php:709, dist/visual-portfolio/classes/class-admin.php:807, dist/visual-portfolio/classes/class-admin.php:858
231
  msgid "Overlay Background Color"
232
  msgstr ""
233
 
234
+ #: dist/visual-portfolio/classes/class-admin.php:721, dist/visual-portfolio/classes/class-admin.php:819, dist/visual-portfolio/classes/class-admin.php:870
235
  msgid "Overlay Text Color"
236
  msgstr ""
237
 
238
+ #: dist/visual-portfolio/classes/class-admin.php:733, dist/visual-portfolio/classes/class-admin.php:932
239
  msgid "Caption Text Color"
240
  msgstr ""
241
 
242
+ #: dist/visual-portfolio/classes/class-admin.php:745, dist/visual-portfolio/classes/class-admin.php:944
243
  msgid "Caption Links Color"
244
  msgstr ""
245
 
246
+ #: dist/visual-portfolio/classes/class-admin.php:757, dist/visual-portfolio/classes/class-admin.php:956
247
  msgid "Caption Links Hover Color"
248
  msgstr ""
249
 
250
+ #: dist/visual-portfolio/classes/class-admin.php:770, dist/visual-portfolio/classes/class-admin.php:832, dist/visual-portfolio/classes/class-admin.php:883, dist/visual-portfolio/classes/class-admin.php:992, dist/visual-portfolio/classes/class-admin.php:1341, dist/visual-portfolio/classes/class-admin.php:1508, dist/visual-portfolio/classes/class-admin.php:2082, dist/visual-portfolio/classes/class-admin.php:2415, dist/visual-portfolio/classes/class-settings.php:473
251
  msgid "PRO Feature"
252
  msgstr ""
253
 
254
+ #: dist/visual-portfolio/classes/class-admin.php:771, dist/visual-portfolio/classes/class-admin.php:833, dist/visual-portfolio/classes/class-admin.php:884, dist/visual-portfolio/classes/class-admin.php:993
255
  msgid "Instagram-like filters for your images"
256
  msgstr ""
257
 
258
+ #: dist/visual-portfolio/classes/class-admin.php:840
259
  msgid "Fly"
260
  msgstr ""
261
 
262
+ #: dist/visual-portfolio/classes/class-admin.php:891
263
  msgid "Emerge"
264
  msgstr ""
265
 
266
+ #: dist/visual-portfolio/classes/class-admin.php:909
267
  msgid "Display Caption"
268
  msgstr ""
269
 
270
+ #: dist/visual-portfolio/classes/class-admin.php:920
271
  msgid "Caption Background Color"
272
  msgstr ""
273
 
274
+ #: dist/visual-portfolio/classes/class-admin.php:968
275
  msgid "Display Image Overlay"
276
  msgstr ""
277
 
278
+ #: dist/visual-portfolio/classes/class-admin.php:979
279
  msgid "Image Overlay Background Color"
280
  msgstr ""
281
 
282
+ #: dist/visual-portfolio/classes/class-admin.php:1014
283
  msgid "Content Source"
284
  msgstr ""
285
 
286
+ #: dist/visual-portfolio/classes/class-admin.php:1022
287
  msgid "Posts Settings"
288
  msgstr ""
289
 
290
+ #: dist/visual-portfolio/classes/class-admin.php:1027
291
  msgid "Images Settings"
292
  msgstr ""
293
 
294
+ #: dist/visual-portfolio/classes/class-admin.php:1032
295
  msgid "Social Stream Settings"
296
  msgstr ""
297
 
298
+ #: dist/visual-portfolio/classes/class-admin.php:1037
299
  msgid "Layout"
300
  msgstr ""
301
 
302
+ #: dist/visual-portfolio/classes/class-admin.php:1042
303
  msgid "Items Style"
304
  msgstr ""
305
 
306
+ #: dist/visual-portfolio/classes/class-admin.php:1047
307
  msgid "Items Click Action"
308
  msgstr ""
309
 
310
+ #: dist/visual-portfolio/classes/class-admin.php:1052
311
  msgid "Custom CSS"
312
  msgstr ""
313
 
314
+ #: dist/visual-portfolio/classes/class-admin.php:1083
315
  msgid "Posts"
316
  msgstr ""
317
 
318
+ #: dist/visual-portfolio/classes/class-admin.php:1088, dist/visual-portfolio/classes/class-settings.php:135
319
  msgid "Images"
320
  msgstr ""
321
 
322
+ #: dist/visual-portfolio/classes/class-admin.php:1093
323
  msgid "Social"
324
  msgstr ""
325
 
326
+ #: dist/visual-portfolio/classes/class-admin.php:1122, dist/visual-portfolio/classes/class-admin.php:2852
327
  msgid "Custom Query"
328
  msgstr ""
329
 
330
  #. translators: %1$s - escaped url.
331
+ #: dist/visual-portfolio/classes/class-admin.php:1124
332
  msgid "Build custom query according to WordPress Codex. See example here <a href=\"%1$s\">%1$s</a>."
333
  msgstr ""
334
 
335
+ #: dist/visual-portfolio/classes/class-admin.php:1141
336
  msgid "Specific Posts"
337
  msgstr ""
338
 
339
+ #: dist/visual-portfolio/classes/class-admin.php:1159
340
  msgid "Excluded Posts"
341
  msgstr ""
342
 
343
+ #: dist/visual-portfolio/classes/class-admin.php:1188
344
  msgid "Taxonomies"
345
  msgstr ""
346
 
347
+ #: dist/visual-portfolio/classes/class-admin.php:1217
348
  msgid "Taxonomies Relation"
349
  msgstr ""
350
 
351
+ #: dist/visual-portfolio/classes/class-admin.php:1221
352
  msgid "OR"
353
  msgstr ""
354
 
355
+ #: dist/visual-portfolio/classes/class-admin.php:1222
356
  msgid "AND"
357
  msgstr ""
358
 
359
+ #: dist/visual-portfolio/classes/class-admin.php:1247, dist/visual-portfolio/classes/class-admin.php:1475
360
  msgid "Order by"
361
  msgstr ""
362
 
363
+ #: dist/visual-portfolio/classes/class-admin.php:1251, dist/visual-portfolio/templates/items-list/items-style/meta.php:146, dist/visual-portfolio/templates/items-list/items-style/emerge/meta.php:147, dist/visual-portfolio/templates/items-list/items-style/fade/meta.php:178, dist/visual-portfolio/templates/items-list/items-style/fly/meta.php:177
364
  msgid "Date"
365
  msgstr ""
366
 
367
+ #: dist/visual-portfolio/classes/class-admin.php:1252, dist/visual-portfolio/classes/class-admin.php:1360, dist/visual-portfolio/classes/class-admin.php:1481
368
  msgid "Title"
369
  msgstr ""
370
 
371
+ #: dist/visual-portfolio/classes/class-admin.php:1253
372
  msgid "ID"
373
  msgstr ""
374
 
375
+ #: dist/visual-portfolio/classes/class-admin.php:1254
376
  msgid "Comments Count"
377
  msgstr ""
378
 
379
+ #: dist/visual-portfolio/classes/class-admin.php:1255
380
  msgid "Modified"
381
  msgstr ""
382
 
383
+ #: dist/visual-portfolio/classes/class-admin.php:1256
384
  msgid "Menu Order"
385
  msgstr ""
386
 
387
+ #: dist/visual-portfolio/classes/class-admin.php:1257, dist/visual-portfolio/classes/class-admin.php:1482
388
  msgid "Random"
389
  msgstr ""
390
 
391
+ #: dist/visual-portfolio/classes/class-admin.php:1277, dist/visual-portfolio/classes/class-admin.php:1490
392
  msgid "Order Direction"
393
  msgstr ""
394
 
395
+ #: dist/visual-portfolio/classes/class-admin.php:1281, dist/visual-portfolio/classes/class-admin.php:1494
396
  msgid "ASC"
397
  msgstr ""
398
 
399
+ #: dist/visual-portfolio/classes/class-admin.php:1282, dist/visual-portfolio/classes/class-admin.php:1495
400
  msgid "DESC"
401
  msgstr ""
402
 
403
+ #: dist/visual-portfolio/classes/class-admin.php:1302
404
  msgid "Avoid Duplicates"
405
  msgstr ""
406
 
407
+ #: dist/visual-portfolio/classes/class-admin.php:1303
408
  msgid "Enable to avoid duplicate posts from showing up. This only affects the frontend"
409
  msgstr ""
410
 
411
+ #: dist/visual-portfolio/classes/class-admin.php:1312
412
  msgid "Offset"
413
  msgstr ""
414
 
415
+ #: dist/visual-portfolio/classes/class-admin.php:1313
416
  msgid "Use this setting to skip over posts (e.g. `2` to skip over 2 posts)"
417
  msgstr ""
418
 
419
+ #: dist/visual-portfolio/classes/class-admin.php:1342
420
  msgid "Additional query settings."
421
  msgstr ""
422
 
423
+ #: dist/visual-portfolio/classes/class-admin.php:1371
424
  msgid "Description"
425
  msgstr ""
426
 
427
+ #: dist/visual-portfolio/classes/class-admin.php:1382, dist/visual-portfolio/classes/class-custom-post-type.php:124
428
  msgid "Categories"
429
  msgstr ""
430
 
431
+ #: dist/visual-portfolio/classes/class-admin.php:1388
432
  msgid "Format"
433
  msgstr ""
434
 
435
+ #: dist/visual-portfolio/classes/class-admin.php:1391
436
  msgid "Standard"
437
  msgstr ""
438
 
439
+ #: dist/visual-portfolio/classes/class-admin.php:1392, dist/visual-portfolio/classes/class-custom-post-meta.php:140
440
  msgid "Video"
441
  msgstr ""
442
 
443
+ #: dist/visual-portfolio/classes/class-admin.php:1397
444
  msgid "Video URL"
445
  msgstr ""
446
 
447
+ #: dist/visual-portfolio/classes/class-admin.php:1398, dist/visual-portfolio/classes/class-admin.php:1411
448
  msgid "https://..."
449
  msgstr ""
450
 
451
+ #: dist/visual-portfolio/classes/class-admin.php:1399
452
  msgid "Full list of supported links"
453
  msgstr ""
454
 
455
+ #: dist/visual-portfolio/classes/class-admin.php:1399
456
  msgid "see here"
457
  msgstr ""
458
 
459
+ #: dist/visual-portfolio/classes/class-admin.php:1409, dist/visual-portfolio/classes/class-admin.php:1983
460
  msgid "URL"
461
  msgstr ""
462
 
463
+ #: dist/visual-portfolio/classes/class-admin.php:1410
464
  msgid "By default used full image url, you can use custom one"
465
  msgstr ""
466
 
467
+ #: dist/visual-portfolio/classes/class-admin.php:1415
468
  msgid "Author Name"
469
  msgstr ""
470
 
471
+ #: dist/visual-portfolio/classes/class-admin.php:1420
472
  msgid "Author URL"
473
  msgstr ""
474
 
475
+ #: dist/visual-portfolio/classes/class-admin.php:1441
476
+ msgid "Titles Source"
477
  msgstr ""
478
 
479
+ #: dist/visual-portfolio/classes/class-admin.php:1445, dist/visual-portfolio/classes/class-admin.php:1462, dist/visual-portfolio/classes/class-admin.php:2041, dist/visual-portfolio/classes/class-admin.php:2063
480
  msgid "None"
481
  msgstr ""
482
 
483
+ #: dist/visual-portfolio/classes/class-admin.php:1447, dist/visual-portfolio/classes/class-admin.php:1464, dist/visual-portfolio/classes/class-admin.php:2042, dist/visual-portfolio/classes/class-admin.php:2064
484
  msgid "Image Title"
485
  msgstr ""
486
 
487
+ #: dist/visual-portfolio/classes/class-admin.php:1448, dist/visual-portfolio/classes/class-admin.php:1465, dist/visual-portfolio/classes/class-admin.php:2043, dist/visual-portfolio/classes/class-admin.php:2065
488
  msgid "Image Caption"
489
  msgstr ""
490
 
491
+ #: dist/visual-portfolio/classes/class-admin.php:1449, dist/visual-portfolio/classes/class-admin.php:1466, dist/visual-portfolio/classes/class-admin.php:2044, dist/visual-portfolio/classes/class-admin.php:2066
492
  msgid "Image Alt"
493
  msgstr ""
494
 
495
+ #: dist/visual-portfolio/classes/class-admin.php:1450, dist/visual-portfolio/classes/class-admin.php:1467, dist/visual-portfolio/classes/class-admin.php:2045, dist/visual-portfolio/classes/class-admin.php:2067
496
  msgid "Image Description"
497
  msgstr ""
498
 
499
+ #: dist/visual-portfolio/classes/class-admin.php:1458
500
+ msgid "Descriptions Source"
501
  msgstr ""
502
 
503
+ #: dist/visual-portfolio/classes/class-admin.php:1479, dist/visual-portfolio/classes/class-admin.php:1817, dist/visual-portfolio/classes/class-admin.php:2004
504
  msgid "Default"
505
  msgstr ""
506
 
507
+ #: dist/visual-portfolio/classes/class-admin.php:1480
508
  msgid "Uploaded"
509
  msgstr ""
510
 
511
+ #: dist/visual-portfolio/classes/class-admin.php:1509, dist/visual-portfolio/classes/class-settings.php:475
512
  msgid "Social feeds such as Instagram, Youtube, Flickr, Twitter, etc..."
513
  msgstr ""
514
 
515
+ #: dist/visual-portfolio/classes/class-admin.php:1520
516
  msgid "Items Per Page"
517
  msgstr ""
518
 
519
+ #: dist/visual-portfolio/classes/class-admin.php:1531
520
  msgid "No Items Action"
521
  msgstr ""
522
 
523
+ #: dist/visual-portfolio/classes/class-admin.php:1535, dist/visual-portfolio/classes/class-admin.php:1544
524
  msgid "Notice"
525
  msgstr ""
526
 
527
+ #: dist/visual-portfolio/classes/class-admin.php:1546
528
  msgid "No items were found matching your selection."
529
  msgstr ""
530
 
531
+ #: dist/visual-portfolio/classes/class-admin.php:1561
532
  msgid "Note: you will see the notice in the preview. Block will be hidden in the site frontend."
533
  msgstr ""
534
 
535
+ #: dist/visual-portfolio/classes/class-admin.php:1577
536
  msgid "Stretch"
537
  msgstr ""
538
 
539
+ #: dist/visual-portfolio/classes/class-admin.php:1580
540
  msgid "Break container and display it wide"
541
  msgstr ""
542
 
543
+ #: dist/visual-portfolio/classes/class-admin.php:1649
544
  msgid "Gap"
545
  msgstr ""
546
 
547
+ #: dist/visual-portfolio/classes/class-admin.php:1667
548
  msgid "Vertical Gap"
549
  msgstr ""
550
 
551
+ #: dist/visual-portfolio/classes/class-admin.php:1668
552
  msgid "When empty, used Gap option"
553
  msgstr ""
554
 
555
+ #: dist/visual-portfolio/classes/class-admin.php:1766
556
  msgid "Images Rounded Corners"
557
  msgstr ""
558
 
559
+ #: dist/visual-portfolio/classes/class-admin.php:1783
560
  msgid "Display Title"
561
  msgstr ""
562
 
563
+ #: dist/visual-portfolio/classes/class-admin.php:1791
564
  msgid "Display Categories"
565
  msgstr ""
566
 
567
+ #: dist/visual-portfolio/classes/class-admin.php:1797
568
  msgid "Categories Count"
569
  msgstr ""
570
 
571
+ #: dist/visual-portfolio/classes/class-admin.php:1812
572
  msgid "Display Date"
573
  msgstr ""
574
 
575
+ #: dist/visual-portfolio/classes/class-admin.php:1818
576
  msgid "Human Format"
577
  msgstr ""
578
 
579
+ #: dist/visual-portfolio/classes/class-admin.php:1826
580
  msgid ""
581
  "Date format
582
  " Example: F j, Y"
583
  msgstr ""
584
 
585
+ #: dist/visual-portfolio/classes/class-admin.php:1839
586
  msgid "Display Author"
587
  msgstr ""
588
 
589
+ #: dist/visual-portfolio/classes/class-admin.php:1847
590
  msgid "Display Comments Count"
591
  msgstr ""
592
 
593
+ #: dist/visual-portfolio/classes/class-admin.php:1861
594
  msgid "Display Views Count"
595
  msgstr ""
596
 
597
+ #: dist/visual-portfolio/classes/class-admin.php:1875
598
  msgid "Display Reading Time"
599
  msgstr ""
600
 
601
+ #: dist/visual-portfolio/classes/class-admin.php:1889
602
  msgid "Display Excerpt"
603
  msgstr ""
604
 
605
+ #: dist/visual-portfolio/classes/class-admin.php:1895
606
  msgid "Excerpt Words Count"
607
  msgstr ""
608
 
609
+ #: dist/visual-portfolio/classes/class-admin.php:1910
610
  msgid "Display Icon"
611
  msgstr ""
612
 
613
+ #: dist/visual-portfolio/classes/class-admin.php:1918
614
  msgid "Caption Align"
615
  msgstr ""
616
 
617
+ #: dist/visual-portfolio/classes/class-admin.php:1978
618
  msgid "Disabled"
619
  msgstr ""
620
 
621
+ #: dist/visual-portfolio/classes/class-admin.php:1988
622
  msgid "Popup"
623
  msgstr ""
624
 
625
+ #: dist/visual-portfolio/classes/class-admin.php:2000
626
  msgid "Target"
627
  msgstr ""
628
 
629
+ #: dist/visual-portfolio/classes/class-admin.php:2005
630
  msgid "New Tab (_blank)"
631
  msgstr ""
632
 
633
+ #: dist/visual-portfolio/classes/class-admin.php:2006
634
  msgid "Top Frame (_top)"
635
  msgstr ""
636
 
637
+ #: dist/visual-portfolio/classes/class-admin.php:2020
638
  msgid "Rel"
639
  msgstr ""
640
 
641
+ #: dist/visual-portfolio/classes/class-admin.php:2037
642
+ msgid "Title Source"
643
+ msgstr ""
644
+
645
+ #: dist/visual-portfolio/classes/class-admin.php:2059
646
+ msgid "Description Source"
647
+ msgstr ""
648
+
649
+ #: dist/visual-portfolio/classes/class-admin.php:2083
650
  msgid "Display pages in popup iframe, not just images."
651
  msgstr ""
652
 
653
+ #: dist/visual-portfolio/classes/class-admin.php:2103
654
  msgid "Top"
655
  msgstr ""
656
 
657
+ #: dist/visual-portfolio/classes/class-admin.php:2113
658
  msgid "Bottom"
659
  msgstr ""
660
 
661
+ #: dist/visual-portfolio/classes/class-admin.php:2137
662
  msgid "Filter"
663
  msgstr ""
664
 
665
+ #: dist/visual-portfolio/classes/class-admin.php:2143
666
  msgid "Sort"
667
  msgstr ""
668
 
669
+ #: dist/visual-portfolio/classes/class-admin.php:2149
670
  msgid "Search"
671
  msgstr ""
672
 
673
+ #: dist/visual-portfolio/classes/class-admin.php:2155
674
  msgid "Items"
675
  msgstr ""
676
 
677
+ #: dist/visual-portfolio/classes/class-admin.php:2160
678
  msgid "Pagination"
679
  msgstr ""
680
 
681
+ #: dist/visual-portfolio/classes/class-admin.php:2176, dist/visual-portfolio/classes/class-admin.php:2305, dist/visual-portfolio/classes/class-admin.php:2427
682
  msgid "Minimal"
683
  msgstr ""
684
 
685
+ #: dist/visual-portfolio/classes/class-admin.php:2190, dist/visual-portfolio/classes/class-admin.php:2319
686
  msgid "Dropdown"
687
  msgstr ""
688
 
689
+ #: dist/visual-portfolio/classes/class-admin.php:2282
690
  msgid "Display Count"
691
  msgstr ""
692
 
693
+ #: dist/visual-portfolio/classes/class-admin.php:2291
694
  msgid "All Button Text"
695
  msgstr ""
696
 
697
+ #: dist/visual-portfolio/classes/class-admin.php:2293
698
  msgid "All"
699
  msgstr ""
700
 
701
+ #: dist/visual-portfolio/classes/class-admin.php:2416
702
  msgid "The search module is only available for PRO users."
703
  msgstr ""
704
 
705
+ #: dist/visual-portfolio/classes/class-admin.php:2521
706
  msgid "Type"
707
  msgstr ""
708
 
709
+ #: dist/visual-portfolio/classes/class-admin.php:2528
710
  msgid "Paged"
711
  msgstr ""
712
 
713
+ #: dist/visual-portfolio/classes/class-admin.php:2533, dist/visual-portfolio/classes/class-admin.php:2594, dist/visual-portfolio/classes/class-admin.php:2651
714
  msgid "Load More"
715
  msgstr ""
716
 
717
+ #: dist/visual-portfolio/classes/class-admin.php:2538
718
  msgid "Infinite"
719
  msgstr ""
720
 
721
+ #: dist/visual-portfolio/classes/class-admin.php:2548
722
  msgid "Note: you will see the \"Load More\" pagination in the preview. \"Infinite\" pagination will be visible on the site."
723
  msgstr ""
724
 
725
+ #: dist/visual-portfolio/classes/class-admin.php:2563, dist/visual-portfolio/classes/class-admin.php:2578
726
  msgid "Texts"
727
  msgstr ""
728
 
729
+ #: dist/visual-portfolio/classes/class-admin.php:2595, dist/visual-portfolio/classes/class-admin.php:2596, dist/visual-portfolio/classes/class-admin.php:2652, dist/visual-portfolio/classes/class-admin.php:2653
730
  msgid "Load more button label"
731
  msgstr ""
732
 
733
+ #: dist/visual-portfolio/classes/class-admin.php:2613, dist/visual-portfolio/classes/class-admin.php:2670
734
  msgid "Loading More..."
735
  msgstr ""
736
 
737
+ #: dist/visual-portfolio/classes/class-admin.php:2614, dist/visual-portfolio/classes/class-admin.php:2615, dist/visual-portfolio/classes/class-admin.php:2671, dist/visual-portfolio/classes/class-admin.php:2672
738
  msgid "Loading more button label"
739
  msgstr ""
740
 
741
+ #: dist/visual-portfolio/classes/class-admin.php:2632, dist/visual-portfolio/classes/class-admin.php:2689
742
  msgid "You’ve reached the end of the list"
743
  msgstr ""
744
 
745
+ #: dist/visual-portfolio/classes/class-admin.php:2633, dist/visual-portfolio/classes/class-admin.php:2634, dist/visual-portfolio/classes/class-admin.php:2690, dist/visual-portfolio/classes/class-admin.php:2691
746
  msgid "End of the list text"
747
  msgstr ""
748
 
749
+ #: dist/visual-portfolio/classes/class-admin.php:2722
750
  msgid "Display Numbers"
751
  msgstr ""
752
 
753
+ #: dist/visual-portfolio/classes/class-admin.php:2737
754
  msgid "Scroll to Top"
755
  msgstr ""
756
 
757
+ #: dist/visual-portfolio/classes/class-admin.php:2752
758
  msgid "Scroll to Top Offset"
759
  msgstr ""
760
 
761
+ #: dist/visual-portfolio/classes/class-admin.php:2770
762
  msgid "Hide on Reached End"
763
  msgstr ""
764
 
765
+ #: dist/visual-portfolio/classes/class-admin.php:2800
766
  msgid "Use <code>selector</code> rule to change block styles."
767
  msgstr ""
768
 
769
+ #: dist/visual-portfolio/classes/class-admin.php:2801
770
  msgid "Example:"
771
  msgstr ""
772
 
773
+ #: dist/visual-portfolio/classes/class-admin.php:2847
774
  msgid "Manual Selection"
775
  msgstr ""
776
 
777
+ #: dist/visual-portfolio/classes/class-admin.php:2857
778
  msgid "Current Query"
779
  msgstr ""
780
 
858
  msgid "Zoom"
859
  msgstr ""
860
 
861
+ #: dist/visual-portfolio/classes/class-controls.php:158
862
  msgid "Dynamic control callback function is not found."
863
  msgstr ""
864
 
1210
  msgstr ""
1211
 
1212
  #: dist/visual-portfolio/classes/class-settings.php:370
1213
+ msgid "Makes URL automatically change to reflect the current opened popup, and you can easily link directly to that image or video."
1214
  msgstr ""
1215
 
1216
  #: dist/visual-portfolio/classes/class-settings.php:380
readme.md CHANGED
@@ -1,11 +1,11 @@
1
  # Visual Portfolio, Posts & Image Gallery #
2
 
3
  * Contributors: nko
4
- * Tags: portfolio, gallery, photo gallery, image gallery, lightbox gallery
5
  * Requires at least: 5.4
6
  * Tested up to: 5.6
7
  * Requires PHP: 5.5.9
8
- * Stable tag: 2.9.0
9
  * License: GPLv2 or later
10
  * License URI: <http://www.gnu.org/licenses/gpl-2.0.html>
11
 
@@ -13,16 +13,16 @@ Modern gallery and portfolio plugin with advanced layouts editor. Clean and powe
13
 
14
  ## Description ##
15
 
16
- Create beautiful, clean, and powerful photo galleries and portfolio layouts using the Visual Portfolio gallery plugin. It is easy for simple photo galleries, but powerful enough for professionals. Whether you're a photographer, agency, or anything in between, Visual Portfolio will boost your online presence.
 
17
 
18
- We tried to make for you a convenient visual block editor for your gallery, portfolio, or any custom post type with support to various layouts such as Masonry, Justified, Tiles, Grid, and Carousel.
19
 
20
- ### Links ###
21
 
22
- * [Live Demo](https://visualportfolio.co/?utm_source=wporg&utm_medium=link&utm_campaign=demo)
23
- * [Visual Portfolio PRO](https://visualportfolio.co/pro/?utm_source=wporg&utm_medium=link&utm_campaign=pro)
24
- * [Documentation](https://visualportfolio.co/documentation/getting-started/?utm_source=wporg&utm_medium=link&utm_campaign=docs)
25
- * [GitHub](https://github.com/nk-o/visual-portfolio)
26
 
27
  ### Visual Gallery Builder ###
28
 
@@ -34,7 +34,7 @@ Despite the rich functionality, the Visual Portfolio is optimized as much as pos
34
 
35
  All scripts and styles are loaded only when they are needed for the current page that displays your gallery. Pictures are not loaded in the main thread due to lazy loading. Moreover, our plugin is compatible with third-party WebP providers and image optimization plugins.
36
 
37
- Smart adaptive image sizes fully supported.
38
 
39
  ### Layouts ###
40
 
@@ -54,15 +54,19 @@ Showcase your portfolio items ang gallery images with clean and beautiful visual
54
  * [Fade Effect](https://visualportfolio.co/tiles-paged-pagination/)
55
  * [Emerge Effect](https://visualportfolio.co/masonry-infinite-scroll/)
56
  * [Fly Effect](https://visualportfolio.co/tiles-popup-gallery/)
57
- * [PRO Caption Move Effect](https://visualportfolio.co/masonry-caption-move/)
58
 
59
- ### Easily Customizable ###
60
 
61
  The gallery block with live preview includes a lot of design settings that are point-and-click, no coding knowledge required. If you're a bit more adventurous, the custom CSS module and PHP filters are set up to be easily used by developers.
62
 
63
  ### Portfolio Post Type ###
64
 
65
- Custom post type `portfolio` will ensure all your portfolios to keep in a single post type. In this way, you can distinguish your portfolios from other post types. Taxonomies are used to categorize your portfolio types, it will help you to group and sort your portfolios.
 
 
 
 
66
 
67
  ### Photo Galleries ###
68
 
@@ -76,56 +80,63 @@ Visual Portfolio uses only modern solutions, and lightboxes are not an exception
76
 
77
  **GPU Accelerated** <br> Hardware accelerated animations for better performance and seamless user experience.
78
 
79
- **Smart Loading** <br> Images are responsive and loaded progressively using lazy loading on demand.
 
 
 
 
 
 
80
 
81
- ### SEO-friendly ###
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
 
83
  Visual Portfolio plugin is built keeping SEO and performance in mind by defining proper structure and tags. Furthermore, due to optimization, it is lightweight and fast when it comes to page load.
84
 
85
- ### More Features ###
86
 
87
- * Lightboxes for Visual Portfolio galleries and for standard WordPress images and galleries
88
- * Popup gallery vendors
89
- * Images
90
- * YouTube
91
- * Vimeo
92
- * more vendors available in PRO plugin
93
- * AJAX posts loading
94
- * Infinite Scroll
95
- * Load More button
96
- * Paged pagination
97
- * Filter gallery layouts by Category or custom taxonomy
98
- * Sort gallery items by date and title
99
- * Custom item gutters
100
- * Custom image sets
101
- * Custom posts type layouts (not only portfolio)
102
- * Posts by type
103
- * Posts by specific ID
104
- * Posts by taxonomies
105
- * Custom order
106
- * Images lazy load built-in - improves page loading speed
107
- * Custom CSS for each portfolio layouts
108
- * WPML and Polylang multi language support
109
- * RTL support
110
- * Elementor Page Builder support
111
- * WPBakery Page Builder support
112
- * Completely responsive and mobile ready – layouts automagically transforms to display perfectly on your screen size
113
- * CSS variables and templates system for theme developers
114
-
115
- ### PRO ###
116
 
117
  The Visual Portfolio plugin is also available in a professional version which includes more features and enhanced performance! [Learn more](https://visualportfolio.co/pro/?utm_source=wporg&utm_medium=link&utm_campaign=pro).
118
 
119
- ### Some neat PRO features ###
120
 
121
  * Social Integrations - automatically fetch posts for your social networks to display in gallery on your site
122
- * Instagram
123
  * Youtube
 
124
  * Vimeo
125
- * Google Photos
126
  * Flickr
127
  * Twitter
128
  * Dribbble
 
129
  * Stylish interaction effects
130
  * Hover Tilt Effect
131
  * Custom Hover Image (useful for animated GIFs)
@@ -134,19 +145,60 @@ The Visual Portfolio plugin is also available in a professional version which in
134
  * Instagram-like image filters for normal and hover states
135
  * AJAX Improvements
136
  * Advanced query builder settings
137
- * Additional popup gallery vendors
138
- * Instagram
139
- * DailyMotion
140
- * Facebook Videos
141
- * TikTok
142
- * Soundcloud
143
- * VideoPress
144
- * Twitch
145
- * Wistia
146
- * Self Hosted Videos
147
- * Find more features here - <https://visualportfolio.co/pro/?utm_source=wporg&utm_medium=link&utm_campaign=pro>
148
-
149
- If you don't want any of the PRO features, but want to support us, this is the only way you may do it.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
 
151
  ## Screenshots ##
152
 
@@ -217,6 +269,11 @@ For more information, feel free to visit [Visual Portfolio official website](htt
217
 
218
  ## Changelog ##
219
 
 
 
 
 
 
220
  = 2.9.0 =
221
 
222
  * improved plugin documentation <https://visualportfolio.co/documentation/getting-started/>. Added more pages with detailed descriptions
@@ -253,7 +310,7 @@ For more information, feel free to visit [Visual Portfolio official website](htt
253
 
254
  = 2.8.0 =
255
 
256
- * added support for Custom Hover image in PRO version <https://visualportfolio.co/custom-hover-image-animated-gif/>
257
  * added Vertical Gap option
258
  * added icons to all categories toggles in editor
259
  * added Popup Gallery setting to disable "Click to Zoom"
@@ -290,7 +347,7 @@ For more information, feel free to visit [Visual Portfolio official website](htt
290
 
291
  = 2.6.2 =
292
 
293
- * improved image lazyloading support for PRO plugin and social integrations
294
  * improved animated GIFs usage (we can't use resized images, used full size only)
295
  * updated 3rd-party vendor scripts
296
  * moved posts Focal Point picker panel to Featured image selector panel (better UI)
@@ -320,7 +377,7 @@ For more information, feel free to visit [Visual Portfolio official website](htt
320
  = 2.5.0 =
321
 
322
  * added Image Overlay setting on Emerge Style
323
- * added support for images filters in PRO plugin version <https://visualportfolio.co/masonry-image-filters/>
324
  * changed Emerge image transform from scale to translateY
325
  * fixed filter displaying in FireFox
326
  * fixed custom scrollbar initialization after ajax load
@@ -337,14 +394,14 @@ For more information, feel free to visit [Visual Portfolio official website](htt
337
  * added custom scrollbar for overlays with overflow (looks better, than system scrollbar)
338
  * added more wp actions in portfolio output (helpful for developers)
339
  * added iframe resize when Gutenberg preview device type changed
340
- * updated PRO plugin pricing plans. Added a single site license, which many users asked for
341
  * fixed custom aspect ratio select (set default value if value is empty)
342
  * fixed post taxonomies slug in the filter (fixes support for languages like Japanese, Chinese, Russian, etc.)
343
  * fixed possible JS error 'jQuery is not defined'
344
 
345
  = 2.3.0 =
346
 
347
- * added PRO version support <https://visualportfolio.co/pro/>
348
  * added overlay support for Classic gallery style
349
  * added options to change meta color, links color and links hover color for all items styles
350
  * added options to show gallery items overlay on hover only, on default state only and always
@@ -497,7 +554,7 @@ Log:
497
  * fixed AMP plugin integration PHP notices
498
  * fixed AJAX loading with changed layout settings in editor preview
499
  * fixed error in layouts preview when no items loaded
500
- * a lot of code improvements for upcoming PRO plugin
501
 
502
  = 1.15.1 =
503
 
@@ -680,7 +737,7 @@ Note: Don't forget to clear cache after plugin update. Changed portfolios with p
680
  * added Menu Order in post based source
681
  * added Mask property in control styles (for developers)
682
  * added filters to extend default controls for layouts, items styles, filters and paginations
683
- * added filter for control arguments `vpf_print_layout_control_args` (developers may change controls settings in layouts editor)
684
  * changed condition script for settings in layout editor, should improve performance
685
  * changed popup gallery z-index to 1500 (like in WooCommerce)
686
  * changed initialization method to Mutation Observers (portfolio will init automatically after ajax load)
1
  # Visual Portfolio, Posts & Image Gallery #
2
 
3
  * Contributors: nko
4
+ * Tags: portfolio, gallery, photo gallery, image gallery, wordpress gallery plugin
5
  * Requires at least: 5.4
6
  * Tested up to: 5.6
7
  * Requires PHP: 5.5.9
8
+ * Stable tag: 2.9.1
9
  * License: GPLv2 or later
10
  * License URI: <http://www.gnu.org/licenses/gpl-2.0.html>
11
 
13
 
14
  ## Description ##
15
 
16
+ **Gallery & Portfolio Plugin For WordPress**
17
+ ★★★★★<br>
18
 
19
+ **Portfolio websites are the most popular nowadays.** We created <a href="https://visualportfolio.co/?utm_source=wporg&utm_medium=link&utm_campaign=demo" target="_blank">**Visual Portfolio, Posts & Image Gallery WordPress plugin**</a>, to help every creative, agency, or photographers get access to the powerful tools they need to showcase their beautiful works and attract more love from their potential and existing customers.
20
 
21
+ <a href="https://visualportfolio.co/?utm_source=wporg&utm_medium=link&utm_campaign=demo" target="_blank">See Live Demo</a> | <a href="https://visualportfolio.co/documentation/getting-started/?utm_source=wporg&utm_medium=link&utm_campaign=docs" target="_blank">Documentation</a> | <a href="https://github.com/nk-o/visual-portfolio" target="_blank">GitHub</a>
22
 
23
+ Create beautiful, clean, and powerful photo galleries and portfolio layouts using the Visual Portfolio gallery plugin. It is easy for simple photo galleries, but powerful enough for professionals. Whether you're a photographer, agency, or anything in between, **Visual Portfolio will boost your online presence**.
24
+
25
+ Convenient visual block editor with support to various layouts such as Masonry, Justified, Tiles, Grid, and Carousel. A **well thought out design, powerful features, and years of development** by the nK team make Visual Portfolio a game-changing Portfolio and Gallery plugin that will level the WordPress showcases playing field in your favor to help increase visitors engagement.
 
26
 
27
  ### Visual Gallery Builder ###
28
 
34
 
35
  All scripts and styles are loaded only when they are needed for the current page that displays your gallery. Pictures are not loaded in the main thread due to lazy loading. Moreover, our plugin is compatible with third-party WebP providers and image optimization plugins.
36
 
37
+ Smart adaptive image sizes fully supported in any gallery, created with Visual Portfolio plugin.
38
 
39
  ### Layouts ###
40
 
54
  * [Fade Effect](https://visualportfolio.co/tiles-paged-pagination/)
55
  * [Emerge Effect](https://visualportfolio.co/masonry-infinite-scroll/)
56
  * [Fly Effect](https://visualportfolio.co/tiles-popup-gallery/)
57
+ * [Caption Move Effect](https://visualportfolio.co/masonry-caption-move/)
58
 
59
+ ### Easy to Customize ###
60
 
61
  The gallery block with live preview includes a lot of design settings that are point-and-click, no coding knowledge required. If you're a bit more adventurous, the custom CSS module and PHP filters are set up to be easily used by developers.
62
 
63
  ### Portfolio Post Type ###
64
 
65
+ Custom post type `portfolio` will ensure all your portfolios to keep in a single post type. In this way, you can distinguish your portfolios from other post types. Taxonomies are used to categorize your portfolio types, it will help you to group and sort your portfolios. Moreover, you can use these portfolios as a source for your showcase gallery using Visual Portfolio block.
66
+
67
+ ### Posts Query Builder ###
68
+
69
+ Fine-tune the source of your galleries. Display posts, portfolios, and any other post types, filter by taxonomies, author, and date ranges, include or exclude specific posts, and much more options.
70
 
71
  ### Photo Galleries ###
72
 
80
 
81
  **GPU Accelerated** <br> Hardware accelerated animations for better performance and seamless user experience.
82
 
83
+ **Smart Loading** <br> Gallery images are responsive and loaded progressively using lazy loading on demand.
84
+
85
+ **Social Sharing** <br> You can allow users to share photos on Facebook, Twitter, and Pinterest with social sharing buttons.
86
+
87
+ ### Audio and Video Support ###
88
+
89
+ Visual Portfolio plugin allows you to work with audios and videos within a single gallery. You just need to copy the URL of the video or audio and it will work automatically in the popup gallery. The full list with supported vendors see below (mostly thanks to the Pro plugin).
90
 
91
+ Supported Video Vendors:
92
+
93
+ * Youtube
94
+ * Vimeo
95
+ * IGTV (Instagram)
96
+ * TikTok
97
+ * Twitch
98
+ * Facebook Video
99
+ * DailyMotion
100
+ * Wistia
101
+ * VideoPress
102
+ * Rutube
103
+ * Metacafe
104
+ * Self Hosted Video
105
+
106
+ Supported Audio Vendors:
107
+
108
+ * Spotify
109
+ * SoundCloud
110
+ * Mixcloud
111
+ * Beatport
112
+ * Self Hosted Audio
113
+
114
+ ### SEO-Friendly ###
115
 
116
  Visual Portfolio plugin is built keeping SEO and performance in mind by defining proper structure and tags. Furthermore, due to optimization, it is lightweight and fast when it comes to page load.
117
 
118
+ ### Multilingual ###
119
 
120
+ Visual Portfolio adds a new layer of compatibility for [WPML](https://wpml.org/). All blocks are compatible with it and ready for translation. <https://visualportfolio.co/documentation/multilingual/>
121
+
122
+ ### Built For Developers ###
123
+
124
+ Visual Portfolio gives you a wide range of filters and actions to customize every part of your gallery. Also, it allows you to overwrite templates and change it in the theme directory. Moreover, you can customize separate portfolio lists using custom CSS and CSS Variables.
125
+
126
+ ### Pro ###
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
 
128
  The Visual Portfolio plugin is also available in a professional version which includes more features and enhanced performance! [Learn more](https://visualportfolio.co/pro/?utm_source=wporg&utm_medium=link&utm_campaign=pro).
129
 
130
+ #### Some Neat Pro Features ####
131
 
132
  * Social Integrations - automatically fetch posts for your social networks to display in gallery on your site
 
133
  * Youtube
134
+ * Instagram
135
  * Vimeo
 
136
  * Flickr
137
  * Twitter
138
  * Dribbble
139
+ * Google Photos
140
  * Stylish interaction effects
141
  * Hover Tilt Effect
142
  * Custom Hover Image (useful for animated GIFs)
145
  * Instagram-like image filters for normal and hover states
146
  * AJAX Improvements
147
  * Advanced query builder settings
148
+ * Popup gallery Deep Linking
149
+ * Find more portfolio and gallery features here - [https://visualportfolio.co/pro/](https://visualportfolio.co/pro/?utm_source=wporg&utm_medium=link&utm_campaign=pro)
150
+
151
+ If you don't want any of the Pro features, but want to support us, this is the only way you may do it.
152
+
153
+ ### More Features ###
154
+
155
+ * **Lightboxes for Standard WordPress Images**
156
+ Image lightbox available for Visual Portfolio galleries as well as for standard WordPress images and galleries in your content.
157
+
158
+ * **AJAX Loading and Pagination**
159
+ Every dynamic part of the Visual Portfolio plugin is using AJAX to update the gallery content in live mode. To split long portfolio lists we prepared 3 types of pagination:
160
+ * Infinite Scroll
161
+ * Load More button
162
+ * Paged pagination
163
+
164
+ * **Filter**
165
+ Filter your gallery and portfolio by taxonomies (mostly categories and tags). Let users select a category and see the relevant items.
166
+
167
+ * **Sort gallery items by date and title**
168
+ Users may sort gallery items by date and title.
169
+
170
+ * **GIFs Support**
171
+ Our plugin automatically displays the animated GIFs in photo galleries. Also, you can show the animated GIFs on mouseover with the Pro plugin.
172
+
173
+ * **Items Gutters**
174
+ Manually adjust the spacing between gallery and portfolio items.
175
+
176
+ * **Images Lazy Loading**
177
+ Images lazy loading boost your page loading speed. You don't need to worry about it, just use your beautiful images in the gallery, Visual Portfolio will do all the work for you.
178
+
179
+ * **Images Aspect Ratio**
180
+ All built-in gallery layouts support custom image aspect ratio. You don't need to crop the image manually.
181
+
182
+ * **Images Focal Point**
183
+ Sometimes it is very important to specify the focal point so that the custom aspect ratio does not cut off important parts of the photos. For example, people's faces on the portrait photos.
184
+
185
+ * **Custom Links for Gallery Images**
186
+ By default, gallery images will contain the links to original images. You can manually set the custom links, for example, to a website or Youtube video.
187
+
188
+ * **RTL Support**
189
+ Visual Portfolio natively supports RTL languages, proper styles loaded automatically, without user interaction.
190
+
191
+ * **Elementor and WPBakery Page Builder support**
192
+ There is a helpful widget for Elementor and shortcode for WPBakery Page Builder, which will let you select one of the available Saved Layouts and output it.
193
+
194
+ * **Responsive and Mobile Ready**
195
+ Visual Portfolio and Galleries are completely responsive and mobile ready – layouts automagically transforms to display perfectly on your screen size.
196
+
197
+ * **Custom CSS**
198
+ Deeply customize the look of your gallery using custom CSS and CSS Variables.
199
+
200
+ * **... And Much More**
201
+ All available features you can find on the [plugin's site](https://visualportfolio.co/) and [documentation](https://visualportfolio.co/documentation/getting-started/).
202
 
203
  ## Screenshots ##
204
 
269
 
270
  ## Changelog ##
271
 
272
+ = 2.9.1 =
273
+
274
+ * added full support for WPML plugin
275
+ * changed some PHP filter names + added fallbacks to prevent bugs with existing extensions
276
+
277
  = 2.9.0 =
278
 
279
  * improved plugin documentation <https://visualportfolio.co/documentation/getting-started/>. Added more pages with detailed descriptions
310
 
311
  = 2.8.0 =
312
 
313
+ * added support for Custom Hover image in Pro version <https://visualportfolio.co/custom-hover-image-animated-gif/>
314
  * added Vertical Gap option
315
  * added icons to all categories toggles in editor
316
  * added Popup Gallery setting to disable "Click to Zoom"
347
 
348
  = 2.6.2 =
349
 
350
+ * improved image lazyloading support for Pro plugin and social integrations
351
  * improved animated GIFs usage (we can't use resized images, used full size only)
352
  * updated 3rd-party vendor scripts
353
  * moved posts Focal Point picker panel to Featured image selector panel (better UI)
377
  = 2.5.0 =
378
 
379
  * added Image Overlay setting on Emerge Style
380
+ * added support for images filters in Pro plugin version <https://visualportfolio.co/masonry-image-filters/>
381
  * changed Emerge image transform from scale to translateY
382
  * fixed filter displaying in FireFox
383
  * fixed custom scrollbar initialization after ajax load
394
  * added custom scrollbar for overlays with overflow (looks better, than system scrollbar)
395
  * added more wp actions in portfolio output (helpful for developers)
396
  * added iframe resize when Gutenberg preview device type changed
397
+ * updated Pro plugin pricing plans. Added a single site license, which many users asked for
398
  * fixed custom aspect ratio select (set default value if value is empty)
399
  * fixed post taxonomies slug in the filter (fixes support for languages like Japanese, Chinese, Russian, etc.)
400
  * fixed possible JS error 'jQuery is not defined'
401
 
402
  = 2.3.0 =
403
 
404
+ * added Pro version support <https://visualportfolio.co/pro/>
405
  * added overlay support for Classic gallery style
406
  * added options to change meta color, links color and links hover color for all items styles
407
  * added options to show gallery items overlay on hover only, on default state only and always
554
  * fixed AMP plugin integration PHP notices
555
  * fixed AJAX loading with changed layout settings in editor preview
556
  * fixed error in layouts preview when no items loaded
557
+ * a lot of code improvements for upcoming Pro plugin
558
 
559
  = 1.15.1 =
560
 
737
  * added Menu Order in post based source
738
  * added Mask property in control styles (for developers)
739
  * added filters to extend default controls for layouts, items styles, filters and paginations
740
+ * added filter for control arguments `vpf_registered_control_args` (developers may change controls settings in layouts editor)
741
  * changed condition script for settings in layout editor, should improve performance
742
  * changed popup gallery z-index to 1500 (like in WooCommerce)
743
  * changed initialization method to Mutation Observers (portfolio will init automatically after ajax load)
wpml-config.xml CHANGED
@@ -25,24 +25,9 @@
25
  </gutenberg-block>
26
  </gutenberg-blocks>
27
 
28
- <custom-fields>
29
- <custom-field action="translate">vp_no_items_notice</custom-field>
30
- <custom-field action="translate">vp_items_style_default__date_format</custom-field>
31
- <custom-field action="translate">vp_items_style_default__read_more_label</custom-field>
32
- <custom-field action="translate">vp_items_style_fade__date_format</custom-field>
33
- <custom-field action="translate">vp_items_style_fly__date_format</custom-field>
34
- <custom-field action="translate">vp_items_style_emerge__date_format</custom-field>
35
- <custom-field action="translate">vp_filter_text_all</custom-field>
36
- <custom-field action="translate">vp_pagination_infinite_text_load</custom-field>
37
- <custom-field action="translate">vp_pagination_infinite_text_loading</custom-field>
38
- <custom-field action="translate">vp_pagination_infinite_text_end_list</custom-field>
39
- <custom-field action="translate">vp_pagination_load_more_text_load</custom-field>
40
- <custom-field action="translate">vp_pagination_load_more_text_loading</custom-field>
41
- <custom-field action="translate">vp_pagination_load_more_text_end_list</custom-field>
42
- </custom-fields>
43
-
44
  <custom-types>
45
  <custom-type translate="1">portfolio</custom-type>
 
46
  </custom-types>
47
  <taxonomies>
48
  <taxonomy translate="1">portfolio_category</taxonomy>
25
  </gutenberg-block>
26
  </gutenberg-blocks>
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  <custom-types>
29
  <custom-type translate="1">portfolio</custom-type>
30
+ <custom-type translate="1">vp_lists</custom-type>
31
  </custom-types>
32
  <taxonomies>
33
  <taxonomy translate="1">portfolio_category</taxonomy>