NextGEN Gallery – WordPress Gallery Plugin - Version 1.4.2

Version Description

  • 16.11.2009 =
  • Changed : Load sildeshow XML not longer via relative path
  • Bugfix : No imagebrowser in carousel mode
  • Bugfix : JS Effect navigation based on wrong array structure
  • Bugfix : Remove whitespaces from meta import
  • Bugfix : Capability check for upgrade notice
  • Removed : Hide "more settings" for now, causes problems with IE and jQuery UI tabs
Download this release

Release Info

Developer alexrabe
Plugin Icon 128x128 NextGEN Gallery – WordPress Gallery Plugin
Version 1.4.2
Comparing to
See all releases

Code changes from version 1.4.1 to 1.4.2

admin/admin.php CHANGED
@@ -69,9 +69,10 @@ class nggAdminPanel{
69
  }
70
 
71
  // Show update message
72
- if ( $nggCheck->startCheck() && (!IS_WPMU) ) {
73
- echo '<div class="plugin-update">' . __('A new version of NextGEN Gallery is available !', 'nggallery') . ' <a href="http://wordpress.org/extend/plugins/nextgen-gallery/download/" target="_blank">' . __('Download here', 'nggallery') . '</a></div>' ."\n";
74
- }
 
75
 
76
  // Set installation date
