Gallery – Photo Gallery – Image Gallery - Version 2.0.3

Version Description

  • All issues from here : https://github.com/MachoThemes/modula-lite/milestone/5?closed=1
  • Added a new button ( Save & Close ) in edit image modal ( James Leesley recommendation )
  • Renamed "Description" with "Caption" ( James Leesley recommendation )
  • Fixed error on resize
  • Fixed Shuffle
  • Generated .po file
Download this release

Release Info

Developer machothemes
Plugin Icon wp plugin Gallery – Photo Gallery – Image Gallery
Version 2.0.3
Comparing to
See all releases

Code changes from version 2.0.2 to 2.0.3

Modula.php CHANGED
@@ -3,8 +3,8 @@
3
  * Plugin Name: Modula
4
  * Plugin URI: https://wp-modula.com/
5
  * Description: Modula is the most powerful, user-friendly WordPress gallery plugin. Add galleries, masonry grids and more in a few clicks.
6
- * Author: Macho Themes
7
- * Version: 2.0.2
8
  * Author URI: https://www.machothemes.com/
9
  */
10
 
@@ -13,7 +13,7 @@
13
  *
14
  * @since 2.0.2
15
  */
16
- define( 'MODULA_LITE_VERSION', '2.0.2' );
17
  define( 'MODULA_PATH', plugin_dir_path( __FILE__ ) );
18
  define( 'MODULA_URL', plugin_dir_url( __FILE__ ) );
19
 
3
  * Plugin Name: Modula
4
  * Plugin URI: https://wp-modula.com/
5
  * Description: Modula is the most powerful, user-friendly WordPress gallery plugin. Add galleries, masonry grids and more in a few clicks.
6
+ * Author: MachoThemes
7
+ * Version: 2.0.3
8
  * Author URI: https://www.machothemes.com/
9
  */
10
 
13
  *
14
  * @since 2.0.2
15
  */
16
+ define( 'MODULA_LITE_VERSION', '2.0.3' );
17
  define( 'MODULA_PATH', plugin_dir_path( __FILE__ ) );
18
  define( 'MODULA_URL', plugin_dir_url( __FILE__ ) );
19
 
README.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: machothemes, silkalns
3
  Tags: best gallery plugin, image gallery, photo gallery, responsive gallery, wordpress gallery plugin, wordpress portfolio plugin, masonry gallery, fancy gallery, media gallery, mosaic gallery, polaroid gallery, portfolio gallery
4
  Requires at least: 3.8
5
  Tested up to: 5.0
6
- Stable tag: 2.0.2
7
  License: GPLv3 or later
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -91,12 +91,6 @@ Modula is also the best WordPress portfolio plugin, as it allows you to build go
91
  * travel
92
  * also wedding albums.
93
 
94
- If you're frustated because your current galleries looks boring and too standard then you can use the importer which is included with Modula. The importer is currently able to import Envira and NextGen galleries.
95
-
96
- > This plugin is maintained and supported by Macho Themes.
97
- > Check out some of the other <a href="//machothemes.com/plugins/">WordPress plugins</a> we've developed.
98
- > Check out some of the other <a href="//machothemes.com/themes/free/">free WordPress themes</a> we've developed.
99
-
100
  == Installation ==
101
  = For automatic installation: =
102
 
@@ -161,6 +155,14 @@ Free support is included only with a PRO license: [Buy Modula PRO](https://wp-mo
161
 
162
  == Changelog ==
163
 
 
 
 
 
 
 
 
 
164
  = 2.0.2 =
165
  * Changed strings
166
  * Fixed open new tab checkbox
3
  Tags: best gallery plugin, image gallery, photo gallery, responsive gallery, wordpress gallery plugin, wordpress portfolio plugin, masonry gallery, fancy gallery, media gallery, mosaic gallery, polaroid gallery, portfolio gallery
4
  Requires at least: 3.8
5
  Tested up to: 5.0
6
+ Stable tag: 2.0.3
7
  License: GPLv3 or later
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
91
  * travel
92
  * also wedding albums.
93
 
 
 
 
 
 
 
94
  == Installation ==
95
  = For automatic installation: =
96
 
155
 
156
  == Changelog ==
157
 
158
+ = 2.0.3 =
159
+ * All issues from here : https://github.com/MachoThemes/modula-lite/milestone/5?closed=1
160
+ * Added a new button ( Save & Close ) in edit image modal ( James Leesley recommendation )
161
+ * Renamed "Description" with "Caption" ( James Leesley recommendation )
162
+ * Fixed error on resize
163
+ * Fixed Shuffle
164
+ * Generated .po file
165
+
166
  = 2.0.2 =
167
  * Changed strings
168
  * Fixed open new tab checkbox
assets/css/addons.css CHANGED
@@ -1,26 +1,15 @@
1
  .modula-addons-container {
2
  display: flex;
3
- margin-top: 20px;
4
  }
5
  .modula-addon {
6
- width: 30%;
7
- width: calc(33.1% - 8px);
8
- margin: 0 8px 16px;
9
  background-color: #fff;
10
  border: 1px solid #ddd;
11
  box-sizing: border-box;
12
  }
13
- .modula-addon:nth-child(odd) {
14
- clear: both;
15
- margin-left: 0;
16
- }
17
- .modula-addon:nth-child(3n+1) {
18
- clear: both;
19
- margin-left: 0;
20
- }
21
- .modula-addon:nth-child(even) {
22
- margin-right: 8px;
23
- }
24
  .modula-addon .modula-addon-box {
25
  display: flex;
26
  padding: 20px 20px 10px;
@@ -44,4 +33,57 @@
44
  border-top: 1px solid #ddd;
45
  overflow: hidden;
46
  text-align: center;
47
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  .modula-addons-container {
2
  display: flex;
3
+ justify-content: space-between;
4
  }
5
  .modula-addon {
6
+ width: 48%;
7
+ margin: 0 0 16px;
 
8
  background-color: #fff;
9
  border: 1px solid #ddd;
10
  box-sizing: border-box;
11
  }
12
+
 
 
 
 
 
 
 
 
 
 
13
  .modula-addon .modula-addon-box {
14
  display: flex;
15
  padding: 20px 20px 10px;
33
  border-top: 1px solid #ddd;
34
  overflow: hidden;
35
  text-align: center;
36
+ }
37
+
38
+ /* Style Partners */
39
+ .modula-partners {
40
+ display: flex;
41
+ flex-wrap: wrap;
42
+ /*justify-content: space-between;*/
43
+ }
44
+ .modula-partners .modula-partner-box {
45
+ background: #fff;
46
+ border: 1px solid #e5e5e5;
47
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
48
+ padding: 15px 15px 0;
49
+ margin: 15px 0;
50
+ position: relative;
51
+ text-align: center;
52
+ width: 33%;
53
+ margin-right: 3%;
54
+ }
55
+ .modula-partner-box img {
56
+ width: 125px;
57
+ height: 125px;
58
+ margin: 0 auto;
59
+ margin-bottom: 15px;
60
+ display: block;
61
+ border: none;
62
+ }
63
+ .modula-partner-box__name {
64
+ margin-bottom: 10px;
65
+ padding: 0 26px;
66
+ font-weight: 600;
67
+ }
68
+ .modula-partner-box__description {
69
+ font-size: 0.875em;
70
+ margin-bottom: 15px;
71
+ font-style: italic;
72
+ }
73
+ .modula-partner-box__action-bar {
74
+ -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, .1);
75
+ box-shadow: inset 0 1px 0 rgba(0, 0, 0, .1);
76
+ white-space: nowrap;
77
+ text-overflow: ellipsis;
78
+ text-align: left;
79
+ margin-left: -15px;
80
+ margin-right: -15px;
81
+ }
82
+ .modula-partner-box__action-button {
83
+ display: block;
84
+ padding: 9px 10px 10px;
85
+ background: #f6f6f6;
86
+ border-top: 1px solid rgba(0, 0, 0, .1);
87
+ text-align: center;
88
+ /*width: 100%;*/
89
+ }
assets/css/edit.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ .post-type-modula-gallery .wrap h1.wp-heading-inline,
2
+ .post-type-modula-gallery .wrap > .page-title-action {
3
+ display: none;
4
+ }
5
+ .post-type-modula-gallery .wrap .nav-tab-wrapper .page-title-action {
6
+ top: 7px;
7
+ }
assets/js/wp-modula-modal.js CHANGED
@@ -73,7 +73,8 @@ wp.Modula = 'undefined' === typeof( wp.Modula ) ? {} : wp.Modula;
73
  'blur textarea': 'updateItem',
74
  'change select': 'updateItem',
75
 
76
- 'click .actions a.modula-gallery-meta-submit': 'saveItem',
 
77
 
78
  'keyup input#link-search': 'searchLinks',
79
  'click div.query-results li': 'insertLink',
@@ -291,6 +292,20 @@ wp.Modula = 'undefined' === typeof( wp.Modula ) ? {} : wp.Modula;
291
 
292
  },
293
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
  /**
295
  * Searches Links
296
  */
73
  'blur textarea': 'updateItem',
74
  'change select': 'updateItem',
75
 
76
+ 'click .actions a.modula-gallery-meta-submit': 'saveItem',
77
+ 'click .actions a.modula-gallery-meta-submit-close': 'saveItemAndClose',
78
 
79
  'keyup input#link-search': 'searchLinks',
80
  'click div.query-results li': 'insertLink',
292
 
293
  },
294
 
295
+ saveItemAndClose: function ( event ){
296
+ var view;
297
+
298
+ event.preventDefault();
299
+
300
+ // Tell the View we're loading
301
+ this.trigger( 'loading' );
302
+
303
+ // Get item view and render it.
304
+ view = this.model.get( 'wpMediaView' );
305
+ view.close();
306
+
307
+ },
308
+
309
  /**
310
  * Searches Links
311
  */
