Photo Gallery by WD – Responsive Photo Gallery - Version 1.3.47

Version Description

  • Improved: Resemble changes in gallery images, while deleting, moving or renaming images using Photo Gallery File Manager.
Download this release

Release Info

Developer webdorado
Plugin Icon 128x128 Photo Gallery by WD – Responsive Photo Gallery
Version 1.3.47
Comparing to
See all releases

Code changes from version 1.3.46 to 1.3.47

admin/controllers/BWGControllerGalleries_bwg.php CHANGED
@@ -1,23 +1,6 @@
1
  <?php
2
 
3
  class BWGControllerGalleries_bwg {
4
- ////////////////////////////////////////////////////////////////////////////////////////
5
- // Events //
6
- ////////////////////////////////////////////////////////////////////////////////////////
7
- ////////////////////////////////////////////////////////////////////////////////////////
8
- // Constants //
9
- ////////////////////////////////////////////////////////////////////////////////////////
10
- ////////////////////////////////////////////////////////////////////////////////////////
11
- // Variables //
12
- ////////////////////////////////////////////////////////////////////////////////////////
13
- ////////////////////////////////////////////////////////////////////////////////////////
14
- // Constructor & Destructor //
15
- ////////////////////////////////////////////////////////////////////////////////////////
16
- public function __construct() {
17
- }
18
- ////////////////////////////////////////////////////////////////////////////////////////
19
- // Public Methods //
20
- ////////////////////////////////////////////////////////////////////////////////////////
21
  public function execute() {
22
  $task = ((isset($_POST['task'])) ? esc_html(stripslashes($_POST['task'])) : '');
23
  $id = ((isset($_POST['current_id'])) ? esc_html(stripslashes($_POST['current_id'])) : 0);
@@ -265,8 +248,8 @@ class BWGControllerGalleries_bwg {
265
  }
266
 
267
  function bwg_scaled_image($file_path, $max_width = 0, $max_height = 0, $crop = FALSE) {
268
- global $wd_bwg_options;
269
  $file_path = htmlspecialchars_decode($file_path, ENT_COMPAT | ENT_QUOTES);
 
270
  if (!function_exists('getimagesize')) {
271
  error_log('Function not found: getimagesize');
272
  return FALSE;
@@ -434,12 +417,10 @@ class BWGControllerGalleries_bwg {
434
  $image_id = $new_image_id;
435
  }
436
  else {
 
437
  $save = $wpdb->update($wpdb->prefix . 'bwg_image', array(
438
  'gallery_id' => $gal_id,
439
  'slug' => WDWLibrary::spider_replace4byte($alt),
440
- 'filename' => $filename,
441
- 'image_url' => $image_url,
442
- 'thumb_url' => $thumb_url,
443
  'description' => WDWLibrary::spider_replace4byte($description),
444
  'alt' => WDWLibrary::spider_replace4byte($alt),
445
  'date' => $date,
@@ -563,17 +544,22 @@ class BWGControllerGalleries_bwg {
563
  $autogallery_image_number = (isset($_POST['autogallery_image_number']) ? (int) $_POST['autogallery_image_number'] : 12);
564
  $published = (isset($_POST['published']) ? (int) $_POST['published'] : 1);
565
  if ($id != 0) {
566
- $save = $wpdb->update($wpdb->prefix . 'bwg_gallery', array(
567
  'name' => $name,
568
  'slug' => $slug,
569
  'description' => $description,
570
- 'preview_image' => $preview_image,
571
  'random_preview_image' => $random_preview_image,
572
  'gallery_type' => $gallery_type,
573
  'gallery_source' => $gallery_source,
574
  'autogallery_image_number' => $autogallery_image_number,
575
  'update_flag' => $update_flag,
576
- 'published' => $published), array('id' => $id));
 
 
 
 
 
 
577
  /* Update data in corresponding posts.*/
578
  $query2 = "SELECT ID, post_content FROM " . $wpdb->posts . " WHERE post_type = 'bwg_gallery'";
579
  $posts = $wpdb->get_results($query2, OBJECT);
@@ -939,13 +925,4 @@ class BWGControllerGalleries_bwg {
939
  echo WDWLibrary::message(__('Items successfully rotated.', 'bwg_back'), 'wd_updated');
940
  }
941
  }
942
- ////////////////////////////////////////////////////////////////////////////////////////
943
- // Getters & Setters //
944
- ////////////////////////////////////////////////////////////////////////////////////////
945
- ////////////////////////////////////////////////////////////////////////////////////////
946
- // Private Methods //
947
- ////////////////////////////////////////////////////////////////////////////////////////
948
- ////////////////////////////////////////////////////////////////////////////////////////
949
- // Listeners //
950
- ////////////////////////////////////////////////////////////////////////////////////////
951
  }
1
  <?php
2
 
3
  class BWGControllerGalleries_bwg {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  public function execute() {
5
  $task = ((isset($_POST['task'])) ? esc_html(stripslashes($_POST['task'])) : '');
6
  $id = ((isset($_POST['current_id'])) ? esc_html(stripslashes($_POST['current_id'])) : 0);
248
  }
249
 
250
  function bwg_scaled_image($file_path, $max_width = 0, $max_height = 0, $crop = FALSE) {
 
251
  $file_path = htmlspecialchars_decode($file_path, ENT_COMPAT | ENT_QUOTES);
252
+ global $wd_bwg_options;
253
  if (!function_exists('getimagesize')) {
254
  error_log('Function not found: getimagesize');
255
  return FALSE;
417
  $image_id = $new_image_id;
418
  }
419
  else {
420
+ // Don't update image and thumbnail URLs.
421
  $save = $wpdb->update($wpdb->prefix . 'bwg_image', array(
422
  'gallery_id' => $gal_id,
423
  'slug' => WDWLibrary::spider_replace4byte($alt),
 
 
 
424
  'description' => WDWLibrary::spider_replace4byte($description),
425
  'alt' => WDWLibrary::spider_replace4byte($alt),
426
  'date' => $date,
544
  $autogallery_image_number = (isset($_POST['autogallery_image_number']) ? (int) $_POST['autogallery_image_number'] : 12);
545
  $published = (isset($_POST['published']) ? (int) $_POST['published'] : 1);
546
  if ($id != 0) {
547
+ $data = array(
548
  'name' => $name,
549
  'slug' => $slug,
550
  'description' => $description,
 
551
  'random_preview_image' => $random_preview_image,
552
  'gallery_type' => $gallery_type,
553
  'gallery_source' => $gallery_source,
554
  'autogallery_image_number' => $autogallery_image_number,
555
  'update_flag' => $update_flag,
556
+ 'published' => $published
557
+ );
558
+ // To prevent saving preview image wrong URL after moving the image.
559
+ if ( file_exists(ABSPATH . $WD_BWG_UPLOAD_DIR . $preview_image) ) {
560
+ $data['preview_image'] = $preview_image;
561
+ }
562
+ $save = $wpdb->update($wpdb->prefix . 'bwg_gallery', $data, array('id' => $id));
563
  /* Update data in corresponding posts.*/
564
  $query2 = "SELECT ID, post_content FROM " . $wpdb->posts . " WHERE post_type = 'bwg_gallery'";
565
  $posts = $wpdb->get_results($query2, OBJECT);
925
  echo WDWLibrary::message(__('Items successfully rotated.', 'bwg_back'), 'wd_updated');
926
  }
927
  }
 
 
 
 
 
 
 
 
 
928
  }
filemanager/controller.php CHANGED
@@ -107,6 +107,7 @@ class FilemanagerController {
107
  $original_file_path = $cur_dir_path . '/.original/' . $file_name;
108
 
109
  $msg = '';
 
110
 
111
  if (file_exists($file_path) == false) {
112
  $msg = __("File doesn't exist.", 'bwg');
@@ -115,14 +116,35 @@ class FilemanagerController {
115
  if (rename($file_path, $cur_dir_path . '/' . sanitize_file_name($file_new_name)) == false) {
116
  $msg = __("Can't rename the file.", 'bwg');
117
  }
 
 
 
 
 
 
 
118
  }
119
  elseif ((strrpos($file_name, '.') !== false)) {
120
  $file_extension = substr($file_name, strrpos($file_name, '.') + 1);
121
  if (rename($file_path, $cur_dir_path . '/' . $file_new_name . '.' . $file_extension) == false) {
122
  $msg = __("Can't rename the file.", 'bwg');
123
  }
124
- rename($thumb_file_path, $cur_dir_path . '/thumb/' . $file_new_name . '.' . $file_extension);
125
- rename($original_file_path, $cur_dir_path . '/.original/' . $file_new_name . '.' . $file_extension);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  }
127
  else {
128
  $msg = __("Can't rename the file.", 'bwg');
@@ -165,7 +187,7 @@ class FilemanagerController {
165
  $msg = __("Some of the files couldn't be removed.", 'bwg');
166
  }
167
  else {
168
- $this->remove_file_dir($file_path);
169
  if (file_exists($thumb_file_path)) {
170
  $this->remove_file_dir($thumb_file_path);
171
  }
@@ -198,9 +220,11 @@ class FilemanagerController {
198
  $input_dir = $this->esc_dir($input_dir);
199
 
200
  $msg = '';
 
201
 
202
  $file_names = explode('**#**', (isset($_REQUEST['clipboard_files']) ? stripslashes($_REQUEST['clipboard_files']) : ''));
203
  $src_dir = (isset($_REQUEST['clipboard_src']) ? stripslashes($_REQUEST['clipboard_src']) : '');
 
204
  $src_dir = $src_dir == '' ? $this->uploads_dir : $this->uploads_dir . '/' . $src_dir;
205
  $src_dir = htmlspecialchars_decode($src_dir, ENT_COMPAT | ENT_QUOTES);
206
  $src_dir = $this->esc_dir($src_dir);
@@ -256,30 +280,56 @@ class FilemanagerController {
256
  }
257
  break;
258
  case 'cut':
259
- if ($src_dir != $dest_dir) {
260
- foreach ($file_names as $file_name) {
261
  $file_name = htmlspecialchars_decode($file_name, ENT_COMPAT | ENT_QUOTES);
262
  $file_name = str_replace('../', '', $file_name);
263
  $src = $src_dir . '/' . $file_name;
264
  $dest = $dest_dir . '/' . $file_name;
265
- if (!is_dir($src_dir . '/' . $file_name)) {
266
- $thumb_src = $src_dir . '/thumb/' . $file_name;
267
- $thumb_dest = $dest_dir . '/thumb/' . $file_name;
268
- if (!is_dir($dest_dir . '/thumb')) {
269
- mkdir($dest_dir . '/thumb', 0777);
270
- }
271
- $original_src = $src_dir . '/.original/' . $file_name;
272
- $original_dest = $dest_dir . '/.original/' . $file_name;
273
- if (!is_dir($dest_dir . '/.original')) {
274
- mkdir($dest_dir . '/.original', 0777);
275
- }
276
  }
277
- if ((file_exists($src) == false) || (file_exists($dest) == true) || (!rename($src, $dest))) {
278
  $msg = __("Failed to move some of the files.", 'bwg');
279
  }
280
- if (!is_dir($src_dir . '/' . $file_name)) {
281
- rename($thumb_src, $thumb_dest);
282
- rename($original_src, $original_dest);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
283
  }
284
  }
285
  }
@@ -322,20 +372,28 @@ class FilemanagerController {
322
  exit;
323
  }
324
 
325
- private function remove_file_dir($del_file_dir) {
326
  $del_file_dir = $this->esc_dir($del_file_dir);
327
 
328
  if (is_dir($del_file_dir) == true) {
329
  $files_to_remove = scandir($del_file_dir);
330
  foreach ($files_to_remove as $file) {
331
  if ($file != '.' and $file != '..') {
332
- $this->remove_file_dir($del_file_dir . '/' . $file);
333
  }
334
  }
335
  rmdir($del_file_dir);
336
  }
337
  else {
338
  unlink($del_file_dir);
 
 
 
 
 
 
 
 
339
  }
340
  }
341
 
107
  $original_file_path = $cur_dir_path . '/.original/' . $file_name;
108
 
109
  $msg = '';
110
+ global $wpdb;
111
 
112
  if (file_exists($file_path) == false) {
113
  $msg = __("File doesn't exist.", 'bwg');
116
  if (rename($file_path, $cur_dir_path . '/' . sanitize_file_name($file_new_name)) == false) {
117
  $msg = __("Can't rename the file.", 'bwg');
118
  }
119
+ else {
120
+ $wpdb->query('UPDATE ' . $wpdb->prefix . 'bwg_image SET
121
+ image_url = INSERT(image_url, LOCATE("' . $input_dir . '/' . $file_name . '", image_url), CHAR_LENGTH("' . $input_dir . '/' . $file_name . '"), "' . $input_dir . '/' . $file_new_name . '"),
122
+ thumb_url = INSERT(thumb_url, LOCATE("' . $input_dir . '/' . $file_name . '", thumb_url), CHAR_LENGTH("' . $input_dir . '/' . $file_name . '"), "' . $input_dir . '/' . $file_new_name . '")');
123
+ $wpdb->query('UPDATE ' . $wpdb->prefix . 'bwg_gallery SET
124
+ preview_image = INSERT(preview_image, LOCATE("' . $input_dir . '/' . $file_name . '", preview_image), CHAR_LENGTH("' . $input_dir . '/' . $file_name . '"), "' . $input_dir . '/' . $file_new_name . '")');
125
+ }
126
  }
127
  elseif ((strrpos($file_name, '.') !== false)) {
128
  $file_extension = substr($file_name, strrpos($file_name, '.') + 1);
129
  if (rename($file_path, $cur_dir_path . '/' . $file_new_name . '.' . $file_extension) == false) {
130
  $msg = __("Can't rename the file.", 'bwg');
131
  }
132
+ else {
133
+ $wpdb->update($wpdb->prefix . 'bwg_image', array(
134
+ 'filename' => $file_new_name,
135
+ 'image_url' => $input_dir . '/' . $file_new_name . '.' . $file_extension,
136
+ 'thumb_url' => $input_dir . '/thumb/' . $file_new_name . '.' . $file_extension,
137
+ ), array(
138
+ 'thumb_url' => $input_dir . '/thumb/' . $file_name,
139
+ ));
140
+ $wpdb->update($wpdb->prefix . 'bwg_gallery', array(
141
+ 'preview_image' => $input_dir . '/thumb/' . $file_new_name . '.' . $file_extension,
142
+ ), array(
143
+ 'preview_image' => $input_dir . '/thumb/' . $file_name));
144
+
145
+ rename($thumb_file_path, $cur_dir_path . '/thumb/' . $file_new_name . '.' . $file_extension);
146
+ rename($original_file_path, $cur_dir_path . '/.original/' . $file_new_name . '.' . $file_extension);
147
+ }
148
  }
149
  else {
150
  $msg = __("Can't rename the file.", 'bwg');
187
  $msg = __("Some of the files couldn't be removed.", 'bwg');
188
  }
189
  else {
190
+ $this->remove_file_dir($file_path, $input_dir, $file_name);
191
  if (file_exists($thumb_file_path)) {
192
  $this->remove_file_dir($thumb_file_path);
193
  }
220
  $input_dir = $this->esc_dir($input_dir);
221
 
222
  $msg = '';
223
+ $flag = TRUE;
224
 
225
  $file_names = explode('**#**', (isset($_REQUEST['clipboard_files']) ? stripslashes($_REQUEST['clipboard_files']) : ''));
226
  $src_dir = (isset($_REQUEST['clipboard_src']) ? stripslashes($_REQUEST['clipboard_src']) : '');
227
+ $relative_source_dir = $src_dir;
228
  $src_dir = $src_dir == '' ? $this->uploads_dir : $this->uploads_dir . '/' . $src_dir;
229
  $src_dir = htmlspecialchars_decode($src_dir, ENT_COMPAT | ENT_QUOTES);
230
  $src_dir = $this->esc_dir($src_dir);
280
  }
281
  break;
282
  case 'cut':
283
+ if ( $src_dir != $dest_dir ) {
284
+ foreach ( $file_names as $file_name ) {
285
  $file_name = htmlspecialchars_decode($file_name, ENT_COMPAT | ENT_QUOTES);
286
  $file_name = str_replace('../', '', $file_name);
287
  $src = $src_dir . '/' . $file_name;
288
  $dest = $dest_dir . '/' . $file_name;
289
+ if ( (file_exists($src) == FALSE) || (file_exists($dest) == TRUE) ) {
290
+ $flag = FALSE;
291
+ }
292
+ else {
293
+ $flag = rename($src, $dest);
 
 
 
 
 
 
294
  }
295
+ if ( !$flag ) {
296
  $msg = __("Failed to move some of the files.", 'bwg');
297
  }
298
+ else {
299
+ global $wpdb;
300
+ if ( is_dir($dest_dir . '/' . $file_name) ) {
301
+ $wpdb->query('UPDATE ' . $wpdb->prefix . 'bwg_image SET
302
+ image_url = INSERT(image_url, LOCATE("' . str_replace($this->uploads_dir . '/', '', $src) . '", image_url), CHAR_LENGTH("' . str_replace($this->uploads_dir . '/', '', $src) . '"), "' . str_replace(str_replace($input_dir, '', $dest_dir), '', $dest) . '"),
303
+ thumb_url = INSERT(thumb_url, LOCATE("' . str_replace($this->uploads_dir . '/', '', $src) . '", thumb_url), CHAR_LENGTH("' . str_replace($this->uploads_dir . '/', '', $src) . '"), "' . str_replace(str_replace($input_dir, '', $dest_dir), '', $dest) . '")');
304
+ $wpdb->query('UPDATE ' . $wpdb->prefix . 'bwg_gallery SET
305
+ preview_image = INSERT(preview_image, LOCATE("' . str_replace($this->uploads_dir . '/', '', $src) . '", preview_image), CHAR_LENGTH("' . str_replace($this->uploads_dir . '/', '', $src) . '"), "' . str_replace(str_replace($input_dir, '', $dest_dir), '', $dest) . '")');
306
+ }
307
+ else {
308
+ $thumb_src = $src_dir . '/thumb/' . $file_name;
309
+ $thumb_dest = $dest_dir . '/thumb/' . $file_name;
310
+ if ( !is_dir($dest_dir . '/thumb') ) {
311
+ mkdir($dest_dir . '/thumb', 0777);
312
+ }
313
+ $original_src = $src_dir . '/.original/' . $file_name;
314
+ $original_dest = $dest_dir . '/.original/' . $file_name;
315
+ if ( !is_dir($dest_dir . '/.original') ) {
316
+ mkdir($dest_dir . '/.original', 0777);
317
+ }
318
+ rename($thumb_src, $thumb_dest);
319
+ rename($original_src, $original_dest);
320
+ $wpdb->update($wpdb->prefix . 'bwg_image', array(
321
+ 'filename' => $file_name,
322
+ 'image_url' => str_replace(str_replace($input_dir, '', $dest_dir), '', $dest),
323
+ 'thumb_url' => $input_dir . '/thumb/' . $file_name,
324
+ ), array(
325
+ 'thumb_url' => $relative_source_dir . '/thumb/' . $file_name,
326
+ ));
327
+ $wpdb->update($wpdb->prefix . 'bwg_gallery', array(
328
+ 'preview_image' => $input_dir . '/thumb/' . $file_name,
329
+ ), array(
330
+ 'preview_image' => $relative_source_dir . '/thumb/' . $file_name,
331
+ ));
332
+ }
333
  }
334
  }
335
  }
372
  exit;
373
  }
374
 
375
+ private function remove_file_dir($del_file_dir, $input_dir = FALSE, $file_name = FALSE) {
376
  $del_file_dir = $this->esc_dir($del_file_dir);
377
 
378
  if (is_dir($del_file_dir) == true) {
379
  $files_to_remove = scandir($del_file_dir);
380
  foreach ($files_to_remove as $file) {
381
  if ($file != '.' and $file != '..') {
382
+ $this->remove_file_dir($del_file_dir . '/' . $file, $input_dir . '/' . $file_name, $file);
383
  }
384
  }
385
  rmdir($del_file_dir);
386
  }
387
  else {
388
  unlink($del_file_dir);
389
+ if ( $input_dir !== FALSE && $file_name !== FALSE ) {
390
+ global $wpdb;
391
+ $wpdb->delete($wpdb->prefix . 'bwg_image', array(
392
+ 'thumb_url' => $input_dir . '/thumb/' . $file_name ));
393
+ $wpdb->update($wpdb->prefix . 'bwg_gallery', array(
394
+ 'preview_image' => '',
395
+ ), array( 'preview_image' => $input_dir . '/thumb/' . $file_name ));
396
+ }
397
  }
398
  }
399
 
photo-gallery.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: Photo Gallery
5
  * Plugin URI: https://web-dorado.com/products/wordpress-photo-gallery-plugin.html
6
  * Description: This plugin is a fully responsive gallery plugin with advanced functionality. It allows having different image galleries for your posts and pages. You can create unlimited number of galleries, combine them into albums, and provide descriptions and tags.
7
- * Version: 1.3.46
8
  * Author: Photo Gallery Team
9
  * Author URI: https://web-dorado.com/
10
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
@@ -1701,7 +1701,7 @@ function bwg_activate() {
1701
  ));
1702
  }
1703
  $version = get_option('wd_bwg_version');
1704
- $new_version = '1.3.46';
1705
  if ($version && version_compare($version, $new_version, '<')) {
1706
  require_once WD_BWG_DIR . "/update/bwg_update.php";
1707
  bwg_update($version);
@@ -1753,7 +1753,7 @@ wp_oembed_add_provider( '#https://instagr(\.am|am\.com)/p/.*#i', 'https://api.in
1753
 
1754
  function bwg_update_hook() {
1755
  $version = get_option('wd_bwg_version');
1756
- $new_version = '1.3.46';
1757
  if ($version && version_compare($version, $new_version, '<')) {
1758
  require_once WD_BWG_DIR . "/update/bwg_update.php";
1759
  bwg_update($version);
4
  * Plugin Name: Photo Gallery
5
  * Plugin URI: https://web-dorado.com/products/wordpress-photo-gallery-plugin.html
6
  * Description: This plugin is a fully responsive gallery plugin with advanced functionality. It allows having different image galleries for your posts and pages. You can create unlimited number of galleries, combine them into albums, and provide descriptions and tags.
7
+ * Version: 1.3.47
8
  * Author: Photo Gallery Team
9
  * Author URI: https://web-dorado.com/
10
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
1701
  ));
1702
  }
1703
  $version = get_option('wd_bwg_version');
1704
+ $new_version = '1.3.47';
1705
  if ($version && version_compare($version, $new_version, '<')) {
1706
  require_once WD_BWG_DIR . "/update/bwg_update.php";
1707
  bwg_update($version);
1753
 
1754
  function bwg_update_hook() {
1755
  $version = get_option('wd_bwg_version');
1756
+ $new_version = '1.3.47';
1757
  if ($version && version_compare($version, $new_version, '<')) {
1758
  require_once WD_BWG_DIR . "/update/bwg_update.php";
1759
  bwg_update($version);
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://web-dorado.com/products/wordpress-photo-gallery-plugin.html
4
  Tags: gallery, photo gallery, image gallery, responsive gallery, wordpress gallery plugin, photo albums, gallery slider, gallery lightbox, wordpress photo gallery plugin, fullscreen gallery, watermarking, video gallery
5
  Requires at least: 3.4
6
  Tested up to: 4.8
7
- Stable tag: 1.3.46
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -188,6 +188,9 @@ To enable the feature of adding Media Library images, go to Photo Gallery > Opti
188
 
189
  == Changelog ==
190
 
 
 
 
191
  = 1.3.46 =
192
  * Fixed: Shortcode pop-up style.
193
 
4
  Tags: gallery, photo gallery, image gallery, responsive gallery, wordpress gallery plugin, photo albums, gallery slider, gallery lightbox, wordpress photo gallery plugin, fullscreen gallery, watermarking, video gallery
5
  Requires at least: 3.4
6
  Tested up to: 4.8
7
+ Stable tag: 1.3.47
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
188
 
189
  == Changelog ==
190
 
191
+ = 1.3.47 =
192
+ * Improved: Resemble changes in gallery images, while deleting, moving or renaming images using Photo Gallery File Manager.
193
+
194
  = 1.3.46 =
195
  * Fixed: Shortcode pop-up style.
196