NextCellent Gallery – NextGEN Legacy - Version 1.9.15

Version Description

  • 03.10.2013 =

What's in it for you?

  • Code simplification: code supporting PHP4 has no use. Deprecated.
  • Plugin should work with PHP strict standard enabled.
  • Improper call to static functions corrected all over the code
  • Disabled donator metabox since link is dead

VERY IMPORTANT: Read ON!

  • NextCellent Gallery is based from the last stable NextGEN 1.9.13 version prior 2.x.x . If you are a new user, it is suggested to install latest NextGEN version instead this plugin. Its development is going in the right way if you are starting a new site. Even though, NextCellent development path will also work fine for you. Your choice.

  • Second, this plugin WON'T WORK with NextGEN side by side. It will gracefully deactivate if detects NextGEN is working to avoid compatibility issues.

  • Third, READ THE FAQ!!! Issues for failing to read the FAQ will be IGNORED!!!

  • If you like it, please spread the word and rate it accordingly. I guess a lot of annoyed users can take advantage of NextCellent. Thank you!

NextCellent Gallery provides backward compatibility for older NextGEN until version 1.9.13 .

Download this release

Release Info

Developer WPReady
Plugin Icon NextCellent Gallery – NextGEN Legacy
Version 1.9.15
Comparing to
See all releases

Code changes from version 1.9.14 to 1.9.15

admin/about.php CHANGED
@@ -10,13 +10,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
10
  <?php screen_icon( 'nextgen-gallery' ); ?>
11
  <h2><?php _e('Copyright notes / Credits', 'nggallery') ;?></h2>
12
  <div id="poststuff">
13
- <div class="postbox">
14
- <h3 class="hndle"><span><?php _e('NextCellent', 'nggallery'); ?></span></h3>
15
- <div class="inside">
16
- <p><?php _e('NextCellent Gallery is based on code due by <a href="http://www.photocrati.com" target="_blank">Photocrati Media</a>. We\'d like to offer a special thanks to Alex Rabe, who first developed the plugin and maintained it through 2011. There are many others who have made contributions:', 'nggallery') ;?></p>
17
- <p><?php ngg_list_contributors(); ?></p>
18
- </div>
19
- </div>
20
  <div class="postbox">
21
  <h3 class="hndle"><span><?php _e('Contributors / Tribute to', 'nggallery'); ?></span></h3>
22
  <div class="inside">
@@ -31,9 +25,16 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
31
  <li><a href="http://field2.com" target="_blank">Ben Dunkle</a> <?php _e('for the Gallery Icon', 'nggallery') ;?></li>
32
  <li><a href="http://watermark.malcherek.com/" target="_blank">Marek Malcherek</a> <?php _e('for the Watermark plugin', 'nggallery') ;?></li>
33
  </ul>
34
- <p><?php _e('If you don\'t see your name on this list and we\'ve integrated some of your code into the plugin, don\'t hesitate to email us.', 'nggallery') ;?></p>
35
  </div>
36
  </div>
 
 
 
 
 
 
 
37
  <div class="postbox">
38
  <h3 class="hndle"><span><?php _e('How to support ?', 'nggallery'); ?></span></h3>
39
  <div class="inside">
@@ -45,19 +46,25 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
45
  </ul>
46
  </div>
47
  </div>
48
- <div class="postbox" id="donators">
49
- <h3 class="hndle"><span><?php _e('Thanks!', 'nggallery'); ?></span></h3>
50
- <div class="inside">
51
- <p><?php _e('We would like to thank the following people who have supported the NextGEN Gallery plugin:', 'nggallery'); ?></p>
52
- <p><a href="http://www.boelinger.com/heike/" target="_blank">HEIKE</a>, <?php ngg_list_support(); ?></p>
53
- </div>
54
- </div>
55
  </div>
56
  </div>
57
 
58
  <?php
59
  }
60
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  function ngg_list_contributors() {
62
  /* The list of my contributors. Thanks to all of them !*/
63
 
@@ -139,6 +146,9 @@ function ngg_list_contributors() {
139
  }
140
  }
141
 
 
 
 
142
  function ngg_list_support() {
143
  /* The list of my supporters. Thanks to all of them !*/
144
 
10
  <?php screen_icon( 'nextgen-gallery' ); ?>
11
  <h2><?php _e('Copyright notes / Credits', 'nggallery') ;?></h2>
12
  <div id="poststuff">
13
+
 
 
 
 
 
 
14
  <div class="postbox">
15
  <h3 class="hndle"><span><?php _e('Contributors / Tribute to', 'nggallery'); ?></span></h3>
16
  <div class="inside">
25
  <li><a href="http://field2.com" target="_blank">Ben Dunkle</a> <?php _e('for the Gallery Icon', 'nggallery') ;?></li>
26
  <li><a href="http://watermark.malcherek.com/" target="_blank">Marek Malcherek</a> <?php _e('for the Watermark plugin', 'nggallery') ;?></li>
27
  </ul>
28
+ <p><?php _e('If you don\'t see your name on this list and we\'ve integrated some of your code into the plugin, don\'t hesitate to email me.', 'nggallery') ;?></p>
29
  </div>
30
  </div>
31
+ <div class="postbox">
32
+ <h3 class="hndle"><span><?php _e('NextCellent', 'nggallery'); ?></span></h3>
33
+ <div class="inside">
34
+ <p><?php _e('NextCellent Gallery is based on code originally thanks to Alex Rabe who maintained it through 2011. Special thanks to Photocrati Media which followed the work.', 'nggallery') ;?></p>
35
+ <p><?php ngg_list_contributors(); ?></p>
36
+ </div>
37
+ </div>
38
  <div class="postbox">
39
  <h3 class="hndle"><span><?php _e('How to support ?', 'nggallery'); ?></span></h3>
40
  <div class="inside">
46
  </ul>
47
  </div>
48
  </div>
49
+
 
 
 
 
 
 
50
  </div>
51
  </div>
52
 
53
  <?php
54
  }
55
 
56
+ /*
57
+ 20131004: Disabled by Photocrati. There is no more ngg_list_support
58
+ <div class="postbox" id="donators">
59
+ <h3 class="hndle"><span><?php _e('Thanks!', 'nggallery'); ?></span></h3>
60
+ <div class="inside">
61
+ <p><?php _e('We would like to thank the following people who have supported the NextGEN Gallery plugin:', 'nggallery'); ?></p>
62
+ <p><a href="http://www.boelinger.com/heike/" target="_blank">HEIKE</a>, < ? php ngg_list_support(); ? ></p>
63
+ </div>
64
+ </div>
65
+
66
+ */
67
+
68
  function ngg_list_contributors() {
69
  /* The list of my contributors. Thanks to all of them !*/
70
 
146
  }