includes/admin/class-modula-addons.php CHANGED
@@ -3,7 +3,7 @@
3
  class Modula_Addons {
4
 
5
  private $addons;
6
- private $upgrade_url = 'https://wp-modula.com/';
7
 
8
  function __construct() {
9
 
@@ -17,7 +17,7 @@ class Modula_Addons {
17
  array(
18
  'image' => '',
19
  'name' => esc_html__( 'Modula Video', 'modula-best-grid-gallery' ),
20
- 'description' => '',
21
  )
22
  );
23
 
3
  class Modula_Addons {
4
 
5
  private $addons;
6
+ private $upgrade_url = 'https://wp-modula.com/pricing/?utm_source=modula-lite&utm_medium=video-addon&utm_campaign=upsell';
7
 
8
  function __construct() {
9
 
17
  array(
18
  'image' => '',
19
  'name' => esc_html__( 'Modula Video', 'modula-best-grid-gallery' ),
20
+ 'description' => esc_html__( 'Adding a video gallery with both self-hosted videos and videos from sources like YouTube and Vimeo to your website has never been easier.', 'modula-best-grid-gallery' ),
21
  )
22
  );
23
 
includes/admin/class-modula-admin.php CHANGED
@@ -21,25 +21,29 @@ class Modula_Admin {
21
 
22
  public function register_submenus() {
23
 
24
- add_submenu_page( 'edit.php?post_type=modula-gallery', esc_html__( 'Modula', 'modula-best-grid-gallery' ), esc_html__( 'Modula', 'modula-best-grid-gallery' ), 'manage_options', 'modula', array( $this, 'show_submenu' ) );
25
- add_submenu_page( 'edit.php?post_type=modula-gallery', esc_html__( 'Addons', 'modula-best-grid-gallery' ), esc_html__( 'Addons', 'modula-best-grid-gallery' ), 'manage_options', 'modula-addons', array( $this, 'show_addons' ) );
 
 
 
 
 
 
 
 
26
 
27
  }
28
 
29
  public function show_submenu() {
30
- $this->tabs = apply_filters( 'modula_admin_page_tabs', array(
31
- 'general' => array(
32
- 'label' => esc_html__( 'General', 'modula-best-grid-gallery' ),
33
- 'priority' => 10
34
- ),
35
- ) );
36
-
37
- // Sort tabs based on priority.
38
- uasort( $this->tabs, array( 'Modula_Helper', 'sort_data_by_priority' ) );
39
 
40
  // Get current tab
41
  if ( isset( $_GET['modula-tab'] ) && isset( $this->tabs[ $_GET['modula-tab'] ] ) ) {
42
  $this->current_tab = $_GET['modula-tab'];
 
 
 
 
 
43
  }
44
 
45
  include 'tabs/modula.php';
@@ -48,12 +52,81 @@ class Modula_Admin {
48
  public function show_addons() {
49
  require_once MODULA_PATH . 'includes/admin/class-modula-addons.php';
50
 
51
- include 'tabs/addons.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
 
53
- $addons = new Modula_Addons();
54
- echo '<div class="modula-addons-container">';
55
- $addons->render_addons();
56
- echo '</div>';
57
  }
58
 
59
  private function generate_url( $tab ) {
21
 
22
  public function register_submenus() {
23
 
24
+ $this->tabs = apply_filters( 'modula_admin_page_tabs', array() );
25
+
26
+ // Sort tabs based on priority.
27
+ uasort( $this->tabs, array( 'Modula_Helper', 'sort_data_by_priority' ) );
28
+
29
+ if ( ! empty( $this->tabs ) ) {
30
+ add_submenu_page( 'edit.php?post_type=modula-gallery', esc_html__( 'Modula', 'modula-best-grid-gallery' ), esc_html__( 'Modula', 'modula-best-grid-gallery' ), 'manage_options', 'modula', array( $this, 'show_submenu' ) );
31
+ }
32
+
33
+ add_submenu_page( 'edit.php?post_type=modula-gallery', esc_html__( 'Extensions', 'modula-best-grid-gallery' ), esc_html__( 'Extensions', 'modula-best-grid-gallery' ), 'manage_options', 'modula-addons', array( $this, 'show_addons' ) );
34
 
35
  }
36
 
37
  public function show_submenu() {
 
 
 
 
 
 
 
 
 
38
 
39
  // Get current tab
40
  if ( isset( $_GET['modula-tab'] ) && isset( $this->tabs[ $_GET['modula-tab'] ] ) ) {
41
  $this->current_tab = $_GET['modula-tab'];
42
+ }else{
43
+
44
+ $tabs = array_keys( $this->tabs );
45
+ $this->current_tab = $tabs[0];
46
+
47
  }
48
 
49
  include 'tabs/modula.php';
52
  public function show_addons() {
53
  require_once MODULA_PATH . 'includes/admin/class-modula-addons.php';
54
 
55
+ $tabs = array(
56
+ 'extensions' => array(
57
+ 'name' => esc_html__( 'Extensions', 'modula-best-grid-gallery' ),
58
+ 'url' => admin_url( 'edit.php?post_type=modula-gallery&page=modula-addons' ),
59
+ ),
60
+ 'partners' => array(
61
+ 'name' => esc_html__( 'Partners', 'modula-best-grid-gallery' ),
62
+ 'url' => admin_url( 'edit.php?post_type=modula-gallery&page=modula-addons&tab=partners' ),
63
+ ),
64
+ );
65
+ $tabs = apply_filters( 'modula_exntesions_tabs', $tabs );
66
+ $active_tab = 'extensions';
67
+ if ( isset( $_GET['tab'] ) && isset( $tabs[ $_GET['tab'] ] ) ) {
68
+ $active_tab = $_GET['tab'];
69
+ }
70
+ ?>
71
+ <div class="about-wrap">
72
+ <h2 class="nav-tab-wrapper">
73
+ <?php
74
+ foreach( $tabs as $tab_id => $tab ) {
75
+ $active = ( $active_tab == $tab_id ? ' nav-tab-active' : '' );
76
+ echo '<a href="' . esc_url( $tab['url'] ) . '" class="nav-tab' . $active . '">';
77
+ echo esc_html( $tab['name'] );
78
+ echo '</a>';
79
+ }
80
+ ?>
81
+
82
+ </h2>
83
+ <?php
84
+
85
+ if ( 'extensions' == $active_tab ) {
86
+ $addons = new Modula_Addons();
87
+ echo '<div class="modula-addons-container">';
88
+ $addons->render_addons();
89
+ echo '</div>';
90
+ }elseif ( 'partners' == $active_tab ) {
91
+
92
+ $partners = array(
93
+ 'shortpixel' => array(
94
+ 'name' => esc_html__( 'ShortPixel Image Optimizer', 'modula-best-grid-gallery' ),
95
+ 'description' => esc_html__( 'Increase your website’s SEO ranking, number of visitors and ultimately your sales by optimizing any image.', 'modula-best-grid-gallery' ),
96
+ 'url' => 'https://shortpixel.com/otp/af/HUOYEBB31472',
97
+ 'button' => esc_html__( 'Test your site for free', 'modula-best-grid-gallery' ),
98
+ 'image' => 'https://ps.w.org/shortpixel-image-optimiser/assets/icon-128x128.png?rev=1038819',
99
+ ),
100
+ 'optimole' => array(
101
+ 'name' => esc_html__( 'Optimole', 'modula-best-grid-gallery' ),
102
+ 'description' => esc_html__( 'Image optimization & resizing. Image acceleration through CDN. On-the-fly image handling.', 'modula-best-grid-gallery' ),
103
+ 'url' => 'https://optimole.com/',
104
+ 'button' => esc_html__( 'Check it out for free', 'modula-best-grid-gallery' ),
105
+ 'image' => 'https://ps.w.org/optimole-wp/assets/icon-128x128.png?rev=1975706',
106
+ ),
107
+ );
108
+
109
+ echo '<div class="modula-partners">';
110
+ foreach ( $partners as $partner_id => $partner ) {
111
+ echo '<div id="' . $partner_id . '" class="col modula-partner-box">';
112
+ echo '<img src="' . esc_url( $partner['image'] ) . '">';
113
+ echo '<div class="modula-partner-box__name">' . esc_html( $partner['name'] ) . '</div>';
114
+ echo '<div class="modula-partner-box__description">' . esc_html( $partner['description'] ) . '</div>';
115
+ echo '<div class="modula-partner-box__action-bar">';
116
+ echo '<span class="modula-partner-box__action-button">';
117
+ echo '<a class="button" href="' . esc_url( $partner['url'] ) . '" target="_blank">' . esc_html( $partner['button'] ) . '</a>';
118
+ echo '</span>';
119
+ echo '</div>';
120
+ echo '</div>';
121
+ }
122
+ echo '</div>';
123
+ echo '</div>';
124
+
125
+ }else{
126
+ do_action( "modula_exntesion_{$active_tab}_tab" );
127
+ }
128
 
129
+
 
 
 
130
  }
131
 
132
  private function generate_url( $tab ) {
includes/admin/class-modula-cpt-fields-helper.php CHANGED
@@ -233,28 +233,28 @@ class Modula_CPT_Fields_Helper {
233
  'priority' => 40,
234
  ),
235
  "hide_description" => array(
236
- "name" => esc_html__( 'Hide Description', 'modula-best-grid-gallery' ),
237
  "type" => "toggle",
238
  "default" => 0,
239
  "description" => esc_html__( 'Hide image descriptions from the gallery', 'modula-best-grid-gallery' ),
240
  'priority' => 50,
241
  ),
242
- "captionFontSize" => array(
243
- "name" => esc_html__( 'Caption Font Size', 'modula-best-grid-gallery' ),
244
  "type" => "ui-slider",
245
  "min" => 0,
246
  "max" => 100,
247
- "default" => 14,
248
- "description" => esc_html__( 'The caption font size in pixels (set to 0 to use the theme defaults)', 'modula-best-grid-gallery' ),
249
  'priority' => 60,
250
  ),
251
- "titleFontSize" => array(
252
- "name" => esc_html__( 'Title Font Size', 'modula-best-grid-gallery' ),
253
  "type" => "ui-slider",
254
  "min" => 0,
255
  "max" => 100,
256
- "default" => 0,
257
- "description" => esc_html__( 'The title font size in pixel. (set to 0 to use the theme defaults)', 'modula-best-grid-gallery' ),
258
  'priority' => 70,
259
  ),
260
  ),
233
  'priority' => 40,
234
  ),
235
  "hide_description" => array(
236
+ "name" => esc_html__( 'Hide Caption', 'modula-best-grid-gallery' ),
237
  "type" => "toggle",
238
  "default" => 0,
239
  "description" => esc_html__( 'Hide image descriptions from the gallery', 'modula-best-grid-gallery' ),
240
  'priority' => 50,
241
  ),
242
+ "titleFontSize" => array(
243
+ "name" => esc_html__( 'Title Font Size', 'modula-best-grid-gallery' ),
244
  "type" => "ui-slider",
245
  "min" => 0,
246
  "max" => 100,
247
+ "default" => 0,
248
+ "description" => esc_html__( 'The title font size in pixel. (set to 0 to use the theme defaults)', 'modula-best-grid-gallery' ),
249
  'priority' => 60,
250
  ),
251
+ "captionFontSize" => array(
252
+ "name" => esc_html__( 'Caption Font Size', 'modula-best-grid-gallery' ),
253
  "type" => "ui-slider",
254
  "min" => 0,
255
  "max" => 100,
256
+ "default" => 14,
257
+ "description" => esc_html__( 'The caption font size in pixels (set to 0 to use the theme defaults)', 'modula-best-grid-gallery' ),
258
  'priority' => 70,
259
  ),
260
  ),
includes/admin/class-modula-cpt.php CHANGED
@@ -90,6 +90,9 @@ class Modula_CPT {
90
  add_action( 'load-post.php', array( $this, 'meta_boxes_setup' ) );
91
  add_action( 'load-post-new.php', array( $this, 'meta_boxes_setup' ) );
92
 
 
 
 
93
  /* Load Fields Helper */
94
  require_once MODULA_PATH . 'includes/admin/class-modula-cpt-fields-helper.php';
95
 
@@ -204,13 +207,13 @@ class Modula_CPT {
204
 
205
  switch ( $attribute ) {
206
  case 'alt':
207
- case 'title':
208
  $new_image[ $attribute ] = sanitize_text_field( $_POST['modula-images'][ $attribute ][ $index ] );
209
  break;
210
  case 'width':
211
  case 'height':
212
  $new_image[ $attribute ] = absint( $_POST['modula-images'][ $attribute ][ $index ] );
213
  break;
 
214
  case 'description' :
215
  $new_image[ $attribute ] = wp_filter_post_kses( $_POST['modula-images'][ $attribute ][ $index ] );
216
  break;
@@ -362,4 +365,41 @@ class Modula_CPT {
362
  }
363
 
364
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
365
  }
90
  add_action( 'load-post.php', array( $this, 'meta_boxes_setup' ) );
91
  add_action( 'load-post-new.php', array( $this, 'meta_boxes_setup' ) );
92
 
93
+ /* */
94
+ add_filter( 'views_edit-modula-gallery', array( $this, 'add_extensions_tab' ), 10, 1 );
95
+
96
  /* Load Fields Helper */
97
  require_once MODULA_PATH . 'includes/admin/class-modula-cpt-fields-helper.php';
98
 
207
 
208
  switch ( $attribute ) {
209
  case 'alt':
 
210
  $new_image[ $attribute ] = sanitize_text_field( $_POST['modula-images'][ $attribute ][ $index ] );
211
  break;
212
  case 'width':
213
  case 'height':
214
  $new_image[ $attribute ] = absint( $_POST['modula-images'][ $attribute ][ $index ] );
215
  break;
216
+ case 'title':
217
  case 'description' :
218
  $new_image[ $attribute ] = wp_filter_post_kses( $_POST['modula-images'][ $attribute ][ $index ] );
219
  break;
365
  }
366
 
367
  }
368
+
369
+ public function add_extensions_tab( $views ) {
370
+ $this->display_extension_tab();
371
+ return $views;
372
+ }
373
+
374
+ public function display_extension_tab() {
375
+ ?>
376
+ <h2 class="nav-tab-wrapper">
377
+ <?php
378
+ $tabs = array(
379
+ 'galleries' => array(
380
+ 'name' => $this->labels['name'],
381
+ 'url' => admin_url( 'edit.php?post_type=' . $this->cpt_name ),
382
+ ),
383
+ 'extensions' => array(
384
+ 'name' => __( 'Extensions', 'modula-best-grid-gallery' ),
385
+ 'url' => admin_url( 'edit.php?post_type=' . $this->cpt_name . '&page=modula-addons' ),
386
+ ),
387
+ );
388
+ $tabs = apply_filters( 'modula_add_edit_tabs', $tabs );
389
+ $active_tab = 'galleries';
390
+ foreach( $tabs as $tab_id => $tab ) {
391
+ $active = ( $active_tab == $tab_id ? ' nav-tab-active' : '' );
392
+ echo '<a href="' . esc_url( $tab['url'] ) . '" class="nav-tab' . $active . '">';
393
+ echo esc_html( $tab['name'] );
394
+ echo '</a>';
395
+ }
396
+ ?>
397
+
398
+ <a href="<?php echo admin_url( 'post-new.php?post_type=' . $this->cpt_name ); ?>" class="page-title-action">
399
+ <?php esc_html_e( 'Add New', 'modula-best-grid-gallery' ); ?>
400
+ </a>
401
+ </h2>
402
+ <br />
403
+ <?php
404
+ }
405
  }
includes/admin/class-modula-upsells.php CHANGED
@@ -13,12 +13,6 @@ class Modula_Upsells {
13
  add_filter( 'modula_image-loaded-effects_tab_content', array( $this, 'loadingeffects_tab_upsell' ) );
14
  add_filter( 'modula_video_tab_content', array( $this, 'video_tab_upsell' ) );
15
 
16
- /* Add pro vs lite tab */
17
- add_filter( 'modula_admin_page_tabs', array( $this, 'pro_vs_lite_tab' ) );
18
-
19
- /* Show pro vs lite tab content */
20
- add_action( 'modula_admin_tab_provslite', array( $this, 'show_provslite_tab' ) );
21
-
22
  }
23
 
24
  public function generate_upsell_box( $title, $description, $tab ) {
@@ -27,8 +21,8 @@ class Modula_Upsells {
27
  $upsell_box .= '<h2>' . esc_html( $title ) . '</h2>';
28
  $upsell_box .= '<p class="modula-upsell-description">' . esc_html( $description ) . '</p>';
29
  $upsell_box .= '<p>';
30
- $upsell_box .= '<a target="_blank" href="' . admin_url( 'edit.php?post_type=modula-gallery&page=modula&modula-tab=provslite' ) . '" class="button">' . esc_html__( 'See LITE vs PRO Differences', 'modula-best-grid-gallery' ) . '</a>';
31
- $upsell_box .= '<a target="_blank" href="https://wp-modula.com/?utm_source=modula-lite&utm_medium=' . $tab . '-tab&utm_campaign=upsell" class="button-primary button">' . esc_html__( 'Get Modula Pro!', 'modula-best-grid-gallery' ) . '</a>';
32
  $upsell_box .= '</p>';
33
  $upsell_box .= '</div>';
34
 
@@ -78,19 +72,4 @@ class Modula_Upsells {
78
 
79
  }
80
 
81
- public function pro_vs_lite_tab( $tabs ){
82
-
83
- $tabs['provslite'] = array(
84
- 'label' => esc_html__( 'PRO vs. Lite', 'modula-best-grid-gallery' ),
85
- 'priority' => 20
86
- );
87
-
88
- return $tabs;
89
-
90
- }
91
-
92
- public function show_provslite_tab() {
93
- include 'tabs/upsell.php';
94
- }
95
-
96
  }
13
  add_filter( 'modula_image-loaded-effects_tab_content', array( $this, 'loadingeffects_tab_upsell' ) );
14
  add_filter( 'modula_video_tab_content', array( $this, 'video_tab_upsell' ) );
15
 
 
 
 
 
 
 
16
  }
17
 
18
  public function generate_upsell_box( $title, $description, $tab ) {
21
  $upsell_box .= '<h2>' . esc_html( $title ) . '</h2>';
22
  $upsell_box .= '<p class="modula-upsell-description">' . esc_html( $description ) . '</p>';
23
  $upsell_box .= '<p>';
24
+ $upsell_box .= '<a target="_blank" href="https://wp-modula.com/pricing/?utm_source=modula-lite&utm_medium=' . $tab . '-tab&utm_campaign=litevspro#lite-vs-pro" class="button">' . esc_html__( 'See LITE vs PRO Differences', 'modula-best-grid-gallery' ) . '</a>';
25
+ $upsell_box .= '<a target="_blank" href="https://wp-modula.com/pricing/?utm_source=modula-lite&utm_medium=' . $tab . '-tab&utm_campaign=upsell" class="button-primary button">' . esc_html__( 'Get Modula Pro!', 'modula-best-grid-gallery' ) . '</a>';
26
  $upsell_box .= '</p>';
27
  $upsell_box .= '</div>';
28
 
72
 
73
  }
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  }
includes/admin/modula-js-templates.php CHANGED
@@ -116,7 +116,10 @@
116
  <!-- Actions -->
117
  <div class="actions">
118
  <a href="#" class="modula-gallery-meta-submit button media-button button-large button-primary media-button-insert" title="<?php esc_attr_e( 'Save Metadata', 'modula-best-grid-gallery' ); ?>">
119
- <?php esc_html_e( 'Save Metadata', 'modula-best-grid-gallery' ); ?>
 
 
 
120
  </a>
121
 
122
  <!-- Save Spinner -->
116
  <!-- Actions -->
117
  <div class="actions">
118
  <a href="#" class="modula-gallery-meta-submit button media-button button-large button-primary media-button-insert" title="<?php esc_attr_e( 'Save Metadata', 'modula-best-grid-gallery' ); ?>">
119
+ <?php esc_html_e( 'Save', 'modula-best-grid-gallery' ); ?>
120
+ </a>
121
+ <a href="#" class="modula-gallery-meta-submit-close button media-button button-large media-button-insert" title="<?php esc_attr_e( 'Save & Close', 'modula-best-grid-gallery' ); ?>">
122
+ <?php esc_html_e( 'Save & Close', 'modula-best-grid-gallery' ); ?>
123
  </a>
124
 
125
  <!-- Save Spinner -->
includes/admin/tabs/addons.php DELETED
@@ -1,6 +0,0 @@
1
- <div class="wrap">
2
- <h1 class="wp-heading-inline"><?php esc_html_e( 'Modula Addons', 'modula-best-grid-gallery' ) ?></h1>
3
- <a href="#" id="modula-force-reload" class="page-title-action"><?php esc_html_e( 'Reload Addons', 'modula-best-grid-gallery' ) ?></a>
4
- <p><?php esc_html_e( 'Addons are used to extend the core functionality of Modula. You can automatically install an addon from this page if available.', 'modula-best-grid-gallery' ) ?></p>
5
- </div>
6
- <div class="modula-addons-error"></div>
 
 
 
 
 
 
includes/admin/tabs/general.php DELETED
@@ -1,14 +0,0 @@
1
- <div class="three-col">
2
- <div class="col">
3
- <h4><?php esc_html_e( 'Need some inspirations? Take a look at our demos.', 'modula-best-grid-gallery' ) ?></h4>
4
- <p><?php sprintf( esc_html_e( "We know how awesome and powerful Modula is but don't take our word for it, %stake a look at our demos%s tto see what you can do with our gallery plugin.", 'modula-best-grid-gallery' ), '<a href="https://wp-modula.com/#demo">', '</a>' ) ?>.</p>
5
- </div>
6
- <div class="col">
7
- <h4><?php esc_html_e( 'Still need help?', 'modula-best-grid-gallery' ) ?></h4>
8
- <p><?php sprintf( esc_html_e( "We strive to make our plugins as user-friendly as possible but sometimes you might need to %scheck our documentation%s", 'modula-best-grid-gallery' ), '<a href="https://wp-modula.com/">', '</a>' ) ?>.</p>
9
- </div>
10
- <div class="col">
11
- <h4><?php esc_html_e( 'Need help? Get in touch.', 'modula-best-grid-gallery' ) ?></h4>
12
- <p><?php sprintf( esc_html_e( "If you have any pre-sales questions, support requests or just want to say hi - please %scontact us now%s", 'modula-best-grid-gallery' ), '<a href="https://wp-modula.com/contact-us/">', '</a>' ) ?>.</p>
13
- </div>
14
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/admin/tabs/upsell.php DELETED
@@ -1,89 +0,0 @@
1
- <?php
2
- if ( ! defined( 'WPINC' ) ) {
3
- die;
4
- }
5
- /**
6
- * Features
7
- */
8
-
9
- $features = array(
10
- array(
11
- 'title' => esc_html__( 'Lightboxes', 'modula-best-grid-gallery' ),
12
- 'description' => esc_html__( 'Lightgallery, Lightbox2, PrettyPhoto, Magnific Gallery, SwipeBox, FancyBox', 'modula-best-grid-gallery' ),
13
- 'lite' => '1',
14
- 'pro' => '6',
15
- ),
16
- array(
17
- 'title' => esc_html__( 'Hover Effects', 'modula-best-grid-gallery' ),
18
- 'description' => esc_html__( 'Choose from 12 different hover effects.', 'modula-best-grid-gallery' ),
19
- 'lite' => '1',
20
- 'pro' => '12',
21
- ),
22
- array(
23
- 'title' => esc_html__( 'Loading effects', 'modula-best-grid-gallery' ),
24
- 'description' => esc_html__( 'Build your own effects with these new customizations.', 'modula-best-grid-gallery' ),
25
- 'lite' => '1',
26
- 'pro' => '4',
27
- ),
28
- array(
29
- 'title' => esc_html__( 'Filters', 'modula-best-grid-gallery' ),
30
- 'description' => esc_html__( 'Let visitors filter your gallery items with a single click', 'modula-best-grid-gallery' ),
31
- 'lite' => '<span class="dashicons dashicons-no-alt"></span>',
32
- 'pro' => '<span class="dashicons dashicons-yes"></span></i>',
33
- ),
34
- array(
35
- 'title' => esc_html__( 'Number of images', 'modula-best-grid-gallery' ),
36
- 'description' => '',
37
- 'lite' => '20',
38
- 'pro' => 'Unlimited',
39
- ),
40
- array(
41
- 'title' => esc_html__( 'Video Addon', 'modula-best-grid-gallery' ),
42
- 'description' => esc_html__( 'You asked we implemented, now you can add videos to your gallery.', 'modula-best-grid-gallery' ),
43
- 'lite' => '<span class="dashicons dashicons-no-alt"></span>',
44
- 'pro' => '<span class="dashicons dashicons-yes"></span></i>',
45
- ),
46
- array(
47
- 'title' => esc_html__( 'Support', 'modula-best-grid-gallery' ),
48
- 'description' => esc_html__( 'You can access our dedicated support team.', 'modula-best-grid-gallery' ),
49
- 'lite' => 'WordPress.org Forums',
50
- 'pro' => 'Dedicated Support Team',
51
- ),
52
-
53
- );
54
- ?>
55
- <div class="featured-section features">
56
- <table class="free-pro-table">
57
- <thead>
58
- <tr>
59
- <th></th>
60
- <th><?php esc_html_e( 'Lite', 'modula-best-grid-gallery' ); ?></th>
61
- <th><?php esc_html_e( 'PRO', 'modula-best-grid-gallery' ); ?></th>
62
- </tr>
63
- </thead>
64
- <tbody>
65
- <?php foreach ( $features as $feature ) : ?>
66
- <tr>
67
- <td class="feature">
68
- <h3><?php echo $feature['title']; ?></h3>
69
- <?php if ( isset( $feature['description'] ) ) : ?>
70
- <p><?php echo $feature['description']; ?></p>
71
- <?php endif ?>
72
- </td>
73
- <td class="lite-feature">
74
- <?php echo $feature['lite']; ?>
75
- </td>
76
- <td class="pro-feature">
77
- <?php echo $feature['pro']; ?>
78
- </td>
79
- </tr>
80
- <?php endforeach; ?>
81
- <tr>
82
- <td></td>
83
- <td colspan="2" class="text-right">
84
- <a href="https://wp-modula.com/?utm_source=modula-lite&utm_medium=about-page&utm_campaign=upsell" target="_blank" class="button button-primary button-hero"><span class="dashicons dashicons-cart"></span><?php esc_html_e( 'Get The Pro Version Now!', 'modula-best-grid-gallery' ); ?>
85
- </a></td>
86
- </tr>
87
- </tbody>
88
- </table>
89
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class-modula-upgrades.php CHANGED
@@ -144,52 +144,68 @@ class Modula_Upgrades {
144
  /* Pages functions */
145
  public function modula_upgrade_v2() {
146
 
147
- $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'import-all';
 
 
 
 
 
 
 
 
 
148
 
149
- echo '<div class="wrap"><h1>' . esc_html__( 'Upgrade to Modula V2', 'modula-best-grid-gallery' ) . '</h1>';
150
- echo '<p class="about-text">' . esc_html__( 'Since Modula V2.0.0 we changed how we stored data about your galleries so in order to have all the old galleries you need to run this updater.', 'modula-best-grid-gallery' ) . '</p>';
151
- echo '<p class="about-text"><strong>' . esc_html__( 'Please don\'t close this window.', 'modula-best-grid-gallery' ) . '</strong></p>';
152
 
153
- // Tabs
154
- echo '<h2 class="nav-tab-wrapper wp-clearfix">';
155
- echo '<a href="' . admin_url( 'options.php?page=modula-upgrade-v2' ) . '" class="nav-tab ' . ( 'import-all' == $tab ? 'nav-tab-active' : '' ) . '">' . esc_html__( 'Import All', 'modula-best-grid-gallery' ) . '</a>';
156
- echo '<a href="' . admin_url( 'options.php?page=modula-upgrade-v2&tab=custom-import' ) . '" class="nav-tab ' . ( 'custom-import' == $tab ? 'nav-tab-active' : '' ) . '">' . esc_html__( 'Custom Import', 'modula-best-grid-gallery' ) . '</a>';
157
- echo '</h2>';
158
 
 
 
 
159
 
160
- echo '<div class="modula-upgrader-progress-bar-container" style="display:none;width: 90%;border-radius: 50px;height: 40px;border: 1px solid #e5e5e5;box-shadow: 0 1px 1px rgba(0,0,0,.04);background: #fff;position: relative;text-align: center;line-height: 40px;font-size: 20px;"><div class="modula-upgrader-progress-bar" style="width: 0%;height: 100%;background: #008ec2;border-radius: 50px;position: absolute;left: 0;top: 0;"></div><span style="z-index: 9;position: relative;">0%</span></div>';
161
- echo '<div class="modula-ajax-output"></div>';
 
 
 
162
 
163
- echo '<div id="modula-upgrade-v2">';
164
 
165
- if ( 'import-all' == $tab ) {
166
- echo '<p>' . esc_html__( 'This will import all your galleries.', 'modula-best-grid-gallery' ) . '</p>';
167
- echo '<a href="#" id="modula-upgrade-v2" class="button button-primary">' . esc_html__( 'Start upgrade', 'modula-best-grid-gallery' ) . '</a>';
168
- }elseif ( 'custom-import' == $tab ) {
169
-
170
- global $wpdb;
171
- $galleries_query = 'SELECT * FROM ' . $wpdb->prefix . 'modula';
172
- $galleries = $wpdb->get_results( $galleries_query );
 
 
 
 
 
173
 
174
- echo '<h3>' . esc_html__( 'Select wich galleries you want to import.', 'modula-best-grid-gallery' ) . '</h3>';
175
 
176
- foreach ( $galleries as $gallery ) {
177
 
178
- echo '<label style="width:30%;padding-right:3%;"><input type="checkbox" class="modula-gallery-to-upgrade" value="' . absint( $gallery->Id ) . '">';
179
- $config = json_decode( $gallery->configuration, true );
180
- echo $config['name'] . ' (' . absint( $gallery->Id ) . ')';
181
- echo '</label>';
 
 
 
 
182
 
183
  }
184
 
185
- echo '<p><a href="#" id="modula-custom-upgrade-v2" class="button button-primary">' . esc_html__( 'Start importing', 'modula-best-grid-gallery' ) . '</a></p>';
186
 
187
- }
 
188
 
189
- echo '</div>';
190
 
191
-
192
- echo '</div>';
193
  }
194
 
195
  /* Ajax Calls */
@@ -335,15 +351,15 @@ class Modula_Upgrades {
335
  }
336
 
337
  $new_images[] = array(
338
- 'id' => absint($image['imageId']),
339
- 'alt' => '',
340
- 'title' => sanitize_text_field($image['title']),
341
- 'caption' => $image['description'],
342
- 'halign' => sanitize_text_field($image['halign']),
343
- 'valign' => sanitize_text_field($image['valign']),
344
- 'link' => esc_url_raw($image['link']),
345
- 'target' => '_blank' == $image['target'] ? 1: 0,
346
- 'filters' => str_replace( '|', ',', $image['filters'] ),
347
  );
348
 
349
  }
144
  /* Pages functions */
145
  public function modula_upgrade_v2() {
146
 
147
+ global $wpdb;
148
+ $table_name = $wpdb->prefix.'modula';
149
+ $galleries = $wpdb->get_var( "SELECT COUNT(Id) as galleries FROM $table_name" );
150
+
151
+ if ( '0' == $galleries ) {
152
+
153
+ echo '<div class="wrap" style="text-align:center;margin-top:70px;"><h1>' . esc_html__( 'Hooray you don\'t have any Modula galleries to upgrade.', 'modula-best-grid-gallery' ) . '</h1>';
154
+ echo '<p class="about-text">' . esc_html__( 'It seems like you didn\'t create any galleries with Modula', 'modula-best-grid-gallery' ) . '</p>';
155
+ echo '<a href="' . admin_url( 'post-new.php?post_type=modula-gallery' ) . '" class="button button-primary button-hero">' . esc_html__( 'Create a gallery now !', 'modula-best-grid-gallery' ) . '</a>';
156
+ echo '</div>';
157
 
158
+ }else{
 
 
159
 
160
+ $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'import-all';
 
 
 
 
161
 
162
+ echo '<div class="wrap"><h1>' . esc_html__( 'Upgrade to Modula V2', 'modula-best-grid-gallery' ) . '</h1>';
163
+ echo '<p class="about-text">' . esc_html__( 'Since Modula V2.0.0 we changed how we stored data about your galleries so in order to have all the old galleries you need to run this updater.', 'modula-best-grid-gallery' ) . '</p>';
164
+ echo '<p class="about-text"><strong>' . esc_html__( 'Please don\'t close this window.', 'modula-best-grid-gallery' ) . '</strong></p>';
165
 
166
+ // Tabs
167
+ echo '<h2 class="nav-tab-wrapper wp-clearfix">';
168
+ echo '<a href="' . admin_url( 'options.php?page=modula-upgrade-v2' ) . '" class="nav-tab ' . ( 'import-all' == $tab ? 'nav-tab-active' : '' ) . '">' . esc_html__( 'Import All', 'modula-best-grid-gallery' ) . '</a>';
169
+ echo '<a href="' . admin_url( 'options.php?page=modula-upgrade-v2&tab=custom-import' ) . '" class="nav-tab ' . ( 'custom-import' == $tab ? 'nav-tab-active' : '' ) . '">' . esc_html__( 'Custom Import', 'modula-best-grid-gallery' ) . '</a>';
170
+ echo '</h2>';
171
 
 
172
 
173
+ echo '<div class="modula-upgrader-progress-bar-container" style="display:none;width: 90%;border-radius: 50px;height: 40px;border: 1px solid #e5e5e5;box-shadow: 0 1px 1px rgba(0,0,0,.04);background: #fff;position: relative;text-align: center;line-height: 40px;font-size: 20px;"><div class="modula-upgrader-progress-bar" style="width: 0%;height: 100%;background: #008ec2;border-radius: 50px;position: absolute;left: 0;top: 0;"></div><span style="z-index: 9;position: relative;">0%</span></div>';
174
+ echo '<div class="modula-ajax-output"></div>';
175
+
176
+ echo '<div id="modula-upgrade-v2">';
177
+
178
+ if ( 'import-all' == $tab ) {
179
+ echo '<p>' . esc_html__( 'This will import all your galleries.', 'modula-best-grid-gallery' ) . '</p>';
180
+ echo '<a href="#" id="modula-upgrade-v2" class="button button-primary">' . esc_html__( 'Start upgrade', 'modula-best-grid-gallery' ) . '</a>';
181
+ }elseif ( 'custom-import' == $tab ) {
182
+
183
+ global $wpdb;
184
+ $galleries_query = 'SELECT * FROM ' . $wpdb->prefix . 'modula';
185
+ $galleries = $wpdb->get_results( $galleries_query );
186
 
187
+ echo '<h3>' . esc_html__( 'Select wich galleries you want to import.', 'modula-best-grid-gallery' ) . '</h3>';
188
 
189
+ foreach ( $galleries as $gallery ) {
190
 
191
+ echo '<label style="width:30%;padding-right:3%;"><input type="checkbox" class="modula-gallery-to-upgrade" value="' . absint( $gallery->Id ) . '">';
192
+ $config = json_decode( $gallery->configuration, true );
193
+ echo $config['name'] . ' (' . absint( $gallery->Id ) . ')';
194
+ echo '</label>';
195
+
196
+ }
197
+
198
+ echo '<p><a href="#" id="modula-custom-upgrade-v2" class="button button-primary">' . esc_html__( 'Start importing', 'modula-best-grid-gallery' ) . '</a></p>';
199
 
200
  }
201
 
202
+ echo '</div>';
203
 
204
+
205
+ echo '</div>';
206
 
207
+ }
208
 
 
 
209
  }
210
 
211
  /* Ajax Calls */
351
  }
352
 
353
  $new_images[] = array(
354
+ 'id' => absint($image['imageId']),
355
+ 'alt' => '',
356
+ 'title' => sanitize_text_field($image['title']),
357
+ 'description' => $image['description'],
358
+ 'halign' => sanitize_text_field($image['halign']),
359
+ 'valign' => sanitize_text_field($image['valign']),
360
+ 'link' => esc_url_raw($image['link']),
361
+ 'target' => '_blank' == $image['target'] ? 1: 0,
362
+ 'filters' => str_replace( '|', ',', $image['filters'] ),
363
  );
364
 
365
  }
includes/class-modula.php CHANGED
@@ -186,6 +186,8 @@ class Modula {
186
  }elseif ( 'modula-gallery_page_modula-addons' == $hook ) {
187
  wp_enqueue_style( 'modula-welcome-style', MODULA_URL . 'assets/css/addons.css' );
188
  wp_enqueue_script( 'modula-addon', MODULA_URL . 'assets/js/modula-addon.js', array( 'jquery' ), '2.0.0', true );
 
 
189
  }
190
 
191
  }
186
  }elseif ( 'modula-gallery_page_modula-addons' == $hook ) {
187
  wp_enqueue_style( 'modula-welcome-style', MODULA_URL . 'assets/css/addons.css' );
188
  wp_enqueue_script( 'modula-addon', MODULA_URL . 'assets/js/modula-addon.js', array( 'jquery' ), '2.0.0', true );
189
+ }elseif ( 'edit.php' == $hook ) {
190
+ wp_enqueue_style( 'modula-welcome-style', MODULA_URL . 'assets/css/edit.css' );
191
  }
192
 
193
  }