77
  if( empty($ngg->options['installDate']) ) {
@@ -96,7 +97,6 @@ class nggAdminPanel{
96
  </a>
97
  <span>
98
  </p>
99
- <br />
100
  </div>
101
  <?php
102
  }
@@ -168,7 +168,7 @@ class nggAdminPanel{
168
  if( !isset($_GET['page']) )
169
  return;
170
 
171
- wp_register_script('ngg-ajax', NGGALLERY_URLPATH .'admin/js/ngg.ajax.js', array('jquery'), '1.4.0');
172
  wp_localize_script('ngg-ajax', 'nggAjaxSetup', array(
173
  'url' => admin_url('admin-ajax.php'),
174
  'action' => 'ngg_ajax_operation',
@@ -229,7 +229,7 @@ class nggAdminPanel{
229
  case NGGFOLDER :
230
  wp_enqueue_style( 'thickbox');
231
  case "nggallery-about" :
232
- wp_enqueue_style( 'nggadmin', NGGALLERY_URLPATH .'admin/css/nggadmin.css', false, '2.8.0', 'screen' );
233
  wp_admin_css( 'css/dashboard' );
234
  break;
235
  case "nggallery-add-gallery" :
@@ -240,11 +240,11 @@ class nggAdminPanel{
240
  case "nggallery-roles" :
241
  case "nggallery-manage-album" :
242
  //wp_enqueue_style( 'jqueryui', NGGALLERY_URLPATH .'admin/css/jquery-ui.css', false, '1.7.1', 'screen' );
243
- wp_enqueue_style( 'nggadmin', NGGALLERY_URLPATH .'admin/css/nggadmin.css', false, '2.8.0', 'screen' );
244
  wp_enqueue_style( 'thickbox');
245
  break;
246
  case "nggallery-tags" :
247
- wp_enqueue_style( 'nggtags', NGGALLERY_URLPATH .'admin/css/tags-admin.css', false, '2.6.0', 'screen' );
248
  break;
249
  case "nggallery-style" :
250
  wp_admin_css( 'css/theme-editor' );
69
  }
70
 
71
  // Show update message
72
+ if ( current_user_can('activate_plugins') )
73
+ if ( $nggCheck->startCheck() && (!IS_WPMU) ) {
74
+ echo '<div class="plugin-update">' . __('A new version of NextGEN Gallery is available !', 'nggallery') . ' <a href="http://wordpress.org/extend/plugins/nextgen-gallery/download/" target="_blank">' . __('Download here', 'nggallery') . '</a></div>' ."\n";
75
+ }
76
 
77
  // Set installation date
78
  if( empty($ngg->options['installDate']) ) {
97
  </a>
98
  <span>
99
  </p>
 
100
  </div>
101
  <?php
102
  }
168
  if( !isset($_GET['page']) )
169
  return;
170
 
171
+ wp_register_script('ngg-ajax', NGGALLERY_URLPATH . 'admin/js/ngg.ajax.js', array('jquery'), '1.4.0');
172
  wp_localize_script('ngg-ajax', 'nggAjaxSetup', array(
173
  'url' => admin_url('admin-ajax.php'),
174
  'action' => 'ngg_ajax_operation',
229
  case NGGFOLDER :
230
  wp_enqueue_style( 'thickbox');
231
  case "nggallery-about" :
232
+ wp_enqueue_style( 'nggadmin', NGGALLERY_URLPATH .'admin/css/nggadmin.css', false, '2.8.1', 'screen' );
233
  wp_admin_css( 'css/dashboard' );
234
  break;
235
  case "nggallery-add-gallery" :
240
  case "nggallery-roles" :
241
  case "nggallery-manage-album" :
242
  //wp_enqueue_style( 'jqueryui', NGGALLERY_URLPATH .'admin/css/jquery-ui.css', false, '1.7.1', 'screen' );
243
+ wp_enqueue_style( 'nggadmin', NGGALLERY_URLPATH .'admin/css/nggadmin.css', false, '2.8.1', 'screen' );
244
  wp_enqueue_style( 'thickbox');
245
  break;
246
  case "nggallery-tags" :
247
+ wp_enqueue_style( 'nggtags', NGGALLERY_URLPATH .'admin/css/tags-admin.css', false, '2.6.1', 'screen' );
248
  break;
249
  case "nggallery-style" :
250
  wp_admin_css( 'css/theme-editor' );
admin/css/nggadmin.css CHANGED
@@ -13,7 +13,7 @@
13
  padding:2px;
14
  }
15
 
16
- #dashboard_server_settings ul.settings span {
17
  padding-left : 10px;
18
  color:#2583AD;
19
  font-weight:bold;
@@ -51,6 +51,7 @@
51
  line-height:1;
52
  margin:0.5em 0;
53
  padding:2px;
 
54
  }
55
 
56
  #donator_message span{
13
  padding:2px;
14
  }
15
 
16
+ .ngg-dashboard-widget ul.settings span {
17
  padding-left : 10px;
18
  color:#2583AD;
19
  font-weight:bold;
51
  line-height:1;
52
  margin:0.5em 0;
53
  padding:2px;
54
+ padding-bottom:10px;
55
  }
56
 
57
  #donator_message span{
admin/functions.php CHANGED
@@ -567,11 +567,11 @@ class nggAdmin{
567
  $meta = nggAdmin::get_MetaData( $image->pid );
568
 
569
  // get the title
570
- if (!$alttext = $meta['title'])
571
- $alttext = $image->alttext;
572
  // get the caption / description field
573
- if (!$description = $meta['caption'])
574
- $description = $image->description;
575
  // get the file date/time from exif
576
  $timestamp = $meta['timestamp'];
577
  // first update database
@@ -621,9 +621,9 @@ class nggAdmin{
621
 
622
  $pdata = new nggMeta( $id );
623
 
624
- $meta['title'] = $pdata->get_META('title');
625
- $meta['caption'] = $pdata->get_META('caption');
626
- $meta['keywords'] = $pdata->get_META('keywords');
627
  $meta['timestamp'] = $pdata->get_date_time();
628
  // this contain other useful meta information
629
  $meta['common'] = $pdata->get_common_meta();
567
  $meta = nggAdmin::get_MetaData( $image->pid );
568
 
569
  // get the title
570
+ $alttext = empty( $meta['title'] ) ? $image->alttext : $meta['title'];
571
+
572
  // get the caption / description field
573
+ $description = empty( $meta['caption'] ) ? $image->description : $meta['caption'];
574
+
575
  // get the file date/time from exif
576
  $timestamp = $meta['timestamp'];
577
  // first update database
621
 
622
  $pdata = new nggMeta( $id );
623
 
624
+ $meta['title'] = trim ( $pdata->get_META('title') );
625
+ $meta['caption'] = trim ( $pdata->get_META('caption') );
626
+ $meta['keywords'] = trim ( $pdata->get_META('keywords') );
627
  $meta['timestamp'] = $pdata->get_date_time();
628
  // this contain other useful meta information
629
  $meta['common'] = $pdata->get_common_meta();
admin/overview.php CHANGED
@@ -74,7 +74,7 @@ function ngg_overview_server() {
74
  */
75
  function ngg_overview_graphic_lib() {
76
  ?>
77
- <div id="dashboard_server_settings" class="dashboard-widget-holder">
78
  <div class="ngg-dashboard-widget">
79
  <div class="dashboard-widget-content">
80
  <ul class="settings">
74
  */
75
  function ngg_overview_graphic_lib() {
76
  ?>
77
+ <div id="dashboard_graphic_settings" class="dashboard-widget-holder">
78
  <div class="ngg-dashboard-widget">
79
  <div class="dashboard-widget-content">
80
  <ul class="settings">
admin/settings.php CHANGED
@@ -66,11 +66,14 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
66
  ?>
67
  <script type="text/javascript">
68
  jQuery(document).ready(function(){
69
- jQuery(".expert").hide();
 
 
70
  jQuery("a.switch-expert").click(function(e) {
71
  jQuery(".expert").toggle();
72
  return false;
73
  });
 
74
  jQuery('#slider').tabs({ fxFade: true, fxSpeed: 'fast' });
75
  jQuery('.picker').ColorPicker({
76
  onSubmit: function(hsb, hex, rgb, el) {
66
  ?>
67
  <script type="text/javascript">
68
  jQuery(document).ready(function(){
69
+ jQuery("a.switch-expert").hide();
70
+ /*
71
+ jQuery(".expert").hide();
72
  jQuery("a.switch-expert").click(function(e) {
73
  jQuery(".expert").toggle();
74
  return false;
75
  });
76
+ */
77
  jQuery('#slider').tabs({ fxFade: true, fxSpeed: 'fast' });
78
  jQuery('.picker').ColorPicker({
79
  onSubmit: function(hsb, hex, rgb, el) {
admin/upgrade.php CHANGED
@@ -9,7 +9,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
9
  */
10
  function ngg_upgrade() {
11
 
12
- global $wpdb, $user_ID;
13
 
14
  // get the current user ID
15
  get_currentuserinfo();
@@ -93,6 +93,9 @@ function ngg_upgrade() {
93
  ngg_maybe_add_column( $wpdb->nggalbum, 'pageid', "BIGINT(20) DEFAULT '0' NOT NULL AFTER sortorder");
94
  }
95
 
 
 
 
96
  // update now the database
97
  update_option( "ngg_db_version", NGG_DBVERSION );
98
  echo __('finished', 'nggallery') . "<br />\n";
9
  */
10
  function ngg_upgrade() {
11
 
12
+ global $wpdb, $user_ID, $nggRewrite;
13
 
14
  // get the current user ID
15
  get_currentuserinfo();
93
  ngg_maybe_add_column( $wpdb->nggalbum, 'pageid', "BIGINT(20) DEFAULT '0' NOT NULL AFTER sortorder");
94
  }
95
 
96
+ // better to flush rewrite rules after upgrades
97
+ $nggRewrite->flush();
98
+
99
  // update now the database
100
  update_option( "ngg_db_version", NGG_DBVERSION );
101
  echo __('finished', 'nggallery') . "<br />\n";
changelog.txt CHANGED
@@ -1,6 +1,14 @@
1
  NextGEN Gallery
2
  by Alex Rabe & NextGEN DEV Team
3
 
 
 
 
 
 
 
 
 
4
  = V1.4.1 - 10.11.2009 =
5
  * Bugfix : Capabilites could not be saved
6
  * Bugfix : Ajax pagination option not saved
@@ -19,7 +27,7 @@ by Alex Rabe & NextGEN DEV Team
19
  * Added : New link parameter for the singlepic shortcode : [singlepic id=x w=x h=x link="http://google.com"]
20
  * Added : New template gallery-carousel
21
  * Added : New id parameter for recent and random shortcodes : [random max="7" template="filename" id="2"] takes only pictures from the gallery with id=2
22
- * Added : New mode paramenter for recent shortcode : [recent max="7" template="filename" id="3" mode="date" /] where mode can be one of (id, date, sort). Recent pictures are delivered by addition to database (id), exif date (date) or user sort order (sort).
23
  * Added : Enable/Disable Ajax navigation via settings
24
  * Added : New filter hook 'ngg_render_template' to render templates with a other plugin
25
  * Changed : Added option to link an album with a page id
1
  NextGEN Gallery
2
  by Alex Rabe & NextGEN DEV Team
3
 
4
+ = V1.4.2 - 16.11.2009 =
5
+ * Changed : Load sildeshow XML not longer via relative path
6
+ * Bugfix : No imagebrowser in carousel mode
7
+ * Bugfix : JS Effect navigation based on wrong array structure
8
+ * Bugfix : Remove whitespaces from meta import
9
+ * Bugfix : Capability check for upgrade notice
10
+ * Removed : Hide "more settings" for now, causes problems with IE and jQuery UI tabs
11
+
12
  = V1.4.1 - 10.11.2009 =
13
  * Bugfix : Capabilites could not be saved
14
  * Bugfix : Ajax pagination option not saved
27
  * Added : New link parameter for the singlepic shortcode : [singlepic id=x w=x h=x link="http://google.com"]
28
  * Added : New template gallery-carousel
29
  * Added : New id parameter for recent and random shortcodes : [random max="7" template="filename" id="2"] takes only pictures from the gallery with id=2
30
+ * Added : New mode parameter for recent shortcode : [recent max="7" template="filename" id="3" mode="date" /] where mode can be one of (id, date, sort). Recent pictures are delivered by addition to database (id), exif date (date) or user sort order (sort).
31
  * Added : Enable/Disable Ajax navigation via settings
32
  * Added : New filter hook 'ngg_render_template' to render templates with a other plugin
33
  * Changed : Added option to link an album with a page id
lib/rewrite.php CHANGED
@@ -31,7 +31,10 @@ class nggRewrite {
31
 
32
  add_filter('query_vars', array(&$this, 'add_queryvars') );
33
  add_filter('wp_title' , array(&$this, 'rewrite_title') );
34
-
 
 
 
35
  if ($this->options['usePermalinks'])
36
  add_action('generate_rewrite_rules', array(&$this, 'RewriteRules'));
37
 
@@ -150,6 +153,7 @@ class nggRewrite {
150
  $query_vars[] = 'album';
151
  $query_vars[] = 'gallerytag';
152
  $query_vars[] = 'show';
 
153
 
154
  return $query_vars;
155
  }
@@ -227,6 +231,9 @@ class nggRewrite {
227
  */
228
  function RewriteRules($wp_rewrite) {
229
  $rewrite_rules = array (
 
 
 
230
  // rewrite rules for pages
231
  $this->slug.'/page-([0-9]+)/?$' => 'index.php?page_id=$matches[1]',
232
  $this->slug.'/page-([0-9]+)/page-([0-9]+)/?$' => 'index.php?page_id=$matches[1]&nggpage=$matches[2]',
31
 
32
  add_filter('query_vars', array(&$this, 'add_queryvars') );
33
  add_filter('wp_title' , array(&$this, 'rewrite_title') );
34
+
35
+ //DD32 recommend : http://groups.google.com/group/wp-hackers/browse_thread/thread/50ac0d07e30765e9
36
+ //add_filter('rewrite_rules_array', array($this, 'RewriteRules'));
37
+
38
  if ($this->options['usePermalinks'])
39
  add_action('generate_rewrite_rules', array(&$this, 'RewriteRules'));
40
 
153
  $query_vars[] = 'album';
154
  $query_vars[] = 'gallerytag';
155
  $query_vars[] = 'show';
156
+ $query_vars[] = 'slideshow';
157
 
158
  return $query_vars;
159
  }
231
  */
232
  function RewriteRules($wp_rewrite) {
233
  $rewrite_rules = array (
234
+ // XML request
235
+ $this->slug.'/slideshow/([0-9]+)/?$' => 'index.php?slideshow=true&gid=$matches[1]',
236
+
237
  // rewrite rules for pages
238
  $this->slug.'/page-([0-9]+)/?$' => 'index.php?page_id=$matches[1]',
239
  $this->slug.'/page-([0-9]+)/page-([0-9]+)/?$' => 'index.php?page_id=$matches[1]&nggpage=$matches[2]',
nggallery.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: NextGEN Gallery
4
  Plugin URI: http://alexrabe.de/?page_id=80
5
  Description: A NextGENeration Photo gallery for the Web 2.0.
6
  Author: Alex Rabe
7
- Version: 1.4.1
8
 
9
  Author URI: http://alexrabe.de/
10
 
@@ -117,6 +117,9 @@ class nggLoader {
117
  // If activated, add PicLens/Cooliris javascript to footer
118
  if ( $this->options['usePicLens'] )
119
  add_action('wp_head', array('nggMediaRss', 'add_piclens_javascript'));
 
 
 
120
 
121
  // Why is this not core ?
122
  add_action('wp_head', 'wp_print_styles');
@@ -130,6 +133,15 @@ class nggLoader {
130
 
131
  }
132
  }
 
 
 
 
 
 
 
 
 
133
 
134
  function required_version() {
135
 
4
  Plugin URI: http://alexrabe.de/?page_id=80
5
  Description: A NextGENeration Photo gallery for the Web 2.0.
6
  Author: Alex Rabe
7
+ Version: 1.4.2
8
 
9
  Author URI: http://alexrabe.de/
10
 
117
  // If activated, add PicLens/Cooliris javascript to footer
118
  if ( $this->options['usePicLens'] )
119
  add_action('wp_head', array('nggMediaRss', 'add_piclens_javascript'));
120
+
121
+ // Look for XML request, before page is render
122
+ add_action('parse_request', array(&$this, 'check_xml_request') );
123
 
124
  // Why is this not core ?
125
  add_action('wp_head', 'wp_print_styles');
133
 
134
  }
135
  }
136
+
137
+ function check_xml_request( $wp ) {
138
+
139
+ if (array_key_exists('slideshow', $wp->query_vars) && $wp->query_vars['slideshow'] == 'true') {
140
+ require_once (dirname (__FILE__) . '/xml/imagerotator.php');
141
+ exit();
142
+ }
143
+
144
+ }
145
 
146
  function required_version() {
147
 
nggfunctions.php CHANGED
@@ -42,7 +42,7 @@ function nggShowSlideshow($galleryID, $width, $height) {
42
  $swfobject->add_attributes('name', 'so' . $galleryID);
43
 
44
  // adding the flash parameter
45
- $swfobject->add_flashvars( 'file', NGGALLERY_URLPATH.'xml/imagerotator.php?gid=' . $galleryID );
46
  $swfobject->add_flashvars( 'shuffle', $ngg_options['irShuffle'], 'true', 'bool');
47
  $swfobject->add_flashvars( 'linkfromdisplay', $ngg_options['irLinkfromdisplay'], 'false', 'bool');
48
  $swfobject->add_flashvars( 'shownavigation', $ngg_options['irShownavigation'], 'true', 'bool');
@@ -119,7 +119,7 @@ function nggShowGallery( $galleryID, $template = '', $images = false ) {
119
  if ( !is_home() || $pageid == get_the_ID() ) {
120
 
121
  // 1st look for ImageBrowser link
122
- if ( !empty($pid) && $ngg_options['galImgBrowser'] ) {
123
  $out = nggShowImageBrowser( $galleryID, $template );
124
  return $out;
125
  }
@@ -259,10 +259,10 @@ function nggCreateGallery($picturelist, $galleryID = false, $template = '', $ima
259
 
260
  // get the effect code
261
  if ($galleryID)
262
- $thumbcode = ($ngg_options['galImgBrowser']) ? '' : $picture->get_thumbcode($picturelist[0]->name);
263
  else
264
  $thumbcode = ($ngg_options['galImgBrowser']) ? '' : $picture->get_thumbcode(get_the_title());
265
-
266
  // create link for imagebrowser and other effects
267
  $args ['nggpage'] = empty($nggpage) ? false : $nggpage;
268
  $args ['pid'] = $picture->pid;
42
  $swfobject->add_attributes('name', 'so' . $galleryID);
43
 
44
  // adding the flash parameter
45
+ $swfobject->add_flashvars( 'file', get_option ('siteurl') . '/' . 'index.php?slideshow=true&gid=' . $galleryID );
46
  $swfobject->add_flashvars( 'shuffle', $ngg_options['irShuffle'], 'true', 'bool');
47
  $swfobject->add_flashvars( 'linkfromdisplay', $ngg_options['irLinkfromdisplay'], 'false', 'bool');
48
  $swfobject->add_flashvars( 'shownavigation', $ngg_options['irShownavigation'], 'true', 'bool');
119
  if ( !is_home() || $pageid == get_the_ID() ) {
120
 
121
  // 1st look for ImageBrowser link
122
+ if ( !empty($pid) && $ngg_options['galImgBrowser'] && ($template != 'carousel') ) {
123
  $out = nggShowImageBrowser( $galleryID, $template );
124
  return $out;
125
  }
259
 
260
  // get the effect code
261
  if ($galleryID)
262
+ $thumbcode = ($ngg_options['galImgBrowser']) ? '' : $picture->get_thumbcode('set_' . $galleryID);
263
  else
264
  $thumbcode = ($ngg_options['galImgBrowser']) ? '' : $picture->get_thumbcode(get_the_title());
265
+
266
  // create link for imagebrowser and other effects
267
  $args ['nggpage'] = empty($nggpage) ? false : $nggpage;
268
  $args ['pid'] = $picture->pid;
readme.txt CHANGED
@@ -140,6 +140,14 @@ To show the most recent added mages : **[recent max=x ]**
140
 
141
  == Changelog ==
142
 
 
 
 
 
 
 
 
 
143
  = V1.4.1 - 10.11.2009 =
144
  * Bugfix : Capabilites could not be saved
145
  * Bugfix : Ajax pagination option not saved
140
 
141
  == Changelog ==
142
 
143
+ = V1.4.2 - 16.11.2009 =
144
+ * Changed : Load sildeshow XML not longer via relative path
145
+ * Bugfix : No imagebrowser in carousel mode
146
+ * Bugfix : JS Effect navigation based on wrong array structure
147
+ * Bugfix : Remove whitespaces from meta import
148
+ * Bugfix : Capability check for upgrade notice
149
+ * Removed : Hide "more settings" for now, causes problems with IE and jQuery UI tabs
150
+
151
  = V1.4.1 - 10.11.2009 =
152
  * Bugfix : Capabilites could not be saved
153
  * Bugfix : Ajax pagination option not saved
widgets/widgets.php CHANGED
@@ -69,7 +69,7 @@ class nggSlideshowWidget extends WP_Widget {
69
  $swfobject->add_attributes('styleclass', 'slideshow-widget');
70
 
71
  // adding the flash parameter
72
- $swfobject->add_flashvars( 'file', NGGALLERY_URLPATH.'xml/imagerotator.php?gid='.$galleryID );
73
  $swfobject->add_flashvars( 'shownavigation', 'false', 'true', 'bool');
74
  $swfobject->add_flashvars( 'shuffle', $ngg_options['irShuffle'], 'true', 'bool');
75
  $swfobject->add_flashvars( 'showicons', $ngg_options['irShowicons'], 'true', 'bool');
69
  $swfobject->add_attributes('styleclass', 'slideshow-widget');
70
 
71
  // adding the flash parameter
72
+ $swfobject->add_flashvars( 'file', get_option ('siteurl') . '/' . 'index.php?slideshow=true&gid=' . $galleryID );
73
  $swfobject->add_flashvars( 'shownavigation', 'false', 'true', 'bool');
74
  $swfobject->add_flashvars( 'shuffle', $ngg_options['irShuffle'], 'true', 'bool');
75
  $swfobject->add_flashvars( 'showicons', $ngg_options['irShowicons'], 'true', 'bool');
xml/imagerotator.php CHANGED
@@ -9,7 +9,8 @@
9
  */
10
 
11
  // look up for the path
12
- require_once( dirname(__FILE__) . '/../ngg-config.php');
 
13
 
14
  global $wpdb;
15
 
9
  */
10
 
11
  // look up for the path
12
+ if ( !defined('ABSPATH') )
13
+ require_once( dirname(__FILE__) . '/../ngg-config.php');
14
 
15
  global $wpdb;
16