Gmedia Photo Gallery - Version 1.9.20

Version Description

Download this release

Release Info

Developer pasyuk
Plugin Icon 128x128 Gmedia Photo Gallery
Version 1.9.20
Comparing to
See all releases

Code changes from version 1.9.16 to 1.9.20

admin/admin.php CHANGED
@@ -3,7 +3,7 @@
3
  /**
4
  * GmediaAdmin - Admin Section for GRAND Media
5
  */
6
- class GmediaAdmin{
7
  var $pages = array();
8
  var $body_classes = array();
9
 
@@ -28,9 +28,9 @@ class GmediaAdmin{
28
  if(isset($_GET['page']) && (false !== strpos($_GET['page'], 'GrandMedia'))){
29
  $this->body_classes[] = 'grand-media-admin-page';
30
 
31
- if(!isset($_GET['gmediablank']) || 'library' === $_GET['gmediablank']){
32
  $this->body_classes[] = $_GET['page'];
33
- if(!empty($_GET['mode'])){
34
  $this->body_classes[] = $_GET['page'] . '_' . $_GET['mode'];
35
  }
36
  if(isset($_GET['edit_term']) || isset($_GET['gallery_module']) || isset($_GET['preset'])){
@@ -96,27 +96,27 @@ class GmediaAdmin{
96
  case 'update_plugin':
97
  require_once(dirname(dirname(__FILE__)) . '/config/update.php');
98
  gmedia_do_update();
99
- break;
100
  case 'image_editor':
101
  require_once(dirname(dirname(__FILE__)) . '/inc/image-editor.php');
102
  gmedia_image_editor();
103
- break;
104
  case 'map_editor':
105
  require_once(dirname(dirname(__FILE__)) . '/inc/map-editor.php');
106
  gmedia_map_editor();
107
- break;
108
  case 'library':
109
  echo '<div id="gmedia_iframe_content">';
110
  echo '<div id="gm-message">' . $gmCore->alert('success', $gmProcessor->msg) . $gmCore->alert('danger', $gmProcessor->error) . '</div>';
111
  include(GMEDIA_ABSPATH . 'admin/pages/library/library.php');
112
  echo '</div>';
113
- break;
114
  case 'comments':
115
  require_once(dirname(__FILE__) . '/tpl/comments.php');
116
- break;
117
  case 'module_preview':
118
  require_once(dirname(__FILE__) . '/tpl/module-preview.php');
119
- break;
120
  }
121
  echo '</div>';
122
 
@@ -197,39 +197,47 @@ class GmediaAdmin{
197
  <div class="col-sm-2 hidden-xs" id="sidebar" role="navigation">
198
  <?php echo $sideLinks['sideLinks']; ?>
199
 
200
- <?php $installDate = get_option('gmediaInstallDate');
201
- if($installDate && (strtotime($installDate) < strtotime('2 weeks ago'))){ ?>
202
- <div class="row panel panel-default visible-lg-block">
203
- <div class="panel-heading" data-toggle="collapse" data-target="#support_div_collapse" aria-expanded="true" aria-controls="support_div_collapse" style="cursor:pointer;">
204
- <b><?php _e('Any feedback?', 'grand-media'); ?></b>
205
- </div>
206
- <div class="collapse<?php if(empty($gmGallery->options['license_key'])){
207
- echo ' in';
208
- } ?>" id="support_div_collapse">
209
- <div class="panel-body">
210
- <p><?php _e('You can help me spread the word about GmediaGallery among the users striving to get awesome galleries on their WordPress sites.', 'grand-media'); ?></p>
211
-
212
- <p>
213
- <a class="btn btn-primary" href="https://wordpress.org/support/view/plugin-reviews/grand-media?filter=5" target="_blank"><?php _e('Rate Gmedia Gallery', 'grand-media'); ?></a>
214
- </p>
215
-
216
- <p><?php _e('Your reviews and ideas helps me to create new awesome modules and to improve plugin.', 'grand-media'); ?></p>
 
 
 
217
  </div>
218
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
219
  </div>
220
- <?php } ?>
221
- <div class="row panel visible-lg-block">
222
- <a class="twitter-timeline" href="https://twitter.com/CodEasily/timelines/648240437141086212" data-widget-id="648245214201692161"></a>
223
- <script>!function(d, s, id) {
224
- var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/.test(d.location)? 'http' : 'https';
225
- if(!d.getElementById(id)) {
226
- js = d.createElement(s);
227
- js.id = id;
228
- js.src = p + "://platform.twitter.com/widgets.js";
229
- fjs.parentNode.insertBefore(js, fjs);
230
- }
231
- }(document, "script", "twitter-wjs");</script>
232
- </div>
233
  </div>
234
  <div class="col-sm-10 col-xs-12">
235
  <div id="gm-message"><?php
@@ -281,7 +289,7 @@ class GmediaAdmin{
281
 
282
  function admin_footer(){
283
  $ajax_operations = get_option('gmedia_ajax_long_operations');
284
- if(!$ajax_operations){
285
  return;
286
  }
287
  reset($ajax_operations);
@@ -289,17 +297,17 @@ class GmediaAdmin{
289
  $nonce = wp_create_nonce('gmedia_ajax_long_operations');
290
  ?>
291
  <script type="text/javascript">
292
- jQuery(document).ready(function($) {
293
  var header = $('#gmedia-header');
294
  header.append('<div id="ajax-long-operation"><div class="progress"><div class="progress-bar progress-bar-info" style="width: 0%;"></div><div class="progress-bar-indicator">0%</div></div></div>');
295
- gmAjaxLongOperation = function() {
296
  jQuery.post(ajaxurl, {action: '<?php echo $ajax; ?>', _wpnonce_ajax_long_operations: '<?php echo $nonce; ?>'}, function(r) {
297
- if(r.data) {
298
  jQuery('.progress-bar-info', header).width(r.data.progress);
299
  var indicator = r.data.info? r.data.info + ' ' + r.data.progress : r.data.progress;
300
  jQuery('.progress-bar-indicator', header).html(indicator);
301
 
302
- if(r.data.done) {
303
  return;
304
  }
305
  }
@@ -318,57 +326,59 @@ class GmediaAdmin{
318
  switch($gmProcessor->page){
319
  case 'GrandMedia_AddMedia':
320
  include_once(dirname(__FILE__) . '/pages/addmedia/addmedia.php');
321
- break;
322
  case 'GrandMedia_Albums':
323
  if(isset($_GET['edit_term'])){
324
  include_once(dirname(__FILE__) . '/pages/terms/edit-term.php');
325
  } else{
326
  include_once(dirname(__FILE__) . '/pages/terms/terms.php');
327
  }
328
- break;
329
  case 'GrandMedia_Categories':
330
  if(isset($_GET['edit_term'])){
331
  include_once(dirname(__FILE__) . '/pages/terms/edit-term.php');
332
  } else{
333
  include_once(dirname(__FILE__) . '/pages/terms/terms.php');
334
  }
335
- break;
336
  case 'GrandMedia_Tags':
337
  include_once(dirname(__FILE__) . '/pages/terms/terms.php');
338
- break;
339
  case 'GrandMedia_Galleries':
340
  if(isset($_GET['gallery_module']) || isset($_GET['edit_term'])){
341
  include_once(dirname(__FILE__) . '/pages/galleries/edit-gallery.php');
342
  } else{
343
  include_once(dirname(__FILE__) . '/pages/galleries/galleries.php');
344
  }
345
- break;
346
  case 'GrandMedia_Modules':
347
  if(isset($_GET['preset_module']) || isset($_GET['preset'])){
348
  include_once(dirname(__FILE__) . '/pages/modules/edit-preset.php');
349
  } else{
350
  include_once(dirname(__FILE__) . '/pages/modules/modules.php');
351
  }
352
- break;
353
  case 'GrandMedia_Settings':
354
  include_once(dirname(__FILE__) . '/pages/settings/settings.php');
355
- break;
356
  case 'GrandMedia_App':
357
  include_once(dirname(__FILE__) . '/app.php');
358
  gmediaApp();
359
- break;
360
  case 'GrandMedia_WordpressLibrary':
361
  include_once(dirname(__FILE__) . '/wpmedia.php');
362
  grandWPMedia();
363
- break;
364
  case 'GrandMedia_Update':
365
  include_once(GMEDIA_ABSPATH . 'config/update.php');
366
  gmedia_upgrade_progress_panel();
367
- break;
368
  case 'GrandMedia':
369
- default:
370
  include_once(dirname(__FILE__) . '/pages/library/library.php');
371
- break;
 
 
 
372
  }
373
  }
374
 
@@ -427,22 +437,23 @@ class GmediaAdmin{
427
 
428
  wp_enqueue_script('moment', $gmCore->gmedia_url . '/assets/bootstrap-datetimepicker/moment.min.js', array('jquery'), '2.5.1');
429
  wp_enqueue_style('datetimepicker', $gmCore->gmedia_url . '/assets/bootstrap-datetimepicker/bootstrap-datetimepicker.min.css', array('gmedia-bootstrap'), '2.1.32');
430
- wp_enqueue_script('datetimepicker', $gmCore->gmedia_url . '/assets/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js', array('jquery',
431
- 'moment',
432
- 'gmedia-bootstrap'
 
433
  ), '2.1.32');
434
  }
435
  }
436
  wp_enqueue_style('selectize');
437
  wp_enqueue_script('selectize');
438
  wp_enqueue_script('wavesurfer', $gmCore->gmedia_url . '/assets/wavesurfer/wavesurfer.min.js', array('jquery'), '1.1.5');
439
- break;
440
  case "GrandMedia_WordpressLibrary" :
441
  if($gmCore->caps['gmedia_import']){
442
  wp_enqueue_style('selectize');
443
  wp_enqueue_script('selectize');
444
  }
445
- break;
446
  case "GrandMedia_Albums" :
447
  if(isset($_GET['edit_term'])){
448
  if($gmCore->caps['gmedia_album_manage']){
@@ -452,13 +463,13 @@ class GmediaAdmin{
452
  wp_enqueue_style('selectize');
453
  wp_enqueue_script('selectize');
454
  }
455
- break;
456
  case "GrandMedia_Categories" :
457
  if(isset($_GET['edit_term'])){
458
  wp_enqueue_style('selectize');
459
  wp_enqueue_script('selectize');
460
  }
461
- break;
462
  case "GrandMedia_AddMedia" :
463
  if($gmCore->caps['gmedia_terms']){
464
  wp_enqueue_style('selectize');
@@ -473,17 +484,18 @@ class GmediaAdmin{
473
  wp_enqueue_script('gmedia-plupload', $gmCore->gmedia_url . '/assets/plupload/plupload.full.min.js', array('jquery', 'jquery-ui-full'), '2.1.2');
474
 
475
  wp_enqueue_style('jquery.ui.plupload', $gmCore->gmedia_url . '/assets/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css', array('jquery-ui-smoothness'), '2.1.2', 'screen');
476
- wp_enqueue_script('jquery.ui.plupload', $gmCore->gmedia_url . '/assets/plupload/jquery.ui.plupload/jquery.ui.plupload.min.js', array('gmedia-plupload',
477
- 'jquery-ui-full'
 
478
  ), '2.1.2');
479
 
480
  }
481
  }
482
- break;
483
  case "GrandMedia_Settings" :
484
  case "GrandMedia_App" :
485
  // under construction
486
- break;
487
  case "GrandMedia_Galleries" :
488
  if($gmCore->caps['gmedia_gallery_manage'] && (isset($_GET['gallery_module']) || isset($_GET['edit_term']))){
489
 
@@ -497,7 +509,7 @@ class GmediaAdmin{
497
  wp_enqueue_style('jquery.minicolors', $gmCore->gmedia_url . '/assets/minicolors/jquery.minicolors.css', array('gmedia-bootstrap'), '0.9.13');
498
  wp_enqueue_script('jquery.minicolors', $gmCore->gmedia_url . '/assets/minicolors/jquery.minicolors.js', array('jquery'), '0.9.13');
499
  }
500
- break;
501
  case "GrandMedia_Modules" :
502
  if(isset($_GET['preset_module']) || isset($_GET['preset'])){
503
 
@@ -511,7 +523,7 @@ class GmediaAdmin{
511
  wp_enqueue_style('jquery.minicolors', $gmCore->gmedia_url . '/assets/minicolors/jquery.minicolors.css', array('gmedia-bootstrap'), '0.9.13');
512
  wp_enqueue_script('jquery.minicolors', $gmCore->gmedia_url . '/assets/minicolors/jquery.minicolors.js', array('jquery'), '0.9.13');
513
  }
514
- break;
515
  }
516
  }
517
 
@@ -529,9 +541,10 @@ class GmediaAdmin{
529
  $screen_id = explode('page_', $screen->id, 2);
530
  $screen_id = $screen_id[1];
531
 
532
- $screen->add_help_tab(array('id' => 'help_' . $screen_id . '_support',
533
- 'title' => __('Support'),
534
- 'content' => '<h4>First steps</h4>
 
535
  <p>If you have any problems with displaying Gmedia Gallery in admin or on website. Before posting to the Forum try next:</p>
536
  <ul>
537
  <li>Exclude plugin conflicts: Disable other plugins one by one and check if it resolve problem</li>
@@ -543,16 +556,17 @@ class GmediaAdmin{
543
  | <a href="http://codeasily.com/portfolio/gmedia-gallery-modules/" target="_blank">' . __('Demo', 'grand-media') . '</a>
544
  | <a href="http://codeasily.com/product/one-site-license/" target="_blank">' . __('Premium', 'grand-media') . '</a>
545
  </p>',
546
- ));
547
 
548
  switch($screen_id){
549
  case 'GrandMedia' :
550
- break;
551
  case 'GrandMedia_Settings' :
552
  if(current_user_can('manage_options')){
553
- $screen->add_help_tab(array('id' => 'help_' . $screen_id . '_license',
554
- 'title' => __('License Key'),
555
- 'content' => '<h4>Should I buy it, to use plugin?</h4>
 
556
  <p>No, plugin is absolutely free and all modules for it are free to install.</p>
557
  <p>Even premium modules are fully functional and free to test, but have backlink labels. To remove baclink labels from premium modules you need license key.</p>
558
  <p>Note: License Key will remove backlinks from all current and future premium modules, so you can use all available modules on one website.</p>
@@ -560,9 +574,9 @@ class GmediaAdmin{
560
  <h4>I have license key but I can\'t activate it</h4>
561
  <p>Contact developer <a href="mailto:gmediafolder@gmail.com">gmediafolder@gmail.com</a> with your problem and wait for additional instructions and code for manual activation</p>
562
  <div><a class="btn btn-default" href="' . admin_url('admin.php?page=' . $screen_id . '&license_activate=manual') . '">Manual Activation</a></div>',
563
- ));
564
  }
565
- break;
566
  }
567
  }
568
 
@@ -629,7 +643,7 @@ class GmediaAdmin{
629
  $settings .= '
630
  </div>
631
  ';
632
- break;
633
  case 'GrandMedia_AddMedia' :
634
  $tab = $gmCore->_get('tab', 'upload');
635
  if('upload' == $tab){
@@ -659,7 +673,7 @@ class GmediaAdmin{
659
  </div>
660
  ';
661
  }
662
- break;
663
  case 'GrandMedia_Albums' :
664
  if(isset($_GET['edit_term'])){
665
  $settings = '
@@ -692,7 +706,7 @@ class GmediaAdmin{
692
  </div>
693
  ';
694
  }
695
- break;
696
  case 'GrandMedia_Categories' :
697
  if(isset($_GET['edit_term'])){
698
  $settings = '
@@ -724,7 +738,7 @@ class GmediaAdmin{
724
  </div>
725
  ';
726
  }
727
- break;
728
  case 'GrandMedia_Tags' :
729
  $settings = '
730
  <div class="form-inline pull-left">
@@ -746,9 +760,9 @@ class GmediaAdmin{
746
  </div>
747
  </div>
748
  ';
749
- break;
750
  case 'GrandMedia_Galleries' :
751
- if(!$gmCore->_get('edit_term') && !$gmCore->_get('gallery_module')){
752
  $settings = '
753
  <div class="form-inline pull-left">
754
  <div class="form-group">
@@ -770,7 +784,7 @@ class GmediaAdmin{
770
  </div>
771
  ';
772
  }
773
- break;
774
  case 'GrandMedia_WordpressLibrary' :
775
  $settings = '<p>' . __('Set query options for this page to be loaded by default.', 'grand-media') . '</p>
776
  <div class="form-inline pull-left">
@@ -796,7 +810,7 @@ class GmediaAdmin{
796
  </div>
797
  </div>
798
  ';
799
- break;
800
  }
801
 
802
  if($settings){
@@ -826,7 +840,7 @@ class GmediaAdmin{
826
  update_option( 'gmediaOptions', $gmGallery->options );
827
  */
828
  $gm_screen_options = get_user_meta($user_ID, 'gm_screen_options', true);
829
- if(!is_array($gm_screen_options)){
830
  $gm_screen_options = array();
831
  }
832
  $value = array_merge($gm_screen_options, $_POST['gm_screen_options']);
@@ -838,6 +852,6 @@ class GmediaAdmin{
838
  }
839
 
840
  }
841
-
842
  // Start GmediaAdmin
843
- new GmediaAdmin();
3
  /**
4
  * GmediaAdmin - Admin Section for GRAND Media
5
  */
6
+ class GmediaAdmin {
7
  var $pages = array();
8
  var $body_classes = array();
9
 
28
  if(isset($_GET['page']) && (false !== strpos($_GET['page'], 'GrandMedia'))){
29
  $this->body_classes[] = 'grand-media-admin-page';
30
 
31
+ if( !isset($_GET['gmediablank']) || 'library' === $_GET['gmediablank']){
32
  $this->body_classes[] = $_GET['page'];
33
+ if( !empty($_GET['mode'])){
34
  $this->body_classes[] = $_GET['page'] . '_' . $_GET['mode'];
35
  }
36
  if(isset($_GET['edit_term']) || isset($_GET['gallery_module']) || isset($_GET['preset'])){
96
  case 'update_plugin':
97
  require_once(dirname(dirname(__FILE__)) . '/config/update.php');
98
  gmedia_do_update();
99
+ break;
100
  case 'image_editor':
101
  require_once(dirname(dirname(__FILE__)) . '/inc/image-editor.php');
102
  gmedia_image_editor();
103
+ break;
104
  case 'map_editor':
105
  require_once(dirname(dirname(__FILE__)) . '/inc/map-editor.php');
106
  gmedia_map_editor();
107
+ break;
108
  case 'library':
109
  echo '<div id="gmedia_iframe_content">';
110
  echo '<div id="gm-message">' . $gmCore->alert('success', $gmProcessor->msg) . $gmCore->alert('danger', $gmProcessor->error) . '</div>';
111
  include(GMEDIA_ABSPATH . 'admin/pages/library/library.php');
112
  echo '</div>';
113
+ break;
114
  case 'comments':
115
  require_once(dirname(__FILE__) . '/tpl/comments.php');
116
+ break;
117
  case 'module_preview':
118
  require_once(dirname(__FILE__) . '/tpl/module-preview.php');
119
+ break;
120
  }
121
  echo '</div>';
122
 
197
  <div class="col-sm-2 hidden-xs" id="sidebar" role="navigation">
198
  <?php echo $sideLinks['sideLinks']; ?>
199
 
200
+ <?php
201
+ if((int)$gmGallery->options['feedback']){
202
+ $installDate = get_option('gmediaInstallDate');
203
+ if($installDate && (strtotime($installDate) < strtotime('2 weeks ago'))){ ?>
204
+ <div class="row panel panel-default visible-lg-block">
205
+ <div class="panel-heading" data-toggle="collapse" data-target="#support_div_collapse" aria-expanded="true" aria-controls="support_div_collapse" style="cursor:pointer;">
206
+ <b><?php _e('Any feedback?', 'grand-media'); ?></b>
207
+ </div>
208
+ <div class="collapse<?php if(empty($gmGallery->options['license_key'])){
209
+ echo ' in';
210
+ } ?>" id="support_div_collapse">
211
+ <div class="panel-body">
212
+ <p><?php _e('You can help me spread the word about GmediaGallery among the users striving to get awesome galleries on their WordPress sites.', 'grand-media'); ?></p>
213
+
214
+ <p>
215
+ <a class="btn btn-primary" href="https://wordpress.org/support/view/plugin-reviews/grand-media?filter=5" target="_blank"><?php _e('Rate Gmedia Gallery', 'grand-media'); ?></a>
216
+ </p>
217
+
218
+ <p><?php _e('Your reviews and ideas helps me to create new awesome modules and to improve plugin.', 'grand-media'); ?></p>
219
+ </div>
220
  </div>
221
  </div>
222
+ <?php }
223
+ }
224
+ if((int)$gmGallery->options['twitter']){
225
+ ?>
226
+ <div class="row panel visible-lg-block">
227
+ <a class="twitter-timeline" href="https://twitter.com/CodEasily/timelines/648240437141086212" data-widget-id="648245214201692161"></a>
228
+ <script>!function(d, s, id){
229
+ var js, fjs = d.getElementsByTagName(s)[0],
230
+ p = /^http:/.test(d.location)? 'http' : 'https';
231
+ if(!d.getElementById(id)){
232
+ js = d.createElement(s);
233
+ js.id = id;
234
+ js.src = p + "://platform.twitter.com/widgets.js";
235
+ fjs.parentNode.insertBefore(js, fjs);
236
+ }
237
+ }(document, "script", "twitter-wjs");</script>
238
  </div>
239
+ <?php
240
+ } ?>
 
 
 
 
 
 
 
 
 
 
 
241
  </div>
242
  <div class="col-sm-10 col-xs-12">
243
  <div id="gm-message"><?php
289
 
290
  function admin_footer(){
291
  $ajax_operations = get_option('gmedia_ajax_long_operations');
292
+ if( !$ajax_operations){
293
  return;
294
  }
295
  reset($ajax_operations);
297
  $nonce = wp_create_nonce('gmedia_ajax_long_operations');
298
  ?>
299
  <script type="text/javascript">
300
+ jQuery(document).ready(function($){
301
  var header = $('#gmedia-header');
302
  header.append('<div id="ajax-long-operation"><div class="progress"><div class="progress-bar progress-bar-info" style="width: 0%;"></div><div class="progress-bar-indicator">0%</div></div></div>');
303
+ gmAjaxLongOperation = function(){
304
  jQuery.post(ajaxurl, {action: '<?php echo $ajax; ?>', _wpnonce_ajax_long_operations: '<?php echo $nonce; ?>'}, function(r) {
305
+ if(r.data){
306
  jQuery('.progress-bar-info', header).width(r.data.progress);
307
  var indicator = r.data.info? r.data.info + ' ' + r.data.progress : r.data.progress;
308
  jQuery('.progress-bar-indicator', header).html(indicator);
309
 
310
+ if(r.data.done){
311
  return;
312
  }
313
  }
326
  switch($gmProcessor->page){
327
  case 'GrandMedia_AddMedia':
328
  include_once(dirname(__FILE__) . '/pages/addmedia/addmedia.php');
329
+ break;
330
  case 'GrandMedia_Albums':
331
  if(isset($_GET['edit_term'])){
332
  include_once(dirname(__FILE__) . '/pages/terms/edit-term.php');
333
  } else{
334
  include_once(dirname(__FILE__) . '/pages/terms/terms.php');
335
  }
336
+ break;
337
  case 'GrandMedia_Categories':
338
  if(isset($_GET['edit_term'])){
339
  include_once(dirname(__FILE__) . '/pages/terms/edit-term.php');
340
  } else{
341
  include_once(dirname(__FILE__) . '/pages/terms/terms.php');
342
  }
343
+ break;
344
  case 'GrandMedia_Tags':
345
  include_once(dirname(__FILE__) . '/pages/terms/terms.php');
346
+ break;
347
  case 'GrandMedia_Galleries':
348
  if(isset($_GET['gallery_module']) || isset($_GET['edit_term'])){
349
  include_once(dirname(__FILE__) . '/pages/galleries/edit-gallery.php');
350
  } else{
351
  include_once(dirname(__FILE__) . '/pages/galleries/galleries.php');
352
  }
353
+ break;
354
  case 'GrandMedia_Modules':
355
  if(isset($_GET['preset_module']) || isset($_GET['preset'])){
356
  include_once(dirname(__FILE__) . '/pages/modules/edit-preset.php');
357
  } else{
358
  include_once(dirname(__FILE__) . '/pages/modules/modules.php');
359
  }
360
+ break;
361
  case 'GrandMedia_Settings':
362
  include_once(dirname(__FILE__) . '/pages/settings/settings.php');
363
+ break;
364
  case 'GrandMedia_App':
365
  include_once(dirname(__FILE__) . '/app.php');
366
  gmediaApp();
367
+ break;
368
  case 'GrandMedia_WordpressLibrary':
369
  include_once(dirname(__FILE__) . '/wpmedia.php');
370
  grandWPMedia();
371
+ break;
372
  case 'GrandMedia_Update':
373
  include_once(GMEDIA_ABSPATH . 'config/update.php');
374
  gmedia_upgrade_progress_panel();
375
+ break;
376
  case 'GrandMedia':
 
377
  include_once(dirname(__FILE__) . '/pages/library/library.php');
378
+ break;
379
+ default:
380
+ do_action('gmedia_admin_page-' . $gmProcessor->page);
381
+ break;
382
  }
383
  }
384
 
437
 
438
  wp_enqueue_script('moment', $gmCore->gmedia_url . '/assets/bootstrap-datetimepicker/moment.min.js', array('jquery'), '2.5.1');
439
  wp_enqueue_style('datetimepicker', $gmCore->gmedia_url . '/assets/bootstrap-datetimepicker/bootstrap-datetimepicker.min.css', array('gmedia-bootstrap'), '2.1.32');
440
+ wp_enqueue_script('datetimepicker', $gmCore->gmedia_url . '/assets/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js', array(
441
+ 'jquery',
442
+ 'moment',
443
+ 'gmedia-bootstrap'
444
  ), '2.1.32');
445
  }
446
  }
447
  wp_enqueue_style('selectize');
448
  wp_enqueue_script('selectize');
449
  wp_enqueue_script('wavesurfer', $gmCore->gmedia_url . '/assets/wavesurfer/wavesurfer.min.js', array('jquery'), '1.1.5');
450
+ break;
451
  case "GrandMedia_WordpressLibrary" :
452
  if($gmCore->caps['gmedia_import']){
453
  wp_enqueue_style('selectize');
454
  wp_enqueue_script('selectize');
455
  }
456
+ break;
457
  case "GrandMedia_Albums" :
458
  if(isset($_GET['edit_term'])){
459
  if($gmCore->caps['gmedia_album_manage']){
463
  wp_enqueue_style('selectize');
464
  wp_enqueue_script('selectize');
465
  }
466
+ break;
467
  case "GrandMedia_Categories" :
468
  if(isset($_GET['edit_term'])){
469
  wp_enqueue_style('selectize');
470
  wp_enqueue_script('selectize');
471
  }
472
+ break;
473
  case "GrandMedia_AddMedia" :
474
  if($gmCore->caps['gmedia_terms']){
475
  wp_enqueue_style('selectize');
484
  wp_enqueue_script('gmedia-plupload', $gmCore->gmedia_url . '/assets/plupload/plupload.full.min.js', array('jquery', 'jquery-ui-full'), '2.1.2');
485
 
486
  wp_enqueue_style('jquery.ui.plupload', $gmCore->gmedia_url . '/assets/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css', array('jquery-ui-smoothness'), '2.1.2', 'screen');
487
+ wp_enqueue_script('jquery.ui.plupload', $gmCore->gmedia_url . '/assets/plupload/jquery.ui.plupload/jquery.ui.plupload.min.js', array(
488
+ 'gmedia-plupload',
489
+ 'jquery-ui-full'
490
  ), '2.1.2');
491
 
492
  }
493
  }
494
+ break;
495
  case "GrandMedia_Settings" :
496
  case "GrandMedia_App" :
497
  // under construction
498
+ break;
499
  case "GrandMedia_Galleries" :
500
  if($gmCore->caps['gmedia_gallery_manage'] && (isset($_GET['gallery_module']) || isset($_GET['edit_term']))){
501
 
509
  wp_enqueue_style('jquery.minicolors', $gmCore->gmedia_url . '/assets/minicolors/jquery.minicolors.css', array('gmedia-bootstrap'), '0.9.13');
510
  wp_enqueue_script('jquery.minicolors', $gmCore->gmedia_url . '/assets/minicolors/jquery.minicolors.js', array('jquery'), '0.9.13');
511
  }
512
+ break;
513
  case "GrandMedia_Modules" :
514
  if(isset($_GET['preset_module']) || isset($_GET['preset'])){
515
 
523
  wp_enqueue_style('jquery.minicolors', $gmCore->gmedia_url . '/assets/minicolors/jquery.minicolors.css', array('gmedia-bootstrap'), '0.9.13');
524
  wp_enqueue_script('jquery.minicolors', $gmCore->gmedia_url . '/assets/minicolors/jquery.minicolors.js', array('jquery'), '0.9.13');
525
  }
526
+ break;
527
  }
528
  }
529
 
541
  $screen_id = explode('page_', $screen->id, 2);
542
  $screen_id = $screen_id[1];
543
 
544
+ $screen->add_help_tab(array(
545
+ 'id' => 'help_' . $screen_id . '_support',
546
+ 'title' => __('Support'),
547
+ 'content' => '<h4>First steps</h4>
548
  <p>If you have any problems with displaying Gmedia Gallery in admin or on website. Before posting to the Forum try next:</p>
549
  <ul>
550
  <li>Exclude plugin conflicts: Disable other plugins one by one and check if it resolve problem</li>
556
  | <a href="http://codeasily.com/portfolio/gmedia-gallery-modules/" target="_blank">' . __('Demo', 'grand-media') . '</a>
557
  | <a href="http://codeasily.com/product/one-site-license/" target="_blank">' . __('Premium', 'grand-media') . '</a>
558
  </p>',
559
+ ));
560
 
561
  switch($screen_id){
562
  case 'GrandMedia' :
563
+ break;
564
  case 'GrandMedia_Settings' :
565
  if(current_user_can('manage_options')){
566
+ $screen->add_help_tab(array(
567
+ 'id' => 'help_' . $screen_id . '_license',
568
+ 'title' => __('License Key'),
569
+ 'content' => '<h4>Should I buy it, to use plugin?</h4>
570
  <p>No, plugin is absolutely free and all modules for it are free to install.</p>
571
  <p>Even premium modules are fully functional and free to test, but have backlink labels. To remove baclink labels from premium modules you need license key.</p>
572
  <p>Note: License Key will remove backlinks from all current and future premium modules, so you can use all available modules on one website.</p>
574
  <h4>I have license key but I can\'t activate it</h4>
575
  <p>Contact developer <a href="mailto:gmediafolder@gmail.com">gmediafolder@gmail.com</a> with your problem and wait for additional instructions and code for manual activation</p>
576
  <div><a class="btn btn-default" href="' . admin_url('admin.php?page=' . $screen_id . '&license_activate=manual') . '">Manual Activation</a></div>',
577
+ ));
578
  }
579
+ break;
580
  }
581
  }
582
 
643
  $settings .= '
644
  </div>
645
  ';
646
+ break;
647
  case 'GrandMedia_AddMedia' :
648
  $tab = $gmCore->_get('tab', 'upload');
649
  if('upload' == $tab){
673
  </div>
674
  ';
675
  }
676
+ break;
677
  case 'GrandMedia_Albums' :
678
  if(isset($_GET['edit_term'])){
679
  $settings = '
706
  </div>
707
  ';
708
  }
709
+ break;
710
  case 'GrandMedia_Categories' :
711
  if(isset($_GET['edit_term'])){
712
  $settings = '
738
  </div>
739
  ';
740
  }
741
+ break;
742
  case 'GrandMedia_Tags' :
743
  $settings = '
744
  <div class="form-inline pull-left">
760
  </div>
761
  </div>
762
  ';
763
+ break;
764
  case 'GrandMedia_Galleries' :
765
+ if( !$gmCore->_get('edit_term') && !$gmCore->_get('gallery_module')){
766
  $settings = '
767
  <div class="form-inline pull-left">
768
  <div class="form-group">
784
  </div>
785
  ';
786
  }
787
+ break;
788
  case 'GrandMedia_WordpressLibrary' :
789
  $settings = '<p>' . __('Set query options for this page to be loaded by default.', 'grand-media') . '</p>
790
  <div class="form-inline pull-left">
810
  </div>
811
  </div>
812
  ';
813
+ break;
814
  }
815
 
816
  if($settings){
840
  update_option( 'gmediaOptions', $gmGallery->options );
841
  */
842
  $gm_screen_options = get_user_meta($user_ID, 'gm_screen_options', true);
843
+ if( !is_array($gm_screen_options)){
844
  $gm_screen_options = array();
845
  }
846
  $value = array_merge($gm_screen_options, $_POST['gm_screen_options']);
852
  }
853
 
854
  }
855
+ global $gmAdmin;
856
  // Start GmediaAdmin
857
+ $gmAdmin = new GmediaAdmin();
admin/ajax.php CHANGED
@@ -2316,6 +2316,8 @@ function gmedia_module_interaction(){
2316
  }
2317
  set_transient($transient_key, $transient_value, 18 * HOUR_IN_SECONDS);
2318
 
 
 
2319
  $rating['votes'] = $old_rate? $rating['votes'] : $rating['votes'] + 1;
2320
  $rating['value'] = ($rating['value'] * $rating['votes'] + $rate - $old_rate) / $rating['votes'];
2321
 
2316
  }
2317
  set_transient($transient_key, $transient_value, 18 * HOUR_IN_SECONDS);
2318
 
2319
+ do_action('gmedia_rate', $gmid, $rating['value']);
2320
+
2321
  $rating['votes'] = $old_rate? $rating['votes'] : $rating['votes'] + 1;
2322
  $rating['value'] = ($rating['value'] * $rating['votes'] + $rate - $old_rate) / $rating['votes'];
2323
 
admin/assets/js/gmedia.admin.js CHANGED
@@ -1041,6 +1041,9 @@ var GmediaFunction = {
1041
  backdrop: true,
1042
  show: true
1043
  }).one('hidden.bs.modal', function() {
 
 
 
1044
  modal_title.empty();
1045
  modal_body.empty();
1046
  modal_dialog.removeAttr('style').attr('class', 'modal-dialog');
@@ -1174,7 +1177,7 @@ var GmediaFunction = {
1174
  query = query_field.val();
1175
 
1176
  modal_div.modal({
1177
- backdrop: false,
1178
  show: true,
1179
  keyboard: false
1180
  }).one('shown.bs.modal', function() {
1041
  backdrop: true,
1042
  show: true
1043
  }).one('hidden.bs.modal', function() {
1044
+ if (jQuery('.gmedia-modal:visible').length) {
1045
+ jQuery('body').addClass('modal-open');
1046
+ }
1047
  modal_title.empty();
1048
  modal_body.empty();
1049
  modal_dialog.removeAttr('style').attr('class', 'modal-dialog');
1177
  query = query_field.val();
1178
 
1179
  modal_div.modal({
1180
+ backdrop: true,
1181
  show: true,
1182
  keyboard: false
1183
  }).one('shown.bs.modal', function() {
admin/pages/galleries/tpl/modal-build-query.php CHANGED
@@ -205,9 +205,10 @@ global $user_ID, $gmDB, $gmCore
205
  $users = '';
206
  $_users = array();
207
  if(count($filter_users)) {
 
208
  foreach((array)$filter_users as $user) {
209
  $user->ID = (int)$user->ID;
210
- $_selected = in_array($user->ID, $query_data['author__in'])? ' selected="selected"' : '';
211
  $users .= "<option value='{$user->ID}'{$_selected}>" . esc_html($user->display_name) . "</option>";
212
  $_users[] = array('value' => $user->ID, 'text' => esc_html($user->display_name));
213
  }
@@ -395,6 +396,7 @@ global $user_ID, $gmDB, $gmCore
395
 
396
  });
397
  var cats = $('.combobox_gmedia_category').selectize({
 
398
  create: false,
399
  options: gmedia_categories,
400
  preload: true,
@@ -444,6 +446,7 @@ global $user_ID, $gmDB, $gmCore
444
  });
445
 
446
  var tags = $('.combobox_gmedia_tag').selectize({
 
447
  create: false,
448
  options: gmedia_tags,
449
  hideSelected: true,
205
  $users = '';
206
  $_users = array();
207
  if(count($filter_users)) {
208
+ $author__in = wp_parse_id_list($query_data['author__in']);
209
  foreach((array)$filter_users as $user) {
210
  $user->ID = (int)$user->ID;
211
+ $_selected = in_array($user->ID, $author__in)? ' selected="selected"' : '';
212
  $users .= "<option value='{$user->ID}'{$_selected}>" . esc_html($user->display_name) . "</option>";
213
  $_users[] = array('value' => $user->ID, 'text' => esc_html($user->display_name));
214
  }
396
 
397
  });
398
  var cats = $('.combobox_gmedia_category').selectize({
399
+ plugins: ['drag_drop'],
400
  create: false,
401
  options: gmedia_categories,
402
  preload: true,
446
  });
447
 
448
  var tags = $('.combobox_gmedia_tag').selectize({
449
+ plugins: ['drag_drop'],
450
  create: false,
451
  options: gmedia_tags,
452
  hideSelected: true,
admin/pages/library/functions.php CHANGED
@@ -6,7 +6,7 @@ function gmedia_item_thumbnail($item){
6
  $images = $gmCore->gm_get_media_image($item, 'all');
7
  $thumb = '<img class="gmedia-thumb" src="' . $images['thumb'] . '" alt=""/>';
8
 
9
- if(isset($images['icon'])){
10
  $thumb .= '<img class="gmedia-typethumb" src="' . $images['icon'] . '" alt=""/>';
11
  }
12
 
6
  $images = $gmCore->gm_get_media_image($item, 'all');
7
  $thumb = '<img class="gmedia-thumb" src="' . $images['thumb'] . '" alt=""/>';
8
 
9
+ if(!empty($images['icon'])){
10
  $thumb .= '<img class="gmedia-typethumb" src="' . $images['icon'] . '" alt=""/>';
11
  }
12
 
admin/pages/library/tpl/list-item.php CHANGED
@@ -144,7 +144,7 @@ if(!defined('ABSPATH')) {
144
  class="preview-modal"
145
  title="<?php _e('Thumbnail', 'grand-media'); ?>"><?php echo $item->meta['_metadata'][0]['thumb']['width'] . '×' . $item->meta['_metadata'][0]['thumb']['height']; ?></a>
146
  <?php } ?>
147
- <br/><span class="label label-default"><?php _e('Filename', 'grand-media'); ?>:</span> <a href="<?php echo $item->url; ?>" download="true"><?php echo $item->gmuid; ?></a>
148
  <?php if(!empty($item->meta['_created_timestamp'][0])) { ?>
149
  <br/><span class="label label-default"><?php _e('Created', 'grand-media') ?>:</span> <?php echo date('Y-m-d H:i:s ', $item->meta['_created_timestamp'][0]); ?>
150
  <?php } ?>
144
  class="preview-modal"
145
  title="<?php _e('Thumbnail', 'grand-media'); ?>"><?php echo $item->meta['_metadata'][0]['thumb']['width'] . '×' . $item->meta['_metadata'][0]['thumb']['height']; ?></a>
146
  <?php } ?>
147
+ <br/><span class="label label-default"><?php _e('Filename', 'grand-media'); ?>:</span> <a href="<?php echo $item->url; ?>" download="<?php echo $item->gmuid; ?>"><?php echo $item->gmuid; ?></a>
148
  <?php if(!empty($item->meta['_created_timestamp'][0])) { ?>
149
  <br/><span class="label label-default"><?php _e('Created', 'grand-media') ?>:</span> <?php echo date('Y-m-d H:i:s ', $item->meta['_created_timestamp'][0]); ?>
150
  <?php } ?>
admin/pages/settings/tpl/common.php CHANGED
@@ -19,14 +19,8 @@ if(!defined('ABSPATH')){
19
  <option value="none" <?php selected($gmGallery->options['uninstall_dropdata'], 'none'); ?>><?php _e('Do not delete database and uploaded files', 'grand-media'); ?></option>
20
  </select>
21
  </div>
22
- <div class="form-group">
23
- <label><?php _e('Delete original images', 'grand-media') ?>:</label>
24
- <div class="checkbox" style="margin:0;">
25
- <input type="hidden" name="set[delete_originals]" value="0"/>
26
- <label><input type="checkbox" name="set[delete_originals]" value="1" <?php checked($gmGallery->options['delete_originals'], '1'); ?> /> <?php _e('Do not keep original images on the server', 'grand-media'); ?> </label>
27
- </div>
28
- <p class="help-block"><?php _e('Warning: You can\'t undo this operation. Checking this option you agree to delete original images. You will not be able: restore images after modification in the Image Editor; re-create web-optimized images; ...', 'grand-media'); ?></p>
29
- </div>
30
  <div class="form-group row">
31
  <div class="col-xs-6">
32
  <label><?php _e('In Tags order gmedia', 'grand-media'); ?></label>
@@ -48,6 +42,8 @@ if(!defined('ABSPATH')){
48
  </select>
49
  </div>
50
  </div>
 
 
51
  <div class="form-group">
52
  <div class="row">
53
  <div class="col-xs-6">
@@ -72,6 +68,8 @@ if(!defined('ABSPATH')){
72
  </div>
73
  <p class="help-block"><?php _e('This option could be rewritten by individual category settings.', 'grand-media'); ?></p>
74
  </div>
 
 
75
  <div class="form-group">
76
  <div class="row">
77
  <div class="col-xs-6">
@@ -104,6 +102,8 @@ if(!defined('ABSPATH')){
104
  <option value="draft" <?php selected($gmGallery->options['in_album_status'], 'draft'); ?>><?php _e('Draft', 'grand-media'); ?></option>
105
  </select>
106
  </div>
 
 
107
  <?php $gmedia_modules = get_gmedia_modules(false); ?>
108
  <div class="form-group">
109
  <label><?php _e('Choose default module', 'grand-media') ?>:</label>
@@ -137,6 +137,25 @@ if(!defined('ABSPATH')){
137
 
138
  <p class="help-block"><?php _e('Chosen module will be used for terms pages.', 'grand-media'); ?></p>
139
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  <div class="form-group">
141
  <label><?php _e('When set title from filename', 'grand-media') ?>:</label>
142
 
@@ -145,6 +164,8 @@ if(!defined('ABSPATH')){
145
  <label><input type="checkbox" name="set[name2title_capitalize]" value="1" <?php checked($gmGallery->options['name2title_capitalize'], '1'); ?> /> <?php _e('Make the first letter of each word capitalized (Title Case)', 'grand-media'); ?> </label>
146
  </div>
147
  </div>
 
 
148
  <div class="form-group">
149
  <label><?php _e('Forbid other plugins to load their JS and CSS on Gmedia admin pages', 'grand-media') ?>:</label>
150
 
19
  <option value="none" <?php selected($gmGallery->options['uninstall_dropdata'], 'none'); ?>><?php _e('Do not delete database and uploaded files', 'grand-media'); ?></option>
20
  </select>
21
  </div>
22
+
23
+ <hr />
 
 
 
 
 
 
24
  <div class="form-group row">
25
  <div class="col-xs-6">
26
  <label><?php _e('In Tags order gmedia', 'grand-media'); ?></label>
42
  </select>
43
  </div>
44
  </div>
45
+
46
+ <hr />
47
  <div class="form-group">
48
  <div class="row">
49
  <div class="col-xs-6">
68
  </div>
69
  <p class="help-block"><?php _e('This option could be rewritten by individual category settings.', 'grand-media'); ?></p>
70
  </div>
71
+
72
+ <hr />
73
  <div class="form-group">
74
  <div class="row">
75
  <div class="col-xs-6">
102
  <option value="draft" <?php selected($gmGallery->options['in_album_status'], 'draft'); ?>><?php _e('Draft', 'grand-media'); ?></option>
103
  </select>
104
  </div>
105
+
106
+ <hr />
107
  <?php $gmedia_modules = get_gmedia_modules(false); ?>
108
  <div class="form-group">
109
  <label><?php _e('Choose default module', 'grand-media') ?>:</label>
137
 
138
  <p class="help-block"><?php _e('Chosen module will be used for terms pages.', 'grand-media'); ?></p>
139
  </div>
140
+
141
+ <hr />
142
+ <div class="form-group">
143
+ <label><?php _e('Choose what to show on Author Profile pages', 'grand-media'); ?></label>
144
+ <div class="checkbox" style="margin:0;">
145
+ <input type="hidden" name="set[wp_author_related_gmedia]" value="0"/>
146
+ <label><input type="checkbox" name="set[wp_author_related_gmedia]" value="1" <?php checked($gmGallery->options['wp_author_related_gmedia'], '1'); ?> /> <?php _e('Gmedia Posts (media items from Gmedia Libary)', 'grand-media'); ?> </label>
147
+ </div>
148
+ <div class="checkbox" style="margin:0;">
149
+ <input type="hidden" name="set[wp_author_related_gmedia_album]" value="0"/>
150
+ <label><input type="checkbox" name="set[wp_author_related_gmedia_album]" value="1" <?php checked($gmGallery->options['wp_author_related_gmedia_album'], '1'); ?> /> <?php _e('Gmedia Albums', 'grand-media'); ?> </label>
151
+ </div>
152
+ <div class="checkbox" style="margin:0;">
153
+ <input type="hidden" name="set[wp_author_related_gmedia_gallery]" value="0"/>
154
+ <label><input type="checkbox" name="set[wp_author_related_gmedia_gallery]" value="1" <?php checked($gmGallery->options['wp_author_related_gmedia_gallery'], '1'); ?> /> <?php _e('Gmedia Galleries', 'grand-media'); ?> </label>
155
+ </div>
156
+ </div>
157
+
158
+ <hr />
159
  <div class="form-group">
160
  <label><?php _e('When set title from filename', 'grand-media') ?>:</label>
161
 
164
  <label><input type="checkbox" name="set[name2title_capitalize]" value="1" <?php checked($gmGallery->options['name2title_capitalize'], '1'); ?> /> <?php _e('Make the first letter of each word capitalized (Title Case)', 'grand-media'); ?> </label>
165
  </div>
166
  </div>
167
+
168
+ <hr />
169
  <div class="form-group">
170
  <label><?php _e('Forbid other plugins to load their JS and CSS on Gmedia admin pages', 'grand-media') ?>:</label>
171
 
admin/pages/settings/tpl/license.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  // don't load directly
3
- if(!defined('ABSPATH')){
4
  die('-1');
5
  }
6
 
@@ -9,7 +9,7 @@ if(!defined('ABSPATH')){
9
  */
10
  ?>
11
  <fieldset id="gmedia_premium" class="tab-pane active">
12
- <p><?php _e('Enter Gmedia Premium Key to remove backlink label from premium gallery modules.') ?></p>
13
 
14
  <div class="row">
15
  <div class="form-group col-xs-5">
@@ -27,11 +27,59 @@ if(!defined('ABSPATH')){
27
  <input type="text" name="set[license_key2]" id="license_key2" class="form-control input-sm" value="<?php echo $gmGallery->options['license_key2']; ?>"/>
28
  </div>
29
  </div>
30
- <?php if(!('manual' == $gmCore->_get('license_activate') || !empty($pk))){ ?>
31
  <div class="form-group col-xs-7">
32
  <label>&nbsp;</label>
33
  <button style="display:block;" class="btn btn-success btn-sm" type="submit" name="license-key-activate"><?php _e('Activate Key', 'grand-media'); ?></button>
34
  </div>
35
  <?php } ?>
36
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  </fieldset>
1
  <?php
2
  // don't load directly
3
+ if( !defined('ABSPATH')){
4
  die('-1');
5
  }
6
 
9
  */
10
  ?>
11
  <fieldset id="gmedia_premium" class="tab-pane active">
12
+ <p><?php _e('Enter Gmedia Premium Key to remove backlink label from premium gallery modules and unlock settings below.') ?></p>
13
 
14
  <div class="row">
15
  <div class="form-group col-xs-5">
27
  <input type="text" name="set[license_key2]" id="license_key2" class="form-control input-sm" value="<?php echo $gmGallery->options['license_key2']; ?>"/>
28
  </div>
29
  </div>
30
+ <?php if( !('manual' == $gmCore->_get('license_activate') || !empty($pk))){ ?>
31
  <div class="form-group col-xs-7">
32
  <label>&nbsp;</label>
33
  <button style="display:block;" class="btn btn-success btn-sm" type="submit" name="license-key-activate"><?php _e('Activate Key', 'grand-media'); ?></button>
34
  </div>
35
  <?php } ?>
36
  </div>
37
+ <fieldset <?php echo (empty($gmGallery->options['license_name'])? 'disabled' : ''); ?>>
38
+ <hr/>
39
+ <div class="form-group">
40
+ <label><?php _e('Delete original images', 'grand-media') ?>:</label>
41
+ <div class="checkbox" style="margin:0;">
42
+ <input type="hidden" name="set[delete_originals]" value="0"/>
43
+ <label><input type="checkbox" name="set[delete_originals]" value="1" <?php checked($gmGallery->options['delete_originals'], '1'); ?> /> <?php _e('Do not keep original images on the server', 'grand-media'); ?>
44
+ </label>
45
+ </div>
46
+ <p class="help-block"><?php _e('Warning: You can\'t undo this operation. Checking this option you agree to delete original images. You will not be able: restore images after modification in the Image Editor; re-create web-optimized images; ...', 'grand-media'); ?></p>
47
+ </div>
48
+
49
+ <hr/>
50
+ <div class="form-group">
51
+ <label><?php _e('Gmedia Tags & Categories', 'grand-media'); ?></label>
52
+ <div class="checkbox" style="margin:0;">
53
+ <input type="hidden" name="set[wp_term_related_gmedia]" value="0"/>
54
+ <label><input type="checkbox" name="set[wp_term_related_gmedia]" value="1" <?php checked($gmGallery->options['wp_term_related_gmedia'], '1'); ?> /> <?php _e('Show Related Media from Gmedia library for Wordpress native tags & categories', 'grand-media'); ?>
55
+ </label>
56
+ </div>
57
+ <div class="checkbox" style="margin:0;">
58
+ <input type="hidden" name="set[wp_post_related_gmedia]" value="0"/>
59
+ <label><input type="checkbox" name="set[wp_post_related_gmedia]" value="1" <?php checked($gmGallery->options['wp_post_related_gmedia'], '1'); ?> /> <?php _e('Show Related Media from Gmedia library for Wordpress Posts based on tags', 'grand-media'); ?>
60
+ </label>
61
+ </div>
62
+ </div>
63
+
64
+ <hr/>
65
+ <div class="form-group">
66
+ <label><?php _e('Show "Any Feedback?" in the Sidebar', 'grand-media') ?>:</label>
67
+ <div class="checkbox" style="margin:0;">
68
+ <input type="hidden" name="set[feedback]" value="0"/>
69
+ <label><input type="checkbox" name="set[feedback]" value="1" <?php checked($gmGallery->options['feedback'], '1'); ?> /> <?php _e('Show "Any Feedback?"', 'grand-media'); ?>
70
+ </label>
71
+ </div>
72
+ <p class="help-block"><?php _e('I\'d be very happy if you leave positive feedback about plugin on the WordPress.org Directory. Thank You!', 'grand-media'); ?></p>
73
+ </div>
74
+ <div class="form-group">
75
+ <label><?php _e('Show Twitter News in the Sidebar', 'grand-media') ?>:</label>
76
+ <div class="checkbox" style="margin:0;">
77
+ <input type="hidden" name="set[twitter]" value="0"/>
78
+ <label><input type="checkbox" name="set[twitter]" value="1" <?php checked($gmGallery->options['twitter'], '1'); ?> /> <?php _e('Show Twitter News', 'grand-media'); ?>
79
+ </label>
80
+ </div>
81
+ <p class="help-block"><?php _e('Follow Gmedia on twitter to not miss info about new modules and plugin updates.', 'grand-media'); ?></p>
82
+ </div>
83
+ </fieldset>
84
+
85
  </fieldset>
admin/pages/settings/tpl/permalinks.php CHANGED
@@ -85,41 +85,6 @@ if(!defined('ABSPATH')) {
85
  </div>
86
  </div>
87
 
88
- <hr />
89
- <h4><?php _e('Gmedia Tags & Categories', 'grand-media'); ?></h4>
90
- <div class="form-group">
91
- <div class="checkbox" style="margin:0;">
92
- <input type="hidden" name="set[wp_term_related_gmedia]" value="0"/>
93
- <label><input type="checkbox" name="set[wp_term_related_gmedia]" value="1" <?php checked($gmGallery->options['wp_term_related_gmedia'], '1'); ?> /> <?php _e('Show Related Media from Gmedia library for Wordpress native tags & categories', 'grand-media'); ?> </label>
94
- </div>
95
- </div>
96
- <div class="form-group">
97
- <div class="checkbox" style="margin:0;">
98
- <input type="hidden" name="set[wp_post_related_gmedia]" value="0"/>
99
- <label><input type="checkbox" name="set[wp_post_related_gmedia]" value="1" <?php checked($gmGallery->options['wp_post_related_gmedia'], '1'); ?> /> <?php _e('Show Related Media from Gmedia library for Wordpress Posts based on tags', 'grand-media'); ?> </label>
100
- </div>
101
- </div>
102
-
103
- <hr />
104
- <h4><?php _e('Choose what to show on Author Profile pages', 'grand-media'); ?></h4>
105
- <div class="form-group">
106
- <div class="checkbox" style="margin:0;">
107
- <input type="hidden" name="set[wp_author_related_gmedia]" value="0"/>
108
- <label><input type="checkbox" name="set[wp_author_related_gmedia]" value="1" <?php checked($gmGallery->options['wp_author_related_gmedia'], '1'); ?> /> <?php _e('Gmedia Posts (media items from Gmedia Libary)', 'grand-media'); ?> </label>
109
- </div>
110
- </div>
111
- <div class="form-group">
112
- <div class="checkbox" style="margin:0;">
113
- <input type="hidden" name="set[wp_author_related_gmedia_album]" value="0"/>
114
- <label><input type="checkbox" name="set[wp_author_related_gmedia_album]" value="1" <?php checked($gmGallery->options['wp_author_related_gmedia_album'], '1'); ?> /> <?php _e('Gmedia Albums', 'grand-media'); ?> </label>
115
- </div>
116
- </div>
117
- <div class="form-group">
118
- <div class="checkbox" style="margin:0;">
119
- <input type="hidden" name="set[wp_author_related_gmedia_gallery]" value="0"/>
120
- <label><input type="checkbox" name="set[wp_author_related_gmedia_gallery]" value="1" <?php checked($gmGallery->options['wp_author_related_gmedia_gallery'], '1'); ?> /> <?php _e('Gmedia Galleries', 'grand-media'); ?> </label>
121
- </div>
122
- </div>
123
  </fieldset>
124
 
125
  <fieldset id="gmedia_settings_cloud" class="tab-pane">
85
  </div>
86
  </div>
87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  </fieldset>
89
 
90
  <fieldset id="gmedia_settings_cloud" class="tab-pane">
admin/processor/class.processor.library.php CHANGED
@@ -3,7 +3,7 @@
3
  /**
4
  * GmediaProcessor_Library
5
  */
6
- class GmediaProcessor_Library extends GmediaProcessor{
7
 
8
  private static $me = null;
9
  public static $cookie_key = false;
@@ -79,12 +79,13 @@ class GmediaProcessor_Library extends GmediaProcessor{
79
  $args['status'] = $gmCore->_get('status');
80
  $args['page'] = $gmCore->_get('pager');
81
  $args['per_page'] = $gmCore->_get('per_page', $per_page);
82
- $args['author__in'] = parent::filter_by_author($gmCore->_get('author'));
83
  $args['alb'] = $gmCore->_get('alb');
84
  $args['album__in'] = $gmCore->_get('album__in');
85
  $args['album__not_in'] = $gmCore->_get('album__not_in');
86
  $args['tag_id'] = $gmCore->_get('tag_id');
87
  $args['tag__in'] = $gmCore->_get('tag__in');
 
88
  $args['tag__not_in'] = $gmCore->_get('tag__not_in');
89
  $args['cat'] = $gmCore->_get('cat');
90
  $args['category__in'] = $gmCore->_get('category__in');
@@ -94,10 +95,12 @@ class GmediaProcessor_Library extends GmediaProcessor{
94
  $args['s'] = $gmCore->_get('s');
95
  $args['orderby'] = $gmCore->_get('orderby', $orderby);
96
  $args['order'] = $gmCore->_get('order', $order);
 
 
97
 
98
  if('duplicates' === $args['gmedia__in']){
99
  $duplicates = $gmDB->get_duplicates();
100
- if(!empty($duplicates['duplicate_ids'])){
101
  $args['gmedia__in'] = $duplicates['duplicate_ids'];
102
  $args['orderby'] = 'gmedia__in';
103
 
@@ -143,24 +146,25 @@ class GmediaProcessor_Library extends GmediaProcessor{
143
  }
144
  }
145
 
146
- if(!empty($query_args['author__in']) && $gmCore->caps['gmedia_show_others_media']){
147
  $authors_names = $query_args['author__in'];
148
  foreach($authors_names as $i => $id){
149
- if((int)$id){
150
  $authors_names[ $i ] = get_the_author_meta('display_name', $id);
151
  }
152
  }
153
- $this->filters['filter_author'] = array('title' => __('Filter Author', 'grand-media'),
154
- 'filter' => $authors_names
 
155
  );
156
  }
157
 
158
  $gmDB->gmedias_album_stuff($query_args);
159
- if(!empty($query_args['album__in'])){
160
  if(isset($query_args['within_album'])){
161
  $filter_title = __('Exclude Album', 'grand-media');
162
  $albums_names = array();
163
- if(!empty($query_args['with_album__not_in'])){
164
  $albums_names = $gmDB->get_terms('gmedia_album', array('fields' => 'names', 'global' => $args['author__in'], 'include' => $query_args['with_album__not_in']));
165
  }
166
  array_push($albums_names, __('Hide items without album', 'grand-media'));
@@ -168,17 +172,18 @@ class GmediaProcessor_Library extends GmediaProcessor{
168
  $filter_title = __('Filter Album', 'grand-media');
169
  $albums_names = $gmDB->get_terms('gmedia_album', array('fields' => 'names', 'global' => $args['author__in'], 'include' => $query_args['album__in']));
170
  }
171
- if(!empty($albums_names)){
172
- $this->filters['filter_albums'] = array('title' => $filter_title,
173
- 'filter' => $albums_names
 
174
  );
175
  }
176
  }
177
- if(!empty($query_args['album__not_in'])){
178
  if(isset($query_args['without_album'])){
179
  $filter_title = __('Filter Album', 'grand-media');
180
  $albums_names = array();
181
- if(!empty($query_args['with_album__in'])){
182
  $albums_names = $gmDB->get_terms('gmedia_album', array('fields' => 'names', 'global' => $args['author__in'], 'include' => $query_args['with_album__in']));
183
  }
184
  array_push($albums_names, __('Show items without album', 'grand-media'));
@@ -186,19 +191,20 @@ class GmediaProcessor_Library extends GmediaProcessor{
186
  $filter_title = __('Exclude Album', 'grand-media');
187
  $albums_names = $gmDB->get_terms('gmedia_album', array('fields' => 'names', 'global' => $args['author__in'], 'include' => $query_args['album__not_in']));
188
  }
189
- if(!empty($albums_names)){
190
- $this->filters['exclude_albums'] = array('title' => $filter_title,
191
- 'filter' => $albums_names
 
192
  );
193
  }
194
  }
195
 
196
  $gmDB->gmedias_category_stuff($query_args);
197
- if(!empty($query_args['category__in'])){
198
  if(isset($query_args['within_category'])){
199
  $filter_title = __('Exclude Category', 'grand-media');
200
  $category_names = array();
201
- if(!empty($query_args['with_category__not_in'])){
202
  $category_names = $gmDB->get_terms('gmedia_category', array('fields' => 'names', 'include' => $query_args['with_category__not_in']));
203
  }
204
  $category_names = array_push($category_names, __('Hide items without categories', 'grand-media'));
@@ -206,17 +212,18 @@ class GmediaProcessor_Library extends GmediaProcessor{
206
  $filter_title = __('Filter Category', 'grand-media');
207
  $category_names = $gmDB->get_terms('gmedia_category', array('fields' => 'names', 'include' => $query_args['category__in']));
208
  }
209
- if(!empty($category_names)){
210
- $this->filters['filter_categories'] = array('title' => $filter_title,
211
- 'filter' => $category_names
 
212
  );
213
  }
214
  }
215
- if(!empty($query_args['category__not_in'])){
216
  if(isset($query_args['without_category'])){
217
  $filter_title = __('Filter Category', 'grand-media');
218
  $category_names = array();
219
- if(!empty($query_args['with_category__in'])){
220
  $category_names = $gmDB->get_terms('gmedia_category', array('fields' => 'names', 'include' => $query_args['with_category__in']));
221
  }
222
  $category_names = array_push($category_names, __('Show items without categories', 'grand-media'));
@@ -224,38 +231,48 @@ class GmediaProcessor_Library extends GmediaProcessor{
224
  $filter_title = __('Exclude Category', 'grand-media');
225
  $category_names = $gmDB->get_terms('gmedia_category', array('fields' => 'names', 'include' => $query_args['category__not_in']));
226
  }
227
- if(!empty($category_names)){
228
- $this->filters['exclude_categories'] = array('title' => $filter_title,
229
- 'filter' => $category_names
 
230
  );
231
  }
232
  }
233
 
234
  $gmDB->gmedias_tag_stuff($query_args);
235
- if(!empty($query_args['tag__in'])){
236
  $tag_names = $gmDB->get_terms('gmedia_tag', array('fields' => 'names', 'include' => $query_args['tag__in']));
237
- if(!empty($tag_names)){
238
- $this->filters['filter_tags'] = array('title' => __('Filter Tag', 'grand-media'),
239
- 'filter' => $tag_names
 
240
  );
241
  }
242
  }
243
- if(!empty($query_args['tag__not_in'])){
244
  $tag_names = $gmDB->get_terms('gmedia_tag', array('fields' => 'names', 'include' => $query_args['tag__not_in']));
245
- if(!empty($tag_names)){
246
- $this->filters['exclude_tags'] = array('title' => __('Exclude Tag', 'grand-media'),
247
- 'filter' => $tag_names
 
248
  );
249
  }
250
  }
251
 
 
 
 
 
 
 
 
252
  return $query_args;
253
  }
254
 
255
  protected function processor(){
256
  global $user_ID, $gmCore, $gmDB, $gmGallery;
257
 
258
- if(!$gmCore->caps['gmedia_library']){
259
  wp_die(__('You are not allowed to be here', 'grand-media'));
260
  }
261
 
@@ -303,8 +320,8 @@ class GmediaProcessor_Library extends GmediaProcessor{
303
 
304
  if(isset($_POST['quick_gallery'])){
305
  check_admin_referer('gmedia_action', '_wpnonce_action');
306
- do{
307
- if(!$gmCore->caps['gmedia_gallery_manage']){
308
  $this->error[] = __('You are not allowed to manage galleries', 'grand-media');
309
  break;
310
  }
@@ -335,10 +352,11 @@ class GmediaProcessor_Library extends GmediaProcessor{
335
  $getModulePreset = $gmCore->getModulePreset($gallery['module']);
336
  $gallery['query'] = array_merge($gallery['query'], array('order' => 'ASC', 'orderby' => 'gmedia__in'));
337
 
338
- $gallery_meta = array('_edited' => gmdate('Y-m-d H:i:s'),
339
- '_query' => $gallery['query'],
340
- '_module' => $getModulePreset['module'],
341
- '_settings' => $getModulePreset['settings']
 
342
  );
343
  foreach($gallery_meta as $key => $value){
344
  $gmDB->update_metadata('gmedia_term', $term_id, $key, $value);
@@ -370,19 +388,19 @@ class GmediaProcessor_Library extends GmediaProcessor{
370
  }
371
  if(isset($_POST['filter_author'])){
372
  $authors = $gmCore->_post('author_ids');
373
- $location = add_query_arg(array('author' => (int)$authors), $this->url);
374
  wp_redirect($location);
375
  exit;
376
  }
377
 
378
  $do_gmedia = $gmCore->_get('do_gmedia');
379
- if(!empty($this->selected_items) || isset($_POST['cookie_key'])){
380
  if(isset($_POST['assign_album'])){
381
  check_admin_referer('gmedia_action', '_wpnonce_action');
382
  if($gmCore->caps['gmedia_terms']){
383
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
384
  $ids = $this->selected_items($cookie_key);
385
- if(!$gmCore->caps['gmedia_edit_others_media']){
386
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
387
  if(count($selected_items) < count($ids)){
388
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
@@ -409,7 +427,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
409
  }
410
  }
411
  }
412
- if(!empty($term_ids)){
413
  global $wpdb;
414
 
415
  foreach($term_ids as $term_id => $item_ids){
@@ -443,7 +461,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
443
  if($gmCore->caps['gmedia_terms']){
444
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
445
  $ids = $this->selected_items($cookie_key);
446
- if(!$gmCore->caps['gmedia_edit_others_media']){
447
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
448
  if(count($selected_items) < count($ids)){
449
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
@@ -453,13 +471,13 @@ class GmediaProcessor_Library extends GmediaProcessor{
453
  }
454
  $term = $gmCore->_post('cat_names');
455
  $term = explode(',', $term);
456
- if(!empty($term) && ($count = count($selected_items))){
457
  foreach($selected_items as $item){
458
  $result = $gmDB->set_gmedia_terms($item, $term, 'gmedia_category', $append = 1);
459
  if(is_wp_error($result)){
460
  $this->error[] = $result;
461
  $count --;
462
- } elseif(!$result){
463
  $count --;
464
  }
465
  }
@@ -478,7 +496,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
478
  if(($term = $gmCore->_post('category_id')) && $gmCore->caps['gmedia_terms']){
479
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
480
  $ids = $this->selected_items($cookie_key);
481
- if(!$gmCore->caps['gmedia_edit_others_media']){
482
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
483
  if(count($selected_items) < count($ids)){
484
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
@@ -493,7 +511,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
493
  if(is_wp_error($result)){
494
  $this->error[] = $result;
495
  $count --;
496
- } elseif(!$result){
497
  $count --;
498
  }
499
  }
@@ -508,7 +526,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
508
  }
509
  if(isset($_POST['add_tags'])){
510
  check_admin_referer('gmedia_action', '_wpnonce_action');
511
- if(!$gmCore->caps['gmedia_terms']){
512
  $this->error[] = __('You are not allowed to assign terms', 'grand-media');
513
  } else{
514
  $term = $gmCore->_post('tag_names');
@@ -516,7 +534,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
516
  if($term || $iptc_tags){
517
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
518
  $ids = $this->selected_items($cookie_key);
519
- if(!$gmCore->caps['gmedia_edit_others_media']){
520
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
521
  if(count($selected_items) < count($ids)){
522
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
@@ -538,7 +556,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
538
  if(is_wp_error($result)){
539
  $this->error[] = $result;
540
  $count --;
541
- } elseif(!$result){
542
  $count --;
543
  }
544
  }
@@ -557,7 +575,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
557
  if(($term = $gmCore->_post('tag_id')) && $gmCore->caps['gmedia_terms']){
558
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
559
  $ids = $this->selected_items($cookie_key);
560
- if(!$gmCore->caps['gmedia_edit_others_media']){
561
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
562
  if(count($selected_items) < count($ids)){
563
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
@@ -572,7 +590,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
572
  if(is_wp_error($result)){
573
  $this->error[] = $result;
574
  $count --;
575
- } elseif(!$result){
576
  $count --;
577
  }
578
  }
@@ -590,7 +608,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
590
  if($gmCore->caps['gmedia_edit_media']){
591
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
592
  $ids = $this->selected_items($cookie_key);
593
- if(!$gmCore->caps['gmedia_edit_others_media']){
594
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
595
  if(count($selected_items) < count($ids)){
596
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
@@ -618,16 +636,16 @@ class GmediaProcessor_Library extends GmediaProcessor{
618
  }
619
  $i = 0;
620
  foreach($selected_items as $item){
621
- $id = (int)$item;
622
- $gmedia = $gmDB->get_gmedia($id, ARRAY_A);
623
- if(!$gmedia){
624
  continue;
625
  }
626
- $item_author = (int)$gmedia['author'];
627
 
628
  if('custom' == $b_filename && ($gmCore->caps['gmedia_delete_others_media'] || ($item_author == $user_ID))){
629
  $filename_custom = $gmCore->_post('batch_filename_custom');
630
- if(!empty($filename_custom) && ('{filename}' !== $filename_custom)){
631
 
632
  $gmuid = pathinfo($gmedia['gmuid']);
633
 
@@ -668,32 +686,32 @@ class GmediaProcessor_Library extends GmediaProcessor{
668
  switch($b_title){
669
  case 'empty':
670
  $batch_data['title'] = '';
671
- break;
672
  case 'filename':
673
  $title = pathinfo($gmedia['gmuid'], PATHINFO_FILENAME);
674
  $batch_data['title'] = str_replace('_', ' ', $title);
675
  if($gmGallery->options['name2title_capitalize']){
676
  $batch_data['title'] = $gmCore->mb_ucwords_utf8($batch_data['title']);
677
  }
678
- break;
679
  case 'custom':
680
  $title_custom = $gmCore->_post('batch_title_custom');
681
  if(false !== $title_custom){
682
  $batch_data['title'] = $title_custom;
683
  }
684
- break;
685
  }
686
  switch($b_description){
687
  case 'empty':
688
  $batch_data['description'] = '';
689
- break;
690
  case 'metadata':
691
  $metatext = $gmCore->metadata_text($id);
692
  if($gmedia['description']){
693
  $gmedia['description'] .= "\n";
694
  }
695
  $batch_data['description'] = $gmedia['description'] . $metatext;
696
- break;
697
  case 'custom':
698
  $description_custom = $gmCore->_post('batch_description_custom');
699
  if(false !== $description_custom){
@@ -706,25 +724,25 @@ class GmediaProcessor_Library extends GmediaProcessor{
706
  $batch_data['description'] = $description_custom . $gmedia['description'];
707
  }
708
  }
709
- break;
710
  }
711
  switch($b_link){
712
  case 'empty':
713
  $batch_data['link'] = '';
714
- break;
715
  case 'self':
716
  $fileinfo = $gmCore->fileinfo($gmedia['gmuid'], false);
717
  $fileurl = is_file($fileinfo['filepath_original'])? $fileinfo['fileurl_original'] : $fileinfo['fileurl'];
718
  $batch_data['link'] = $fileurl;
719
- break;
720
  case 'custom':
721
  $link_custom = $gmCore->_post('batch_link_custom');
722
  if(false !== $link_custom){
723
  $batch_data['link'] = $link_custom;
724
  }
725
- break;
726
  }
727
- if(!empty($batch_data)){
728
  $batch_data['modified'] = current_time('mysql');
729
  $gmedia_data = array_merge($gmedia, $batch_data);
730
  $gmDB->insert_gmedia($gmedia_data);
@@ -750,7 +768,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
750
  if($gmCore->caps['gmedia_terms']){
751
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
752
  $ids = $this->selected_items($cookie_key);
753
- if(!$gmCore->caps['gmedia_edit_others_media']){
754
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
755
  if(count($selected_items) < count($ids)){
756
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
@@ -781,13 +799,13 @@ class GmediaProcessor_Library extends GmediaProcessor{
781
  $count = count($selected_items);
782
  if($count){
783
  foreach($selected_items as $item){
784
- $id = (int)$item;
785
  $media_metadata = $gmDB->generate_gmedia_metadata($id);
786
  $gmDB->update_metadata($meta_type = 'gmedia', $id, $meta_key = '_metadata', $media_metadata);
787
- if(!empty($media_metadata['image_meta']['created_timestamp'])){
788
  $gmDB->update_metadata($meta_type = 'gmedia', $id, $meta_key = '_created_timestamp', $media_metadata['image_meta']['created_timestamp']);
789
  }
790
- if(!empty($media_metadata['image_meta']['GPS'])){
791
  $gmDB->update_metadata($meta_type = 'gmedia', $id, $meta_key = '_gps', $media_metadata['image_meta']['GPS']);
792
  }
793
  }
@@ -808,7 +826,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
808
  $selected_items = $this->selected_items($cookie_key);
809
  $count = count($selected_items);
810
  if($count){
811
- if(!$gmCore->caps['gmedia_edit_others_media']){
812
  $edit_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'mime_type' => 'image', 'gmedia__in' => $selected_items));
813
  $selected_items = $edit_items;
814
  } else{
@@ -839,7 +857,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
839
  $ids = $gmCore->_get('ids', 'selected');
840
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
841
  $selected_items = ('selected' == $ids)? $this->selected_items($cookie_key) : wp_parse_id_list($ids);
842
- if(!empty($selected_items)){
843
  if(($count = count($selected_items))){
844
  foreach($selected_items as $gmid){
845
  $gmCore->duplicate_gmedia($gmid);
@@ -860,8 +878,8 @@ class GmediaProcessor_Library extends GmediaProcessor{
860
  $ids = $gmCore->_get('ids', 'selected');
861
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
862
  $selected_items = ('selected' == $ids)? $this->selected_items($cookie_key) : wp_parse_id_list($ids);
863
- if(!empty($selected_items)){
864
- if(!$gmCore->caps['gmedia_delete_others_media']){
865
  $delete_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $selected_items));
866
  if(count($delete_items) < count($selected_items)){
867
  $this->error[] = __('You are not allowed to delete others media', 'grand-media');
@@ -871,7 +889,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
871
  if(($count = count($selected_items))){
872
  $delete_original_file = !('delete__save_original' == $do_gmedia);
873
  foreach($selected_items as $item){
874
- if(!$gmDB->delete_gmedia((int)$item, $delete_original_file)){
875
  $this->error[] = "#{$item}: " . __('Error in deleting...', 'grand-media');
876
  $count --;
877
  }
@@ -902,7 +920,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
902
  }
903
  }
904
  }
905
- if(!empty($this->stack_items)){
906
  $this->stack_items = array_diff($this->stack_items, $selected_items);
907
  if(empty($this->stack_items)){
908
  $this->clear_selected_items("gmedia_{$user_ID}_libstack");;
@@ -915,23 +933,23 @@ class GmediaProcessor_Library extends GmediaProcessor{
915
  } else{
916
  $this->error[] = __('You are not allowed to delete files', 'grand-media');
917
  }
918
- if(!empty($this->msg)){
919
  set_transient('gmedia_action_msg', $this->msg, 30);
920
  }
921
- if(!empty($this->error)){
922
  set_transient('gmedia_action_error', $this->error, 30);
923
  }
924
  }
925
  if($do_gmedia){
926
  $_wpnonce = array();
927
- foreach ($_GET as $key => $value) {
928
- if (strpos($key, '_wpnonce') !== false) {
929
- $_wpnonce[$key] = $value;
930
  }
931
  }
932
  $remove_args = array_merge(array('do_gmedia', 'ids'), $_wpnonce);
933
- $location = remove_query_arg($remove_args);
934
- $location = add_query_arg('did_gmedia', $do_gmedia, $location);
935
  wp_redirect($location);
936
  exit;
937
  }
@@ -939,12 +957,12 @@ class GmediaProcessor_Library extends GmediaProcessor{
939
  $msg = get_transient('gmedia_action_msg');
940
  if($msg){
941
  delete_transient('gmedia_action_msg');
942
- $this->msg = (array)$msg;
943
  }
944
  $error = get_transient('gmedia_action_error');
945
  if($error){
946
  delete_transient('gmedia_action_error');
947
- $this->error = (array)$error;
948
  }
949
  }
950
  }
@@ -961,7 +979,7 @@ class GmediaProcessor_Library extends GmediaProcessor{
961
  }
962
 
963
  public function wpLink(){
964
- if(!class_exists('_WP_Editors', false)){
965
  require_once(ABSPATH . WPINC . '/class-wp-editor.php');
966
  }
967
  _WP_Editors::wp_link_dialog();
3
  /**
4
  * GmediaProcessor_Library
5
  */
6
+ class GmediaProcessor_Library extends GmediaProcessor {
7
 
8
  private static $me = null;
9
  public static $cookie_key = false;
79
  $args['status'] = $gmCore->_get('status');
80
  $args['page'] = $gmCore->_get('pager');
81
  $args['per_page'] = $gmCore->_get('per_page', $per_page);
82
+ $args['author__in'] = parent::filter_by_author($gmCore->_get('author__in', $gmCore->_get('author')));
83
  $args['alb'] = $gmCore->_get('alb');
84
  $args['album__in'] = $gmCore->_get('album__in');
85
  $args['album__not_in'] = $gmCore->_get('album__not_in');
86
  $args['tag_id'] = $gmCore->_get('tag_id');
87
  $args['tag__in'] = $gmCore->_get('tag__in');
88
+ $args['tag__and'] = $gmCore->_get('tag__and');
89
  $args['tag__not_in'] = $gmCore->_get('tag__not_in');
90
  $args['cat'] = $gmCore->_get('cat');
91
  $args['category__in'] = $gmCore->_get('category__in');
95
  $args['s'] = $gmCore->_get('s');
96
  $args['orderby'] = $gmCore->_get('orderby', $orderby);
97
  $args['order'] = $gmCore->_get('order', $order);
98
+ $args['terms_relation'] = $gmCore->_get('terms_relation');
99
+ $args['limit'] = $gmCore->_get('limit');
100
 
101
  if('duplicates' === $args['gmedia__in']){
102
  $duplicates = $gmDB->get_duplicates();
103
+ if( !empty($duplicates['duplicate_ids'])){
104
  $args['gmedia__in'] = $duplicates['duplicate_ids'];
105
  $args['orderby'] = 'gmedia__in';
106
 
146
  }
147
  }
148
 
149
+ if( !empty($query_args['author__in']) && $gmCore->caps['gmedia_show_others_media']){
150
  $authors_names = $query_args['author__in'];
151
  foreach($authors_names as $i => $id){
152
+ if((int) $id){
153
  $authors_names[ $i ] = get_the_author_meta('display_name', $id);
154
  }
155
  }
156
+ $this->filters['filter_author'] = array(
157
+ 'title' => __('Filter Author', 'grand-media'),
158
+ 'filter' => $authors_names
159
  );
160
  }
161
 
162
  $gmDB->gmedias_album_stuff($query_args);
163
+ if( !empty($query_args['album__in'])){
164
  if(isset($query_args['within_album'])){
165
  $filter_title = __('Exclude Album', 'grand-media');
166
  $albums_names = array();
167
+ if( !empty($query_args['with_album__not_in'])){
168
  $albums_names = $gmDB->get_terms('gmedia_album', array('fields' => 'names', 'global' => $args['author__in'], 'include' => $query_args['with_album__not_in']));
169
  }
170
  array_push($albums_names, __('Hide items without album', 'grand-media'));
172
  $filter_title = __('Filter Album', 'grand-media');
173
  $albums_names = $gmDB->get_terms('gmedia_album', array('fields' => 'names', 'global' => $args['author__in'], 'include' => $query_args['album__in']));
174
  }
175
+ if( !empty($albums_names)){
176
+ $this->filters['filter_albums'] = array(
177
+ 'title' => $filter_title,
178
+ 'filter' => $albums_names
179
  );
180
  }
181
  }
182
+ if( !empty($query_args['album__not_in'])){
183
  if(isset($query_args['without_album'])){
184
  $filter_title = __('Filter Album', 'grand-media');
185
  $albums_names = array();
186
+ if( !empty($query_args['with_album__in'])){
187
  $albums_names = $gmDB->get_terms('gmedia_album', array('fields' => 'names', 'global' => $args['author__in'], 'include' => $query_args['with_album__in']));
188
  }
189
  array_push($albums_names, __('Show items without album', 'grand-media'));
191
  $filter_title = __('Exclude Album', 'grand-media');
192
  $albums_names = $gmDB->get_terms('gmedia_album', array('fields' => 'names', 'global' => $args['author__in'], 'include' => $query_args['album__not_in']));
193
  }
194
+ if( !empty($albums_names)){
195
+ $this->filters['exclude_albums'] = array(
196
+ 'title' => $filter_title,
197
+ 'filter' => $albums_names
198
  );
199
  }
200
  }
201
 
202
  $gmDB->gmedias_category_stuff($query_args);
203
+ if( !empty($query_args['category__in'])){
204
  if(isset($query_args['within_category'])){
205
  $filter_title = __('Exclude Category', 'grand-media');
206
  $category_names = array();
207
+ if( !empty($query_args['with_category__not_in'])){
208
  $category_names = $gmDB->get_terms('gmedia_category', array('fields' => 'names', 'include' => $query_args['with_category__not_in']));
209
  }
210
  $category_names = array_push($category_names, __('Hide items without categories', 'grand-media'));
212
  $filter_title = __('Filter Category', 'grand-media');
213
  $category_names = $gmDB->get_terms('gmedia_category', array('fields' => 'names', 'include' => $query_args['category__in']));
214
  }
215
+ if( !empty($category_names)){
216
+ $this->filters['filter_categories'] = array(
217
+ 'title' => $filter_title,
218
+ 'filter' => $category_names
219
  );
220
  }
221
  }
222
+ if( !empty($query_args['category__not_in'])){
223
  if(isset($query_args['without_category'])){
224
  $filter_title = __('Filter Category', 'grand-media');
225
  $category_names = array();
226
+ if( !empty($query_args['with_category__in'])){
227
  $category_names = $gmDB->get_terms('gmedia_category', array('fields' => 'names', 'include' => $query_args['with_category__in']));
228
  }
229
  $category_names = array_push($category_names, __('Show items without categories', 'grand-media'));
231
  $filter_title = __('Exclude Category', 'grand-media');
232
  $category_names = $gmDB->get_terms('gmedia_category', array('fields' => 'names', 'include' => $query_args['category__not_in']));
233
  }
234
+ if( !empty($category_names)){
235
+ $this->filters['exclude_categories'] = array(
236
+ 'title' => $filter_title,
237
+ 'filter' => $category_names
238
  );
239
  }
240
  }
241
 
242
  $gmDB->gmedias_tag_stuff($query_args);
243
+ if( !empty($query_args['tag__in'])){
244
  $tag_names = $gmDB->get_terms('gmedia_tag', array('fields' => 'names', 'include' => $query_args['tag__in']));
245
+ if( !empty($tag_names)){
246
+ $this->filters['filter_tags'] = array(
247
+ 'title' => __('Filter Tag', 'grand-media'),
248
+ 'filter' => $tag_names
249
  );
250
  }
251
  }
252
+ if( !empty($query_args['tag__not_in'])){
253
  $tag_names = $gmDB->get_terms('gmedia_tag', array('fields' => 'names', 'include' => $query_args['tag__not_in']));
254
+ if( !empty($tag_names)){
255
+ $this->filters['exclude_tags'] = array(
256
+ 'title' => __('Exclude Tag', 'grand-media'),
257
+ 'filter' => $tag_names
258
  );
259
  }
260
  }
261
 
262
+ if( !empty($args['terms_relation'])){
263
+ $this->filters['terms_relation'] = array(
264
+ 'title' => __('Terms Relation', 'grand-media'),
265
+ 'filter' => array(strip_tags($args['terms_relation']))
266
+ );
267
+ }
268
+
269
  return $query_args;
270
  }
271
 
272
  protected function processor(){
273
  global $user_ID, $gmCore, $gmDB, $gmGallery;
274
 
275
+ if( !$gmCore->caps['gmedia_library']){
276
  wp_die(__('You are not allowed to be here', 'grand-media'));
277
  }
278
 
320
 
321
  if(isset($_POST['quick_gallery'])){
322
  check_admin_referer('gmedia_action', '_wpnonce_action');
323
+ do {
324
+ if( !$gmCore->caps['gmedia_gallery_manage']){
325
  $this->error[] = __('You are not allowed to manage galleries', 'grand-media');
326
  break;
327
  }
352
  $getModulePreset = $gmCore->getModulePreset($gallery['module']);
353
  $gallery['query'] = array_merge($gallery['query'], array('order' => 'ASC', 'orderby' => 'gmedia__in'));
354
 
355
+ $gallery_meta = array(
356
+ '_edited' => gmdate('Y-m-d H:i:s'),
357
+ '_query' => $gallery['query'],
358
+ '_module' => $getModulePreset['module'],
359
+ '_settings' => $getModulePreset['settings']
360
  );
361
  foreach($gallery_meta as $key => $value){
362
  $gmDB->update_metadata('gmedia_term', $term_id, $key, $value);
388
  }
389
  if(isset($_POST['filter_author'])){
390
  $authors = $gmCore->_post('author_ids');
391
+ $location = add_query_arg(array('author' => (int) $authors), $this->url);
392
  wp_redirect($location);
393
  exit;
394
  }
395
 
396
  $do_gmedia = $gmCore->_get('do_gmedia');
397
+ if( !empty($this->selected_items) || isset($_POST['cookie_key'])){
398
  if(isset($_POST['assign_album'])){
399
  check_admin_referer('gmedia_action', '_wpnonce_action');
400
  if($gmCore->caps['gmedia_terms']){
401
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
402
  $ids = $this->selected_items($cookie_key);
403
+ if( !$gmCore->caps['gmedia_edit_others_media']){
404
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
405
  if(count($selected_items) < count($ids)){
406
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
427
  }
428
  }
429
  }
430
+ if( !empty($term_ids)){
431
  global $wpdb;
432
 
433
  foreach($term_ids as $term_id => $item_ids){
461
  if($gmCore->caps['gmedia_terms']){
462
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
463
  $ids = $this->selected_items($cookie_key);
464
+ if( !$gmCore->caps['gmedia_edit_others_media']){
465
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
466
  if(count($selected_items) < count($ids)){
467
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
471
  }
472
  $term = $gmCore->_post('cat_names');
473
  $term = explode(',', $term);
474
+ if( !empty($term) && ($count = count($selected_items))){
475
  foreach($selected_items as $item){
476
  $result = $gmDB->set_gmedia_terms($item, $term, 'gmedia_category', $append = 1);
477
  if(is_wp_error($result)){
478
  $this->error[] = $result;
479
  $count --;
480
+ } elseif( !$result){
481
  $count --;
482
  }
483
  }
496
  if(($term = $gmCore->_post('category_id')) && $gmCore->caps['gmedia_terms']){
497
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
498
  $ids = $this->selected_items($cookie_key);
499
+ if( !$gmCore->caps['gmedia_edit_others_media']){
500
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
501
  if(count($selected_items) < count($ids)){
502
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
511
  if(is_wp_error($result)){
512
  $this->error[] = $result;
513
  $count --;
514
+ } elseif( !$result){
515
  $count --;
516
  }
517
  }
526
  }
527
  if(isset($_POST['add_tags'])){
528
  check_admin_referer('gmedia_action', '_wpnonce_action');
529
+ if( !$gmCore->caps['gmedia_terms']){
530
  $this->error[] = __('You are not allowed to assign terms', 'grand-media');
531
  } else{
532
  $term = $gmCore->_post('tag_names');
534
  if($term || $iptc_tags){
535
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
536
  $ids = $this->selected_items($cookie_key);
537
+ if( !$gmCore->caps['gmedia_edit_others_media']){
538
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
539
  if(count($selected_items) < count($ids)){
540
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
556
  if(is_wp_error($result)){
557
  $this->error[] = $result;
558
  $count --;
559
+ } elseif( !$result){
560
  $count --;
561
  }
562
  }
575
  if(($term = $gmCore->_post('tag_id')) && $gmCore->caps['gmedia_terms']){
576
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
577
  $ids = $this->selected_items($cookie_key);
578
+ if( !$gmCore->caps['gmedia_edit_others_media']){
579
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
580
  if(count($selected_items) < count($ids)){
581
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
590
  if(is_wp_error($result)){
591
  $this->error[] = $result;
592
  $count --;
593
+ } elseif( !$result){
594
  $count --;
595
  }
596
  }
608
  if($gmCore->caps['gmedia_edit_media']){
609
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
610
  $ids = $this->selected_items($cookie_key);
611
+ if( !$gmCore->caps['gmedia_edit_others_media']){
612
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
613
  if(count($selected_items) < count($ids)){
614
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
636
  }
637
  $i = 0;
638
  foreach($selected_items as $item){
639
+ $id = (int) $item;
640
+ $gmedia = $gmDB->get_gmedia($id, ARRAY_A);
641
+ if( !$gmedia){
642
  continue;
643
  }
644
+ $item_author = (int) $gmedia['author'];
645
 
646
  if('custom' == $b_filename && ($gmCore->caps['gmedia_delete_others_media'] || ($item_author == $user_ID))){
647
  $filename_custom = $gmCore->_post('batch_filename_custom');
648
+ if( !empty($filename_custom) && ('{filename}' !== $filename_custom)){
649
 
650
  $gmuid = pathinfo($gmedia['gmuid']);
651
 
686
  switch($b_title){
687
  case 'empty':
688
  $batch_data['title'] = '';
689
+ break;
690
  case 'filename':
691
  $title = pathinfo($gmedia['gmuid'], PATHINFO_FILENAME);
692
  $batch_data['title'] = str_replace('_', ' ', $title);
693
  if($gmGallery->options['name2title_capitalize']){
694
  $batch_data['title'] = $gmCore->mb_ucwords_utf8($batch_data['title']);
695
  }
696
+ break;
697
  case 'custom':
698
  $title_custom = $gmCore->_post('batch_title_custom');
699
  if(false !== $title_custom){
700
  $batch_data['title'] = $title_custom;
701
  }
702
+ break;
703
  }
704
  switch($b_description){
705
  case 'empty':
706
  $batch_data['description'] = '';
707
+ break;
708
  case 'metadata':
709
  $metatext = $gmCore->metadata_text($id);
710
  if($gmedia['description']){
711
  $gmedia['description'] .= "\n";
712
  }
713
  $batch_data['description'] = $gmedia['description'] . $metatext;
714
+ break;
715
  case 'custom':
716
  $description_custom = $gmCore->_post('batch_description_custom');
717
  if(false !== $description_custom){
724
  $batch_data['description'] = $description_custom . $gmedia['description'];
725
  }
726
  }
727
+ break;
728
  }
729
  switch($b_link){
730
  case 'empty':
731
  $batch_data['link'] = '';
732
+ break;
733
  case 'self':
734
  $fileinfo = $gmCore->fileinfo($gmedia['gmuid'], false);
735
  $fileurl = is_file($fileinfo['filepath_original'])? $fileinfo['fileurl_original'] : $fileinfo['fileurl'];
736
  $batch_data['link'] = $fileurl;
737
+ break;
738
  case 'custom':
739
  $link_custom = $gmCore->_post('batch_link_custom');
740
  if(false !== $link_custom){
741
  $batch_data['link'] = $link_custom;
742
  }
743
+ break;
744
  }
745
+ if( !empty($batch_data)){
746
  $batch_data['modified'] = current_time('mysql');
747
  $gmedia_data = array_merge($gmedia, $batch_data);
748
  $gmDB->insert_gmedia($gmedia_data);
768
  if($gmCore->caps['gmedia_terms']){
769
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
770
  $ids = $this->selected_items($cookie_key);
771
+ if( !$gmCore->caps['gmedia_edit_others_media']){
772
  $selected_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $ids));
773
  if(count($selected_items) < count($ids)){
774
  $this->error[] = __('You are not allowed to edit others media', 'grand-media');
799
  $count = count($selected_items);
800
  if($count){
801
  foreach($selected_items as $item){
802
+ $id = (int) $item;
803
  $media_metadata = $gmDB->generate_gmedia_metadata($id);
804
  $gmDB->update_metadata($meta_type = 'gmedia', $id, $meta_key = '_metadata', $media_metadata);
805
+ if( !empty($media_metadata['image_meta']['created_timestamp'])){
806
  $gmDB->update_metadata($meta_type = 'gmedia', $id, $meta_key = '_created_timestamp', $media_metadata['image_meta']['created_timestamp']);
807
  }
808
+ if( !empty($media_metadata['image_meta']['GPS'])){
809
  $gmDB->update_metadata($meta_type = 'gmedia', $id, $meta_key = '_gps', $media_metadata['image_meta']['GPS']);
810
  }
811
  }
826
  $selected_items = $this->selected_items($cookie_key);
827
  $count = count($selected_items);
828
  if($count){
829
+ if( !$gmCore->caps['gmedia_edit_others_media']){
830
  $edit_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'mime_type' => 'image', 'gmedia__in' => $selected_items));
831
  $selected_items = $edit_items;
832
  } else{
857
  $ids = $gmCore->_get('ids', 'selected');
858
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
859
  $selected_items = ('selected' == $ids)? $this->selected_items($cookie_key) : wp_parse_id_list($ids);
860
+ if( !empty($selected_items)){
861
  if(($count = count($selected_items))){
862
  foreach($selected_items as $gmid){
863
  $gmCore->duplicate_gmedia($gmid);
878
  $ids = $gmCore->_get('ids', 'selected');
879
  $cookie_key = $gmCore->_post('cookie_key', self::$cookie_key);
880
  $selected_items = ('selected' == $ids)? $this->selected_items($cookie_key) : wp_parse_id_list($ids);
881
+ if( !empty($selected_items)){
882
+ if( !$gmCore->caps['gmedia_delete_others_media']){
883
  $delete_items = $gmDB->get_gmedias(array('fields' => 'ids', 'author' => $user_ID, 'gmedia__in' => $selected_items));
884
  if(count($delete_items) < count($selected_items)){
885
  $this->error[] = __('You are not allowed to delete others media', 'grand-media');
889
  if(($count = count($selected_items))){
890
  $delete_original_file = !('delete__save_original' == $do_gmedia);
891
  foreach($selected_items as $item){
892
+ if( !$gmDB->delete_gmedia((int) $item, $delete_original_file)){
893
  $this->error[] = "#{$item}: " . __('Error in deleting...', 'grand-media');
894
  $count --;
895
  }
920
  }
921
  }
922
  }
923
+ if( !empty($this->stack_items)){
924
  $this->stack_items = array_diff($this->stack_items, $selected_items);
925
  if(empty($this->stack_items)){
926
  $this->clear_selected_items("gmedia_{$user_ID}_libstack");;
933
  } else{
934
  $this->error[] = __('You are not allowed to delete files', 'grand-media');
935
  }
936
+ if( !empty($this->msg)){
937
  set_transient('gmedia_action_msg', $this->msg, 30);
938
  }
939
+ if( !empty($this->error)){
940
  set_transient('gmedia_action_error', $this->error, 30);
941
  }
942
  }
943
  if($do_gmedia){
944
  $_wpnonce = array();
945
+ foreach($_GET as $key => $value){
946
+ if(strpos($key, '_wpnonce') !== false){
947
+ $_wpnonce[ $key ] = $value;
948
  }
949
  }
950
  $remove_args = array_merge(array('do_gmedia', 'ids'), $_wpnonce);
951
+ $location = remove_query_arg($remove_args);
952
+ $location = add_query_arg('did_gmedia', $do_gmedia, $location);
953
  wp_redirect($location);
954
  exit;
955
  }
957
  $msg = get_transient('gmedia_action_msg');
958
  if($msg){
959
  delete_transient('gmedia_action_msg');
960
+ $this->msg = (array) $msg;
961
  }
962
  $error = get_transient('gmedia_action_error');
963
  if($error){
964
  delete_transient('gmedia_action_error');
965
+ $this->error = (array) $error;
966
  }
967
  }
968
  }
979
  }
980
 
981
  public function wpLink(){
982
+ if( !class_exists('_WP_Editors', false)){
983
  require_once(ABSPATH . WPINC . '/class-wp-editor.php');
984
  }
985
  _WP_Editors::wp_link_dialog();
app/access.php CHANGED
@@ -288,6 +288,19 @@ function gmedia_ios_app_library_data($data = array('site', 'authors', 'filter',
288
  gmedia_ios_app_term_data_extend($gmediaTerms[ $i ], $share_link_base, $logic, $cap);
289
  }
290
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  $out['categories']['data'] = array_values($gmediaTerms);
292
  }
293
  }
@@ -331,6 +344,19 @@ function gmedia_ios_app_library_data($data = array('site', 'authors', 'filter',
331
  gmedia_ios_app_term_data_extend($gmediaTerms[ $i ], $share_link_base, $logic, $cap);
332
  }
333
  $gmediaTerms = array_filter($gmediaTerms);
 
 
 
 
 
 
 
 
 
 
 
 
 
334
  $props['items_count'] = count($gmediaTerms);
335
 
336
  $out['albums'] = array('cap' => $cap,
288
  gmedia_ios_app_term_data_extend($gmediaTerms[ $i ], $share_link_base, $logic, $cap);
289
  }
290
 
291
+ if(!empty($_args['include'])){
292
+ $_gmediaTerms = array();
293
+ foreach($gmediaTerms as $term){
294
+ $_gmediaTerms["{$term->term_id}"] = $term;
295
+ }
296
+ $include = (array) $_args['include'];
297
+ $gmediaTerms = array();
298
+ foreach($include as $tid){
299
+ if(isset($_gmediaTerms["{$tid}"])){
300
+ $gmediaTerms[] = $_gmediaTerms["{$tid}"];
301
+ }
302
+ }
303
+ }
304
  $out['categories']['data'] = array_values($gmediaTerms);
305
  }
306
  }
344
  gmedia_ios_app_term_data_extend($gmediaTerms[ $i ], $share_link_base, $logic, $cap);
345
  }
346
  $gmediaTerms = array_filter($gmediaTerms);
347
+ if(!empty($_args['include'])){
348
+ $_gmediaTerms = array();
349
+ foreach($gmediaTerms as $term){
350
+ $_gmediaTerms["{$term->term_id}"] = $term;
351
+ }
352
+ $include = (array) $_args['include'];
353
+ $gmediaTerms = array();
354
+ foreach($include as $tid){
355
+ if(isset($_gmediaTerms["{$tid}"])){
356
+ $gmediaTerms[] = $_gmediaTerms["{$tid}"];
357
+ }
358
+ }
359
+ }
360
  $props['items_count'] = count($gmediaTerms);
361
 
362
  $out['albums'] = array('cap' => $cap,
config/setup.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php // don't load directly
2
- if(!defined('ABSPATH')){
3
  die('-1');
4
  }
5
 
@@ -35,11 +35,11 @@ function gmedia_default_options(){
35
  $gm['gmedia_gallery_has_archive'] = '0';
36
  $gm['gmedia_gallery_exclude_from_search'] = '0';
37
 
38
- $gm['wp_term_related_gmedia'] = '1';
39
  $gm['wp_post_related_gmedia'] = '0';
40
 
41
- $gm['wp_author_related_gmedia'] = '0';
42
- $gm['wp_author_related_gmedia_album'] = '1';
43
  $gm['wp_author_related_gmedia_gallery'] = '0';
44
 
45
  $gm['preview_bgcolor'] = 'ffffff';
@@ -59,7 +59,7 @@ function gmedia_default_options(){
59
  $gm['in_album_status'] = 'publish';
60
  $gm['default_gmedia_module'] = 'phantom';
61
 
62
- $gm['isolation_mode'] = '1';
63
  $gm['shortcode_raw'] = '0';
64
  $gm['debug_mode'] = '';
65
 
@@ -70,6 +70,9 @@ function gmedia_default_options(){
70
 
71
  $gm['gmedia_post_types_support'] = '';
72
 
 
 
 
73
  $gm['folder']['image'] = 'image';
74
  $gm['folder']['image_thumb'] = 'image/thumb';
75
  $gm['folder']['image_original'] = 'image/original';
@@ -169,7 +172,7 @@ function gmedia_install(){
169
  global $wpdb, $gmGallery, $gmCore;
170
 
171
  // Check for capability
172
- if(!current_user_can('activate_plugins')){
173
  return;
174
  }
175
 
@@ -182,10 +185,10 @@ function gmedia_install(){
182
  $charset_collate = '';
183
 
184
  if($wpdb->has_cap('collation')){
185
- if(!empty($wpdb->charset)){
186
  $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
187
  }
188
- if(!empty($wpdb->collate)){
189
  $charset_collate .= " COLLATE $wpdb->collate";
190
  }
191
  }
@@ -286,7 +289,7 @@ function gmedia_install(){
286
  return;
287
  }
288
 
289
- if(!get_option('GmediaHashID_salt')){
290
  $ustr = wp_generate_password(12, false);
291
  add_option('GmediaHashID_salt', $ustr);
292
  }
@@ -295,7 +298,7 @@ function gmedia_install(){
295
  if(empty($gmGallery->options)){
296
  $gmGallery->options = gmedia_default_options();
297
  // Set installation date
298
- if(!get_option('gmediaInstallDate')){
299
  $installDate = time();
300
  add_option('gmediaInstallDate', $installDate);
301
  }
@@ -332,7 +335,7 @@ function gmedia_deactivate(){
332
  wp_clear_scheduled_hook('gmedia_app_cronjob');
333
 
334
  $options = get_option('gmediaOptions');
335
- if((int)$options['mobile_app']){
336
  $gmCore->app_service('app_deactivateplugin');
337
  }
338
 
1
  <?php // don't load directly
2
+ if( !defined('ABSPATH')){
3
  die('-1');
4
  }
5
 
35
  $gm['gmedia_gallery_has_archive'] = '0';
36
  $gm['gmedia_gallery_exclude_from_search'] = '0';
37
 
38
+ $gm['wp_term_related_gmedia'] = '0';
39
  $gm['wp_post_related_gmedia'] = '0';
40
 
41
+ $gm['wp_author_related_gmedia'] = '0';
42
+ $gm['wp_author_related_gmedia_album'] = '1';
43
  $gm['wp_author_related_gmedia_gallery'] = '0';
44
 
45
  $gm['preview_bgcolor'] = 'ffffff';
59
  $gm['in_album_status'] = 'publish';
60
  $gm['default_gmedia_module'] = 'phantom';
61
 
62
+ $gm['isolation_mode'] = '0';
63
  $gm['shortcode_raw'] = '0';
64
  $gm['debug_mode'] = '';
65
 
70
 
71
  $gm['gmedia_post_types_support'] = '';
72
 
73
+ $gm['feedback'] = '1';
74
+ $gm['twitter'] = '1';
75
+
76
  $gm['folder']['image'] = 'image';
77
  $gm['folder']['image_thumb'] = 'image/thumb';
78
  $gm['folder']['image_original'] = 'image/original';
172
  global $wpdb, $gmGallery, $gmCore;
173
 
174
  // Check for capability
175
+ if( !current_user_can('activate_plugins')){
176
  return;
177
  }
178
 
185
  $charset_collate = '';
186
 
187
  if($wpdb->has_cap('collation')){
188
+ if( !empty($wpdb->charset)){
189
  $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
190
  }
191
+ if( !empty($wpdb->collate)){
192
  $charset_collate .= " COLLATE $wpdb->collate";
193
  }
194
  }
289
  return;
290
  }
291
 
292
+ if( !get_option('GmediaHashID_salt')){
293
  $ustr = wp_generate_password(12, false);
294
  add_option('GmediaHashID_salt', $ustr);
295
  }
298
  if(empty($gmGallery->options)){
299
  $gmGallery->options = gmedia_default_options();
300
  // Set installation date
301
+ if( !get_option('gmediaInstallDate')){
302
  $installDate = time();
303
  add_option('gmediaInstallDate', $installDate);
304
  }
335
  wp_clear_scheduled_hook('gmedia_app_cronjob');
336
 
337
  $options = get_option('gmediaOptions');
338
+ if((int) $options['mobile_app']){
339
  $gmCore->app_service('app_deactivateplugin');
340
  }
341
 
grand-media.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Gmedia Gallery
4
  * Plugin URI: http://wordpress.org/extend/plugins/grand-media/
5
  * Description: Gmedia Gallery - powerful media library plugin for creating beautiful galleries and managing files.
6
- * Version: 1.9.16
7
  * Author: Rattus
8
  * Author URI: http://codeasily.com/
9
  * Requires at least: 3.7
@@ -42,7 +42,7 @@ if(!class_exists('Gmedia')){
42
  */
43
  class Gmedia{
44
 
45
- var $version = '1.9.16';
46
  var $dbversion = '1.8.0';
47
  var $minium_WP = '3.7';
48
  var $options = '';
3
  * Plugin Name: Gmedia Gallery
4
  * Plugin URI: http://wordpress.org/extend/plugins/grand-media/
5
  * Description: Gmedia Gallery - powerful media library plugin for creating beautiful galleries and managing files.
6
+ * Version: 1.9.20
7
  * Author: Rattus
8
  * Author URI: http://codeasily.com/
9
  * Requires at least: 3.7
42
  */
43
  class Gmedia{
44
 
45
+ var $version = '1.9.20';
46
  var $dbversion = '1.8.0';
47
  var $minium_WP = '3.7';
48
  var $options = '';
inc/core.php CHANGED
@@ -300,7 +300,7 @@ class GmediaCore{
300
  'web' => "{$this->upload['url']}/{$gmGallery->options['folder']['image']}/{$item->gmuid}",
301
  'original' => "{$this->upload['url']}/{$gmGallery->options['folder']['image_original']}/{$item->gmuid}"
302
  );
303
- if('all' == $size || 'thumb' == $size){
304
  $thumb_path = "{$this->upload['path']}/{$gmGallery->options['folder']['image_thumb']}/{$item->gmuid}";
305
  if( !is_file($thumb_path)){
306
  $img_cover = true;
@@ -321,7 +321,8 @@ class GmediaCore{
321
  $image = "{$this->gmedia_url}/admin/assets/img/{$type}.png";
322
  $images = array('thumb' => $image,
323
  'web' => $image,
324
- 'original' => $image
 
325
  );
326
 
327
  if($cover){
@@ -3494,9 +3495,11 @@ class GmediaCore{
3494
  if((int)$like == 1){
3495
  $meta['likes'] += 1;
3496
  $gmDB->update_metadata('gmedia', $gmID, 'likes', $meta['likes']);
 
3497
  } else{
3498
  $meta['views'] += 1;
3499
  $gmDB->update_metadata('gmedia', $gmID, 'views', $meta['views']);
 
3500
  }
3501
 
3502
  return $meta;
300
  'web' => "{$this->upload['url']}/{$gmGallery->options['folder']['image']}/{$item->gmuid}",
301
  'original' => "{$this->upload['url']}/{$gmGallery->options['folder']['image_original']}/{$item->gmuid}"
302
  );
303
+ if('original' !== $size){
304
  $thumb_path = "{$this->upload['path']}/{$gmGallery->options['folder']['image_thumb']}/{$item->gmuid}";
305
  if( !is_file($thumb_path)){
306
  $img_cover = true;
321
  $image = "{$this->gmedia_url}/admin/assets/img/{$type}.png";
322
  $images = array('thumb' => $image,
323
  'web' => $image,
324
+ 'original' => $image,
325
+ 'icon' => false
326
  );
327
 
328
  if($cover){
3495
  if((int)$like == 1){
3496
  $meta['likes'] += 1;
3497
  $gmDB->update_metadata('gmedia', $gmID, 'likes', $meta['likes']);
3498
+ do_action('gmedia_like', $gmID);
3499
  } else{
3500
  $meta['views'] += 1;
3501
  $gmDB->update_metadata('gmedia', $gmID, 'views', $meta['views']);
3502
+ do_action('gmedia_view', $gmID);
3503
  }
3504
 
3505
  return $meta;
inc/functions.php CHANGED
@@ -103,14 +103,16 @@ function gmedia_item_more_data(&$item){
103
 
104
  $type = explode('/', $item->mime_type);
105
  $item->type = $type[0];
106
- $item->ext = pathinfo($item->gmuid, PATHINFO_EXTENSION);
107
 
108
  $item->url = $gmCore->upload['url'] . '/' . $gmGallery->options['folder'][ $type[0] ] . '/' . $item->gmuid;
109
  $item->path = $gmCore->upload['path'] . '/' . $gmGallery->options['folder'][ $type[0] ] . '/' . $item->gmuid;
110
 
111
  $item->editor = (('image' == $item->type) && in_array($type[1], array('jpeg', 'png', 'gif')))? true : false;
112
  $item->gps = '';
113
- if('image' == $item->type){
 
 
114
  $item->path_thumb = $gmCore->upload['path'] . '/' . $gmGallery->options['folder']['image_thumb'] . '/' . $item->gmuid;
115
  $item->path_web = $gmCore->upload['path'] . '/' . $gmGallery->options['folder']['image'] . '/' . $item->gmuid;
116
  $item->path_original = $gmCore->upload['path'] . '/' . $gmGallery->options['folder']['image_original'] . '/' . $item->gmuid;
@@ -125,10 +127,10 @@ function gmedia_item_more_data(&$item){
125
  $item->gps = implode(', ', $metadata['image_meta']['GPS']);
126
  }
127
  } else{
128
- $cover = $gmCore->gm_get_media_image($item, 'all');
129
  $item->url_thumb = $cover['thumb'];
130
  $item->url_web = $cover['web'];
131
  $item->url_original = $cover['original'];
 
132
  }
133
 
134
  $item->alttext = !empty($meta['_image_alt'][0])? $meta['_image_alt'][0] : $item->title;
103
 
104
  $type = explode('/', $item->mime_type);
105
  $item->type = $type[0];
106
+ $item->ext = strtolower(pathinfo($item->gmuid, PATHINFO_EXTENSION));
107
 
108
  $item->url = $gmCore->upload['url'] . '/' . $gmGallery->options['folder'][ $type[0] ] . '/' . $item->gmuid;
109
  $item->path = $gmCore->upload['path'] . '/' . $gmGallery->options['folder'][ $type[0] ] . '/' . $item->gmuid;
110
 
111
  $item->editor = (('image' == $item->type) && in_array($type[1], array('jpeg', 'png', 'gif')))? true : false;
112
  $item->gps = '';
113
+
114
+ $cover = $gmCore->gm_get_media_image($item, 'all');
115
+ if('image' == $item->type && !isset($cover['icon'])){
116
  $item->path_thumb = $gmCore->upload['path'] . '/' . $gmGallery->options['folder']['image_thumb'] . '/' . $item->gmuid;
117
  $item->path_web = $gmCore->upload['path'] . '/' . $gmGallery->options['folder']['image'] . '/' . $item->gmuid;
118
  $item->path_original = $gmCore->upload['path'] . '/' . $gmGallery->options['folder']['image_original'] . '/' . $item->gmuid;
127
  $item->gps = implode(', ', $metadata['image_meta']['GPS']);
128
  }
129
  } else{
 
130
  $item->url_thumb = $cover['thumb'];
131
  $item->url_web = $cover['web'];
132
  $item->url_original = $cover['original'];
133
+ $item->url_icon = $cover['icon'];
134
  }
135
 
136
  $item->alttext = !empty($meta['_image_alt'][0])? $meta['_image_alt'][0] : $item->title;
module/afflux/index.php CHANGED
@@ -5,7 +5,7 @@ $module_info = array(
5
  'title' => 'Afflux',
6
  'version' => '3.9',
7
  'author' => 'CodEasily.com',
8
- 'description' => 'A Free Gallery Skin that supports thumbnails size change, color change, captions and autoplay. Responsive and mobile friendly gallery.',
9
  'type' => 'gallery',
10
  'status' => 'free',
11
  'price' => '0',
5
  'title' => 'Afflux',
6
  'version' => '3.9',
7
  'author' => 'CodEasily.com',
8
+ 'description' => __('A Free Gallery Skin that supports thumbnails size change, color change, captions and autoplay. Responsive and mobile friendly gallery.', 'grand-media'),
9
  'type' => 'gallery',
10
  'status' => 'free',
11
  'price' => '0',
module/afflux/settings.php CHANGED
@@ -1 +1 @@
1
- <?php
2
  'maxwidth' => '0',
3
  'lockheight' => '1',
4
  'height' => '500',
5
  'maxheight' => '0',
6
  'imageZoom' => 'FILL',
7
  'autoSlideshow' => '1',
8
  'slideshowDelay' => '10',
9
  'thumbHeight' => '100',
10
  'descrVisOnMouseover' => '1',
11
  'wmode' => 'opaque',
12
  'bgColor' => 'ffffff',
13
  'imagesBgColor' => '000000',
14
  'barsBgColor' => '000000',
15
  'catButtonColor' => '75c30f',
16
  'catButtonColorHover' => 'ffffff',
17
  'scrollBarTrackColor' => '75c30f',
18
  'scrollBarButtonColor' => 'f1f1f1',
19
  'thumbBgColor' => 'ffffff',
20
  'thumbLoaderColor' => '75c30f',
21
  'imageTitleColor' => '75c30f',
22
  'imageTitleFontSize' => '14',
23
  'imageDescrColor' => 'ffffff',
24
  'imageDescrFontSize' => '12',
25
  'imageDescrBgColor' => '000000',
26
  'imageDescrBgAlpha' => '85',
27
  'customCSS' => ''
28
  array(
29
  'label' => 'Common Settings',
30
  'fields' => array(
31
  'maxwidth' => array(
32
  'label' => 'Max-Width',
33
  'tag' => 'input',
34
  'attr' => 'type="number" min="0"',
35
  'text' => 'By default gallery width always 100%. Set the maximum width of the gallery (in pixels). Leave 0 to disable max-width.'
36
  ),
37
  'lockheight' => array(
38
  'label' => 'Set height manually',
39
  'tag' => 'checkbox',
40
  'attr' => 'data-watch="change"',
41
  'text' => 'By default a gallery automatically calculates own height to best fit the tallest image in a gallery.'
42
  ),
43
  'height' => array(
44
  'label' => 'Height',
45
  'tag' => 'input',
46
  'attr' => 'type="text" min="0" data-lockheight="is:1"',
47
  'text' => 'Set height of the gallery. Do not set % unless you know what you doing.'
48
  ),
49
  'maxheight' => array(
50
  'label' => 'Max-Height',
51
  'tag' => 'input',
52
  'attr' => 'type="number" min="0" data-lockheight="is:0"',
53
  'text' => 'Set the maximum height of the gallery. Leave 0 to disable max-height.'
54
  ),
55
  'imageZoom' => array(
56
  'label' => 'Image Zoom',
57
  'tag' => 'select',
58
  'attr' => '',
59
  'text' => 'Default value: Fill.',
60
  'choices' => array(
61
  array(
62
  'label' => 'Fill',
63
  'value' => 'FILL'
64
  ),
65
  array(
66
  'label' => 'Fit',
67
  'value' => 'FIT'
68
  )
69
  )
70
  ),
71
  'autoSlideshow' => array(
72
  'label' => 'Automatic Slideshow (On/Off)',
73
  'tag' => 'checkbox',
74
  'attr' => '',
75
  'text' => ''
76
  ),
77
  'slideshowDelay' => array(
78
  'label' => 'Slideshow Delay',
79
  'tag' => 'input',
80
  'attr' => 'type="number" min="1" max="60"',
81
  'text' => 'Set delay between slides in seconds'
82
  ),
83
  'thumbHeight' => array(
84
  'label' => 'Thumbnails Height',
85
  'tag' => 'input',
86
  'attr' => 'type="number" min="0" max="300"',
87
  'text' => 'Set bottom thumbnails row height in pixels'
88
  ),
89
  'descrVisOnMouseover' => array(
90
  'label' => 'Show Description',
91
  'tag' => 'checkbox',
92
  'attr' => '',
93
  'text' => 'Show image description on mouseover'
94
  )
95
  /*,
96
  'hitcounter' => array(
97
  'label' => 'Count Image Views',
98
  'tag' => 'checkbox',
99
  'attr' => '',
100
  'text' => ''
101
  )*/
102
  )
103
  ),
104
  array(
105
  'label' => 'Colors and Fonts',
106
  'fields' => array(
107
  'wmode' => array(
108
  'label' => 'Wmode for flash object',
109
  'tag' => 'select',
110
  'attr' => 'data-watch="change"',
111
  'text' => 'Default value: Opaque. If \'transparent\' - "Background Color" option is ignored, but you can position the absolute elements over the flash',
112
  'choices' => array(
113
  array(
114
  'label' => 'Opaque',
115
  'value' => 'opaque'
116
  ),
117
  array(
118
  'label' => 'Window',
119
  'value' => 'window'
120
  ),
121
  array(
122
  'label' => 'Transparent',
123
  'value' => 'transparent'
124
  )
125
  )
126
  ),
127
  'bgColor' => array(
128
  'label' => 'Background Color',
129
  'tag' => 'input',
130
  'attr' => 'type="text" data-type="color" data-wmode="not:transparent"',
131
  'text' => 'Set gallery background color'
132
  ),
133
  'imagesBgColor' => array(
134
  'label' => 'Images Background Color',
135
  'tag' => 'input',
136
  'attr' => 'type="text" data-type="color"',
137
  'text' => 'Set loading images background color'
138
  ),
139
  'barsBgColor' => array(
140
  'label' => 'Bars Background Color',
141
  'tag' => 'input',
142
  'attr' => 'type="text" data-type="color"',
143
  'text' => 'Background color for Menu bar, Thumbnails bar and Scroll bar'
144
  ),
145
  'catButtonColor' => array(
146
  'label' => 'Menu Bar Buttons Color',
147
  'tag' => 'input',
148
  'attr' => 'type="text" data-type="color"',
149
  'text' => ''
150
  ),
151
  'catButtonColorHover' => array(
152
  'label' => 'Menu Bar Buttons Color on Mouseover',
153
  'tag' => 'input',
154
  'attr' => 'type="text" data-type="color"',
155
  'text' => ''
156
  ),
157
  'scrollBarTrackColor' => array(
158
  'label' => 'Scroll Bar Track Color',
159
  'tag' => 'input',
160
  'attr' => 'type="text" data-type="color"',
161
  'text' => ''
162
  ),
163
  'scrollBarButtonColor' => array(
164
  'label' => 'Scroll Bar Button Color',
165
  'tag' => 'input',
166
  'attr' => 'type="text" data-type="color"',
167
  'text' => ''
168
  ),
169
  'thumbBgColor' => array(
170
  'label' => 'Thumbnail BG Color',
171
  'tag' => 'input',
172
  'attr' => 'type="text" data-type="color"',
173
  'text' => 'Background of the thumbnail placeholder while thumbnail is loading'
174
  ),
175
  'thumbLoaderColor' => array(
176
  'label' => 'Thumbnail Loader Color',
177
  'tag' => 'input',
178
  'attr' => 'type="text" data-type="color"',
179
  'text' => ''
180
  ),
181
  'imageTitleColor' => array(
182
  'label' => 'Image Title Color',
183
  'tag' => 'input',
184
  'attr' => 'type="text" data-type="color"',
185
  'text' => 'Color for image title text'
186
  ),
187
  'imageTitleFontSize' => array(
188
  'label' => 'Image Title Font Size',
189
  'tag' => 'input',
190
  'attr' => 'type="number" min="10" max="30"',
191
  'text' => ''
192
  ),
193
  'imageDescrColor' => array(
194
  'label' => 'Image Description Color',
195
  'tag' => 'input',
196
  'attr' => 'type="text" data-type="color"',
197
  'text' => 'Color for image description text'
198
  ),
199
  'imageDescrFontSize' => array(
200
  'label' => 'Image Description Font Size',
201
  'tag' => 'input',
202
  'attr' => 'type="number" min="10" max="30"',
203
  'text' => ''
204
  ),
205
  'imageDescrBgColor' => array(
206
  'label' => 'Image Description BG Color',
207
  'tag' => 'input',
208
  'attr' => 'type="text" data-type="color"',
209
  'text' => 'Background color for the description pane that appears on mouseover'
210
  ),
211
  'imageDescrBgAlpha' => array(
212
  'label' => 'Image Description Background Alpha',
213
  'tag' => 'input',
214
  'attr' => 'type="number" min="0" max="100" step="5"',
215
  'text' => 'Opacity of the description pane background'
216
  )
217
  /*,
218
  'backButtonTextColor' => array(
219
  'label' => 'Back Button Text Color',
220
  'tag' => 'input',
221
  'attr' => 'type="text" data-type="color"',
222
  'text' => '(only for Full Window template). Default: ffffff'
223
  ),
224
  'backButtonBgColor' => array(
225
  'label' => 'Back Button Background Color',
226
  'tag' => 'input',
227
  'attr' => 'type="text" data-type="color"',
228
  'desc' => '(only for Full Window template). Default: 000000'
229
  )*/
230
  )
231
  ),
232
  array(
233
  'label' => 'Advanced Settings',
234
  'fields' => array(
235
  'customCSS' => array(
236
  'label' => 'Custom CSS',
237
  'tag' => 'textarea',
238
  'attr' => 'cols="20" rows="10"',
239
  'text' => 'You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles'
240
  )
241
  /*,
242
  'loveLink' => array(
243
  'label' => 'Display LoveLink?',
244
  'tag' => 'checkbox',
245
  'attr' => '',
246
  'text' => 'Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery'
247
  )*/
248
  )
249
  )
 
250
  'maxwidth' => '0',
251
  'lockheight' => '1',
252
  'height' => '500',
253
  'maxheight' => '0',
254
  'imageZoom' => 'FILL',
255
  'autoSlideshow' => '1',
256
  'slideshowDelay' => '10',
257
  'thumbHeight' => '100',
258
  'descrVisOnMouseover' => '1',
259
  'wmode' => 'opaque',
260
  'bgColor' => 'ffffff',
261
  'imagesBgColor' => '000000',
262
  'barsBgColor' => '000000',
263
  'catButtonColor' => '75c30f',
264
  'catButtonColorHover' => 'ffffff',
265
  'scrollBarTrackColor' => '75c30f',
266
  'scrollBarButtonColor' => 'f1f1f1',
267
  'thumbBgColor' => 'ffffff',
268
  'thumbLoaderColor' => '75c30f',
269
  'imageTitleColor' => '75c30f',
270
  'imageTitleFontSize' => '14',
271
  'imageDescrColor' => 'ffffff',
272
  'imageDescrFontSize' => '12',
273
  'imageDescrBgColor' => '000000',
274
  'imageDescrBgAlpha' => '85',
275
  'customCSS' => ''
276
  array(
277
  'label' => __('Common Settings', 'grand-media'),
278
  'fields' => array(
279
  'maxwidth' => array(
280
  'label' => __('Max-Width', 'grand-media'),
281
  'tag' => 'input',
282
  'attr' => 'type="number" min="0"',
283
  'text' => __('By default gallery width always 100%. Set the maximum width of the gallery (in pixels). Leave 0 to disable max-width.', 'grand-media')
284
  ),
285
  'lockheight' => array(
286
  'label' => __('Set height manually', 'grand-media'),
287
  'tag' => 'checkbox',
288
  'attr' => 'data-watch="change"',
289
  'text' => __('By default a gallery automatically calculates own height to best fit the tallest image in a gallery.', 'grand-media')
290
  ),
291
  'height' => array(
292
  'label' => __('Height', 'grand-media'),
293
  'tag' => 'input',
294
  'attr' => 'type="text" min="0" data-lockheight="is:1"',
295
  'text' => __('Set height of the gallery. Do not set % unless you know what you doing.', 'grand-media')
296
  ),
297
  'maxheight' => array(
298
  'label' => __('Max-Height', 'grand-media'),
299
  'tag' => 'input',
300
  'attr' => 'type="number" min="0" data-lockheight="is:0"',
301
  'text' => __('Set the maximum height of the gallery. Leave 0 to disable max-height.', 'grand-media')
302
  ),
303
  'imageZoom' => array(
304
  'label' => __('Image Zoom', 'grand-media'),
305
  'tag' => 'select',
306
  'attr' => '',
307
  'text' => __('Default value: Fill.', 'grand-media'),
308
  'choices' => array(
309
  array(
310
  'label' => __('Fill', 'grand-media'),
311
  'value' => 'FILL'
312
  ),
313
  array(
314
  'label' => __('Fit', 'grand-media'),
315
  'value' => 'FIT'
316
  )
317
  )
318
  ),
319
  'autoSlideshow' => array(
320
  'label' => __('Automatic Slideshow (On/Off)', 'grand-media'),
321
  'tag' => 'checkbox',
322
  'attr' => '',
323
  'text' => ''
324
  ),
325
  'slideshowDelay' => array(
326
  'label' => __('Slideshow Delay', 'grand-media'),
327
  'tag' => 'input',
328
  'attr' => 'type="number" min="1" max="60"',
329
  'text' => __('Set delay between slides in seconds', 'grand-media')
330
  ),
331
  'thumbHeight' => array(
332
  'label' => __('Thumbnails Height', 'grand-media'),
333
  'tag' => 'input',
334
  'attr' => 'type="number" min="0" max="300"',
335
  'text' => __('Set bottom thumbnails row height in pixels', 'grand-media')
336
  ),
337
  'descrVisOnMouseover' => array(
338
  'label' => __('Show Description', 'grand-media'),
339
  'tag' => 'checkbox',
340
  'attr' => '',
341
  'text' => __('Show image description on mouseover', 'grand-media')
342
  )
343
  /*,
344
  'hitcounter' => array(
345
  'label' => __('Count Image Views', 'grand-media'),
346
  'tag' => 'checkbox',
347
  'attr' => '',
348
  'text' => ''
349
  )*/
350
  )
351
  ),
352
  array(
353
  'label' => __('Colors and Fonts', 'grand-media'),
354
  'fields' => array(
355
  'wmode' => array(
356
  'label' => __('Wmode for flash object', 'grand-media'),
357
  'tag' => 'select',
358
  'attr' => 'data-watch="change"',
359
  'text' => __('Default value: Opaque. If \'transparent\' - "Background Color" option is ignored, but you can position the absolute elements over the flash', 'grand-media'),
360
  'choices' => array(
361
  array(
362
  'label' => __('Opaque', 'grand-media'),
363
  'value' => 'opaque'
364
  ),
365
  array(
366
  'label' => __('Window', 'grand-media'),
367
  'value' => 'window'
368
  ),
369
  array(
370
  'label' => __('Transparent', 'grand-media'),
371
  'value' => 'transparent'
372
  )
373
  )
374
  ),
375
  'bgColor' => array(
376
  'label' => __('Background Color', 'grand-media'),
377
  'tag' => 'input',
378
  'attr' => 'type="text" data-type="color" data-wmode="not:transparent"',
379
  'text' => __('Set gallery background color', 'grand-media')
380
  ),
381
  'imagesBgColor' => array(
382
  'label' => __('Images Background Color', 'grand-media'),
383
  'tag' => 'input',
384
  'attr' => 'type="text" data-type="color"',
385
  'text' => __('Set loading images background color', 'grand-media')
386
  ),
387
  'barsBgColor' => array(
388
  'label' => __('Bars Background Color', 'grand-media'),
389
  'tag' => 'input',
390
  'attr' => 'type="text" data-type="color"',
391
  'text' => __('Background color for Menu bar, Thumbnails bar and Scroll bar', 'grand-media')
392
  ),
393
  'catButtonColor' => array(
394
  'label' => __('Menu Bar Buttons Color', 'grand-media'),
395
  'tag' => 'input',
396
  'attr' => 'type="text" data-type="color"',
397
  'text' => ''
398
  ),
399
  'catButtonColorHover' => array(
400
  'label' => __('Menu Bar Buttons Color on Mouseover', 'grand-media'),
401
  'tag' => 'input',
402
  'attr' => 'type="text" data-type="color"',
403
  'text' => ''
404
  ),
405
  'scrollBarTrackColor' => array(
406
  'label' => __('Scroll Bar Track Color', 'grand-media'),
407
  'tag' => 'input',
408
  'attr' => 'type="text" data-type="color"',
409
  'text' => ''
410
  ),
411
  'scrollBarButtonColor' => array(
412
  'label' => __('Scroll Bar Button Color', 'grand-media'),
413
  'tag' => 'input',
414
  'attr' => 'type="text" data-type="color"',
415
  'text' => ''
416
  ),
417
  'thumbBgColor' => array(
418
  'label' => __('Thumbnail BG Color', 'grand-media'),
419
  'tag' => 'input',
420
  'attr' => 'type="text" data-type="color"',
421
  'text' => __('Background of the thumbnail placeholder while thumbnail is loading', 'grand-media')
422
  ),
423
  'thumbLoaderColor' => array(
424
  'label' => __('Thumbnail Loader Color', 'grand-media'),
425
  'tag' => 'input',
426
  'attr' => 'type="text" data-type="color"',
427
  'text' => ''
428
  ),
429
  'imageTitleColor' => array(
430
  'label' => __('Image Title Color', 'grand-media'),
431
  'tag' => 'input',
432
  'attr' => 'type="text" data-type="color"',
433
  'text' => __('Color for image title text', 'grand-media')
434
  ),
435
  'imageTitleFontSize' => array(
436
  'label' => __('Image Title Font Size', 'grand-media'),
437
  'tag' => 'input',
438
  'attr' => 'type="number" min="10" max="30"',
439
  'text' => ''
440
  ),
441
  'imageDescrColor' => array(
442
  'label' => __('Image Description Color', 'grand-media'),
443
  'tag' => 'input',
444
  'attr' => 'type="text" data-type="color"',
445
  'text' => __('Color for image description text', 'grand-media')
446
  ),
447
  'imageDescrFontSize' => array(
448
  'label' => __('Image Description Font Size', 'grand-media'),
449
  'tag' => 'input',
450
  'attr' => 'type="number" min="10" max="30"',
451
  'text' => ''
452
  ),
453
  'imageDescrBgColor' => array(
454
  'label' => __('Image Description BG Color', 'grand-media'),
455
  'tag' => 'input',
456
  'attr' => 'type="text" data-type="color"',
457
  'text' => __('Background color for the description pane that appears on mouseover', 'grand-media')
458
  ),
459
  'imageDescrBgAlpha' => array(
460
  'label' => __('Image Description Background Alpha', 'grand-media'),
461
  'tag' => 'input',
462
  'attr' => 'type="number" min="0" max="100" step="5"',
463
  'text' => __('Opacity of the description pane background', 'grand-media')
464
  )
465
  /*,
466
  'backButtonTextColor' => array(
467
  'label' => __('Back Button Text Color', 'grand-media'),
468
  'tag' => 'input',
469
  'attr' => 'type="text" data-type="color"',
470
  'text' => __('(only for Full Window template). Default: ffffff', 'grand-media')
471
  ),
472
  'backButtonBgColor' => array(
473
  'label' => __('Back Button Background Color', 'grand-media'),
474
  'tag' => 'input',
475
  'attr' => 'type="text" data-type="color"',
476
  'desc' => __('(only for Full Window template). Default: 000000', 'grand-media')
477
  )*/
478
  )
479
  ),
480
  array(
481
  'label' => __('Advanced Settings', 'grand-media'),
482
  'fields' => array(
483
  'customCSS' => array(
484
  'label' => __('Custom CSS', 'grand-media'),
485
  'tag' => 'textarea',
486
  'attr' => 'cols="20" rows="10"',
487
  'text' => __('You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles', 'grand-media')
488
  )
489
  /*,
490
  'loveLink' => array(
491
  'label' => __('Display LoveLink?', 'grand-media'),
492
  'tag' => 'checkbox',
493
  'attr' => '',
494
  'text' => __('Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery', 'grand-media')
495
  )*/
496
  )
497
  )
 
1
  'maxwidth' => '0',
2
  'lockheight' => '1',
3
  'height' => '500',
4
  'maxheight' => '0',
5
  'imageZoom' => 'FILL',
6
  'autoSlideshow' => '1',
7
  'slideshowDelay' => '10',
8
  'thumbHeight' => '100',
9
  'descrVisOnMouseover' => '1',
10
  'wmode' => 'opaque',
11
  'bgColor' => 'ffffff',
12
  'imagesBgColor' => '000000',
13
  'barsBgColor' => '000000',
14
  'catButtonColor' => '75c30f',
15
  'catButtonColorHover' => 'ffffff',
16
  'scrollBarTrackColor' => '75c30f',
17
  'scrollBarButtonColor' => 'f1f1f1',
18
  'thumbBgColor' => 'ffffff',
19
  'thumbLoaderColor' => '75c30f',
20
  'imageTitleColor' => '75c30f',
21
  'imageTitleFontSize' => '14',
22
  'imageDescrColor' => 'ffffff',
23
  'imageDescrFontSize' => '12',
24
  'imageDescrBgColor' => '000000',
25
  'imageDescrBgAlpha' => '85',
26
  'customCSS' => ''
27
  array(
28
  'label' => 'Common Settings',
29
  'fields' => array(
30
  'maxwidth' => array(
31
  'label' => 'Max-Width',
32
  'tag' => 'input',
33
  'attr' => 'type="number" min="0"',
34
  'text' => 'By default gallery width always 100%. Set the maximum width of the gallery (in pixels). Leave 0 to disable max-width.'
35
  ),
36
  'lockheight' => array(
37
  'label' => 'Set height manually',
38
  'tag' => 'checkbox',
39
  'attr' => 'data-watch="change"',
40
  'text' => 'By default a gallery automatically calculates own height to best fit the tallest image in a gallery.'
41
  ),
42
  'height' => array(
43
  'label' => 'Height',
44
  'tag' => 'input',
45
  'attr' => 'type="text" min="0" data-lockheight="is:1"',
46
  'text' => 'Set height of the gallery. Do not set % unless you know what you doing.'
47
  ),
48
  'maxheight' => array(
49
  'label' => 'Max-Height',
50
  'tag' => 'input',
51
  'attr' => 'type="number" min="0" data-lockheight="is:0"',
52
  'text' => 'Set the maximum height of the gallery. Leave 0 to disable max-height.'
53
  ),
54
  'imageZoom' => array(
55
  'label' => 'Image Zoom',
56
  'tag' => 'select',
57
  'attr' => '',
58
  'text' => 'Default value: Fill.',
59
  'choices' => array(
60
  array(
61
  'label' => 'Fill',
62
  'value' => 'FILL'
63
  ),
64
  array(
65
  'label' => 'Fit',
66
  'value' => 'FIT'
67
  )
68
  )
69
  ),
70
  'autoSlideshow' => array(
71
  'label' => 'Automatic Slideshow (On/Off)',
72
  'tag' => 'checkbox',
73
  'attr' => '',
74
  'text' => ''
75
  ),
76
  'slideshowDelay' => array(
77
  'label' => 'Slideshow Delay',
78
  'tag' => 'input',
79
  'attr' => 'type="number" min="1" max="60"',
80
  'text' => 'Set delay between slides in seconds'
81
  ),
82
  'thumbHeight' => array(
83
  'label' => 'Thumbnails Height',
84
  'tag' => 'input',
85
  'attr' => 'type="number" min="0" max="300"',
86
  'text' => 'Set bottom thumbnails row height in pixels'
87
  ),
88
  'descrVisOnMouseover' => array(
89
  'label' => 'Show Description',
90
  'tag' => 'checkbox',
91
  'attr' => '',
92
  'text' => 'Show image description on mouseover'
93
  )
94
  /*,
95
  'hitcounter' => array(
96
  'label' => 'Count Image Views',
97
  'tag' => 'checkbox',
98
  'attr' => '',
99
  'text' => ''
100
  )*/
101
  )
102
  ),
103
  array(
104
  'label' => 'Colors and Fonts',
105
  'fields' => array(
106
  'wmode' => array(
107
  'label' => 'Wmode for flash object',
108
  'tag' => 'select',
109
  'attr' => 'data-watch="change"',
110
  'text' => 'Default value: Opaque. If \'transparent\' - "Background Color" option is ignored, but you can position the absolute elements over the flash',
111
  'choices' => array(
112
  array(
113
  'label' => 'Opaque',
114
  'value' => 'opaque'
115
  ),
116
  array(
117
  'label' => 'Window',
118
  'value' => 'window'
119
  ),
120
  array(
121
  'label' => 'Transparent',
122
  'value' => 'transparent'
123
  )
124
  )
125
  ),
126
  'bgColor' => array(
127
  'label' => 'Background Color',
128
  'tag' => 'input',
129
  'attr' => 'type="text" data-type="color" data-wmode="not:transparent"',
130
  'text' => 'Set gallery background color'
131
  ),
132
  'imagesBgColor' => array(
133
  'label' => 'Images Background Color',
134
  'tag' => 'input',
135
  'attr' => 'type="text" data-type="color"',
136
  'text' => 'Set loading images background color'
137
  ),
138
  'barsBgColor' => array(
139
  'label' => 'Bars Background Color',
140
  'tag' => 'input',
141
  'attr' => 'type="text" data-type="color"',
142
  'text' => 'Background color for Menu bar, Thumbnails bar and Scroll bar'
143
  ),
144
  'catButtonColor' => array(
145
  'label' => 'Menu Bar Buttons Color',
146
  'tag' => 'input',
147
  'attr' => 'type="text" data-type="color"',
148
  'text' => ''
149
  ),
150
  'catButtonColorHover' => array(
151
  'label' => 'Menu Bar Buttons Color on Mouseover',
152
  'tag' => 'input',
153
  'attr' => 'type="text" data-type="color"',
154
  'text' => ''
155
  ),
156
  'scrollBarTrackColor' => array(
157
  'label' => 'Scroll Bar Track Color',
158
  'tag' => 'input',
159
  'attr' => 'type="text" data-type="color"',
160
  'text' => ''
161
  ),
162
  'scrollBarButtonColor' => array(
163
  'label' => 'Scroll Bar Button Color',
164
  'tag' => 'input',
165
  'attr' => 'type="text" data-type="color"',
166
  'text' => ''
167
  ),
168
  'thumbBgColor' => array(
169
  'label' => 'Thumbnail BG Color',
170
  'tag' => 'input',
171
  'attr' => 'type="text" data-type="color"',
172
  'text' => 'Background of the thumbnail placeholder while thumbnail is loading'
173
  ),
174
  'thumbLoaderColor' => array(
175
  'label' => 'Thumbnail Loader Color',
176
  'tag' => 'input',
177
  'attr' => 'type="text" data-type="color"',
178
  'text' => ''
179
  ),
180
  'imageTitleColor' => array(
181
  'label' => 'Image Title Color',
182
  'tag' => 'input',
183
  'attr' => 'type="text" data-type="color"',
184
  'text' => 'Color for image title text'
185
  ),
186
  'imageTitleFontSize' => array(
187
  'label' => 'Image Title Font Size',
188
  'tag' => 'input',
189
  'attr' => 'type="number" min="10" max="30"',
190
  'text' => ''
191
  ),
192
  'imageDescrColor' => array(
193
  'label' => 'Image Description Color',
194
  'tag' => 'input',
195
  'attr' => 'type="text" data-type="color"',
196
  'text' => 'Color for image description text'
197
  ),
198
  'imageDescrFontSize' => array(
199
  'label' => 'Image Description Font Size',
200
  'tag' => 'input',
201
  'attr' => 'type="number" min="10" max="30"',
202
  'text' => ''
203
  ),
204
  'imageDescrBgColor' => array(
205
  'label' => 'Image Description BG Color',
206
  'tag' => 'input',
207
  'attr' => 'type="text" data-type="color"',
208
  'text' => 'Background color for the description pane that appears on mouseover'
209
  ),
210
  'imageDescrBgAlpha' => array(
211
  'label' => 'Image Description Background Alpha',
212
  'tag' => 'input',
213
  'attr' => 'type="number" min="0" max="100" step="5"',
214
  'text' => 'Opacity of the description pane background'
215
  )
216
  /*,
217
  'backButtonTextColor' => array(
218
  'label' => 'Back Button Text Color',
219
  'tag' => 'input',
220
  'attr' => 'type="text" data-type="color"',
221
  'text' => '(only for Full Window template). Default: ffffff'
222
  ),
223
  'backButtonBgColor' => array(
224
  'label' => 'Back Button Background Color',
225
  'tag' => 'input',
226
  'attr' => 'type="text" data-type="color"',
227
  'desc' => '(only for Full Window template). Default: 000000'
228
  )*/
229
  )
230
  ),
231
  array(
232
  'label' => 'Advanced Settings',
233
  'fields' => array(
234
  'customCSS' => array(
235
  'label' => 'Custom CSS',
236
  'tag' => 'textarea',
237
  'attr' => 'cols="20" rows="10"',
238
  'text' => 'You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles'
239
  )
240
  /*,
241
  'loveLink' => array(
242
  'label' => 'Display LoveLink?',
243
  'tag' => 'checkbox',
244
  'attr' => '',
245
  'text' => 'Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery'
246
  )*/
247
  )
248
  )
249
+ <?php
250
  'maxwidth' => '0',
251
  'lockheight' => '1',
252
  'height' => '500',
253
  'maxheight' => '0',
254
  'imageZoom' => 'FILL',
255
  'autoSlideshow' => '1',
256
  'slideshowDelay' => '10',
257
  'thumbHeight' => '100',
258
  'descrVisOnMouseover' => '1',
259
  'wmode' => 'opaque',
260
  'bgColor' => 'ffffff',
261
  'imagesBgColor' => '000000',
262
  'barsBgColor' => '000000',
263
  'catButtonColor' => '75c30f',
264
  'catButtonColorHover' => 'ffffff',
265
  'scrollBarTrackColor' => '75c30f',
266
  'scrollBarButtonColor' => 'f1f1f1',
267
  'thumbBgColor' => 'ffffff',
268
  'thumbLoaderColor' => '75c30f',
269
  'imageTitleColor' => '75c30f',
270
  'imageTitleFontSize' => '14',
271
  'imageDescrColor' => 'ffffff',
272
  'imageDescrFontSize' => '12',
273
  'imageDescrBgColor' => '000000',
274
  'imageDescrBgAlpha' => '85',
275
  'customCSS' => ''
276
  array(
277
  'label' => __('Common Settings', 'grand-media'),
278
  'fields' => array(
279
  'maxwidth' => array(
280
  'label' => __('Max-Width', 'grand-media'),
281
  'tag' => 'input',
282
  'attr' => 'type="number" min="0"',
283
  'text' => __('By default gallery width always 100%. Set the maximum width of the gallery (in pixels). Leave 0 to disable max-width.', 'grand-media')
284
  ),
285
  'lockheight' => array(
286
  'label' => __('Set height manually', 'grand-media'),
287
  'tag' => 'checkbox',
288
  'attr' => 'data-watch="change"',
289
  'text' => __('By default a gallery automatically calculates own height to best fit the tallest image in a gallery.', 'grand-media')
290
  ),
291
  'height' => array(
292
  'label' => __('Height', 'grand-media'),
293
  'tag' => 'input',
294
  'attr' => 'type="text" min="0" data-lockheight="is:1"',
295
  'text' => __('Set height of the gallery. Do not set % unless you know what you doing.', 'grand-media')
296
  ),
297
  'maxheight' => array(
298
  'label' => __('Max-Height', 'grand-media'),
299
  'tag' => 'input',
300
  'attr' => 'type="number" min="0" data-lockheight="is:0"',
301
  'text' => __('Set the maximum height of the gallery. Leave 0 to disable max-height.', 'grand-media')
302
  ),
303
  'imageZoom' => array(
304
  'label' => __('Image Zoom', 'grand-media'),
305
  'tag' => 'select',
306
  'attr' => '',
307
  'text' => __('Default value: Fill.', 'grand-media'),
308
  'choices' => array(
309
  array(
310
  'label' => __('Fill', 'grand-media'),
311
  'value' => 'FILL'
312
  ),
313
  array(
314
  'label' => __('Fit', 'grand-media'),
315
  'value' => 'FIT'
316
  )
317
  )
318
  ),
319
  'autoSlideshow' => array(
320
  'label' => __('Automatic Slideshow (On/Off)', 'grand-media'),
321
  'tag' => 'checkbox',
322
  'attr' => '',
323
  'text' => ''
324
  ),
325
  'slideshowDelay' => array(
326
  'label' => __('Slideshow Delay', 'grand-media'),
327
  'tag' => 'input',
328
  'attr' => 'type="number" min="1" max="60"',
329
  'text' => __('Set delay between slides in seconds', 'grand-media')
330
  ),
331
  'thumbHeight' => array(
332
  'label' => __('Thumbnails Height', 'grand-media'),
333
  'tag' => 'input',
334
  'attr' => 'type="number" min="0" max="300"',
335
  'text' => __('Set bottom thumbnails row height in pixels', 'grand-media')
336
  ),
337
  'descrVisOnMouseover' => array(
338
  'label' => __('Show Description', 'grand-media'),
339
  'tag' => 'checkbox',
340
  'attr' => '',
341
  'text' => __('Show image description on mouseover', 'grand-media')
342
  )
343
  /*,
344
  'hitcounter' => array(
345
  'label' => __('Count Image Views', 'grand-media'),
346
  'tag' => 'checkbox',
347
  'attr' => '',
348
  'text' => ''
349
  )*/
350
  )
351
  ),
352
  array(
353
  'label' => __('Colors and Fonts', 'grand-media'),
354
  'fields' => array(
355
  'wmode' => array(
356
  'label' => __('Wmode for flash object', 'grand-media'),
357
  'tag' => 'select',
358
  'attr' => 'data-watch="change"',
359
  'text' => __('Default value: Opaque. If \'transparent\' - "Background Color" option is ignored, but you can position the absolute elements over the flash', 'grand-media'),
360
  'choices' => array(
361
  array(
362
  'label' => __('Opaque', 'grand-media'),
363
  'value' => 'opaque'
364
  ),
365
  array(
366
  'label' => __('Window', 'grand-media'),
367
  'value' => 'window'
368
  ),
369
  array(
370
  'label' => __('Transparent', 'grand-media'),
371
  'value' => 'transparent'
372
  )
373
  )
374
  ),
375
  'bgColor' => array(
376
  'label' => __('Background Color', 'grand-media'),
377
  'tag' => 'input',
378
  'attr' => 'type="text" data-type="color" data-wmode="not:transparent"',
379
  'text' => __('Set gallery background color', 'grand-media')
380
  ),
381
  'imagesBgColor' => array(
382
  'label' => __('Images Background Color', 'grand-media'),
383
  'tag' => 'input',
384
  'attr' => 'type="text" data-type="color"',
385
  'text' => __('Set loading images background color', 'grand-media')
386
  ),
387
  'barsBgColor' => array(
388
  'label' => __('Bars Background Color', 'grand-media'),
389
  'tag' => 'input',
390
  'attr' => 'type="text" data-type="color"',
391
  'text' => __('Background color for Menu bar, Thumbnails bar and Scroll bar', 'grand-media')
392
  ),
393
  'catButtonColor' => array(
394
  'label' => __('Menu Bar Buttons Color', 'grand-media'),
395
  'tag' => 'input',
396
  'attr' => 'type="text" data-type="color"',
397
  'text' => ''
398
  ),
399
  'catButtonColorHover' => array(
400
  'label' => __('Menu Bar Buttons Color on Mouseover', 'grand-media'),
401
  'tag' => 'input',
402
  'attr' => 'type="text" data-type="color"',
403
  'text' => ''
404
  ),
405
  'scrollBarTrackColor' => array(
406
  'label' => __('Scroll Bar Track Color', 'grand-media'),
407
  'tag' => 'input',
408
  'attr' => 'type="text" data-type="color"',
409
  'text' => ''
410
  ),
411
  'scrollBarButtonColor' => array(
412
  'label' => __('Scroll Bar Button Color', 'grand-media'),
413
  'tag' => 'input',
414
  'attr' => 'type="text" data-type="color"',
415
  'text' => ''
416
  ),
417
  'thumbBgColor' => array(
418
  'label' => __('Thumbnail BG Color', 'grand-media'),
419
  'tag' => 'input',
420
  'attr' => 'type="text" data-type="color"',
421
  'text' => __('Background of the thumbnail placeholder while thumbnail is loading', 'grand-media')
422
  ),
423
  'thumbLoaderColor' => array(
424
  'label' => __('Thumbnail Loader Color', 'grand-media'),
425
  'tag' => 'input',
426
  'attr' => 'type="text" data-type="color"',
427
  'text' => ''
428
  ),
429
  'imageTitleColor' => array(
430
  'label' => __('Image Title Color', 'grand-media'),
431
  'tag' => 'input',
432
  'attr' => 'type="text" data-type="color"',
433
  'text' => __('Color for image title text', 'grand-media')
434
  ),
435
  'imageTitleFontSize' => array(
436
  'label' => __('Image Title Font Size', 'grand-media'),
437
  'tag' => 'input',
438
  'attr' => 'type="number" min="10" max="30"',
439
  'text' => ''
440
  ),
441
  'imageDescrColor' => array(
442
  'label' => __('Image Description Color', 'grand-media'),
443
  'tag' => 'input',
444
  'attr' => 'type="text" data-type="color"',
445
  'text' => __('Color for image description text', 'grand-media')
446
  ),
447
  'imageDescrFontSize' => array(
448
  'label' => __('Image Description Font Size', 'grand-media'),
449
  'tag' => 'input',
450
  'attr' => 'type="number" min="10" max="30"',
451
  'text' => ''
452
  ),
453
  'imageDescrBgColor' => array(
454
  'label' => __('Image Description BG Color', 'grand-media'),
455
  'tag' => 'input',
456
  'attr' => 'type="text" data-type="color"',
457
  'text' => __('Background color for the description pane that appears on mouseover', 'grand-media')
458
  ),
459
  'imageDescrBgAlpha' => array(
460
  'label' => __('Image Description Background Alpha', 'grand-media'),
461
  'tag' => 'input',
462
  'attr' => 'type="number" min="0" max="100" step="5"',
463
  'text' => __('Opacity of the description pane background', 'grand-media')
464
  )
465
  /*,
466
  'backButtonTextColor' => array(
467
  'label' => __('Back Button Text Color', 'grand-media'),
468
  'tag' => 'input',
469
  'attr' => 'type="text" data-type="color"',
470
  'text' => __('(only for Full Window template). Default: ffffff', 'grand-media')
471
  ),
472
  'backButtonBgColor' => array(
473
  'label' => __('Back Button Background Color', 'grand-media'),
474
  'tag' => 'input',
475
  'attr' => 'type="text" data-type="color"',
476
  'desc' => __('(only for Full Window template). Default: 000000', 'grand-media')
477
  )*/
478
  )
479
  ),
480
  array(
481
  'label' => __('Advanced Settings', 'grand-media'),
482
  'fields' => array(
483
  'customCSS' => array(
484
  'label' => __('Custom CSS', 'grand-media'),
485
  'tag' => 'textarea',
486
  'attr' => 'cols="20" rows="10"',
487
  'text' => __('You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles', 'grand-media')
488
  )
489
  /*,
490
  'loveLink' => array(
491
  'label' => __('Display LoveLink?', 'grand-media'),
492
  'tag' => 'checkbox',
493
  'attr' => '',
494
  'text' => __('Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery', 'grand-media')
495
  )*/
496
  )
497
  )
module/cubik-lite/index.php CHANGED
@@ -5,9 +5,9 @@ $module_info = array(
5
  'title' => 'Cubik Lite',
6
  'version' => '1.4',
7
  'author' => 'GalleryCreator',
8
- 'description' => 'Perfect gallery module for widget. This is a light version of Cubik module.
9
 
10
- Responsive and mobile friendly &bull; Working in all major browsers &bull; built with HTML5 & CSS3',
11
  'type' => 'gallery',
12
  'branch' => '1',
13
  'status' => 'free',
5
  'title' => 'Cubik Lite',
6
  'version' => '1.4',
7
  'author' => 'GalleryCreator',
8
+ 'description' => __('Perfect gallery module for widget. This is a light version of Cubik module.
9
 
10
+ Responsive and mobile friendly &bull; Working in all major browsers &bull; built with HTML5 & CSS3', 'grand-media'),
11
  'type' => 'gallery',
12
  'branch' => '1',
13
  'status' => 'free',
module/cubik-lite/settings.php CHANGED
@@ -1,149 +1,180 @@
1
  <?php
2
- $default_options = array('maxSize' => '400',
3
- 'thumbCols' => '4',
4
- 'facePadding' => '20',
5
- 'faceMargin' => '20',
6
- 'lightboxControlsColor' => 'ffffff',
7
- 'lightboxTitleColor' => 'f3f3f3',
8
- 'lightboxTextColor' => 'f3f3f3',
9
- 'lightboxBGColor' => '0b0b0b',
10
- 'lightboxBGAlpha' => '80',
11
- 'sidebarBGColor' => 'ffffff',
12
- 'socialShareEnabled' => '1',
13
- 'share_post_link' => '1',
14
- 'deepLinks' => '1',
15
- 'lightbox800HideArrows' => '0',
16
- 'commentsEnabled' => '1',
17
- 'thumb2link' => '0',
18
- 'show_title' => '1',
19
- 'show_tags' => '1',
20
- 'show_categories' => '1',
21
- 'show_albums' => '1',
22
- 'customCSS' => ''
 
23
  );
24
- $options_tree = array(array('label' => 'Common Settings',
25
- 'fields' => array('maxSize' => array('label' => 'Max Size of the Cube Side',
26
- 'tag' => 'input',
27
- 'attr' => 'type="number" min="0"',
28
- 'text' => 'Set the maximum size (width x height) of the gallery. Leave 0 to disable max size (not recommended).'
29
- ),
30
- 'thumb2link' => array('label' => 'Thumbnail to Link',
31
- 'tag' => 'checkbox',
32
- 'attr' => '',
33
- 'text' => 'If item have Link, then open Link instead of lightbox. Note: Link also will be available via item Title on the thumbnail\'s label and in the lightbox'
34
- ),
 
 
 
 
 
35
 
36
- )
37
- ),
38
- array('label' => 'Thumb Grid General',
39
- 'fields' => array('thumbCols' => array('label' => 'Thumbnail Columns',
40
- 'tag' => 'input',
41
- 'attr' => 'type="number" min="1" max="4"',
42
- 'text' => 'Number of Columns on one cube side (minimum 1, maximum 4) Set the number of columns for the side.'
43
- ),
44
- 'facePadding' => array('label' => 'Grid Padding',
45
- 'tag' => 'input',
46
- 'attr' => 'type="number" min="0"',
47
- 'text' => 'Set the vertical padding for the thumbnails grid'
48
- ),
49
- 'faceMargin' => array('label' => 'Grid Margin',
50
- 'tag' => 'input',
51
- 'attr' => 'type="number" min="0"',
52
- 'text' => 'Set the horizontal padding for the thumbnails grid'
53
- )
54
- )
55
- ),
56
- array('label' => 'Lightbox Settings',
57
- 'fields' => array('lightboxControlsColor' => array('label' => 'Lightbox Controls / Buttons Color',
58
- 'tag' => 'input',
59
- 'attr' => 'type="text" data-type="color"',
60
- 'text' => 'Set the color for lightbox control buttons'
61
- ),
62
- 'lightboxTitleColor' => array('label' => 'Lightbox Image Title Color',
63
- 'tag' => 'input',
64
- 'attr' => 'type="text" data-type="color"',
65
- 'text' => 'Set the text color for image title'
66
- ),
67
- 'lightboxTextColor' => array('label' => 'Lightbox Image Description Color',
68
- 'tag' => 'input',
69
- 'attr' => 'type="text" data-type="color"',
70
- 'text' => 'Set the text color for image caption'
71
- ),
72
- 'lightboxBGColor' => array('label' => 'Lightbox Window Color',
73
- 'tag' => 'input',
74
- 'attr' => 'type="text" data-type="color"',
75
- 'text' => 'Set the background color for the lightbox window'
76
- ),
77
- 'lightboxBGAlpha' => array('label' => 'Lightbox Window Alpha',
78
- 'tag' => 'input',
79
- 'attr' => 'type="number" min="0" max="100" step="5"',
80
- 'text' => 'Set the transparancy for the lightbox window'
81
- ),
82
- 'sidebarBGColor' => array('label' => 'Comments Block BG Color',
83
- 'tag' => 'input',
84
- 'attr' => 'type="text" data-type="color"',
85
- 'text' => 'Set the background color for the comments block'
86
- ),
87
- 'lightbox800HideArrows' => array('label' => 'Hide Arrows when small window',
88
- 'tag' => 'checkbox',
89
- 'attr' => '',
90
- 'text' => 'Hide Arrows if window width less than 800px'
91
- ),
92
- 'deepLinks' => array('label' => 'Deep Links',
93
- 'tag' => 'checkbox',
94
- 'attr' => '',
95
- 'text' => 'Change URL hash in the address bar for each big image'
96
- ),
97
- 'commentsEnabled' => array('label' => 'Show Comments Button and Counter',
98
- 'tag' => 'checkbox',
99
- 'attr' => '',
100
- 'text' => ''
101
- ),
102
- 'socialShareEnabled' => array('label' => 'Show Share Button',
103
- 'tag' => 'checkbox',
104
- 'attr' => 'data-watch="change"',
105
- 'text' => ''
106
- ),
107
- 'share_post_link' => array('label' => 'Share link to Gmedia Post',
108
- 'tag' => 'checkbox',
109
- 'attr' => 'data-socialshareenabled="is:1"',
110
- 'text' => 'Share link to the individual Gmedia Post instead of to the image in gallery.'
111
- ),
112
- 'show_title' => array('label' => 'Show Title in Lightbox',
113
- 'tag' => 'checkbox',
114
- 'attr' => '',
115
- 'text' => ''
116
- ),
117
- 'show_tags' => array('label' => 'Show Tags',
118
- 'tag' => 'checkbox',
119
- 'attr' => '',
120
- 'text' => ''
121
- ),
122
- 'show_categories' => array('label' => 'Show Categories',
123
- 'tag' => 'checkbox',
124
- 'attr' => '',
125
- 'text' => ''
126
- ),
127
- 'show_albums' => array('label' => 'Show Album',
128
- 'tag' => 'checkbox',
129
- 'attr' => '',
130
- 'text' => ''
131
- )
132
- )
133
- ),
134
- array('label' => 'Advanced Settings',
135
- 'fields' => array('customCSS' => array('label' => 'Custom CSS',
136
- 'tag' => 'textarea',
137
- 'attr' => 'cols="20" rows="10"',
138
- 'text' => 'You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles'
139
- )
140
- /*,
141
- 'loveLink' => array(
142
- 'label' => 'Display LoveLink?',
143
- 'tag' => 'checkbox',
144
- 'attr' => '',
145
- 'text' => 'Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery'
146
- )*/
147
- )
148
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  );
1
  <?php
2
+ $default_options = array(
3
+ 'maxSize' => '400',
4
+ 'thumbCols' => '4',
5
+ 'facePadding' => '20',
6
+ 'faceMargin' => '20',
7
+ 'lightboxControlsColor' => 'ffffff',
8
+ 'lightboxTitleColor' => 'f3f3f3',
9
+ 'lightboxTextColor' => 'f3f3f3',
10
+ 'lightboxBGColor' => '0b0b0b',
11
+ 'lightboxBGAlpha' => '80',
12
+ 'sidebarBGColor' => 'ffffff',
13
+ 'socialShareEnabled' => '1',
14
+ 'share_post_link' => '1',
15
+ 'deepLinks' => '1',
16
+ 'lightbox800HideArrows' => '0',
17
+ 'commentsEnabled' => '1',
18
+ 'thumb2link' => '0',
19
+ 'show_title' => '1',
20
+ 'show_tags' => '1',
21
+ 'show_categories' => '1',
22
+ 'show_albums' => '1',
23
+ 'customCSS' => ''
24
  );
25
+ $options_tree = array(
26
+ array(
27
+ 'label' => __('Common Settings', 'grand-media'),
28
+ 'fields' => array(
29
+ 'maxSize' => array(
30
+ 'label' => __('Max Size of the Cube Side', 'grand-media'),
31
+ 'tag' => 'input',
32
+ 'attr' => 'type="number" min="0"',
33
+ 'text' => __('Set the maximum size (width x height) of the gallery. Leave 0 to disable max size (not recommended).', 'grand-media')
34
+ ),
35
+ 'thumb2link' => array(
36
+ 'label' => __('Thumbnail to Link', 'grand-media'),
37
+ 'tag' => 'checkbox',
38
+ 'attr' => '',
39
+ 'text' => __('If item have Link, then open Link instead of lightbox. Note: Link also will be available via item Title on the thumbnail\'s label and in the lightbox', 'grand-media')
40
+ ),
41
 
42
+ )
43
+ ),
44
+ array(
45
+ 'label' => __('Thumb Grid General', 'grand-media'),
46
+ 'fields' => array(
47
+ 'thumbCols' => array(
48
+ 'label' => __('Thumbnail Columns', 'grand-media'),
49
+ 'tag' => 'input',
50
+ 'attr' => 'type="number" min="1" max="4"',
51
+ 'text' => __('Number of Columns on one cube side (minimum 1, maximum 4) Set the number of columns for the side.', 'grand-media')
52
+ ),
53
+ 'facePadding' => array(
54
+ 'label' => __('Grid Padding', 'grand-media'),
55
+ 'tag' => 'input',
56
+ 'attr' => 'type="number" min="0"',
57
+ 'text' => __('Set the vertical padding for the thumbnails grid', 'grand-media')
58
+ ),
59
+ 'faceMargin' => array(
60
+ 'label' => __('Grid Margin', 'grand-media'),
61
+ 'tag' => 'input',
62
+ 'attr' => 'type="number" min="0"',
63
+ 'text' => __('Set the horizontal padding for the thumbnails grid', 'grand-media')
64
+ )
65
+ )
66
+ ),
67
+ array(
68
+ 'label' => 'Lightbox Settings',
69
+ 'fields' => array(
70
+ 'lightboxControlsColor' => array(
71
+ 'label' => __('Lightbox Controls / Buttons Color', 'grand-media'),
72
+ 'tag' => 'input',
73
+ 'attr' => 'type="text" data-type="color"',
74
+ 'text' => __('Set the color for lightbox control buttons', 'grand-media')
75
+ ),
76
+ 'lightboxTitleColor' => array(
77
+ 'label' => __('Lightbox Image Title Color', 'grand-media'),
78
+ 'tag' => 'input',
79
+ 'attr' => 'type="text" data-type="color"',
80
+ 'text' => __('Set the text color for image title', 'grand-media')
81
+ ),
82
+ 'lightboxTextColor' => array(
83
+ 'label' => __('Lightbox Image Description Color', 'grand-media'),
84
+ 'tag' => 'input',
85
+ 'attr' => 'type="text" data-type="color"',
86
+ 'text' => __('Set the text color for image caption', 'grand-media')
87
+ ),
88
+ 'lightboxBGColor' => array(
89
+ 'label' => __('Lightbox Window Color', 'grand-media'),
90
+ 'tag' => 'input',
91
+ 'attr' => 'type="text" data-type="color"',
92
+ 'text' => __('Set the background color for the lightbox window', 'grand-media')
93
+ ),
94
+ 'lightboxBGAlpha' => array(
95
+ 'label' => __('Lightbox Window Alpha', 'grand-media'),
96
+ 'tag' => 'input',
97
+ 'attr' => 'type="number" min="0" max="100" step="5"',
98
+ 'text' => __('Set the transparancy for the lightbox window', 'grand-media')
99
+ ),
100
+ 'sidebarBGColor' => array(
101
+ 'label' => __('Comments Block BG Color', 'grand-media'),
102
+ 'tag' => 'input',
103
+ 'attr' => 'type="text" data-type="color"',
104
+ 'text' => __('Set the background color for the comments block', 'grand-media')
105
+ ),
106
+ 'lightbox800HideArrows' => array(
107
+ 'label' => __('Hide Arrows when small window', 'grand-media'),
108
+ 'tag' => 'checkbox',
109
+ 'attr' => '',
110
+ 'text' => __('Hide Arrows if window width less than 800px', 'grand-media')
111
+ ),
112
+ 'deepLinks' => array(
113
+ 'label' => __('Deep Links', 'grand-media'),
114
+ 'tag' => 'checkbox',
115
+ 'attr' => '',
116
+ 'text' => __('Change URL hash in the address bar for each big image', 'grand-media')
117
+ ),
118
+ 'commentsEnabled' => array(
119
+ 'label' => __('Show Comments Button and Counter', 'grand-media'),
120
+ 'tag' => 'checkbox',
121
+ 'attr' => '',
122
+ 'text' => ''
123
+ ),
124
+ 'socialShareEnabled' => array(
125
+ 'label' => __('Show Share Button', 'grand-media'),
126
+ 'tag' => 'checkbox',
127
+ 'attr' => 'data-watch="change"',
128
+ 'text' => ''
129
+ ),
130
+ 'share_post_link' => array(
131
+ 'label' => __('Share link to Gmedia Post', 'grand-media'),
132
+ 'tag' => 'checkbox',
133
+ 'attr' => 'data-socialshareenabled="is:1"',
134
+ 'text' => __('Share link to the individual Gmedia Post instead of to the image in gallery.', 'grand-media')
135
+ ),
136
+ 'show_title' => array(
137
+ 'label' => __('Show Title in Lightbox', 'grand-media'),
138
+ 'tag' => 'checkbox',
139
+ 'attr' => '',
140
+ 'text' => ''
141
+ ),
142
+ 'show_tags' => array(
143
+ 'label' => __('Show Tags', 'grand-media'),
144
+ 'tag' => 'checkbox',
145
+ 'attr' => '',
146
+ 'text' => ''
147
+ ),
148
+ 'show_categories' => array(
149
+ 'label' => __('Show Categories', 'grand-media'),
150
+ 'tag' => 'checkbox',
151
+ 'attr' => '',
152
+ 'text' => ''
153
+ ),
154
+ 'show_albums' => array(
155
+ 'label' => __('Show Album', 'grand-media'),
156
+ 'tag' => 'checkbox',
157
+ 'attr' => '',
158
+ 'text' => ''
159
+ )
160
+ )
161
+ ),
162
+ array(
163
+ 'label' => 'Advanced Settings',
164
+ 'fields' => array(
165
+ 'customCSS' => array(
166
+ 'label' => __('Custom CSS', 'grand-media'),
167
+ 'tag' => 'textarea',
168
+ 'attr' => 'cols="20" rows="10"',
169
+ 'text' => __('You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles', 'grand-media')
170
+ )
171
+ /*,
172
+ 'loveLink' => array(
173
+ 'label' => __('Display LoveLink?', 'grand-media'),
174
+ 'tag' => 'checkbox',
175
+ 'attr' => '',
176
+ 'text' => __('Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery', 'grand-media')
177
+ )*/
178
+ )
179
+ )
180
  );
module/jq-mplayer/index.php CHANGED
@@ -5,7 +5,7 @@ $module_info = array(
5
  'title' => 'jQ Music Player',
6
  'version' => '2.11',
7
  'author' => 'CodEasily.com',
8
- 'description' => 'This beautiful audio player is totally written in JQuery and HTML5 + visitors can set rating for each track',
9
  'type' => 'music',
10
  'status' => 'free',
11
  'price' => '0',
5
  'title' => 'jQ Music Player',
6
  'version' => '2.11',
7
  'author' => 'CodEasily.com',
8
+ 'description' => __('This beautiful audio player is totally written in JQuery and HTML5 + visitors can set rating for each track', 'grand-media'),
9
  'type' => 'music',
10
  'status' => 'free',
11
  'price' => '0',
module/jq-mplayer/settings.php CHANGED
@@ -1,84 +1,84 @@
1
  <?php
2
  $default_options = array(
3
- 'maxwidth' => '0',
4
- 'rating' => '1',
5
- 'autoplay' => '0',
6
- 'loop' => '1',
7
- 'buttonText' => 'Download',
8
- 'downloadTrack'=> '0',
9
- 'tracksToShow' => '5',
10
- 'moreText' => 'View More...',
11
- 'customCSS' => ''
12
  );
13
  $options_tree = array(
14
  array(
15
- 'label' => 'Common Settings',
16
  'fields' => array(
17
- 'maxwidth' => array(
18
- 'label' => 'Max-Width',
19
  'tag' => 'input',
20
  'attr' => 'type="number" min="0"',
21
- 'text' => 'Set the maximum width of the player. Leave 0 to disable max-width.'
22
  ),
23
- 'rating' => array(
24
- 'label' => 'Rating',
25
  'tag' => 'checkbox',
26
  'attr' => '',
27
- 'text' => 'Allow visitors to rate tracks.'
28
  ),
29
- 'autoplay' => array(
30
- 'label' => 'Autoplay',
31
  'tag' => 'checkbox',
32
  'attr' => '',
33
  'text' => ''
34
  ),
35
- 'loop' => array(
36
- 'label' => 'Loop Playback',
37
  'tag' => 'checkbox',
38
  'attr' => '',
39
  'text' => ''
40
  ),
41
- 'buttonText' => array(
42
- 'label' => 'Link Button Text',
43
  'tag' => 'input',
44
  'attr' => 'type="text"',
45
- 'text' => 'If gmedia link field is not empty than button with this text will show near track (ex: Open, Buy, Download).'
46
  ),
47
- 'downloadTrack' => array(
48
- 'label' => 'Link to File',
49
  'tag' => 'checkbox',
50
  'attr' => '',
51
- 'text' => 'If gmedia link field is empty than Link Button will download original file.'
52
  ),
53
- 'tracksToShow' => array(
54
- 'label' => '# of Tracks to Show',
55
  'tag' => 'input',
56
  'attr' => 'type="number" min="-1"',
57
- 'text' => 'Set how many tracks to see on page load. Others be hided and More button shows.'
58
  ),
59
- 'moreText' => array(
60
- 'label' => 'More Button Text',
61
  'tag' => 'input',
62
  'attr' => 'type="text"',
63
- 'text' => 'Button to show more tracks.'
64
  )
65
  )
66
  ),
67
  array(
68
- 'label' => 'Advanced Settings',
69
  'fields' => array(
70
  'customCSS' => array(
71
- 'label' => 'Custom CSS',
72
  'tag' => 'textarea',
73
  'attr' => 'cols="20" rows="10"',
74
- 'text' => 'You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles'
75
  )
76
  /*,
77
  'loveLink' => array(
78
- 'label' => 'Display LoveLink?',
79
  'tag' => 'checkbox',
80
  'attr' => '',
81
- 'text' => 'Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery'
82
  )*/
83
  )
84
  )
1
  <?php
2
  $default_options = array(
3
+ 'maxwidth' => '0',
4
+ 'rating' => '1',
5
+ 'autoplay' => '0',
6
+ 'loop' => '1',
7
+ 'buttonText' => __('Download', 'grand-media'),
8
+ 'downloadTrack' => '0',
9
+ 'tracksToShow' => '5',
10
+ 'moreText' => __('View More...', 'grand-media'),
11
+ 'customCSS' => ''
12
  );
13
  $options_tree = array(
14
  array(
15
+ 'label' => __('Common Settings', 'grand-media'),
16
  'fields' => array(
17
+ 'maxwidth' => array(
18
+ 'label' => __('Max-Width', 'grand-media'),
19
  'tag' => 'input',
20
  'attr' => 'type="number" min="0"',
21
+ 'text' => __('Set the maximum width of the player. Leave 0 to disable max-width.', 'grand-media')
22
  ),
23
+ 'rating' => array(
24
+ 'label' => __('Rating', 'grand-media'),
25
  'tag' => 'checkbox',
26
  'attr' => '',
27
+ 'text' => __('Allow visitors to rate tracks.', 'grand-media')
28
  ),
29
+ 'autoplay' => array(
30
+ 'label' => __('Autoplay', 'grand-media'),
31
  'tag' => 'checkbox',
32
  'attr' => '',
33
  'text' => ''
34
  ),
35
+ 'loop' => array(
36
+ 'label' => __('Loop Playback', 'grand-media'),
37
  'tag' => 'checkbox',
38
  'attr' => '',
39
  'text' => ''
40
  ),
41
+ 'buttonText' => array(
42
+ 'label' => __('Link Button Text', 'grand-media'),
43
  'tag' => 'input',
44
  'attr' => 'type="text"',
45
+ 'text' => __('If gmedia link field is not empty than button with this text will show near track (ex: Open, Buy, Download).', 'grand-media')
46
  ),
47
+ 'downloadTrack' => array(
48
+ 'label' => __('Link to File', 'grand-media'),
49
  'tag' => 'checkbox',
50
  'attr' => '',
51
+ 'text' => __('If gmedia link field is empty than Link Button will download original file.', 'grand-media')
52
  ),
53
+ 'tracksToShow' => array(
54
+ 'label' => __('# of Tracks to Show', 'grand-media'),
55
  'tag' => 'input',
56
  'attr' => 'type="number" min="-1"',
57
+ 'text' => __('Set how many tracks to see on page load. Others be hided and More button shows.', 'grand-media')
58
  ),
59
+ 'moreText' => array(
60
+ 'label' => __('More Button Text', 'grand-media'),
61
  'tag' => 'input',
62
  'attr' => 'type="text"',
63
+ 'text' => __('Button to show more tracks.', 'grand-media')
64
  )
65
  )
66
  ),
67
  array(
68
+ 'label' => __('Advanced Settings', 'grand-media'),
69
  'fields' => array(
70
  'customCSS' => array(
71
+ 'label' => __('Custom CSS', 'grand-media'),
72
  'tag' => 'textarea',
73
  'attr' => 'cols="20" rows="10"',
74
+ 'text' => __('You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles', 'grand-media')
75
  )
76
  /*,
77
  'loveLink' => array(
78
+ 'label' => __('Display LoveLink?', 'grand-media'),
79
  'tag' => 'checkbox',
80
  'attr' => '',
81
+ 'text' => __('Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery', 'grand-media')
82
  )*/
83
  )
84
  )
module/minima/index.php CHANGED
@@ -5,7 +5,7 @@ $module_info = array(
5
  'title' => 'Minima',
6
  'version' => '2.10',
7
  'author' => 'CodEasily.com',
8
- 'description' => 'Multi-tab professional image gallery skin with slideshow feature. This is the free light version of <a target="_blank" href="http://codeasily.com/portfolio-item/gmedia-optima/">Optima Module</a>.',
9
  'type' => 'gallery',
10
  'status' => 'free',
11
  'price' => '0',
5
  'title' => 'Minima',
6
  'version' => '2.10',
7
  'author' => 'CodEasily.com',
8
+ 'description' => __('Multi-tab professional image gallery skin with slideshow feature. This is the free light version of <a target="_blank" href="http://codeasily.com/portfolio-item/gmedia-optima/">Optima Module</a>.', 'grand-media'),
9
  'type' => 'gallery',
10
  'status' => 'free',
11
  'price' => '0',
module/minima/settings.php CHANGED
@@ -27,190 +27,190 @@ $default_options = array(
27
  );
28
  $options_tree = array(
29
  array(
30
- 'label' => 'Common Settings',
31
  'fields' => array(
32
  'maxwidth' => array(
33
- 'label' => 'Max-Width',
34
  'tag' => 'input',
35
  'attr' => 'type="number" min="0"',
36
- 'text' => 'Set the maximum width of the gallery. Leave 0 to disable max-width.'
37
  ),
38
  'lockheight' => array(
39
- 'label' => 'Set height manually',
40
  'tag' => 'checkbox',
41
  'attr' => 'data-watch="change"',
42
- 'text' => 'By default a gallery automatically calculates own height to best fit the tallest image in a gallery.'
43
  ),
44
  'height' => array(
45
- 'label' => 'Height',
46
  'tag' => 'input',
47
  'attr' => 'type="text" min="0" data-lockheight="is:1"',
48
- 'text' => 'Set height of the gallery. Do not set % unless you know what you doing.'
49
  ),
50
  'maxheight' => array(
51
- 'label' => 'Max-Height',
52
  'tag' => 'input',
53
  'attr' => 'type="number" min="0" data-lockheight="is:0"',
54
- 'text' => 'Set the maximum height of the gallery. Leave 0 to disable max-height.'
55
  ),
56
  'autoSlideshow' => array(
57
- 'label' => 'Automatic Slideshow',
58
  'tag' => 'checkbox',
59
  'attr' => '',
60
  'text' => ''
61
  ),
62
  'slideshowDelay' => array(
63
- 'label' => 'Slideshow Delay',
64
  'tag' => 'input',
65
  'attr' => 'type="number" min="1" max="300"',
66
- 'text' => 'Set delay between slides in seconds'
67
  ),
68
  'thumbnailsWidth' => array(
69
- 'label' => 'Thumbnails Width',
70
  'tag' => 'input',
71
  'attr' => 'type="number" min="0" max="300"',
72
- 'text' => 'Set bottom thumbnails width in pixels'
73
  ),
74
  'thumbnailsHeight' => array(
75
- 'label' => 'Thumbnails Height',
76
  'tag' => 'input',
77
  'attr' => 'type="number" min="0" max="300"',
78
- 'text' => 'Set bottom thumbnails height in pixels'
79
  ),
80
  'property0' => array(
81
- 'label' => 'Wmode for flash object',
82
  'tag' => 'select',
83
  'attr' => 'data-watch="change"',
84
- 'text' => 'Default value: Opaque. If \'transparent\' - "Background Color" option is ignored, but you can position the absolute elements over the flash',
85
  'choices' => array(
86
  array(
87
- 'label' => 'Opaque',
88
  'value' => 'opaque'
89
  ),
90
  array(
91
- 'label' => 'Window',
92
  'value' => 'window'
93
  ),
94
  array(
95
- 'label' => 'Transparent',
96
  'value' => 'transparent'
97
  )
98
  )
99
  ),
100
  'property1' => array(
101
- 'label' => 'Background Color',
102
  'tag' => 'input',
103
  'attr' => 'type="text" data-type="color" data-property0="not:transparent"',
104
- 'text' => 'Set gallery background color'
105
  ),
106
  'counterStatus' => array(
107
- 'label' => 'Show image views/likes counter',
108
  'tag' => 'checkbox',
109
  'attr' => '',
110
  'text' => ''
111
  ),
112
  'barBgColor' => array(
113
- 'label' => 'Header & Footer Background Color',
114
  'tag' => 'input',
115
  'attr' => 'type="text" data-type="color"',
116
  'text' => ''
117
  ),
118
  'labelColor' => array(
119
- 'label' => 'Buttons Text Color',
120
  'tag' => 'input',
121
  'attr' => 'type="text" data-type="color"',
122
  'text' => ''
123
  ),
124
  'labelColorOver' => array(
125
- 'label' => 'Buttons Text Color on MouseOver',
126
  'tag' => 'input',
127
  'attr' => 'type="text" data-type="color"',
128
  'text' => ''
129
  ),
130
  'backgroundColorButton' => array(
131
- 'label' => 'Buttons BG Color',
132
  'tag' => 'input',
133
  'attr' => 'type="text" data-type="color"',
134
  'text' => ''
135
  ),
136
  'descriptionBGColor' => array(
137
- 'label' => 'Description BG Color',
138
  'tag' => 'input',
139
  'attr' => 'type="text" data-type="color"',
140
- 'text' => 'Background for the image description that appears on mouseover'
141
  ),
142
  'descriptionBGAlpha' => array(
143
- 'label' => 'Image Description Background Alpha',
144
  'tag' => 'input',
145
  'attr' => 'type="number" min="0" max="100" step="5"',
146
- 'text' => 'Opacity of the image description background'
147
  ),
148
  'imageTitleColor' => array(
149
- 'label' => 'Image Title Color',
150
  'tag' => 'input',
151
  'attr' => 'type="text" data-type="color"',
152
- 'text' => 'Color for image title text'
153
  ),
154
  'galleryTitleFontSize' => array(
155
- 'label' => 'Gallery Title Font Size',
156
  'tag' => 'input',
157
  'attr' => 'type="number" min="10" max="30"',
158
  'text' => ''
159
  ),
160
  'titleFontSize' => array(
161
- 'label' => 'Image Title Font Size',
162
  'tag' => 'input',
163
  'attr' => 'type="number" min="10" max="30"',
164
  'text' => ''
165
  ),
166
  'imageDescriptionColor' => array(
167
- 'label' => 'Image Description Color',
168
  'tag' => 'input',
169
  'attr' => 'type="text" data-type="color"',
170
- 'text' => 'Color of text for image description'
171
  ),
172
  'descriptionFontSize' => array(
173
- 'label' => 'Image Description Font Size',
174
  'tag' => 'input',
175
  'attr' => 'type="number" min="10" max="30"',
176
- 'text' => 'Value from 10 to 30. Default value: 12'
177
  ),
178
  'linkColor' => array(
179
- 'label' => 'Link Color (in image description)',
180
  'tag' => 'input',
181
  'attr' => 'type="text" data-type="color"',
182
  'text' => ''
183
  )
184
  /*,
185
  'backButtonTextColor' => array(
186
- 'label' => 'Back Button Text Color',
187
  'tag' => 'input',
188
  'attr' => 'type="text" data-type="color"',
189
- 'text' => '(only for Full Window template). Default: ffffff'
190
  ),
191
  'backButtonBgColor' => array(
192
- 'label' => 'Back Button Background Color',
193
  'tag' => 'input',
194
  'attr' => 'type="text" data-type="color"',
195
- 'desc' => '(only for Full Window template). Default: 000000'
196
  )*/
197
  )
198
  ),
199
  array(
200
- 'label' => 'Advanced Settings',
201
  'fields' => array(
202
  'customCSS' => array(
203
- 'label' => 'Custom CSS',
204
  'tag' => 'textarea',
205
  'attr' => 'cols="20" rows="10"',
206
- 'text' => 'You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles'
207
  )
208
  /*,
209
  'loveLink' => array(
210
- 'label' => 'Display LoveLink?',
211
  'tag' => 'checkbox',
212
  'attr' => '',
213
- 'text' => 'Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery'
214
  )*/
215
  )
216
  )
27
  );
28
  $options_tree = array(
29
  array(
30
+ 'label' => __('Common Settings', 'grand-media'),
31
  'fields' => array(
32
  'maxwidth' => array(
33
+ 'label' => __('Max-Width', 'grand-media'),
34
  'tag' => 'input',
35
  'attr' => 'type="number" min="0"',
36
+ 'text' => __('Set the maximum width of the gallery. Leave 0 to disable max-width.', 'grand-media')
37
  ),
38
  'lockheight' => array(
39
+ 'label' => __('Set height manually', 'grand-media'),
40
  'tag' => 'checkbox',
41
  'attr' => 'data-watch="change"',
42
+ 'text' => __('By default a gallery automatically calculates own height to best fit the tallest image in a gallery.', 'grand-media')
43
  ),
44
  'height' => array(
45
+ 'label' => __('Height', 'grand-media'),
46
  'tag' => 'input',
47
  'attr' => 'type="text" min="0" data-lockheight="is:1"',
48
+ 'text' => __('Set height of the gallery. Do not set % unless you know what you doing.', 'grand-media')
49
  ),
50
  'maxheight' => array(
51
+ 'label' => __('Max-Height', 'grand-media'),
52
  'tag' => 'input',
53
  'attr' => 'type="number" min="0" data-lockheight="is:0"',
54
+ 'text' => __('Set the maximum height of the gallery. Leave 0 to disable max-height.', 'grand-media')
55
  ),
56
  'autoSlideshow' => array(
57
+ 'label' => __('Automatic Slideshow', 'grand-media'),
58
  'tag' => 'checkbox',
59
  'attr' => '',
60
  'text' => ''
61
  ),
62
  'slideshowDelay' => array(
63
+ 'label' => __('Slideshow Delay', 'grand-media'),
64
  'tag' => 'input',
65
  'attr' => 'type="number" min="1" max="300"',
66
+ 'text' => __('Set delay between slides in seconds', 'grand-media')
67
  ),
68
  'thumbnailsWidth' => array(
69
+ 'label' => __('Thumbnails Width', 'grand-media'),
70
  'tag' => 'input',
71
  'attr' => 'type="number" min="0" max="300"',
72
+ 'text' => __('Set bottom thumbnails width in pixels', 'grand-media')
73
  ),
74
  'thumbnailsHeight' => array(
75
+ 'label' => __('Thumbnails Height', 'grand-media'),
76
  'tag' => 'input',
77
  'attr' => 'type="number" min="0" max="300"',
78
+ 'text' => __('Set bottom thumbnails height in pixels', 'grand-media')
79
  ),
80
  'property0' => array(
81
+ 'label' => __('Wmode for flash object', 'grand-media'),
82
  'tag' => 'select',
83
  'attr' => 'data-watch="change"',
84
+ 'text' => __('Default value: Opaque. If \'transparent\' - "Background Color" option is ignored, but you can position the absolute elements over the flash', 'grand-media'),
85
  'choices' => array(
86
  array(
87
+ 'label' => __('Opaque', 'grand-media'),
88
  'value' => 'opaque'
89
  ),
90
  array(
91
+ 'label' => __('Window', 'grand-media'),
92
  'value' => 'window'
93
  ),
94
  array(
95
+ 'label' => __('Transparent', 'grand-media'),
96
  'value' => 'transparent'
97
  )
98
  )
99
  ),
100
  'property1' => array(
101
+ 'label' => __('Background Color', 'grand-media'),
102
  'tag' => 'input',
103
  'attr' => 'type="text" data-type="color" data-property0="not:transparent"',
104
+ 'text' => __('Set gallery background color', 'grand-media')
105
  ),
106
  'counterStatus' => array(
107
+ 'label' => __('Show image views/likes counter', 'grand-media'),
108
  'tag' => 'checkbox',
109
  'attr' => '',
110
  'text' => ''
111
  ),
112
  'barBgColor' => array(
113
+ 'label' => __('Header & Footer Background Color', 'grand-media'),
114
  'tag' => 'input',
115
  'attr' => 'type="text" data-type="color"',
116
  'text' => ''
117
  ),
118
  'labelColor' => array(
119
+ 'label' => __('Buttons Text Color', 'grand-media'),
120
  'tag' => 'input',
121
  'attr' => 'type="text" data-type="color"',
122
  'text' => ''
123
  ),
124
  'labelColorOver' => array(
125
+ 'label' => __('Buttons Text Color on MouseOver', 'grand-media'),
126
  'tag' => 'input',
127
  'attr' => 'type="text" data-type="color"',
128
  'text' => ''
129
  ),
130
  'backgroundColorButton' => array(
131
+ 'label' => __('Buttons BG Color', 'grand-media'),
132
  'tag' => 'input',
133
  'attr' => 'type="text" data-type="color"',
134
  'text' => ''
135
  ),
136
  'descriptionBGColor' => array(
137
+ 'label' => __('Description BG Color', 'grand-media'),
138
  'tag' => 'input',
139
  'attr' => 'type="text" data-type="color"',
140
+ 'text' => __('Background for the image description that appears on mouseover', 'grand-media')
141
  ),
142
  'descriptionBGAlpha' => array(
143
+ 'label' => __('Image Description Background Alpha', 'grand-media'),
144
  'tag' => 'input',
145
  'attr' => 'type="number" min="0" max="100" step="5"',
146
+ 'text' => __('Opacity of the image description background', 'grand-media')
147
  ),
148
  'imageTitleColor' => array(
149
+ 'label' => __('Image Title Color', 'grand-media'),
150
  'tag' => 'input',
151
  'attr' => 'type="text" data-type="color"',
152
+ 'text' => __('Color for image title text', 'grand-media')
153
  ),
154
  'galleryTitleFontSize' => array(
155
+ 'label' => __('Gallery Title Font Size', 'grand-media'),
156
  'tag' => 'input',
157
  'attr' => 'type="number" min="10" max="30"',
158
  'text' => ''
159
  ),
160
  'titleFontSize' => array(
161
+ 'label' => __('Image Title Font Size', 'grand-media'),
162
  'tag' => 'input',
163
  'attr' => 'type="number" min="10" max="30"',
164
  'text' => ''
165
  ),
166
  'imageDescriptionColor' => array(
167
+ 'label' => __('Image Description Color', 'grand-media'),
168
  'tag' => 'input',
169
  'attr' => 'type="text" data-type="color"',
170
+ 'text' => __('Color of text for image description', 'grand-media')
171
  ),
172
  'descriptionFontSize' => array(
173
+ 'label' => __('Image Description Font Size', 'grand-media'),
174
  'tag' => 'input',
175
  'attr' => 'type="number" min="10" max="30"',
176
+ 'text' => __('Value from 10 to 30. Default value: 12', 'grand-media')
177
  ),
178
  'linkColor' => array(
179
+ 'label' => __('Link Color (in image description)', 'grand-media'),
180
  'tag' => 'input',
181
  'attr' => 'type="text" data-type="color"',
182
  'text' => ''
183
  )
184
  /*,
185
  'backButtonTextColor' => array(
186
+ 'label' => __('Back Button Text Color', 'grand-media'),
187
  'tag' => 'input',
188
  'attr' => 'type="text" data-type="color"',
189
+ 'text' => __('(only for Full Window template). Default: ffffff', 'grand-media')
190
  ),
191
  'backButtonBgColor' => array(
192
+ 'label' => __('Back Button Background Color', 'grand-media'),
193
  'tag' => 'input',
194
  'attr' => 'type="text" data-type="color"',
195
+ 'text' => __('(only for Full Window template). Default: 000000', 'grand-media')
196
  )*/
197
  )
198
  ),
199
  array(
200
+ 'label' => __('Advanced Settings', 'grand-media'),
201
  'fields' => array(
202
  'customCSS' => array(
203
+ 'label' => __('Custom CSS', 'grand-media'),
204
  'tag' => 'textarea',
205
  'attr' => 'cols="20" rows="10"',
206
+ 'text' => __('You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles', 'grand-media')
207
  )
208
  /*,
209
  'loveLink' => array(
210
+ 'label' => __('Display LoveLink?', 'grand-media'),
211
  'tag' => 'checkbox',
212
  'attr' => '',
213
+ 'text' => __('Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery', 'grand-media')
214
  )*/
215
  )
216
  )
module/phantom/index.php CHANGED
@@ -4,10 +4,10 @@ $module_info = array('base' => 'phantom',
4
  'title' => 'Phantom',
5
  'version' => '3.18',
6
  'author' => 'CodEasily.com',
7
- 'description' => 'This module will help you to easily add a grid gallery to your WordPress website or blog. The gallery is completely customizable, resizable and is compatible with all browsers and devices (iPhone, iPad and Android smartphones).
8
 
9
  Responsive | Social Sharing integrated | Views/Likes Counters Support | Comments Support | Customize each gallery individually | Customizable lightbox | Deeplinking support | Change thumbnail size, border, spacing, transparency, background, controls ...
10
- ',
11
  'type' => 'gallery',
12
  'branch' => '1',
13
  'status' => 'free',
4
  'title' => 'Phantom',
5
  'version' => '3.18',
6
  'author' => 'CodEasily.com',
7
+ 'description' => __('This module will help you to easily add a grid gallery to your WordPress website or blog. The gallery is completely customizable, resizable and is compatible with all browsers and devices (iPhone, iPad and Android smartphones).
8
 
9
  Responsive | Social Sharing integrated | Views/Likes Counters Support | Comments Support | Customize each gallery individually | Customizable lightbox | Deeplinking support | Change thumbnail size, border, spacing, transparency, background, controls ...
10
+ ', 'grand-media'),
11
  'type' => 'gallery',
12
  'branch' => '1',
13
  'status' => 'free',
module/phantom/settings.php CHANGED
@@ -1,390 +1,473 @@
1
  <?php
2
- $default_options = array('per_page' => '100',
3
- 'maxheight' => '0',
4
- 'thumbCols' => '0',
5
- 'thumbRows' => '0',
6
- 'thumbsNavigation' => 'scroll',
7
- 'bgColor' => 'ffffff',
8
- 'bgAlpha' => '0',
9
- 'thumbWidth' => '200',
10
- 'thumbHeight' => '180',
11
- 'thumbWidthMobile' => '150',
12
- 'thumbHeightMobile' => '135',
13
- 'thumbsSpacing' => '8',
14
- 'thumbsVerticalPadding' => '4',
15
- 'thumbsHorizontalPadding' => '4',
16
- 'thumbsAlign' => 'center',
17
- 'thumbScale' => '1',
18
- 'thumbBG' => 'ffffff',
19
- 'thumbAlpha' => '90',
20
- 'thumbAlphaHover' => '100',
21
- 'thumbBorderSize' => '1',
22
- 'thumbBorderColor' => 'cccccc',
23
- 'thumbPadding' => '2',
24
- 'thumbsInfo' => 'label',
25
- 'labelOnHover' => '1',
26
- 'labelTextColor' => 'ffffff',
27
- 'labelLinkColor' => 'e7e179',
28
- 'label8TextColor' => '0b0b0b',
29
- 'label8LinkColor' => '3695E7',
30
- 'tooltipTextColor' => '0b0b0b',
31
- 'tooltipBgColor' => 'ffffff',
32
- 'tooltipStrokeColor' => '000000',
33
- 'lightboxControlsColor' => 'ffffff',
34
- 'lightboxTitleColor' => 'f3f3f3',
35
- 'lightboxTextColor' => 'f3f3f3',
36
- 'lightboxBGColor' => '0b0b0b',
37
- 'lightboxBGAlpha' => '80',
38
- 'commentsBGColor' => 'ffffff',
39
- 'socialShareEnabled' => '1',
40
- 'share_post_link' => '1',
41
- 'deepLinks' => '1',
42
- 'sidebarBGColor' => 'ffffff',
43
- 'lightbox800HideArrows' => '0',
44
- 'viewsEnabled' => '1',
45
- 'likesEnabled' => '1',
46
- 'commentsEnabled' => '1',
47
- 'thumb2link' => '0',
48
- 'link_target' => 'auto',
49
- 'show_title' => '1',
50
- 'show_tags' => '1',
51
- 'show_categories' => '1',
52
- 'show_albums' => '1',
53
- 'show_download_button' => '1',
54
- 'initRPdelay' => '200',
55
- 'customCSS' => ''
 
56
  );
57
- $options_tree = array(array('label' => 'Common Settings',
58
- 'fields' => array('per_page' => array('label' => 'Items Per Page',
59
- 'tag' => 'input',
60
- 'attr' => 'type="number" min="1"',
61
- 'text' => '(ignored if there is "per_page" parameter in the Query Args.)'
62
- ),
63
- 'maxheight' => array('label' => 'Max-Height',
64
- 'tag' => 'input',
65
- 'attr' => 'type="number" min="0" data-watch="change"',
66
- 'text' => 'Set the maximum height of the gallery. Leave 0 to disable max-height. If value is 0, then Thumbnail Rows value ignored and Thumbnail Columns is a max value'
67
- ),
68
- 'thumbCols' => array('label' => 'Thumbnail Columns',
69
- 'tag' => 'input',
70
- 'attr' => 'type="number" min="0"',
71
- 'text' => 'Number of Columns (number, 0 = auto). Set the number of columns for the grid. If value is 0, then number of columns will be relative to content width or relative to Thumbnail Rows (if rows not auto). This will be ignored if Height value is 0'
72
- ),
73
- 'thumbRows' => array('label' => 'Thumbnail Rows',
74
- 'tag' => 'input',
75
- 'attr' => 'type="number" min="0"',
76
- 'text' => 'Number of Lines (number, 0 = auto). Default value: 0. Set the number of lines for the grid. This will be ignored if Thumbnail Columns value is not 0 or if Height value is 0'
77
- ),
78
- 'thumbsNavigation' => array('label' => 'Grid Navigation',
79
- 'tag' => 'select',
80
- 'attr' => 'data-maxheight="!=:0"',
81
- 'text' => 'Set how you navigate through the thumbnails. Ignore this option if Height value is 0',
82
- 'choices' => array(array('label' => 'Mouse Move',
83
- 'value' => 'mouse'
84
- ),
85
- array('label' => 'Scroll Bars',
86
- 'value' => 'scroll'
87
- )
88
- )
 
 
 
 
 
 
 
 
 
 
 
89
 
90
- ),
91
- 'bgColor' => array('label' => 'Background Color',
92
- 'tag' => 'input',
93
- 'attr' => 'type="text" data-type="color"',
94
- 'text' => 'Set gallery background color'
95
- ),
96
- 'bgAlpha' => array('label' => 'Background Alpha',
97
- 'tag' => 'input',
98
- 'attr' => 'type="number" min="0" max="100" step="5"',
99
- 'text' => 'Set gallery background alpha opacity'
100
- ),
101
- 'thumb2link' => array('label' => 'Thumbnail to Link',
102
- 'tag' => 'checkbox',
103
- 'attr' => '',
104
- 'text' => 'If item have Link, then open Link instead of lightbox. Note: Link also will be available via item Title on the thumbnail\'s label and in the lightbox'
105
- ),
106
- 'link_target' => array('label' => 'Link Target',
107
- 'tag' => 'select',
108
- 'attr' => '',
109
- 'text' => '"_self" to open links in same window; "_blank" to open in new tab. Could be overwrited via "link_target" custom field',
110
- 'choices' => array(array('label' => 'auto (only external links in new tab)',
111
- 'value' => 'auto'
112
- ),
113
- array('label' => '_self',
114
- 'value' => '_self'
115
- ),
116
- array('label' => '_blank',
117
- 'value' => '_blank'
118
- )
119
- )
 
 
 
 
 
 
 
 
120
 
121
- ),
122
- 'deepLinks' => array('label' => 'Deep Links',
123
- 'tag' => 'checkbox',
124
- 'attr' => '',
125
- 'text' => 'Change URL hash in the address bar for each big image'
126
- ),
127
- 'viewsEnabled' => array('label' => 'Views Counter',
128
- 'tag' => 'checkbox',
129
- 'attr' => '',
130
- 'text' => 'Show Views counter?'
131
- ),
132
- 'likesEnabled' => array('label' => 'Like Button',
133
- 'tag' => 'checkbox',
134
- 'attr' => '',
135
- 'text' => 'Enable Like Button?'
136
- ),
137
- 'commentsEnabled' => array('label' => 'Comments',
138
- 'tag' => 'checkbox',
139
- 'attr' => '',
140
- 'text' => 'Enable Comments?'
141
- ),
142
- 'socialShareEnabled' => array('label' => 'Show Share Button',
143
- 'tag' => 'checkbox',
144
- 'attr' => 'data-watch="change"',
145
- 'text' => ''
146
- ),
147
- 'share_post_link' => array('label' => 'Share link to Gmedia Post',
148
- 'tag' => 'checkbox',
149
- 'attr' => 'data-socialshareenabled="is:1"',
150
- 'text' => 'Share link to the individual Gmedia Post instead of to the image in gallery.'
151
- ),
152
- 'show_title' => array('label' => 'Show Title in Lightbox',
153
- 'tag' => 'checkbox',
154
- 'attr' => '',
155
- 'text' => ''
156
- ),
157
- 'show_tags' => array('label' => 'Show Tags',
158
- 'tag' => 'checkbox',
159
- 'attr' => '',
160
- 'text' => ''
161
- ),
162
- 'show_categories' => array('label' => 'Show Categories',
163
- 'tag' => 'checkbox',
164
- 'attr' => '',
165
- 'text' => ''
166
- ),
167
- 'show_albums' => array('label' => 'Show Album',
168
- 'tag' => 'checkbox',
169
- 'attr' => '',
170
- 'text' => ''
171
- ),
172
- 'show_download_button' => array('label' => 'Show Download Button',
173
- 'tag' => 'checkbox',
174
- 'attr' => '',
175
- 'text' => ''
176
- ),
177
- )
178
- ),
179
- array('label' => 'Thumb Grid General',
180
- 'fields' => array('thumbWidth' => array('label' => 'Thumbnail Width',
181
- 'tag' => 'input',
182
- 'attr' => 'type="number" min="10" max="400"',
183
- 'text' => ''
184
- ),
185
- 'thumbHeight' => array('label' => 'Thumbnail Height',
186
- 'tag' => 'input',
187
- 'attr' => 'type="number" min="10" max="400"',
188
- 'text' => ''
189
- ),
190
- 'thumbWidthMobile' => array('label' => 'Thumbnail Width Mobile',
191
- 'tag' => 'input',
192
- 'attr' => 'type="number" min="10" max="400"',
193
- 'text' => 'Set width for thumbnail if window width is less than 640px'
194
- ),
195
- 'thumbHeightMobile' => array('label' => 'Thumbnail Height Mobile',
196
- 'tag' => 'input',
197
- 'attr' => 'type="number" min="10" max="400"',
198
- 'text' => 'Set height for thumbnail if window width is less than 640px'
199
- ),
200
- 'thumbsSpacing' => array('label' => 'Thumbnails Spacing',
201
- 'tag' => 'input',
202
- 'attr' => 'type="number" min="0"',
203
- 'text' => 'Set the space between thumbnails'
204
- ),
205
- 'thumbsVerticalPadding' => array('label' => 'Grid Vertical Padding',
206
- 'tag' => 'input',
207
- 'attr' => 'type="number" min="0"',
208
- 'text' => 'Set the vertical padding for the thumbnails grid'
209
- ),
210
- 'thumbsHorizontalPadding' => array('label' => 'Grid Horizontal Padding',
211
- 'tag' => 'input',
212
- 'attr' => 'type="number" min="0"',
213
- 'text' => 'Set the horizontal padding for the thumbnails grid'
214
- ),
215
- 'thumbsAlign' => array('label' => 'Thumbnails Align',
216
- 'tag' => 'select',
217
- 'attr' => '',
218
- 'text' => 'Align thumbnails grid in container. Applied only if grid width less than gallery width',
219
- 'choices' => array(array('label' => 'Left',
220
- 'value' => 'left'
221
- ),
222
- array('label' => 'Center',
223
- 'value' => 'center'
224
- ),
225
- array('label' => 'Right',
226
- 'value' => 'right'
227
- )
228
- )
229
- )
230
- )
231
- ),
232
- array('label' => 'Thumbnail Style',
233
- 'fields' => array('thumbScale' => array('label' => 'Thumbnail Scale on mouseover',
234
- 'tag' => 'checkbox',
235
- 'attr' => '',
236
- 'text' => ''
237
- ),
238
- 'thumbBG' => array('label' => 'Thumbnail Container Background',
239
- 'tag' => 'input',
240
- 'attr' => 'type="text" data-type="color"',
241
- 'text' => 'Set empty for transparent background'
242
- ),
243
- 'thumbAlpha' => array('label' => 'Thumbnail Alpha',
244
- 'tag' => 'input',
245
- 'attr' => 'type="number" min="0" max="100" step="5"',
246
- 'text' => 'Set the transparency of a thumbnail'
247
- ),
248
- 'thumbAlphaHover' => array('label' => 'Thumbnail Alpha Hover',
249
- 'tag' => 'input',
250
- 'attr' => 'type="number" min="0" max="100" step="5"',
251
- 'text' => 'Set the transparancy of a thumbnail when hover'
252
- ),
253
- 'thumbBorderSize' => array('label' => 'Thumbnail Border Size',
254
- 'tag' => 'input',
255
- 'attr' => 'type="number" min="0"',
256
- 'text' => 'Set border size for thumbnail'
257
- ),
258
- 'thumbBorderColor' => array('label' => 'Thumbnail Border Color',
259
- 'tag' => 'input',
260
- 'attr' => 'type="text" data-type="color"',
261
- 'text' => 'Set the color of a thumbnail\'s border'
262
- ),
263
- 'thumbPadding' => array('label' => 'Thumbnail Padding',
264
- 'tag' => 'input',
265
- 'attr' => 'type="number" min="0"',
266
- 'text' => 'Set padding for the thumbnail'
267
- )
268
- )
269
- ),
270
- array('label' => 'Thumbnails Title',
271
- 'fields' => array('thumbsInfo' => array('label' => 'Display Thumbnails Title',
272
- 'tag' => 'select',
273
- 'attr' => 'data-watch="change"',
274
- 'text' => 'Default value: Label. Display a small info text on the thumbnails, a tooltip or a label.',
275
- 'choices' => array(array('label' => 'Label Over Image',
276
- 'value' => 'label'
277
- ),
278
- array('label' => 'Label Under Image',
279
- 'value' => 'label_bottom'
280
- ),
281
- array('label' => 'Tooltip',
282
- 'value' => 'tooltip'
283
- ),
284
- array('label' => 'None',
285
- 'value' => 'none'
286
- )
287
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
 
289
- ),
290
- 'labelOnHover' => array('label' => 'Show Label on Mouseover',
291
- 'tag' => 'checkbox',
292
- 'attr' => 'data-thumbsinfo="is:label:0"',
293
- 'text' => 'Uncheck to show thumbnail\'s label all time'
294
- ),
295
- 'labelTextColor' => array('label' => 'Label-Over Text Color',
296
- 'tag' => 'input',
297
- 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:label"',
298
- 'text' => 'Set Label-Over text color'
299
- ),
300
- 'labelLinkColor' => array('label' => 'Label-Over Link Color',
301
- 'tag' => 'input',
302
- 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:label"',
303
- 'text' => 'Set Label-Over link color'
304
- ),
305
- 'label8TextColor' => array('label' => 'Label Text Color',
306
- 'tag' => 'input',
307
- 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:label_bottom"',
308
- 'text' => 'Set Label text color'
309
- ),
310
- 'label8LinkColor' => array('label' => 'Label Link Color',
311
- 'tag' => 'input',
312
- 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:label_bottom"',
313
- 'text' => 'Set Label-Bottom link color'
314
- ),
315
- 'tooltipTextColor' => array('label' => 'Tooltip Text Color',
316
- 'tag' => 'input',
317
- 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:tooltip"',
318
- 'text' => 'Set Tooltip text color'
319
- ),
320
- 'tooltipBgColor' => array('label' => 'Tooltip Background Color',
321
- 'tag' => 'input',
322
- 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:tooltip"',
323
- 'text' => 'Set tooltip background color. Ignore this if Display Thumbnails Title value is not Tooltip'
324
- ),
325
- 'tooltipStrokeColor' => array('label' => 'Tooltip Stroke Color',
326
- 'tag' => 'input',
327
- 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:tooltip"',
328
- 'text' => 'Set tooltip stroke color. Ignore this if Display Thumbnails Title value is not Tooltip'
329
- )
330
- )
331
- ),
332
- array('label' => 'Lightbox Settings',
333
- 'fields' => array('lightboxControlsColor' => array('label' => 'Lightbox Controls / Buttons Color',
334
- 'tag' => 'input',
335
- 'attr' => 'type="text" data-type="color"',
336
- 'text' => 'Set the color for lightbox control buttons'
337
- ),
338
- 'lightboxTitleColor' => array('label' => 'Lightbox Image Title Color',
339
- 'tag' => 'input',
340
- 'attr' => 'type="text" data-type="color"',
341
- 'text' => 'Set the text color for image title'
342
- ),
343
- 'lightboxTextColor' => array('label' => 'Lightbox Image Description Color',
344
- 'tag' => 'input',
345
- 'attr' => 'type="text" data-type="color"',
346
- 'text' => 'Set the text color for image caption'
347
- ),
348
- 'lightboxBGColor' => array('label' => 'Lightbox Window Color',
349
- 'tag' => 'input',
350
- 'attr' => 'type="text" data-type="color"',
351
- 'text' => 'Set the background color for the lightbox window'
352
- ),
353
- 'lightboxBGAlpha' => array('label' => 'Lightbox Window Alpha',
354
- 'tag' => 'input',
355
- 'attr' => 'type="number" min="0" max="100" step="5"',
356
- 'text' => 'Set the transparancy for the lightbox window'
357
- ),
358
- 'sidebarBGColor' => array('label' => 'Comments Block BG Color',
359
- 'tag' => 'input',
360
- 'attr' => 'type="text" data-type="color"',
361
- 'text' => 'Set the background color for the comments block'
362
- ),
363
- 'lightbox800HideArrows' => array('label' => 'Hide Arrows when small window',
364
- 'tag' => 'checkbox',
365
- 'attr' => '',
366
- 'text' => 'Hide Arrows if window width less than 800px'
367
- )
368
- )
369
- ),
370
- array('label' => 'Advanced Settings',
371
- 'fields' => array('initRPdelay' => array('label' => 'Delay for Thumbnail Positioning',
372
- 'tag' => 'input',
373
- 'attr' => 'type="number" min="0" max="5000" step="1"',
374
- 'text' => 'Set delay in miliseconds. Set more if gallery render wrong grid.'
375
- ),
376
- 'customCSS' => array('label' => 'Custom CSS',
377
- 'tag' => 'textarea',
378
- 'attr' => 'cols="20" rows="10"',
379
- 'text' => 'You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles'
380
- )
381
- /*,
382
- 'loveLink' => array(
383
- 'label' => 'Display LoveLink?',
384
- 'tag' => 'checkbox',
385
- 'attr' => '',
386
- 'text' => 'Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery'
387
- )*/
388
- )
389
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
390
  );
1
  <?php
2
+ $default_options = array(
3
+ 'per_page' => '100',
4
+ 'maxheight' => '0',
5
+ 'thumbCols' => '0',
6
+ 'thumbRows' => '0',
7
+ 'thumbsNavigation' => 'scroll',
8
+ 'bgColor' => 'ffffff',
9
+ 'bgAlpha' => '0',
10
+ 'thumbWidth' => '200',
11
+ 'thumbHeight' => '180',
12
+ 'thumbWidthMobile' => '150',
13
+ 'thumbHeightMobile' => '135',
14
+ 'thumbsSpacing' => '8',
15
+ 'thumbsVerticalPadding' => '4',
16
+ 'thumbsHorizontalPadding' => '4',
17
+ 'thumbsAlign' => 'center',
18
+ 'thumbScale' => '1',
19
+ 'thumbBG' => 'ffffff',
20
+ 'thumbAlpha' => '90',
21
+ 'thumbAlphaHover' => '100',
22
+ 'thumbBorderSize' => '1',
23
+ 'thumbBorderColor' => 'cccccc',
24
+ 'thumbPadding' => '2',
25
+ 'thumbsInfo' => 'label',
26
+ 'labelOnHover' => '1',
27
+ 'labelTextColor' => 'ffffff',
28
+ 'labelLinkColor' => 'e7e179',
29
+ 'label8TextColor' => '0b0b0b',
30
+ 'label8LinkColor' => '3695E7',
31
+ 'tooltipTextColor' => '0b0b0b',
32
+ 'tooltipBgColor' => 'ffffff',
33
+ 'tooltipStrokeColor' => '000000',
34
+ 'lightboxControlsColor' => 'ffffff',
35
+ 'lightboxTitleColor' => 'f3f3f3',
36
+ 'lightboxTextColor' => 'f3f3f3',
37
+ 'lightboxBGColor' => '0b0b0b',
38
+ 'lightboxBGAlpha' => '80',
39
+ 'commentsBGColor' => 'ffffff',
40
+ 'socialShareEnabled' => '1',
41
+ 'share_post_link' => '1',
42
+ 'deepLinks' => '1',
43
+ 'sidebarBGColor' => 'ffffff',
44
+ 'lightbox800HideArrows' => '0',
45
+ 'viewsEnabled' => '1',
46
+ 'likesEnabled' => '1',
47
+ 'commentsEnabled' => '1',
48
+ 'thumb2link' => '0',
49
+ 'link_target' => 'auto',
50
+ 'show_title' => '1',
51
+ 'show_tags' => '1',
52
+ 'show_categories' => '1',
53
+ 'show_albums' => '1',
54
+ 'show_download_button' => '1',
55
+ 'initRPdelay' => '200',
56
+ 'customCSS' => ''
57
  );
58
+ $options_tree = array(
59
+ array(
60
+ 'label' => __('Common Settings', 'grand-media'),
61
+ 'fields' => array(
62
+ 'per_page' => array(
63
+ 'label' => __('Items Per Page', 'grand-media'),
64
+ 'tag' => 'input',
65
+ 'attr' => 'type="number" min="1"',
66
+ 'text' => __('(ignored if there is "per_page" parameter in the Query Args.)', 'grand-media')
67
+ ),
68
+ 'maxheight' => array(
69
+ 'label' => __('Max-Height', 'grand-media'),
70
+ 'tag' => 'input',
71
+ 'attr' => 'type="number" min="0" data-watch="change"',
72
+ 'text' => __('Set the maximum height of the gallery. Leave 0 to disable max-height. If value is 0, then Thumbnail Rows value ignored and Thumbnail Columns is a max value', 'grand-media')
73
+ ),
74
+ 'thumbCols' => array(
75
+ 'label' => __('Thumbnail Columns', 'grand-media'),
76
+ 'tag' => 'input',
77
+ 'attr' => 'type="number" min="0"',
78
+ 'text' => __('Number of Columns (number, 0 = auto). Set the number of columns for the grid. If value is 0, then number of columns will be relative to content width or relative to Thumbnail Rows (if rows not auto). This will be ignored if Height value is 0', 'grand-media')
79
+ ),
80
+ 'thumbRows' => array(
81
+ 'label' => __('Thumbnail Rows', 'grand-media'),
82
+ 'tag' => 'input',
83
+ 'attr' => 'type="number" min="0"',
84
+ 'text' => __('Number of Lines (number, 0 = auto). Default value: 0. Set the number of lines for the grid. This will be ignored if Thumbnail Columns value is not 0 or if Height value is 0', 'grand-media')
85
+ ),
86
+ 'thumbsNavigation' => array(
87
+ 'label' => __('Grid Navigation', 'grand-media'),
88
+ 'tag' => 'select',
89
+ 'attr' => 'data-maxheight="!=:0"',
90
+ 'text' => __('Set how you navigate through the thumbnails. Ignore this option if Height value is 0', 'grand-media'),
91
+ 'choices' => array(
92
+ array(
93
+ 'label' => __('Mouse Move', 'grand-media'),
94
+ 'value' => 'mouse'
95
+ ),
96
+ array(
97
+ 'label' => __('Scroll Bars', 'grand-media'),
98
+ 'value' => 'scroll'
99
+ )
100
+ )
101
 
102
+ ),
103
+ 'bgColor' => array(
104
+ 'label' => __('Background Color', 'grand-media'),
105
+ 'tag' => 'input',
106
+ 'attr' => 'type="text" data-type="color"',
107
+ 'text' => __('Set gallery background color', 'grand-media')
108
+ ),
109
+ 'bgAlpha' => array(
110
+ 'label' => __('Background Alpha', 'grand-media'),
111
+ 'tag' => 'input',
112
+ 'attr' => 'type="number" min="0" max="100" step="5"',
113
+ 'text' => __('Set gallery background alpha opacity', 'grand-media')
114
+ ),
115
+ 'thumb2link' => array(
116
+ 'label' => __('Thumbnail to Link', 'grand-media'),
117
+ 'tag' => 'checkbox',
118
+ 'attr' => '',
119
+ 'text' => __('If item have Link, then open Link instead of lightbox. Note: Link also will be available via item Title on the thumbnail\'s label and in the lightbox', 'grand-media')
120
+ ),
121
+ 'link_target' => array(
122
+ 'label' => __('Link Target', 'grand-media'),
123
+ 'tag' => 'select',
124
+ 'attr' => '',
125
+ 'text' => __('"_self" to open links in same window; "_blank" to open in new tab. Could be overwrited via "link_target" custom field', 'grand-media'),
126
+ 'choices' => array(
127
+ array(
128
+ 'label' => __('auto (only external links in new tab)', 'grand-media'),
129
+ 'value' => 'auto'
130
+ ),
131
+ array(
132
+ 'label' => __('_self', 'grand-media'),
133
+ 'value' => '_self'
134
+ ),
135
+ array(
136
+ 'label' => __('_blank', 'grand-media'),
137
+ 'value' => '_blank'
138
+ )
139
+ )
140
 
141
+ ),
142
+ 'deepLinks' => array(
143
+ 'label' => __('Deep Links', 'grand-media'),
144
+ 'tag' => 'checkbox',
145
+ 'attr' => '',
146
+ 'text' => __('Change URL hash in the address bar for each big image', 'grand-media')
147
+ ),
148
+ 'viewsEnabled' => array(
149
+ 'label' => __('Views Counter', 'grand-media'),
150
+ 'tag' => 'checkbox',
151
+ 'attr' => '',
152
+ 'text' => __('Show Views counter?', 'grand-media')
153
+ ),
154
+ 'likesEnabled' => array(
155
+ 'label' => __('Like Button', 'grand-media'),
156
+ 'tag' => 'checkbox',
157
+ 'attr' => '',
158
+ 'text' => __('Enable Like Button?', 'grand-media')
159
+ ),
160
+ 'commentsEnabled' => array(
161
+ 'label' => __('Comments', 'grand-media'),
162
+ 'tag' => 'checkbox',
163
+ 'attr' => '',
164
+ 'text' => __('Enable Comments?', 'grand-media')
165
+ ),
166
+ 'socialShareEnabled' => array(
167
+ 'label' => __('Show Share Button', 'grand-media'),
168
+ 'tag' => 'checkbox',
169
+ 'attr' => 'data-watch="change"',
170
+ 'text' => ''
171
+ ),
172
+ 'share_post_link' => array(
173
+ 'label' => __('Share link to Gmedia Post', 'grand-media'),
174
+ 'tag' => 'checkbox',
175
+ 'attr' => 'data-socialshareenabled="is:1"',
176
+ 'text' => __('Share link to the individual Gmedia Post instead of to the image in gallery.', 'grand-media')
177
+ ),
178
+ 'show_title' => array(
179
+ 'label' => __('Show Title in Lightbox', 'grand-media'),
180
+ 'tag' => 'checkbox',
181
+ 'attr' => '',
182
+ 'text' => ''
183
+ ),
184
+ 'show_tags' => array(
185
+ 'label' => __('Show Tags', 'grand-media'),
186
+ 'tag' => 'checkbox',
187
+ 'attr' => '',
188
+ 'text' => ''
189
+ ),
190
+ 'show_categories' => array(
191
+ 'label' => __('Show Categories', 'grand-media'),
192
+ 'tag' => 'checkbox',
193
+ 'attr' => '',
194
+ 'text' => ''
195
+ ),
196
+ 'show_albums' => array(
197
+ 'label' => __('Show Album', 'grand-media'),
198
+ 'tag' => 'checkbox',
199
+ 'attr' => '',
200
+ 'text' => ''
201
+ ),
202
+ 'show_download_button' => array(
203
+ 'label' => __('Show Download Button', 'grand-media'),
204
+ 'tag' => 'checkbox',
205
+ 'attr' => '',
206
+ 'text' => ''
207
+ ),
208
+ )
209
+ ),
210
+ array(
211
+ 'label' => __('Thumb Grid General', 'grand-media'),
212
+ 'fields' => array(
213
+ 'thumbWidth' => array(
214
+ 'label' => __('Thumbnail Width', 'grand-media'),
215
+ 'tag' => 'input',
216
+ 'attr' => 'type="number" min="10" max="400"',
217
+ 'text' => ''
218
+ ),
219
+ 'thumbHeight' => array(
220
+ 'label' => __('Thumbnail Height', 'grand-media'),
221
+ 'tag' => 'input',
222
+ 'attr' => 'type="number" min="10" max="400"',
223
+ 'text' => ''
224
+ ),
225
+ 'thumbWidthMobile' => array(
226
+ 'label' => __('Thumbnail Width Mobile', 'grand-media'),
227
+ 'tag' => 'input',
228
+ 'attr' => 'type="number" min="10" max="400"',
229
+ 'text' => __('Set width for thumbnail if window width is less than 640px', 'grand-media')
230
+ ),
231
+ 'thumbHeightMobile' => array(
232
+ 'label' => __('Thumbnail Height Mobile', 'grand-media'),
233
+ 'tag' => 'input',
234
+ 'attr' => 'type="number" min="10" max="400"',
235
+ 'text' => __('Set height for thumbnail if window width is less than 640px', 'grand-media')
236
+ ),
237
+ 'thumbsSpacing' => array(
238
+ 'label' => __('Thumbnails Spacing', 'grand-media'),
239
+ 'tag' => 'input',
240
+ 'attr' => 'type="number" min="0"',
241
+ 'text' => __('Set the space between thumbnails', 'grand-media')
242
+ ),
243
+ 'thumbsVerticalPadding' => array(
244
+ 'label' => __('Grid Vertical Padding', 'grand-media'),
245
+ 'tag' => 'input',
246
+ 'attr' => 'type="number" min="0"',
247
+ 'text' => __('Set the vertical padding for the thumbnails grid', 'grand-media')
248
+ ),
249
+ 'thumbsHorizontalPadding' => array(
250
+ 'label' => __('Grid Horizontal Padding', 'grand-media'),
251
+ 'tag' => 'input',
252
+ 'attr' => 'type="number" min="0"',
253
+ 'text' => __('Set the horizontal padding for the thumbnails grid', 'grand-media')
254
+ ),
255
+ 'thumbsAlign' => array(
256
+ 'label' => __('Thumbnails Align', 'grand-media'),
257
+ 'tag' => 'select',
258
+ 'attr' => '',
259
+ 'text' => __('Align thumbnails grid in container. Applied only if grid width less than gallery width', 'grand-media'),
260
+ 'choices' => array(
261
+ array(
262
+ 'label' => __('Left', 'grand-media'),
263
+ 'value' => 'left'
264
+ ),
265
+ array(
266
+ 'label' => __('Center', 'grand-media'),
267
+ 'value' => 'center'
268
+ ),
269
+ array(
270
+ 'label' => __('Right', 'grand-media'),
271
+ 'value' => 'right'
272
+ )
273
+ )
274
+ )
275
+ )
276
+ ),
277
+ array(
278
+ 'label' => __('Thumbnail Style', 'grand-media'),
279
+ 'fields' => array(
280
+ 'thumbScale' => array(
281
+ 'label' => __('Thumbnail Scale on mouseover', 'grand-media'),
282
+ 'tag' => 'checkbox',
283
+ 'attr' => '',
284
+ 'text' => ''
285
+ ),
286
+ 'thumbBG' => array(
287
+ 'label' => __('Thumbnail Container Background', 'grand-media'),
288
+ 'tag' => 'input',
289
+ 'attr' => 'type="text" data-type="color"',
290
+ 'text' => __('Set empty for transparent background', 'grand-media')
291
+ ),
292
+ 'thumbAlpha' => array(
293
+ 'label' => __('Thumbnail Alpha', 'grand-media'),
294
+ 'tag' => 'input',
295
+ 'attr' => 'type="number" min="0" max="100" step="5"',
296
+ 'text' => __('Set the transparency of a thumbnail', 'grand-media')
297
+ ),
298
+ 'thumbAlphaHover' => array(
299
+ 'label' => __('Thumbnail Alpha Hover', 'grand-media'),
300
+ 'tag' => 'input',
301
+ 'attr' => 'type="number" min="0" max="100" step="5"',
302
+ 'text' => __('Set the transparancy of a thumbnail when hover', 'grand-media')
303
+ ),
304
+ 'thumbBorderSize' => array(
305
+ 'label' => __('Thumbnail Border Size', 'grand-media'),
306
+ 'tag' => 'input',
307
+ 'attr' => 'type="number" min="0"',
308
+ 'text' => __('Set border size for thumbnail', 'grand-media')
309
+ ),
310
+ 'thumbBorderColor' => array(
311
+ 'label' => __('Thumbnail Border Color', 'grand-media'),
312
+ 'tag' => 'input',
313
+ 'attr' => 'type="text" data-type="color"',
314
+ 'text' => __('Set the color of a thumbnail\'s border', 'grand-media')
315
+ ),
316
+ 'thumbPadding' => array(
317
+ 'label' => __('Thumbnail Padding', 'grand-media'),
318
+ 'tag' => 'input',
319
+ 'attr' => 'type="number" min="0"',
320
+ 'text' => __('Set padding for the thumbnail', 'grand-media')
321
+ )
322
+ )
323
+ ),
324
+ array(
325
+ 'label' => __('Thumbnails Title', 'grand-media'),
326
+ 'fields' => array(
327
+ 'thumbsInfo' => array(
328
+ 'label' => __('Display Thumbnails Title', 'grand-media'),
329
+ 'tag' => 'select',
330
+ 'attr' => 'data-watch="change"',
331
+ 'text' => __('Default value: Label. Display a small info text on the thumbnails, a tooltip or a label.', 'grand-media'),
332
+ 'choices' => array(
333
+ array(
334
+ 'label' => __('Label Over Image', 'grand-media'),
335
+ 'value' => 'label'
336
+ ),
337
+ array(
338
+ 'label' => __('Label Under Image', 'grand-media'),
339
+ 'value' => 'label_bottom'
340
+ ),
341
+ array(
342
+ 'label' => __('Tooltip', 'grand-media'),
343
+ 'value' => 'tooltip'
344
+ ),
345
+ array(
346
+ 'label' => __('None', 'grand-media'),
347
+ 'value' => 'none'
348
+ )
349
+ )
350
 
351
+ ),
352
+ 'labelOnHover' => array(
353
+ 'label' => __('Show Label on Mouseover', 'grand-media'),
354
+ 'tag' => 'checkbox',
355
+ 'attr' => 'data-thumbsinfo="is:label:0"',
356
+ 'text' => __('Uncheck to show thumbnail\'s label all time', 'grand-media')
357
+ ),
358
+ 'labelTextColor' => array(
359
+ 'label' => __('Label-Over Text Color', 'grand-media'),
360
+ 'tag' => 'input',
361
+ 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:label"',
362
+ 'text' => __('Set Label-Over text color', 'grand-media')
363
+ ),
364
+ 'labelLinkColor' => array(
365
+ 'label' => __('Label-Over Link Color', 'grand-media'),
366
+ 'tag' => 'input',
367
+ 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:label"',
368
+ 'text' => __('Set Label-Over link color', 'grand-media')
369
+ ),
370
+ 'label8TextColor' => array(
371
+ 'label' => __('Label Text Color', 'grand-media'),
372
+ 'tag' => 'input',
373
+ 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:label_bottom"',
374
+ 'text' => __('Set Label text color', 'grand-media')
375
+ ),
376
+ 'label8LinkColor' => array(
377
+ 'label' => __('Label Link Color', 'grand-media'),
378
+ 'tag' => 'input',
379
+ 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:label_bottom"',
380
+ 'text' => __('Set Label-Bottom link color', 'grand-media')
381
+ ),
382
+ 'tooltipTextColor' => array(
383
+ 'label' => __('Tooltip Text Color', 'grand-media'),
384
+ 'tag' => 'input',
385
+ 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:tooltip"',
386
+ 'text' => __('Set Tooltip text color', 'grand-media')
387
+ ),
388
+ 'tooltipBgColor' => array(
389
+ 'label' => __('Tooltip Background Color', 'grand-media'),
390
+ 'tag' => 'input',
391
+ 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:tooltip"',
392
+ 'text' => __('Set tooltip background color. Ignore this if Display Thumbnails Title value is not Tooltip', 'grand-media')
393
+ ),
394
+ 'tooltipStrokeColor' => array(
395
+ 'label' => __('Tooltip Stroke Color', 'grand-media'),
396
+ 'tag' => 'input',
397
+ 'attr' => 'type="text" data-type="color" data-thumbsinfo="is:tooltip"',
398
+ 'text' => __('Set tooltip stroke color. Ignore this if Display Thumbnails Title value is not Tooltip', 'grand-media')
399
+ )
400
+ )
401
+ ),
402
+ array(
403
+ 'label' => __('Lightbox Settings', 'grand-media'),
404
+ 'fields' => array(
405
+ 'lightboxControlsColor' => array(
406
+ 'label' => __('Lightbox Controls / Buttons Color', 'grand-media'),
407
+ 'tag' => 'input',
408
+ 'attr' => 'type="text" data-type="color"',
409
+ 'text' => __('Set the color for lightbox control buttons', 'grand-media')
410
+ ),
411
+ 'lightboxTitleColor' => array(
412
+ 'label' => __('Lightbox Image Title Color', 'grand-media'),
413
+ 'tag' => 'input',
414
+ 'attr' => 'type="text" data-type="color"',
415
+ 'text' => __('Set the text color for image title', 'grand-media')
416
+ ),
417
+ 'lightboxTextColor' => array(
418
+ 'label' => __('Lightbox Image Description Color', 'grand-media'),
419
+ 'tag' => 'input',
420
+ 'attr' => 'type="text" data-type="color"',
421
+ 'text' => __('Set the text color for image caption', 'grand-media')
422
+ ),
423
+ 'lightboxBGColor' => array(
424
+ 'label' => __('Lightbox Window Color', 'grand-media'),
425
+ 'tag' => 'input',
426
+ 'attr' => 'type="text" data-type="color"',
427
+ 'text' => __('Set the background color for the lightbox window', 'grand-media')
428
+ ),
429
+ 'lightboxBGAlpha' => array(
430
+ 'label' => __('Lightbox Window Alpha', 'grand-media'),
431
+ 'tag' => 'input',
432
+ 'attr' => 'type="number" min="0" max="100" step="5"',
433
+ 'text' => __('Set the transparancy for the lightbox window', 'grand-media')
434
+ ),
435
+ 'sidebarBGColor' => array(
436
+ 'label' => __('Comments Block BG Color', 'grand-media'),
437
+ 'tag' => 'input',
438
+ 'attr' => 'type="text" data-type="color"',
439
+ 'text' => __('Set the background color for the comments block', 'grand-media')
440
+ ),
441
+ 'lightbox800HideArrows' => array(
442
+ 'label' => __('Hide Arrows when small window', 'grand-media'),
443
+ 'tag' => 'checkbox',
444
+ 'attr' => '',
445
+ 'text' => __('Hide Arrows if window width less than 800px', 'grand-media')
446
+ )
447
+ )
448
+ ),
449
+ array(
450
+ 'label' => __('Advanced Settings', 'grand-media'),
451
+ 'fields' => array(
452
+ 'initRPdelay' => array(
453
+ 'label' => __('Delay for Thumbnail Positioning', 'grand-media'),
454
+ 'tag' => 'input',
455
+ 'attr' => 'type="number" min="0" max="5000" step="1"',
456
+ 'text' => __('Set delay in miliseconds. Set more if gallery render wrong grid.', 'grand-media')
457
+ ),
458
+ 'customCSS' => array(
459
+ 'label' => __('Custom CSS', 'grand-media'),
460
+ 'tag' => 'textarea',
461
+ 'attr' => 'cols="20" rows="10"',
462
+ 'text' => __('You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles', 'grand-media')
463
+ )
464
+ /*,
465
+ 'loveLink' => array(
466
+ 'label' => __('Display LoveLink?', 'grand-media'),
467
+ 'tag' => 'checkbox',
468
+ 'attr' => '',
469
+ 'text' => __('Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery', 'grand-media')
470
+ )*/
471
+ )
472
+ )
473
  );
module/photomania/index.php CHANGED
@@ -5,7 +5,7 @@ $module_info = array(
5
  'title' => 'PhotoMania',
6
  'version' => '1.4',
7
  'author' => 'CodEasily.com',
8
- 'description' => 'Responsive Gallery based on jQuery with keyboard control, displaying thumbs, author, title and optional description, download, link button, like button, full window and full screen mode',
9
  'type' => 'gallery',
10
  'branch' => '1',
11
  'status' => 'free',
5
  'title' => 'PhotoMania',
6
  'version' => '1.4',
7
  'author' => 'CodEasily.com',
8
+ 'description' => __('Responsive Gallery based on jQuery with keyboard control, displaying thumbs, author, title and optional description, download, link button, like button, full window and full screen mode', 'grand-media'),
9
  'type' => 'gallery',
10
  'branch' => '1',
11
  'status' => 'free',
module/photomania/settings.php CHANGED
@@ -21,203 +21,203 @@ $default_options = array(
21
  'show_like_button' => '1',
22
  'link_color' => '0099e5',
23
  'link_color_hover' => '02adea',
24
- 'download_button_text' => 'Download',
25
- 'link_button_text' => 'Open Link',
26
- 'comments_button_text' => 'Discuss',
27
- 'description_title' => 'Description',
28
  'customCSS' => ''
29
  );
30
  $options_tree = array(
31
  array(
32
- 'label' => 'Common Settings',
33
  'fields' => array(
34
  'base_gallery_width' => array(
35
- 'label' => 'Base Width',
36
  'tag' => 'input',
37
  'attr' => 'type="number" min="1"',
38
- 'text' => ''
39
  ),
40
  'base_gallery_height' => array(
41
- 'label' => 'Base Height',
42
  'tag' => 'input',
43
  'attr' => 'type="number" min="1"',
44
- 'text' => 'Slider will autocalculate the ratio based on these values'
45
  ),
46
  'gallery_min_height' => array(
47
- 'label' => 'Minimal Height',
48
  'tag' => 'input',
49
  'attr' => 'type="number" min="230"',
50
- 'text' => ''
51
  ),
52
  'gallery_maximized' => array(
53
- 'label' => 'Auto Height for Each Slide',
54
  'tag' => 'checkbox',
55
  'attr' => '',
56
- 'text' => 'Change slider height on change slide to best fit image in it'
57
  ),
58
  'scale_mode' => array(
59
- 'label' => 'Image Scale Mode',
60
  'tag' => 'select',
61
  'attr' => '',
62
- 'text' => 'Default value: Fit. Note \'Fill\' - can work inproperly on IE browser',
63
  'choices' => array(
64
  array(
65
- 'label' => 'Fit',
66
  'value' => 'fit'
67
  ),
68
  array(
69
- 'label' => 'Fill',
70
  'value' => 'fill'
71
  )
72
  )
73
  ),
74
  'initial_slide' => array(
75
- 'label' => 'Initial Slide',
76
  'tag' => 'input',
77
  'attr' => 'type="number" min="0"',
78
- 'text' => ''
79
  ),
80
  'slideshow_autoplay' => array(
81
- 'label' => 'Autoplay On Load',
82
  'tag' => 'checkbox',
83
  'attr' => '',
84
- 'text' => 'Start slideshow automatically on gallery load'
85
  ),
86
  'slideshow_delay' => array(
87
- 'label' => 'Slideshow Delay',
88
  'tag' => 'input',
89
  'attr' => 'type="number" min="1000"',
90
- 'text' => 'Delay between change slides in miliseconds'
91
  ),
92
  'show_download_button' => array(
93
- 'label' => 'Show Download Button',
94
  'tag' => 'checkbox',
95
  'attr' => 'data-watch="change"',
96
- 'text' => 'Download original file or if custom field with name "download" specified for the item then its value will be used.'
97
  ),
98
  'show_link_button' => array(
99
- 'label' => 'Show Link Button',
100
  'tag' => 'checkbox',
101
  'attr' => 'data-watch="change"',
102
- 'text' => 'Uses link field from the item'
103
  ),
104
  'link_button_target' => array(
105
- 'label' => 'Link Button Target',
106
  'tag' => 'input',
107
  'attr' => 'type="text" placeholder="_self" data-show_link_button="is:1"',
108
- 'text' => '"_self" to open links in same window; "_blank" to open in new tab.'
109
  ),
110
- 'show_comments' => array(
111
- 'label' => 'Show Comments',
112
  'tag' => 'checkbox',
113
  'attr' => '',
114
- 'text' => ''
115
  ),
116
  'show_description' => array(
117
- 'label' => 'Show Slide Description',
118
  'tag' => 'checkbox',
119
  'attr' => 'data-watch="change"',
120
- 'text' => ''
121
  ),
122
  'show_author_avatar' => array(
123
- 'label' => 'Show Author Avatar',
124
  'tag' => 'checkbox',
125
  'attr' => '',
126
- 'text' => ''
127
  ),
128
  'show_share_button' => array(
129
- 'label' => 'Show Share Button',
130
  'tag' => 'checkbox',
131
  'attr' => '',
132
- 'text' => ''
133
  ),
134
  'show_like_button' => array(
135
- 'label' => 'Show Like Button',
136
  'tag' => 'checkbox',
137
  'attr' => '',
138
- 'text' => ''
139
  )
140
  )
141
  ),
142
  array(
143
- 'label' => 'Colors',
144
  'fields' => array(
145
- 'link_color' => array(
146
- 'label' => 'Links and Buttons Color',
147
  'tag' => 'input',
148
  'attr' => 'type="text" data-type="color"',
149
- 'text' => ''
150
  ),
151
- 'link_color_hover' => array(
152
- 'label' => 'Links and Buttons Color on Hover',
153
  'tag' => 'input',
154
  'attr' => 'type="text" data-type="color"',
155
- 'text' => ''
156
  )
157
  )
158
  ),
159
  array(
160
- 'label' => 'Translate Strings',
161
  'fields' => array(
162
  'download_button_text' => array(
163
- 'label' => 'Download Button Name',
164
  'tag' => 'input',
165
  'attr' => 'type="text"',
166
- 'text' => ''
167
  ),
168
  'link_button_text' => array(
169
- 'label' => 'Link Button Name',
170
  'tag' => 'input',
171
  'attr' => 'type="text"',
172
- 'text' => ''
173
  ),
174
  'comments_button_text' => array(
175
- 'label' => 'Comments Button Name',
176
  'tag' => 'input',
177
  'attr' => 'type="text"',
178
- 'text' => ''
179
  ),
180
  'description_title' => array(
181
- 'label' => 'Slide Description Title',
182
  'tag' => 'input',
183
  'attr' => 'type="text"',
184
- 'text' => ''
185
  ),
186
  )
187
  ),
188
  array(
189
- 'label' => 'Advanced Settings',
190
  'fields' => array(
191
  'gallery_focus' => array(
192
- 'label' => 'Full Window Mode on Start',
193
  'tag' => 'checkbox',
194
  'attr' => '',
195
- 'text' => ''
196
  ),
197
  'gallery_focus_maximized' => array(
198
- 'label' => 'Maximized Full Window Mode',
199
  'tag' => 'checkbox',
200
  'attr' => '',
201
- 'text' => ''
202
  ),
203
  'keyboard_help' => array(
204
- 'label' => 'Show Keyboard Help',
205
  'tag' => 'checkbox',
206
  'attr' => '',
207
- 'text' => ''
208
  ),
209
  'customCSS' => array(
210
- 'label' => 'Custom CSS',
211
  'tag' => 'textarea',
212
  'attr' => 'cols="20" rows="10"',
213
- 'text' => 'You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles'
214
  )
215
  /*,
216
  'loveLink' => array(
217
- 'label' => 'Display LoveLink?',
218
  'tag' => 'checkbox',
219
  'attr' => '',
220
- 'text' => 'Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery'
221
  )*/
222
  )
223
  )
21
  'show_like_button' => '1',
22
  'link_color' => '0099e5',
23
  'link_color_hover' => '02adea',
24
+ 'download_button_text' => __('Download', 'grand-media'),
25
+ 'link_button_text' => __('Open Link', 'grand-media'),
26
+ 'comments_button_text' => __('Discuss', 'grand-media'),
27
+ 'description_title' => __('Description', 'grand-media'),
28
  'customCSS' => ''
29
  );
30
  $options_tree = array(
31
  array(
32
+ 'label' => __('Common Settings', 'grand-media'),
33
  'fields' => array(
34
  'base_gallery_width' => array(
35
+ 'label' => __('Base Width', 'grand-media'),
36
  'tag' => 'input',
37
  'attr' => 'type="number" min="1"',
38
+ 'text' => '',
39
  ),
40
  'base_gallery_height' => array(
41
+ 'label' => __('Base Height', 'grand-media'),
42
  'tag' => 'input',
43
  'attr' => 'type="number" min="1"',
44
+ 'text' => __('Slider will autocalculate the ratio based on these values', 'grand-media')
45
  ),
46
  'gallery_min_height' => array(
47
+ 'label' => __('Minimal Height', 'grand-media'),
48
  'tag' => 'input',
49
  'attr' => 'type="number" min="230"',
50
+ 'text' => '',
51
  ),
52
  'gallery_maximized' => array(
53
+ 'label' => __('Auto Height for Each Slide', 'grand-media'),
54
  'tag' => 'checkbox',
55
  'attr' => '',
56
+ 'text' => __('Change slider height on change slide to best fit image in it', 'grand-media')
57
  ),
58
  'scale_mode' => array(
59
+ 'label' => __('Image Scale Mode', 'grand-media'),
60
  'tag' => 'select',
61
  'attr' => '',
62
+ 'text' => __('Default value: Fit. Note \'Fill\' - can work inproperly on IE browser', 'grand-media'),
63
  'choices' => array(
64
  array(
65
+ 'label' => __('Fit', 'grand-media'),
66
  'value' => 'fit'
67
  ),
68
  array(
69
+ 'label' => __('Fill', 'grand-media'),
70
  'value' => 'fill'
71
  )
72
  )
73
  ),
74
  'initial_slide' => array(
75
+ 'label' => __('Initial Slide', 'grand-media'),
76
  'tag' => 'input',
77
  'attr' => 'type="number" min="0"',
78
+ 'text' => '',
79
  ),
80
  'slideshow_autoplay' => array(
81
+ 'label' => __('Autoplay On Load', 'grand-media'),
82
  'tag' => 'checkbox',
83
  'attr' => '',
84
+ 'text' => __('Start slideshow automatically on gallery load', 'grand-media')
85
  ),
86
  'slideshow_delay' => array(
87
+ 'label' => __('Slideshow Delay', 'grand-media'),
88
  'tag' => 'input',
89
  'attr' => 'type="number" min="1000"',
90
+ 'text' => __('Delay between change slides in miliseconds', 'grand-media')
91
  ),
92
  'show_download_button' => array(
93
+ 'label' => __('Show Download Button', 'grand-media'),
94
  'tag' => 'checkbox',
95
  'attr' => 'data-watch="change"',
96
+ 'text' => __('Download original file or if custom field with name "download" specified for the item then its value will be used.', 'grand-media')
97
  ),
98
  'show_link_button' => array(
99
+ 'label' => __('Show Link Button', 'grand-media'),
100
  'tag' => 'checkbox',
101
  'attr' => 'data-watch="change"',
102
+ 'text' => __('Uses link field from the item', 'grand-media')
103
  ),
104
  'link_button_target' => array(
105
+ 'label' => __('Link Button Target', 'grand-media'),
106
  'tag' => 'input',
107
  'attr' => 'type="text" placeholder="_self" data-show_link_button="is:1"',
108
+ 'text' => __('"_self" to open links in same window; "_blank" to open in new tab.', 'grand-media')
109
  ),
110
+ 'show_comments' => array(
111
+ 'label' => __('Show Comments', 'grand-media'),
112
  'tag' => 'checkbox',
113
  'attr' => '',
114
+ 'text' => '',
115
  ),
116
  'show_description' => array(
117
+ 'label' => __('Show Slide Description', 'grand-media'),
118
  'tag' => 'checkbox',
119
  'attr' => 'data-watch="change"',
120
+ 'text' => '',
121
  ),
122
  'show_author_avatar' => array(
123
+ 'label' => __('Show Author Avatar', 'grand-media'),
124
  'tag' => 'checkbox',
125
  'attr' => '',
126
+ 'text' => '',
127
  ),
128
  'show_share_button' => array(
129
+ 'label' => __('Show Share Button', 'grand-media'),
130
  'tag' => 'checkbox',
131
  'attr' => '',
132
+ 'text' => '',
133
  ),
134
  'show_like_button' => array(
135
+ 'label' => __('Show Like Button', 'grand-media'),
136
  'tag' => 'checkbox',
137
  'attr' => '',
138
+ 'text' => '',
139
  )
140
  )
141
  ),
142
  array(
143
+ 'label' => __('Colors', 'grand-media'),
144
  'fields' => array(
145
+ 'link_color' => array(
146
+ 'label' => __('Links and Buttons Color', 'grand-media'),
147
  'tag' => 'input',
148
  'attr' => 'type="text" data-type="color"',
149
+ 'text' => '',
150
  ),
151
+ 'link_color_hover' => array(
152
+ 'label' => __('Links and Buttons Color on Hover', 'grand-media'),
153
  'tag' => 'input',
154
  'attr' => 'type="text" data-type="color"',
155
+ 'text' => '',
156
  )
157
  )
158
  ),
159
  array(
160
+ 'label' => __('Translate Strings', 'grand-media'),
161
  'fields' => array(
162
  'download_button_text' => array(
163
+ 'label' => __('Download Button Name', 'grand-media'),
164
  'tag' => 'input',
165
  'attr' => 'type="text"',
166
+ 'text' => '',
167
  ),
168
  'link_button_text' => array(
169
+ 'label' => __('Link Button Name', 'grand-media'),
170
  'tag' => 'input',
171
  'attr' => 'type="text"',
172
+ 'text' => '',
173
  ),
174
  'comments_button_text' => array(
175
+ 'label' => __('Comments Button Name', 'grand-media'),
176
  'tag' => 'input',
177
  'attr' => 'type="text"',
178
+ 'text' => '',
179
  ),
180
  'description_title' => array(
181
+ 'label' => __('Slide Description Title', 'grand-media'),
182
  'tag' => 'input',
183
  'attr' => 'type="text"',
184
+ 'text' => '',
185
  ),
186
  )
187
  ),
188
  array(
189
+ 'label' => __('Advanced Settings', 'grand-media'),
190
  'fields' => array(
191
  'gallery_focus' => array(
192
+ 'label' => __('Full Window Mode on Start', 'grand-media'),
193
  'tag' => 'checkbox',
194
  'attr' => '',
195
+ 'text' => '',
196
  ),
197
  'gallery_focus_maximized' => array(
198
+ 'label' => __('Maximized Full Window Mode', 'grand-media'),
199
  'tag' => 'checkbox',
200
  'attr' => '',
201
+ 'text' => '',
202
  ),
203
  'keyboard_help' => array(
204
+ 'label' => __('Show Keyboard Help', 'grand-media'),
205
  'tag' => 'checkbox',
206
  'attr' => '',
207
+ 'text' => '',
208
  ),
209
  'customCSS' => array(
210
+ 'label' => __('Custom CSS', 'grand-media'),
211
  'tag' => 'textarea',
212
  'attr' => 'cols="20" rows="10"',
213
+ 'text' => __('You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles', 'grand-media')
214
  )
215
  /*,
216
  'loveLink' => array(
217
+ 'label' => __('Display LoveLink?', 'grand-media'),
218
  'tag' => 'checkbox',
219
  'attr' => '',
220
+ 'text' => __('Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery', 'grand-media')
221
  )*/
222
  )
223
  )
module/wp-videoplayer/index.php CHANGED
@@ -5,7 +5,7 @@ $module_info = array(
5
  'title' => 'WP Video Player',
6
  'version' => '1.4',
7
  'author' => 'CodEasily.com',
8
- 'description' => 'Video player with playlist based on built in Wordpress Video Player',
9
  'type' => 'video',
10
  'status' => 'free',
11
  'price' => '0',
5
  'title' => 'WP Video Player',
6
  'version' => '1.4',
7
  'author' => 'CodEasily.com',
8
+ 'description' => __('Video player with playlist based on built in Wordpress Video Player', 'grand-media'),
9
  'type' => 'video',
10
  'status' => 'free',
11
  'price' => '0',
module/wp-videoplayer/settings.php CHANGED
@@ -6,32 +6,32 @@ $default_options = array(
6
  );
7
  $options_tree = array(
8
  array(
9
- 'label' => 'Settings',
10
  'fields' => array(
11
  'width' => array(
12
- 'label' => 'Width',
13
  'tag' => 'input',
14
  'attr' => 'type="number" min="0"',
15
  'text' => ''
16
  ),
17
  'tracknumbers' => array(
18
- 'label' => 'Track Numbers',
19
  'tag' => 'checkbox',
20
  'attr' => '',
21
  'text' => ''
22
  ),
23
  'customCSS' => array(
24
- 'label' => 'Custom CSS',
25
  'tag' => 'textarea',
26
  'attr' => 'cols="20" rows="10"',
27
- 'text' => 'You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles'
28
  )
29
  /*,
30
  'loveLink' => array(
31
- 'label' => 'Display LoveLink?',
32
  'tag' => 'checkbox',
33
  'attr' => '',
34
- 'text' => 'Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery'
35
  )*/
36
  )
37
  )
6
  );
7
  $options_tree = array(
8
  array(
9
+ 'label' => __('Settings', 'grand-media'),
10
  'fields' => array(
11
  'width' => array(
12
+ 'label' => __('Width', 'grand-media'),
13
  'tag' => 'input',
14
  'attr' => 'type="number" min="0"',
15
  'text' => ''
16
  ),
17
  'tracknumbers' => array(
18
+ 'label' => __('Track Numbers', 'grand-media'),
19
  'tag' => 'checkbox',
20
  'attr' => '',
21
  'text' => ''
22
  ),
23
  'customCSS' => array(
24
+ 'label' => __('Custom CSS', 'grand-media'),
25
  'tag' => 'textarea',
26
  'attr' => 'cols="20" rows="10"',
27
+ 'text' => __('You can enter custom style rules into this box if you\'d like. IE: <i>a{color: red !important;}</i><br />This is an advanced option! This is not recommended for users not fluent in CSS... but if you do know CSS, anything you add here will override the default styles', 'grand-media')
28
  )
29
  /*,
30
  'loveLink' => array(
31
+ 'label' => __('Display LoveLink?', 'grand-media'),
32
  'tag' => 'checkbox',
33
  'attr' => '',
34
+ 'text' => __('Selecting "Yes" will show the lovelink icon (codeasily.com) somewhere on the gallery', 'grand-media')
35
  )*/
36
  )
37
  )
readme.txt CHANGED
@@ -1,12 +1,12 @@
1
  === Gallery - Gmedia Photo Gallery. Music Player, Video Gallery, Media Library ===
2
  Contributors: pasyuk
3
- Donate link: http://codeasily.com/donate/
4
  Tags: gallery, image gallery, photo gallery, lightbox gallery, comments gallery
5
  Requires at least: 3.7
6
- Tested up to: 4.7.4
7
  Stable tag: trunk
8
  License: GPLv2 or later
9
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  Gallery Gmedia - photo gallery with comments, EXIF & Metadata, map geolocation (GPS), private galleries, music & video player.
12
 
@@ -19,41 +19,43 @@ Manage files, show image galleries and photo slideshows, play music on your site
19
  > #### Gallery iOS application client
20
  >
21
  > Now You can upload and manage your Gmedia Library (images, tags, albums) anywhere!!!
22
- > Get new **[Gmedia Gallery application for iPhone](http://codeasily.com/gmedia-ios-app/)**
23
 
24
  With Gmedia Gallery plugin you can upload an unlimited number of photo and audio files, create dozens of galleries and playlists, group pictures and other files in albums, andadd tags for each file.
25
  Handle any file format and link any files with images in few clicks. You can import images with captions from Worpress Media Library, Flagallery plugin and from NextGen Gallery plugin right to Gmedia Library.
26
 
27
  = Gallery Links =
28
 
29
- **[Gallery Home Page](http://codeasily.com/)**, **[Gallery Skins Portfolio](http://codeasily.com/portfolio/gmedia-gallery-modules/)**, **[Gmedia Gallery Support Forum](http://codeasily.com/community/forum/gmedia-gallery-wordpress-plugin/)**
30
 
31
  = How to create FREE responsive photo gallery =
32
 
33
- **[Create responsive photo gallery in few clicks. Various customization options and awesome features.](http://codeasily.com/how-to-create-an-image-gallery-in-wordpress/)**
34
 
35
  Friendly for iPad and iPhone. Doesn’t slow down your website. **Unlimited galleries** on your website with **unlimited customizations** for each gallery.
36
 
37
  #### Photo Gallery Modules, Music Players, Mixed Galleries demos
38
 
39
- * [Cubik - Mixed 3D Gallery Module](http://codeasily.com/portfolio/gmedia-gallery-modules/cubik-3d-photo-gallery-for-wordpress/) is the 3D Cube Gallery with social sharing - highly customizible grid and Magnific Popup lightbox with additional information for each photo.
40
- * [Phantom Pro - Mixed Gallery Module](http://codeasily.com/portfolio/gmedia-gallery-modules/phantom-pro/) is the Wall/Grid Gallery with social sharing - you can easily change thumbnail sizes, colors, navigation, borders, add stylish labels to thumbnails ... and much more.
41
- * [WaveSurfer - Music Module](http://codeasily.com/portfolio/gmedia-gallery-modules/wavesurfer/) superior responsive SoundCloud like music player with terms support (tags, albums, categories) and ability to show track covers, download button, custom link button, like button, share button, plays & comments counter.
42
- * [PhotoTravlr - Gallery Module](http://codeasily.com/portfolio/gmedia-gallery-modules/gmedia-phototravlr/) is amazing responsive gallery with terms support (tags, albums, categories) and details for each image like author, caption, download button, link button, like button, EXIF info, location map. Can be in full window and full screen mode.
43
- * [PhotoMania - Gallery Module (GmediaCloud demo)](http://codeasily.com/portfolio/gmedia-gallery-modules/photomania/) - free responsive gallery with thumbs panel and other details for each image like author, caption, download button, link button, like button. Can be in full window and full screen mode.
44
- * [Mosaic - Gallery Module](http://codeasily.com/portfolio/gmedia-gallery-modules/mosaic/) is an image gallery with masonry layout built on jQuery. Responsive gallery with built in prettyPhoto lightbox for big images.
45
- * [RealSlider - Gallery Module](http://codeasily.com/portfolio/gmedia-gallery-modules/realslider/) is an image/video gallery slider module built on jQuery. RealSlider module is responsive and touch friendly gallery with 50+ options for customization.
46
- * [PhotoBox - Gallery Module](http://codeasily.com/portfolio/gmedia-gallery-modules/photobox/) - a lightweight image gallery which uses only CSS3 for silky-smooth animations and transitions.
47
- * [Music Player Module](http://codeasily.com/portfolio/gmedia-gallery-modules/music-player/) - beautiful audio player with playlist is totally written in jQuery and HTML5.
48
- * [More Galleries...](http://codeasily.com/portfolio/gmedia-gallery-modules/)
49
-
50
- Help me make it **best gallery** plugin: test it and [write suggestions](http://codeasily.com/community/forum/gmedia-gallery-wordpress-plugin/) how it could be improved in feature versions.
 
 
51
 
52
  #### Gallery Features
53
 
54
  * New in 1.9.*: **New free gallery module: Cubik Lite - 3D Cube Gallery (HTML5, CSS3, JS, responsive)**
55
  * New in 1.9.*: **Option to show own Gmedia Albums on Author Pofile page**
56
- * New in 1.9.*: **[Option to automatically create gallery in Post with related images (images with the same tags as in Post)](http://codeasily.com/portfolio/gmedia-gallery-modules/)**
57
  * New in 1.9.*: **Show Related Media for WP tags and categories archive pages**
58
  * **Widget for Album and Gallery widget**
59
  * **Comments for Gmedia Items**
@@ -118,7 +120,7 @@ Gmedia Gallery is the result of hundreds of hours of working to bring you the ul
118
 
119
  = Where I can ask support question about gallery? =
120
 
121
- Use [Gmedia Gallery support forum](http://codeasily.com/community/forum/gmedia-gallery-wordpress-plugin/) If you have any troubles with gmedia gallery plugin. I'll try to answer ASAP
122
 
123
  == Screenshots ==
124
 
@@ -138,7 +140,7 @@ Use [Gmedia Gallery support forum](http://codeasily.com/community/forum/gmedia-g
138
 
139
  == Other Notes ==
140
 
141
- [Gmedia Gallery plugin with wide range of functionality. Responsive gallery, gallery with multi categories, gallery with tags, gallery with geolocation, gallery with comments, advanced gallery images management tools](http://codeasily.com/).
142
 
143
  **Gallery Gmedia it's very useful and beautiful element of website interface. Gmedia Gallery one of the most powerful wordpress photo gallery plugin with comments, geolocation. Gmedia Gallery interface implemented with full set of settings for managing files (like in Media Library only better) and creating mixed galleries. All image galleries have a variety of options that could be easily changed, as result you can make gallery perfectly fit your website.**
144
 
@@ -154,7 +156,19 @@ Gmedia Gallery - is Grand Media Gallery (photo gallery, image gallery, music gal
154
  = Modules Updated =
155
  * Go to Gmedia Gallery Modules page and update installed premium modules to latest versions
156
 
157
- = Gmedia Gallery v1.9.16 =
 
 
 
 
 
 
 
 
 
 
 
 
158
  * Use Album Covers as default artwork for non-image files
159
  * Preparations for the new gallery module
160
 
1
  === Gallery - Gmedia Photo Gallery. Music Player, Video Gallery, Media Library ===
2
  Contributors: pasyuk
3
+ Donate link: https://codeasily.com/donate/
4
  Tags: gallery, image gallery, photo gallery, lightbox gallery, comments gallery
5
  Requires at least: 3.7
6
+ Tested up to: 4.7.5
7
  Stable tag: trunk
8
  License: GPLv2 or later
9
+ License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  Gallery Gmedia - photo gallery with comments, EXIF & Metadata, map geolocation (GPS), private galleries, music & video player.
12
 
19
  > #### Gallery iOS application client
20
  >
21
  > Now You can upload and manage your Gmedia Library (images, tags, albums) anywhere!!!
22
+ > Get new **[Gmedia Gallery application for iPhone](https://codeasily.com/gmedia-ios-app/)**
23
 
24
  With Gmedia Gallery plugin you can upload an unlimited number of photo and audio files, create dozens of galleries and playlists, group pictures and other files in albums, andadd tags for each file.
25
  Handle any file format and link any files with images in few clicks. You can import images with captions from Worpress Media Library, Flagallery plugin and from NextGen Gallery plugin right to Gmedia Library.
26
 
27
  = Gallery Links =
28
 
29
+ **[Gallery Home Page](https://codeasily.com/)**, **[Gallery Skins Portfolio](https://codeasily.com/portfolio/gmedia-gallery-modules/)**, **[Gmedia Gallery Support Forum](https://codeasily.com/community/forum/gmedia-gallery-wordpress-plugin/)**
30
 
31
  = How to create FREE responsive photo gallery =
32
 
33
+ **[Create responsive photo gallery in few clicks. Various customization options and awesome features.](https://codeasily.com/how-to-create-an-image-gallery-in-wordpress/)**
34
 
35
  Friendly for iPad and iPhone. Doesn’t slow down your website. **Unlimited galleries** on your website with **unlimited customizations** for each gallery.
36
 
37
  #### Photo Gallery Modules, Music Players, Mixed Galleries demos
38
 
39
+ * [AlbumsGrid - Splash Gallery for your Albums, Categories, Tags](https://codeasily.com/portfolio/gmedia-gallery-modules/albumsgrid/).
40
+ * [AlbumsStripes - Slider for your Albums](https://codeasily.com/portfolio/gmedia-gallery-modules/stripes/).
41
+ * [Cubik 3D - Mixed 3D Gallery Module](https://codeasily.com/portfolio/gmedia-gallery-modules/cubik-3d-photo-gallery-for-wordpress/) is the 3D Cube Gallery with social sharing - highly customizible grid and Magnific Popup lightbox with additional information for each photo.
42
+ * [Phantom Pro - Mixed Gallery Module](https://codeasily.com/portfolio/gmedia-gallery-modules/phantom-pro/) is the Wall/Grid Gallery with social sharing - you can easily change thumbnail sizes, colors, navigation, borders, add stylish labels to thumbnails ... and much more.
43
+ * [WaveSurfer - Music Module](https://codeasily.com/portfolio/gmedia-gallery-modules/wavesurfer/) superior responsive SoundCloud like music player with terms support (tags, albums, categories) and ability to show track covers, download button, custom link button, like button, share button, plays & comments counter.
44
+ * [PhotoTravlr - Gallery Module](https://codeasily.com/portfolio/gmedia-gallery-modules/gmedia-phototravlr/) is amazing responsive gallery with terms support (tags, albums, categories) and details for each image like author, caption, download button, link button, like button, EXIF info, location map. Can be in full window and full screen mode.
45
+ * [PhotoMania - Gallery Module (GmediaCloud demo)](https://codeasily.com/portfolio/gmedia-gallery-modules/photomania/) - free responsive gallery with thumbs panel and other details for each image like author, caption, download button, link button, like button. Can be in full window and full screen mode.
46
+ * [Mosaic - Gallery Module](https://codeasily.com/portfolio/gmedia-gallery-modules/mosaic/) is an image gallery with masonry layout built on jQuery. Responsive gallery with built in prettyPhoto lightbox for big images.
47
+ * [RealSlider - Gallery Module](https://codeasily.com/portfolio/gmedia-gallery-modules/realslider/) is an image/video gallery slider module built on jQuery. RealSlider module is responsive and touch friendly gallery with 50+ options for customization.
48
+ * [PhotoBox - Gallery Module](https://codeasily.com/portfolio/gmedia-gallery-modules/photobox/) - a lightweight image gallery which uses only CSS3 for silky-smooth animations and transitions.
49
+ * [Music Player Module](https://codeasily.com/portfolio/gmedia-gallery-modules/music-player/) - beautiful audio player with playlist is totally written in jQuery and HTML5.
50
+ * [More Galleries...](https://codeasily.com/portfolio/gmedia-gallery-modules/)
51
+
52
+ Help me make it **best gallery** plugin: test it and [write suggestions](https://codeasily.com/community/forum/gmedia-gallery-wordpress-plugin/) how it could be improved in feature versions.
53
 
54
  #### Gallery Features
55
 
56
  * New in 1.9.*: **New free gallery module: Cubik Lite - 3D Cube Gallery (HTML5, CSS3, JS, responsive)**
57
  * New in 1.9.*: **Option to show own Gmedia Albums on Author Pofile page**
58
+ * New in 1.9.*: **[Option to automatically create gallery in Post with related images (images with the same tags as in Post)](https://codeasily.com/portfolio/gmedia-gallery-modules/)**
59
  * New in 1.9.*: **Show Related Media for WP tags and categories archive pages**
60
  * **Widget for Album and Gallery widget**
61
  * **Comments for Gmedia Items**
120
 
121
  = Where I can ask support question about gallery? =
122
 
123
+ Use [Gmedia Gallery support forum](https://codeasily.com/community/forum/gmedia-gallery-wordpress-plugin/) If you have any troubles with gmedia gallery plugin. I'll try to answer ASAP
124
 
125
  == Screenshots ==
126
 
140
 
141
  == Other Notes ==
142
 
143
+ [Gmedia Gallery plugin with wide range of functionality. Responsive gallery, gallery with multi categories, gallery with tags, gallery with geolocation, gallery with comments, advanced gallery images management tools](https://codeasily.com/).
144
 
145
  **Gallery Gmedia it's very useful and beautiful element of website interface. Gmedia Gallery one of the most powerful wordpress photo gallery plugin with comments, geolocation. Gmedia Gallery interface implemented with full set of settings for managing files (like in Media Library only better) and creating mixed galleries. All image galleries have a variety of options that could be easily changed, as result you can make gallery perfectly fit your website.**
146
 
156
  = Modules Updated =
157
  * Go to Gmedia Gallery Modules page and update installed premium modules to latest versions
158
 
159
+ = Gmedia Gallery v1.9.20 =
160
+ * Added few action hooks for developers
161
+
162
+ = Gmedia Gallery v1.9.19 =
163
+ * Query Builder modal small fix
164
+ * Fixed PHP Notice
165
+ * Fixed sort order in AlbumsGrid module
166
+
167
+ = Gmedia Gallery v1.9.18 =
168
+ * Added Settings to hide sidebar sections
169
+ * Modules functions improvements
170
+
171
+ = Gmedia Gallery v1.9.17 =
172
  * Use Album Covers as default artwork for non-image files
173
  * Preparations for the new gallery module
174