147
  }
148
 
149
+ /**
150
+ * 20131004: Deprecated since this list dissapear.
151
+ */
152
  function ngg_list_support() {
153
  /* The list of my supporters. Thanks to all of them !*/
154
 
admin/addgallery.php CHANGED
@@ -3,14 +3,6 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
3
 
4
  class nggAddGallery {
5
 
6
- /**
7
- * PHP4 compatibility layer for calling the PHP5 constructor.
8
- *
9
- */
10
- function nggAddGallery() {
11
- return $this->__construct();
12
- }
13
-
14
  /**
15
  * nggAddGallery::__construct()
16
  *
3
 
4
  class nggAddGallery {
5
 
 
 
 
 
 
 
 
 
6
  /**
7
  * nggAddGallery::__construct()
8
  *
admin/admin.php CHANGED
@@ -427,7 +427,7 @@ class nggAdminPanel{
427
 
428
  switch ($screen) {
429
  case 'toplevel_page_' . NGGFOLDER :
430
- $link = __('<a href="http://www.nextgen-gallery.com" target="_blank">Introduction</a>', 'nggallery');
431
  break;
432
  case "{$i18n}_page_nggallery-about" :
433
  $link = __('<a href="http://www.nextgen-gallery.com/languages" target="_blank">Languages</a>', 'nggallery');
@@ -435,18 +435,18 @@ class nggAdminPanel{
435
  }
436
 
437
  if ( !empty($link) ) {
438
- $help = '<h5>' . __('Get help with NextGEN Gallery', 'nggallery') . '</h5>';
439
  $help .= '<div class="metabox-prefs">';
440
  $help .= $link;
441
  $help .= "</div>\n";
442
  $help .= '<h5>' . __('More Help & Info', 'nggallery') . '</h5>';
443
  $help .= '<div class="metabox-prefs">';
444
- $help .= __('<a href="http://wordpress.org/tags/nextgen-gallery?forum_id=10" target="_blank">Support Forums</a>', 'nggallery');
445
- $help .= ' | <a href="http://www.nextgen-gallery.com/faq/" target="_blank">' . __('FAQ', 'nggallery') . '</a>';
446
- $help .= ' | <a href="https://bitbucket.org/photocrati/nextgen-gallery/issues" target="_blank">' . __('Feature request', 'nggallery') . '</a>';
447
- $help .= ' | <a href="http://www.nextgen-gallery.com/languages" target="_blank">' . __('Get your language pack', 'nggallery') . '</a>';
448
- $help .= ' | <a href="https://bitbucket.org/photocrati/nextgen-gallery" target="_blank">' . __('Contribute development', 'nggallery') . '</a>';
449
- $help .= ' | <a href="http://wordpress.org/extend/plugins/nextgen-gallery" target="_blank">' . __('Download latest version', 'nggallery') . '</a>';
450
  $help .= "</div>\n";
451
  }
452
 
@@ -523,7 +523,7 @@ class nggAdminPanel{
523
  * @param string $url
524
  * @return array of the content
525
  */
526
- function get_remote_array($url) {
527
 
528
  if ( function_exists('wp_remote_request') ) {
529
 
427
 
428
  switch ($screen) {
429
  case 'toplevel_page_' . NGGFOLDER :
430
+ $link = __('<a href="http://www.wpgetready.com" target="_blank">Introduction</a>', 'nggallery');
431
  break;
432
  case "{$i18n}_page_nggallery-about" :
433
  $link = __('<a href="http://www.nextgen-gallery.com/languages" target="_blank">Languages</a>', 'nggallery');
435
  }
436
 
437
  if ( !empty($link) ) {
438
+ $help = '<h5>' . __('Get help with NextCellent Gallery', 'nggallery') . '</h5>';
439
  $help .= '<div class="metabox-prefs">';
440
  $help .= $link;
441
  $help .= "</div>\n";
442
  $help .= '<h5>' . __('More Help & Info', 'nggallery') . '</h5>';
443
  $help .= '<div class="metabox-prefs">';
444
+ $help .= __('<a href="http://wordpress.org/tags/nextcellent-gallery-nextgen-legacy" target="_blank">Support Forums</a>', 'nggallery');
445
+ // $help .= ' | <a href="http://www.nextgen-gallery.com/faq/" target="_blank">' . __('FAQ', 'nggallery') . '</a>';
446
+ // $help .= ' | <a href="https://bitbucket.org/photocrati/nextgen-gallery/issues" target="_blank">' . __('Feature request', 'nggallery') . '</a>';
447
+ // $help .= ' | <a href="http://www.nextgen-gallery.com/languages" target="_blank">' . __('Get your language pack', 'nggallery') . '</a>';
448
+ // $help .= ' | <a href="https://bitbucket.org/photocrati/nextgen-gallery" target="_blank">' . __('Contribute development', 'nggallery') . '</a>';
449
+ $help .= ' | <a href="http://wordpress.org/plugins/nextcellent-gallery-nextgen-legacy/" target="_blank">' . __('Download latest version', 'nggallery') . '</a>';
450
  $help .= "</div>\n";
451
  }
452
 
523
  * @param string $url
524
  * @return array of the content
525
  */
526
+ static function get_remote_array($url) {
527
 
528
  if ( function_exists('wp_remote_request') ) {
529
 
admin/ajax.php CHANGED
@@ -232,7 +232,7 @@ add_action('wp_ajax_ngg_file_browser', 'ngg_ajax_file_browser');
232
  * jQuery File Tree PHP Connector
233
  * @author Cory S.N. LaViska - A Beautiful Site (http://abeautifulsite.net/)
234
  * @version 1.0.1
235
- *
236
  * @return string folder content
237
  */
238
  function ngg_ajax_file_browser() {
@@ -249,23 +249,6 @@ function ngg_ajax_file_browser() {
249
  // if nonce is not correct it returns -1
250
  check_ajax_referer( 'ngg-ajax', 'nonce' );
251
 
252
- //PHP4 compat script
253
- if (!function_exists('scandir')) {
254
- function scandir($dir, $listDirectories = false, $skipDots = true ) {
255
- $dirArray = array();
256
- if ($handle = opendir($dir) ) {
257
- while (false !== ($file = readdir($handle))) {
258
- if (($file != '.' && $file != '..' ) || $skipDots == true) {
259
- if($listDirectories == false) { if(is_dir($file)) { continue; } }
260
- array_push($dirArray, basename($file) );
261
- }
262
- }
263
- closedir($handle);
264
- }
265
- return $dirArray;
266
- }
267
- }
268
-
269
  // start from the default path
270
  $root = trailingslashit ( WINABSPATH );
271
  // get the current directory
232
  * jQuery File Tree PHP Connector
233
  * @author Cory S.N. LaViska - A Beautiful Site (http://abeautifulsite.net/)
234
  * @version 1.0.1
235
+ * 20131003: removed PHP4 compatibility code.
236
  * @return string folder content
237
  */
238
  function ngg_ajax_file_browser() {
249
  // if nonce is not correct it returns -1
250
  check_ajax_referer( 'ngg-ajax', 'nonce' );
251
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  // start from the default path
253
  $root = trailingslashit ( WINABSPATH );
254
  // get the current directory
admin/album.php CHANGED
@@ -49,14 +49,6 @@ class nggManageAlbum {
49
  */
50
  var $num_albums = false;
51
 
52
- /**
53
- * PHP4 compatibility layer for calling the PHP5 constructor.
54
- *
55
- */
56
- function nggManageAlbum() {
57
- return $this->__construct();
58
- }
59
-
60
  /**
61
  * Init the album output
62
  *
49
  */
50
  var $num_albums = false;
51
 
 
 
 
 
 
 
 
 
52
  /**
53
  * Init the album output
54
  *
admin/overview.php CHANGED
@@ -3,7 +3,8 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
3
 
4
  /**
5
  * nggallery_admin_overview()
6
- *
 
7
  * Add the admin overview the dashboard style
8
  * @return mixed content
9
  */
@@ -85,7 +86,7 @@ function nggallery_admin_overview() {
85
  *
86
  */
87
  add_meta_box('dashboard_right_now', __('Welcome to NextCellent Gallery !', 'nggallery'), 'ngg_overview_right_now', 'ngg_overview', 'left', 'core');
88
- add_meta_box('ngg_meta_box', __('Do you like this Plugin?', 'nggallery'), 'ngg_likeThisMetaBox', 'ngg_overview', 'right', 'core');
89
  if ( !(get_locale() == 'en_US') )
90
  add_meta_box('ngg_locale', __('Translation', 'nggallery'), 'ngg_widget_locale', 'ngg_overview', 'right', 'core');
91
  add_meta_box('dashboard_primary', __('Latest News', 'nggallery'), 'ngg_widget_overview_news', 'ngg_overview', 'left', 'core');
@@ -96,32 +97,7 @@ if ( !is_multisite() || is_super_admin() ) {
96
  add_meta_box('dashboard_plugins', __('Related plugins', 'nggallery'), 'ngg_widget_related_plugins', 'ngg_overview', 'left', 'core');
97
  }
98
 
99
- function ngg_likeThisMetaBox() {
100
-
101
- echo '<p>';
102
- echo sprintf(__('This plugin is primarily developed, maintained, supported and documented by <a href="%s" target="_blank">Photocrati Media</a> with a lot of love & effort. Any kind of contribution would be highly appreciated. Thanks!', 'nggallery'), 'http://www.photocrati.com/');
103
- echo '</p><ul>';
104
-
105
- $url = 'http://wordpress.org/extend/plugins/nextgen-gallery/' ;
106
- echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-rating.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>";
107
- _e('Give it a good rating on WordPress.org', 'nggallery');
108
- echo "</a></li>";
109
-
110
- $url = 'http://www.nextgen-gallery.com';
111
- echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/nextgen.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>";
112
- _e("Visit the plugin homepage", 'nggallery');
113
- echo "</a></li>";
114
-
115
- $url = 'http://www.nextgen-gallery.com/languages/';
116
- echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-translate.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>";
117
- _e("Help translating it", 'nggallery');
118
- echo "</a></li>";
119
 
120
- echo '</ul>';
121
-
122
- echo '
123
- <div class="social" style="text-align:center;margin:15px 0 10px 0;"><span class="social" style="margin-right:5px;"><a target="_blank" href="http://twitter.com/NextGENGallery"><img title="Follow NextGEN on Twitter" alt="Twitter" src="' . NGGALLERY_URLPATH . 'admin/images/twitter.png"></a></span><span class="social" style="margin-right:5px;"><a target="_blank" href="http://www.facebook.com/NextGENGallery"><img title="Like NextGEN on Facebook" alt="Facebook" src="' . NGGALLERY_URLPATH . 'admin/images/facebook.png"></a></span><span class="social"><a target="_blank" href="http://plus.google.com/101643895780935290171"><img title="Add NextGEN to your circles" alt="GooglePlus" src="' . NGGALLERY_URLPATH . 'admin/images/googleplus.png"></a></span></div>';
124
- }
125
 
126
  /**
127
  * Ajax Check for conflict with other plugins/themes
@@ -412,7 +388,7 @@ function ngg_overview_news(){
412
  ?>
413
  <div class="rss-widget">
414
  <?php
415
- $rss = @fetch_feed( 'http://feeds.feedburner.com/nextgen-gallery' );
416
 
417
  if ( is_object($rss) ) {
418
 
@@ -784,71 +760,107 @@ function ngg_get_phpinfo() {
784
  function ngg_widget_related_plugins() {
785
  echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>';
786
  }
 
 
 
 
787
  function ngg_related_plugins() {
788
- include(ABSPATH . 'wp-admin/includes/plugin-install.php');
 
789
 
790
- if ( false === ( $api = get_transient( 'ngg_related_plugins' ) ) ) {
791
- // this api sucks , tags will not be used in the correct way : nextgen-gallery cannot be searched
792
- $api = plugins_api('query_plugins', array('search' => 'nextgen') );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
793
 
794
- if ( is_wp_error($api) )
795
- return;
 
796
 
797
- set_transient( 'ngg_related_plugins', $api, 60*60*24 );
798
- }
799
 
800
- echo '<div style="margin-bottom:10px;padding:8px;font-size:110%;background:#eebbaa;"><b>Note</b>: these plugins are provided by third parties and are <b>NOT</b> supported by Photocrati Media in any way</div>';
801
-
802
- // don't show my own plugin :-) and some other plugins, which come up with the search result
803
- $blacklist = array(
804
- 'nextgen-gallery',
805
- 'galleria-wp',
806
- 'photosmash-galleries',
807
- 'flash-album-gallery',
808
- 'events-calendar',
809
- 'widgets',
810
- 'side-content',
811
- 'featurific-for-wordpress',
812
- 'smooth-gallery-replacement',
813
- 'livesig',
814
- 'wordpress-gallery-slideshow',
815
- 'nkmimagefield',
816
- 'nextgen-ajax',
817
- 'projectmanager'
818
- );
819
 
820
- $i = 0;
821
- while ( $i < 4 ) {
822
 
823
- // pick them randomly
824
- if ( 0 == count($api->plugins) )
825
- return;
826
 
827
- $key = array_rand($api->plugins);
828
- $plugin = $api->plugins[$key];
829
 
830
- // don't forget to remove them
831
- unset($api->plugins[$key]);
832
 
833
- if ( !isset($plugin->name) )
834
- continue;
835
 
836
- if ( in_array($plugin->slug , $blacklist ) )
837
- continue;
838
 
839
- $link = esc_url( $plugin->homepage );
840
- $title = esc_html( $plugin->name );
841
 
842
- $description = esc_html( strip_tags(@html_entity_decode($plugin->short_description, ENT_QUOTES, get_option('blog_charset'))) );
 
843
 
844
- $ilink = wp_nonce_url('plugin-install.php?tab=plugin-information&plugin=' . $plugin->slug, 'install-plugin_' . $plugin->slug) .
845
- '&amp;TB_iframe=true&amp;width=600&amp;height=800';
846
 
847
- echo "<h5><a href='{$link}' target='_blank'>{$title}</a></h5>&nbsp;<span>(<a href='$ilink' class='thickbox' title='$title'>" . __( 'Install' ) . "</a>)</span>\n";
848
- echo "<p>$description<strong> " . __( 'Author' ) . " : </strong>$plugin->author</p>\n";
849
 
850
- $i++;
851
- }
852
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
853
  }
 
 
854
  ?>
3
 
4
  /**
5
  * nggallery_admin_overview()
6
+ * 20130410: FZSM: as part of initiative, avoid implementing spaghuetti code.
7
+ * Introducing class to deal with code and functions to provide backward compatibility 100%
8
  * Add the admin overview the dashboard style
9
  * @return mixed content
10
  */
86
  *
87
  */
88
  add_meta_box('dashboard_right_now', __('Welcome to NextCellent Gallery !', 'nggallery'), 'ngg_overview_right_now', 'ngg_overview', 'left', 'core');
89
+ add_meta_box('ngg_meta_box', __('Help me help YOU!', 'nggallery'), 'nextcellent_overview::likeThisMetaBox', 'ngg_overview', 'right', 'core');
90
  if ( !(get_locale() == 'en_US') )
91
  add_meta_box('ngg_locale', __('Translation', 'nggallery'), 'ngg_widget_locale', 'ngg_overview', 'right', 'core');
92
  add_meta_box('dashboard_primary', __('Latest News', 'nggallery'), 'ngg_widget_overview_news', 'ngg_overview', 'left', 'core');
97
  add_meta_box('dashboard_plugins', __('Related plugins', 'nggallery'), 'ngg_widget_related_plugins', 'ngg_overview', 'left', 'core');
98
  }
99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
 
 
 
 
 
 
101
 
102
  /**
103
  * Ajax Check for conflict with other plugins/themes
388
  ?>
389
  <div class="rss-widget">
390
  <?php
391
+ $rss = @fetch_feed( 'http://wpgetready.com/feed/' );
392
 
393
  if ( is_object($rss) ) {
394
 
760
  function ngg_widget_related_plugins() {
761
  echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>';
762
  }
763
+
764
+ /**
765
+ * Backward compatibility, scheduled to delete on future iteration.
766
+ */
767
  function ngg_related_plugins() {
768
+ nextcellent_overview::related_plugins() ;
769
+ }
770
 
771
+ /**
772
+ * Provide utilities functions for creating metaboxes on overview
773
+ * Class nextcellent_overview
774
+ */
775
+ class nextcellent_overview {
776
+ const URL_WPGETREADY = 'http://www.wpgetready.com';
777
+
778
+ /**
779
+ * Display a list of related plugins, gathered from Wordpress Repository
780
+ * Optional parameter to display more or less plugins.
781
+ * To improve: filter obsolete plugins (last_updated less than two years from now)
782
+ */
783
+ static function related_plugins($how_many=4) {
784
+ include(ABSPATH . 'wp-admin/includes/plugin-install.php');
785
+ //If transient vaporized, refresh it
786
+ if ( false === ( $api = get_transient( 'ngg_related_plugins' ) ) ) {
787
+ // Adittional info http://dd32.id.au/projects/wordpressorg-plugin-information-api-docs/
788
+ $api = plugins_api('query_plugins', array('search' => 'nextgen') );
789
+ if ( is_wp_error($api) ) return;
790
+ set_transient( 'ngg_related_plugins', $api, 60*60*24 ); //enable to check within a day.
791
+ }
792
 
793
+ echo '<div style="margin-bottom:10px;padding:8px;font-size:110%;background:#eebbaa;"><b>Note</b>: third parties plugins compatible with NGG. Be aware that NextCellent cannot provide 100% compatibility with it</div>';
794
+ //List of suppressed plugin on the list.
795
+ $blacklist = array('nextgen-gallery','nextcellent-gallery-nextgen-legacy');
796
 
797
+ $i = 0;
798
+ while ( $i < $how_many ) {
799
 
800
+ // pick them randomly
801
+ if ( 0 == count($api->plugins) ) return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
802
 
803
+ $key = array_rand($api->plugins);
804
+ $plugin = $api->plugins[$key];
805
 
806
+ // don't forget to remove them
807
+ unset($api->plugins[$key]);
 
808
 
809
+ if ( !isset($plugin->name) ) continue;
 
810
 
811
+ if ( in_array($plugin->slug , $blacklist ) ) continue;
 
812
 
813
+ $link = esc_url( $plugin->homepage );
814
+ $title = esc_html( $plugin->name );
815
 
816
+ $description = esc_html( strip_tags(@html_entity_decode($plugin->short_description, ENT_QUOTES, get_option('blog_charset'))) );
 
817
 
818
+ $ilink = wp_nonce_url('plugin-install.php?tab=plugin-information&plugin=' . $plugin->slug, 'install-plugin_' . $plugin->slug) .
819
+ '&amp;TB_iframe=true&amp;width=600&amp;height=800';
820
 
821
+ echo "<h5><a href='{$link}' target='_blank'>{$title}</a></h5>&nbsp;<span>(<a href='$ilink' class='thickbox' title='$title'>" . __( 'Install' ) . "</a>)</span>\n";
822
+ echo "<p>$description<strong> " . __( 'Author' ) . " : </strong>$plugin->author</p>\n";
823
 
824
+ $i++;
825
+ }
826
 
827
+ }
 
828
 
 
 
829
 
830
+ /**
831
+ * Like Metabox over right
832
+ */
833
+ static function likeThisMetaBox() {
834
+
835
+ echo '<p>';
836
+ echo sprintf(__('This plugin is a branch from NGG stable version 1.9.13.<br> Developed & maintained by <a href="%s" target="_blank">WPGetReady.com</a>', 'nggallery'), self::URL_WPGETREADY);
837
+
838
+ echo '</p><ul>';
839
+
840
+ $url = 'wordpress.org/plugins/nextcellent-gallery-nextgen-legacy/' ;
841
+ echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-rating.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>";
842
+ _e('Please contribute it giving this plugin a good rate! Thank you!!!', 'nggallery');
843
+ echo "</a></li>";
844
+
845
+ $url = self::URL_WPGETREADY;
846
+ echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/nextgen.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>";
847
+ _e("Visit the plugin homepage", 'nggallery');
848
+ echo "</a></li>";
849
+ /*
850
+ $url = 'http://www.nextgen-gallery.com/languages/';
851
+ echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-translate.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>";
852
+ _e("Help translating it", 'nggallery');
853
+ echo "</a></li>";
854
+ */
855
+
856
+ echo '</ul>';
857
+
858
+ /*
859
+ echo '
860
+ <div class="social" style="text-align:center;margin:15px 0 10px 0;"><span class="social" style="margin-right:5px;"><a target="_blank" href="http://twitter.com/NextGENGallery"><img title="Follow NextGEN on Twitter" alt="Twitter" src="' . NGGALLERY_URLPATH . 'admin/images/twitter.png"></a></span><span class="social" style="margin-right:5px;"><a target="_blank" href="http://www.facebook.com/NextGENGallery"><img title="Like NextGEN on Facebook" alt="Facebook" src="' . NGGALLERY_URLPATH . 'admin/images/facebook.png"></a></span><span class="social"><a target="_blank" href="http://plus.google.com/101643895780935290171"><img title="Add NextGEN to your circles" alt="GooglePlus" src="' . NGGALLERY_URLPATH . 'admin/images/googleplus.png"></a></span></div>';
861
+ */
862
+ }
863
  }
864
+
865
+
866
  ?>
admin/settings.php CHANGED
@@ -102,14 +102,6 @@ jQuery(document).ready(function($) {
102
 
103
  class nggOptions {
104
 
105
- /**
106
- * PHP4 compatibility layer for calling the PHP5 constructor.
107
- *
108
- */
109
- function nggOptions() {
110
- return $this->__construct();
111
- }
112
-
113
  /**
114
  * nggOptions::__construct()
115
  *
102
 
103
  class nggOptions {
104
 
 
 
 
 
 
 
 
 
105
  /**
106
  * nggOptions::__construct()
107
  *
admin/templates/social_media_buttons.php CHANGED
@@ -1,4 +1,6 @@
1
  <div id="ngg_social_media">
2
- <?php include('twitter_follow_link.php'); ?>
3
- <?php include('facebook_like_button.php'); ?>
 
 
4
  </div>
1
  <div id="ngg_social_media">
2
+ <?php
3
+ //Disabled. To include in next iteration
4
+ //include('twitter_follow_link.php'); ?>
5
+ <?php //include('facebook_like_button.php'); ?>
6
  </div>
lib/locale.php CHANGED
@@ -61,14 +61,6 @@ class ngg_locale {
61
  */
62
  var $repsonse = '';
63
 
64
- /**
65
- * PHP4 compatibility layer for calling the PHP5 constructor.
66
- *
67
- */
68
- function install_locale() {
69
- return $this->__construct();
70
- }
71
-
72
  /**
73
  * Init the Database Abstraction layer for NextGEN Gallery
74
  *
61
  */
62
  var $repsonse = '';
63
 
 
 
 
 
 
 
 
 
64
  /**
65
  * Init the Database Abstraction layer for NextGEN Gallery
66
  *
lib/navigation.php CHANGED
@@ -34,14 +34,6 @@ class nggNavigation {
34
  */
35
  var $next = false;
36
 
37
- /**
38
- * PHP4 compatibility layer for calling the PHP5 constructor.
39
- *
40
- */
41
- function nggNavigation() {
42
- return $this->__construct();
43
- }
44
-
45
  /**
46
  * Main constructor - Does nothing.
47
  * Call create_navigation() method when you need a navigation.
34
  */
35
  var $next = false;
36
 
 
 
 
 
 
 
 
 
37
  /**
38
  * Main constructor - Does nothing.
39
  * Call create_navigation() method when you need a navigation.
lib/ngg-db.php CHANGED
@@ -45,14 +45,6 @@ class nggdb {
45
  */
46
  var $paged = false;
47
 
48
- /**
49
- * PHP4 compatibility layer for calling the PHP5 constructor.
50
- *
51
- */
52
- function nggdb() {
53
- return $this->__construct();
54
- }
55
-
56
  /**
57
  * Init the Database Abstraction layer for NextGEN Gallery
58
  *
45
  */
46
  var $paged = false;
47
 
 
 
 
 
 
 
 
 
48
  /**
49
  * Init the Database Abstraction layer for NextGEN Gallery
50
  *
lib/post-thumbnail.php CHANGED
@@ -11,14 +11,6 @@
11
  */
12
  class nggPostThumbnail {
13
 
14
- /**
15
- * PHP4 compatibility layer for calling the PHP5 constructor.
16
- *
17
- */
18
- function nggPostThumbnail() {
19
- return $this->__construct();
20
- }
21
-
22
  /**
23
  * Main constructor - Add filter and action hooks
24
  *
11
  */
12
  class nggPostThumbnail {
13
 
 
 
 
 
 
 
 
 
14
  /**
15
  * Main constructor - Add filter and action hooks
16
  *
lib/tags.php CHANGED
@@ -254,9 +254,9 @@ class nggTags {
254
  }
255
 
256
  /**
257
- *
258
  */
259
- function find_tags( $args = '', $skip_cache = false ) {
260
  $taxonomy = 'ngg_tag';
261
 
262
  if ( $skip_cache == true ) {
254
  }
255
 
256
  /**
257
+ * 20131004: corrected to static to avoid error over strict standards
258
  */
259
+ static function find_tags( $args = '', $skip_cache = false ) {
260
  $taxonomy = 'ngg_tag';
261
 
262
  if ( $skip_cache == true ) {
nggallery.php CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://www.wpgetready.com/nextcellent-gallery
5
  Description: A Photo Gallery for WordPress providing NextGEN legacy compatibility from version 1.9.13
6
  Author: WPGReady based on Alex Rabe & PhotoCrati work.
7
  Author URI: http://www.wpgetready.com
8
- Version: 1.9.14
9
 
10
  Copyright (c) 2007-2011 by Alex Rabe & NextGEN DEV-Team
11
  Copyright (c) 2012 Photocrati Media
@@ -48,9 +48,10 @@ check_nextgen::nextgen_activated();
48
  if (!class_exists('nggLoader')) {
49
  class nggLoader {
50
 
51
- var $version = '1.9.14';
52
  var $dbversion = '1.8.1';
53
  var $minimum_WP = '3.5';
 
54
  var $donators = 'http://www.nextgen-gallery.com/donators.php';
55
  var $options = '';
56
  var $manage_page;
@@ -547,8 +548,8 @@ if (!class_exists('nggLoader')) {
547
  if ( $file == $this->plugin_name ) {
548
  $plugin_name = plugin_basename(NGGALLERY_ABSPATH);
549
  $links[] = "<a href='admin.php?page={$plugin_name}'>" . __('Overview', 'nggallery') . '</a>';
550
- $links[] = '<a href="http://wordpress.org/tags/nextgen-gallery?forum_id=10">' . __('Get help', 'nggallery') . '</a>';
551
- $links[] = '<a href="https://bitbucket.org/photocrati/nextgen-gallery">' . __('Contribute', 'nggallery') . '</a>';
552
  }
553
  return $links;
554
  }
5
  Description: A Photo Gallery for WordPress providing NextGEN legacy compatibility from version 1.9.13
6
  Author: WPGReady based on Alex Rabe & PhotoCrati work.
7
  Author URI: http://www.wpgetready.com
8
+ Version: 1.9.15
9
 
10
  Copyright (c) 2007-2011 by Alex Rabe & NextGEN DEV-Team
11
  Copyright (c) 2012 Photocrati Media
48
  if (!class_exists('nggLoader')) {
49
  class nggLoader {
50
 
51
+ var $version = '1.9.15';
52
  var $dbversion = '1.8.1';
53
  var $minimum_WP = '3.5';
54
+ //TODO: to be removed next iterations, since Photocrati disabled
55
  var $donators = 'http://www.nextgen-gallery.com/donators.php';
56
  var $options = '';
57
  var $manage_page;
548
  if ( $file == $this->plugin_name ) {
549
  $plugin_name = plugin_basename(NGGALLERY_ABSPATH);
550
  $links[] = "<a href='admin.php?page={$plugin_name}'>" . __('Overview', 'nggallery') . '</a>';
551
+ $links[] = '<a href="http://wordpress.org/support/plugin/nextcellent-gallery-nextgen-legacy">' . __('Get help', 'nggallery') . '</a>';
552
+ //$links[] = '<a href="">' . __('Contribute', 'nggallery') . '</a>';
553
  }
554
  return $links;
555
  }
readme.txt CHANGED
@@ -1,4 +1,4 @@
1
- === NextCellent Gallery ===
2
  Contributors: WPGetReady
3
  Tags:gallery,image,images,photo,photos,picture,pictures,slideshow,flash,media,thumbnails,photo-albums,NextGEN-gallery,NextGEN,nextcellent-gallery,nextcellent
4
  Requires at least: 3.5
@@ -10,30 +10,41 @@ License: GPLv2
10
 
11
  = WordPress Gallery Plugin =
12
 
 
 
 
 
 
 
 
 
 
13
  VERY IMPORTANT: Read ON!
14
  -----------------------
15
 
16
- - NextCellent Gallery is based from the last stable NextGEN 1.9.13 version prior 2.x.x . If you are a new user, it is sugested to install latest NextGEN version instead this plugin. Its development is going in the right way if you are starting a new site. Even though, NextCellent development path will also work fine for you. Your choice.
17
 
18
  - Second, **this plugin WON'T WORK with NextGEN side by side**. <u>It will gracefully deactivate if detects NextGEN is working to avoid compatibility issues</u>.
19
-
20
  - Third, READ THE FAQ!!! Issues for failing to read the FAQ will be IGNORED!!!
21
 
 
 
22
  **NextCellent Gallery provides backward compatibility for older NextGEN until version 1.9.13** .
23
 
24
  = So, who is going to use this plugin? =
25
 
26
- - The aim of NextCellent is provide an alternative for traditional NextGEN users to keep their sites updated without breaking compatibility. Older subplugins will be also compatible (those which were compatible with version 1.9.13 or earlier).
27
 
28
- - Users who wants to stay working with older NextGEN version (1.9.13) until they're confident enough to make the jump to newest 2.x.x version
29
 
30
- - Users wishing avoid NextGEN 2.x.x and beyond for the moment. Even though, **I strongly suggest to analyze your schedule and formulate a migration**. That is should be the way to go in the future.
31
 
32
- - Site managers handling several sites using specialized software as InfiniteWP or ManageWP, wanting to keep their sites running with automatic updates.
33
 
34
- - Users prefering an alternative development path with backward compatibility.
35
-
36
- - Any final user preferring older NextGEN version.
37
 
38
 
39
  = What do you get with NextCellent Gallery? =
@@ -87,7 +98,7 @@ As a result, there is large and great community of users and developers, as well
87
  Copyright:<br>
88
  WpGetReady 2013<br>
89
  Photocrati Media 2012<br>
90
- Alex Rabe 2007-2011
91
 
92
  This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
93
 
@@ -103,7 +114,7 @@ NextCellent Gallery's flash slideshow option is powered by the JW Image Rotator
103
 
104
  1. Download, and install from the usual Wordpress Panel.
105
 
106
- 2. Remember: plugin won't activate if NextGEN is installed and activated. A message will remind you this situation. Please deactivate any NextGEN plugin before installing NextCellent.
107
 
108
  3. From your Wordpress Dashboard, go to Gallery > Add Gallery/Images > Follow the on-screen cues.
109
 
@@ -158,7 +169,7 @@ NextCellent Plugin Shortcodes are 100% backward compatible with older NGG shortc
158
 
159
  = What are the SIGNIFICATIVE differences between NextCellent and NextGEN 1.9.13? =
160
 
161
- - Plugin will detect if NextGEN is installed and it will deativate itself. You'll need to deactivate NextGEN in order to properly use NextCellent.
162
  - Plugin will deactivate if you install and activate any NextGEN version (all versions).
163
  - Minimal text changes to let the user know what plugin is running. This would affect translated texts in some cases.
164
  - Nothing else in this starting version.
@@ -174,39 +185,39 @@ NextCellent Plugin Shortcodes are 100% backward compatible with older NGG shortc
174
  = I'm currently using NextGEN. How can I switch from NextGEN to NextCellent? =
175
 
176
  - Install NextCellent plugin but do not activate. If you accidentally activate it will tell you that it cannot be activated along with NextGEN.
177
- - Deactivate NextGEN plugin.
178
- - Activate NextCellent
179
- - Play around
180
-
181
- = Can I go back and switch to NextGEN if NextCellent is not convincing? =
182
-
183
- - Absolutely, just activate NextGEN and NextCellent will deactivate itself automatically
184
-
185
- = I prefer using NextGEN, how can I uninstall NextCellent plugin without loosing my pictures/album/galleries? =
186
-
187
- - Assuming you have both plugins installed:
188
- - If you are unsure, backup the site first(!)
189
- - Be sure NextCellent is deactivated
190
  - MANUALLY remove NextCellent plugin folder (usually nextcellent-gallery-nextgen-legacy). Do not use traditional Wordpress uninstall procedure.
191
- - Reactivate NextGEN (if it was deactivated)
192
- - That's all
193
-
194
- = I switched to NextCellent, how can I uninstall the NextGEN plugin without loosing my pictures/album/galleries? =
195
-
196
- - Assuming you have both plugins installed:
197
- - If you are unsure, I backup the site first(!)
198
- - Be sure NextGEN is deactivated
199
  - MANUALLY remove NextGEN plugin folder(usually NextGEN-gallery) . Do not use traditional Wordpress uninstall procedure.
200
- - Activate NextCellent (if it was deactivated)
201
- - That's all
202
 
203
  = I have NextGEN 1.9.13 or older, should I install NextCellent? =
204
-
205
- - Good question. NextCellent 1.9.14 makes no significatives differences at this current stage, except minimal text changes and NextGEN detection to avoid user confusion. Aside that, it should be identical, handling your galleries without problems. This is a starting point to anyone using older NextGEN version.
206
-
207
  = If I have NextGEN 2.x.x, should I install NextCellent? =
208
 
209
- - In case NextGEN is working right for you and you had never a problem into transition from 1.9.x to 2.x.x, you can safely ignore NextCellent.
210
  - If you are coming from older NextGEN versions (1.9.13 and earlier) and for some reason you want an alternative development path, give this plugin a try.
211
  - There is no guarantee about compatibility with future NextGEN releases.
212
 
@@ -214,20 +225,20 @@ NextCellent Plugin Shortcodes are 100% backward compatible with older NGG shortc
214
 
215
  - If you want to keep the older plugin version, choose NextCellent.
216
  - If you have a lot of sites with customized galleries, choose NextCellent.
217
- - If you have a site with a lot of customized code connected with older NextGEN versions, choose NextCellent.
218
- - If you are getting performance problems, go with NextCellent.
219
- - If you need peace of mind right now, go with NextCellent.
220
  - If you are managing large amounts of sites, and you need update-and-forget without FTP (like InfiniteWP or ManageWP), go with NextCellent.
221
- - Keep in mind also that every issue existent on version 1.9.13 would eventually exists on 1.9.14, since this is the very first release.
222
- - NextCellent is a place where you can download and install currently an older, 'stable' version.
223
-
224
- = I am a developer , would be wise to create plugins based on NextCellent? =
225
-
226
- - That is another good question. Since NextCellent is a branch from NextGEN 1.9.13, I will do my best to keep it, stable. Time will say if I am right. What I can assure is the code will lack of dramatic changes over the time, unless there is a big need to do that.
227
 
228
  = Are you related with Alex Rabe or PhotoCrati? =
229
 
230
- - I feel closely related with the NextGEN Community. Few months ago I choose NextGEN as essential tools for making wordpress sites. I think Alex Rabe work is great and also Photocrati's work. However, I feel there is a need to be covered between the past and present NextGEN versions and NextCellent is an alternative to most people so they can sleep with peace of mind.
231
 
232
  = Will NextCellent continue evolving? =
233
 
@@ -235,7 +246,7 @@ NextCellent Plugin Shortcodes are 100% backward compatible with older NGG shortc
235
 
236
  = Will NextCellent Gallery work with my theme? =
237
 
238
- - NextCellent uses the same codebase and tries to mimic older NextGEN as much as possible. It should.
239
 
240
  = Will NextCellent work with my NextGEN Galleries? =
241
 
@@ -247,9 +258,9 @@ NextCellent Plugin Shortcodes are 100% backward compatible with older NGG shortc
247
 
248
  - NextCellent will inherit all the code from version 1.9.13 which is both good and bad.
249
 
250
- = Why then the name NextCellent instead NextGEN Legacy for example? =
251
 
252
- - Because I believe there is space to improve the plugin while listening the community. So it is likely this version continue evolving while NextGEN follows its own path. Can't be two plugins with same name and following different directions, can be? That would be SO confusing for Wordpress users.
253
 
254
  = Will NextCellent work with new NextGEN (2.0.x) side by side? =
255
 
@@ -314,6 +325,12 @@ Yes, since we use Javascript rather than flash, NextCellent Gallery is compatibl
314
 
315
  == Changelog ==
316
 
 
 
 
 
 
 
317
  = V1.9.14 - 01.09.2013 =
318
  * The plugin will deactivate if NextGEN (all versions) plugin is installed & activated
319
  * text messages were adjusted to this plugin, to avoid user confusion.
1
+ === NextCellent Gallery - NextGEN Legacy ===
2
  Contributors: WPGetReady
3
  Tags:gallery,image,images,photo,photos,picture,pictures,slideshow,flash,media,thumbnails,photo-albums,NextGEN-gallery,NextGEN,nextcellent-gallery,nextcellent
4
  Requires at least: 3.5
10
 
11
  = WordPress Gallery Plugin =
12
 
13
+ = V1.9.15 - 03.10.2013 =
14
+
15
+ What's in it for you?
16
+
17
+ * Code simplification: code supporting PHP4 has no use. Deprecated.
18
+ * Plugin should work with PHP strict standard enabled.
19
+ * Improper call to static functions corrected all over the code
20
+ * Disabled donator metabox since link is dead
21
+
22
  VERY IMPORTANT: Read ON!
23
  -----------------------
24
 
25
+ - NextCellent Gallery is based from the last stable NextGEN 1.9.13 version prior 2.x.x . If you are a new user, it is suggested to install latest NextGEN version instead this plugin. Its development is going in the right way if you are starting a new site. Even though, NextCellent development path will also work fine for you. Your choice.
26
 
27
  - Second, **this plugin WON'T WORK with NextGEN side by side**. <u>It will gracefully deactivate if detects NextGEN is working to avoid compatibility issues</u>.
28
+
29
  - Third, READ THE FAQ!!! Issues for failing to read the FAQ will be IGNORED!!!
30
 
31
+ - If you like it, please spread the word and rate it accordingly. I guess a lot of annoyed users can take advantage of NextCellent. Thank you!
32
+
33
  **NextCellent Gallery provides backward compatibility for older NextGEN until version 1.9.13** .
34
 
35
  = So, who is going to use this plugin? =
36
 
37
+ - The aim of NextCellent is to provide an alternative for traditional NextGEN users to keep their sites updated without breaking compatibility. Older subplugins will be also compatible (those which were compatible with version 1.9.13 or earlier).
38
 
39
+ - Users who wants to stay working with older NextGEN version (1.9.13) until they're confident enough to make the jump to newest 2.x.x version
40
 
41
+ - Users wishing avoid NextGEN 2.x.x and beyond for the moment. Even though, **I strongly suggest to analyze your schedule and formulate a migration**. That is should be the way to go in the future.
42
 
43
+ - Site managers handling several sites using specialized software as InfiniteWP or ManageWP, wanting to keep their sites running with automatic updates.
44
 
45
+ - Users prefering an alternative development path with backward compatibility.
46
+
47
+ - Any final user preferring older NextGEN version.
48
 
49
 
50
  = What do you get with NextCellent Gallery? =
98
  Copyright:<br>
99
  WpGetReady 2013<br>
100
  Photocrati Media 2012<br>
101
+ Alex Rabe 2007-2011<br>
102
 
103
  This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
104
 
114
 
115
  1. Download, and install from the usual Wordpress Panel.
116
 
117
+ 2. Remember: plugin won't activate if NextGEN is installed and activated. A message will remind you this situation. Please deactivate any NextGEN plugin before installing NextCellent.
118
 
119
  3. From your Wordpress Dashboard, go to Gallery > Add Gallery/Images > Follow the on-screen cues.
120
 
169
 
170
  = What are the SIGNIFICATIVE differences between NextCellent and NextGEN 1.9.13? =
171
 
172
+ - Plugin will detect if NextGEN is installed and it will deativate itself. You'll need to deactivate NextGEN in order to properly use NextCellent.
173
  - Plugin will deactivate if you install and activate any NextGEN version (all versions).
174
  - Minimal text changes to let the user know what plugin is running. This would affect translated texts in some cases.
175
  - Nothing else in this starting version.
185
  = I'm currently using NextGEN. How can I switch from NextGEN to NextCellent? =
186
 
187
  - Install NextCellent plugin but do not activate. If you accidentally activate it will tell you that it cannot be activated along with NextGEN.
188
+ - Deactivate NextGEN plugin.
189
+ - Activate NextCellent
190
+ - Play around
191
+
192
+ = Can I go back and switch to NextGEN if NextCellent is not convincing? =
193
+
194
+ - Absolutely, just activate NextGEN and NextCellent will deactivate itself automatically
195
+
196
+ = I prefer using NextGEN, how can I uninstall NextCellent plugin without loosing my pictures/album/galleries? =
197
+
198
+ - Assuming you have both plugins installed:
199
+ - If you are unsure, backup the site first(!)
200
+ - Be sure NextCellent is deactivated
201
  - MANUALLY remove NextCellent plugin folder (usually nextcellent-gallery-nextgen-legacy). Do not use traditional Wordpress uninstall procedure.
202
+ - Reactivate NextGEN (if it was deactivated)
203
+ - That's all
204
+
205
+ = I switched to NextCellent, how can I uninstall the NextGEN plugin without loosing my pictures/album/galleries? =
206
+
207
+ - Assuming you have both plugins installed:
208
+ - If you are unsure, I backup the site first(!)
209
+ - Be sure NextGEN is deactivated
210
  - MANUALLY remove NextGEN plugin folder(usually NextGEN-gallery) . Do not use traditional Wordpress uninstall procedure.
211
+ - Activate NextCellent (if it was deactivated)
212
+ - That's all
213
 
214
  = I have NextGEN 1.9.13 or older, should I install NextCellent? =
215
+
216
+ - Good question. NextCellent 1.9.14 makes no significatives differences at this current stage, except minimal text changes and NextGEN detection to avoid user confusion. Aside that, it should be identical, handling your galleries without problems. This is a starting point to anyone using older NextGEN version.
217
+
218
  = If I have NextGEN 2.x.x, should I install NextCellent? =
219
 
220
+ - In case NextGEN is working right for you and you had never a problem into transition from 1.9.x to 2.x.x, you can safely ignore NextCellent.
221
  - If you are coming from older NextGEN versions (1.9.13 and earlier) and for some reason you want an alternative development path, give this plugin a try.
222
  - There is no guarantee about compatibility with future NextGEN releases.
223
 
225
 
226
  - If you want to keep the older plugin version, choose NextCellent.
227
  - If you have a lot of sites with customized galleries, choose NextCellent.
228
+ - If you have a site with a lot of customized code connected with older NextGEN versions, choose NextCellent.
229
+ - If you are getting performance problems, go with NextCellent.
230
+ - If you need peace of mind right now, go with NextCellent.
231
  - If you are managing large amounts of sites, and you need update-and-forget without FTP (like InfiniteWP or ManageWP), go with NextCellent.
232
+ - Keep in mind also that every issue existent on version 1.9.13 would eventually exists on 1.9.14, since this is the very first release.
233
+ - NextCellent is a place where you can download and install currently an older, 'stable' version.
234
+
235
+ = I am a developer , would be wise to create plugins based on NextCellent? =
236
+
237
+ - That is another good question. Since NextCellent is a branch from NextGEN 1.9.13, I will do my best to keep it, stable. Time will say if I am right. What I can assure is the code will lack of dramatic changes over the time, unless there is a big need to do that.
238
 
239
  = Are you related with Alex Rabe or PhotoCrati? =
240
 
241
+ - I feel closely related with the NextGEN Community. Few months ago I choose NextGEN as essential tools for making wordpress sites. I think Alex Rabe work is great and also Photocrati's work. However, I also feel there is a need to be covered between the past and present NextGEN versions and NextCellent is an alternative to most people so they can sleep with peace of mind.
242
 
243
  = Will NextCellent continue evolving? =
244
 
246
 
247
  = Will NextCellent Gallery work with my theme? =
248
 
249
+ - NextCellent uses the same codebase and tries to mimic older NextGEN as much as possible. In short, it should!
250
 
251
  = Will NextCellent work with my NextGEN Galleries? =
252
 
258
 
259
  - NextCellent will inherit all the code from version 1.9.13 which is both good and bad.
260
 
261
+ Why then the name NextCellent instead NextGEN Legacy for example? =
262
 
263
+ - Because I believe there is space to improve the plugin while listening the community. It is likely this version continue evolving while NextGEN follows its own path. Can't be two plugins with same name and following different directions, can be? That would be SO confusing for Wordpress users.
264
 
265
  = Will NextCellent work with new NextGEN (2.0.x) side by side? =
266
 
325
 
326
  == Changelog ==
327
 
328
+ = V1.9.15 - 03.10.2013 =
329
+ * Code simplification: code supporting PHP4 has no use. Deprecated.
330
+ * Plugin should work with PHP strict standard enabled.
331
+ * Improper call to static functions corrected all over the code
332
+ * Disabled donator metabox since link is dead
333
+
334
  = V1.9.14 - 01.09.2013 =
335
  * The plugin will deactivate if NextGEN (all versions) plugin is installed & activated
336
  * text messages were adjusted to this plugin, to avoid user confusion.