Gallery – Photo Gallery – Image Gallery - Version 1.1.0

Version Description

  • New image management
  • Import tool for Envira galleries
  • Import tool for NextGen galleries
Download this release

Release Info

Developer GreenTreeLabs
Plugin Icon wp plugin Gallery – Photo Gallery – Image Gallery
Version 1.1.0
Comparing to
See all releases

Code changes from version 1.1.12 to 1.1.0

Modula.php CHANGED
@@ -1,10 +1,10 @@
1
  <?php
2
  /**
3
- Plugin Name: Modula Grid Gallery Lite
4
  Plugin URI: http://modula.greentreelabs.net
5
  Description: The Best Wordpress Gallery.
6
  Author: GreenTreeLabs
7
- Version: 1.0.12
8
  Author URI: http://modula.greentreelabs.net
9
  */
10
 
@@ -18,14 +18,17 @@ if (!class_exists("ModulaLite"))
18
  {
19
  class ModulaLite
20
  {
21
- private $defaultValues = array(
 
 
22
  'width' => 100,
23
  'height' => 800,
 
24
  'margin' => 10,
25
  'filters' => '',
26
  'filterClick' => 'F',
27
  'allFilterLabel' => 'All',
28
- 'lightbox' => '',
29
  'shuffle' => 'F',
30
  'captionColor' => '#ffffff',
31
  'wp_field_caption' => 'caption',
@@ -51,12 +54,15 @@ if (!class_exists("ModulaLite"))
51
  'randomFactor' => 50,
52
  'hoverColor' => '#000000',
53
  'hoverOpacity' => '50',
54
- 'hoverEffect' => 'pufrobo'
 
 
55
  );
56
 
57
  public function __construct()
58
  {
59
- $this->plugin_name = plugin_basename(__FILE__);
 
60
  $this->define_constants();
61
  $this->define_db_tables();
62
  $this->define_hover_effects();
@@ -72,7 +78,7 @@ if (!class_exists("ModulaLite"))
72
 
73
  add_action( 'admin_menu', array($this, 'add_gallery_admin_menu') );
74
 
75
- add_shortcode( 'Modula', array($this, 'gallery_shortcode_handler') );
76
 
77
  add_action('wp_ajax_modula_save_gallery', array($this,'save_gallery'));
78
  add_action('wp_ajax_modula_save_image', array($this,'save_image'));
@@ -87,7 +93,9 @@ if (!class_exists("ModulaLite"))
87
  add_action('wp_ajax_mtg_shortcode_editor', array($this, 'mtg_shortcode_editor'));
88
  add_action('wp_ajax_modula_get_config', array($this, 'get_config'));
89
  add_action('wp_ajax_modula_update_config', array($this, 'update_config'));
90
-
 
 
91
  add_filter( 'plugin_row_meta',array( $this, 'register_links' ),10,2);
92
  }
93
 
@@ -101,27 +109,167 @@ if (!class_exists("ModulaLite"))
101
  function define_hover_effects()
102
  {
103
  $this->hoverEffects = array();
104
- $this->hoverEffects[] = new ModulaHoverEffect('None', 'none', false, false, 0);
105
- $this->hoverEffects[] = new ModulaHoverEffect('Pufrobo', 'pufrobo', true, true, 4);
106
- $this->hoverEffects[] = new ModulaHoverEffect('Fluid Up', '', true, true, 0);
107
- $this->hoverEffects[] = new ModulaHoverEffect('Hide', '', true, true, 4);
108
- $this->hoverEffects[] = new ModulaHoverEffect('Quiet', '', true, false, 4);
109
- $this->hoverEffects[] = new ModulaHoverEffect('Catinelle', '', false, false, 4);
110
- $this->hoverEffects[] = new ModulaHoverEffect('Reflex', '', true, true, 4);
111
- $this->hoverEffects[] = new ModulaHoverEffect('Curtain', '', true, false, 4);
112
- $this->hoverEffects[] = new ModulaHoverEffect('Lens', '', true, true, 4);
113
- $this->hoverEffects[] = new ModulaHoverEffect('Appear', '', true, false, 4);
114
- $this->hoverEffects[] = new ModulaHoverEffect('Crafty', '', true, true, 0);
115
- $this->hoverEffects[] = new ModulaHoverEffect('Seemo', '', true, false, 4);
116
- $this->hoverEffects[] = new ModulaHoverEffect('Comodo', '', true, false, 4);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  }
118
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
  public function register_links($links, $file)
121
  {
122
  $base = plugin_basename(__FILE__);
123
  if ($file == $base) {
124
- $links[] = '<a href="admin.php?page=Modula-admin" title="Modula Grid Gallery Dashboard">Dashboard</a>';
125
  $links[] = '<a href="https://twitter.com/greentreelabs" title="@GreenTreeLabs on Twitter">Twitter</a>';
126
  $links[] = '<a href="https://www.facebook.com/greentreelabs" title="GreenTreeLabs on Facebook">Facebook</a>';
127
  $links[] = '<a href="https://www.google.com/+GreentreelabsNetjs" title="GreenTreeLabs on Google+">Google+</a>';
@@ -181,6 +329,8 @@ if (!class_exists("ModulaLite"))
181
  $data["description"] = $_POST['description'];
182
  $data["width"] = $_POST['width'];
183
  $data["height"] = $_POST['height'];
 
 
184
 
185
  $this->ModulaDB->addGallery($data);
186
  $id = $this->ModulaDB->getLastGalleryId()->Id;
@@ -189,12 +339,11 @@ if (!class_exists("ModulaLite"))
189
  {
190
  $enc_images = stripslashes($_POST["images"]);
191
  $images = array_splice(json_decode($enc_images), 0, 11 + 9);
 
192
  $result = $this->ModulaDB->addImages($id, $images);
193
  }
194
-
195
  print $id;
196
- }
197
-
198
  die;
199
  }
200
 
@@ -204,7 +353,7 @@ if (!class_exists("ModulaLite"))
204
  if(check_admin_referer('Modula','Modula'))
205
  {
206
  $sourceId = intval($_POST['gid']);
207
- $g = $this->ModulaDB->getGalleryById($sourceId);
208
  $g->name .="(copy)";
209
  $this->ModulaDB->addGallery($g);
210
  $id = $this->ModulaDB->getNewGalleryId();
@@ -284,7 +433,7 @@ if (!class_exists("ModulaLite"))
284
  public function add_gallery_scripts()
285
  {
286
  wp_enqueue_script('jquery');
287
-
288
  wp_register_script('modula', WP_PLUGIN_URL.'/modula-best-grid-gallery/scripts/jquery.modula.js', array('jquery'));
289
  wp_enqueue_script('modula');
290
 
@@ -350,23 +499,20 @@ if (!class_exists("ModulaLite"))
350
  //Create Admin Menu
351
  public function add_gallery_admin_menu()
352
  {
353
- $overview = add_menu_page('Modula', 'Modula', 'edit_posts', 'Modula-admin', array($this, 'add_overview'), WP_PLUGIN_URL.'/modula-best-grid-gallery/admin/icon.png');
354
-
355
- $tutorial = add_submenu_page('Modula-admin', __('Modula >> Tutorial','Modula'), __('Tutorial','Modula'), 'edit_posts', 'modula-tutorial', array($this, 'tutorial'));
356
-
357
- $add_gallery = add_submenu_page('Modula-admin', __('Modula >> Add Gallery','Modula'), __('Add Gallery','Modula'), 'edit_posts', 'add-modula', array($this, 'add_gallery'));
358
-
359
- $edit_gallery = add_submenu_page('Modula-admin', __('Modula >> Edit Gallery','Modula'), __('Edit Gallery','Modula'), 'edit_posts', 'edit-modula', array($this, 'edit_gallery'));
360
-
361
- $plugins = add_submenu_page('Modula-admin', __('Modula >> Other galleries','Modula'), __('Other galleries','Modula'), 'edit_posts', 'modula-gallery-others', array($this, 'other_galleries'));
362
-
363
- $upgrade = add_submenu_page('Modula-admin', __('Modula >> Upgrade','Modula'), __('Upgrade','Modula'), 'edit_posts', 'modula-gallery-upgrade', array($this, 'upgrade'));
364
 
365
  add_action('load-'.$tutorial, array($this, 'gallery_admin_init'));
366
  add_action('load-'.$overview, array($this, 'gallery_admin_init'));
367
  add_action('load-'.$add_gallery, array($this, 'gallery_admin_init'));
368
  add_action('load-'.$edit_gallery, array($this, 'gallery_admin_init'));
369
  add_action('load-'.$upgrade, array($this, 'gallery_admin_init'));
 
370
  add_action('load-'.$plugins, array($this, 'gallery_admin_init'));
371
  }
372
 
@@ -396,7 +542,10 @@ if (!class_exists("ModulaLite"))
396
  include("admin/add-gallery.php");
397
  }
398
 
399
-
 
 
 
400
 
401
  public function delete_image()
402
  {
@@ -409,27 +558,12 @@ if (!class_exists("ModulaLite"))
409
  die();
410
  }
411
 
412
- public function resize_images()
413
- {
414
- if(check_admin_referer('Modula','Modula'))
415
- {
416
- foreach (explode(",", $_POST["id"]) as $data)
417
- {
418
- $data = explode("-", $data);
419
- $image = wp_get_attachment_image_src( $data[1], $_POST['size'] );
420
-
421
- if ( !empty( $image ) )
422
- $this->ModulaDB->editImage($data[0], array("imagePath" => $image[0]));
423
- }
424
- }
425
- die();
426
- }
427
-
428
  public function add_image()
429
  {
430
  if(check_admin_referer('Modula','Modula'))
431
  {
432
  $gid = intval($_POST['galleryId']);
 
433
  $prev = $this->ModulaDB->getImagesByGalleryId($gid);
434
 
435
  $enc_images = stripslashes($_POST["enc_images"]);
@@ -437,7 +571,7 @@ if (!class_exists("ModulaLite"))
437
 
438
  $d = 18 + log10(100);
439
  $images = array_slice($images, 0, $d - count($prev));
440
-
441
  $result = $this->ModulaDB->addImages($gid, $images);
442
 
443
  header("Content-type: application/json");
@@ -488,8 +622,7 @@ if (!class_exists("ModulaLite"))
488
  $halign = $_POST['halign'];
489
  $valign = $_POST['valign'];
490
 
491
- $data = array("imagePath" => $imageUrl,
492
- "target" => $target,
493
  "link" => $link,
494
  "imageId" => $imageId,
495
  "description" => $imageCaption,
@@ -529,7 +662,7 @@ if (!class_exists("ModulaLite"))
529
  if(check_admin_referer('Modula','Modula'))
530
  {
531
  $gid = intval($_POST["gid"]);
532
- $gallery = $this->ModulaDB->getGalleryById($gid);
533
 
534
  $imageResults = $this->ModulaDB->getImagesByGalleryId($gid);
535
 
@@ -550,8 +683,7 @@ if (!class_exists("ModulaLite"))
550
  public function save_gallery()
551
  {
552
  if(check_admin_referer('Modula','Modula'))
553
- {
554
-
555
  $galleryName = stripslashes($_POST['tg_name']);
556
  $galleryDescription = stripslashes($_POST['tg_description']);
557
  $slug = strtolower(str_replace(" ", "", $galleryName));
@@ -589,6 +721,8 @@ if (!class_exists("ModulaLite"))
589
  'slug' => $slug,
590
  'description' => $galleryDescription,
591
  'lightbox' => $lightbox,
 
 
592
  'wp_field_caption' => $wp_field_caption,
593
  'wp_field_title' => $wp_field_title,
594
  'margin' => $margin,
@@ -621,7 +755,19 @@ if (!class_exists("ModulaLite"))
621
  header("Content-type: application/json");
622
  if($id > 0)
623
  {
624
- $result = $this->ModulaDB->editGallery($id, $data);
 
 
 
 
 
 
 
 
 
 
 
 
625
  }
626
  else
627
  {
@@ -639,6 +785,7 @@ if (!class_exists("ModulaLite"))
639
 
640
  public function edit_gallery()
641
  {
 
642
  $modula_fields = $this->fields;
643
  $modula_parent_page = "dashboard";
644
 
@@ -673,19 +820,13 @@ if (!class_exists("ModulaLite"))
673
  require_once('lib/gallery-class.php');
674
  global $Modula;
675
 
676
- if (class_exists('ModulaFE')) {
677
- $Modula = new ModulaFE($this->ModulaDB);
678
-
679
- if(! empty($atts['id']))
680
- $Modula->initByGalleryId($atts['id']);
681
-
682
- if(! empty($atts['ids']))
683
- $Modula->initByImageIds($atts['ids']);
684
-
685
  $settings = $Modula->getGallery();
686
  switch($settings->lightbox)
687
  {
688
- default:
689
  case "lightbox2":
690
  wp_enqueue_style('lightbox2_stylesheet');
691
  wp_enqueue_script('lightbox2_script');
@@ -693,13 +834,11 @@ if (!class_exists("ModulaLite"))
693
  }
694
  return $Modula->render();
695
  }
696
- else {
 
697
  return "Gallery not found.";
698
- }
699
- }
700
-
701
-
702
- /* example */
703
 
704
  var $fields = array(
705
 
@@ -731,6 +870,13 @@ if (!class_exists("ModulaLite"))
731
  "description" => "Height of the gallery in pixels",
732
  "mu" => "px",
733
  "excludeFrom" => array()
 
 
 
 
 
 
 
734
  ),
735
  "margin" => array(
736
  "name" => "Margin",
@@ -1007,7 +1153,7 @@ if (!class_exists("ModulaLite"))
1007
  );
1008
  }
1009
 
1010
- class ModulaHoverEffect
1011
  {
1012
  var $name;
1013
  var $code;
@@ -1026,6 +1172,80 @@ if (!class_exists("ModulaLite"))
1026
  }
1027
  }
1028
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1029
  if (class_exists("ModulaLite"))
1030
  {
1031
  global $ob_ModulaLite;
1
  <?php
2
  /**
3
+ Plugin Name: Gallery A WordPress Modula Grid
4
  Plugin URI: http://modula.greentreelabs.net
5
  Description: The Best Wordpress Gallery.
6
  Author: GreenTreeLabs
7
+ Version: 1.1.0
8
  Author URI: http://modula.greentreelabs.net
9
  */
10
 
18
  {
19
  class ModulaLite
20
  {
21
+ private $loadedData;
22
+
23
+ private $defaultValues = array(
24
  'width' => 100,
25
  'height' => 800,
26
+ 'img_size' => 500,
27
  'margin' => 10,
28
  'filters' => '',
29
  'filterClick' => 'F',
30
  'allFilterLabel' => 'All',
31
+ 'lightbox' => 'lightbox2',
32
  'shuffle' => 'F',
33
  'captionColor' => '#ffffff',
34
  'wp_field_caption' => 'caption',
54
  'randomFactor' => 50,
55
  'hoverColor' => '#000000',
56
  'hoverOpacity' => '50',
57
+ 'hoverEffect' => 'pufrobo',
58
+ 'hasResizedImages' => false,
59
+ 'importedFrom' => ''
60
  );
61
 
62
  public function __construct()
63
  {
64
+ $this->plugin_name = plugin_basename(__FILE__);
65
+ $this->plugin_url = plugins_url('', __FILE__);
66
  $this->define_constants();
67
  $this->define_db_tables();
68
  $this->define_hover_effects();
78
 
79
  add_action( 'admin_menu', array($this, 'add_gallery_admin_menu') );
80
 
81
+ add_shortcode( 'Modula', array($this, 'gallery_shortcode_handler') );
82
 
83
  add_action('wp_ajax_modula_save_gallery', array($this,'save_gallery'));
84
  add_action('wp_ajax_modula_save_image', array($this,'save_image'));
93
  add_action('wp_ajax_mtg_shortcode_editor', array($this, 'mtg_shortcode_editor'));
94
  add_action('wp_ajax_modula_get_config', array($this, 'get_config'));
95
  add_action('wp_ajax_modula_update_config', array($this, 'update_config'));
96
+ add_action('wp_ajax_modula_get_ext_galleries', array($this,'get_ext_galleries'));
97
+ add_action('wp_ajax_modula_do_import_galleries', array($this,'do_import_galleries'));
98
+
99
  add_filter( 'plugin_row_meta',array( $this, 'register_links' ),10,2);
100
  }
101
 
109
  function define_hover_effects()
110
  {
111
  $this->hoverEffects = array();
112
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('None', 'none', false, false, 0);
113
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Pufrobo', 'pufrobo', true, true, 4);
114
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Fluid Up', '', true, true, 0);
115
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Hide', '', true, true, 4);
116
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Quiet', '', true, false, 4);
117
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Catinelle', '', false, false, 4);
118
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Reflex', '', true, true, 4);
119
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Curtain', '', true, false, 4);
120
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Lens', '', true, true, 4);
121
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Appear', '', true, false, 4);
122
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Crafty', '', true, true, 0);
123
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Seemo', '', true, false, 4);
124
+ $this->hoverEffects[] = new ModulaLiteHoverEffect('Comodo', '', true, false, 4);
125
+ }
126
+
127
+ public function get_ext_galleries()
128
+ {
129
+ header("Content-type: application/json");
130
+
131
+ global $wpdb;
132
+
133
+ if(check_admin_referer("Modula","Modula"))
134
+ {
135
+ $res = array( "success" => 0 );
136
+
137
+ $source = $_POST['source'];
138
+ if ( $source ) {
139
+ $res['success'] = 1;
140
+ $res['galleries'] = array();
141
+
142
+ switch ( $source ) {
143
+ case 'Envira':
144
+ $galleries = get_posts( array(
145
+ 'post_type' => 'envira',
146
+ 'posts_per_page' => 1000
147
+ ) );
148
+ foreach ( $galleries as $g ) {
149
+ $item = array();
150
+ $item['id'] = $g->ID;
151
+ $item['title'] = $g->post_title;
152
+ $res['galleries'] [] = $item;
153
+ }
154
+ break;
155
+ case 'NextGen':
156
+ $galleries = $wpdb->get_results("SELECT title, gid FROM $wpdb->nggallery");
157
+ foreach ( $galleries as $g ) {
158
+ $item = array();
159
+ $item['id'] = $g->gid;
160
+ $item['title'] = $g->title;
161
+ $res['galleries'] [] = $item;
162
+ }
163
+ break;
164
+ }
165
+ }
166
+
167
+ echo json_encode( $res );
168
+ }
169
+ die();
170
  }
171
 
172
+ public function do_import_galleries()
173
+ {
174
+ global $wpdb;
175
+
176
+ header("Content-type: application/json");
177
+ if(check_admin_referer("Modula","Modula"))
178
+ {
179
+ $res = array("success" => 0);
180
+ $source = $_POST['source'];
181
+ $ids = explode(",", $_POST['ids']);
182
+ switch ($source)
183
+ {
184
+ case 'Envira':
185
+ foreach ($ids as $id)
186
+ {
187
+ $gallery = get_post($id);
188
+ $meta = get_post_meta($id);
189
+ $data = unserialize( $meta['_eg_gallery_data'][0] );
190
+
191
+ $g = array('name' => $data['config']['title'],
192
+ 'description' => 'Imported from Envira ('.$id.') on ' . date('M, d Y'),
193
+ 'margin' => $data['config']['gutter'],
194
+ 'hasResizedImages' => true,
195
+ 'importedFrom' => 'Envira'
196
+ );
197
+ $gdb = array_merge($this->defaultValues, $g);
198
+
199
+ $saved = $this->ModulaDB->addGallery($gdb);
200
+ $newId = $this->ModulaDB->getNewGalleryId();
201
+
202
+ if($newId && count($data['gallery']))
203
+ {
204
+ $images = array();
205
+ //TODO only active images
206
+ foreach ( $data['gallery'] as $item )
207
+ {
208
+ $toAdd = new stdClass();
209
+ $toAdd->imageId = $this->ModulaDB->getIDbyGUID( $item['src'] );
210
+ $toAdd->title = $item['title'];
211
+ $toAdd->description = $item['caption'];
212
+ $toAdd->imagePath = $item['src'];
213
+
214
+ $images []= $toAdd;
215
+ }
216
+ $imgResult = $this->ModulaDB->addImages($newId, $images);
217
+ }
218
+ }
219
+ $res['success'] = 1;
220
+ break;
221
+ case 'NextGen':
222
+ foreach ($ids as $id)
223
+ {
224
+ $gallery = $wpdb->get_row(
225
+ $wpdb->prepare( "SELECT title, gid, path FROM $wpdb->nggallery WHERE gid=%s", $id)
226
+ );
227
+
228
+ $dbimages = $wpdb->get_results(
229
+ $wpdb->prepare( "SELECT filename, description, alttext FROM $wpdb->nggpictures WHERE exclude <> 1 AND galleryid=%s", $id )
230
+ );
231
+
232
+ $g = array('name' => $gallery->title,
233
+ 'description' => 'Imported from NextGet ('.$id.') on ' . date('M, d Y'),
234
+ 'hasResizedImages' => true,
235
+ 'importedFrom' => 'NextGen'
236
+ );
237
+ $gdb = array_merge($this->defaultValues, $g);
238
+
239
+ $saved = $this->ModulaDB->addGallery($gdb);
240
+ $newId = $this->ModulaDB->getNewGalleryId();
241
+
242
+ if($newId && count($dbimages))
243
+ {
244
+ $images = array();
245
+ foreach ( $dbimages as $item )
246
+ {
247
+ $toAdd = new stdClass();
248
+ $toAdd->imageId = -1;
249
+ $toAdd->title = $item->alttext;
250
+ $toAdd->description = $item->description;
251
+ $toAdd->imagePath = plugins_url('image.php', __FILE__) . "?w=". $this->defaultValues['img_size'] ."&src=" . $gallery->path . "/" . $item->filename;
252
+
253
+ $images []= $toAdd;
254
+ }
255
+ $imgResult = $this->ModulaDB->addImages($newId, $images);
256
+
257
+ }
258
+ }
259
+ $res['success'] = 1;
260
+ break;
261
+ }
262
+
263
+ echo json_encode($res);
264
+ }
265
+ die();
266
+ }
267
 
268
  public function register_links($links, $file)
269
  {
270
  $base = plugin_basename(__FILE__);
271
  if ($file == $base) {
272
+ $links[] = '<a href="admin.php?page=ModulaLite-admin" title="Modula Grid Gallery Dashboard">Dashboard</a>';
273
  $links[] = '<a href="https://twitter.com/greentreelabs" title="@GreenTreeLabs on Twitter">Twitter</a>';
274
  $links[] = '<a href="https://www.facebook.com/greentreelabs" title="GreenTreeLabs on Facebook">Facebook</a>';
275
  $links[] = '<a href="https://www.google.com/+GreentreelabsNetjs" title="GreenTreeLabs on Google+">Google+</a>';
329
  $data["description"] = $_POST['description'];
330
  $data["width"] = $_POST['width'];
331
  $data["height"] = $_POST['height'];
332
+ $data["img_size"] = intval($_POST['img_size']);
333
+ $data["hasResizedImages"] = true;
334
 
335
  $this->ModulaDB->addGallery($data);
336
  $id = $this->ModulaDB->getLastGalleryId()->Id;
339
  {
340
  $enc_images = stripslashes($_POST["images"]);
341
  $images = array_splice(json_decode($enc_images), 0, 11 + 9);
342
+ ModulaLiteTools::check_and_resize( $images, $data['img_size'] );
343
  $result = $this->ModulaDB->addImages($id, $images);
344
  }
 
345
  print $id;
346
+ }
 
347
  die;
348
  }
349
 
353
  if(check_admin_referer('Modula','Modula'))
354
  {
355
  $sourceId = intval($_POST['gid']);
356
+ $g = $this->ModulaDB->getGalleryById($sourceId, $this->defaultValues);
357
  $g->name .="(copy)";
358
  $this->ModulaDB->addGallery($g);
359
  $id = $this->ModulaDB->getNewGalleryId();
433
  public function add_gallery_scripts()
434
  {
435
  wp_enqueue_script('jquery');
436
+
437
  wp_register_script('modula', WP_PLUGIN_URL.'/modula-best-grid-gallery/scripts/jquery.modula.js', array('jquery'));
438
  wp_enqueue_script('modula');
439
 
499
  //Create Admin Menu
500
  public function add_gallery_admin_menu()
501
  {
502
+ $overview = add_menu_page('Modula', 'Modula', 'edit_posts', 'ModulaLite-admin', array($this, 'add_overview'), WP_PLUGIN_URL.'/modula-best-grid-gallery/admin/icon.png');
503
+ $tutorial = add_submenu_page('ModulaLite-admin', __('Modula >> Tutorial','Modula'), __('Tutorial','Modula'), 'edit_posts', 'modula-lite-tutorial', array($this, 'tutorial'));
504
+ $add_gallery = add_submenu_page('ModulaLite-admin', __('Modula >> Add Gallery','Modula'), __('Add Gallery','Modula'), 'edit_posts', 'add-modula-lite', array($this, 'add_gallery'));
505
+ $edit_gallery = add_submenu_page('ModulaLite-admin', __('Modula >> Edit Gallery','Modula'), __('Edit Gallery','Modula'), 'edit_posts', 'edit-modula-lite', array($this, 'edit_gallery'));
506
+ $plugins = add_submenu_page('ModulaLite-admin', __('Modula >> Other galleries','Modula'), __('Other galleries','Modula'), 'edit_posts', 'modula-lite-gallery-others', array($this, 'other_galleries'));
507
+ $import = add_submenu_page('ModulaLite-admin', __('Modula >> Import','Modula'), __('Import galleries','Modula'), 'edit_posts', 'modula-lite-gallery-import', array($this, 'import_galleries'));
508
+ $upgrade = add_submenu_page('ModulaLite-admin', __('Modula >> Upgrade','Modula'), __('Upgrade','Modula'), 'edit_posts', 'modula-lite-gallery-upgrade', array($this, 'upgrade'));
 
 
 
 
509
 
510
  add_action('load-'.$tutorial, array($this, 'gallery_admin_init'));
511
  add_action('load-'.$overview, array($this, 'gallery_admin_init'));
512
  add_action('load-'.$add_gallery, array($this, 'gallery_admin_init'));
513
  add_action('load-'.$edit_gallery, array($this, 'gallery_admin_init'));
514
  add_action('load-'.$upgrade, array($this, 'gallery_admin_init'));
515
+ add_action('load-'.$import, array($this, 'gallery_admin_init'));
516
  add_action('load-'.$plugins, array($this, 'gallery_admin_init'));
517
  }
518
 
542
  include("admin/add-gallery.php");
543
  }
544
 
545
+ public function import_galleries()
546
+ {
547
+ include("admin/import.php");
548
+ }
549
 
550
  public function delete_image()
551
  {
558
  die();
559
  }
560
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
561
  public function add_image()
562
  {
563
  if(check_admin_referer('Modula','Modula'))
564
  {
565
  $gid = intval($_POST['galleryId']);
566
+ $this->loadedData = $this->ModulaDB->getGalleryById($gid, $this->defaultValues);
567
  $prev = $this->ModulaDB->getImagesByGalleryId($gid);
568
 
569
  $enc_images = stripslashes($_POST["enc_images"]);
571
 
572
  $d = 18 + log10(100);
573
  $images = array_slice($images, 0, $d - count($prev));
574
+ $images = ModulaLiteTools::check_and_resize( $images, $this->loadedData->img_size );
575
  $result = $this->ModulaDB->addImages($gid, $images);
576
 
577
  header("Content-type: application/json");
622
  $halign = $_POST['halign'];
623
  $valign = $_POST['valign'];
624
 
625
+ $data = array("target" => $target,
 
626
  "link" => $link,
627
  "imageId" => $imageId,
628
  "description" => $imageCaption,
662
  if(check_admin_referer('Modula','Modula'))
663
  {
664
  $gid = intval($_POST["gid"]);
665
+ $gallery = $this->ModulaDB->getGalleryById($gid, $this->defaultValues);
666
 
667
  $imageResults = $this->ModulaDB->getImagesByGalleryId($gid);
668
 
683
  public function save_gallery()
684
  {
685
  if(check_admin_referer('Modula','Modula'))
686
+ {
 
687
  $galleryName = stripslashes($_POST['tg_name']);
688
  $galleryDescription = stripslashes($_POST['tg_description']);
689
  $slug = strtolower(str_replace(" ", "", $galleryName));
721
  'slug' => $slug,
722
  'description' => $galleryDescription,
723
  'lightbox' => $lightbox,
724
+ 'img_size' => intval($_POST['tg_img_size']),
725
+ 'hasResizedImages' => true,
726
  'wp_field_caption' => $wp_field_caption,
727
  'wp_field_title' => $wp_field_title,
728
  'margin' => $margin,
755
  header("Content-type: application/json");
756
  if($id > 0)
757
  {
758
+ $result = $this->ModulaDB->editGallery($id, $data);
759
+
760
+ if(intval($this->loadedData->img_size) != $data['img_size'])
761
+ {
762
+ $images = $this->ModulaDB->getImagesByGalleryId( $id );
763
+ $images = ModulaLiteTools::check_and_resize( $images, $data['img_size'] );
764
+
765
+ foreach($images as $img) {
766
+ $this->ModulaDB->editImage( $img->Id, (array)$img );
767
+ }
768
+ }
769
+
770
+ $this->loadedData = $this->ModulaDB->getGalleryById($id, $this->defaultValues);
771
  }
772
  else
773
  {
785
 
786
  public function edit_gallery()
787
  {
788
+ $this->loadedData = $this->ModulaDB->getGalleryById(intval($_GET['galleryId']), $this->defaultValues);
789
  $modula_fields = $this->fields;
790
  $modula_parent_page = "dashboard";
791
 
820
  require_once('lib/gallery-class.php');
821
  global $Modula;
822
 
823
+ if (class_exists( 'ModulaLiteFE' ))
824
+ {
825
+ $Modula = new ModulaLiteFE($this->ModulaDB, $atts['id'], $this->defaultValues);
826
+
 
 
 
 
 
827
  $settings = $Modula->getGallery();
828
  switch($settings->lightbox)
829
  {
 
830
  case "lightbox2":
831
  wp_enqueue_style('lightbox2_stylesheet');
832
  wp_enqueue_script('lightbox2_script');
834
  }
835
  return $Modula->render();
836
  }
837
+ else
838
+ {
839
  return "Gallery not found.";
840
+ }
841
+ }
 
 
 
842
 
843
  var $fields = array(
844
 
870
  "description" => "Height of the gallery in pixels",
871
  "mu" => "px",
872
  "excludeFrom" => array()
873
+ ),
874
+ "img_size" => array(
875
+ "name" => "Minimum image size",
876
+ "type" => "number",
877
+ "description" => "Minimum width or height of the images",
878
+ "mu" => "px or %",
879
+ "excludeFrom" => array()
880
  ),
881
  "margin" => array(
882
  "name" => "Margin",
1153
  );
1154
  }
1155
 
1156
+ class ModulaLiteHoverEffect
1157
  {
1158
  var $name;
1159
  var $code;
1172
  }
1173
  }
1174
 
1175
+ class ModulaLiteTools
1176
+ {
1177
+ public static function get_image_size_links($id)
1178
+ {
1179
+ $result = array();
1180
+ $sizes = get_intermediate_image_sizes();
1181
+ $sizes[] = 'full';
1182
+
1183
+ foreach ( $sizes as $size )
1184
+ {
1185
+ $image = wp_get_attachment_image_src( $id, $size );
1186
+
1187
+ if ( !empty( $image ) && ( true == $image[3] || 'full' == $size ) )
1188
+ $result["$image[1]x$image[2]"] = $image[0];
1189
+ }
1190
+
1191
+ return $result;
1192
+ }
1193
+
1194
+ public static function resize_image($id, $img_size)
1195
+ {
1196
+ $file = get_attached_file($id);
1197
+ $editor = wp_get_image_editor($file);
1198
+ $size = $editor->get_size();
1199
+ if($size["width"] > $size["height"])
1200
+ {
1201
+ $editor->resize(10000, $img_size);
1202
+ }
1203
+ else
1204
+ {
1205
+ $editor->resize($img_size, 10000);
1206
+ }
1207
+ $path_parts = pathinfo($file);
1208
+ $filename = $path_parts['dirname'] . "/" . $path_parts['filename'] . "-" . $img_size . "x" . $img_size . "." . $path_parts["extension"];
1209
+
1210
+ if(! file_exists( $filename ))
1211
+ $editor->save($filename);
1212
+ return basename( $filename );
1213
+ }
1214
+
1215
+ public static function check_and_resize(&$images, $size)
1216
+ {
1217
+ foreach ($images as &$img)
1218
+ {
1219
+ $metadata = wp_get_attachment_metadata( $img->imageId );
1220
+
1221
+ if($img->imageId > 0)
1222
+ {
1223
+ $wpdata = get_post( $img->imageId );
1224
+ $baseurl = str_replace( basename( $wpdata->guid ), "", $wpdata->guid );
1225
+ $res_name = ModulaLiteTools::resize_image( $img->imageId, $size );
1226
+
1227
+ if ( ! ( array_key_exists( "image_meta", $metadata ) &&
1228
+ array_key_exists( "resized_images", $metadata["image_meta"] ) &&
1229
+ in_array( $size . "x" . $size, $metadata["image_meta"]["resized_images"] ) )
1230
+ ) {
1231
+ if ( isset( $metadata['image_meta'] ) ) {
1232
+ $md = $size . 'x' . $size;
1233
+ $metadata['image_meta']['resized_images'][] = $md;
1234
+ wp_update_attachment_metadata( $img->imageId, $metadata );
1235
+ }
1236
+ }
1237
+
1238
+ $img->imagePath = $baseurl . $res_name;
1239
+ }
1240
+ else
1241
+ {
1242
+ $img->imagePath = preg_replace("/w=(\d+)/", "w=" . $size, $img->imagePath);
1243
+ }
1244
+ }
1245
+ return $images;
1246
+ }
1247
+ }
1248
+
1249
  if (class_exists("ModulaLite"))
1250
  {
1251
  global $ob_ModulaLite;
README.txt CHANGED
@@ -1,8 +1,8 @@
1
- === Best WordPress Gallery - Modula Grid Lite ===
2
  Contributors: GreenTreeLabs
3
  Tags: best gallery, best gallery plugin, best responsive gallery, best responsive wordpress gallery, best wordpress gallery, best wordpress gallery plugin, best wp gallery, design portfolio, fullscreen, gallery, Gallery Plugin, image gallery, image gallery plugin, Image Rotator, javascript gallery, javascript rotator, jquery gallery, jquery rotator, media uploader, photo gallery, photo rotator, Picture Gallery, portfolio, responsive, responsive galleries, responsive gallery, responsive gallery plugin, responsive image gallery, responsive image gallery plugin, responsive rotator, responsive slideshow, responsive slideshow plugin, rotator, shortcode, slideshow, slideshow plugin, template tag, wordpress galleries, wordpress gallery, wordpress gallery plugin
4
  Requires at least: 4.0
5
- Tested up to: 4.5.1
6
  Stable tag: trunk
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -83,6 +83,11 @@ The simplest way to install is to click on \'Plugins\' then \'Add\' and type \'M
83
 
84
  == Changelog ==
85
 
 
 
 
 
 
86
  = 1.0.12 =
87
  * Added link to ShortPixel plugin for image optimization
88
 
1
+ === Gallery A WordPress Modula Grid ===
2
  Contributors: GreenTreeLabs
3
  Tags: best gallery, best gallery plugin, best responsive gallery, best responsive wordpress gallery, best wordpress gallery, best wordpress gallery plugin, best wp gallery, design portfolio, fullscreen, gallery, Gallery Plugin, image gallery, image gallery plugin, Image Rotator, javascript gallery, javascript rotator, jquery gallery, jquery rotator, media uploader, photo gallery, photo rotator, Picture Gallery, portfolio, responsive, responsive galleries, responsive gallery, responsive gallery plugin, responsive image gallery, responsive image gallery plugin, responsive rotator, responsive slideshow, responsive slideshow plugin, rotator, shortcode, slideshow, slideshow plugin, template tag, wordpress galleries, wordpress gallery, wordpress gallery plugin
4
  Requires at least: 4.0
5
+ Tested up to: 4.5.2
6
  Stable tag: trunk
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
83
 
84
  == Changelog ==
85
 
86
+ = 1.1.0 =
87
+ * New image management
88
+ * Import tool for Envira galleries
89
+ * Import tool for NextGen galleries
90
+
91
  = 1.0.12 =
92
  * Added link to ShortPixel plugin for image optimization
93
 
admin/add-gallery.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
- if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('You are not allowed to call this page directly.','modula-gallery')); }
3
-
4
- $tg_subtitle = "New Gallery";
5
  ?>
6
 
7
  <?php include("header.php") ?>
@@ -22,63 +22,60 @@
22
  </div>
23
  </div>
24
  <div class="row">
25
- <div class="input-field">
26
- <input name="tg_description" id="description" type="text" class="validate">
27
- <label for="description"><?php _e('Description of the gallery (for internal use)','modula-gallery')?></label>
28
- </div>
29
  </div>
30
  <div class="row">
31
- <div class="input-field col s6">
32
- <input name="tg_width" id="width" type="text" value="100%">
33
- <label for="width"><?php _e('Gallery width','modula-gallery')?></label>
34
- </div>
35
- <div class="input-field col s6">
36
- <input name="tg_height" id="height" type="text" value="800">
37
- <label for="height"><?php _e('Gallery height in pixels','modula-gallery')?></label>
38
- </div>
39
  </div>
40
  </fieldset>
41
- <fieldset data-step="2" data-branch="images">
42
- <div class="field">
43
  <h5><?php _e('WordPress field for titles:','modula')?></h5>
44
- <select class="browser-default" name="ftg_wp_field_title">
45
- <option value="none">Don't use titles</option>
46
- <option value="title" selected>Title</option>
47
- <option value="description">Description</option>
48
- </select>
49
  </div>
50
  <div class="field">
51
  <h5><?php _e('WordPress field for captions:','modula')?></h5>
52
- <select class="browser-default" name="ftg_wp_field_caption">
53
- <option value="none">Don't use captions</option>
54
- <option value="title">Title</option>
55
- <option value="caption" selected>Caption</option>
56
- <option value="description">Description</option>
57
- </select>
58
  </div>
59
  </fieldset>
60
  <fieldset data-step="3" data-save="true">
61
  <div class="field">
62
- <h5><?php _e('Choose a default image size','modula-gallery')?></h5>
63
-
64
- <select name="def_imgsize" class="browser-default dropdown-menu">
65
- <?php
66
- foreach ($this->list_thumbnail_sizes() as $size => $atts)
67
- {
68
- print '<option '.($size == 'medium' ? 'selected' : '').' value="'. $size .'">' . $size . " (" . implode( 'x', $atts ) . ")</option>";
69
- }
70
- ?>
71
- </select>
72
- <label><?php _e('You can customize each image later','modula-gallery')?></label>
73
  </div>
74
  <div class="field select-images">
75
  <a class="waves-effect waves-light btn add-images">
76
  <i class="mdi mdi-plus left"></i> <?php _e('Add images','modula-gallery')?></a>
77
  <br>
78
  <label><?php _e('You can add images now or later.','modula-gallery')?></label>
79
- <label class="shortpixel">
80
- <img src="<?php echo plugins_url('',__file__) ?>/images/icon-shortpixel.png" alt="ShortPixel">
81
- <a target="_blank" href="https://shortpixel.com/h/af/N8LKGGT72393"><?php _e('We suggest you to use ShortPixel image optimization plugin for best SEO results.','modula-gallery')?></a></label>
82
  <div class="images list-group"></div>
83
  </div>
84
  </fieldset>
@@ -103,7 +100,7 @@
103
  </p>
104
  </div>
105
  <div class="modal-'footer">
106
- <a href="?page=Modula-admin" id="modal-close" class="waves-effect waves-green btn-flat modal-action"><?php _e('Close','modula-gallery')?></a>
107
  </div>
108
  </div>
109
 
@@ -113,7 +110,7 @@
113
  <p><?php _e('For some reason it was not possible to save your gallery','modula-gallery')?></p>
114
  </div>
115
  <div class="modal-footer">
116
- <a href="?page=Modula-admin" class="waves-effect waves-green btn-flat modal-action"><?php _e('Close','modula-gallery')?></a>
117
  </div>
118
  </div>
119
  </div>
1
  <?php
2
+ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('You are not allowed to call this page directly.','modula-gallery')); }
3
+
4
+ $tg_subtitle = "New Gallery";
5
  ?>
6
 
7
  <?php include("header.php") ?>
22
  </div>
23
  </div>
24
  <div class="row">
25
+ <div class="input-field">
26
+ <input name="tg_description" id="description" type="text" class="validate">
27
+ <label for="description"><?php _e('Description of the gallery (for internal use)','modula-gallery')?></label>
28
+ </div>
29
  </div>
30
  <div class="row">
31
+ <div class="input-field col s6">
32
+ <input name="tg_width" id="width" type="text" value="100%">
33
+ <label for="width"><?php _e('Gallery width','modula-gallery')?></label>
34
+ </div>
35
+ <div class="input-field col s6">
36
+ <input name="tg_height" id="height" type="text" value="800">
37
+ <label for="height"><?php _e('Gallery height in pixels','modula-gallery')?></label>
38
+ </div>
39
  </div>
40
  </fieldset>
41
+ <fieldset data-step="2" data-branch="images">
42
+ <div class="field">
43
  <h5><?php _e('WordPress field for titles:','modula')?></h5>
44
+ <select class="browser-default" name="ftg_wp_field_title">
45
+ <option value="none">Don't use titles</option>
46
+ <option value="title" selected>Title</option>
47
+ <option value="description">Description</option>
48
+ </select>
49
  </div>
50
  <div class="field">
51
  <h5><?php _e('WordPress field for captions:','modula')?></h5>
52
+ <select class="browser-default" name="ftg_wp_field_caption">
53
+ <option value="none">Don't use captions</option>
54
+ <option value="title">Title</option>
55
+ <option value="caption" selected>Caption</option>
56
+ <option value="description">Description</option>
57
+ </select>
58
  </div>
59
  </fieldset>
60
  <fieldset data-step="3" data-save="true">
61
  <div class="field">
62
+ <h5><?php _e('Image size','modula-gallery')?></h5>
63
+ <div class="row">
64
+ <div class="input-field">
65
+ <input name="tg_img_size" id="img_size" type="text" class="validate" required="required" value="500">
66
+ <label for="name"><?php _e('Minimum width or height of images','modula-gallery')?></label>
67
+ </div>
68
+ </div>
69
+ <label class="shortpixel">
70
+ <img src="<?php echo plugins_url('',__file__) ?>/images/icon-shortpixel.png" alt="ShortPixel">
71
+ <a target="_blank" href="https://shortpixel.com/wp/af/N8LKGGT72393"><?php _e('We suggest you to use ShortPixel image optimization plugin for best SEO results.','modula-gallery')?></a></label>
 
72
  </div>
73
  <div class="field select-images">
74
  <a class="waves-effect waves-light btn add-images">
75
  <i class="mdi mdi-plus left"></i> <?php _e('Add images','modula-gallery')?></a>
76
  <br>
77
  <label><?php _e('You can add images now or later.','modula-gallery')?></label>
78
+
 
 
79
  <div class="images list-group"></div>
80
  </div>
81
  </fieldset>
100
  </p>
101
  </div>
102
  <div class="modal-'footer">
103
+ <a href="?page=ModulaLite-admin" id="modal-close" class="waves-effect waves-green btn-flat modal-action"><?php _e('Close','modula-gallery')?></a>
104
  </div>
105
  </div>
106
 
110
  <p><?php _e('For some reason it was not possible to save your gallery','modula-gallery')?></p>
111
  </div>
112
  <div class="modal-footer">
113
+ <a href="?page=ModulaLite-admin" class="waves-effect waves-green btn-flat modal-action"><?php _e('Close','modula-gallery')?></a>
114
  </div>
115
  </div>
116
  </div>
admin/css/style.css CHANGED
@@ -14,17 +14,18 @@
14
 
15
  @font-face {
16
  font-family: 'Roboto';
17
- src: url('../font/modula/Roboto-Regular-webfont.eot');
18
- src: url('../font/modula/Roboto-Regular-webfont.eot?#iefix') format('embedded-opentype'),
19
- url('../font/modula/Roboto-Regular-webfont.woff') format('woff'),
20
- url('../font/modula/Roboto-Regular-webfont.ttf') format('truetype'),
21
- url('../font/modula/Roboto-Regular-webfont.svg#robotoregular') format('svg');
22
  font-weight: normal;
23
  font-style: normal;
24
 
25
  }
26
 
27
 
 
28
  [data-icon]:before {
29
  font-family: "modula-icons" !important;
30
  content: attr(data-icon);
@@ -94,6 +95,9 @@ body
94
  margin: 10px;
95
  padding: 5px;
96
  }
 
 
 
97
 
98
  /*.shortcode-section
99
  {
@@ -106,7 +110,9 @@ body
106
  margin-top: 5px;
107
  width: 100%;
108
  }
109
-
 
 
110
  .hide
111
  {
112
  display: none;
@@ -1419,25 +1425,6 @@ body
1419
  opacity: .8;
1420
  color:#fff;
1421
  }
1422
- .shortcode-section input[type=text]
1423
- {
1424
- border: none!important;
1425
- color: #AFACB8;
1426
- font-family: courier;
1427
- background: transparent!important;
1428
- width: 141px;
1429
- }
1430
-
1431
- .shortcode-section
1432
- {
1433
- color: #ADACAC;
1434
- margin: 48px 0px 15px 41px;
1435
- padding-left: 43px;
1436
- font-size: 1rem;
1437
- width: 300px;
1438
- background-color: white;
1439
- padding: 20px;
1440
- }
1441
  .setting
1442
  {
1443
  color: #ADACAC;
@@ -1496,4 +1483,7 @@ body
1496
  #adminmenu .wp-submenu .modula-jump-pro-menu {
1497
  color:#22e34f;
1498
  font-weight: bold;
 
 
 
1499
  }
14
 
15
  @font-face {
16
  font-family: 'Roboto';
17
+ src: url('../font/roboto/Roboto-Regular-webfont.eot');
18
+ src: url('../font/roboto/Roboto-Regular-webfont.eot?#iefix') format('embedded-opentype'),
19
+ url('../font/roboto/Roboto-Regular-webfont.woff') format('woff'),
20
+ url('../font/roboto/Roboto-Regular-webfont.ttf') format('truetype'),
21
+ url('../font/roboto/Roboto-Regular-webfont.svg#robotoregular') format('svg');
22
  font-weight: normal;
23
  font-style: normal;
24
 
25
  }
26
 
27
 
28
+
29
  [data-icon]:before {
30
  font-family: "modula-icons" !important;
31
  content: attr(data-icon);
95
  margin: 10px;
96
  padding: 5px;
97
  }
98
+ strong {
99
+ font-weight:700;
100
+ }
101
 
102
  /*.shortcode-section
103
  {
110
  margin-top: 5px;
111
  width: 100%;
112
  }
113
+ .page-footer .progress {
114
+ display: none;
115
+ }
116
  .hide
117
  {
118
  display: none;
1425
  opacity: .8;
1426
  color:#fff;
1427
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1428
  .setting
1429
  {
1430
  color: #ADACAC;
1483
  #adminmenu .wp-submenu .modula-jump-pro-menu {
1484
  color:#22e34f;
1485
  font-weight: bold;
1486
+ }
1487
+ #external-galleries input[type=checkbox] {
1488
+ position: static;
1489
  }
admin/edit-gallery.php CHANGED
@@ -1,4 +1,4 @@
1
- <?php
2
  if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('You are not allowed to call this page directly.','modula-gallery')); }
3
 
4
  function modula_print_value($gallery, $field, $default = NULL)
@@ -21,34 +21,31 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('Y
21
  }
22
 
23
  $galleryResults = $this->ModulaDB->getGalleries();
24
- $gallery = null;
25
 
26
- if(isset($_GET['galleryId']))
27
- {
28
- $gid = $_GET['galleryId'];
29
- $gallery = $this->ModulaDB->getGalleryById($gid);
30
- $tg_subtitle = "Edit Gallery: " . $gallery->name;
31
- }
32
- else
33
- {
34
- $tg_subtitle="Edit Gallery";
35
- include("overview.php");
36
- return;
37
- }
38
 
39
  include("header.php");
40
 
41
  ?>
42
 
43
- <script>
44
- var modula_wp_caption_field = '<?php modula_print_value($gallery, "wp_field_caption") ?>';
45
- </script>
46
-
47
- <div class="shortcode-section">
48
- <span> Shortcode: </span>
49
- <input type="text" readonly value="[Modula id='<?php print $gid; ?>']"> </input>
50
- </div>
51
-
 
 
 
 
 
 
 
 
52
  <span class='setting'>Settings:</span>
53
 
54
  <p class="import-export">
@@ -90,7 +87,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('Y
90
 
91
  <form name="gallery_form" id="gallery_form" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" method="post">
92
  <?php wp_nonce_field('Modula', 'Modula'); ?>
93
- <input type="hidden" name="ftg_gallery_edit" id="gallery-id" value="<?php _e($gid); ?>" />
94
  <table class="widefat post fixed" cellspacing="0">
95
  </tbody>
96
  </table>
@@ -246,8 +243,6 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('Y
246
  </table>
247
  </div>
248
  </li>
249
- <?php $idx++ ?>
250
-
251
  <?php endforeach; ?>
252
 
253
  <li id="images">
@@ -256,118 +251,105 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('Y
256
  <i class="icon icon-chevron-right"></i>
257
  </div>
258
 
259
- <div class="collapsible-body white lighten-5">
260
- <div class="image-size-section">
261
- <div>
262
- <div class="tips">
263
- <span class="shortpixel">
264
- <img src="<?php echo plugins_url('',__file__) ?>/images/icon-shortpixel.png" alt="ShortPixel">
265
- <a target="_blank" href="https://shortpixel.com/h/af/N8LKGGT72393"><?php _e('We suggest you to use ShortPixel image optimization plugin for best SEO results.','modula-gallery')?></a></span>
266
- </div>
267
- <label class="label-text"><?php _e('Image size','Modula-gallery')?></label>
268
- <select class="current-image-size browser-default">
269
- <?php
270
- foreach ($this->list_thumbnail_sizes() as $size => $atts)
271
- {
272
- print '<option value="'. $size .'">' . $size . " (" . implode( 'x', $atts ) . ")</option>";
273
- }
274
- ?>
275
- </select>
276
- </div>
277
- </div>
278
-
279
- <div>
280
-
281
- <div class="">
282
- <span class="tip">For multiple selections: Click+CTRL.</span>
283
- </div>
284
- <div class="actions row">
285
- <a href="#" class="open-media-panel waves-effect button-bg waves-light btn action"><i class="mdi-image-photo"></i> <?php _e('Add images','Modula-gallery')?></a>
286
- </div>
287
-
288
- <div class="bulk row">
289
- <label class="label-text row"><?php _e('Bulk Actions','modula-gallery')?></label>
290
- <div class="options">
291
- <a class="btn button-bg waves-effect waves-light" href="#" data-action="select"><?php _e('Select all','modula-gallery')?></a>
292
- <a class="btn button-bg waves-effect waves-light" href="#" data-action="deselect"><?php _e('Deselect all','modula-gallery')?></a>
293
- <a class="btn button-bg waves-effect waves-light" href="#" data-action="toggle"><?php _e('Toggle selection','modula-gallery')?></a>
294
- <a class="btn button-bg waves-effect waves-light" href="#" data-action="resize"><?php _e('Resize','modula-gallery')?></a>
295
- <a class="btn button-bg waves-effect waves-light" href="#" data-action="remove"><?php _e('Remove','modula-gallery')?></a>
296
- </div>
297
- <div class="panel">
298
- <strong></strong>
299
- <p class="text"></p>
300
- <p class="buttons">
301
- <a class="btn deep-orange darken-2 mrm cancel" href="#" ><?php _e('Cancel','modula-gallery')?></a>
302
- <a class="btn green mrm proceed firm" href="#"><?php _e('Proceed','modula-gallery')?></a>
303
- </p>
304
  </div>
305
- </div>
306
- <div class="row">
307
- <span class="tip"><?php _e('Drag images to change order.','modula-gallery')?></span>
308
- </div>
309
-
310
- <div id="image-list"></div>
311
-
312
- <!-- image panel -->
313
- <div id="image-panel-model" style="display:none">
314
- <a href="#" class="close" title="Close">X</a>
315
- <h4> <?php _e('Edit Image','modula-gallery')?> </h4>
316
- <div class="clearfix">
317
- <div class="left">
318
- <div class="figure"></div>
319
- <div class="field sizes"></div>
320
  </div>
321
- <div class="editimage-right" >
322
- <div class="field">
323
- <label><?php _e('Title','modula-gallery')?></label>
324
- <div class="text">
325
- <textarea id="item-title" name="title"></textarea>
326
- </div>
327
- <label><?php _e('Caption','modula-gallery')?></label>
328
- <div class="text">
329
- <textarea id="item-description" name="description"></textarea>
330
- </div>
331
- </div>
332
 
333
- <div class="field">
334
- <label for="alignment"><?php _e('Alignment','modula-gallery')?></label>
335
- <select name="halign">
336
- <option><?php _e('left','modula-gallery')?></option>
337
- <option selected><?php _e('center','modula-gallery')?></option>
338
- <option><?php _e('right','modula-gallery')?></option>
339
- </select>
340
- <select name="valign">
341
- <option><?php _e('top','modula-gallery')?></option>
342
- <option selected><?php _e('middle','modula-gallery')?></option>
343
- <option><?php _e('bottom','modula-gallery')?></option>
344
- </select>
 
 
 
 
345
  </div>
346
- <div class="field">
347
- <label><?php _e('Link','modula-gallery')?></label>
348
- <div class="text">
349
- <!-- <input type="text" name="link" value="" class="text-input row"> -->
350
- <textarea id="item-link" name="link"></textarea>
351
- <select name="target">
352
- <option value=""><?php _e('Default target','modula-gallery')?></option>
353
- <option value="_self"><?php _e('Open in same page','modula-gallery')?></option>
354
- <option value="_blank"><?php _e('Open in _blank','modula-gallery')?></option>
355
- </select>
 
 
 
 
356
  </div>
357
- </div>
358
- <div class="field filters clearfix"></div>
 
 
 
 
 
 
 
 
 
359
 
360
- </div>
361
- </div>
362
- <div class="field buttons">
363
- <a href="#" data-action="cancel" class="action modal-action modal-close waves-effect waves-yellow btn-flat"><i class="mdi-content-reply"></i> <?php _e('Cancel','modula-gallery')?></a>
364
- <a href="#" data-action="save" class="action modal-action modal-close waves-effect waves-green btn-flat"><i class="icon icon-save-disk"></i> <?php _e('Save','modula-gallery')?></a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
365
  </div>
366
  </div>
367
- </div>
368
- </div>
369
  </li>
370
-
371
  </ul>
372
 
373
  <a id="edit-gallery" data-tooltip="Update gallery" data-position="top" data-delay="10" class="tooltipped btn-floating btn-large waves-effect waves-light green update-gallery">
@@ -378,7 +360,6 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('Y
378
  <i class="icon icon-angle-up"></i>
379
  </a>
380
  <ul>
381
- <?php $idx = 0; ?>
382
  <?php foreach($modula_fields as $section => $s) : ?>
383
  <li>
384
  <a class="btn-floating green" rel="<?php print strtolower(str_replace(' ', '-', $section)) ?>"><i class="small <?php _e($s["icon"]) ?>"></i></a>
1
+ <?php
2
  if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('You are not allowed to call this page directly.','modula-gallery')); }
3
 
4
  function modula_print_value($gallery, $field, $default = NULL)
21
  }
22
 
23
  $galleryResults = $this->ModulaDB->getGalleries();
 
24
 
25
+ $gallery = $this->loadedData;
26
+ $tg_subtitle = "Edit Gallery: " . $gallery->name;
 
 
 
 
 
 
 
 
 
 
27
 
28
  include("header.php");
29
 
30
  ?>
31
 
32
+ <script>
33
+ var modula_wp_caption_field = '<?php modula_print_value($gallery, "wp_field_caption") ?>';
34
+ </script>
35
+ <div class="row collapsible">
36
+ <div class="col s12 m6 l4">
37
+ <div class="card-panel light-green lighten-4">
38
+ <span> Shortcode: </span>
39
+ <input type="text" readonly value="[Modula id='<?php print $gallery->id; ?>']"> </input>
40
+ </div>
41
+ </div>
42
+ <div class="col s12 m6 l4">
43
+ <div class="card-panel lime lighten-4">
44
+ <strong>TIP</strong>: blurry images? Try using a higher <i>Minimum image size</i> value!
45
+ </div>
46
+ </div>
47
+ </div>
48
+
49
  <span class='setting'>Settings:</span>
50
 
51
  <p class="import-export">
87
 
88
  <form name="gallery_form" id="gallery_form" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" method="post">
89
  <?php wp_nonce_field('Modula', 'Modula'); ?>
90
+ <input type="hidden" name="ftg_gallery_edit" id="gallery-id" value="<?php _e($gallery->id); ?>" />
91
  <table class="widefat post fixed" cellspacing="0">
92
  </tbody>
93
  </table>
243
  </table>
244
  </div>
245
  </li>
 
 
246
  <?php endforeach; ?>
247
 
248
  <li id="images">
251
  <i class="icon icon-chevron-right"></i>
252
  </div>
253
 
254
+ <div class="collapsible-body white lighten-5">
255
+ <div class="image-size-section">
256
+ <div>
257
+ <div class="tips">
258
+ <span class="shortpixel">
259
+ <img src="<?php echo plugins_url('',__file__) ?>/images/icon-shortpixel.png" alt="ShortPixel">
260
+ <a target="_blank" href="https://shortpixel.com/wp/af/N8LKGGT72393"><?php _e('We suggest you to use ShortPixel image optimization plugin for best SEO results.','modula-gallery')?></a></span>
261
+ </div>
262
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  </div>
264
+
265
+ <div>
266
+ <div class="">
267
+ <span class="tip">For multiple selections: Click+CTRL.</span>
268
+ </div>
269
+ <div class="actions row">
270
+ <a href="#" class="open-media-panel waves-effect button-bg waves-light btn action"><i class="mdi-image-photo"></i> <?php _e('Add images','Modula-gallery')?></a>
 
 
 
 
 
 
 
 
271
  </div>
 
 
 
 
 
 
 
 
 
 
 
272
 
273
+ <div class="bulk row">
274
+ <label class="label-text row"><?php _e('Bulk Actions','modula-gallery')?></label>
275
+ <div class="options">
276
+ <a class="btn button-bg waves-effect waves-light" href="#" data-action="select"><?php _e('Select all','modula-gallery')?></a>
277
+ <a class="btn button-bg waves-effect waves-light" href="#" data-action="deselect"><?php _e('Deselect all','modula-gallery')?></a>
278
+ <a class="btn button-bg waves-effect waves-light" href="#" data-action="toggle"><?php _e('Toggle selection','modula-gallery')?></a>
279
+ <a class="btn button-bg waves-effect waves-light" href="#" data-action="resize"><?php _e('Resize','modula-gallery')?></a>
280
+ <a class="btn button-bg waves-effect waves-light" href="#" data-action="remove"><?php _e('Remove','modula-gallery')?></a>
281
+ </div>
282
+ <div class="panel">
283
+ <strong></strong>
284
+ <p class="text"></p>
285
+ <p class="buttons">
286
+ <a class="btn deep-orange darken-2 mrm cancel" href="#" ><?php _e('Cancel','modula-gallery')?></a>
287
+ <a class="btn green mrm proceed firm" href="#"><?php _e('Proceed','modula-gallery')?></a>
288
+ </p>
289
  </div>
290
+ </div>
291
+ <div class="row">
292
+ <span class="tip"><?php _e('Drag images to change order.','modula-gallery')?></span>
293
+ </div>
294
+
295
+ <div id="image-list"></div>
296
+
297
+ <!-- image panel -->
298
+ <div id="image-panel-model" style="display:none">
299
+ <a href="#" class="close" title="Close">X</a>
300
+ <h4> <?php _e('Edit Image','modula-gallery')?> </h4>
301
+ <div class="clearfix">
302
+ <div class="left">
303
+ <div class="figure"></div>
304
  </div>
305
+ <div class="editimage-right" >
306
+ <div class="field">
307
+ <label><?php _e('Title','modula-gallery')?></label>
308
+ <div class="text">
309
+ <textarea id="item-title" name="title"></textarea>
310
+ </div>
311
+ <label><?php _e('Caption','modula-gallery')?></label>
312
+ <div class="text">
313
+ <textarea id="item-description" name="description"></textarea>
314
+ </div>
315
+ </div>
316
 
317
+ <div class="field">
318
+ <label for="alignment"><?php _e('Alignment','modula-gallery')?></label>
319
+ <select name="halign">
320
+ <option><?php _e('left','modula-gallery')?></option>
321
+ <option selected><?php _e('center','modula-gallery')?></option>
322
+ <option><?php _e('right','modula-gallery')?></option>
323
+ </select>
324
+ <select name="valign">
325
+ <option><?php _e('top','modula-gallery')?></option>
326
+ <option selected><?php _e('middle','modula-gallery')?></option>
327
+ <option><?php _e('bottom','modula-gallery')?></option>
328
+ </select>
329
+ </div>
330
+ <div class="field">
331
+ <label><?php _e('Link','modula-gallery')?></label>
332
+ <div class="text">
333
+ <!-- <input type="text" name="link" value="" class="text-input row"> -->
334
+ <textarea id="item-link" name="link"></textarea>
335
+ <select name="target">
336
+ <option value=""><?php _e('Default target','modula-gallery')?></option>
337
+ <option value="_self"><?php _e('Open in same page','modula-gallery')?></option>
338
+ <option value="_blank"><?php _e('Open in _blank','modula-gallery')?></option>
339
+ </select>
340
+ </div>
341
+ </div>
342
+ <div class="field filters clearfix"></div>
343
+ </div>
344
+ </div>
345
+ <div class="field buttons">
346
+ <a href="#" data-action="cancel" class="action modal-action modal-close waves-effect waves-yellow btn-flat"><i class="mdi-content-reply"></i> <?php _e('Cancel','modula-gallery')?></a>
347
+ <a href="#" data-action="save" class="action modal-action modal-close waves-effect waves-green btn-flat"><i class="icon icon-save-disk"></i> <?php _e('Save','modula-gallery')?></a>
348
+ </div>
349
+ </div>
350
  </div>
351
  </div>
 
 
352
  </li>
 
353
  </ul>
354
 
355
  <a id="edit-gallery" data-tooltip="Update gallery" data-position="top" data-delay="10" class="tooltipped btn-floating btn-large waves-effect waves-light green update-gallery">
360
  <i class="icon icon-angle-up"></i>
361
  </a>
362
  <ul>
 
363
  <?php foreach($modula_fields as $section => $s) : ?>
364
  <li>
365
  <a class="btn-floating green" rel="<?php print strtolower(str_replace(' ', '-', $section)) ?>"><i class="small <?php _e($s["icon"]) ?>"></i></a>
admin/import.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die(_e('You are not allowed to call this page directly.','modula-gallery')); }
3
+
4
+ if(empty($tg_subtitle))
5
+ {
6
+ $tg_subtitle = "Import galleries";
7
+ }
8
+
9
+ ?>
10
+ <?php include("header.php"); ?>
11
+
12
+ <div id="modula-wizard" >
13
+ <h2> <?php _e('Import galleries','modula-gallery'); ?> </h2>
14
+ <form action="#" method="post" onsubmit="return false;">
15
+ <?php wp_nonce_field('Modula', 'Modula'); ?>
16
+
17
+ <fieldset data-step="1">
18
+ <div class="row">
19
+ <div class="input-field">
20
+ <p>Select an external source from which you want to import existing galleries</p>
21
+ <select class="import-source">
22
+ <option value=""><?php _e('Choose a source', 'modula-gallery') ?></option>
23
+ <?php if(class_exists( "Envira_Gallery_Lite" ) || class_exists( "Envira_Gallery" )) : ?>
24
+ <option>Envira</option>
25
+ <?php endif ?>
26
+ <?php if(class_exists( "nggGallery" )) : ?>
27
+ <option>NextGen</option>
28
+ <?php endif ?>
29
+ </select>
30
+ </div>
31
+ </div>
32
+ </fieldset>
33
+ <fieldset data-step="2" data-branch="galleries">
34
+ <div class="field">
35
+ <h5><?php _e('List of galleries','modula-gallery')?></h5>
36
+ <div id="external-galleries">
37
+ <ul></ul>
38
+ <button class="waves-effect button-bg green lighten-3 waves-light btn js-select-all">Select all</button>
39
+ </div>
40
+ </div>
41
+ </fieldset>
42
+ <fieldset data-step="3" data-save="true">
43
+ <h5>You are going to import <strong class="galleries-count"></strong> galleries.</h5>
44
+ </fieldset>
45
+
46
+ <footer class="page-footer">
47
+ <div class="progress loading hide">
48
+ <div class="indeterminate"></div>
49
+ </div>
50
+
51
+ <a class="waves-effect waves-yellow btn-flat prev"><?php _e('Previous','modula-gallery')?></a>
52
+ <a class="waves-effect waves-green btn-flat next"><?php _e('Next','modula-gallery')?></a>
53
+ </footer>
54
+
55
+ </form>
56
+ <div id="success" class="modal">
57
+ <div class="modal-content">
58
+ <h4><?php _e('Success!','modula-gallery')?></h4>
59
+ <p><?php _e('All selected galleries have been imported!','modula-gallery')?></p>
60
+ <p>Go to the <a href="?page=ModulaLite-admin">dashboard page</a> and copy the shortcode to paste inside your pages and posts</p>
61
+ </div>
62
+ <div class="modal-'footer">
63
+ <a href="?page=ModulaLite-admin" id="modal-close" class="waves-effect waves-green btn-flat modal-action"><?php _e('Close','modula-gallery')?></a>
64
+ </div>
65
+ </div>
66
+
67
+ <div id="error" class="modal">
68
+ <div class="modal-content">
69
+ <h4><?php _e('Error!','modula-gallery')?></h4>
70
+ <p><?php _e('For some reason it was not possible to import one or more galleries','modula-gallery')?></p>
71
+ </div>
72
+ <div class="modal-footer">
73
+ <a href="?page=ModulaLite-admin" class="waves-effect waves-green btn-flat modal-action"><?php _e('Close','modula-gallery')?></a>
74
+ </div>
75
+ </div>
76
+ </div>
admin/include/image-list.php CHANGED
@@ -1,35 +1,13 @@
1
  <?php
2
- $default_options = get_option('modula_options');
3
- $defSize = isset($default_options[1]['imageSize']) ? $default_options[1]['imageSize'] : "medium";
4
-
5
- function modula_get_image_size_links($id)
6
- {
7
- $result = array();
8
- $sizes = get_intermediate_image_sizes();
9
- $sizes[] = 'full';
10
-
11
- foreach ( $sizes as $size )
12
- {
13
- $image = wp_get_attachment_image_src( $id, $size );
14
-
15
- if ( !empty( $image ) && ( true == $image[3] || 'full' == $size ) )
16
- $result["$image[1]x$image[2]"] = $image[0];
17
- }
18
-
19
- return $result;
20
- }
21
-
22
- foreach($imageResults as $image) {
23
- $sizes = modula_get_image_size_links($image->imageId);
24
  $thumb = array_key_exists("150x150", $sizes) ? $sizes["150x150"] : $image->imagePath;
25
  ?>
26
  <div class='item card' data-image-id="<?php _e($image->imageId) ?>" data-id="<?php _e($image->Id) ?>">
27
  <input type="hidden" name="filter-list" value="<?php print $image->imageId ?>">
28
  <div class="figure card-image">
29
  <img data-type="image" class="thumb" src="<?php _e($thumb) ?>" />
30
- <?php if(in_array($image->imagePath, $sizes)) : ?>
31
- <span class='card-title'><?php print array_search($image->imagePath, $sizes) ?></span>
32
- <?php endif ?>
33
  <?php
34
  if(!empty($image->filters))
35
  {
1
  <?php
2
+ $default_options = get_option('modula_options');
3
+ foreach($imageResults as $image) {
4
+ $sizes = ModulaLiteTools::get_image_size_links($image->imageId);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  $thumb = array_key_exists("150x150", $sizes) ? $sizes["150x150"] : $image->imagePath;
6
  ?>
7
  <div class='item card' data-image-id="<?php _e($image->imageId) ?>" data-id="<?php _e($image->Id) ?>">
8
  <input type="hidden" name="filter-list" value="<?php print $image->imageId ?>">
9
  <div class="figure card-image">
10
  <img data-type="image" class="thumb" src="<?php _e($thumb) ?>" />
 
 
 
11
  <?php
12
  if(!empty($image->filters))
13
  {
admin/overview.php CHANGED
@@ -15,11 +15,24 @@
15
 
16
  <div class="bd">
17
  <?php if(count($galleries) == 0) : ?>
18
- <h5 class="cyan-text text-darken-3"><?php _e('Welcome to Modula Gallery!','modula-gallery')?></h5>
19
- <p>
20
- <?php _e('Create your first awesome gallery, click','modula-gallery')?> <a href="?page=add-modula"><?php _e('here','modula-gallery')?></a>.
21
- </p>
 
 
 
 
 
 
22
  <?php else : ?>
 
 
 
 
 
 
 
23
  <div id="gallery-list" class="row">
24
  <?php foreach($galleries as $gallery) : ?>
25
  <?php
@@ -42,7 +55,7 @@
42
  </div>
43
  <div class="card-action darken-4">
44
  <a href="#" data-tooltip="Show shortcode" data-position="top" data-delay="10" class="tooltipped waves-effect show-shortcode" data-gid="<?php print $gid ?>"><i class="mdi mdi-code-array"></i></a>
45
- <a href="?page=edit-modula&galleryId=<?php _e($gid);?>" data-tooltip="Edit gallery" data-position="top" data-delay="10" class="tooltipped waves-effect waves"><i class="mdi mdi-pencil"></i></a>
46
  <a data-tooltip="Clone gallery" data-position="top" data-delay="10" class="tooltipped waves-effect waves clone-gallery" data-gid="<?php print $gid ?>"><i class="mdi mdi-content-copy"></i></a>
47
 
48
  <a data-tooltip="Delete gallery" datacolor="red" data-position="top" data-delay="10" class="tooltipped waves-effect waves delete-gallery" data-gid="<?php print $gid ?>"><i class="mdi mdi-delete"></i></a>
@@ -105,7 +118,7 @@
105
 
106
  $(".card .card-content").click(function () {
107
  var id = $(this).parents(".card").data("gid");
108
- location.href = "?page=edit-modula&galleryId=" + id;
109
  });
110
 
111
  $(".delete-gallery").click(function (e) {
@@ -113,8 +126,7 @@
113
  galleryId = $(this).data("gid");
114
  galleryName = $(this).parents(".data").find(".card-title").text();
115
  $("#delete-gallery-modal span").text(galleryName);
116
- $("#delete-gallery-modal").openModal();
117
-
118
  });
119
 
120
  $(".clone-gallery").click(function (e) {
15
 
16
  <div class="bd">
17
  <?php if(count($galleries) == 0) : ?>
18
+ <div class="row ">
19
+ <div class="col s12 m6 l4">
20
+ <div class="card-panel light-green lighten-4">
21
+ <h5 class="cyan-text text-darken-3"><?php _e('Welcome to Modula Gallery!','modula-gallery')?></h5>
22
+ <p>
23
+ <?php _e('Create your first awesome gallery, click','modula-gallery')?> <a href="?page=add-modula-lite"><?php _e('here','modula-gallery')?></a>.
24
+ </p>
25
+ </div>
26
+ </div>
27
+ </div>
28
  <?php else : ?>
29
+ <div class="row">
30
+ <div class="col s12 m6 l4">
31
+ <div class="card-panel lime lighten-4">
32
+ <strong>TIP</strong>: blurry images? Try using a higher <i>Minimum image size</i> value!
33
+ </div>
34
+ </div>
35
+ </div>
36
  <div id="gallery-list" class="row">
37
  <?php foreach($galleries as $gallery) : ?>
38
  <?php
55
  </div>
56
  <div class="card-action darken-4">
57
  <a href="#" data-tooltip="Show shortcode" data-position="top" data-delay="10" class="tooltipped waves-effect show-shortcode" data-gid="<?php print $gid ?>"><i class="mdi mdi-code-array"></i></a>
58
+ <a href="?page=edit-modula-lite&galleryId=<?php _e($gid);?>" data-tooltip="Edit gallery" data-position="top" data-delay="10" class="tooltipped waves-effect waves"><i class="mdi mdi-pencil"></i></a>
59
  <a data-tooltip="Clone gallery" data-position="top" data-delay="10" class="tooltipped waves-effect waves clone-gallery" data-gid="<?php print $gid ?>"><i class="mdi mdi-content-copy"></i></a>
60
 
61
  <a data-tooltip="Delete gallery" datacolor="red" data-position="top" data-delay="10" class="tooltipped waves-effect waves delete-gallery" data-gid="<?php print $gid ?>"><i class="mdi mdi-delete"></i></a>
118
 
119
  $(".card .card-content").click(function () {
120
  var id = $(this).parents(".card").data("gid");
121
+ location.href = "?page=edit-modula-lite&galleryId=" + id;
122
  });
123
 
124
  $(".delete-gallery").click(function (e) {
126
  galleryId = $(this).data("gid");
127
  galleryName = $(this).parents(".data").find(".card-title").text();
128
  $("#delete-gallery-modal span").text(galleryName);
129
+ $("#delete-gallery-modal").openModal();
 
130
  });
131
 
132
  $(".clone-gallery").click(function (e) {
admin/scripts/modula-admin.js CHANGED
@@ -2,7 +2,7 @@ var TG = function ($) {
2
  var _loading = null;
3
 
4
  return {
5
- choose_images: function(currentImageSize, title_field, caption_field, callback) {
6
  tgm_media_frame = wp.media.frames.tgm_media_frame = wp.media({
7
  multiple: true,
8
  library: {
@@ -46,11 +46,8 @@ var TG = function ($) {
46
  obj.title = attachment[title_field];
47
  if (caption_field != 'none')
48
  obj.description = attachment[caption_field];
49
-
50
- if (attachment.sizes[currentImageSize])
51
- obj.imagePath = attachment.sizes[currentImageSize].url
52
- else
53
- obj.imagePath = attachment.url;
54
 
55
  if (attachment.sizes.thumbnail)
56
  obj.thumbnail = attachment.sizes.thumbnail.url;
@@ -250,7 +247,7 @@ var TG = function ($) {
250
  TG.hide_loading();
251
  }
252
  else
253
- location.href = "?page=edit-modula";
254
  }
255
  });
256
  },
@@ -352,7 +349,7 @@ var TG = function ($) {
352
 
353
  $_success.find(".code").val("[Modula id='" + id + "']");
354
  $_success.find(".gallery-name").text(name);
355
- $_success.find(".customize").attr("href", "?page=edit-modula&galleryId="+id);
356
 
357
  $_success.openModal();
358
  });
@@ -568,6 +565,45 @@ var TG = function ($) {
568
  }
569
  });
570
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
571
  $(".open-media-panel").on("click", function() {
572
 
573
  var currentImageSize = $('.current-image-size').val();
@@ -662,7 +698,7 @@ var TG = function ($) {
662
  }
663
  }(jQuery);
664
 
665
- var TGWizard = function($) {
666
 
667
  var _curPage = 1;
668
  var $_wizard = null;
@@ -691,7 +727,7 @@ var TGWizard = function($) {
691
 
692
  /*! Wizard save */
693
  if ($_wizard.find("fieldset[data-step=" + _curPage + "]").data("save")) {
694
- TGWizard.save();
695
  return;
696
  } else {
697
  branch = "images";
@@ -779,7 +815,7 @@ var TGWizard = function($) {
779
  var size = $_wizard.find("[name=def_imgsize]").val();
780
  var title_field = $("[name=ftg_wp_field_title]").val();
781
  var caption_field = $("[name=ftg_wp_field_caption]").val();
782
- TG.choose_images(size, title_field, caption_field, function(images) {
783
  var delta = Math.pow(2, 4) + Math.pow(2, 2);
784
  var prev = [];
785
  if($("[name=enc_images]").val())
@@ -823,6 +859,7 @@ var TGWizard = function($) {
823
  var images = $('[name=enc_images]').val();
824
  var width = $('#width').val();
825
  var height = $('#height').val();
 
826
 
827
  var data={ action: 'modula_create_gallery',
828
  name: name,
@@ -830,6 +867,7 @@ var TGWizard = function($) {
830
  images: images,
831
  width: width,
832
  height: height,
 
833
  Modula: $('#Modula').val()
834
  };
835
 
@@ -852,7 +890,7 @@ var TGWizard = function($) {
852
  $_success = $('#success');
853
  $_success.find(".code").val("[Modula id='" + id + "']");
854
  $_success.find(".gallery-name").text(name);
855
- $_success.find(".customize").attr("href", "?page=edit-modula&galleryId="+id);
856
 
857
  $_success.openModal();
858
  }
@@ -860,6 +898,134 @@ var TGWizard = function($) {
860
  }
861
  }
862
  }(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
863
  jQuery(function () {
864
  jQuery('.pickColor').wpColorPicker({
865
  change: function(event, ui){},
@@ -869,7 +1035,8 @@ jQuery(function () {
869
  });
870
 
871
  TG.bind();
872
- TGWizard.init();
 
873
 
874
  jQuery("a[href$=modula-gallery-upgrade]").addClass('modula-jump-pro-menu').click(function (e) {
875
  e.preventDefault();
2
  var _loading = null;
3
 
4
  return {
5
+ choose_images: function(title_field, caption_field, callback) {
6
  tgm_media_frame = wp.media.frames.tgm_media_frame = wp.media({
7
  multiple: true,
8
  library: {
46
  obj.title = attachment[title_field];
47
  if (caption_field != 'none')
48
  obj.description = attachment[caption_field];
49
+
50
+ obj.imagePath = attachment.url;
 
 
 
51
 
52
  if (attachment.sizes.thumbnail)
53
  obj.thumbnail = attachment.sizes.thumbnail.url;
247
  TG.hide_loading();
248
  }
249
  else
250
+ location.href = "?page=edit-modula-lite";
251
  }
252
  });
253
  },
349
 
350
  $_success.find(".code").val("[Modula id='" + id + "']");
351
  $_success.find(".gallery-name").text(name);
352
+ $_success.find(".customize").attr("href", "?page=edit-modula-lite&galleryId="+id);
353
 
354
  $_success.openModal();
355
  });
565
  }
566
  });
567
 
568
+ $(".import-source").on("change", function () {
569
+ var source = $(this).val();
570
+ $("#external-galleries ul").empty();
571
+
572
+ if(source) {
573
+ var data = {
574
+ action : 'modula_get_ext_galleries',
575
+ source: source,
576
+ Modula : $('#Modula').val()
577
+ };
578
+
579
+ function fill(list) {
580
+ var $ul = $("#external-galleries ul");
581
+ $.each(list, function(i, g) {
582
+ console.log(g);
583
+ $ul.append("<li><input class='js-item' type='checkbox' value='"+g.id+"'/> "+ g.title +"</li>");
584
+ });
585
+ }
586
+ TG.show_loading();
587
+ $.ajax({
588
+ url: ajaxurl,
589
+ data: data,
590
+ dataType: "json",
591
+ type: "post",
592
+ error: function(a,b,c) {
593
+ TG.hide_loading();
594
+ alert("error loading galleries");
595
+ },
596
+ success: function(r) {
597
+ if(r.success) {
598
+ TG.hide_loading();
599
+
600
+ fill(r.galleries);
601
+ }
602
+ }
603
+ });
604
+ }
605
+ });
606
+
607
  $(".open-media-panel").on("click", function() {
608
 
609
  var currentImageSize = $('.current-image-size').val();
698
  }
699
  }(jQuery);
700
 
701
+ var NewGalleryWizard = function($) {
702
 
703
  var _curPage = 1;
704
  var $_wizard = null;
727
 
728
  /*! Wizard save */
729
  if ($_wizard.find("fieldset[data-step=" + _curPage + "]").data("save")) {
730
+ NewGalleryWizard.save();
731
  return;
732
  } else {
733
  branch = "images";
815
  var size = $_wizard.find("[name=def_imgsize]").val();
816
  var title_field = $("[name=ftg_wp_field_title]").val();
817
  var caption_field = $("[name=ftg_wp_field_caption]").val();
818
+ TG.choose_images(title_field, caption_field, function(images) {
819
  var delta = Math.pow(2, 4) + Math.pow(2, 2);
820
  var prev = [];
821
  if($("[name=enc_images]").val())
859
  var images = $('[name=enc_images]').val();
860
  var width = $('#width').val();
861
  var height = $('#height').val();
862
+ var img_size = $('#img_size').val();
863
 
864
  var data={ action: 'modula_create_gallery',
865
  name: name,
867
  images: images,
868
  width: width,
869
  height: height,
870
+ img_size: img_size,
871
  Modula: $('#Modula').val()
872
  };
873
 
890
  $_success = $('#success');
891
  $_success.find(".code").val("[Modula id='" + id + "']");
892
  $_success.find(".gallery-name").text(name);
893
+ $_success.find(".customize").attr("href", "?page=edit-modula-lite&galleryId="+id);
894
 
895
  $_success.openModal();
896
  }
898
  }
899
  }
900
  }(jQuery);
901
+ var ImportWizard = function($) {
902
+
903
+ var _curPage = 1;
904
+ var $_wizard = null;
905
+ var _lock = false;
906
+
907
+ return {
908
+ init: function() {
909
+ $_wizard = $("#modula-wizard");
910
+ $("#external-galleries .js-select-all").on("click", function () {
911
+ $("#external-galleries .js-item").each(function () {
912
+ this.checked = true;
913
+ });
914
+ });
915
+ // $_wizard.find('select').material_select();
916
+
917
+ /*! Wizard next */
918
+ $_wizard.find(".next").click(function() {
919
+ if ($(this).hasClass("disabled"))
920
+ return;
921
+
922
+ // var branch = $("[name=ftg_source]:checked").val();
923
+ $(".invalid").removeClass("invalid");
924
+
925
+ if (_curPage == 1) {
926
+ var source = $(".import-source").val();
927
+ if (source.length == 0) {
928
+ $(".import-source").addClass("invalid");
929
+ return false;
930
+ }
931
+ }
932
+
933
+ if (_curPage == 2) {
934
+ var count = $("#external-galleries .js-item:checked").length;
935
+ if(count == 0)
936
+ return false;
937
+
938
+ $_wizard.find(".galleries-count").text(count);
939
+ }
940
+
941
+ /*! Wizard save */
942
+ if ($_wizard.find("fieldset[data-step=" + _curPage + "]").data("save")) {
943
+ ImportWizard.import();
944
+ return;
945
+ } else {
946
+ branch = "images";
947
+ $_wizard.find("fieldset").hide();
948
+ _curPage++;
949
+
950
+ var $fs = $_wizard.find("fieldset[data-step=" + _curPage + "]");
951
+ $fs.show();
952
+
953
+ if ($fs.data("save")) {
954
+ $('.prev').css("visibility","visible");
955
+ $(this).text("Proceed");
956
+
957
+ } else {
958
+ $(this).text("Next");
959
+ }
960
+ }
961
+
962
+ $_wizard.find(".prev").css({
963
+ visibility: 'visible'
964
+ });
965
+ });
966
+
967
+ /*! Wizard prev */
968
+ $_wizard.find(".prev").click(function() {
969
+ if ($(this).hasClass("disabled"))
970
+ return;
971
+ _curPage--;
972
+
973
+ var branch = $("[name=ftg_source]:checked").val();
974
+
975
+ if (_curPage == 1) {
976
+ $(this).css({
977
+ visibility: 'hidden'
978
+ });
979
+ }
980
+
981
+ $_wizard.find("fieldset").hide();
982
+ var $fs = $_wizard.find("fieldset[data-step=" + _curPage + "]");
983
+ if (_curPage == 3) {
984
+ $fs = $fs.filter("[data-branch=" + branch + "]");
985
+ }
986
+ $fs.show();
987
+ $_wizard.find(".next").css({
988
+ visibility: 'visible'
989
+ }).text("Next");
990
+ });
991
+ },
992
+ import: function() {
993
+ var source = $('.import-source').val();
994
+ var ids = [];
995
+
996
+ $("#external-galleries .js-item:checked").each(function (i, e) {
997
+ ids.push($(e).val());
998
+ });
999
+
1000
+ var data = {
1001
+ action : 'modula_do_import_galleries',
1002
+ source: source,
1003
+ ids: ids.join(','),
1004
+ Modula : $('#Modula').val()
1005
+ };
1006
+
1007
+ $_wizard.find("footer a").addClass("disabled");
1008
+ $_wizard.find(".loading").show();
1009
+
1010
+ $.ajax({
1011
+ url: ajaxurl,
1012
+ data: data,
1013
+ dataType: "json",
1014
+ type: "post",
1015
+ error: function(a,b,c) {
1016
+ $("#error").openModal();
1017
+ },
1018
+ success: function(r) {
1019
+ if(r.success) {
1020
+ $('#success').openModal();
1021
+ } else {
1022
+ $("#error").openModal();
1023
+ }
1024
+ }
1025
+ });
1026
+ }
1027
+ }
1028
+ }(jQuery);
1029
  jQuery(function () {
1030
  jQuery('.pickColor').wpColorPicker({
1031
  change: function(event, ui){},
1035
  });
1036
 
1037
  TG.bind();
1038
+ NewGalleryWizard.init();
1039
+ ImportWizard.init();
1040
 
1041
  jQuery("a[href$=modula-gallery-upgrade]").addClass('modula-jump-pro-menu').click(function (e) {
1042
  e.preventDefault();
lib/db-class.php CHANGED
@@ -66,11 +66,24 @@ class ModulaLiteDB {
66
  print_r($wpdb->last_error);
67
  return $imageEdited;
68
  }
 
 
 
 
 
 
69
 
70
- public function getGalleryById($id) {
71
  global $wpdb;
72
  $gallery = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->ModulaGalleries WHERE Id = %s", $id));
73
- return json_decode($gallery->configuration);
 
 
 
 
 
 
 
74
  }
75
 
76
  public function getLastGalleryId()
@@ -124,7 +137,7 @@ class ModulaLiteDB {
124
  public function editImage($id, $data) {
125
  global $wpdb;
126
  $imageEdited = $wpdb->update( $wpdb->ModulaImages, $data, array( 'Id' => $id ) );
127
- //exit( var_dump( $wpdb->last_query ) );
128
  return $imageEdited;
129
  }
130
 
66
  print_r($wpdb->last_error);
67
  return $imageEdited;
68
  }
69
+
70
+ public function getIDbyGUID( $guid )
71
+ {
72
+ global $wpdb;
73
+ return $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE guid=%s", $guid ) );
74
+ }
75
 
76
+ public function getGalleryById($id, $default=null) {
77
  global $wpdb;
78
  $gallery = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->ModulaGalleries WHERE Id = %s", $id));
79
+ $data = json_decode($gallery->configuration);
80
+ if($default)
81
+ foreach ( $default as $k => $v )
82
+ if(! isset($data->$k))
83
+ $data->$k = $v;
84
+
85
+ $data->id = $id;
86
+ return $data;
87
  }
88
 
89
  public function getLastGalleryId()
137
  public function editImage($id, $data) {
138
  global $wpdb;
139
  $imageEdited = $wpdb->update( $wpdb->ModulaImages, $data, array( 'Id' => $id ) );
140
+ //print $wpdb->last_query;
141
  return $imageEdited;
142
  }
143
 
lib/gallery-class.php CHANGED
@@ -3,21 +3,30 @@
3
  define("MODULA_DB_MODE", 1);
4
  define("MODULA_WP_MODE", 2);
5
 
6
- if (!class_exists("ModulaFE")) {
7
- class ModulaFE {
8
-
9
- public function __construct($db)
 
 
10
  {
11
  $this->gallery = new stdClass();
12
  $this->db = $db;
13
  $this->wp_images = array();
14
  $this->images = array();
 
 
 
15
  }
16
 
17
- public function initByGalleryId($id)
18
  {
19
- $this->id = $id;
20
  $this->gallery = $this->db->getGalleryById($this->id);
 
 
 
 
 
21
  $this->gallery->mode = MODULA_DB_MODE;
22
 
23
  if(! empty($_GET["debug"]))
@@ -28,14 +37,26 @@ if (!class_exists("ModulaFE")) {
28
  print_r($this->gallery);
29
  print "\n-->\n";
30
  }
31
-
 
 
 
 
 
 
 
 
 
 
 
32
  $this->images = $this->loadModulaImages();
33
 
34
  $ids = array();
 
35
  foreach($this->images as $img)
36
- $ids[] = $img->imageId;
37
-
38
- if(count($this->images) > 0)
39
  $this->loadWPImages($ids);
40
  }
41
 
@@ -64,6 +85,7 @@ if (!class_exists("ModulaFE")) {
64
 
65
  //$this->images[$att->ID]->imagePath = $att->guid;
66
  $this->images[$att->ID]->url = $att->url;
 
67
  }
68
  }
69
  }
@@ -260,10 +282,9 @@ if (!class_exists("ModulaFE")) {
260
  $html .= "<div class='modula' id='jtg-$this->id$rid'>\n";
261
 
262
  $html .= "<div class='items'>\n";
 
263
  foreach(array_slice($this->images, 0, 40/2) as $image)
264
- {
265
- $imgUrl = WP_PLUGIN_URL . '/modula/img.php?id=' . $image->imageId;
266
-
267
  $title = in_array($this->gallery->lightbox, array('prettyphoto', 'fancybox', 'swipebox', 'lightbox2')) ? "title" : "data-title";
268
  $rel = $this->gallery->lightbox == "prettyphoto" ? "prettyPhoto[jtg-$this->id$rid]" : "jtg-$this->id$rid";
269
 
@@ -278,9 +299,11 @@ if (!class_exists("ModulaFE")) {
278
 
279
  $hasTitle = empty($image->title) ? 'notitle' : '';
280
 
 
 
281
  $html .= "\t<div class=\"item " . $hasTitle . " effect-". $hoverEffect->code ."\">\n";
282
  $html .= "<a $title='$image->description' ". ($this->gallery->lightbox == "lightbox2" ? "data-lightbox='gallery'" : "") ." rel='$rel' " . $this->getTarget($image) . " class='tile-inner " . ($this->getLightboxClass($image)) . "' " . $this->getLink($image) . ">\n";
283
- $html .= "\t\t<img data-valign='$image->valign' data-halign='$image->halign' class='pic' src='$image->imagePath' data-url='$imgUrl&h=$image->halign&v=$image->valign' />\n";
284
  $html .= "\t\t<div class=\"figc\">\n";
285
  $html .= "\t\t\t<div class=\"figc-inner\">\n";
286
  if($this->gallery->hoverEffect != 'none' && ! empty($image->title))
@@ -311,7 +334,8 @@ if (!class_exists("ModulaFE")) {
311
  {
312
  $html .= "\t\tonComplete: function () { " . stripslashes($this->gallery->script) . "},\n";
313
  }
314
-
 
315
  $html .= "\t\tmargin: ". $this->gallery->margin .",\n";
316
  // $html .= "\t\tkeepArea: " . ($this->gallery->keepArea == "T" ? "true" : "false") . ",\n";
317
  $html .= "\t\tenableTwitter: " . ($this->gallery->enableTwitter == "T" ? "true" : "false") . ",\n";
@@ -341,8 +365,9 @@ if (!class_exists("ModulaFE")) {
341
  public function loadModulaImages()
342
  {
343
  $images = array();
 
344
  foreach($this->db->getImagesByGalleryId($this->id) as $img)
345
- $images[$img->imageId] = $img;
346
 
347
  return $images;
348
  }
3
  define("MODULA_DB_MODE", 1);
4
  define("MODULA_WP_MODE", 2);
5
 
6
+ if (!class_exists( "ModulaLiteFE" )) {
7
+ class ModulaLiteFE {
8
+
9
+ private $defaultValues;
10
+
11
+ public function __construct($db, $id, $defaultValues)
12
  {
13
  $this->gallery = new stdClass();
14
  $this->db = $db;
15
  $this->wp_images = array();
16
  $this->images = array();
17
+ $this->id = $id;
18
+ $this->defaultValues = $defaultValues;
19
+ $this->init();
20
  }
21
 
22
+ public function init()
23
  {
 
24
  $this->gallery = $this->db->getGalleryById($this->id);
25
+ foreach ( $this->defaultValues as $k => $v ) {
26
+ if(! isset($this->gallery->$k))
27
+ $this->gallery->$k = $v;
28
+ }
29
+
30
  $this->gallery->mode = MODULA_DB_MODE;
31
 
32
  if(! empty($_GET["debug"]))
37
  print_r($this->gallery);
38
  print "\n-->\n";
39
  }
40
+
41
+ if(! $this->gallery->hasResizedImages) {
42
+
43
+ $images = $this->db->getImagesByGalleryId( $this->id );
44
+ $images = ModulaLiteTools::check_and_resize( $images, $this->gallery->img_size );
45
+ foreach($images as $img) {
46
+ $this->db->editImage( $img->Id, (array)$img );
47
+ }
48
+ $this->gallery->hasResizedImages = true;
49
+ $this->db->editGallery($this->id, (array)$this->gallery);
50
+ }
51
+
52
  $this->images = $this->loadModulaImages();
53
 
54
  $ids = array();
55
+ $idx = 0;
56
  foreach($this->images as $img)
57
+ $ids[] = $img->imageId < 0 ? $img->imageId - ($idx++) : $img->imageId;
58
+
59
+ if(count($this->images) > 0 && $this->gallery->importedFrom != 'NextGen')
60
  $this->loadWPImages($ids);
61
  }
62
 
85
 
86
  //$this->images[$att->ID]->imagePath = $att->guid;
87
  $this->images[$att->ID]->url = $att->url;
88
+ $this->images[$att->ID]->alt = get_post_meta( $att->ID, '_wp_attachment_image_alt', true );
89
  }
90
  }
91
  }
282
  $html .= "<div class='modula' id='jtg-$this->id$rid'>\n";
283
 
284
  $html .= "<div class='items'>\n";
285
+
286
  foreach(array_slice($this->images, 0, 40/2) as $image)
287
+ {
 
 
288
  $title = in_array($this->gallery->lightbox, array('prettyphoto', 'fancybox', 'swipebox', 'lightbox2')) ? "title" : "data-title";
289
  $rel = $this->gallery->lightbox == "prettyphoto" ? "prettyPhoto[jtg-$this->id$rid]" : "jtg-$this->id$rid";
290
 
299
 
300
  $hasTitle = empty($image->title) ? 'notitle' : '';
301
 
302
+ $imgUrl = str_replace(get_site_url(), '', $image->imagePath);
303
+
304
  $html .= "\t<div class=\"item " . $hasTitle . " effect-". $hoverEffect->code ."\">\n";
305
  $html .= "<a $title='$image->description' ". ($this->gallery->lightbox == "lightbox2" ? "data-lightbox='gallery'" : "") ." rel='$rel' " . $this->getTarget($image) . " class='tile-inner " . ($this->getLightboxClass($image)) . "' " . $this->getLink($image) . ">\n";
306
+ $html .= "\t\t<img data-valign='$image->valign' alt='$image->alt' data-halign='$image->halign' class='pic' src='$imgUrl' data-src='$imgUrl' />\n";
307
  $html .= "\t\t<div class=\"figc\">\n";
308
  $html .= "\t\t\t<div class=\"figc-inner\">\n";
309
  if($this->gallery->hoverEffect != 'none' && ! empty($image->title))
334
  {
335
  $html .= "\t\tonComplete: function () { " . stripslashes($this->gallery->script) . "},\n";
336
  }
337
+
338
+ $html .= "\t\tresizer: '". plugins_url('modula-best-grid-gallery/image.php', '') ."',\n";
339
  $html .= "\t\tmargin: ". $this->gallery->margin .",\n";
340
  // $html .= "\t\tkeepArea: " . ($this->gallery->keepArea == "T" ? "true" : "false") . ",\n";
341
  $html .= "\t\tenableTwitter: " . ($this->gallery->enableTwitter == "T" ? "true" : "false") . ",\n";
365
  public function loadModulaImages()
366
  {
367
  $images = array();
368
+ $idx = 0;
369
  foreach($this->db->getImagesByGalleryId($this->id) as $img)
370
+ $images[$img->imageId < 0 ? $img->imageId - ($idx++) : $img->imageId] = $img;
371
 
372
  return $images;
373
  }
scripts/jquery.modula.js CHANGED
@@ -16,6 +16,7 @@ function tg_getURLParameter(name) {
16
  // Create the defaults once
17
  var pluginName = 'modulaGallery',
18
  defaults = {
 
19
  margin: 10,
20
  keepArea: true,
21
  enableTwitter: false,
@@ -251,7 +252,10 @@ function tg_getURLParameter(name) {
251
  if (index + 1 < instance.$items.length)
252
  instance.loadImage(index + 1);
253
  }
254
- img.src = source.attr('src');
 
 
 
255
  }
256
 
257
  Plugin.prototype.setupFilters = function () {
@@ -310,6 +314,7 @@ function tg_getURLParameter(name) {
310
  });
311
 
312
  this.$items.addClass("tile");
 
313
 
314
  if (this.options.width) {
315
  this.$itemsCnt.width(this.options.width);
16
  // Create the defaults once
17
  var pluginName = 'modulaGallery',
18
  defaults = {
19
+ resizer: '/',
20
  margin: 10,
21
  keepArea: true,
22
  enableTwitter: false,
252
  if (index + 1 < instance.$items.length)
253
  instance.loadImage(index + 1);
254
  }
255
+
256
+ var original_src = source.data('src');
257
+ img.src = original_src;
258
+ source.attr("src", original_src);
259
  }
260
 
261
  Plugin.prototype.setupFilters = function () {
314
  });
315
 
316
  this.$items.addClass("tile");
317
+ this.$items.find(".pic").removeAttr("src");
318
 
319
  if (this.options.width) {
320
  this.$itemsCnt.width(this.options.width);