includes/helper/class-modula-helper.php CHANGED
@@ -17,6 +17,11 @@ class Modula_Helper {
17
  public static function generate_attributes( $attributes ) {
18
  $return = '';
19
  foreach ( $attributes as $name => $value ) {
 
 
 
 
 
20
  $return .= ' ' . esc_attr( $name ) . '="' . esc_attr( $value ) . '"';
21
  }
22
 
17
  public static function generate_attributes( $attributes ) {
18
  $return = '';
19
  foreach ( $attributes as $name => $value ) {
20
+
21
+ if ( in_array( $name, array( 'alt', 'rel', 'title' ) ) ) {
22
+ $value = wp_strip_all_tags( $value );
23
+ }
24
+
25
  $return .= ' ' . esc_attr( $name ) . '="' . esc_attr( $value ) . '"';
26
  }
27
 
includes/public/class-modula-shortcode.php CHANGED
@@ -85,6 +85,9 @@ class Modula_Shortcode {
85
 
86
  /* Get gallery images */
87
  $images = get_post_meta( $atts['id'], 'modula-images', true );
 
 
 
88
 
89
  if ( empty( $settings ) || empty( $images ) ) {
90
  return esc_html__( 'Gallery not found.', 'modula-best-grid-gallery' );
85
 
86
  /* Get gallery images */
87
  $images = get_post_meta( $atts['id'], 'modula-images', true );
88
+ if ( isset( $settings['shuffle'] ) && '1' == $settings['shuffle'] ) {
89
+ shuffle( $images );
90
+ }
91
 
92
  if ( empty( $settings ) || empty( $images ) ) {
93
  return esc_html__( 'Gallery not found.', 'modula-best-grid-gallery' );
includes/public/modula-helper-functions.php CHANGED
@@ -18,6 +18,11 @@ function modula_generate_image_links( $item_data, $item, $settings ){
18
  $image_full = $sizes['url'];
19
  $image_url = $resizer->resize_image( $sizes['url'], $sizes['width'], $sizes['height'] );
20
 
 
 
 
 
 
21
  $item_data['image_full'] = $image_full;
22
  $item_data['image_url'] = $image_url;
23
 
18
  $image_full = $sizes['url'];
19
  $image_url = $resizer->resize_image( $sizes['url'], $sizes['width'], $sizes['height'] );
20
 
21
+ // If we couldn't resize the image we will return the full image.
22
+ if ( is_wp_error( $image_url ) ) {
23
+ $image_url = $image_full;
24
+ }
25
+
26
  $item_data['image_full'] = $image_full;
27
  $item_data['image_url'] = $image_url;
28
 
includes/public/templates/items/item.php CHANGED
@@ -15,7 +15,7 @@
15
  <div class="figc">
16
  <div class="figc-inner">
17
  <?php if ( ! $data->hide_title ): ?>
18
- <h2 class='jtg-title'><?php echo esc_html( $data->title ); ?></h2>
19
  <?php endif ?>
20
  <?php if ( ! $data->hide_description ): ?>
21
  <p class="description"><?php echo wp_kses_post( $data->description ); ?></p>
15
  <div class="figc">
16
  <div class="figc-inner">
17
  <?php if ( ! $data->hide_title ): ?>
18
+ <h2 class='jtg-title'><?php echo wp_kses_post( $data->title ); ?></h2>
19
  <?php endif ?>
20
  <?php if ( ! $data->hide_description ): ?>
21
  <p class="description"><?php echo wp_kses_post( $data->description ); ?></p>
includes/public/templates/modula-gallery.php CHANGED
@@ -7,6 +7,11 @@
7
 
8
  foreach ( $data->images as $image ) {
9
 
 
 
 
 
 
10
  // Create array with data in order to send it to image template
11
  $item_data = array(
12
  /* Item Elements */
7
 
8
  foreach ( $data->images as $image ) {
9
 
10
+ $image_object = get_post( $image['id'] );
11
+ if ( is_wp_error( $image_object ) || get_post_type( $image_object ) != 'attachment' ) {
12
+ continue;
13
+ }
14
+
15
  // Create array with data in order to send it to image template
16
  $item_data = array(
17
  /* Item Elements */
languages/modula-best-grid-gallery.po ADDED
@@ -0,0 +1,1110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2019 Macho Themes
2
+ # This file is distributed under the same license as the Modula package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Modula 2.0.2\n"
6
+ "Report-Msgid-Bugs-To: "
7
+ "https://wordpress.org/support/plugin/modula-best-grid-gallery\n"
8
+ "POT-Creation-Date: 2019-01-14 20:19:38+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=utf-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+ "Language: en\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Poedit-Country: United States\n"
18
+ "X-Poedit-SourceCharset: UTF-8\n"
19
+ "X-Poedit-KeywordsList: "
20
+ "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
21
+ "attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
22
+ "X-Poedit-Basepath: ../\n"
23
+ "X-Poedit-SearchPath-0: .\n"
24
+ "X-Poedit-Bookmarks: \n"
25
+ "X-Textdomain-Support: yes\n"
26
+ "X-Generator: grunt-wp-i18n1.0.2\n"
27
+
28
+ #: includes/admin/class-modula-addons.php:19
29
+ msgid "Modula Video"
30
+ msgstr ""
31
+
32
+ #: includes/admin/class-modula-addons.php:20
33
+ msgid ""
34
+ "Adding a video gallery with both self-hosted videos and videos from sources "
35
+ "like YouTube and Vimeo to your website has never been easier."
36
+ msgstr ""
37
+
38
+ #: includes/admin/class-modula-addons.php:42
39
+ msgid "Upgrade to PRO"
40
+ msgstr ""
41
+
42
+ #: includes/admin/class-modula-addons.php:53
43
+ msgid "Feature Request"
44
+ msgstr ""
45
+
46
+ #: includes/admin/class-modula-addons.php:54
47
+ msgid ""
48
+ "Don't see what you’re looking for? Let us help you build it by making a "
49
+ "suggestion!"
50
+ msgstr ""
51
+
52
+ #: includes/admin/class-modula-addons.php:58
53
+ msgid "Send Feature Request"
54
+ msgstr ""
55
+
56
+ #. Plugin Name of the plugin/theme
57
+ msgid "Modula"
58
+ msgstr ""
59
+
60
+ #: includes/admin/class-modula-admin.php:33
61
+ #: includes/admin/class-modula-admin.php:57
62
+ #: includes/admin/class-modula-cpt.php:384
63
+ msgid "Extensions"
64
+ msgstr ""
65
+
66
+ #: includes/admin/class-modula-admin.php:61
67
+ msgid "Partners"
68
+ msgstr ""
69
+
70
+ #: includes/admin/class-modula-admin.php:94
71
+ msgid "ShortPixel Image Optimizer"
72
+ msgstr ""
73
+
74
+ #: includes/admin/class-modula-admin.php:95
75
+ msgid ""
76
+ "Increase your website’s SEO ranking, number of visitors and ultimately your "
77
+ "sales by optimizing any image."
78
+ msgstr ""
79
+
80
+ #: includes/admin/class-modula-admin.php:97
81
+ msgid "Test your site for free"
82
+ msgstr ""
83
+
84
+ #: includes/admin/class-modula-admin.php:101
85
+ msgid "Optimole"
86
+ msgstr ""
87
+
88
+ #: includes/admin/class-modula-admin.php:102
89
+ msgid ""
90
+ "Image optimization & resizing. Image acceleration through CDN. On-the-fly "
91
+ "image handling."
92
+ msgstr ""
93
+
94
+ #: includes/admin/class-modula-admin.php:104
95
+ msgid "Check it out for free"
96
+ msgstr ""
97
+
98
+ #: includes/admin/class-modula-cpt-fields-helper.php:10
99
+ msgid ""
100
+ "Choose between creative or custom grid (build your own). Pick your favorite "
101
+ "lightbox script and be done quickly."
102
+ msgstr ""
103
+
104
+ #: includes/admin/class-modula-cpt-fields-helper.php:13
105
+ msgid ""
106
+ "The settings below adjust how the image title/description will appear on "
107
+ "the front-end."
108
+ msgstr ""
109
+
110
+ #: includes/admin/class-modula-cpt-fields-helper.php:16
111
+ msgid "Here you can add social sharing buttons to your the images in your gallery."
112
+ msgstr ""
113
+
114
+ #: includes/admin/class-modula-cpt-fields-helper.php:19
115
+ msgid ""
116
+ "The settings below adjust the effect applied to the images after the page "
117
+ "is fully loaded."
118
+ msgstr ""
119
+
120
+ #: includes/admin/class-modula-cpt-fields-helper.php:22
121
+ msgid "Select how your images will behave on hover. Hover styles for your images."
122
+ msgstr ""
123
+
124
+ #: includes/admin/class-modula-cpt-fields-helper.php:25
125
+ msgid "Here you can style the look of your images."
126
+ msgstr ""
127
+
128
+ #: includes/admin/class-modula-cpt-fields-helper.php:28
129
+ msgid ""
130
+ "Use this section to add custom CSS to your gallery for advanced "
131
+ "modifications."
132
+ msgstr ""
133
+
134
+ #: includes/admin/class-modula-cpt-fields-helper.php:33
135
+ msgid "General"
136
+ msgstr ""
137
+
138
+ #: includes/admin/class-modula-cpt-fields-helper.php:34
139
+ msgid "General Settings"
140
+ msgstr ""
141
+
142
+ #: includes/admin/class-modula-cpt-fields-helper.php:40
143
+ msgid "Captions"
144
+ msgstr ""
145
+
146
+ #: includes/admin/class-modula-cpt-fields-helper.php:41
147
+ msgid "Caption Settings"
148
+ msgstr ""
149
+
150
+ #: includes/admin/class-modula-cpt-fields-helper.php:47
151
+ msgid "Social"
152
+ msgstr ""
153
+
154
+ #: includes/admin/class-modula-cpt-fields-helper.php:48
155
+ msgid "Social Settings"
156
+ msgstr ""
157
+
158
+ #: includes/admin/class-modula-cpt-fields-helper.php:54
159
+ #: includes/admin/tabs/upsell.php:23
160
+ msgid "Loading effects"
161
+ msgstr ""
162
+
163
+ #: includes/admin/class-modula-cpt-fields-helper.php:55
164
+ msgid "Loading Effects Settings"
165
+ msgstr ""
166
+
167
+ #: includes/admin/class-modula-cpt-fields-helper.php:61
168
+ #: includes/admin/class-modula-cpt-fields-helper.php:310
169
+ msgid "Hover effect"
170
+ msgstr ""
171
+
172
+ #: includes/admin/class-modula-cpt-fields-helper.php:62
173
+ msgid "Hover Effect Settings"
174
+ msgstr ""
175
+
176
+ #: includes/admin/class-modula-cpt-fields-helper.php:68
177
+ msgid "Video"
178
+ msgstr ""
179
+
180
+ #: includes/admin/class-modula-cpt-fields-helper.php:69
181
+ msgid "Video Settings"
182
+ msgstr ""
183
+
184
+ #: includes/admin/class-modula-cpt-fields-helper.php:74
185
+ msgid "Style"
186
+ msgstr ""
187
+
188
+ #: includes/admin/class-modula-cpt-fields-helper.php:75
189
+ msgid "Style Settings"
190
+ msgstr ""
191
+
192
+ #: includes/admin/class-modula-cpt-fields-helper.php:81
193
+ msgid "Customizations"
194
+ msgstr ""
195
+
196
+ #: includes/admin/class-modula-cpt-fields-helper.php:82
197
+ msgid "Customization Settings"
198
+ msgstr ""
199
+
200
+ #: includes/admin/class-modula-cpt-fields-helper.php:93
201
+ msgid "Still stuck ?"
202
+ msgstr ""
203
+
204
+ #: includes/admin/class-modula-cpt-fields-helper.php:93
205
+ msgid "Explore our documentation"
206
+ msgstr ""
207
+
208
+ #: includes/admin/class-modula-cpt-fields-helper.php:93
209
+ msgid "Contact our support team."
210
+ msgstr ""
211
+
212
+ #: includes/admin/class-modula-cpt-fields-helper.php:104
213
+ msgid "Gallery Type"
214
+ msgstr ""
215
+
216
+ #: includes/admin/class-modula-cpt-fields-helper.php:106
217
+ msgid "Choose the type of gallery you want to use."
218
+ msgstr ""
219
+
220
+ #: includes/admin/class-modula-cpt-fields-helper.php:109
221
+ msgid "Creative Gallery"
222
+ msgstr ""
223
+
224
+ #: includes/admin/class-modula-cpt-fields-helper.php:110
225
+ msgid "Custom Grid"
226
+ msgstr ""
227
+
228
+ #: includes/admin/class-modula-cpt-fields-helper.php:115
229
+ msgid "Gutter"
230
+ msgstr ""
231
+
232
+ #: includes/admin/class-modula-cpt-fields-helper.php:117
233
+ msgid "Use this slider to adjust the spacing of images in your gallery."
234
+ msgstr ""
235
+
236
+ #: includes/admin/class-modula-cpt-fields-helper.php:125
237
+ msgid "Width"
238
+ msgstr ""
239
+
240
+ #: includes/admin/class-modula-cpt-fields-helper.php:127
241
+ msgid "Width of the gallery. Can be in % or pixels."
242
+ msgstr ""
243
+
244
+ #: includes/admin/class-modula-cpt-fields-helper.php:132
245
+ msgid "Height"
246
+ msgstr ""
247
+
248
+ #: includes/admin/class-modula-cpt-fields-helper.php:134
249
+ msgid "Set the height of the gallery in pixels."
250
+ msgstr ""
251
+
252
+ #: includes/admin/class-modula-cpt-fields-helper.php:139
253
+ msgid "Image size"
254
+ msgstr ""
255
+
256
+ #: includes/admin/class-modula-cpt-fields-helper.php:142
257
+ msgid "Set the minimum width or height of the images in pixels."
258
+ msgstr ""
259
+
260
+ #: includes/admin/class-modula-cpt-fields-helper.php:146
261
+ msgid "Margin"
262
+ msgstr ""
263
+
264
+ #: includes/admin/class-modula-cpt-fields-helper.php:149
265
+ msgid "Set the margin between images in pixels."
266
+ msgstr ""
267
+
268
+ #: includes/admin/class-modula-cpt-fields-helper.php:153
269
+ msgid "Random factor"
270
+ msgstr ""
271
+
272
+ #: includes/admin/class-modula-cpt-fields-helper.php:155
273
+ msgid ""
274
+ "Toggle this to 0 to tune down the randomising factor on Modula's grid "
275
+ "algorithm."
276
+ msgstr ""
277
+
278
+ #: includes/admin/class-modula-cpt-fields-helper.php:163
279
+ msgid "Lightbox &amp; Links"
280
+ msgstr ""
281
+
282
+ #: includes/admin/class-modula-cpt-fields-helper.php:165
283
+ msgid ""
284
+ "Choose your preferred lightbox style. Some styles, such as LightGallery, "
285
+ "allow for image downloads."
286
+ msgstr ""
287
+
288
+ #: includes/admin/class-modula-cpt-fields-helper.php:168
289
+ msgid "Link"
290
+ msgstr ""
291
+
292
+ #: includes/admin/class-modula-cpt-fields-helper.php:169
293
+ msgid "No link"
294
+ msgstr ""
295
+
296
+ #: includes/admin/class-modula-cpt-fields-helper.php:170
297
+ msgid "Direct link to image"
298
+ msgstr ""
299
+
300
+ #: includes/admin/class-modula-cpt-fields-helper.php:171
301
+ msgid "Attachment page"
302
+ msgstr ""
303
+
304
+ #: includes/admin/class-modula-cpt-fields-helper.php:173
305
+ #: includes/admin/tabs/upsell.php:11
306
+ msgid "Lightboxes"
307
+ msgstr ""
308
+
309
+ #: includes/admin/class-modula-cpt-fields-helper.php:174
310
+ msgid "Lightbox2"
311
+ msgstr ""
312
+
313
+ #: includes/admin/class-modula-cpt-fields-helper.php:178
314
+ msgid "Lightboxes with PRO license"
315
+ msgstr ""
316
+
317
+ #: includes/admin/class-modula-cpt-fields-helper.php:180
318
+ msgid "Magnific popup"
319
+ msgstr ""
320
+
321
+ #: includes/admin/class-modula-cpt-fields-helper.php:181
322
+ msgid "PrettyPhoto"
323
+ msgstr ""
324
+
325
+ #: includes/admin/class-modula-cpt-fields-helper.php:182
326
+ msgid "FancyBox"
327
+ msgstr ""
328
+
329
+ #: includes/admin/class-modula-cpt-fields-helper.php:183
330
+ msgid "SwipeBox"
331
+ msgstr ""
332
+
333
+ #: includes/admin/class-modula-cpt-fields-helper.php:184
334
+ msgid "LightGallery"
335
+ msgstr ""
336
+
337
+ #: includes/admin/class-modula-cpt-fields-helper.php:190
338
+ msgid "Shuffle images"
339
+ msgstr ""
340
+
341
+ #: includes/admin/class-modula-cpt-fields-helper.php:193
342
+ msgid "Toggle this to ON to have the gallery shuffle on each page load"
343
+ msgstr ""
344
+
345
+ #: includes/admin/class-modula-cpt-fields-helper.php:199
346
+ msgid "Caption color"
347
+ msgstr ""
348
+
349
+ #: includes/admin/class-modula-cpt-fields-helper.php:201
350
+ msgid "Set the color of captions."
351
+ msgstr ""
352
+
353
+ #: includes/admin/class-modula-cpt-fields-helper.php:206
354
+ msgid "Default title"
355
+ msgstr ""
356
+
357
+ #: includes/admin/class-modula-cpt-fields-helper.php:208
358
+ msgid ""
359
+ "If you leave the title blank Modula will get the title from WordPress image "
360
+ "by default."
361
+ msgstr ""
362
+
363
+ #: includes/admin/class-modula-cpt-fields-helper.php:210
364
+ #: includes/admin/class-modula-cpt-fields-helper.php:221
365
+ msgid "No default"
366
+ msgstr ""
367
+
368
+ #: includes/admin/class-modula-cpt-fields-helper.php:211
369
+ #: includes/admin/class-modula-cpt-fields-helper.php:222
370
+ msgid "WP Image title"
371
+ msgstr ""
372
+
373
+ #: includes/admin/class-modula-cpt-fields-helper.php:212
374
+ #: includes/admin/class-modula-cpt-fields-helper.php:224
375
+ msgid "WP Image description"
376
+ msgstr ""
377
+
378
+ #: includes/admin/class-modula-cpt-fields-helper.php:217
379
+ msgid "Default caption"
380
+ msgstr ""
381
+
382
+ #: includes/admin/class-modula-cpt-fields-helper.php:219
383
+ msgid ""
384
+ "If you leave the caption blank Modula will get the title from WordPress "
385
+ "image by default."
386
+ msgstr ""
387
+
388
+ #: includes/admin/class-modula-cpt-fields-helper.php:223
389
+ msgid "WP Image caption"
390
+ msgstr ""
391
+
392
+ #: includes/admin/class-modula-cpt-fields-helper.php:229
393
+ msgid "Hide Title"
394
+ msgstr ""
395
+
396
+ #: includes/admin/class-modula-cpt-fields-helper.php:232
397
+ msgid "Hide image titles from the gallery"
398
+ msgstr ""
399
+
400
+ #: includes/admin/class-modula-cpt-fields-helper.php:236
401
+ msgid "Hide Caption"
402
+ msgstr ""
403
+
404
+ #: includes/admin/class-modula-cpt-fields-helper.php:239
405
+ msgid "Hide image descriptions from the gallery"
406
+ msgstr ""
407
+
408
+ #: includes/admin/class-modula-cpt-fields-helper.php:243
409
+ msgid "Title Font Size"
410
+ msgstr ""
411
+
412
+ #: includes/admin/class-modula-cpt-fields-helper.php:248
413
+ msgid "The title font size in pixel. (set to 0 to use the theme defaults)"
414
+ msgstr ""
415
+
416
+ #: includes/admin/class-modula-cpt-fields-helper.php:252
417
+ msgid "Caption Font Size"
418
+ msgstr ""
419
+
420
+ #: includes/admin/class-modula-cpt-fields-helper.php:257
421
+ msgid "The caption font size in pixels (set to 0 to use the theme defaults)"
422
+ msgstr ""
423
+
424
+ #: includes/admin/class-modula-cpt-fields-helper.php:263
425
+ msgid "Add Twitter icon"
426
+ msgstr ""
427
+
428
+ #: includes/admin/class-modula-cpt-fields-helper.php:270
429
+ msgid "Add Facebook icon"
430
+ msgstr ""
431
+
432
+ #: includes/admin/class-modula-cpt-fields-helper.php:277
433
+ msgid "Add Google Plus icon"
434
+ msgstr ""
435
+
436
+ #: includes/admin/class-modula-cpt-fields-helper.php:284
437
+ msgid "Add Pinterest icon"
438
+ msgstr ""
439
+
440
+ #: includes/admin/class-modula-cpt-fields-helper.php:290
441
+ msgid "Color of social sharing icons"
442
+ msgstr ""
443
+
444
+ #: includes/admin/class-modula-cpt-fields-helper.php:299
445
+ msgid "Scale"
446
+ msgstr ""
447
+
448
+ #: includes/admin/class-modula-cpt-fields-helper.php:300
449
+ msgid ""
450
+ "Choose a value below 100% for a zoom-in effect. Choose a value over 100% "
451
+ "for a zoom-out effect"
452
+ msgstr ""
453
+
454
+ #: includes/admin/class-modula-cpt-fields-helper.php:318
455
+ msgid "Border Size"
456
+ msgstr ""
457
+
458
+ #: includes/admin/class-modula-cpt-fields-helper.php:320
459
+ msgid "Set the border size of images in your gallrey."
460
+ msgstr ""
461
+
462
+ #: includes/admin/class-modula-cpt-fields-helper.php:327
463
+ msgid "Border Radius"
464
+ msgstr ""
465
+
466
+ #: includes/admin/class-modula-cpt-fields-helper.php:329
467
+ msgid "Set the radius of the image borders in this gallery."
468
+ msgstr ""
469
+
470
+ #: includes/admin/class-modula-cpt-fields-helper.php:336
471
+ msgid "Border Color"
472
+ msgstr ""
473
+
474
+ #: includes/admin/class-modula-cpt-fields-helper.php:338
475
+ msgid "Set the color of your image borders in this gallery."
476
+ msgstr ""
477
+
478
+ #: includes/admin/class-modula-cpt-fields-helper.php:343
479
+ msgid "Shadow Size"
480
+ msgstr ""
481
+
482
+ #: includes/admin/class-modula-cpt-fields-helper.php:345
483
+ msgid "Set the size of image shadows in this gallery."
484
+ msgstr ""
485
+
486
+ #: includes/admin/class-modula-cpt-fields-helper.php:352
487
+ msgid "Shadow Color"
488
+ msgstr ""
489
+
490
+ #: includes/admin/class-modula-cpt-fields-helper.php:354
491
+ msgid "Set the color of image shadows in this gallery"
492
+ msgstr ""
493
+
494
+ #: includes/admin/class-modula-cpt-fields-helper.php:361
495
+ msgid "Custom css"
496
+ msgstr ""
497
+
498
+ #: includes/admin/class-modula-cpt-fields-helper.php:364
499
+ msgid "Just write the code without using the &lt;style&gt;&lt;/style&gt; tags"
500
+ msgstr ""
501
+
502
+ #: includes/admin/class-modula-cpt.php:21
503
+ #: includes/admin/class-modula-cpt.php:28
504
+ msgid "Galleries"
505
+ msgstr ""
506
+
507
+ #: includes/admin/class-modula-cpt.php:22
508
+ #: includes/admin/class-modula-cpt.php:69
509
+ msgid "Gallery"
510
+ msgstr ""
511
+
512
+ #: includes/admin/class-modula-cpt.php:25
513
+ msgid "Item Archives"
514
+ msgstr ""
515
+
516
+ #: includes/admin/class-modula-cpt.php:26
517
+ msgid "Item Attributes"
518
+ msgstr ""
519
+
520
+ #: includes/admin/class-modula-cpt.php:27
521
+ msgid "Parent Item:"
522
+ msgstr ""
523
+
524
+ #: includes/admin/class-modula-cpt.php:29
525
+ msgid "Add New Item"
526
+ msgstr ""
527
+
528
+ #: includes/admin/class-modula-cpt.php:30
529
+ #: includes/admin/class-modula-cpt.php:399
530
+ msgid "Add New"
531
+ msgstr ""
532
+
533
+ #: includes/admin/class-modula-cpt.php:31
534
+ msgid "New Item"
535
+ msgstr ""
536
+
537
+ #: includes/admin/class-modula-cpt.php:32
538
+ msgid "Edit Item"
539
+ msgstr ""
540
+
541
+ #: includes/admin/class-modula-cpt.php:33
542
+ msgid "Update Item"
543
+ msgstr ""
544
+
545
+ #: includes/admin/class-modula-cpt.php:34
546
+ msgid "View Item"
547
+ msgstr ""
548
+
549
+ #: includes/admin/class-modula-cpt.php:35
550
+ msgid "View Items"
551
+ msgstr ""
552
+
553
+ #: includes/admin/class-modula-cpt.php:36
554
+ msgid "Search Item"
555
+ msgstr ""
556
+
557
+ #: includes/admin/class-modula-cpt.php:37
558
+ msgid "Not found"
559
+ msgstr ""
560
+
561
+ #: includes/admin/class-modula-cpt.php:38
562
+ msgid "Not found in Trash"
563
+ msgstr ""
564
+
565
+ #: includes/admin/class-modula-cpt.php:39
566
+ msgid "Featured Image"
567
+ msgstr ""
568
+
569
+ #: includes/admin/class-modula-cpt.php:40
570
+ msgid "Set featured image"
571
+ msgstr ""
572
+
573
+ #: includes/admin/class-modula-cpt.php:41
574
+ msgid "Remove featured image"
575
+ msgstr ""
576
+
577
+ #: includes/admin/class-modula-cpt.php:42
578
+ msgid "Use as featured image"
579
+ msgstr ""
580
+
581
+ #: includes/admin/class-modula-cpt.php:43
582
+ msgid "Insert into item"
583
+ msgstr ""
584
+
585
+ #: includes/admin/class-modula-cpt.php:44
586
+ msgid "Uploaded to this item"
587
+ msgstr ""
588
+
589
+ #: includes/admin/class-modula-cpt.php:45
590
+ msgid "Items list"
591
+ msgstr ""
592
+
593
+ #: includes/admin/class-modula-cpt.php:46
594
+ msgid "Items list navigation"
595
+ msgstr ""
596
+
597
+ #: includes/admin/class-modula-cpt.php:47
598
+ msgid "Filter items list"
599
+ msgstr ""
600
+
601
+ #: includes/admin/class-modula-cpt.php:51
602
+ msgid "Modula Gallery"
603
+ msgstr ""
604
+
605
+ #. Description of the plugin/theme
606
+ msgid ""
607
+ "Modula is the most powerful, user-friendly WordPress gallery plugin. Add "
608
+ "galleries, masonry grids and more in a few clicks."
609
+ msgstr ""
610
+
611
+ #: includes/admin/class-modula-cpt.php:74
612
+ msgid "Settings"
613
+ msgstr ""
614
+
615
+ #: includes/admin/class-modula-cpt.php:79
616
+ msgid "Shortcode"
617
+ msgstr ""
618
+
619
+ #: includes/admin/class-modula-field-builder.php:98
620
+ msgid ""
621
+ "<b>Drag and drop</b> files here (max %s per file), or <b>drag images around "
622
+ "to change their order</b>"
623
+ msgstr ""
624
+
625
+ #: includes/admin/class-modula-field-builder.php:101
626
+ msgid "Uploading image"
627
+ msgstr ""
628
+
629
+ #: includes/admin/class-modula-field-builder.php:101
630
+ msgid "of"
631
+ msgstr ""
632
+
633
+ #: includes/admin/class-modula-field-builder.php:124
634
+ msgid "Disable Helper Grid"
635
+ msgstr ""
636
+
637
+ #: includes/admin/class-modula-field-builder.php:167
638
+ #: includes/admin/tabs/general.php:11
639
+ msgid "Need help? Get in touch."
640
+ msgstr ""
641
+
642
+ #: includes/admin/class-modula-field-builder.php:305
643
+ msgid "None"
644
+ msgstr ""
645
+
646
+ #: includes/admin/class-modula-field-builder.php:306
647
+ msgid "Pufrobo"
648
+ msgstr ""
649
+
650
+ #: includes/admin/class-modula-field-builder.php:309
651
+ msgid "Fluid Up"
652
+ msgstr ""
653
+
654
+ #: includes/admin/class-modula-field-builder.php:310
655
+ msgid "Hide"
656
+ msgstr ""
657
+
658
+ #: includes/admin/class-modula-field-builder.php:311
659
+ msgid "Quiet"
660
+ msgstr ""
661
+
662
+ #: includes/admin/class-modula-field-builder.php:312
663
+ msgid "Catinelle"
664
+ msgstr ""
665
+
666
+ #: includes/admin/class-modula-field-builder.php:313
667
+ msgid "Reflex"
668
+ msgstr ""
669
+
670
+ #: includes/admin/class-modula-field-builder.php:314
671
+ msgid "Curtain"
672
+ msgstr ""
673
+
674
+ #: includes/admin/class-modula-field-builder.php:315
675
+ msgid "Lens"
676
+ msgstr ""
677
+
678
+ #: includes/admin/class-modula-field-builder.php:316
679
+ msgid "Appear"
680
+ msgstr ""
681
+
682
+ #: includes/admin/class-modula-field-builder.php:317
683
+ msgid "Crafty"
684
+ msgstr ""
685
+
686
+ #: includes/admin/class-modula-field-builder.php:318
687
+ msgid "Seemo"
688
+ msgstr ""
689
+
690
+ #: includes/admin/class-modula-field-builder.php:319
691
+ msgid "Comodo"
692
+ msgstr ""
693
+
694
+ #: includes/admin/class-modula-field-builder.php:327
695
+ msgid "Hover Effects with PRO license"
696
+ msgstr ""
697
+
698
+ #: includes/admin/class-modula-field-builder.php:336
699
+ msgid "Select an hover effect"
700
+ msgstr ""
701
+
702
+ #: includes/admin/class-modula-field-builder.php:351
703
+ msgid "This effect is compatible with:"
704
+ msgstr ""
705
+
706
+ #: includes/admin/class-modula-field-builder.php:352
707
+ #: includes/admin/modula-js-templates.php:53
708
+ msgid "Title"
709
+ msgstr ""
710
+
711
+ #: includes/admin/class-modula-field-builder.php:353
712
+ msgid "Social Icons"
713
+ msgstr ""
714
+
715
+ #: includes/admin/class-modula-image.php:55
716
+ msgid "No image with this ID."
717
+ msgstr ""
718
+
719
+ #: includes/admin/class-modula-image.php:75
720
+ msgid "No image URL specified for cropping."
721
+ msgstr ""
722
+
723
+ #: includes/admin/class-modula-image.php:95
724
+ #: includes/admin/class-modula-image.php:100
725
+ msgid "No file could be found for the image URL specified."
726
+ msgstr ""
727
+
728
+ #: includes/admin/class-modula-image.php:108
729
+ #: includes/admin/class-modula-image.php:120
730
+ msgid "The dimensions of the original image could not be retrieved for cropping."
731
+ msgstr ""
732
+
733
+ #: includes/admin/class-modula-image.php:240
734
+ msgid ""
735
+ "No image editor could be selected. Please verify with your webhost that you "
736
+ "have either the GD or Imagick image library compiled with your PHP install "
737
+ "on your server."
738
+ msgstr ""
739
+
740
+ #: includes/admin/class-modula-upsells.php:24
741
+ msgid "See LITE vs PRO Differences"
742
+ msgstr ""
743
+
744
+ #: includes/admin/class-modula-upsells.php:25
745
+ msgid "Get Modula Pro!"
746
+ msgstr ""
747
+
748
+ #: includes/admin/class-modula-upsells.php:34
749
+ msgid "Looking for even more control and even more powerful galleries?"
750
+ msgstr ""
751
+
752
+ #: includes/admin/class-modula-upsells.php:35
753
+ msgid ""
754
+ "Upgrade to Modula Pro today to get access to 5 more lightboxes, extra "
755
+ "styles and more..."
756
+ msgstr ""
757
+
758
+ #: includes/admin/class-modula-upsells.php:44
759
+ msgid "Not enough control?"
760
+ msgstr ""
761
+
762
+ #: includes/admin/class-modula-upsells.php:45
763
+ msgid ""
764
+ "Upgrade to Modula Pro today to unlock the ability to scale an image, and "
765
+ "add horizontal/vertical slides..."
766
+ msgstr ""
767
+
768
+ #: includes/admin/class-modula-upsells.php:55
769
+ msgid "Need a new hover effect?"
770
+ msgstr ""
771
+
772
+ #: includes/admin/class-modula-upsells.php:56
773
+ msgid "Upgrade to Modula Pro today to unlock 11 more hover effects..."
774
+ msgstr ""
775
+
776
+ #: includes/admin/class-modula-upsells.php:66
777
+ msgid "Trying to add a video to your gallery?"
778
+ msgstr ""
779
+
780
+ #: includes/admin/class-modula-upsells.php:67
781
+ msgid "Upgrade to Modula Pro today to add your stunning videos to your gallery..."
782
+ msgstr ""
783
+
784
+ #: includes/admin/modula-js-templates.php:29
785
+ msgid "Edit previous media item"
786
+ msgstr ""
787
+
788
+ #: includes/admin/modula-js-templates.php:30
789
+ msgid "Edit next media item"
790
+ msgstr ""
791
+
792
+ #: includes/admin/modula-js-templates.php:33
793
+ msgid "Edit Metadata"
794
+ msgstr ""
795
+
796
+ #: includes/admin/modula-js-templates.php:56
797
+ msgid ""
798
+ "Image titles can take any type of HTML. You can adjust the position of the "
799
+ "titles in the main Lightbox settings."
800
+ msgstr ""
801
+
802
+ #: includes/admin/modula-js-templates.php:63
803
+ msgid "Alt Text"
804
+ msgstr ""
805
+
806
+ #: includes/admin/modula-js-templates.php:66
807
+ msgid "Very important for SEO, the Alt Text describes the image."
808
+ msgstr ""
809
+
810
+ #: includes/admin/modula-js-templates.php:72
811
+ msgid "Caption Text"
812
+ msgstr ""
813
+
814
+ #: includes/admin/modula-js-templates.php:80
815
+ msgid "Alignment"
816
+ msgstr ""
817
+
818
+ #: includes/admin/modula-js-templates.php:82
819
+ msgid "left"
820
+ msgstr ""
821
+
822
+ #: includes/admin/modula-js-templates.php:83
823
+ msgid "center"
824
+ msgstr ""
825
+
826
+ #: includes/admin/modula-js-templates.php:84
827
+ msgid "right"
828
+ msgstr ""
829
+
830
+ #: includes/admin/modula-js-templates.php:87
831
+ msgid "top"
832
+ msgstr ""
833
+
834
+ #: includes/admin/modula-js-templates.php:88
835
+ msgid "middle"
836
+ msgstr ""
837
+
838
+ #: includes/admin/modula-js-templates.php:89
839
+ msgid "bottom"
840
+ msgstr ""
841
+
842
+ #: includes/admin/modula-js-templates.php:96
843
+ msgid "URL"
844
+ msgstr ""
845
+
846
+ #: includes/admin/modula-js-templates.php:99
847
+ msgid ""
848
+ "Enter a hyperlink if you wish to link this image to somewhere other than "
849
+ "its attachment page. In order to use it you will need to select attachment "
850
+ "page on Lightbox & Links setting under General."
851
+ msgstr ""
852
+
853
+ #: includes/admin/modula-js-templates.php:105
854
+ msgid "Opens your image links in a new browser window / tab."
855
+ msgstr ""
856
+
857
+ #: includes/admin/modula-js-templates.php:118
858
+ msgid "Save Metadata"
859
+ msgstr ""
860
+
861
+ #: includes/admin/modula-js-templates.php:119
862
+ msgid "Save"
863
+ msgstr ""
864
+
865
+ #: includes/admin/modula-js-templates.php:121
866
+ #: includes/admin/modula-js-templates.php:122
867
+ msgid "Save & Close"
868
+ msgstr ""
869
+
870
+ #: includes/admin/modula-js-templates.php:128
871
+ msgid "Saved."
872
+ msgstr ""
873
+
874
+ #: includes/admin/tabs/addons.php:2
875
+ msgid "Modula Addons"
876
+ msgstr ""
877
+
878
+ #: includes/admin/tabs/addons.php:3
879
+ msgid "Reload Addons"
880
+ msgstr ""
881
+
882
+ #: includes/admin/tabs/addons.php:4
883
+ msgid ""
884
+ "Addons are used to extend the core functionality of Modula. You can "
885
+ "automatically install an addon from this page if available."
886
+ msgstr ""
887
+
888
+ #: includes/admin/tabs/general.php:3
889
+ msgid "Need some inspirations? Take a look at our demos."
890
+ msgstr ""
891
+
892
+ #: includes/admin/tabs/general.php:4
893
+ msgid ""
894
+ "We know how awesome and powerful Modula is but don't take our word for it, "
895
+ "%stake a look at our demos%s tto see what you can do with our gallery "
896
+ "plugin."
897
+ msgstr ""
898
+
899
+ #: includes/admin/tabs/general.php:7
900
+ msgid "Still need help?"
901
+ msgstr ""
902
+
903
+ #: includes/admin/tabs/general.php:8
904
+ msgid ""
905
+ "We strive to make our plugins as user-friendly as possible but sometimes "
906
+ "you might need to %scheck our documentation%s"
907
+ msgstr ""
908
+
909
+ #: includes/admin/tabs/general.php:12
910
+ msgid ""
911
+ "If you have any pre-sales questions, support requests or just want to say "
912
+ "hi - please %scontact us now%s"
913
+ msgstr ""
914
+
915
+ #: includes/admin/tabs/modula.php:3
916
+ msgid ""
917
+ "Modula is now installed and ready to use! Get ready to build something "
918
+ "beautiful. We hope you enjoy it! We want to make sure you have the best "
919
+ "experience using our plugin and that is why we gathered here all the "
920
+ "necessary information for you. We hope you will enjoy using Modula, as much "
921
+ "as we enjoy creating great products."
922
+ msgstr ""
923
+
924
+ #: includes/admin/tabs/modula.php:4
925
+ msgid "Version"
926
+ msgstr ""
927
+
928
+ #: includes/admin/tabs/upsell.php:12
929
+ msgid "Lightgallery, Lightbox2, PrettyPhoto, Magnific Gallery, SwipeBox, FancyBox"
930
+ msgstr ""
931
+
932
+ #: includes/admin/tabs/upsell.php:17
933
+ msgid "Hover Effects"
934
+ msgstr ""
935
+
936
+ #: includes/admin/tabs/upsell.php:18
937
+ msgid "Choose from 12 different hover effects."
938
+ msgstr ""
939
+
940
+ #: includes/admin/tabs/upsell.php:24
941
+ msgid "Build your own effects with these new customizations."
942
+ msgstr ""
943
+
944
+ #: includes/admin/tabs/upsell.php:29
945
+ msgid "Filters"
946
+ msgstr ""
947
+
948
+ #: includes/admin/tabs/upsell.php:30
949
+ msgid "Let visitors filter your gallery items with a single click"
950
+ msgstr ""
951
+
952
+ #: includes/admin/tabs/upsell.php:35
953
+ msgid "Number of images"
954
+ msgstr ""
955
+
956
+ #: includes/admin/tabs/upsell.php:41
957
+ msgid "Video Addon"
958
+ msgstr ""
959
+
960
+ #: includes/admin/tabs/upsell.php:42
961
+ msgid "You asked we implemented, now you can add videos to your gallery."
962
+ msgstr ""
963
+
964
+ #: includes/admin/tabs/upsell.php:47
965
+ msgid "Support"
966
+ msgstr ""
967
+
968
+ #: includes/admin/tabs/upsell.php:48
969
+ msgid "You can access our dedicated support team."
970
+ msgstr ""
971
+
972
+ #: includes/admin/tabs/upsell.php:60
973
+ msgid "Lite"
974
+ msgstr ""
975
+
976
+ #: includes/admin/tabs/upsell.php:61
977
+ msgid "PRO"
978
+ msgstr ""
979
+
980
+ #: includes/admin/tabs/upsell.php:84
981
+ msgid "Get The Pro Version Now!"
982
+ msgstr ""
983
+
984
+ #: includes/class-modula-upgrades.php:14
985
+ msgid "Modula needs to upgrade the database, click %shere%s to start the upgrade."
986
+ msgstr ""
987
+
988
+ #: includes/class-modula-upgrades.php:18
989
+ msgid "Modula V2 Upgrade"
990
+ msgstr ""
991
+
992
+ #: includes/class-modula-upgrades.php:153
993
+ msgid "Hooray you don't have any Modula galleries to upgrade."
994
+ msgstr ""
995
+
996
+ #: includes/class-modula-upgrades.php:154
997
+ msgid "It seems like you didn't create any galleries with Modula"
998
+ msgstr ""
999
+
1000
+ #: includes/class-modula-upgrades.php:155
1001
+ msgid "Create a gallery now !"
1002
+ msgstr ""
1003
+
1004
+ #: includes/class-modula-upgrades.php:162
1005
+ msgid "Upgrade to Modula V2"
1006
+ msgstr ""
1007
+
1008
+ #: includes/class-modula-upgrades.php:163
1009
+ msgid ""
1010
+ "Since Modula V2.0.0 we changed how we stored data about your galleries so "
1011
+ "in order to have all the old galleries you need to run this updater."
1012
+ msgstr ""
1013
+
1014
+ #: includes/class-modula-upgrades.php:164
1015
+ msgid "Please don't close this window."
1016
+ msgstr ""
1017
+
1018
+ #: includes/class-modula-upgrades.php:168
1019
+ msgid "Import All"
1020
+ msgstr ""
1021
+
1022
+ #: includes/class-modula-upgrades.php:169
1023
+ msgid "Custom Import"
1024
+ msgstr ""
1025
+
1026
+ #: includes/class-modula-upgrades.php:179
1027
+ msgid "This will import all your galleries."
1028
+ msgstr ""
1029
+
1030
+ #: includes/class-modula-upgrades.php:180
1031
+ msgid "Start upgrade"
1032
+ msgstr ""
1033
+
1034
+ #: includes/class-modula-upgrades.php:187
1035
+ msgid "Select wich galleries you want to import."
1036
+ msgstr ""
1037
+
1038
+ #: includes/class-modula-upgrades.php:198
1039
+ msgid "Start importing"
1040
+ msgstr ""
1041
+
1042
+ #: includes/class-modula-upgrades.php:256
1043
+ msgid "The gallery with ID: %s was already imported"
1044
+ msgstr ""
1045
+
1046
+ #: includes/class-modula-upgrades.php:372
1047
+ msgid "%s gallery was imported"
1048
+ msgstr ""
1049
+
1050
+ #: includes/class-modula-upgrades.php:380
1051
+ msgid "The gallery with ID: %s failed to import"
1052
+ msgstr ""
1053
+
1054
+ #: includes/class-modula-upgrades.php:399
1055
+ msgid "All Done!"
1056
+ msgstr ""
1057
+
1058
+ #: includes/class-modula.php:58
1059
+ msgid ""
1060
+ "Hey, I noticed you have created %s galleries - that's awesome! Could you "
1061
+ "please do me a BIG favor and give it a 5-star rating on WordPress? Just to "
1062
+ "help us spread the word and boost our motivation."
1063
+ msgstr ""
1064
+
1065
+ #: includes/class-modula.php:59 includes/libraries/class-modula-review.php:23
1066
+ msgid "Ok, you deserve it"
1067
+ msgstr ""
1068
+
1069
+ #: includes/class-modula.php:60 includes/libraries/class-modula-review.php:24
1070
+ msgid "I already did"
1071
+ msgstr ""
1072
+
1073
+ #: includes/class-modula.php:61 includes/libraries/class-modula-review.php:25
1074
+ msgid "No, not good enough"
1075
+ msgstr ""
1076
+
1077
+ #: includes/class-modula.php:130
1078
+ msgid ""
1079
+ "You excedeed the limit of 20 photos. You can remove an image or %supgrade "
1080
+ "to pro%s"
1081
+ msgstr ""
1082
+
1083
+ #: includes/libraries/class-modula-review.php:22
1084
+ msgid ""
1085
+ "Hey, I noticed you have installed our plugin for %s day - that's awesome! "
1086
+ "Could you please do me a BIG favor and give it a 5-star rating on "
1087
+ "WordPress? Just to help us spread the word and boost our motivation."
1088
+ msgstr ""
1089
+
1090
+ #: includes/public/class-modula-shortcode.php:51
1091
+ #: includes/public/class-modula-shortcode.php:74
1092
+ #: includes/public/class-modula-shortcode.php:93
1093
+ msgid "Gallery not found."
1094
+ msgstr ""
1095
+
1096
+ #: includes/public/class-modula-shortcode.php:105
1097
+ msgid "Image %1 of %2"
1098
+ msgstr ""
1099
+
1100
+ #. Plugin URI of the plugin/theme
1101
+ msgid "https://wp-modula.com/"
1102
+ msgstr ""
1103
+
1104
+ #. Author of the plugin/theme
1105
+ msgid "Macho Themes"
1106
+ msgstr ""
1107
+
1108
+ #. Author URI of the plugin/theme
1109
+ msgid "https://www.machothemes.com/"
1110
+ msgstr ""