Version Description
- 06.13.2016 =
- Changed: Removed custom Freeius opt-in message
- Changed: New design and video for Upgrade to Pro page
- Changed: Added namespacing to NGG-generated transients
- Fixed: Better error reporting for the XML-RPC method, ngg.uploadImage
- Fixed: Thumbnail editing links missing when locale uses RTL language such as Hebrew
- Fixed: Roles and Capabilities discrepancy with displaying NextGEN Gallery UI elements
- Fixed: Fancybox lightbox effect not compatible with Pro Mosaic galleries
- Fixed: Basic Tagcloud does not honor display type setting when editing in IGW
- Fixed: Basic Tagcloud allows selection of Pro display types when NGG Pro is disabled
- Fixed: Limit display types available in "Display galleries as" setting for albums
- Fixed: Special characters in
show_slideshow_text
parameter causing inserted display to not be editable. - Fixed: NGG Basic Slideshow not honoring transition effect setting
- Fixed: Image tags that are no longer should be removed
- Fixed: Spacing preserved when our shortcodes are placed with other content
- Fixed: Breadcrumbs in albums when slug is shared between gallery and album
- Fixed: get_unique_slug() creating invalid SQL query when gallery name contains quote characters
- Fixed: /ngg_tags pages displaying comments from all posts
- Fixed: PHP warning when saving image meta data
- Fixed: Fix incompatibility with WPML pagination due to overriding $SERVER['REQUESTURI']
Download this release
Release Info
Developer | photocrati |
Plugin | NextGEN Gallery – WordPress Gallery Plugin |
Version | 2.2.8 |
Comparing to | |
See all releases |
Code changes from version 2.2.3 to 2.2.8
- changelog.txt +21 -0
- nggallery.php +2 -3
- non_pope/class.photocrati_transient_manager.php +2 -1
- products/photocrati_nextgen/modules/attach_to_post/module.attach_to_post.php +16 -3
- products/photocrati_nextgen/modules/attach_to_post/static/attach_to_post.js +2 -2
- products/photocrati_nextgen/modules/attach_to_post/static/attach_to_post.min.js +1 -1
- products/photocrati_nextgen/modules/attach_to_post/static/base64.js +205 -0
- products/photocrati_nextgen/modules/attach_to_post/static/base64.min.js +1 -0
- products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.js +13 -14
- products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.min.js +1 -1
- products/photocrati_nextgen/modules/i18n/module.i18n.php +21 -1
- products/photocrati_nextgen/modules/lightbox/static/fancybox/nextgen_fancybox_init.js +1 -1
- products/photocrati_nextgen/modules/lightbox/static/fancybox/nextgen_fancybox_init.min.js +1 -1
- products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php +13 -1
- products/photocrati_nextgen/modules/nextgen_basic_album/templates/breadcrumbs.php +2 -2
- products/photocrati_nextgen/modules/nextgen_basic_album/templates/compact.php +1 -1
- products/photocrati_nextgen/modules/nextgen_basic_album/templates/descriptions.php +1 -1
- products/photocrati_nextgen/modules/nextgen_basic_album/templates/extended.php +2 -2
- products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php +29 -14
- products/photocrati_nextgen/modules/nextgen_basic_gallery/static/thumbnails/nextgen_basic_thumbnails.js +9 -3
- products/photocrati_nextgen/modules/nextgen_basic_gallery/static/thumbnails/nextgen_basic_thumbnails.min.js +1 -1
- products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/thumbnails/index.php +1 -0
- products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/templates/imagebrowser-simple-template.php +1 -1
- products/photocrati_nextgen/modules/nextgen_basic_tagcloud/module.nextgen_basic_tagcloud.php +2 -1
- products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php +7 -2
- products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php +1 -1
- products/photocrati_nextgen/modules/nextgen_data/package.module.nextgen_data.php +16 -7
- products/photocrati_nextgen/modules/nextgen_pro_upgrade/module.nextgen_pro_upgrade.php +1 -1
- products/photocrati_nextgen/modules/nextgen_pro_upgrade/package.module.nextgen_pro_upgrade.php +7 -8
- products/photocrati_nextgen/modules/nextgen_pro_upgrade/static/style.css +81 -12
- products/photocrati_nextgen/modules/nextgen_pro_upgrade/static/style.min.css +1 -1
- products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/plus.php +9 -18
- products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/pro.php +11 -9
- products/photocrati_nextgen/modules/nextgen_xmlrpc/package.module.nextgen_xmlrpc.php +88 -27
- products/photocrati_nextgen/modules/ngglegacy/admin/css/nggadmin.css +26 -0
- products/photocrati_nextgen/modules/ngglegacy/admin/css/nggadmin.min.css +1 -1
- products/photocrati_nextgen/modules/ngglegacy/admin/manage.php +13 -0
- products/photocrati_nextgen/modules/ngglegacy/admin/overview.php +5 -9
- products/photocrati_nextgen/modules/ngglegacy/lib/meta.php +3 -5
- products/photocrati_nextgen/modules/ngglegacy/lib/ngg-db.php +2 -2
- products/photocrati_nextgen/modules/ngglegacy/module.ngglegacy.php +1 -1
- products/photocrati_nextgen/modules/router/package.module.router.php +2 -2
- products/photocrati_nextgen/modules/wordpress_routing/module.wordpress_routing.php +2 -2
- products/photocrati_nextgen/modules/wordpress_routing/package.module.wordpress_routing.php +1 -1
- readme.txt +199 -178
changelog.txt
CHANGED
@@ -1,6 +1,27 @@
|
|
1 |
NextGEN Gallery
|
2 |
by Imagely
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
= V2.2.3 - 04.05.2017 =
|
5 |
* Fixed: E_WARNING on Gallery Settings page due to improper use of array_combine() on PHP <= 5.3
|
6 |
|
1 |
NextGEN Gallery
|
2 |
by Imagely
|
3 |
|
4 |
+
= V2.2.8 - 06.13.2016 =
|
5 |
+
* Changed: Removed custom Freemius opt-in message
|
6 |
+
* Changed: New design and video for Upgrade to Pro page
|
7 |
+
* Changed: Added namespacing to NGG-generated transients
|
8 |
+
* Fixed: Better error reporting for the XML-RPC method, ngg.uploadImage
|
9 |
+
* Fixed: Thumbnail editing links missing when locale uses RTL language such as Hebrew
|
10 |
+
* Fixed: Roles and Capabilities discrepancy with displaying NextGEN Gallery UI elements
|
11 |
+
* Fixed: Fancybox lightbox effect not compatible with Pro Mosaic galleries
|
12 |
+
* Fixed: Basic Tagcloud does not honor display type setting when editing in IGW
|
13 |
+
* Fixed: Basic Tagcloud allows selection of Pro display types when NGG Pro is disabled
|
14 |
+
* Fixed: Limit display types available in "Display galleries as" setting for albums
|
15 |
+
* Fixed: Special characters in `show_slideshow_text` parameter causing inserted display to not be editable.
|
16 |
+
* Fixed: NGG Basic Slideshow not honoring transition effect setting
|
17 |
+
* Fixed: Image tags that are no longer should be removed
|
18 |
+
* Fixed: Spacing preserved when our shortcodes are placed with other content
|
19 |
+
* Fixed: Breadcrumbs in albums when slug is shared between gallery and album
|
20 |
+
* Fixed: get_unique_slug() creating invalid SQL query when gallery name contains quote characters
|
21 |
+
* Fixed: /ngg_tags pages displaying comments from all posts
|
22 |
+
* Fixed: PHP warning when saving image meta data
|
23 |
+
* Fixed: Fix incompatibility with WPML pagination due to overriding $_SERVER['REQUEST_URI']
|
24 |
+
|
25 |
= V2.2.3 - 04.05.2017 =
|
26 |
* Fixed: E_WARNING on Gallery Settings page due to improper use of array_combine() on PHP <= 5.3
|
27 |
|
nggallery.php
CHANGED
@@ -4,7 +4,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
|
|
4 |
/**
|
5 |
* Plugin Name: NextGEN Gallery
|
6 |
* Description: The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 17 million downloads.
|
7 |
-
* Version: 2.2.
|
8 |
* Author: Imagely
|
9 |
* Plugin URI: https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/
|
10 |
* Author URI: https://www.imagely.com
|
@@ -637,7 +637,7 @@ class C_NextGEN_Bootstrap
|
|
637 |
define('NGG_PRODUCT_URL', path_join(str_replace("\\", '/', NGG_PLUGIN_URL), 'products'));
|
638 |
define('NGG_MODULE_URL', path_join(str_replace("\\", '/', NGG_PRODUCT_URL), 'photocrati_nextgen/modules'));
|
639 |
define('NGG_PLUGIN_STARTED_AT', microtime());
|
640 |
-
define('NGG_PLUGIN_VERSION', '2.2.
|
641 |
|
642 |
if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG)
|
643 |
define('NGG_SCRIPT_VERSION', (string)mt_rand(0, mt_getrandmax()));
|
@@ -1009,7 +1009,6 @@ function ngg_fs( $activate_for_all = false ) {
|
|
1009 |
*/
|
1010 |
|
1011 |
// Hook to the custom message filter.
|
1012 |
-
$ngg_fs->add_filter( 'connect_message', 'ngg_fs_custom_connect_message', 10, 6 );
|
1013 |
$ngg_fs->add_action( 'after_uninstall', 'ngg_fs_uninstall' );
|
1014 |
|
1015 |
// Hook to new gallery creation event.
|
4 |
/**
|
5 |
* Plugin Name: NextGEN Gallery
|
6 |
* Description: The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 17 million downloads.
|
7 |
+
* Version: 2.2.8
|
8 |
* Author: Imagely
|
9 |
* Plugin URI: https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/
|
10 |
* Author URI: https://www.imagely.com
|
637 |
define('NGG_PRODUCT_URL', path_join(str_replace("\\", '/', NGG_PLUGIN_URL), 'products'));
|
638 |
define('NGG_MODULE_URL', path_join(str_replace("\\", '/', NGG_PRODUCT_URL), 'photocrati_nextgen/modules'));
|
639 |
define('NGG_PLUGIN_STARTED_AT', microtime());
|
640 |
+
define('NGG_PLUGIN_VERSION', '2.2.8');
|
641 |
|
642 |
if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG)
|
643 |
define('NGG_SCRIPT_VERSION', (string)mt_rand(0, mt_getrandmax()));
|
1009 |
*/
|
1010 |
|
1011 |
// Hook to the custom message filter.
|
|
|
1012 |
$ngg_fs->add_action( 'after_uninstall', 'ngg_fs_uninstall' );
|
1013 |
|
1014 |
// Hook to new gallery creation event.
|
non_pope/class.photocrati_transient_manager.php
CHANGED
@@ -139,7 +139,8 @@ class C_Photocrati_Transient_Manager
|
|
139 |
if (is_string($group) && !empty($group))
|
140 |
{
|
141 |
global $wpdb;
|
142 |
-
|
|
|
143 |
$wpdb->query($query);
|
144 |
$this->delete_tracked($group);
|
145 |
}
|
139 |
if (is_string($group) && !empty($group))
|
140 |
{
|
141 |
global $wpdb;
|
142 |
+
// Note: The wildcard % matches any number of characters, _ matches a single character and should be escaped
|
143 |
+
$query = "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient%' AND option_name LIKE '%{$this->get_group_id($group)}\_\_%'";
|
144 |
$wpdb->query($query);
|
145 |
$this->delete_tracked($group);
|
146 |
}
|
products/photocrati_nextgen/modules/attach_to_post/module.attach_to_post.php
CHANGED
@@ -138,7 +138,7 @@ class M_Attach_To_Post extends C_Base_Module
|
|
138 |
);
|
139 |
|
140 |
add_action('admin_init', array(&$this, 'route_insert_gallery_window'));
|
141 |
-
|
142 |
add_action('media_buttons', array($this, 'add_media_button'), 15);
|
143 |
add_action('admin_init', array($this, 'enqueue_tinymce_plugin_css'));
|
144 |
add_action('admin_print_scripts', array(&$this, 'print_tinymce_placeholder_template'));
|
@@ -257,6 +257,13 @@ class M_Attach_To_Post extends C_Base_Module
|
|
257 |
|
258 |
function add_media_button()
|
259 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
$router = C_Router::get_instance();
|
261 |
$button_url = $router->get_static_url('photocrati-attach_to_post#atp_button.png');
|
262 |
$label = __('Add Gallery', 'nggallery');
|
@@ -360,6 +367,13 @@ class M_Attach_To_Post extends C_Base_Module
|
|
360 |
|
361 |
M_Gallery_Display::enqueue_fontawesome();
|
362 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
363 |
wp_enqueue_style(
|
364 |
'ngg_attach_to_post_dialog',
|
365 |
$router->get_static_url('photocrati-attach_to_post#attach_to_post_dialog.css'),
|
@@ -370,7 +384,7 @@ class M_Attach_To_Post extends C_Base_Module
|
|
370 |
wp_enqueue_script(
|
371 |
'ngg-igw',
|
372 |
$router->get_static_url('photocrati-attach_to_post#igw.js'),
|
373 |
-
array('jquery'),
|
374 |
NGG_PLUGIN_VERSION
|
375 |
);
|
376 |
wp_localize_script('ngg-igw', 'ngg_igw_i18n', array(
|
@@ -440,7 +454,6 @@ class M_Attach_To_Post extends C_Base_Module
|
|
440 |
*/
|
441 |
function add_attach_to_post_tinymce_plugin($plugins)
|
442 |
{
|
443 |
-
global $wp_version;
|
444 |
$router = C_Router::get_instance();
|
445 |
wp_enqueue_script('photocrati_ajax');
|
446 |
$plugins[$this->attach_to_post_tinymce_plugin] = $router->get_static_url('photocrati-attach_to_post#ngg_attach_to_post_tinymce_plugin.js');
|
138 |
);
|
139 |
|
140 |
add_action('admin_init', array(&$this, 'route_insert_gallery_window'));
|
141 |
+
|
142 |
add_action('media_buttons', array($this, 'add_media_button'), 15);
|
143 |
add_action('admin_init', array($this, 'enqueue_tinymce_plugin_css'));
|
144 |
add_action('admin_print_scripts', array(&$this, 'print_tinymce_placeholder_template'));
|
257 |
|
258 |
function add_media_button()
|
259 |
{
|
260 |
+
$security = $this->get_registry()->get_utility('I_Security_Manager');
|
261 |
+
$sec_actor = $security->get_current_actor();
|
262 |
+
if (in_array(FALSE, array(
|
263 |
+
$sec_actor->is_allowed('NextGEN Attach Interface'),
|
264 |
+
$sec_actor->is_allowed('NextGEN Use TinyMCE'))))
|
265 |
+
return;
|
266 |
+
|
267 |
$router = C_Router::get_instance();
|
268 |
$button_url = $router->get_static_url('photocrati-attach_to_post#atp_button.png');
|
269 |
$label = __('Add Gallery', 'nggallery');
|
367 |
|
368 |
M_Gallery_Display::enqueue_fontawesome();
|
369 |
|
370 |
+
wp_register_script(
|
371 |
+
'Base64',
|
372 |
+
$router->get_static_url('photocrati-attach_to_post#base64.js'),
|
373 |
+
array(),
|
374 |
+
NGG_PLUGIN_VERSION
|
375 |
+
);
|
376 |
+
|
377 |
wp_enqueue_style(
|
378 |
'ngg_attach_to_post_dialog',
|
379 |
$router->get_static_url('photocrati-attach_to_post#attach_to_post_dialog.css'),
|
384 |
wp_enqueue_script(
|
385 |
'ngg-igw',
|
386 |
$router->get_static_url('photocrati-attach_to_post#igw.js'),
|
387 |
+
array('jquery', 'Base64'),
|
388 |
NGG_PLUGIN_VERSION
|
389 |
);
|
390 |
wp_localize_script('ngg-igw', 'ngg_igw_i18n', array(
|
454 |
*/
|
455 |
function add_attach_to_post_tinymce_plugin($plugins)
|
456 |
{
|
|
|
457 |
$router = C_Router::get_instance();
|
458 |
wp_enqueue_script('photocrati_ajax');
|
459 |
$plugins[$this->attach_to_post_tinymce_plugin] = $router->get_static_url('photocrati-attach_to_post#ngg_attach_to_post_tinymce_plugin.js');
|
products/photocrati_nextgen/modules/attach_to_post/static/attach_to_post.js
CHANGED
@@ -143,9 +143,9 @@ function insert_into_editor(snippet, ref_or_id)
|
|
143 |
jQuery(editor.selection.getNode()).attr('data-shortcode', snippet.substring(1, snippet.length-1));
|
144 |
}
|
145 |
else {
|
146 |
-
editor.
|
147 |
}
|
148 |
-
editor.selection.collapse(
|
149 |
|
150 |
}
|
151 |
else {
|
143 |
jQuery(editor.selection.getNode()).attr('data-shortcode', snippet.substring(1, snippet.length-1));
|
144 |
}
|
145 |
else {
|
146 |
+
editor.execCommand('mceInsertContent', false, snippet);
|
147 |
}
|
148 |
+
editor.selection.collapse(false);
|
149 |
|
150 |
}
|
151 |
else {
|
products/photocrati_nextgen/modules/attach_to_post/static/attach_to_post.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
function close_attach_to_post_window(){var t=jQuery(top.document).find("#TB_window iframe").attr("src");t&&t.match("attach_to_post")?top.tb_remove():top.tinyMCE.activeEditor.windowManager.close(window)}function adjust_height_for_frame(t,e,i){var o=jQuery(e.frameElement),n=o.contents().height()/3,a=o.contents().find("#wpbody").height(),r=jQuery(t.document).height(),c=o.height();if(n<a&&(n=a),n<r&&(n=r),c<n){o.height(n);var s=o.attr("id");if(s&&0==s.indexOf("ngg-iframe-")){var l=s.substr(11);l&&jQuery("#"+l).height(n)}}return void 0==i||i(t,e,n)}function ngg_get_measures_for_frame(t){var e=jQuery(t),i=e.attr("id"),o={};if(i&&0==i.indexOf("ngg-iframe-")){var n=i.substr(11);if(n){var a=jQuery(document);if(o.scrollTop=a.scrollTop()-40,window.parent){var r=jQuery(window.parent.document);o.scrollHeight=r.find(".ngg_attach_to_post_window").height()-40}else o.scrollHeight=a.height();"undefined"!=typeof window.console&&console.log(o)}}return o}function is_visual_editor(){return 0==jQuery(top.document).find(".html-active:visible").length}function insert_into_editor(t,e){if(is_visual_editor()){var i=top.tinyMCE.activeEditor;i.selection.getNode().outerHTML.indexOf(e)>=0?jQuery(i.selection.getNode()).attr("data-shortcode",t.substring(1,t.length-1)):i.
|
1 |
+
function close_attach_to_post_window(){var t=jQuery(top.document).find("#TB_window iframe").attr("src");t&&t.match("attach_to_post")?top.tb_remove():top.tinyMCE.activeEditor.windowManager.close(window)}function adjust_height_for_frame(t,e,i){var o=jQuery(e.frameElement),n=o.contents().height()/3,a=o.contents().find("#wpbody").height(),r=jQuery(t.document).height(),c=o.height();if(n<a&&(n=a),n<r&&(n=r),c<n){o.height(n);var s=o.attr("id");if(s&&0==s.indexOf("ngg-iframe-")){var l=s.substr(11);l&&jQuery("#"+l).height(n)}}return void 0==i||i(t,e,n)}function ngg_get_measures_for_frame(t){var e=jQuery(t),i=e.attr("id"),o={};if(i&&0==i.indexOf("ngg-iframe-")){var n=i.substr(11);if(n){var a=jQuery(document);if(o.scrollTop=a.scrollTop()-40,window.parent){var r=jQuery(window.parent.document);o.scrollHeight=r.find(".ngg_attach_to_post_window").height()-40}else o.scrollHeight=a.height();"undefined"!=typeof window.console&&console.log(o)}}return o}function is_visual_editor(){return 0==jQuery(top.document).find(".html-active:visible").length}function insert_into_editor(t,e){if(is_visual_editor()){var i=top.tinyMCE.activeEditor;i.selection.getNode().outerHTML.indexOf(e)>=0?jQuery(i.selection.getNode()).attr("data-shortcode",t.substring(1,t.length-1)):i.execCommand("mceInsertContent",!1,t),i.selection.collapse(!1)}else if(myField=top.document.getElementById("content"),myValue=t,document.selection)myField.focus(),sel=document.selection.createRange(),sel.text=myValue;else if(myField.selectionStart||"0"==myField.selectionStart){var o=myField.selectionStart,n=myField.selectionEnd;myField.value=myField.value.substring(0,o)+myValue+myField.value.substring(n,myField.value.length)}else myField.value+=myValue}this.id="ngg-attach_to_post",jQuery(function(t){t("#attach_to_post_tabs").ngg_tabs(),t(".accordion h3").bind("click",function(e){"preview_tab"==t(this).attr("id")&&t("#preview_area").trigger("opened")}),t(".accordion").accordion({clearStyle:!0,autoHeight:!1,heightStyle:"content"}),t(".ui-tabs-nav a").click(function(e){var i=e.target?e.target:e.srcElement;if(t(i).parent().hasClass("ui-state-active")){var o=t(i.hash+" iframe");o.length>0&&o[0].contentDocument.location!=o.attr("src")&&(o[0].contentDocument.location=o.attr("src"))}}),t(this).keydown(function(t){27==t.keyCode&&close_attach_to_post_window()}),t("body").css({position:"static",visibility:"visible"}).animate({opacity:1})});
|
products/photocrati_nextgen/modules/attach_to_post/static/base64.js
ADDED
@@ -0,0 +1,205 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* $Id: base64.js,v 2.15 2014/04/05 12:58:57 dankogai Exp dankogai $
|
3 |
+
*
|
4 |
+
* Licensed under the BSD 3-Clause License.
|
5 |
+
* http://opensource.org/licenses/BSD-3-Clause
|
6 |
+
*
|
7 |
+
* References:
|
8 |
+
* http://en.wikipedia.org/wiki/Base64
|
9 |
+
*/
|
10 |
+
|
11 |
+
(function(global) {
|
12 |
+
'use strict';
|
13 |
+
// existing version for noConflict()
|
14 |
+
var _Base64 = global.Base64;
|
15 |
+
var version = "2.1.9";
|
16 |
+
// if node.js, we use Buffer
|
17 |
+
var buffer;
|
18 |
+
if (typeof module !== 'undefined' && module.exports) {
|
19 |
+
try {
|
20 |
+
buffer = require('buffer').Buffer;
|
21 |
+
} catch (err) {}
|
22 |
+
}
|
23 |
+
// constants
|
24 |
+
var b64chars
|
25 |
+
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
26 |
+
var b64tab = function(bin) {
|
27 |
+
var t = {};
|
28 |
+
for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
|
29 |
+
return t;
|
30 |
+
}(b64chars);
|
31 |
+
var fromCharCode = String.fromCharCode;
|
32 |
+
// encoder stuff
|
33 |
+
var cb_utob = function(c) {
|
34 |
+
if (c.length < 2) {
|
35 |
+
var cc = c.charCodeAt(0);
|
36 |
+
return cc < 0x80 ? c
|
37 |
+
: cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))
|
38 |
+
+ fromCharCode(0x80 | (cc & 0x3f)))
|
39 |
+
: (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))
|
40 |
+
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
|
41 |
+
+ fromCharCode(0x80 | ( cc & 0x3f)));
|
42 |
+
} else {
|
43 |
+
var cc = 0x10000
|
44 |
+
+ (c.charCodeAt(0) - 0xD800) * 0x400
|
45 |
+
+ (c.charCodeAt(1) - 0xDC00);
|
46 |
+
return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))
|
47 |
+
+ fromCharCode(0x80 | ((cc >>> 12) & 0x3f))
|
48 |
+
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
|
49 |
+
+ fromCharCode(0x80 | ( cc & 0x3f)));
|
50 |
+
}
|
51 |
+
};
|
52 |
+
var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
|
53 |
+
var utob = function(u) {
|
54 |
+
return u.replace(re_utob, cb_utob);
|
55 |
+
};
|
56 |
+
var cb_encode = function(ccc) {
|
57 |
+
var padlen = [0, 2, 1][ccc.length % 3],
|
58 |
+
ord = ccc.charCodeAt(0) << 16
|
59 |
+
| ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)
|
60 |
+
| ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),
|
61 |
+
chars = [
|
62 |
+
b64chars.charAt( ord >>> 18),
|
63 |
+
b64chars.charAt((ord >>> 12) & 63),
|
64 |
+
padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
|
65 |
+
padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
|
66 |
+
];
|
67 |
+
return chars.join('');
|
68 |
+
};
|
69 |
+
var btoa = global.btoa ? function(b) {
|
70 |
+
return global.btoa(b);
|
71 |
+
} : function(b) {
|
72 |
+
return b.replace(/[\s\S]{1,3}/g, cb_encode);
|
73 |
+
};
|
74 |
+
var _encode = buffer ? function (u) {
|
75 |
+
return (u.constructor === buffer.constructor ? u : new buffer(u))
|
76 |
+
.toString('base64')
|
77 |
+
}
|
78 |
+
: function (u) { return btoa(utob(u)) }
|
79 |
+
;
|
80 |
+
var encode = function(u, urisafe) {
|
81 |
+
return !urisafe
|
82 |
+
? _encode(String(u))
|
83 |
+
: _encode(String(u)).replace(/[+\/]/g, function(m0) {
|
84 |
+
return m0 == '+' ? '-' : '_';
|
85 |
+
}).replace(/=/g, '');
|
86 |
+
};
|
87 |
+
var encodeURI = function(u) { return encode(u, true) };
|
88 |
+
// decoder stuff
|
89 |
+
var re_btou = new RegExp([
|
90 |
+
'[\xC0-\xDF][\x80-\xBF]',
|
91 |
+
'[\xE0-\xEF][\x80-\xBF]{2}',
|
92 |
+
'[\xF0-\xF7][\x80-\xBF]{3}'
|
93 |
+
].join('|'), 'g');
|
94 |
+
var cb_btou = function(cccc) {
|
95 |
+
switch(cccc.length) {
|
96 |
+
case 4:
|
97 |
+
var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
|
98 |
+
| ((0x3f & cccc.charCodeAt(1)) << 12)
|
99 |
+
| ((0x3f & cccc.charCodeAt(2)) << 6)
|
100 |
+
| (0x3f & cccc.charCodeAt(3)),
|
101 |
+
offset = cp - 0x10000;
|
102 |
+
return (fromCharCode((offset >>> 10) + 0xD800)
|
103 |
+
+ fromCharCode((offset & 0x3FF) + 0xDC00));
|
104 |
+
case 3:
|
105 |
+
return fromCharCode(
|
106 |
+
((0x0f & cccc.charCodeAt(0)) << 12)
|
107 |
+
| ((0x3f & cccc.charCodeAt(1)) << 6)
|
108 |
+
| (0x3f & cccc.charCodeAt(2))
|
109 |
+
);
|
110 |
+
default:
|
111 |
+
return fromCharCode(
|
112 |
+
((0x1f & cccc.charCodeAt(0)) << 6)
|
113 |
+
| (0x3f & cccc.charCodeAt(1))
|
114 |
+
);
|
115 |
+
}
|
116 |
+
};
|
117 |
+
var btou = function(b) {
|
118 |
+
return b.replace(re_btou, cb_btou);
|
119 |
+
};
|
120 |
+
var cb_decode = function(cccc) {
|
121 |
+
var len = cccc.length,
|
122 |
+
padlen = len % 4,
|
123 |
+
n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)
|
124 |
+
| (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)
|
125 |
+
| (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)
|
126 |
+
| (len > 3 ? b64tab[cccc.charAt(3)] : 0),
|
127 |
+
chars = [
|
128 |
+
fromCharCode( n >>> 16),
|
129 |
+
fromCharCode((n >>> 8) & 0xff),
|
130 |
+
fromCharCode( n & 0xff)
|
131 |
+
];
|
132 |
+
chars.length -= [0, 0, 2, 1][padlen];
|
133 |
+
return chars.join('');
|
134 |
+
};
|
135 |
+
var atob = global.atob ? function(a) {
|
136 |
+
return global.atob(a);
|
137 |
+
} : function(a){
|
138 |
+
return a.replace(/[\s\S]{1,4}/g, cb_decode);
|
139 |
+
};
|
140 |
+
var _decode = buffer ? function(a) {
|
141 |
+
return (a.constructor === buffer.constructor
|
142 |
+
? a : new buffer(a, 'base64')).toString();
|
143 |
+
}
|
144 |
+
: function(a) { return btou(atob(a)) };
|
145 |
+
var decode = function(a){
|
146 |
+
return _decode(
|
147 |
+
String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })
|
148 |
+
.replace(/[^A-Za-z0-9\+\/]/g, '')
|
149 |
+
);
|
150 |
+
};
|
151 |
+
var noConflict = function() {
|
152 |
+
var Base64 = global.Base64;
|
153 |
+
global.Base64 = _Base64;
|
154 |
+
return Base64;
|
155 |
+
};
|
156 |
+
// export Base64
|
157 |
+
global.Base64 = {
|
158 |
+
VERSION: version,
|
159 |
+
atob: atob,
|
160 |
+
btoa: btoa,
|
161 |
+
fromBase64: decode,
|
162 |
+
toBase64: encode,
|
163 |
+
utob: utob,
|
164 |
+
encode: encode,
|
165 |
+
encodeURI: encodeURI,
|
166 |
+
btou: btou,
|
167 |
+
decode: decode,
|
168 |
+
noConflict: noConflict
|
169 |
+
};
|
170 |
+
// if ES5 is available, make Base64.extendString() available
|
171 |
+
if (typeof Object.defineProperty === 'function') {
|
172 |
+
var noEnum = function(v){
|
173 |
+
return {value:v,enumerable:false,writable:true,configurable:true};
|
174 |
+
};
|
175 |
+
global.Base64.extendString = function () {
|
176 |
+
Object.defineProperty(
|
177 |
+
String.prototype, 'fromBase64', noEnum(function () {
|
178 |
+
return decode(this)
|
179 |
+
}));
|
180 |
+
Object.defineProperty(
|
181 |
+
String.prototype, 'toBase64', noEnum(function (urisafe) {
|
182 |
+
return encode(this, urisafe)
|
183 |
+
}));
|
184 |
+
Object.defineProperty(
|
185 |
+
String.prototype, 'toBase64URI', noEnum(function () {
|
186 |
+
return encode(this, true)
|
187 |
+
}));
|
188 |
+
};
|
189 |
+
}
|
190 |
+
// that's it!
|
191 |
+
if (global['Meteor']) {
|
192 |
+
Base64 = global.Base64; // for normal export in Meteor.js
|
193 |
+
}
|
194 |
+
if (typeof module !== 'undefined' && module.exports) {
|
195 |
+
module.exports.Base64 = global.Base64;
|
196 |
+
}
|
197 |
+
if (typeof define === 'function' && define.amd) {
|
198 |
+
// AMD. Register as an anonymous module.
|
199 |
+
define([], function(){ return global.Base64 });
|
200 |
+
}
|
201 |
+
})(typeof self !== 'undefined' ? self
|
202 |
+
: typeof window !== 'undefined' ? window
|
203 |
+
: typeof global !== 'undefined' ? global
|
204 |
+
: this
|
205 |
+
);
|
products/photocrati_nextgen/modules/attach_to_post/static/base64.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(e){"use strict";var t,r=e.Base64,n="2.1.9";if("undefined"!=typeof module&&module.exports)try{t=require("buffer").Buffer}catch(e){}var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=function(e){for(var t={},r=0,n=e.length;r<n;r++)t[e.charAt(r)]=r;return t}(o),c=String.fromCharCode,a=function(e){if(e.length<2){var t=e.charCodeAt(0);return t<128?e:t<2048?c(192|t>>>6)+c(128|63&t):c(224|t>>>12&15)+c(128|t>>>6&63)+c(128|63&t)}var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return c(240|t>>>18&7)+c(128|t>>>12&63)+c(128|t>>>6&63)+c(128|63&t)},i=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,f=function(e){return e.replace(i,a)},d=function(e){var t=[0,2,1][e.length%3],r=e.charCodeAt(0)<<16|(e.length>1?e.charCodeAt(1):0)<<8|(e.length>2?e.charCodeAt(2):0),n=[o.charAt(r>>>18),o.charAt(r>>>12&63),t>=2?"=":o.charAt(r>>>6&63),t>=1?"=":o.charAt(63&r)];return n.join("")},h=e.btoa?function(t){return e.btoa(t)}:function(e){return e.replace(/[\s\S]{1,3}/g,d)},s=t?function(e){return(e.constructor===t.constructor?e:new t(e)).toString("base64")}:function(e){return h(f(e))},l=function(e,t){return t?s(String(e)).replace(/[+\/]/g,function(e){return"+"==e?"-":"_"}).replace(/=/g,""):s(String(e))},g=function(e){return l(e,!0)},p=new RegExp(["[À-ß][-¿]","[à-ï][-¿]{2}","[ð-÷][-¿]{3}"].join("|"),"g"),A=function(e){switch(e.length){case 4:var t=(7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3),r=t-65536;return c((r>>>10)+55296)+c((1023&r)+56320);case 3:return c((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return c((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},b=function(e){return e.replace(p,A)},C=function(e){var t=e.length,r=t%4,n=(t>0?u[e.charAt(0)]<<18:0)|(t>1?u[e.charAt(1)]<<12:0)|(t>2?u[e.charAt(2)]<<6:0)|(t>3?u[e.charAt(3)]:0),o=[c(n>>>16),c(n>>>8&255),c(255&n)];return o.length-=[0,0,2,1][r],o.join("")},B=e.atob?function(t){return e.atob(t)}:function(e){return e.replace(/[\s\S]{1,4}/g,C)},y=t?function(e){return(e.constructor===t.constructor?e:new t(e,"base64")).toString()}:function(e){return b(B(e))},S=function(e){return y(String(e).replace(/[-_]/g,function(e){return"-"==e?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))},v=function(){var t=e.Base64;return e.Base64=r,t};if(e.Base64={VERSION:n,atob:B,btoa:h,fromBase64:S,toBase64:l,utob:f,encode:l,encodeURI:g,btou:b,decode:S,noConflict:v},"function"==typeof Object.defineProperty){var m=function(e){return{value:e,enumerable:!1,writable:!0,configurable:!0}};e.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",m(function(){return S(this)})),Object.defineProperty(String.prototype,"toBase64",m(function(e){return l(this,e)})),Object.defineProperty(String.prototype,"toBase64URI",m(function(){return l(this,!0)}))}}e.Meteor&&(Base64=e.Base64),"undefined"!=typeof module&&module.exports&&(module.exports.Base64=e.Base64),"function"==typeof define&&define.amd&&define([],function(){return e.Base64})}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:this);
|
products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.js
CHANGED
@@ -93,7 +93,7 @@
|
|
93 |
window.igw_shortcode= $(e.target).parents('.nggPlaceholder').data('shortcode');
|
94 |
self.render_attach_to_post_interface({
|
95 |
key: 'shortcode',
|
96 |
-
val:
|
97 |
ref: $(e.target).parents('.nggPlaceholder').attr('id')
|
98 |
});
|
99 |
}
|
@@ -158,19 +158,18 @@
|
|
158 |
}
|
159 |
});
|
160 |
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
event.content = $content.html();
|
174 |
});
|
175 |
},
|
176 |
|
93 |
window.igw_shortcode= $(e.target).parents('.nggPlaceholder').data('shortcode');
|
94 |
self.render_attach_to_post_interface({
|
95 |
key: 'shortcode',
|
96 |
+
val: Base64.encode(window.igw_shortcode),
|
97 |
ref: $(e.target).parents('.nggPlaceholder').attr('id')
|
98 |
});
|
99 |
}
|
158 |
}
|
159 |
});
|
160 |
|
161 |
+
/**
|
162 |
+
* Substitutes the IGW placeholders with the corresponding shortcode
|
163 |
+
*/
|
164 |
+
editor.on('PostProcess', function(event) {
|
165 |
+
var $content = $('<div/>').append(event.content);
|
166 |
+
$content.find('.nggPlaceholder').toArray().forEach(function(placeholder){
|
167 |
+
var $placeholder = $(placeholder);
|
168 |
+
var shortcode = $placeholder.data('shortcode');
|
169 |
+
shortcode = "<p>[" + _.unescape(shortcode) + "]</p>";
|
170 |
+
$placeholder.replaceWith(shortcode);
|
171 |
+
});
|
172 |
+
event.content = $content.html();
|
|
|
173 |
});
|
174 |
},
|
175 |
|
products/photocrati_nextgen/modules/attach_to_post/static/ngg_attach_to_post_tinymce_plugin.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t,e){window.id="wordpress-post-page",tinyMCE.addI18n("en.ngg_attach_to_post",{title:"Attach NextGEN Gallery to Post"}),tinymce.create("tinymce.plugins.NextGEN_AttachToPost",{siteurl:t,getInfo:function(){return{longname:"NextGEN Gallery",author:"Imagely",authorurl:"https://www.imagely.com",infourl:"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/",version:"0.1"}},init:function(t,n){var o=this;t.windowManager.nggOldOpen=t.windowManager.open,t.windowManager.open=function(e,n){var a=t.windowManager.nggOldOpen(e,n);return a.on("close",o.wm_close_event),a},t.addCommand("ngg_attach_to_post",this.render_attach_to_post_interface,{editor:t,plugin:t.plugins.NextGEN_AttachToPost}),t.addButton("NextGEN_AttachToPost",{title:"ngg_attach_to_post.title",cmd:"ngg_attach_to_post",image:n+"/atp_button.png"}),t.on("mouseup",function(n){if(tinymce.extend(o,{editor:t,plugin:t.plugins.NextGEN_AttachToPost}),"IMG"==n.target.tagName){if(o.get_class_name(n.target).indexOf("ngg_displayed_gallery")>=0){t.dom.events.cancel(n);var a=n.target.src.match(/\d+$/);a&&(a=a.pop()),o.render_attach_to_post_interface({key:"id",val:a})}}else{var r=e(n.target);r.parents(".nggPlaceholderButton")&&(r=r.parents(".nggPlaceholderButton")),r.hasClass("nggPlaceholderButton")&&(r.hasClass("nggIgwRemove")?r.parents(".nggPlaceholder").remove():(window.igw_shortcode=e(n.target).parents(".nggPlaceholder").data("shortcode"),o.render_attach_to_post_interface({key:"shortcode",val:
|
1 |
+
!function(t,e){window.id="wordpress-post-page",tinyMCE.addI18n("en.ngg_attach_to_post",{title:"Attach NextGEN Gallery to Post"}),tinymce.create("tinymce.plugins.NextGEN_AttachToPost",{siteurl:t,getInfo:function(){return{longname:"NextGEN Gallery",author:"Imagely",authorurl:"https://www.imagely.com",infourl:"https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/",version:"0.1"}},init:function(t,n){var o=this;t.windowManager.nggOldOpen=t.windowManager.open,t.windowManager.open=function(e,n){var a=t.windowManager.nggOldOpen(e,n);return a.on("close",o.wm_close_event),a},t.addCommand("ngg_attach_to_post",this.render_attach_to_post_interface,{editor:t,plugin:t.plugins.NextGEN_AttachToPost}),t.addButton("NextGEN_AttachToPost",{title:"ngg_attach_to_post.title",cmd:"ngg_attach_to_post",image:n+"/atp_button.png"}),t.on("mouseup",function(n){if(tinymce.extend(o,{editor:t,plugin:t.plugins.NextGEN_AttachToPost}),"IMG"==n.target.tagName){if(o.get_class_name(n.target).indexOf("ngg_displayed_gallery")>=0){t.dom.events.cancel(n);var a=n.target.src.match(/\d+$/);a&&(a=a.pop()),o.render_attach_to_post_interface({key:"id",val:a})}}else{var r=e(n.target);r.parents(".nggPlaceholderButton")&&(r=r.parents(".nggPlaceholderButton")),r.hasClass("nggPlaceholderButton")&&(r.hasClass("nggIgwRemove")?r.parents(".nggPlaceholder").remove():(window.igw_shortcode=e(n.target).parents(".nggPlaceholder").data("shortcode"),o.render_attach_to_post_interface({key:"shortcode",val:Base64.encode(window.igw_shortcode),ref:e(n.target).parents(".nggPlaceholder").attr("id")})))}}),t.on("BeforeSetContent",function(t){for(var n="[ngg_images ";t.content.indexOf(n)>=0;){for(var o=t.content.indexOf(n),a=o+n.length,r=!1,i=null,c=!1,g=t.content.length;;){var l=t.content[a];if('"'==l||"'"==l&&"="==c)r&&i==l?(r=!1,i=null):(r=!0,i=l);else if("]"==l&&!r)break;if(c=l,a==g)break;a++}var s=t.content.substring(o,++a),d=s.substring(1,s.length-1);d=d.replace("[","["),d=d.replace("]","]");var p=_.template(e("#ngg-igw-placeholder").html());t.content=t.content.replace(s,p(e.extend(ngg_igw_i18n,{shortcode:d,ref:_.now()})))}}),t.on("PostProcess",function(t){var n=e("<div/>").append(t.content);n.find(".nggPlaceholder").toArray().forEach(function(t){var n=e(t),o=n.data("shortcode");o="<p>["+_.unescape(o)+"]</p>",n.replaceWith(o)}),t.content=n.html()})},get_class_name:function(t){var e=t.getAttribute("class")?t.getAttribute("class"):t.className;return e?e:""},wm_close_event:function(t){t&&t.target&&t.target._id&&"ngg_attach_to_post_dialog"==t.target._id&&(e("html,body").css("overflow","auto"),tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.dom.select("p")[0]),tinyMCE.activeEditor.selection.collapse(0))},render_attach_to_post_interface:function(t){var n=nextgen_gallery_attach_to_post_url;"undefined"!=typeof t&&(n+="&"+t.key+"="+encodeURIComponent(t.val),"undefined"!=typeof t.ref&&(n+="&ref="+encodeURIComponent(t.ref)));for(var o=window;null!=o.parent&&o.parent!=o;)o=o.parent;o=e(o);var a=o.width(),r=o.height(),i=1200,c=600,g=800,l=600,s=a-.05*a,d=r-.05*r;s<g&&(s=a-10),d<l&&(d=r-10),i>s&&(i=s),c>d&&(c=d),this.editor.windowManager.open({url:n,id:"ngg_attach_to_post_dialog",width:i,height:c,title:"NextGEN Gallery - Attach To Post"}),e("html,body").css("overflow","hidden"),e("#ngg_attach_to_post_dialog_ifr").css("overflow-y","auto"),e("#ngg_attach_to_post_dialog_ifr").css("overflow-x","hidden")}}),tinymce.PluginManager.add("NextGEN_AttachToPost",tinymce.plugins.NextGEN_AttachToPost)}(photocrati_ajax.wp_site_url,jQuery);
|
products/photocrati_nextgen/modules/i18n/module.i18n.php
CHANGED
@@ -20,7 +20,7 @@ class M_I18N extends C_Base_Module
|
|
20 |
'photocrati-i18n',
|
21 |
'Internationalization',
|
22 |
"Adds I18N resources and methods",
|
23 |
-
'0.
|
24 |
'https://www.imagely.com/languages/',
|
25 |
'Imagely',
|
26 |
'https://www.imagely.com'
|
@@ -335,6 +335,26 @@ class M_I18N extends C_Base_Module
|
|
335 |
return str_replace($separator, "", $base);
|
336 |
}
|
337 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
338 |
function get_type_list()
|
339 |
{
|
340 |
return array(
|
20 |
'photocrati-i18n',
|
21 |
'Internationalization',
|
22 |
"Adds I18N resources and methods",
|
23 |
+
'0.4',
|
24 |
'https://www.imagely.com/languages/',
|
25 |
'Imagely',
|
26 |
'https://www.imagely.com'
|
335 |
return str_replace($separator, "", $base);
|
336 |
}
|
337 |
|
338 |
+
static public function get_kses_allowed_html()
|
339 |
+
{
|
340 |
+
global $allowedtags;
|
341 |
+
|
342 |
+
$our_keys = array(
|
343 |
+
'a' => array('href' => array(),
|
344 |
+
'class' => array(),
|
345 |
+
'title' => array()),
|
346 |
+
'br' => array(),
|
347 |
+
'em' => array(),
|
348 |
+
'strong' => array(),
|
349 |
+
'u' => array(),
|
350 |
+
'p' => array('class' => array()),
|
351 |
+
'div' => array('class' => array(), 'id' => array()),
|
352 |
+
'span' => array('class' => array(), 'id' => array())
|
353 |
+
);
|
354 |
+
|
355 |
+
return array_merge_recursive($allowedtags, $our_keys);
|
356 |
+
}
|
357 |
+
|
358 |
function get_type_list()
|
359 |
{
|
360 |
return array(
|
products/photocrati_nextgen/modules/lightbox/static/fancybox/nextgen_fancybox_init.js
CHANGED
@@ -10,6 +10,6 @@ jQuery(function($) {
|
|
10 |
}
|
11 |
});
|
12 |
};
|
13 |
-
$(
|
14 |
nextgen_fancybox_init();
|
15 |
});
|
10 |
}
|
11 |
});
|
12 |
};
|
13 |
+
$(window).bind('refreshed', nextgen_fancybox_init);
|
14 |
nextgen_fancybox_init();
|
15 |
});
|
products/photocrati_nextgen/modules/lightbox/static/fancybox/nextgen_fancybox_init.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(n){var e=function(){var e=nextgen_lightbox_filter_selector(n,n(".ngg-fancybox"));e.fancybox({titlePosition:"inside",onComplete:function(){n("#fancybox-wrap").css("z-index",1e4)}})};n(
|
1 |
+
jQuery(function(n){var e=function(){var e=nextgen_lightbox_filter_selector(n,n(".ngg-fancybox"));e.fancybox({titlePosition:"inside",onComplete:function(){n("#fancybox-wrap").css("z-index",1e4)}})};n(window).bind("refreshed",e),e()});
|
products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php
CHANGED
@@ -62,6 +62,11 @@ class A_NextGen_Album_Breadcrumbs extends Mixin
|
|
62 |
} else {
|
63 |
$ids = $displayed_gallery->container_ids;
|
64 |
}
|
|
|
|
|
|
|
|
|
|
|
65 |
if (!empty($ds['original_album_entities'])) {
|
66 |
$breadcrumb_entities = $ds['original_album_entities'];
|
67 |
} else {
|
@@ -827,7 +832,14 @@ class Mixin_NextGen_Basic_Album_Form extends Mixin_Display_Type_Form
|
|
827 |
function _render_nextgen_basic_album_gallery_display_type_field($display_type)
|
828 |
{
|
829 |
$mapper = C_Display_Type_Mapper::get_instance();
|
830 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
831 |
}
|
832 |
/**
|
833 |
* Renders the Galleries Per Page field
|
62 |
} else {
|
63 |
$ids = $displayed_gallery->container_ids;
|
64 |
}
|
65 |
+
// Prevent galleries with the same ID as the parent album being displayed as the root
|
66 |
+
// breadcrumb when viewing the album page
|
67 |
+
if (count($ids) == 1 && strpos($ids[0], 'a') !== 0) {
|
68 |
+
$ids = array();
|
69 |
+
}
|
70 |
if (!empty($ds['original_album_entities'])) {
|
71 |
$breadcrumb_entities = $ds['original_album_entities'];
|
72 |
} else {
|
832 |
function _render_nextgen_basic_album_gallery_display_type_field($display_type)
|
833 |
{
|
834 |
$mapper = C_Display_Type_Mapper::get_instance();
|
835 |
+
// Disallow hidden or inactive display types
|
836 |
+
$types = $mapper->find_by_entity_type('image');
|
837 |
+
foreach ($types as $ndx => $type) {
|
838 |
+
if (!empty($type->hidden_from_ui) && $type->hidden_from_ui) {
|
839 |
+
unset($types[$ndx]);
|
840 |
+
}
|
841 |
+
}
|
842 |
+
return $this->render_partial('photocrati-nextgen_basic_album#nextgen_basic_album_gallery_display_type', array('display_type_name' => $display_type->name, 'gallery_display_type_label' => __('Display galleries as', 'nggallery'), 'gallery_display_type_help' => __('How would you like galleries to be displayed?', 'nggallery'), 'gallery_display_type' => $display_type->settings['gallery_display_type'], 'galleries_per_page_label' => __('Galleries per page', 'nggallery'), 'galleries_per_page' => $display_type->settings['galleries_per_page'], 'display_types' => $types), TRUE);
|
843 |
}
|
844 |
/**
|
845 |
* Renders the Galleries Per Page field
|
products/photocrati_nextgen/modules/nextgen_basic_album/templates/breadcrumbs.php
CHANGED
@@ -5,9 +5,9 @@
|
|
5 |
foreach ($breadcrumbs as $crumb) { ?>
|
6 |
<li class="ngg-breadcrumb">
|
7 |
<?php if (!is_null($crumb['url'])) { ?>
|
8 |
-
<a href="<?php echo $crumb['url']; ?>"><?php
|
9 |
<?php } else { ?>
|
10 |
-
<?php
|
11 |
<?php } ?>
|
12 |
<?php if ($crumb !== $end) { ?>
|
13 |
<span class="ngg-breadcrumb-divisor"><?php echo $divisor; ?></span>
|
5 |
foreach ($breadcrumbs as $crumb) { ?>
|
6 |
<li class="ngg-breadcrumb">
|
7 |
<?php if (!is_null($crumb['url'])) { ?>
|
8 |
+
<a href="<?php echo $crumb['url']; ?>"><?php print wp_kses($crumb['name'], M_I18N::get_kses_allowed_html()); ?></a>
|
9 |
<?php } else { ?>
|
10 |
+
<?php print wp_kses($crumb['name'], M_I18N::get_kses_allowed_html()); ?>
|
11 |
<?php } ?>
|
12 |
<?php if ($crumb !== $end) { ?>
|
13 |
<span class="ngg-breadcrumb-divisor"><?php echo $divisor; ?></span>
|
products/photocrati_nextgen/modules/nextgen_basic_album/templates/compact.php
CHANGED
@@ -34,7 +34,7 @@
|
|
34 |
$max_width = '';
|
35 |
} ?>
|
36 |
<h4>
|
37 |
-
<a class='ngg-album-desc' <?php echo $anchor; echo $max_width; ?>><?php
|
38 |
</h4>
|
39 |
<p class="ngg-album-gallery-image-counter">
|
40 |
<?php if (isset($gallery->counter) && $gallery->counter > 0) { ?>
|
34 |
$max_width = '';
|
35 |
} ?>
|
36 |
<h4>
|
37 |
+
<a class='ngg-album-desc' <?php echo $anchor; echo $max_width; ?>><?php print wp_kses($gallery->title, M_I18N::get_kses_allowed_html()); ?></a>
|
38 |
</h4>
|
39 |
<p class="ngg-album-gallery-image-counter">
|
40 |
<?php if (isset($gallery->counter) && $gallery->counter > 0) { ?>
|
products/photocrati_nextgen/modules/nextgen_basic_album/templates/descriptions.php
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
<?php if (!empty($description)) { ?>
|
2 |
-
<p><?php
|
3 |
<?php } ?>
|
1 |
<?php if (!empty($description)) { ?>
|
2 |
+
<p><?php print wp_kses($description, M_I18N::get_kses_allowed_html()); ?></p>
|
3 |
<?php } ?>
|
products/photocrati_nextgen/modules/nextgen_basic_album/templates/extended.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
} ?>
|
16 |
<div class="ngg-album">
|
17 |
<div class="ngg-albumtitle">
|
18 |
-
<a <?php echo $anchor; ?>><?php
|
19 |
</div>
|
20 |
<div class="ngg-albumcontent">
|
21 |
<div class="ngg-thumbnail">
|
@@ -26,7 +26,7 @@
|
|
26 |
</a>
|
27 |
</div>
|
28 |
<div class="ngg-description">
|
29 |
-
<p><?php
|
30 |
<?php if (isset($gallery->counter) && $gallery->counter > 0) { ?>
|
31 |
<p class="ngg-album-gallery-image-counter"><strong><?php echo $gallery->counter; ?></strong> <?php _e('Photos', 'nggallery'); ?></p>
|
32 |
<?php } ?>
|
15 |
} ?>
|
16 |
<div class="ngg-album">
|
17 |
<div class="ngg-albumtitle">
|
18 |
+
<a <?php echo $anchor; ?>><?php print wp_kses($gallery->title, M_I18N::get_kses_allowed_html()); ?></a>
|
19 |
</div>
|
20 |
<div class="ngg-albumcontent">
|
21 |
<div class="ngg-thumbnail">
|
26 |
</a>
|
27 |
</div>
|
28 |
<div class="ngg-description">
|
29 |
+
<p><?php print wp_kses($gallery->galdesc, M_I18N::get_kses_allowed_html()); ?></p>
|
30 |
<?php if (isset($gallery->counter) && $gallery->counter > 0) { ?>
|
31 |
<p class="ngg-album-gallery-image-counter"><strong><?php echo $gallery->counter; ?></strong> <?php _e('Photos', 'nggallery'); ?></p>
|
32 |
<?php } ?>
|
products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php
CHANGED
@@ -42,8 +42,8 @@ class A_NextGen_Basic_Gallery_Controller extends Mixin
|
|
42 |
*/
|
43 |
function get_url_for_alternate_display_type($displayed_gallery, $display_type, $origin_url = FALSE)
|
44 |
{
|
45 |
-
if (!$origin_url && !empty($displayed_gallery->display_settings['original_display_type']) && !empty($_SERVER['
|
46 |
-
$origin_url = $_SERVER['
|
47 |
}
|
48 |
$url = $origin_url ? $origin_url : $this->object->get_routed_url(TRUE);
|
49 |
$url = $this->object->remove_param_for($url, 'show', $displayed_gallery->id());
|
@@ -244,9 +244,8 @@ class A_NextGen_Basic_Slideshow_Controller extends Mixin
|
|
244 |
$gallery_height = $displayed_gallery->display_settings['gallery_height'];
|
245 |
$params['aspect_ratio'] = $gallery_width / $gallery_height;
|
246 |
$params['placeholder'] = $this->object->get_static_url('photocrati-nextgen_basic_gallery#slideshow/placeholder.gif');
|
247 |
-
//
|
248 |
-
|
249 |
-
if (!isset($params['display_settings']['cycle_effect']) or !$params['cycle_effect']) {
|
250 |
$params['cycle_effect'] = 'fade';
|
251 |
}
|
252 |
// Are we to generate a thumbnail link?
|
@@ -516,15 +515,13 @@ class A_NextGen_Basic_Thumbnails_Controller extends Mixin
|
|
516 |
}
|
517 |
// This setting 1) points all images to an imagebrowser display & 2) disables the lightbox effect
|
518 |
if ($display_settings['use_imagebrowser_effect']) {
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
// $effect_code = '';
|
527 |
-
$effect_code = "class='use_imagebrowser_effect'";
|
528 |
} else {
|
529 |
$effect_code = $this->object->get_effect_code($displayed_gallery);
|
530 |
}
|
@@ -577,4 +574,22 @@ class A_NextGen_Basic_Thumbnails_Controller extends Mixin
|
|
577 |
{
|
578 |
return $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails.js');
|
579 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
580 |
}
|
42 |
*/
|
43 |
function get_url_for_alternate_display_type($displayed_gallery, $display_type, $origin_url = FALSE)
|
44 |
{
|
45 |
+
if (!$origin_url && !empty($displayed_gallery->display_settings['original_display_type']) && !empty($_SERVER['NGG_ORIG_REQUEST_URI'])) {
|
46 |
+
$origin_url = $_SERVER['NGG_ORIG_REQUEST_URI'];
|
47 |
}
|
48 |
$url = $origin_url ? $origin_url : $this->object->get_routed_url(TRUE);
|
49 |
$url = $this->object->remove_param_for($url, 'show', $displayed_gallery->id());
|
244 |
$gallery_height = $displayed_gallery->display_settings['gallery_height'];
|
245 |
$params['aspect_ratio'] = $gallery_width / $gallery_height;
|
246 |
$params['placeholder'] = $this->object->get_static_url('photocrati-nextgen_basic_gallery#slideshow/placeholder.gif');
|
247 |
+
// This was not set correctly in previous versions
|
248 |
+
if (empty($params['cycle_effect'])) {
|
|
|
249 |
$params['cycle_effect'] = 'fade';
|
250 |
}
|
251 |
// Are we to generate a thumbnail link?
|
515 |
}
|
516 |
// This setting 1) points all images to an imagebrowser display & 2) disables the lightbox effect
|
517 |
if ($display_settings['use_imagebrowser_effect']) {
|
518 |
+
if (!empty($displayed_gallery->display_settings['original_display_type']) && !empty($_SERVER['NGG_ORIG_REQUEST_URI'])) {
|
519 |
+
$origin_url = $_SERVER['NGG_ORIG_REQUEST_URI'];
|
520 |
+
}
|
521 |
+
$url = !empty($origin_url) ? $origin_url : $this->object->get_routed_url(TRUE);
|
522 |
+
$url = $this->object->remove_param_for($url, 'image');
|
523 |
+
$url = $this->object->set_param_for($url, 'image', '%STUB%', NULL, FALSE);
|
524 |
+
$effect_code = "class='use_imagebrowser_effect' data-imagebrowser-url='{$url}'";
|
|
|
|
|
525 |
} else {
|
526 |
$effect_code = $this->object->get_effect_code($displayed_gallery);
|
527 |
}
|
574 |
{
|
575 |
return $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails.js');
|
576 |
}
|
577 |
+
/**
|
578 |
+
* Override to the MVC method, allows the above imagebrowser-url to return as image/23 instead of image--23
|
579 |
+
*
|
580 |
+
* @param $url
|
581 |
+
* @param $key
|
582 |
+
* @param $value
|
583 |
+
* @param null $id
|
584 |
+
* @param bool $use_prefix
|
585 |
+
* @return string
|
586 |
+
*/
|
587 |
+
function set_param_for($url, $key, $value, $id = NULL, $use_prefix = FALSE)
|
588 |
+
{
|
589 |
+
$retval = $this->call_parent('set_param_for', $url, $key, $value, $id, $use_prefix);
|
590 |
+
while (preg_match("#(image)--([^/]+)#", $retval, $matches)) {
|
591 |
+
$retval = str_replace($matches[0], $matches[1] . '/' . $matches[2], $retval);
|
592 |
+
}
|
593 |
+
return $retval;
|
594 |
+
}
|
595 |
}
|
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/thumbnails/nextgen_basic_thumbnails.js
CHANGED
@@ -7,10 +7,11 @@ jQuery(function($) {
|
|
7 |
var $this = $(this);
|
8 |
var image_id = $this.attr('data-image-id');
|
9 |
var image_slug = $this.attr('data-image-slug');
|
|
|
10 |
|
11 |
var url = window.location.toString();
|
12 |
url = url.split('/' + photocrati_ajax.ngg_param_slug + '/').shift();
|
13 |
-
if (url.substr(-1)
|
14 |
url = url.substr(0, url.length - 1);
|
15 |
|
16 |
image_id = image_slug ? image_slug : image_id;
|
@@ -22,6 +23,10 @@ jQuery(function($) {
|
|
22 |
}
|
23 |
|
24 |
if (success) {
|
|
|
|
|
|
|
|
|
25 |
// Custom permalinks are disabled. So we have to redirect to /index.php/nggallery/image/n?qs=1
|
26 |
if (photocrati_ajax.wp_root_url.indexOf('index.php') >= 0) {
|
27 |
url = photocrati_ajax.wp_root_url + "/" + photocrati_ajax.ngg_param_slug + "/image/" + image_id;
|
@@ -29,8 +34,9 @@ jQuery(function($) {
|
|
29 |
url += '?'+window.location.toString().split('?').pop();
|
30 |
} else {
|
31 |
// Just append the slug
|
32 |
-
url += "/"+photocrati_ajax.ngg_param_slug+"/image/"+image_id;
|
33 |
-
}
|
|
|
34 |
window.location = url;
|
35 |
}
|
36 |
});
|
7 |
var $this = $(this);
|
8 |
var image_id = $this.attr('data-image-id');
|
9 |
var image_slug = $this.attr('data-image-slug');
|
10 |
+
var image_url = $this.attr('data-imagebrowser-url');
|
11 |
|
12 |
var url = window.location.toString();
|
13 |
url = url.split('/' + photocrati_ajax.ngg_param_slug + '/').shift();
|
14 |
+
if (url.substr(-1) === '/')
|
15 |
url = url.substr(0, url.length - 1);
|
16 |
|
17 |
image_id = image_slug ? image_slug : image_id;
|
23 |
}
|
24 |
|
25 |
if (success) {
|
26 |
+
|
27 |
+
url = image_url.replace('%STUB%', image_id);
|
28 |
+
|
29 |
+
/* TODO: Remove this entire chunk. It should be unecessary.
|
30 |
// Custom permalinks are disabled. So we have to redirect to /index.php/nggallery/image/n?qs=1
|
31 |
if (photocrati_ajax.wp_root_url.indexOf('index.php') >= 0) {
|
32 |
url = photocrati_ajax.wp_root_url + "/" + photocrati_ajax.ngg_param_slug + "/image/" + image_id;
|
34 |
url += '?'+window.location.toString().split('?').pop();
|
35 |
} else {
|
36 |
// Just append the slug
|
37 |
+
url += "/" + photocrati_ajax.ngg_param_slug + "/image/" + image_id;
|
38 |
+
} */
|
39 |
+
|
40 |
window.location = url;
|
41 |
}
|
42 |
});
|
products/photocrati_nextgen/modules/nextgen_basic_gallery/static/thumbnails/nextgen_basic_thumbnails.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(t){var a=function(){var a=t("a.use_imagebrowser_effect");a.click(function(a){a.preventDefault();var i=!0,
|
1 |
+
jQuery(function(t){var a=function(){var a=t("a.use_imagebrowser_effect");a.click(function(a){a.preventDefault();var i=!0,n=t(this),e=n.attr("data-image-id"),r=n.attr("data-image-slug"),o=n.attr("data-imagebrowser-url"),c=window.location.toString();c=c.split("/"+photocrati_ajax.ngg_param_slug+"/").shift(),"/"===c.substr(-1)&&(c=c.substr(0,c.length-1)),e=r?r:e;try{e||(e=parseInt(n.parents(".ngg-gallery-thumbnail-box").attr("id").match(/\d+/).join("")))}catch(t){i=!1}i&&(c=o.replace("%STUB%",e),window.location=c)}),a.length>0&&setTimeout(function(){a.each(function(){this.onclick=null})},200)};t(this).bind("refreshed",a),a()});
|
products/photocrati_nextgen/modules/nextgen_basic_gallery/templates/thumbnails/index.php
CHANGED
@@ -48,6 +48,7 @@ $this->start_element('nextgen_gallery.gallery_container', 'container', $displaye
|
|
48 |
data-image-id="<?php echo esc_attr($image->{$image->id_field}); ?>"
|
49 |
data-title="<?php echo esc_attr($image->alttext); ?>"
|
50 |
data-description="<?php echo esc_attr(stripslashes($image->description)); ?>"
|
|
|
51 |
<?php echo $effect_code ?>>
|
52 |
<img
|
53 |
title="<?php echo esc_attr($image->alttext)?>"
|
48 |
data-image-id="<?php echo esc_attr($image->{$image->id_field}); ?>"
|
49 |
data-title="<?php echo esc_attr($image->alttext); ?>"
|
50 |
data-description="<?php echo esc_attr(stripslashes($image->description)); ?>"
|
51 |
+
data-image-slug="<?php echo esc_attr($image->image_slug); ?>"
|
52 |
<?php echo $effect_code ?>>
|
53 |
<img
|
54 |
title="<?php echo esc_attr($image->alttext)?>"
|
products/photocrati_nextgen/modules/nextgen_basic_imagebrowser/templates/imagebrowser-simple-template.php
CHANGED
@@ -56,7 +56,7 @@
|
|
56 |
|
57 |
<div class='ngg-imagebrowser-desc'>
|
58 |
<p>
|
59 |
-
<?php
|
60 |
</p>
|
61 |
</div>
|
62 |
|
56 |
|
57 |
<div class='ngg-imagebrowser-desc'>
|
58 |
<p>
|
59 |
+
<?php print wp_kses($image->description, M_I18N::get_kses_allowed_html()); ?>
|
60 |
</p>
|
61 |
</div>
|
62 |
|
products/photocrati_nextgen/modules/nextgen_basic_tagcloud/module.nextgen_basic_tagcloud.php
CHANGED
@@ -104,7 +104,8 @@ class M_NextGen_Basic_Tagcloud extends C_Base_Module
|
|
104 |
'the_posts',
|
105 |
array(
|
106 |
C_Taxonomy_Controller::get_instance(),
|
107 |
-
'detect_ngg_tag'
|
|
|
108 |
-10,
|
109 |
2
|
110 |
);
|
104 |
'the_posts',
|
105 |
array(
|
106 |
C_Taxonomy_Controller::get_instance(),
|
107 |
+
'detect_ngg_tag'
|
108 |
+
),
|
109 |
-10,
|
110 |
2
|
111 |
);
|
products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php
CHANGED
@@ -104,8 +104,8 @@ class A_NextGen_Basic_Tagcloud_Form extends Mixin_Display_Type_Form
|
|
104 |
{
|
105 |
$types = array();
|
106 |
$skip_types = array(NGG_BASIC_TAGCLOUD, NGG_BASIC_SINGLEPIC, NGG_BASIC_COMPACT_ALBUM, NGG_BASIC_EXTENDED_ALBUM);
|
107 |
-
if (!
|
108 |
-
$display_type->settings['gallery_display_type'] =
|
109 |
}
|
110 |
$skip_types = apply_filters('ngg_basic_tagcloud_excluded_display_types', $skip_types);
|
111 |
$mapper = C_Display_Type_Mapper::get_instance();
|
@@ -114,6 +114,9 @@ class A_NextGen_Basic_Tagcloud_Form extends Mixin_Display_Type_Form
|
|
114 |
if (in_array($dt->name, $skip_types)) {
|
115 |
continue;
|
116 |
}
|
|
|
|
|
|
|
117 |
$types[$dt->name] = $dt->title;
|
118 |
}
|
119 |
return $this->_render_select_field($display_type, 'gallery_display_type', __('Display type', 'nggallery'), $types, $display_type->settings['gallery_display_type'], __('The display type that the tagcloud will point its results to', 'nggallery'));
|
@@ -267,6 +270,8 @@ class C_Taxonomy_Controller extends C_MVC_Controller
|
|
267 |
}
|
268 |
if ($wp_query_orig !== false) {
|
269 |
$wp_query = $wp_query_orig;
|
|
|
|
|
270 |
}
|
271 |
return $posts;
|
272 |
}
|
104 |
{
|
105 |
$types = array();
|
106 |
$skip_types = array(NGG_BASIC_TAGCLOUD, NGG_BASIC_SINGLEPIC, NGG_BASIC_COMPACT_ALBUM, NGG_BASIC_EXTENDED_ALBUM);
|
107 |
+
if (empty($display_type->settings['gallery_display_type']) && !empty($display_type->settings['gallery_type'])) {
|
108 |
+
$display_type->settings['gallery_display_type'] = $display_type->settings['display_type'];
|
109 |
}
|
110 |
$skip_types = apply_filters('ngg_basic_tagcloud_excluded_display_types', $skip_types);
|
111 |
$mapper = C_Display_Type_Mapper::get_instance();
|
114 |
if (in_array($dt->name, $skip_types)) {
|
115 |
continue;
|
116 |
}
|
117 |
+
if (!empty($dt->hidden_from_ui)) {
|
118 |
+
continue;
|
119 |
+
}
|
120 |
$types[$dt->name] = $dt->title;
|
121 |
}
|
122 |
return $this->_render_select_field($display_type, 'gallery_display_type', __('Display type', 'nggallery'), $types, $display_type->settings['gallery_display_type'], __('The display type that the tagcloud will point its results to', 'nggallery'));
|
270 |
}
|
271 |
if ($wp_query_orig !== false) {
|
272 |
$wp_query = $wp_query_orig;
|
273 |
+
$wp_query->is_page = FALSE;
|
274 |
+
// Prevents comments from displaying on our taxonomy 'page'
|
275 |
}
|
276 |
return $posts;
|
277 |
}
|
products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php
CHANGED
@@ -22,7 +22,7 @@ class M_NextGen_Data extends C_Base_Module
|
|
22 |
'photocrati-nextgen-data',
|
23 |
'NextGEN Data Tier',
|
24 |
"Provides a data tier for NextGEN gallery based on the DataMapper module",
|
25 |
-
'0.
|
26 |
'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
|
27 |
'Imagely',
|
28 |
'https://www.imagely.com'
|
22 |
'photocrati-nextgen-data',
|
23 |
'NextGEN Data Tier',
|
24 |
"Provides a data tier for NextGEN gallery based on the DataMapper module",
|
25 |
+
'0.15',
|
26 |
'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
|
27 |
'Imagely',
|
28 |
'https://www.imagely.com'
|
products/photocrati_nextgen/modules/nextgen_data/package.module.nextgen_data.php
CHANGED
@@ -1210,8 +1210,8 @@ class Mixin_GalleryStorage_Driver_Base extends Mixin
|
|
1210 |
if ($image_id = $this->object->_image_mapper->save($image)) {
|
1211 |
try {
|
1212 |
// Try writing the image
|
1213 |
-
$fp = fopen($abs_filename, '
|
1214 |
-
fwrite($fp, $data);
|
1215 |
fclose($fp);
|
1216 |
if ($settings->imgBackup) {
|
1217 |
$this->object->backup_image($image);
|
@@ -1255,6 +1255,18 @@ class Mixin_GalleryStorage_Driver_Base extends Mixin
|
|
1255 |
}
|
1256 |
return $retval;
|
1257 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1258 |
function import_gallery_from_fs($abspath, $gallery_id = FALSE, $create_new_gallerypath = TRUE, $gallery_title = NULL, $filenames = array())
|
1259 |
{
|
1260 |
$retval = FALSE;
|
@@ -2611,11 +2623,8 @@ class C_NextGen_Metadata extends C_Component
|
|
2611 |
function get_saved_meta($object = false)
|
2612 |
{
|
2613 |
$meta = $this->image->meta_data;
|
2614 |
-
if
|
2615 |
-
|
2616 |
-
}
|
2617 |
-
//check if we already import the meta data to the database
|
2618 |
-
if (!is_array($meta) || $meta['saved'] != true) {
|
2619 |
return false;
|
2620 |
}
|
2621 |
// return one element if requested
|
1210 |
if ($image_id = $this->object->_image_mapper->save($image)) {
|
1211 |
try {
|
1212 |
// Try writing the image
|
1213 |
+
$fp = fopen($abs_filename, 'wb');
|
1214 |
+
fwrite($fp, $this->maybe_base64_decode($data));
|
1215 |
fclose($fp);
|
1216 |
if ($settings->imgBackup) {
|
1217 |
$this->object->backup_image($image);
|
1255 |
}
|
1256 |
return $retval;
|
1257 |
}
|
1258 |
+
function maybe_base64_decode($data)
|
1259 |
+
{
|
1260 |
+
$decoded = base64_decode($data);
|
1261 |
+
if ($decoded === FALSE) {
|
1262 |
+
return $data;
|
1263 |
+
} else {
|
1264 |
+
if (base64_encode($decoded) == $data) {
|
1265 |
+
return base64_decode($data);
|
1266 |
+
}
|
1267 |
+
}
|
1268 |
+
return $data;
|
1269 |
+
}
|
1270 |
function import_gallery_from_fs($abspath, $gallery_id = FALSE, $create_new_gallerypath = TRUE, $gallery_title = NULL, $filenames = array())
|
1271 |
{
|
1272 |
$retval = FALSE;
|
2623 |
function get_saved_meta($object = false)
|
2624 |
{
|
2625 |
$meta = $this->image->meta_data;
|
2626 |
+
// Check if we already import the meta data to the database
|
2627 |
+
if (!is_array($meta) || !isset($meta['saved']) || $meta['saved'] !== TRUE) {
|
|
|
|
|
|
|
2628 |
return false;
|
2629 |
}
|
2630 |
// return one element if requested
|
products/photocrati_nextgen/modules/nextgen_pro_upgrade/module.nextgen_pro_upgrade.php
CHANGED
@@ -21,7 +21,7 @@ class M_NextGen_Pro_Upgrade extends C_Base_Module
|
|
21 |
'photocrati-nextgen_pro_upgrade',
|
22 |
'NextGEN Pro Page',
|
23 |
'NextGEN Gallery Pro Upgrade Page',
|
24 |
-
'0.
|
25 |
'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
|
26 |
'Imagely',
|
27 |
'https://www.imagely.com'
|
21 |
'photocrati-nextgen_pro_upgrade',
|
22 |
'NextGEN Pro Page',
|
23 |
'NextGEN Gallery Pro Upgrade Page',
|
24 |
+
'0.8',
|
25 |
'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
|
26 |
'Imagely',
|
27 |
'https://www.imagely.com'
|
products/photocrati_nextgen/modules/nextgen_pro_upgrade/package.module.nextgen_pro_upgrade.php
CHANGED
@@ -48,14 +48,13 @@ class A_NextGen_Pro_Upgrade_Controller extends Mixin
|
|
48 |
function get_i18n_strings()
|
49 |
{
|
50 |
$i18n = new stdClass();
|
51 |
-
$i18n->plus_title = __('
|
52 |
-
$i18n->pro_title = __('
|
53 |
-
$i18n->plus_desc_first = __('Introducing the most powerful gallery system ever made for WordPress.', 'nggallery');
|
54 |
-
$i18n->
|
55 |
-
$i18n->
|
56 |
-
$i18n->plus_button = __('
|
57 |
-
$i18n->pro_button = __('Learn More
|
58 |
-
$i18n->click = __('CLICK TO LEARN MORE:', 'nggallery');
|
59 |
return $i18n;
|
60 |
}
|
61 |
function index_action()
|
48 |
function get_i18n_strings()
|
49 |
{
|
50 |
$i18n = new stdClass();
|
51 |
+
$i18n->plus_title = __('Setting a New Standard for WordPress Galleries', 'nggallery');
|
52 |
+
$i18n->pro_title = __('Sell Photos + Adobe Lightroom', 'nggallery');
|
53 |
+
$i18n->plus_desc_first = __('Introducing the most powerful gallery system ever made for WordPress. Watch our 30 second video, or click below to learn more about NextGEN premium extensions and support.', 'nggallery');
|
54 |
+
$i18n->pro_desc = __('You\'re awesome! You\'ve already got NextGEN Plus. But why not go all the way? With NextGEN Pro, you can sell print and digital downloads, provide proofing galleries for clients, manage galleries directly from Adobe Lightroom, and more.', 'nggallery');
|
55 |
+
$i18n->video = __('Psst...watch the video ->', 'nggallery');
|
56 |
+
$i18n->plus_button = __('Get Premium Extensions', 'nggallery');
|
57 |
+
$i18n->pro_button = __('Learn More', 'nggallery');
|
|
|
58 |
return $i18n;
|
59 |
}
|
60 |
function index_action()
|
products/photocrati_nextgen/modules/nextgen_pro_upgrade/static/style.css
CHANGED
@@ -1,20 +1,89 @@
|
|
1 |
-
#
|
2 |
-
|
|
|
3 |
}
|
4 |
|
5 |
-
#nextgen_pro_upgrade_page
|
6 |
-
|
7 |
-
margin: 1em;
|
8 |
}
|
9 |
|
10 |
-
#nextgen_pro_upgrade_page
|
11 |
-
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
}
|
14 |
|
15 |
#nextgen_pro_upgrade_page a.button-primary {
|
16 |
-
font-size:
|
17 |
-
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.gallery_page_ngg_pro_upgrade #update-nag,
|
2 |
+
.gallery_page_ngg_pro_upgrade .update-nag {
|
3 |
+
display:none;
|
4 |
}
|
5 |
|
6 |
+
#nextgen_pro_upgrade_page {
|
7 |
+
max-width: none;
|
|
|
8 |
}
|
9 |
|
10 |
+
#nextgen_pro_upgrade_page h1 {
|
11 |
+
margin: 40px 0 20px;
|
12 |
+
}
|
13 |
+
|
14 |
+
#nextgen_pro_upgrade_page p {
|
15 |
+
min-height: auto;
|
16 |
+
margin: 30px 0;
|
17 |
+
max-width: none;
|
18 |
+
color: #999;
|
19 |
+
width: 35%;
|
20 |
+
float: left;
|
21 |
+
max-width: 400px;
|
22 |
+
box-sizing: border-box;
|
23 |
+
font-size: 22px;
|
24 |
+
}
|
25 |
+
|
26 |
+
#nextgen_pro_upgrade_page p span {
|
27 |
+
font-family: Brush Script MT;
|
28 |
+
color: #d5d5d5;
|
29 |
+
font-size: 34px;
|
30 |
+
text-align: right;
|
31 |
+
width: 100%;
|
32 |
+
display: block;
|
33 |
+
margin-top: 60px;
|
34 |
+
}
|
35 |
+
|
36 |
+
#nextgen_pro_upgrade_page.nextgen_plus p span {
|
37 |
+
margin-top: 30px;
|
38 |
+
}
|
39 |
+
|
40 |
+
#nextgen_pro_upgrade_page .feature-section {
|
41 |
+
float: left;
|
42 |
+
width: 60%;
|
43 |
+
margin-top: 15px;
|
44 |
+
box-sizing: border-box;
|
45 |
+
margin-left: 30px;
|
46 |
+
padding: 0;
|
47 |
+
border: 1px solid #eee;
|
48 |
+
}
|
49 |
+
|
50 |
+
#nextgen_pro_upgrade_page iframe {
|
51 |
+
height: 450px;
|
52 |
+
width: 800px;
|
53 |
+
max-width: 100%;
|
54 |
}
|
55 |
|
56 |
#nextgen_pro_upgrade_page a.button-primary {
|
57 |
+
font-size: 14px;
|
58 |
+
background-color: #76a934;
|
59 |
+
border: none;
|
60 |
+
box-shadow: none;
|
61 |
+
text-transform: uppercase;
|
62 |
+
height: 50px;
|
63 |
+
width: 300px;
|
64 |
+
max-width: 100%;
|
65 |
+
padding: 12px 22px;
|
66 |
+
text-shadow: none;
|
67 |
+
text-align: center;
|
68 |
+
margin: 40px 0 60px;
|
69 |
+
font-weight: bold;
|
70 |
}
|
71 |
+
|
72 |
+
@media (max-width: 1150px) {
|
73 |
+
#nextgen_pro_upgrade_page p span {
|
74 |
+
display: none;
|
75 |
+
}
|
76 |
+
#nextgen_pro_upgrade_page p {
|
77 |
+
width: 100%;
|
78 |
+
max-width: 100%;
|
79 |
+
float: none;
|
80 |
+
}
|
81 |
+
#nextgen_pro_upgrade_page .feature-section {
|
82 |
+
float: none;
|
83 |
+
width: 100%;
|
84 |
+
margin-left: 0;
|
85 |
+
}
|
86 |
+
#nextgen_pro_upgrade_page a.button-primary {
|
87 |
+
margin: 40px 0;
|
88 |
+
}
|
89 |
+
}
|
products/photocrati_nextgen/modules/nextgen_pro_upgrade/static/style.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#
|
1 |
+
.gallery_page_ngg_pro_upgrade #update-nag,.gallery_page_ngg_pro_upgrade .update-nag{display:none}#nextgen_pro_upgrade_page{max-width:none}#nextgen_pro_upgrade_page h1{margin:40px 0 20px}#nextgen_pro_upgrade_page p{min-height:auto;margin:30px 0;color:#999;width:35%;float:left;max-width:400px;box-sizing:border-box;font-size:22px}#nextgen_pro_upgrade_page p span{font-family:Brush Script MT;color:#d5d5d5;font-size:34px;text-align:right;width:100%;display:block;margin-top:60px}#nextgen_pro_upgrade_page.nextgen_plus p span{margin-top:30px}#nextgen_pro_upgrade_page .feature-section{float:left;width:60%;margin-top:15px;box-sizing:border-box;margin-left:30px;padding:0;border:1px solid #eee}#nextgen_pro_upgrade_page iframe{height:450px;width:800px;max-width:100%}#nextgen_pro_upgrade_page a.button-primary{font-size:14px;background-color:#76a934;border:none;box-shadow:none;text-transform:uppercase;height:50px;width:300px;max-width:100%;padding:12px 22px;text-shadow:none;text-align:center;margin:40px 0 60px;font-weight:700}@media (max-width:1150px){#nextgen_pro_upgrade_page p span{display:none}#nextgen_pro_upgrade_page p{width:100%;max-width:100%;float:none}#nextgen_pro_upgrade_page .feature-section{float:none;width:100%;margin-left:0}#nextgen_pro_upgrade_page a.button-primary{margin:40px 0}}
|
products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/plus.php
CHANGED
@@ -1,21 +1,12 @@
|
|
1 |
<div id='nextgen_pro_upgrade_page' class="wrap about-wrap">
|
2 |
-
<h1
|
3 |
-
<p class="about-text
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
<a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-plus/' target='_blank' class="button-primary"><?php esc_html_e($i18n->plus_button); ?></a>
|
12 |
-
</p>
|
13 |
-
</div>
|
14 |
-
<div class="col">
|
15 |
-
<a href="https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/" target="_blank"><img src="https://f001.backblaze.com/file/nextgen-gallery/nextgen-pro-ngg.jpg"></a>
|
16 |
-
<p class="about-text centered">
|
17 |
-
<a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/' target='_blank' class="button-primary"><?php esc_html_e($i18n->pro_button); ?></a>
|
18 |
-
</p>
|
19 |
-
</div>
|
20 |
</div>
|
21 |
</div>
|
1 |
<div id='nextgen_pro_upgrade_page' class="wrap about-wrap">
|
2 |
+
<h1><?php esc_html_e($i18n->plus_title); ?></h1>
|
3 |
+
<p class="about-text">
|
4 |
+
<?php esc_html_e($i18n->plus_desc_first); ?><br>
|
5 |
+
<a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/?utm_source=ngg&utm_medium=ngguser&utm_campaign=ngpro' target='_blank' class="button-primary"><?php esc_html_e($i18n->plus_button); ?></a><br>
|
6 |
+
<span><?php esc_html_e($i18n->video); ?></span>
|
7 |
+
</p>
|
8 |
+
|
9 |
+
<div class="feature-section">
|
10 |
+
<iframe src="https://www.youtube.com/embed/zmA-b_jiXN0" frameborder="0" allowfullscreen></iframe>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
</div>
|
12 |
</div>
|
products/photocrati_nextgen/modules/nextgen_pro_upgrade/templates/pro.php
CHANGED
@@ -1,12 +1,14 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
<
|
4 |
-
<
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
<p class="about-text centered">
|
9 |
-
<a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/' target='_blank' class="button-primary"><?php esc_html_e($i18n->pro_button); ?></a>
|
10 |
</p>
|
|
|
|
|
|
|
11 |
</div>
|
12 |
|
|
1 |
+
|
2 |
+
<div id='nextgen_pro_upgrade_page' class="wrap about-wrap nextgen_plus">
|
3 |
+
<h1><?php esc_html_e($i18n->pro_title); ?></h1>
|
4 |
+
<p class="about-text">
|
5 |
+
<?php esc_html_e($i18n->pro_desc); ?><br>
|
6 |
+
<a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/' target='_blank' class="button-primary"><?php esc_html_e($i18n->pro_button); ?></a><br>
|
7 |
+
<span><?php esc_html_e($i18n->video); ?></span>
|
|
|
|
|
8 |
</p>
|
9 |
+
<div class="feature-section">
|
10 |
+
<iframe src="https://www.youtube.com/embed/zmA-b_jiXN0" frameborder="0" allowfullscreen></iframe>
|
11 |
+
</div>
|
12 |
</div>
|
13 |
|
14 |
+
|
products/photocrati_nextgen/modules/nextgen_xmlrpc/package.module.nextgen_xmlrpc.php
CHANGED
@@ -7,6 +7,8 @@
|
|
7 |
class A_NextGen_API_Ajax extends Mixin
|
8 |
{
|
9 |
var $nextgen_api = NULL;
|
|
|
|
|
10 |
function get_nextgen_api()
|
11 |
{
|
12 |
if (is_null($this->nextgen_api)) {
|
@@ -105,7 +107,7 @@ class A_NextGen_API_Ajax extends Mixin
|
|
105 |
break;
|
106 |
case 'gallery_remove':
|
107 |
case 'gallery_edit':
|
108 |
-
$query_id = $api->get_query_id($task_query['id']);
|
109 |
$gallery = null;
|
110 |
// The old NextGEN XMLRPC API had this logic so replicating it here for safety
|
111 |
if ($query_id) {
|
@@ -137,13 +139,26 @@ class A_NextGen_API_Ajax extends Mixin
|
|
137 |
$task_item['auth'] = $task_auth ? 'allow' : 'forbid';
|
138 |
}
|
139 |
if ($task_count == $auth_count) {
|
140 |
-
$job_id = $api->add_job(array('user' => $user_obj->ID), $app_config, $task_list);
|
141 |
if ($job_id != null) {
|
|
|
142 |
$handler_delay = defined('NGG_API_JOB_HANDLER_DELAY') ? intval(NGG_API_JOB_HANDLER_DELAY) : 0;
|
143 |
$handler_delay = $handler_delay > 0 ? $handler_delay : 30;
|
144 |
/* in seconds */
|
145 |
$response['result'] = 'ok';
|
146 |
-
$response['result_object'] = array('job_id' => $job_id, 'job_handler_url' => home_url('
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
} else {
|
148 |
$response['result'] = 'error';
|
149 |
$response['error'] = array('code' => C_NextGen_API::ERR_JOB_NOT_ADDED, 'message' => __('Job could not be added.', 'nggallery'));
|
@@ -162,6 +177,28 @@ class A_NextGen_API_Ajax extends Mixin
|
|
162 |
}
|
163 |
return $response;
|
164 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
function execute_nextgen_api_task_list_action()
|
166 |
{
|
167 |
$api = $this->get_nextgen_api();
|
@@ -172,19 +209,27 @@ class A_NextGen_API_Ajax extends Mixin
|
|
172 |
$response['info'] = array('code' => C_NextGen_API::INFO_EXECUTION_LOCKED, 'message' => __('Job execution is locked.', 'nggallery'));
|
173 |
} else {
|
174 |
if ($job_list != null) {
|
175 |
-
$
|
176 |
$job_count = count($job_list);
|
177 |
$done_count = 0;
|
|
|
178 |
foreach ($job_list as $job) {
|
179 |
-
$
|
|
|
|
|
180 |
if ($result) {
|
181 |
$done_count++;
|
|
|
|
|
|
|
|
|
|
|
182 |
}
|
183 |
if ($api->should_stop_execution()) {
|
184 |
break;
|
185 |
}
|
186 |
}
|
187 |
-
$
|
188 |
if ($done_count == $job_count) {
|
189 |
$response['result'] = 'ok';
|
190 |
$response['info'] = array('code' => C_NextGen_API::INFO_JOB_LIST_FINISHED, 'message' => __('Job list is finished.', 'nggallery'));
|
@@ -192,6 +237,9 @@ class A_NextGen_API_Ajax extends Mixin
|
|
192 |
$response['result'] = 'ok';
|
193 |
$response['info'] = array('code' => C_NextGen_API::INFO_JOB_LIST_UNFINISHED, 'message' => __('Job list is unfinished.', 'nggallery'));
|
194 |
}
|
|
|
|
|
|
|
195 |
} else {
|
196 |
$response['result'] = 'ok';
|
197 |
$response['info'] = array('code' => C_NextGen_API::INFO_NO_JOB_LIST, 'message' => __('Job list is empty.', 'nggallery'));
|
@@ -207,7 +255,7 @@ class A_NextGen_API_Ajax extends Mixin
|
|
207 |
class C_NextGen_API extends C_Component
|
208 |
{
|
209 |
const CRON_KEY = 'nextgen.api.task_list';
|
210 |
-
/* NOTE: these constants' numeric values
|
211 |
const ERR_NO_TASK_LIST = 1001;
|
212 |
const ERR_NOT_AUTHENTICATED = 1002;
|
213 |
const ERR_NOT_AUTHORIZED = 1003;
|
@@ -275,7 +323,7 @@ class C_NextGen_API extends C_Component
|
|
275 |
while (isset($job_list[$job_id])) {
|
276 |
$job_id = uniqid();
|
277 |
}
|
278 |
-
$job = array('id' => $job_id, 'data' => $job_data, 'app_config' => $app_config, 'task_list' => $task_list);
|
279 |
$job_list[$job_id] = $job;
|
280 |
update_option('ngg_api_job_list', $job_list);
|
281 |
return $job_id;
|
@@ -330,11 +378,11 @@ class C_NextGen_API extends C_Component
|
|
330 |
}
|
331 |
return false;
|
332 |
}
|
333 |
-
function
|
334 |
{
|
335 |
$job = $this->get_job($job_id);
|
336 |
if ($job != null) {
|
337 |
-
return $job['
|
338 |
}
|
339 |
return null;
|
340 |
}
|
@@ -407,7 +455,7 @@ class C_NextGen_API extends C_Component
|
|
407 |
$task_id = $id;
|
408 |
if (is_object($task_id) || is_array($task_id)) {
|
409 |
$id = null;
|
410 |
-
// it was specified that the query ID is referencing the
|
411 |
if (isset($task_id['target']) && $task_id['target'] == 'task') {
|
412 |
if (isset($task_id['id']) && isset($task_list[$task_id['id']])) {
|
413 |
$target_task = $task_list[$task_id['id']];
|
@@ -437,6 +485,7 @@ class C_NextGen_API extends C_Component
|
|
437 |
}
|
438 |
return $id;
|
439 |
}
|
|
|
440 |
function handle_job($job_id, $job_data, $app_config, $task_list)
|
441 |
{
|
442 |
$job_user = $job_data['user'];
|
@@ -468,7 +517,12 @@ class C_NextGen_API extends C_Component
|
|
468 |
$wp_fs = $GLOBALS['wp_filesystem'];
|
469 |
$path_prefix = $full_path;
|
470 |
if ($wp_fs->method === 'direct') {
|
471 |
-
|
|
|
|
|
|
|
|
|
|
|
472 |
}
|
473 |
}
|
474 |
foreach ($task_list as &$task_item) {
|
@@ -830,8 +884,7 @@ class C_NextGen_API extends C_Component
|
|
830 |
// unfinished tasks, return false
|
831 |
return false;
|
832 |
} else {
|
833 |
-
// everything was finished,
|
834 |
-
$this->remove_job($job_id);
|
835 |
$status_file = '_ngg_job_status_' . strval($job_id) . '.txt';
|
836 |
$status_content = json_encode($task_list);
|
837 |
if ($wp_fs != null) {
|
@@ -1012,7 +1065,7 @@ class C_NextGen_API_XMLRPC extends C_Component
|
|
1012 |
*
|
1013 |
* Data is an assoc array:
|
1014 |
* o string name
|
1015 |
-
*
|
1016 |
* o base64 bits
|
1017 |
* o bool overwrite (optional)
|
1018 |
* o int gallery
|
@@ -1033,6 +1086,9 @@ class C_NextGen_API_XMLRPC extends C_Component
|
|
1033 |
if (!isset($data['overwrite'])) {
|
1034 |
$data['overwrite'] = FALSE;
|
1035 |
}
|
|
|
|
|
|
|
1036 |
$data['override'] = $data['overwrite'];
|
1037 |
// Authenticate the user
|
1038 |
if ($this->_login($username, $password, $blog_id)) {
|
@@ -1043,22 +1099,27 @@ class C_NextGen_API_XMLRPC extends C_Component
|
|
1043 |
if ($this->_can_manage_gallery($gallery, TRUE)) {
|
1044 |
// Upload the image
|
1045 |
$storage = C_Gallery_Storage::get_instance();
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
|
|
|
|
|
|
|
|
1056 |
}
|
1057 |
} else {
|
1058 |
-
$retval = new IXR_Error(403, "You don't have permission to upload to gallery #{$
|
1059 |
}
|
1060 |
} else {
|
1061 |
-
|
|
|
1062 |
}
|
1063 |
}
|
1064 |
return $retval;
|
7 |
class A_NextGen_API_Ajax extends Mixin
|
8 |
{
|
9 |
var $nextgen_api = NULL;
|
10 |
+
var $_nextgen_api_locked = false;
|
11 |
+
var $_shutdown_registered = false;
|
12 |
function get_nextgen_api()
|
13 |
{
|
14 |
if (is_null($this->nextgen_api)) {
|
107 |
break;
|
108 |
case 'gallery_remove':
|
109 |
case 'gallery_edit':
|
110 |
+
$query_id = $api->get_query_id($task_query['id'], $task_list);
|
111 |
$gallery = null;
|
112 |
// The old NextGEN XMLRPC API had this logic so replicating it here for safety
|
113 |
if ($query_id) {
|
139 |
$task_item['auth'] = $task_auth ? 'allow' : 'forbid';
|
140 |
}
|
141 |
if ($task_count == $auth_count) {
|
142 |
+
$job_id = $api->add_job(array('user' => $user_obj->ID, 'clientid' => $this->object->param('clientid')), $app_config, $task_list);
|
143 |
if ($job_id != null) {
|
144 |
+
$post_back = $api->get_job_post_back($job_id);
|
145 |
$handler_delay = defined('NGG_API_JOB_HANDLER_DELAY') ? intval(NGG_API_JOB_HANDLER_DELAY) : 0;
|
146 |
$handler_delay = $handler_delay > 0 ? $handler_delay : 30;
|
147 |
/* in seconds */
|
148 |
$response['result'] = 'ok';
|
149 |
+
$response['result_object'] = array('job_id' => $job_id, 'job_post_back' => $post_back, 'job_handler_url' => home_url('?photocrati_ajax=1&action=execute_nextgen_api_task_list'), 'job_handler_delay' => $handler_delay);
|
150 |
+
if (!defined('NGG_API_SUPPRESS_QUICK_EXECUTE') || NGG_API_SUPPRESS_QUICK_EXECUTE == false) {
|
151 |
+
if (!$api->is_execution_locked()) {
|
152 |
+
$this->_start_locked_execute();
|
153 |
+
$result = $api->handle_job($job_id, $api->get_job_data($job_id), $app_config, $api->get_job_task_list($job_id));
|
154 |
+
if ($result) {
|
155 |
+
$response['result_object']['job_result'] = $api->get_job_task_list($job_id);
|
156 |
+
// everything was finished, remove job
|
157 |
+
$api->remove_job($job_id);
|
158 |
+
}
|
159 |
+
$this->_stop_locked_execute();
|
160 |
+
}
|
161 |
+
}
|
162 |
} else {
|
163 |
$response['result'] = 'error';
|
164 |
$response['error'] = array('code' => C_NextGen_API::ERR_JOB_NOT_ADDED, 'message' => __('Job could not be added.', 'nggallery'));
|
177 |
}
|
178 |
return $response;
|
179 |
}
|
180 |
+
function _do_shutdown()
|
181 |
+
{
|
182 |
+
if ($this->_nextgen_api_locked) {
|
183 |
+
$this->get_nextgen_api()->set_execution_locked(false);
|
184 |
+
}
|
185 |
+
}
|
186 |
+
function _start_locked_execute()
|
187 |
+
{
|
188 |
+
$api = $this->get_nextgen_api();
|
189 |
+
if (!$this->_shutdown_registered) {
|
190 |
+
register_shutdown_function(array($this, '_do_shutdown'));
|
191 |
+
$this->_shutdown_registered = true;
|
192 |
+
}
|
193 |
+
$api->set_execution_locked(true);
|
194 |
+
$this->_nextgen_api_locked = true;
|
195 |
+
}
|
196 |
+
function _stop_locked_execute()
|
197 |
+
{
|
198 |
+
$api = $this->get_nextgen_api();
|
199 |
+
$api->set_execution_locked(false);
|
200 |
+
$this->_nextgen_api_locked = false;
|
201 |
+
}
|
202 |
function execute_nextgen_api_task_list_action()
|
203 |
{
|
204 |
$api = $this->get_nextgen_api();
|
209 |
$response['info'] = array('code' => C_NextGen_API::INFO_EXECUTION_LOCKED, 'message' => __('Job execution is locked.', 'nggallery'));
|
210 |
} else {
|
211 |
if ($job_list != null) {
|
212 |
+
$this->_start_locked_execute();
|
213 |
$job_count = count($job_list);
|
214 |
$done_count = 0;
|
215 |
+
$client_result = array();
|
216 |
foreach ($job_list as $job) {
|
217 |
+
$job_id = $job['id'];
|
218 |
+
$job_data = $job['data'];
|
219 |
+
$result = $api->handle_job($job_id, $job_data, $job['app_config'], $job['task_list']);
|
220 |
if ($result) {
|
221 |
$done_count++;
|
222 |
+
if (isset($job_data['clientid']) && $job_data['clientid'] == $this->object->param('clientid')) {
|
223 |
+
$client_result[$job_id] = $api->get_job_task_list($job_id);
|
224 |
+
}
|
225 |
+
// everything was finished, remove job
|
226 |
+
$api->remove_job($job_id);
|
227 |
}
|
228 |
if ($api->should_stop_execution()) {
|
229 |
break;
|
230 |
}
|
231 |
}
|
232 |
+
$this->_stop_locked_execute();
|
233 |
if ($done_count == $job_count) {
|
234 |
$response['result'] = 'ok';
|
235 |
$response['info'] = array('code' => C_NextGen_API::INFO_JOB_LIST_FINISHED, 'message' => __('Job list is finished.', 'nggallery'));
|
237 |
$response['result'] = 'ok';
|
238 |
$response['info'] = array('code' => C_NextGen_API::INFO_JOB_LIST_UNFINISHED, 'message' => __('Job list is unfinished.', 'nggallery'));
|
239 |
}
|
240 |
+
if (!defined('NGG_API_SUPPRESS_QUICK_SUMMARY') || NGG_API_SUPPRESS_QUICK_SUMMARY == false) {
|
241 |
+
$response['result_object'] = $client_result;
|
242 |
+
}
|
243 |
} else {
|
244 |
$response['result'] = 'ok';
|
245 |
$response['info'] = array('code' => C_NextGen_API::INFO_NO_JOB_LIST, 'message' => __('Job list is empty.', 'nggallery'));
|
255 |
class C_NextGen_API extends C_Component
|
256 |
{
|
257 |
const CRON_KEY = 'nextgen.api.task_list';
|
258 |
+
/* NOTE: these constants' numeric values MUST remain the same, do NOT change the values */
|
259 |
const ERR_NO_TASK_LIST = 1001;
|
260 |
const ERR_NOT_AUTHENTICATED = 1002;
|
261 |
const ERR_NOT_AUTHORIZED = 1003;
|
323 |
while (isset($job_list[$job_id])) {
|
324 |
$job_id = uniqid();
|
325 |
}
|
326 |
+
$job = array('id' => $job_id, 'post_back' => array('token' => md5($job_id)), 'data' => $job_data, 'app_config' => $app_config, 'task_list' => $task_list);
|
327 |
$job_list[$job_id] = $job;
|
328 |
update_option('ngg_api_job_list', $job_list);
|
329 |
return $job_id;
|
378 |
}
|
379 |
return false;
|
380 |
}
|
381 |
+
function get_job_post_back($job_id)
|
382 |
{
|
383 |
$job = $this->get_job($job_id);
|
384 |
if ($job != null) {
|
385 |
+
return $job['post_back'];
|
386 |
}
|
387 |
return null;
|
388 |
}
|
455 |
$task_id = $id;
|
456 |
if (is_object($task_id) || is_array($task_id)) {
|
457 |
$id = null;
|
458 |
+
// it was specified that the query ID is referencing the query ID from another task
|
459 |
if (isset($task_id['target']) && $task_id['target'] == 'task') {
|
460 |
if (isset($task_id['id']) && isset($task_list[$task_id['id']])) {
|
461 |
$target_task = $task_list[$task_id['id']];
|
485 |
}
|
486 |
return $id;
|
487 |
}
|
488 |
+
// Note: handle_job only worries about processing the job, it does NOT remove finished jobs anymore, the responsibility is on the caller to remove the job when handle_job returns true, this is to allow calling get_job_*() methods after handle_job has been called
|
489 |
function handle_job($job_id, $job_data, $app_config, $task_list)
|
490 |
{
|
491 |
$job_user = $job_data['user'];
|
517 |
$wp_fs = $GLOBALS['wp_filesystem'];
|
518 |
$path_prefix = $full_path;
|
519 |
if ($wp_fs->method === 'direct') {
|
520 |
+
if (trim($ftp_path, " \t\n\r \v\\/") == '') {
|
521 |
+
// Note: if ftp_path is empty, we assume the FTP account home dir is on wp-content
|
522 |
+
$path_prefix = $root_path . $full_path;
|
523 |
+
} else {
|
524 |
+
$path_prefix = str_replace($ftp_path, $root_path, $full_path);
|
525 |
+
}
|
526 |
}
|
527 |
}
|
528 |
foreach ($task_list as &$task_item) {
|
884 |
// unfinished tasks, return false
|
885 |
return false;
|
886 |
} else {
|
887 |
+
// everything was finished, write status file
|
|
|
888 |
$status_file = '_ngg_job_status_' . strval($job_id) . '.txt';
|
889 |
$status_content = json_encode($task_list);
|
890 |
if ($wp_fs != null) {
|
1065 |
*
|
1066 |
* Data is an assoc array:
|
1067 |
* o string name
|
1068 |
+
* o string type (optional)
|
1069 |
* o base64 bits
|
1070 |
* o bool overwrite (optional)
|
1071 |
* o int gallery
|
1086 |
if (!isset($data['overwrite'])) {
|
1087 |
$data['overwrite'] = FALSE;
|
1088 |
}
|
1089 |
+
if (!isset($data['image_id'])) {
|
1090 |
+
$data['image_id'] = FALSE;
|
1091 |
+
}
|
1092 |
$data['override'] = $data['overwrite'];
|
1093 |
// Authenticate the user
|
1094 |
if ($this->_login($username, $password, $blog_id)) {
|
1099 |
if ($this->_can_manage_gallery($gallery, TRUE)) {
|
1100 |
// Upload the image
|
1101 |
$storage = C_Gallery_Storage::get_instance();
|
1102 |
+
try {
|
1103 |
+
$image = $storage->upload_base64_image($gallery, $data['bits'], $data['name'], $data['image_id'], $data['override']);
|
1104 |
+
if ($image) {
|
1105 |
+
$storage = C_Gallery_Storage::get_instance();
|
1106 |
+
$image->imageURL = $storage->get_image_url($image);
|
1107 |
+
$image->thumbURL = $storage->get_thumb_url($image);
|
1108 |
+
$image->imagePath = $storage->get_image_abspath($image);
|
1109 |
+
$image->thumbPath = $storage->get_thumb_abspath($image);
|
1110 |
+
$retval = $image->get_entity();
|
1111 |
+
} else {
|
1112 |
+
$retval = new IXR_Error(500, "Could not upload image");
|
1113 |
+
}
|
1114 |
+
} catch (Exception $exception) {
|
1115 |
+
$retval = new IXR_Error(500, 'Could not upload image: ' . $exception->getMessage());
|
1116 |
}
|
1117 |
} else {
|
1118 |
+
$retval = new IXR_Error(403, "You don't have permission to upload to gallery #{$gallery_id}");
|
1119 |
}
|
1120 |
} else {
|
1121 |
+
// No gallery found
|
1122 |
+
$retval = new IXR_Error(404, "Gallery not found (with id #{$gallery_id}");
|
1123 |
}
|
1124 |
}
|
1125 |
return $retval;
|
products/photocrati_nextgen/modules/ngglegacy/admin/css/nggadmin.css
CHANGED
@@ -92,6 +92,31 @@
|
|
92 |
font-size: 90%;
|
93 |
color: #666;
|
94 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
/* SETTING FOR FLASH UPLOAD BUTTON */
|
96 |
.swfupload {
|
97 |
position:absolute;
|
@@ -202,6 +227,7 @@ p#ngg-inlinebutton {
|
|
202 |
margin-bottom: -2px;
|
203 |
position: relative;
|
204 |
bottom: 4px;
|
|
|
205 |
}
|
206 |
|
207 |
#ngg-listimages .iedit,
|
92 |
font-size: 90%;
|
93 |
color: #666;
|
94 |
}
|
95 |
+
|
96 |
+
#pro.ngg-tab .button-primary {
|
97 |
+
background-color: #669933;
|
98 |
+
border: none;
|
99 |
+
box-shadow: none;
|
100 |
+
text-shadow: none;
|
101 |
+
padding: 12px 40px;
|
102 |
+
height: 50px;
|
103 |
+
font-size: 16px;
|
104 |
+
text-transform: uppercase;
|
105 |
+
}
|
106 |
+
|
107 |
+
#pro.ngg-tab .feature-section {
|
108 |
+
text-align: center;
|
109 |
+
margin-top: 50px;
|
110 |
+
}
|
111 |
+
|
112 |
+
#pro.ngg-tab .feature-section iframe {
|
113 |
+
width: 800px;
|
114 |
+
height: 450px;
|
115 |
+
max-width: 100%;
|
116 |
+
}
|
117 |
+
|
118 |
+
|
119 |
+
|
120 |
/* SETTING FOR FLASH UPLOAD BUTTON */
|
121 |
.swfupload {
|
122 |
position:absolute;
|
227 |
margin-bottom: -2px;
|
228 |
position: relative;
|
229 |
bottom: 4px;
|
230 |
+
right: 0; /* Necessary for RTL languages */
|
231 |
}
|
232 |
|
233 |
#ngg-listimages .iedit,
|
products/photocrati_nextgen/modules/ngglegacy/admin/css/nggadmin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#gallerydiv span.toggle-indicator:hover,.show_details,div#poststuff #gallerydiv{cursor:pointer}#iframely h2.title{display:none}#newversion{border-color:#CCC;border-style:solid;border-width:1px;margin-right:7px;margin-top:10px;padding:2px}.ngg-dashboard-widget ul.settings span{padding-left:10px;color:#2583AD;font-weight:700}.ngg-overview .postbox .handlediv{float:right;height:24px;width:24px}#ngg-gallery-wizard{min-height:auto}#ngg-gallery-wizard a{font-weight:700}#gallerydiv h3{margin-left:10px}#gallerydiv span.toggle-indicator{font-size:2em;line-height:2em}.warning{color:#9F6000;background-color:#FEEFB3;border:1px solid;margin:5px 0;padding:5px}#donator_message
|
1 |
+
#gallerydiv span.toggle-indicator:hover,.show_details,div#poststuff #gallerydiv{cursor:pointer}#iframely h2.title{display:none}#newversion{border-color:#CCC;border-style:solid;border-width:1px;margin-right:7px;margin-top:10px;padding:2px}.ngg-dashboard-widget ul.settings span{padding-left:10px;color:#2583AD;font-weight:700}.ngg-overview .postbox .handlediv{float:right;height:24px;width:24px}#ngg-gallery-wizard{min-height:auto}#ngg-gallery-wizard a{font-weight:700}#gallerydiv h3{margin-left:10px}#gallerydiv span.toggle-indicator{font-size:2em;line-height:2em}.warning{color:#9F6000;background-color:#FEEFB3;border:1px solid;margin:5px 0;padding:5px}#donator_message{background-color:#BDE5F8;border-color:#00529B;-moz-border-radius-bottomleft:3px;-moz-border-radius-bottomright:3px;-moz-border-radius-topleft:3px;-moz-border-radius-topright:3px;border-style:solid;border-width:1px;margin:5px 15px 2px;padding:0 .6em}#donator_message p{line-height:1;margin:.5em 0;padding:2px 2px 10px}#donator_message span{padding-top:10px;float:right}#plugin_check img{float:right}#plugin_check p.message{font-size:90%;color:#666}#pro.ngg-tab .button-primary{background-color:#693;border:none;box-shadow:none;text-shadow:none;padding:12px 40px;height:50px;font-size:16px;text-transform:uppercase}#wm-preview h3,.wm-table tr{background:0 #F9F9F9}#pro.ngg-tab .feature-section{text-align:center;margin-top:50px}#pro.ngg-tab .feature-section iframe{width:800px;height:450px;max-width:100%}.swfupload{position:absolute;z-index:1;vertical-align:top}.ngg-options th{width:22%}a.switch-expert{text-decoration:none}#wm-preview{float:right;font-size:90%;width:35%;border-color:#EBEBEB #ccc #ccc #ebebeb;border-style:solid;border-width:1px;margin-bottom:10px;margin-left:10px;margin-right:8px;padding:2px}#wm-preview h3{font-size:14px;font-weight:700;margin:0 0 10px;padding:8px 5px}.wm-table td,.wm-table th{border-bottom:8px solid #FFF;padding:10px}#wm-position{width:100%;margin-left:40px}.wm-table{border-collapse:collapse;margin-top:1em;width:60%;clear:none}.wm-table td{line-height:20px;margin-bottom:9px}.wm-table th{text-align:left}p#ngg-inlinebutton{float:right;margin:0;position:relative;top:-25pt}#gallery_fields{width:100%}#gallery_fields td{padding:5px;min-width:105px}#gallery_fields input[type=text],#gallery_fields select,#gallery_fields textarea{min-width:220px;width:99%}#ngg-listimages .row_actions,#ngg-listimages .row_actions td{border-top:none;padding-top:0;padding-bottom:0}#ngg-listimages .row-actions{padding-left:0;margin-bottom:-2px;position:relative;bottom:4px;right:0}#ngg-listimages .iedit,#ngg-listimages .iedit td,#ngg-listimages .iedit th{border:none}#ngg-listimages .iedit td{padding-top:8px}#ngg-listimages .column select{width:100%}#ngg-listimages .column-1 input{margin:0 0 0 8px}#ngg-listimages .column-1,#ngg-listimages .column-2{width:4%;min-width:33px}#ngg-listimages .column-3{min-width:80px;width:10%}#ngg-listimages .column-3 .thumb{max-height:80px;max-width:80px}#ngg-listimages .column-4{width:22%;max-width:220px}#ngg-listimages .column-4 .meta{font-size:11px}#ngg-listimages .column-4 label input[type=checkbox]{position:relative;top:-2px}#ngg-listimages .column-5 input[type=text],#ngg-listimages .column-5 textarea,#ngg-listimages .column-6 textarea{width:100%}#ngg-listimages .column-5 textarea{height:57px}#ngg-listimages .column-6 textarea{height:80px}div .progressborder{border:1px solid #DDD;display:block;height:30px;background-color:#464646;width:100%;margin-top:15px;margin-bottom:15px;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}div .progressbar{border:none;display:block;height:30px;background-color:#D54E21;width:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}div .progressbar span{display:inline;position:absolute;color:#fff;font-weight:700;padding:5px 0 0 5px}.show_details{height:16px;line-height:20px;overflow:hidden;min-width:8em;padding:3px}.show_details span{border-bottom:1px solid #999;white-space:pre}.show_details:hover{height:auto;overflow:visible;border:1px solid #999}.albumnav select[name=act_album]{width:150px}.albumnav span{padding-left:50px}#editalbum select[name=pageid]{width:95%}div .groupItem{cursor:move;width:295px;padding:5px;line-height:1.5}div .innerhandle{background-color:#FBFBFB}.groupItem .item_top{background-color:#2683AE;color:#FFF;font-weight:700;line-height:28px;height:28px;padding:0 5px;-moz-border-radius:3px;-khtml-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.groupItem .album_obj{background-color:#D54E21}.groupItem .item_top a{color:#FFF;float:right;text-decoration:none}.groupItem .item_top a:hover{color:#FFF}.itemContent{border-color:#DFDFDF;border-style:none solid solid;border-width:0 1px 1px;padding:2px 0 20px 2px}.itemContent p{border:0;margin:0;padding:0}.inlinepicture{float:left;display:inline;margin:0;padding:0 3px 1px}.inlinepicture img{margin:3px;max-height:60px}.sort_placeholder{border:1px dashed #bba!important;margin:5px;background:#F9F9F9}.container{margin-top:10px}.target-album{margin:10px 685px 10px 10px}.widget-right{float:right;margin:0 10px;width:315px}.widget-holder{min-height:400px;padding-top:1px}.target{background-color:#F1F1F1}div.widget-top h3{text-align:center;line-height:25px;margin:0;padding:5px 12px;font-size:13px}div.widget-top{text-shadow:0 1px 0 #FFF;background-repeat:repeat-x;background-position:0 0;font-size:13px}.ui-autocomplete-start{background-position:99% center}#sortGallery{position:relative}p#sortButton{margin:0;position:absolute;right:0;top:0}.imageBox,.imageBoxHighlighted{width:130px;height:160px;float:left;overflow:hidden;text-overflow:ellipsis;padding:5px}.imageBox_theImage{width:110px;height:125px;background-position:center;background-repeat:no-repeat;margin:0 auto 2px}.imageBox_label{text-align:center;font-family:arial;font-size:11px;padding-top:2px;margin:0 auto}#insertionMarker{height:150px;width:6px;position:absolute}#insertionMarkerLine{width:6px;height:145px}#insertionMarker img{float:left}#dragDropContent{opacity:.4;filter:alpha(opacity=40);position:absolute;z-index:10;display:none}.error_inline{background:0 #FFEBE8;border:1px solid #C00;margin:5px auto;padding:10px}.ngg-list{font-size:11px;margin-left:15px;list-style-position:inside;list-style-type:disc}#ngg-manage-images-items-per-page-label{float:right;line-height:30px;margin-right:5px}#ngg-manage-images-items-per-page{float:right;margin-right:5px}#adminmenu .wp-submenu a[href*=ngg_pro_upgrade]{color:#76a934}
|
products/photocrati_nextgen/modules/ngglegacy/admin/manage.php
CHANGED
@@ -979,7 +979,20 @@ class nggManageGallery {
|
|
979 |
}
|
980 |
}
|
981 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
982 |
}
|
|
|
983 |
return $updated;
|
984 |
}
|
985 |
|
979 |
}
|
980 |
}
|
981 |
}
|
982 |
+
|
983 |
+
// Determine if any WP terms have been orphaned and clean them up
|
984 |
+
global $wpdb;
|
985 |
+
$results = $wpdb->get_col("SELECT t.`term_id` FROM `{$wpdb->term_taxonomy}` tt
|
986 |
+
LEFT JOIN `{$wpdb->terms}` t ON tt.`term_id` = t.`term_id`
|
987 |
+
WHERE tt.`taxonomy` = 'ngg_tag' AND tt.`count` <= 0");
|
988 |
+
if (!empty($results))
|
989 |
+
{
|
990 |
+
foreach ($results as $term_id) {
|
991 |
+
wp_delete_term($term_id, 'ngg_tag');
|
992 |
+
}
|
993 |
+
}
|
994 |
}
|
995 |
+
|
996 |
return $updated;
|
997 |
}
|
998 |
|
products/photocrati_nextgen/modules/ngglegacy/admin/overview.php
CHANGED
@@ -287,17 +287,13 @@ function nggallery_admin_overview()
|
|
287 |
<div id="pro" class="ngg-tab">
|
288 |
|
289 |
<h2><?php _e( 'Upgrade to NextGEN Pro!' ); ?></h2>
|
290 |
-
<p class="about-text centered"><?php _e( 'Gorgeous new gallery displays, image protection, full screen lightbox, commenting and social sharing for individual images, proofing, ecommerce, digital downloads, and more.
|
291 |
-
<
|
292 |
-
<div class="feature-section
|
293 |
-
|
294 |
-
<a href="https://www.imagely.com/wordpress-gallery-plugin/nextgen-plus/" target="_blank"><img src="https://f001.backblaze.com/file/nextgen-gallery/nextgen-plus-ngg.jpg"></a>
|
295 |
-
</div>
|
296 |
-
<div class="col">
|
297 |
-
<a href="https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/" target="_blank"><img src="https://f001.backblaze.com/file/nextgen-gallery/nextgen-pro-ngg.jpg"></a>
|
298 |
-
</div>
|
299 |
</div>
|
300 |
|
|
|
301 |
</div>
|
302 |
|
303 |
<div id="genesis" class="ngg-tab">
|
287 |
<div id="pro" class="ngg-tab">
|
288 |
|
289 |
<h2><?php _e( 'Upgrade to NextGEN Pro!' ); ?></h2>
|
290 |
+
<p class="about-text centered"><span style="font-weight: bold;"><?php _e( 'The most powerful gallery system ever built for WordPress. ', 'nggallery' ); ?></span><br><?php _e( 'Gorgeous new gallery displays, image protection, full screen lightbox, commenting and social sharing for individual images, proofing, ecommerce, digital downloads, and more.', 'nggallery' ); ?></p>
|
291 |
+
<p class="about-text centered"><a href='https://www.imagely.com/wordpress-gallery-plugin/nextgen-pro/?utm_source=ngg&utm_medium=ngguser&utm_campaign=ngpro' target='_blank' class="button-primary"><?php _e( 'Get NextGEN Pro Now', 'nggallery' ); ?></a></p>
|
292 |
+
<div class="feature-section">
|
293 |
+
<iframe src="https://www.youtube.com/embed/zmA-b_jiXN0" frameborder="0" allowfullscreen></iframe>
|
|
|
|
|
|
|
|
|
|
|
294 |
</div>
|
295 |
|
296 |
+
|
297 |
</div>
|
298 |
|
299 |
<div id="genesis" class="ngg-tab">
|
products/photocrati_nextgen/modules/ngglegacy/lib/meta.php
CHANGED
@@ -80,11 +80,9 @@ class nggMeta{
|
|
80 |
|
81 |
$meta = $this->image->meta_data;
|
82 |
|
83 |
-
if
|
84 |
-
|
85 |
-
|
86 |
-
if (!is_array($meta) || ($meta['saved'] != true))
|
87 |
-
return false;
|
88 |
|
89 |
// return one element if requested
|
90 |
if ($object)
|
80 |
|
81 |
$meta = $this->image->meta_data;
|
82 |
|
83 |
+
// Check if we already import the meta data to the database
|
84 |
+
if (!is_array($meta) || !isset($meta['saved']) || ($meta['saved'] !== TRUE))
|
85 |
+
return false;
|
|
|
|
|
86 |
|
87 |
// return one element if requested
|
88 |
if ($object)
|
products/photocrati_nextgen/modules/ngglegacy/lib/ngg-db.php
CHANGED
@@ -950,9 +950,9 @@ class nggdb
|
|
950 |
// Generate SQL query
|
951 |
$query = array();
|
952 |
$query[] = "SELECT {$field}, SUBSTR({$field}, %d) AS 'i' FROM {$table}";
|
953 |
-
$query[] = "WHERE ({$field} LIKE
|
954 |
$query[] = "ORDER BY CAST(i AS SIGNED INTEGER) DESC LIMIT 1";
|
955 |
-
$query = $wpdb->prepare(implode(" ", $query), strlen("{$slug}-")+1, strlen("{$slug}-")+1, PHP_INT_MAX, $slug);
|
956 |
|
957 |
// If the above query returns a result, it means that the slug is already taken
|
958 |
if (($last_slug = $wpdb->get_var($query))) {
|
950 |
// Generate SQL query
|
951 |
$query = array();
|
952 |
$query[] = "SELECT {$field}, SUBSTR({$field}, %d) AS 'i' FROM {$table}";
|
953 |
+
$query[] = "WHERE ({$field} LIKE %s AND CONVERT(SUBSTR({$field}, %d), SIGNED) BETWEEN 1 AND %d) OR {$field} = %s";
|
954 |
$query[] = "ORDER BY CAST(i AS SIGNED INTEGER) DESC LIMIT 1";
|
955 |
+
$query = $wpdb->prepare(implode(" ", $query), strlen("{$slug}-")+1, $wpdb->esc_like("{$slug}-") . '%', strlen("{$slug}-")+1, PHP_INT_MAX, $slug);
|
956 |
|
957 |
// If the above query returns a result, it means that the slug is already taken
|
958 |
if (($last_slug = $wpdb->get_var($query))) {
|
products/photocrati_nextgen/modules/ngglegacy/module.ngglegacy.php
CHANGED
@@ -23,7 +23,7 @@ class M_NggLegacy extends C_Base_Module
|
|
23 |
'photocrati-nextgen-legacy',
|
24 |
'NextGEN Legacy',
|
25 |
'Embeds the original version of NextGEN 1.9.3 by Alex Rabe',
|
26 |
-
'0.
|
27 |
'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
|
28 |
'Imagely',
|
29 |
'https://www.imagely.com'
|
23 |
'photocrati-nextgen-legacy',
|
24 |
'NextGEN Legacy',
|
25 |
'Embeds the original version of NextGEN 1.9.3 by Alex Rabe',
|
26 |
+
'0.21',
|
27 |
'https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/',
|
28 |
'Imagely',
|
29 |
'https://www.imagely.com'
|
products/photocrati_nextgen/modules/router/package.module.router.php
CHANGED
@@ -215,8 +215,8 @@ class Mixin_Router extends Mixin
|
|
215 |
*/
|
216 |
function get_request_uri($with_params = TRUE)
|
217 |
{
|
218 |
-
if (!empty($_SERVER['
|
219 |
-
$retval = $_SERVER['
|
220 |
} elseif (!empty($_SERVER['PATH_INFO'])) {
|
221 |
$retval = $_SERVER['PATH_INFO'];
|
222 |
} else {
|
215 |
*/
|
216 |
function get_request_uri($with_params = TRUE)
|
217 |
{
|
218 |
+
if (!empty($_SERVER['NGG_ORIG_REQUEST_URI'])) {
|
219 |
+
$retval = $_SERVER['NGG_ORIG_REQUEST_URI'];
|
220 |
} elseif (!empty($_SERVER['PATH_INFO'])) {
|
221 |
$retval = $_SERVER['PATH_INFO'];
|
222 |
} else {
|
products/photocrati_nextgen/modules/wordpress_routing/module.wordpress_routing.php
CHANGED
@@ -54,9 +54,9 @@ class M_WordPress_Routing extends C_Base_Module
|
|
54 |
*/
|
55 |
function restore_request_uri()
|
56 |
{
|
57 |
-
if (isset($_SERVER['
|
58 |
{
|
59 |
-
$request_uri = $_SERVER['
|
60 |
$_SERVER['UNENCODED_URL'] = $_SERVER['HTTP_X_ORIGINAL_URL'] = $_SERVER['REQUEST_URI'] = $request_uri;
|
61 |
|
62 |
if (isset($_SERVER['ORIG_PATH_INFO'])) {
|
54 |
*/
|
55 |
function restore_request_uri()
|
56 |
{
|
57 |
+
if (isset($_SERVER['NGG_ORIG_REQUEST_URI']))
|
58 |
{
|
59 |
+
$request_uri = $_SERVER['NGG_ORIG_REQUEST_URI'];
|
60 |
$_SERVER['UNENCODED_URL'] = $_SERVER['HTTP_X_ORIGINAL_URL'] = $_SERVER['REQUEST_URI'] = $request_uri;
|
61 |
|
62 |
if (isset($_SERVER['ORIG_PATH_INFO'])) {
|
products/photocrati_nextgen/modules/wordpress_routing/package.module.wordpress_routing.php
CHANGED
@@ -202,7 +202,7 @@ class A_WordPress_Routing_App extends Mixin
|
|
202 |
function passthru()
|
203 |
{
|
204 |
$router = C_Router::get_instance();
|
205 |
-
$_SERVER['
|
206 |
$base_parts = parse_url($router->get_base_url('root'));
|
207 |
$new_request_uri = $router->join_paths(!empty($base_parts['path']) ? $base_parts['path'] : '', $this->object->strip_param_segments($router->get_request_uri()));
|
208 |
$new_request_uri = str_replace('index.php/index.php', 'index.php', $new_request_uri);
|
202 |
function passthru()
|
203 |
{
|
204 |
$router = C_Router::get_instance();
|
205 |
+
$_SERVER['NGG_ORIG_REQUEST_URI'] = $_SERVER['REQUEST_URI'];
|
206 |
$base_parts = parse_url($router->get_base_url('root'));
|
207 |
$new_request_uri = $router->join_paths(!empty($base_parts['path']) ? $base_parts['path'] : '', $this->object->strip_param_segments($router->get_request_uri()));
|
208 |
$new_request_uri = str_replace('index.php/index.php', 'index.php', $new_request_uri);
|
readme.txt
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
Contributors: photocrati, imagely
|
3 |
Tags: wordpress gallery plugin, gallery, nextgen, nextgen gallery, photo gallery, image gallery, photography, slideshow, images, photo, photo album, watermark
|
4 |
Requires at least: 4.0.0
|
5 |
-
Stable tag: 2.2.
|
6 |
Tested up to: 4.7.3
|
7 |
License: GPLv2
|
8 |
|
@@ -12,21 +12,21 @@ The most popular WordPress gallery plugin and one of the most popular plugins of
|
|
12 |
|
13 |
= WordPress Gallery Plugin =
|
14 |
|
15 |
-
NextGEN Gallery has been the industry's standard **WordPress gallery plugin** since 2007 and continues to receive over 1.5 million new downloads per year. It's
|
16 |
|
17 |
-
On the back end, NextGEN offers a complete WordPress gallery management system with the ability to batch upload, import meta data, add/delete/rearrange/sort
|
18 |
|
19 |
-
On the front end, the free version of NextGEN provides two main display styles (slideshows and thumbnail galleries) and two album styles (compact and extended), all of which come with a wide array of options for controlling size, style, timing, transitions, controls, lightbox effects, and more.
|
20 |
|
21 |
Learn more about <a href="https://www.imagely.com/wordpress-gallery-plugin/" target="_blank">NextGEN WordPress Gallery Plugin features.</a>
|
22 |
|
23 |
**Demos**<br>
|
24 |
*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-thumbnail-gallery/" target="_blank">Basic Thumbnail Gallery Demo</a><br>
|
25 |
-
*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-slideshow-gallery/" target="_blank">Basic Slideshow Demo</a><br>
|
26 |
*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-compact-album/" target="_blank">Basic Compact Album</a><br>
|
27 |
*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-extended-album/" target="_blank">Basic List Album</a><br>
|
28 |
|
29 |
-
**INTRODUCING NEXTGEN GALLERY PRO.** NextGEN Plus and NextGEN Pro are premium WordPress gallery plugin extensions for NextGEN Gallery that add new gallery displays, lightboxes, ecommerce, proofing, and pro support. Learn more about <a href="https://www.imagely.com/wordpress-gallery-plugin/" target="_blank">NextGEN Plus and NextGEN Pro plugin features.</a>
|
30 |
|
31 |
**Demos**<br>
|
32 |
*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-mosaic-gallery/" target="_blank">Pro Mosaic Gallery</a><br>
|
@@ -63,7 +63,7 @@ Imagely 2016
|
|
63 |
Photocrati Media 2012-2016<br>
|
64 |
Alex Rabe 2007-2011
|
65 |
|
66 |
-
This program is free software
|
67 |
|
68 |
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
69 |
|
@@ -71,9 +71,9 @@ You should have received a copy of the GNU General Public License along with thi
|
|
71 |
|
72 |
== Installation ==
|
73 |
|
74 |
-
INSTALLATION: The easiest way to
|
75 |
|
76 |
-
HOW TO USE: Just go to a page or post and click the NextGEN Gallery icon. From our
|
77 |
|
78 |
DOCUMENTATION: See <a href="https://www.imagely.com/docs/nextgen-gallery/" target="_blank">NextGEN Gallery Documentation</a>.
|
79 |
|
@@ -95,7 +95,7 @@ https://www.youtube.com/watch?v=qwNr5ZNGavo
|
|
95 |
|
96 |
== Shortcode ==
|
97 |
|
98 |
-
NextGEN Gallery 2.x introduces our new
|
99 |
|
100 |
If you do want to work with shortcodes, we've also introduce a new, more powerful, and more flexible shortcode system with NextGEN Gallery 2.0.
|
101 |
|
@@ -106,7 +106,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
106 |
== Frequently Asked Questions ==
|
107 |
|
108 |
|
109 |
-
= Why are my galleries not opening up in a lightbox after I move my site? =
|
110 |
|
111 |
This is often due to the URL paths to the CSS and JavaScript files used by the Lightbox Effects not being changed to relevant addresses based on the new site. This article will help sort out this issue if that is the case: <a href="https://www.imagely.com/docs/galleries-opening-lightbox/" target="_blank">Why are my galleries not opening up in a lightbox?</a>.
|
112 |
|
@@ -120,32 +120,32 @@ Yes. See <a href="https://www.imagely.com/docs/nextgen-gallery/" target="_blank"
|
|
120 |
Part of what makes the NextGEN Gallery WordPress gallery plugin so popular is its flexibility - it works with the vast majority of premium and free themes, without requiring any coding.
|
121 |
|
122 |
|
123 |
-
= Are the galleries flash based? =
|
124 |
|
125 |
-
No, NextGEN Gallery uses Javascript
|
126 |
|
127 |
|
128 |
= Are the galleries mobile friendly? =
|
129 |
|
130 |
-
Yes, since we use Javascript rather than flash, NextGEN Gallery is compatible with Android, iOS, and Blackberry. As of July 2013, all galleries are responsive. NextGEN Pro also includes a full screen, responsive Pro Lightbox with mobile gesture support.
|
131 |
|
132 |
|
133 |
= What is the difference between a gallery and an album? =
|
134 |
|
135 |
-
In the simplest of terms, Galleries contain your
|
136 |
|
137 |
|
138 |
= Can I upload multiple images at once? =
|
139 |
|
140 |
-
Yes, you can batch upload entire galleries at
|
141 |
|
142 |
|
143 |
= Can I password protect galleries? =
|
144 |
|
145 |
-
Yes, WordPress allows you to password protect pages by default - which includes all galleries and content for the entire page. Password protection of pages can be turned on and off at any time, with just a few clicks.
|
146 |
|
147 |
|
148 |
-
= Can I add a watermark to the
|
149 |
|
150 |
Yes, you can add text or image watermarks to your gallery images.
|
151 |
|
@@ -155,7 +155,7 @@ Yes, you can add text or image watermarks to your gallery images.
|
|
155 |
Yes, each thumbnail image can be individually adjusted to suit your needs.
|
156 |
|
157 |
|
158 |
-
= Is there pagination for galleries? =
|
159 |
|
160 |
Yes, and you can adjust the amount of images to be shown on a page at any time.
|
161 |
|
@@ -187,37 +187,58 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
187 |
|
188 |
== Changelog ==
|
189 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
= V2.2.3 - 04.05.2017 =
|
191 |
* Fixed: E_WARNING on Gallery Settings page due to improper use of array_combine() on PHP <= 5.3
|
192 |
|
193 |
= V2.2.2 - 04.04.2017 =
|
194 |
-
* Fixed: Hyperlinks in image descriptions
|
195 |
* Fixed: WordPress SEO sitemap image count
|
196 |
* Fixed: Removed id parameter in shortcodes
|
197 |
* Fixed: Fatal error in Freemius code
|
198 |
|
199 |
= V2.2.1 - 03.13.2017 =
|
200 |
-
* NEW: Template mechanism for all
|
201 |
* NEW: Review notices
|
202 |
-
* Changed: Updated branding to Imagely
|
203 |
* Changed: Added the ability to click on a gallery title and have it open direct to Pro Lightbox
|
204 |
* Fixed: Problems with activation after initial installation
|
205 |
* Fixed: Don't display legacy shortcodes after creating new galleries
|
206 |
-
* Fixed:
|
207 |
* Fixed: Various PHP notices and warnings
|
208 |
-
* Fixed: Issue with dynamic container height for Imagebrowser
|
209 |
|
210 |
= V2.1.79 - 02.23.2017 =
|
211 |
-
* Secured:
|
212 |
|
213 |
= V2.1.77 - 01.31.2017 =
|
214 |
* Changed: Corrected Facebook link
|
215 |
* Changed: Tags in readme.txt
|
216 |
-
* Fixed: Problem
|
217 |
|
218 |
= V2.1.69 - 01.18.2017 =
|
219 |
* Fixed: Ensured compatibility with WordPress 4.7.1
|
220 |
-
* Fixed: Missing option names on setting pages when Wizard active
|
221 |
* Fixed: Ensure that NextGEN Gallery is always loaded after it's extension plugins in WP 4.7
|
222 |
* Fixed: Pope product uninstaller not running during activation
|
223 |
|
@@ -226,7 +247,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
226 |
* Fixed: The ability to dismiss the gallery wizard notice
|
227 |
|
228 |
= V2.1.61 - 12.14.2016 =
|
229 |
-
* NEW:
|
230 |
* Fixed: Shortcodes in widgets not getting substituted in Divi
|
231 |
* Fixed: Ensure that NGG placeholder text doesn't get styled incorrectly by other themes
|
232 |
* Fixed: Various thickbox issues on custom post type pages
|
@@ -239,12 +260,12 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
239 |
* Secured: Ability to customize CSS Styles
|
240 |
* Changed: readme.txt improvements
|
241 |
* Fixed: Compatibility with WordPress 4.7.0
|
242 |
-
* Fixed: IGW-inserted
|
243 |
|
244 |
= V2.1.57 - 11.14.2016 =
|
245 |
* Secured: Custom Styles may only be written to specific directories
|
246 |
* Secured: SQL injection vulnerability for gallery names
|
247 |
-
* Changed:
|
248 |
* Changed: Include backup image files when coping/moving a gallery
|
249 |
* Changed: Show gallery name in upload notification
|
250 |
* Changed: Added placeholder text to gallery name field on Add Gallery / Upload Images page
|
@@ -255,7 +276,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
255 |
* Fixed: Conflict with Easy Digital Downloads
|
256 |
* Fixed: Misc invalid HTML tags in admin pages (thanks to kniebremser)
|
257 |
* Fixed: Change display:hidden to visibility:hidden in various places
|
258 |
-
* Fixed: Escaping of quotes in gallery titles and urls
|
259 |
* Fixed: Untranslatable strings
|
260 |
|
261 |
|
@@ -264,12 +285,12 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
264 |
|
265 |
= V2.1.54 - 10.25.2016 =
|
266 |
* NEW: Added php docblock directives for code hinting/completion
|
267 |
-
* NEW:
|
268 |
* NEW: Visual Shortcodes
|
269 |
* Changed: Now uses gulp for package compilation & JS/CSS minification
|
270 |
* Changed: Updated Freemius SDK to 1.2.1
|
271 |
* Fixed: Extraneous backslashes being added to gallery titles & descriptions
|
272 |
-
* Fixed: Import folder 'gallery title' field wasn't being used for new gallery titles
|
273 |
* Fixed: Settings reset will now redirect to /wp-admin/ to avoid potential activation-related errors
|
274 |
* Fixed: Table columns cache becomes out of date between versions
|
275 |
* Fixed: Various issues with shortcodes when used in widgets
|
@@ -280,7 +301,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
280 |
* NEW: Added the ability to open galleries within albums using a lightbox
|
281 |
* Changed: Increased freemius opt-in to 100%
|
282 |
* Changed: Tamara Lackey's biography on the overview page
|
283 |
-
* Fixed: Images not responsive for all
|
284 |
* Fixed: Compatibility with the Imagely Lightroom plugin
|
285 |
* Fixed: Removed Pope tests folder
|
286 |
* Fixed: Maximum function nesting level fatal error when displaying two or more albums
|
@@ -293,13 +314,13 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
293 |
* NEW: Added notice for deprecating PHP 5.2
|
294 |
* NEW: Option to display child gallery and album descriptions when viewing albums
|
295 |
* Changed: ATP preview images are smaller with tighter margins to show more images
|
296 |
-
* Changed: Content of Upgrade to Pro page
|
297 |
* Changed: New NextGEN Overview page
|
298 |
* Changed: Replicate gallery name sanitation of NG legacy for gallery paths
|
299 |
* Fixed: Resolved all found PHP warnings/notices/deprecations and strict errors
|
300 |
* Fixed: Compatibility on Windows servers with network mounted document roots
|
301 |
* Fixed: Ensure EXIF meta data is loaded from the appropriate exif_data array instead of exif_array
|
302 |
-
* Fixed: Gallery Settings toggle not functioning
|
303 |
* Fixed: Uploading breaking when thumbnail or image resizing fails due to lack of specific format support for image libraries
|
304 |
* Fixed: Warning generated in nggallery.php checking useMediaRSS option
|
305 |
|
@@ -316,8 +337,8 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
316 |
* NEW: Gulp build system
|
317 |
* NEW: Added "ngg_igw_placeholder_line_2_settings" and "ngg_igw_placeholder_line_1_settings" filters
|
318 |
* NEW: Added "ngg_settings_during_image_generation" filter to adjust image generation
|
319 |
-
* NEW: Added "ngg_before_save_thumbnail" filter for image manipulation abilities
|
320 |
-
* NEW: Added the ability to apply GD filters during image generation
|
321 |
* NEW: Integrated with WordPress SEO sitemaps to show include NGG images in image counts
|
322 |
* Changed: Links to manage a gallery after it's been created don't appear in the IGW
|
323 |
* Fixed: Freemius code shouldn't be minified
|
@@ -341,7 +362,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
341 |
|
342 |
= V2.1.33 - 04.25.2016 =
|
343 |
* Fixed: Compatibility with themes and plugins which enqueue underscore.js in the head of the document
|
344 |
-
* Fixed: Ensure that shutter reloaded can find
|
345 |
|
346 |
= V2.1.31 - 04.05.2016 =
|
347 |
* NEW: Added constant NGG_SCRIPT_VERSION that is either the plugin version or rand() should SCRIPT_DEBUG be on
|
@@ -352,7 +373,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
352 |
* Fixed: Compatibility with WPML String Translation when uploading images without title or description
|
353 |
* Fixed: Made get_image_url() encode gallery directory names 'because%this%is' a valid directory
|
354 |
* Fixed: Manage Galleries > Search results not saving when edited
|
355 |
-
* Fixed:
|
356 |
* Fixed: Resource manager breaking the layout of the Multisite Plugin Activation page
|
357 |
* Fixed: Static url generation when the nextgen-gallery directory is a symlink outside of the WordPress roots
|
358 |
|
@@ -395,17 +416,17 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
395 |
* Fixed: Problem deleting interframe communication cookies
|
396 |
|
397 |
= V2.1.15 - 09.09.2015 =
|
398 |
-
* Secured: Image
|
399 |
* Fixed: Don't use esc_attr_e() to prevent translation issues
|
400 |
* Fixed: Ensure that deleting a gallery doesn't delete anything it shouldn't
|
401 |
* Fixed: get_gallery_abspath() should return NULL if the path doesn't exist
|
402 |
|
403 |
= V2.1.13 - 09.09.2015 =
|
404 |
-
* Secured: Image uploads
|
405 |
* Fixed: Don't use esc_attr_e() to present translation issues
|
406 |
|
407 |
= V2.1.10 - 09.01.2015 =
|
408 |
-
* Secured: Escape output of parameters in templates to avoid XSS
|
409 |
|
410 |
= V2.1.9 - 08.25.2015 =
|
411 |
* NEW: Added ngg_manage_galleries_items_per_page filter
|
@@ -423,10 +444,10 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
423 |
* Fixed: Cornerstone/X compatibility
|
424 |
* Fixed: Recovering images was 'generating' from backup instead of copying
|
425 |
* Fixed: Setting post thumbnail more than once on a page/post
|
426 |
-
* Fixed: Permanently hide
|
427 |
|
428 |
= V2.1.2 - 07.20.2015 =
|
429 |
-
* NEW: Ability to import from Media Library
|
430 |
* NEW: Added filter 'ngg_datamapper_table_name'
|
431 |
* NEW: Added filter `ngg_legacy_template_directories` for legacy template locator (thanks Ross McKay)
|
432 |
* NEW: Pagination available onManage Images page
|
@@ -438,7 +459,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
438 |
* Fixed: Ability to set NextGEN Image as Featured Image
|
439 |
* Fixed: Don't use resource manager in download requests for WP Photo Shelter
|
440 |
* Fixed: Updated custom jQuery-UI styling to resemble WordPress postbox styling
|
441 |
-
* Fixed: Styled plupload buttons to resemble WordPress buttons
|
442 |
* Fixed: Removed 'fixed' class from manage galleries table. Allows columns to adjust to content
|
443 |
* Fixed: Removed note about flash support and fixed typoe (thanks Rene Wolf)
|
444 |
* Fixed: Fixed typo in nggallery.po
|
@@ -448,7 +469,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
448 |
* Fixed: Adjusted album-compact template to always include p.ngg-album-gallery-image-counter
|
449 |
* Fixed: Replaced empty gallery rendering in is_feed() with a link
|
450 |
* Fixed: Removed default settings for imagerotator, which is no longer supported
|
451 |
-
* Fixed: Optimizated scanning of images when importing a gallery
|
452 |
* Fixed: When a gallery is deleted, ensure that DB and filesystem are purged
|
453 |
* Fixed: Removed Insert Gallery Window box shadow
|
454 |
* Fixed: Ensure that file_exists() calls are prefixed with @
|
@@ -463,7 +484,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
463 |
* NEW: Added ngg_manage_images_items_per_page filter
|
464 |
* NEW: Added "ngg_get_image_url" filter
|
465 |
* NEW: Including Ukranian and Polish translations
|
466 |
-
* NEW: The ability to set template in widgets
|
467 |
* Changed: Default thumbnail dimensions set to 240x160
|
468 |
* Changed: Product now adheres to Pope 0.12 and provides get_modules_to_load()
|
469 |
* Changed: Updated translations
|
@@ -500,7 +521,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
500 |
* Fixed: Use of C_Gallery_Mapper in C_Image_Wrapper
|
501 |
* Fixed: Properly handle themes that don't call wp_footer() or wp_print_footer_scripts()
|
502 |
* Fixed: Warning about missing style.php file on Network Admin -> Gallery page
|
503 |
-
* Fixed: Warning about getimagesize() failure when backing up an image
|
504 |
|
505 |
= v2.0.79 - 03.20.2015 =
|
506 |
* Secured: Sanitized C_Displayed_Gallery->_add_find_in_set_column() third parameter
|
@@ -511,15 +532,15 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
511 |
* Fixed: Use of C_Gallery_Mapper in C_Image_Wrapper
|
512 |
* Fixed: Properly handle themes that don't call wp_footer() or wp_print_footer_scripts()
|
513 |
* Fixed: Warning about missing style.php file on Network Admin -> Gallery page
|
514 |
-
* Fixed: Warning about getimagesize() failure when backing up an image
|
515 |
|
516 |
= V2.0.78 - 03.12.2015 =
|
517 |
-
* Secured: AJAX actions for uploading
|
518 |
|
519 |
= V2.0.77 - 03.05.2015 =
|
520 |
* NEW: Added "ngg_get_image_url" filter
|
521 |
* Changed: Use a more reliable means of excluding Pro/Plus modules from using minified static resources
|
522 |
-
* Fixed: Imagebrowser pagination with custom templates
|
523 |
* Fixed: Custom CSS is enqueued late to ensure it's one of the last stylesheets loaded
|
524 |
* Fixed: Fixed watermarking PNG images
|
525 |
* Fixed: Using the "Import Metadata" bulk action overwrites existing data
|
@@ -529,7 +550,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
529 |
* Fixed: Restored nggdb->get_random_images(), nggdb->search_for_file, and nggdb->find_all_albums()
|
530 |
* Fixed: Allow gallery slug as parameter to nggdb::get_gallery()
|
531 |
* Fixed: Don't minify Plupload's i18n JavaScript
|
532 |
-
* Fixed: Custom template images not being given their full effect code attributes
|
533 |
|
534 |
= V2.0.76 - 02.24.2015 =
|
535 |
* Fixed: Compatibility checks for very old versions of NextGEN Pro
|
@@ -547,13 +568,13 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
547 |
= V2.0.71 - 02.19.2015 =
|
548 |
* NEW: Module files are compiled into a single package file to reduce disk I/O
|
549 |
* NEW: All CSS stylesheets and Javascript source files are minified to reduce latency
|
550 |
-
* NEW: All lightboxes are configured using an in-memory management class.
|
551 |
* NEW: Uses Pope 2.0, benefiting from the new caching capabilities
|
552 |
* NEW: NextGEN Gallery's functionality is disabled if NextGEN Pro is incompatible
|
553 |
* NEW: Added ngg_effect_code filter
|
554 |
* Changed: Updated FontAwesome to 4.3.0
|
555 |
* Changed: Updated select2 to 3.5.2
|
556 |
-
* Changed: Removed PicLens / CoolIris integration
|
557 |
* Changed: Removed JSON API. Please use XML-RPC API instead
|
558 |
* Changed: For performance reasons, we cache FS & url lookups/calculations
|
559 |
* Changed: Greatly reduced the # of sql queries, and eliminated anything redundant
|
@@ -564,25 +585,25 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
564 |
* Changed: Insert Gallery Window is routed using wp-admin/admin_init
|
565 |
* Changed: Removed unused code from ngglegacy module. Created wrappers for commonly-used functions
|
566 |
* Changed: LZW module removed
|
567 |
-
* Changed: Legacy template drop-down selection now using select2
|
568 |
* Secured: Restrict folder browsing to NGG_IMPORT_ROOT constant
|
569 |
* Fixed: Compatibility issue with PHP's transparent ZLIB compression
|
570 |
* Fixed: Imagebrowser as lightbox effect not working when non-default permalink slug used
|
571 |
* Fixed: Angled quotations marks used in shortcode parameters
|
572 |
-
* Fixed: Compatibility between ImageBrowser
|
573 |
* Fixed: Allow pagination to retain query string url parameters when linking to other pages
|
574 |
* Fixed: Fixed pagination issues with slideshow galleries displayed as thumbnails
|
575 |
* Fixed: Fix C_GalleryStorage_Driver_Base->import_gallery_from_fs() not checking imgBackup
|
576 |
* Fixed: Fixed problem with default settings being applied multiple times
|
577 |
-
* Fixed: Fallback to "full" image sizes if "backup" images aren't available
|
578 |
* Fixed: Use M_DataMapper's serialization methods throughout the codebase
|
579 |
* Fixed: Conflict with WordPress SEO and get_the_excerpt() call
|
580 |
* Fixed: Don't run Resource Manager on wp-login.php or wp-sign.php
|
581 |
-
* Fixed: TinyMCE Image Editor conflict with Insert Gallery Window placeholder images
|
582 |
* Fixed: Fix Shutter positioning when admin bar is displayed
|
583 |
-
* Fixed: Allow deselection of a legacy template
|
584 |
-
* Fixed: Prevent conflicts when using imagebrowser as a lightbox effect
|
585 |
-
* Fixed: Pagination not working for
|
586 |
|
587 |
= V2.0.66.33 - 11.24.2014 =
|
588 |
* Fixed: Broken NextGEN Pro ecommerce-related shortcodes
|
@@ -593,11 +614,11 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
593 |
|
594 |
= V2.0.66.29 - 09.17.2014 =
|
595 |
* NEW: Added skip_excluding_globally_excluded_images property to displayed gallery objects
|
596 |
-
* Fixed: SQL generation for random image selection
|
597 |
* Fixed: Adjust regex for replacing displayed gallery placeholder images
|
598 |
* Fixed: Removed filters to home_url needed previously for WMPL compatibility
|
599 |
* Fixed: Use canonical redirects when appropriate
|
600 |
-
* Fixed: Ability to override image files using XML-RPC
|
601 |
|
602 |
= V2.0.66.27 - 08.18.2014 =
|
603 |
* Fixed: Missing class.frame_communication_option_handler.php error
|
@@ -618,7 +639,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
618 |
* Secured: XSS vulnerability on Manage Albums page
|
619 |
|
620 |
= V2.0.66.16 - 07.30.2014 =
|
621 |
-
* NEW: Added new "limit" setting to Slideshow widgets
|
622 |
* NEW: Added a "ngg_routes" action for other plugins to hook into to provide new routes
|
623 |
* NEW: Added NGG_SKIP_LOAD_SCRIPTS constant, which existed in 1.9.x
|
624 |
* NEW: Added NGG_GALLERY_ROOT_TYPE constant. Set to 'content' to load galleries from the content_dir / content_url
|
@@ -632,7 +653,7 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
632 |
* NEW: Russian (ru_RU) language thanks to SnakeD3
|
633 |
* NEW: Spanish (es_ES) language thanks to Andrew Kurtis at WebHostingHub
|
634 |
* Changed: Updated Czech language thanks to Separatista; additional thanks to Martin Krizek for the original translation who was mistakenly unaccredited
|
635 |
-
* Changed: "Upgrade to Pro" page has new design,
|
636 |
* Changed: Basic Albums templates now given the image counter P element the class 'ngg-album-gallery-image-counter' (by user request)
|
637 |
* Changed: Gallery widgets now apply height:auto to their element; fixes compatibility with some themes
|
638 |
* Changed: Random galleries should be substantially faster now (1000% or more for large image tables)
|
@@ -648,14 +669,14 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
648 |
* Fixed: Flush 'all' caches when pope_module_list setting changes
|
649 |
* Fixed: Don't enqueue related images css in the admin
|
650 |
* Fixed: Basic Slideshows fixes WP creating extraneous P element above the slideshow display
|
651 |
-
* Fixed: Basic Singlepic will now display images marked 'excluded' in the admin
|
652 |
* Fixed: Admin pages can now update when the "Save" button text has been translated
|
653 |
|
654 |
= V2.0.66 - 05.20.2014 =
|
655 |
-
* Secured: Check mime type of image files using a variety of mechanisms
|
656 |
|
657 |
= V2.0.65 - 05.04.2014 =
|
658 |
-
* Secured: Limit uploads to images and zips
|
659 |
|
660 |
= V2.0.63 - 04.29.2014 =
|
661 |
* NEW: Translation ready
|
@@ -666,16 +687,16 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
666 |
* NEW: Bundled Browser+ JavaScript library
|
667 |
* NEW: Added NGG_DISABLE_FILTER_THE_CONTENT constant to manage conflicts
|
668 |
* Changed: Moved jquery.nextgen_radio_toggle.js to NextGEN Admin Module
|
669 |
-
* Changed: Original display settings are passed to secondary
|
670 |
-
* Fixed:
|
671 |
* Fixed: Copy IPTC data from original to new image when creating new sizes / thumbnails
|
672 |
-
* Fixed: Use correct absolute path when importing images in a multisite environment
|
673 |
* Fixed: Incorrect display of disk space quotas in multisite environments
|
674 |
* Fixed: Removed redundant roles form in multisite environments
|
675 |
* Fixed: Insert Gallery Window support for multisite environments
|
676 |
-
* Fixed: Incorrect handling of NextGEN Styles in multisite environments
|
677 |
* Fixed: Not honouring NGG_IMPORT_ROOT constant
|
678 |
-
* Fixed: Fixed inability to edit gallery properties using XMLRPC's edit_gallery method
|
679 |
* Fixed: Alignment issues in Basic Compact Albums caused by subalbums not displaying image 'counter'
|
680 |
* Fixed: Display setting forms compatibility issue with WordPress 3.9
|
681 |
* Fixed; Compability with jQuery Dialogs in WordPress 3.9
|
@@ -691,8 +712,8 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
691 |
* Fixed: Resource manager is manipulating feeds
|
692 |
* Fixed: Convert absolute urls to relative urls for lightboxes
|
693 |
* Fixed: Start the resource manager as early as we can within the init action
|
694 |
-
* Fixed: Routing problem for galleries with images named 1.jpg, 2.jpg, 3.jpg, etc.
|
695 |
-
* Fixed: Added tooltips to basic slideshow settings
|
696 |
* Fixed: Remove CKEditor's NextGEN button, which is incompatible with NextGEN Gallery 2.x
|
697 |
|
698 |
= V2.0.61 - 04.01.2014 =
|
@@ -726,10 +747,10 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
726 |
* Changed: Transients are removed every 30 minutes instead of 60 minutes
|
727 |
* Changed: Admin Page & Form components refactored to allow custom POST processing
|
728 |
* Changed: Default path for NEW multisite installations to wp-content/uploads/sites/%BLOG_ID%/nggallery/
|
729 |
-
* Fixed: Ability to upload ZIP files on Windows hosts
|
730 |
* Fixed: Support for filenames with non-ASCII characters
|
731 |
-
* Fixed: Dynamic updates in the
|
732 |
-
* Fixed:
|
733 |
* Fixed: Path issues on Windows Servers
|
734 |
* Fixed: Module installer integrity
|
735 |
* Fixed: Database query performance. No more joins to the WP options table
|
@@ -740,18 +761,18 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
740 |
* Fixed: Corrupted MediaRSS feeds
|
741 |
* Fixed: Padding on Gallery Settings and Other Options pages
|
742 |
* Fixed: Routing issues on subdirectory installs
|
743 |
-
* Fixed: Importing galleries using the
|
744 |
* Fixed: Gallery path calculations on Windows web servers
|
745 |
* Fixed: Sub-album urls not processed correctly
|
746 |
* Fixed: Apply maximum entity count to existing displayed galleries
|
747 |
-
* Fixed: NextGEN Gallery Thumbnail Widget shouldn't use ImageBrowser effect
|
748 |
-
* Fixed: Ability to set shuffle parameter for ImageRotator
|
749 |
-
* Fixed: PHP warning about HTMLDocument when displaying a SinglePic
|
750 |
-
* Fixed: Sanitization of gallery title
|
751 |
* Fixed: Home URL now used instead of Site URL in MediaRSS feed
|
752 |
-
* Fixed:
|
753 |
-
* Fixed:
|
754 |
-
* Fixed:
|
755 |
* Fixed: Maximum images limit not being applied for galleries already created.
|
756 |
* Fixed: Double forward slashes in static urls
|
757 |
* Fixed: Don't sleep when checking if the installer is running
|
@@ -774,28 +795,28 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
774 |
* NEW: Added NGG_IMPORT_ROOT constant. Define and set to TRUE to browse from a custom directory
|
775 |
* NEW: Added NGG_DEBUG constant. Define and set to TRUE to display helpful messages for debugging
|
776 |
* NEW: Each custom table record will have an associated custom post record for expansion
|
777 |
-
* NEW: Display helpful error messages
|
778 |
* NEW: Add data-(src|thumbnail|image-id|title|description) attribute to gallery image anchors
|
779 |
-
* NEW: Variant support for
|
780 |
* Fixed: Excessive creation of transients for random galleries
|
781 |
-
* Fixed:
|
782 |
* Fixed: Compatibility with NextGEN Gallery Export Plugin for Adobe Lightroom (thanks Vladimir!)
|
783 |
-
* Fixed: Sorting in the
|
784 |
* Fixed: HTML allowed in gallery/album descriptions
|
785 |
-
* Fixed: Requests for galleries within albums that have numeric names are broken
|
786 |
* Fixed: Call to a non-member function get() on WP_Query
|
787 |
-
* Fixed: Ability to sort by Image ID in the
|
788 |
-
* Fixed: Isolate the
|
789 |
* Fixed: Check for the existance of thumbnails when generating urls, and if missing, generate new ones
|
790 |
* Fixed: Compatibility with NextGEN Facebook OpenGraph+ plugin
|
791 |
* Fixed: Various XML-RPC issues
|
792 |
-
* Fixed:
|
793 |
* Fixed: Issue with color not being pre-selected when previewing Watermark
|
794 |
* Fixed: E_NOTICE emitted when cleaning up cached image files
|
795 |
-
* Fixed: E_NOTICE emitted when viewing
|
796 |
* Fixed: Typo adjusting pcre.backtrack_limit for shortcodes
|
797 |
-
* Fixed: Content within the tabs of the
|
798 |
-
* Fixed: Routing problem which would cause conflicts with different
|
799 |
* Fixed: Broken Dynamic CSS links on GoDaddy
|
800 |
* Fixed: Ability to use HTML in gallery/album descriptions
|
801 |
* Fixed: Sub-album requests conflicting with paginated galleries on the same page
|
@@ -803,90 +824,90 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
803 |
|
804 |
= V2.0.33 - 10.21.2013 =
|
805 |
* NEW: Requests /ngg_tag/[tagname] will create a displayed gallery
|
806 |
-
* NEW: Option added to "Import Gallery" tab to use original images
|
807 |
* Fixed: Links are broken on the ngg_tags-sitemap.xml file by WordPress SEO
|
808 |
* Fixed: PHP notice: Attempt to assign property of non-object
|
809 |
-
* Fixed: Undefined property warnings when using NextGEN Basic
|
810 |
* Fixed: Detect if an applying a transient to a displayed gallery was successful
|
811 |
* Fixed: Compatibility issues with BJ-Lazy-Load and Colorbox
|
812 |
-
* Fixed: Pagination conflicts for multiple
|
813 |
* Fixed: Ability to display previous exception with debug mode
|
814 |
-
* Fixed:
|
815 |
-
* Fixed: Load widgets.css when a widget is being used
|
816 |
* Fixed: Installer should remove all instances of the component factory
|
817 |
-
* Fixed:
|
818 |
* Fixed: Inability to upload images in some Windows host environments
|
819 |
-
* Fixed: Sorting images/galleries using the
|
820 |
* Fixed: Fix detection of HTTPS (pull request by Leonhardt Wille)
|
821 |
* Fixed: Compilation errors of regular expressions
|
822 |
* Fixed: Pro galleries wouldn't display in environments using PHP 5.3.3 or less
|
823 |
* Fixed: Scanning of router slug is now limited to the uri, not the url
|
824 |
* Fixed: Show slideshow link isn't required for thumbnail/imagebrowser integration
|
825 |
-
* Fixed: WordPress media-upload with 'singlepic' image
|
826 |
* Fixed: Use target=_blank when the link setting is provided for NextGEN Basic Singlepic
|
827 |
* Fixed: Only display rendering errors if WP_DEBUG is enabled
|
828 |
|
829 |
= V2.0.31 - 10.03.2013 =
|
830 |
-
* NEW: Restored AJAX pagination for NextGEN Basic ImageBrowser
|
831 |
* Fixed: Compatibility with WordPress Local SEO by Yoast
|
832 |
-
* Fixed: Inability to upload images if image_slug field was missing in database
|
833 |
* Fixed: Integration of NextGEN Basic Thumbnail and NextGEN Basic Slideshow display types
|
834 |
* Fixed: Photocrati Resource Manager further adjusted to be third-party friendly
|
835 |
* Fixed: Added the ability to find legacy templates in both the child/parent theme directories
|
836 |
-
* Fixed: JavaScript errors in
|
837 |
* Fixed: Router can handle port numbers in urls
|
838 |
* Fixed: Carousel template was linking to NextGEN Basic ImageBrowser view
|
839 |
-
* Fixed: SQL query generated for displayed galleries using tags as source
|
840 |
* Fixed: 3rd party compat: raise & never lower pcre.backtrack_limit
|
841 |
|
842 |
= V2.0.30 - 09.25.2013 =
|
843 |
-
* NEW: Restored the ability to use imagebrowser
|
844 |
-
* Changed: Displayed galleries are no longer rendered in RSS feeds
|
845 |
* Changed: Removed "Plugin Check" widget from overview page
|
846 |
* Fixed: Silence PHP warnings/errors in an output buffer for AJAX actions
|
847 |
* Fixed: Compatibility issue with WordPress SEO and broken site maps (and large error_logs)
|
848 |
* Fixed: Compatibility issue with AJAX Event Calendar (and possibly others)
|
849 |
* Fixed: Adjusted Photocrati Resource Manager to be third-party friendly
|
850 |
* Fixed: Fixed empty result set for displayed galleries selecting 'All' tags
|
851 |
-
* Fixed: URL generation for imagebrowser pagination links
|
852 |
-
* Fixed: Ensure that image meta is imported on creation
|
853 |
* Fixed: Ensure that transients are removed when an external object cache is used
|
854 |
-
* Fixed: Don't load pluggable.php. This will fix plugin conflicts
|
855 |
-
* Fixed: In
|
856 |
* Fixed: Don't output frame events cookie for XML-RPC requests
|
857 |
|
858 |
= V2.0.27 - 09.18.2013 =
|
859 |
* Fixed: Reduce performance impact of purging displayed gallery transients
|
860 |
|
861 |
= V2.0.25 - 09.18.2013 =
|
862 |
-
* Reverting to the 2.0.21 codebase, due to
|
863 |
|
864 |
= V2.0.23 - 09.16.2013 =
|
865 |
* NEW: WP-Cron job to periodically clean-up displayed gallery transients
|
866 |
* NEW: Added "excluded_container_ids" as parameter for ngg_images shortcode
|
867 |
-
* Fixed: Lightbox effect is honoured by all display types
|
868 |
-
* Fixed: Highslide displays
|
869 |
* Fixed: Ensure that sub-albums display correctly when the word "album" is part of a slug
|
870 |
* Fixed: Ensure that sub-albums display correctly when numerical slugs are used
|
871 |
* Fixed: Related images heading only added when Related Images functionality is enabled
|
872 |
* Fixed: PHP Warning about undefined index when viewing basic albums
|
873 |
* Fixed: AJAX handling is third-party compatible
|
874 |
-
* Fixed: Image date is no longer overwritten when
|
875 |
* Fixed: Fixed issue with displayed galleries using source='tags'
|
876 |
* Fixed: Problem with transient cache not getting flushed properly from Other Options page
|
877 |
* Fixed: Use correct gallery/transient ID when ajax pagination is used
|
878 |
|
879 |
= V2.0.21 - 09.09.2013 =
|
880 |
* NEW: Multisite support
|
881 |
-
* Changed: Default image quality set to 100 for generated images
|
882 |
* Changed: Removed dependence on simplehtmldom library
|
883 |
* Fixed: Related images functionality works as it did in 1.9.x
|
884 |
* Fixed: Don't compress inline JavaScript in post/page content
|
885 |
-
* Fixed: Click-to-advance slideshow behavior for slideshows
|
886 |
* Fixed: Security warnings from VaultPress
|
887 |
-
* Fixed: View as Slideshow link works with AJAX
|
888 |
-
* Fixed: Broken links on Overview page
|
889 |
-
* Fixed: Backup images option
|
890 |
* Fixed: Stylesheet url generated correctly for Windows hosts
|
891 |
* Fixed: Compatibility with NextGen Custom Fields plugin
|
892 |
* Fixed: Compatibility with Adsense Explosion plugin
|
@@ -896,11 +917,11 @@ For more information, feel free to visit the official website for the NextGEN Ga
|
|
896 |
Fixed: Match legacy behaviour when changing gallery path, i.e. don't move files
|
897 |
|
898 |
= V2.0.14 - 08.27.2013 =
|
899 |
-
* NEW: Added the ability to override thumbnail settings for NextGEN Basic Albums
|
900 |
* NEW: Shortcode Manager API, which ensures that shortcodes are outputted as intended
|
901 |
* Changed: Re-added the ability to select the original image size for widgets
|
902 |
* Fixed: Ensure that stylesheet url returned is correct for Windows hosts
|
903 |
-
* Fixed: Broken links and lightbox effects with AJAX pagination
|
904 |
* Fixed: Try to ensure that third party plugins don't add content to our dynamic JS
|
905 |
* Fixed: Improved reliability of iframely.js
|
906 |
* Fixed: Ensure that urls are generated correctly in HTTPs environments
|
@@ -911,8 +932,8 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
911 |
* NEW: Added "run_ngg_resource_manager" hook to by-pass our resource manager
|
912 |
* Changed: Removed "Reset & Uninstall" tab, for now
|
913 |
* Fixed: Compatibility with W3 Total Cache. Please flush cache after updating.
|
914 |
-
* Fixed: Conflicts with Photocrati Theme
|
915 |
-
* Fixed: Blank
|
916 |
* Fixed: Fixed ability to change Lightbox Effect settings
|
917 |
* Fixed: Implemented techniques to ensure WP_Query variables aren't overwritten
|
918 |
* Fixed: Enqueuing AJAX JS libraries twice in wp-admin
|
@@ -921,25 +942,25 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
921 |
* Fixed: Fixed installer issues
|
922 |
|
923 |
= V2.0.7 - 08.09.2013 =
|
924 |
-
* NEW: New resource manager that fixes
|
925 |
* NEW: Styles (custom stylesheets) should reside in wp-content/ngg_styles
|
926 |
* NEW: Added option to "Other Options -> Misc" to control maximum images returned
|
927 |
* Secured: Removed default connector for jQuery FileTree library
|
928 |
* Changed: Updated the simplehtmldom library to version 1.5
|
929 |
* Changed: jQuery is now enqueued at the beginning of every request
|
930 |
* Fixed: Incompatibilities with BuddyPress
|
931 |
-
* Fixed: Incompatibilities with Events+, bbPress, Custom Permalinks, and
|
932 |
* Fixed: Incompcatibilities with Member Access, AMember, Magic Fields, and More Fields
|
933 |
-
* Fixed: Incompatibilities with Elegant Themes, Oxygen, Responsive, and
|
934 |
-
* Fixed: Ensure that gallery images don't have a border by default
|
935 |
-
* Fixed: Conflict between imagebrowser and album urls
|
936 |
* Fixed: Reverted default gallerypath to wp-content/gallery/
|
937 |
* Fixed: Upgrade-safe way of overriding Styles
|
938 |
* Fixed: Generation of AJAX url is now based on slug
|
939 |
* Fixed: Restore nggShowGallery and nggShowSlideshow as wrappers to new API
|
940 |
* Fixed: Always use domain as specified by WordPress Site URL
|
941 |
* Fixed: Use WordPress Home URL over Site URL when appropriate
|
942 |
-
* Fixed: Numerous pagination issues
|
943 |
* Fixed: Adjusted our forms to comply with WordPress Firewalls
|
944 |
* Fixed: Correct use of select2 DOM selector for maximum compatibility
|
945 |
* Fixed: Path and URL calculations for Windows and UNIX environments
|
@@ -953,10 +974,10 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
953 |
|
954 |
= V2.0 - 07.30.2013 =
|
955 |
* NEW: Improved user experience throughout the plugin, settings and usage.
|
956 |
-
* NEW: Plupload queue uploader that allows for bulk and zip uploads within the same interface.
|
957 |
-
* NEW: Complete redesign of the NextGEN options panel
|
958 |
-
* NEW: Added new
|
959 |
-
* NEW: Galleries are now mobile friendly and responsive
|
960 |
* NEW: Streamlined functionality for displaying galleries based on tags.
|
961 |
* NEW: Architecture based on Pope Framework (http://bitbucket.org/photocrati/pope-framework)
|
962 |
* NEW: New shortcode, “ngg_images”, and corresponding Attach to Post interface
|
@@ -968,12 +989,12 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
968 |
* Changed: NextGEN styles now override vs replace default styles
|
969 |
* Changed: NextGEN legacy templates have been deprecated (but still function)
|
970 |
* FIXED: The ability to use NextGEN image as a Featured Image.
|
971 |
-
* FIXED:
|
972 |
|
973 |
= V1.9.13 - 06.11.2013 =
|
974 |
-
* NEW:
|
975 |
-
* Secured: Ensure that only logged in users can upload images
|
976 |
-
* Fixed:
|
977 |
* Fixed: Removed mention of upgrade.php, which no longer exists
|
978 |
|
979 |
= V1.9.12 - 02.15.2013 =
|
@@ -986,7 +1007,7 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
986 |
* Changed: Database schema is automatically updated when out-of-date
|
987 |
* Fixed: Fixed several incompatibility issues with Jetpack
|
988 |
* Fixed: Empty drop-down for "Page Link To"
|
989 |
-
* Fixed: Alphabetical image sorting
|
990 |
* Fixed: Compatibility with Arjuna X theme
|
991 |
* Fixed: “Creating default object from empty value†on album page
|
992 |
* Fixed: Compatibility issues with PHP 5.4 on album page
|
@@ -1002,10 +1023,10 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1002 |
* Fixed: Correct use of register_uninstall_hook
|
1003 |
* Fixed: CSS and usability issues with the TinyMCE window used to display galleries
|
1004 |
|
1005 |
-
* NEW: JW ImageRotator v3.17 is now bundled with the plugin and used by default.
|
1006 |
* Changed: Removed database upgrade code for versions of NextGEN Gallery earlier than 1.9.3
|
1007 |
* Fixed: Compatibility with WordPress v3.5 ( wpdb->prepare() warnings )
|
1008 |
-
* Fixed: Sorting by filename now produces expected results using a natural sorting algorithm
|
1009 |
|
1010 |
= V1.9.8 - 12.05.2012 =
|
1011 |
* Secured: Removed bundled version of swfupload. See fix below for SCM information.
|
@@ -1015,8 +1036,8 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1015 |
|
1016 |
= V1.9.7 - 11.13.2012 =
|
1017 |
* Secured: Removed bundled version of swfupload; using WordPress-bundled version instead for WordPress 3.2 instances
|
1018 |
-
* Changed: Using JQuery UI for the image sorting interface (thanks Tomás Soler)
|
1019 |
-
* Bugfix: Image uploads work in WP 3.2 when using Safari
|
1020 |
* Bugfix: Adjusted TinyMCE window to use built-in JavaScript libraries
|
1021 |
* Bugfix: Removed Photocrati acquisition announcement
|
1022 |
* Bugfix: Fixed incorrect usage of ImageJpeg() function
|
@@ -1033,7 +1054,7 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1033 |
* Changed: Branding changes following Photocrati acquisition (removed donation messages and updated links)
|
1034 |
* Secured: Use WordPress-bundled JavaScript libraries for swfobject and swfupload instead of bundling our own
|
1035 |
* Bugfix: Adjusted thickbox effect styling to ensure that the lightbox is always displayed in the foreground
|
1036 |
-
* Bugfix: Fixed
|
1037 |
* Bugfix: Fixed network-wide activation in WordPress 3.4
|
1038 |
* Bugfix: Plugin is no longer dependent on it's folder name
|
1039 |
|
@@ -1041,15 +1062,15 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1041 |
* Bugfix : Ensure to set the slug for "all" albums
|
1042 |
* Bugfix : Updated german translation ( THX to Roger Hunziker )
|
1043 |
* Bugfix : Ensure error checking on IPTC array (THX to Kristian Edlund)
|
1044 |
-
* Bugfix : Handle IE8 cached images better in slideshow
|
1045 |
-
* Bugfix : Show album preview image if selected (THX to Kristian Edlund)
|
1046 |
|
1047 |
= V1.9.2 - 17.01.2012 =
|
1048 |
* NEW : Added more XMLRPC commands (THX to Vladimir Vinogradsky)
|
1049 |
* Changed : Rework Post-thumbnail function (THX to Kristian Edlund)
|
1050 |
-
* Bugfix : Check first for valid images on unzip (only Mac OS zip-files)
|
1051 |
* Bugfix : Increase z-index for twenty eleven theme
|
1052 |
-
* Bugfix : Support non latin chars in tagcloud
|
1053 |
* Bugfix : Allow other tinymce intance
|
1054 |
* Bugfix : Better support for WPML translation
|
1055 |
|
@@ -1061,16 +1082,16 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1061 |
* Bugfix : IE7/IE8 width set correctly for edit album autocomplete field
|
1062 |
|
1063 |
= V1.9.0 - 27.11.2011 =
|
1064 |
-
* NEW : Keep
|
1065 |
* NEW : Switch to Plupload, support now HTML5 Upload (only with WordPress 3.3)
|
1066 |
-
* NEW : Added client side resize feature (only with WordPress 3.3)
|
1067 |
* NEW : Support for gallery templates in album shortcodes [ album id=x template="name" gallery="templatename" ]
|
1068 |
* NEW : Added new hook ngg_delete_picture
|
1069 |
* Changed : Updated to jQuery Cycle Version 2.9995
|
1070 |
* Changed : Always cache the single pictures, remove option
|
1071 |
* Bugfix : Couldn't use bulk operation for search results
|
1072 |
* Bugfix : Bugfix for Edit thumbnails under IE 8 + 9
|
1073 |
-
* Bugfix : Allow empty altext in ngg.editImage
|
1074 |
* Bugfix : Various PHP notice fixes
|
1075 |
* Bugfix : Resize fix for Shutter effect and mobile Browser
|
1076 |
* Bugfix : FTP Import missing slug field into database
|
@@ -1084,10 +1105,10 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1084 |
* Bugfix : Sub-Albums in Albums didn't create the correct link
|
1085 |
* Bugfix : AJAX Pagination didn't work anymore
|
1086 |
* Bugfix : Adding index.php to home_url()
|
1087 |
-
* Bugfix : Preview
|
1088 |
|
1089 |
= V1.8.2 - 12.07.2011 =
|
1090 |
-
* Bugfix : Set pagination variables for search result, otherwise update failed
|
1091 |
* Bugfix : Update failed for paged galleries since WordPress 3.2
|
1092 |
|
1093 |
= V1.8.1 - 18.06.2011 =
|
@@ -1098,21 +1119,21 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1098 |
|
1099 |
= V1.8.0 - 12.06.2011 =
|
1100 |
* NEW : Full rework of permalink url structure
|
1101 |
-
* NEW : Adding Google Sitemaps for
|
1102 |
* NEW : Support for WPML ( WordPress Multilingual Plugin )
|
1103 |
* NEW : Adding support for arrow key in shutter effect (THX to Flyvans)
|
1104 |
-
* NEW : Adding sort operation for
|
1105 |
* Changed : Updated pagination to new WP3.1 style
|
1106 |
* Bugfix : Create unique slug in a better way
|
1107 |
* Bugfix : Rework screen options filter for gallery and image table
|
1108 |
* Bugfix : Empty values in XMLRPC update calls are ignored
|
1109 |
* Bugfix : Create gallery failed when safe-mode on
|
1110 |
-
* Bugfix : Permalink didn't work in combination with album & imagebrowser
|
1111 |
|
1112 |
= V1.7.4 - 15.02.2011 =
|
1113 |
* Bugfix : Disallow direct call of ajax file to avoid path disclosure (THX to High-Tech Bridge SA)
|
1114 |
* Bugfix : Rework jQuery Cycle slideshow for IE compat reason (THX to Justin Dickenson)
|
1115 |
-
* Bugfix : Resize only larger images in slideshow
|
1116 |
* Bugfix : Improved image format detection in gd.thumbnail class (THX to Kupar.b)
|
1117 |
|
1118 |
= V1.7.3 - 20.01.2011 =
|
@@ -1124,7 +1145,7 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1124 |
* Bugfix : WP3.1 compat issue, show site admin page only on Multisite installation
|
1125 |
|
1126 |
= V1.7.2 - 13.12.2010 =
|
1127 |
-
* Bugfix : Adding images to database require slug (NOT NULL)
|
1128 |
|
1129 |
= V1.7.1 - 13.12.2010 =
|
1130 |
* Changed : Disable upgrade for PHP4 user
|
@@ -1143,35 +1164,35 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1143 |
* Bugfix : Install/Upgrade failed when table prefix contain captial letters
|
1144 |
* Bugfix : Fix validation issues in Media-RSS
|
1145 |
* Bugfix : Empty tags in XMP Meta causes PHP error
|
1146 |
-
* Bugfix : Rework load mechanism for slideshow
|
1147 |
-
* Bugfix : Copy meta data when image is copied
|
1148 |
* Bugfix : Icon Support for Ozh' Admin Drop Down Menu
|
1149 |
-
* Bugfix : Use correct sort order in slideshow
|
1150 |
|
1151 |
= V1.6.2 - 19.09.2010 =
|
1152 |
* NEW : Added constant NGG_SKIP_LOAD_SCRIPTS to avoid script load
|
1153 |
* Bugfix : Load Tags library with core files
|
1154 |
-
* Bugfix :
|
1155 |
-
* Bugfix : Load slideshow widget always
|
1156 |
* Changed : New admin notice for database upgrade
|
1157 |
-
* Changed : Rework crop feature for featured images
|
1158 |
* Changed : Use site_url() instead get_option ('siteurl'), required for SSL support
|
1159 |
|
1160 |
= V1.6.1 - 08.09.2010 =
|
1161 |
* Bugfix : Script load of swfobject.js failed
|
1162 |
-
* Bugfix : Show sideshow also with 1 or 2 images
|
1163 |
* Bugfix : Rework null byte check in zip upload
|
1164 |
|
1165 |
= V1.6.0 - 07.09.2010 =
|
1166 |
* NEW : Wordpress 3.0 Network (Multi-Site) support
|
1167 |
-
* NEW : Integrate jQuery Cycle as NON-Flash slideshow
|
1168 |
* NEW : Adding jQuery File Tree for import folder (THX to Sergey Pasyuk )
|
1169 |
* NEW : Added action hook 'ngg_show_imagebrowser_first' on custom request
|
1170 |
* NEW : Added filter hook 'ngg_slideshow_size' to resize sildeshow for mobile browser plugins
|
1171 |
* Changed : Reorder tabs for upload
|
1172 |
* Changed : New menu icon and screen icon (THX to Ben Dunkle)
|
1173 |
* Changed : Load frontend libs always
|
1174 |
-
* Changed : Rework of overview page
|
1175 |
* Bugfix : Security bugfix for Zip-Upload (THX to Dominic Szablewski)
|
1176 |
* Bugfix : Allow JPG, PNG, GIF extension
|
1177 |
* Bugfix : New German translation (THX to Martin Kramarz)
|
@@ -1188,12 +1209,12 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1188 |
* Bugfix : Esc_URL in Media RSS
|
1189 |
|
1190 |
= V1.5.3 - 11.04.2010 =
|
1191 |
-
* New : Adding pagination to footer
|
1192 |
-
* Changed : Perpare new filter to replace slideshow
|
1193 |
* Bugfix : Remove non-breaking space from navigation
|
1194 |
* Bugfix : Pagination of galleries
|
1195 |
* Bugfix : Fixed brackets position for old shortcode query
|
1196 |
-
* Bugfix : Slideshow option 'Show next image on click
|
1197 |
|
1198 |
= V1.5.2 - 25.03.2010 =
|
1199 |
* Bugfix : XSS security vulnerability (THX to Core Security Advisories Team , Pedro Varangot)
|
@@ -1201,13 +1222,13 @@ Fixed: Match legacy behaviour when changing gallery path, i.e. don't move fi
|
|
1201 |
|
1202 |
= V1.5.1 - 23.03.2010 =
|
1203 |
* Bugfix : PHP4 compat issue for Add gallery & options page
|
1204 |
-
* Bugfix :
|
1205 |
* Bugfix : Adding correct stripslash for gallery title
|
1206 |
|
1207 |
= V1.5.0 - 18.03.2010 =
|
1208 |
* NEW : Support for Post thumbnail feature
|
1209 |
-
* NEW : Backup and Recover function for
|
1210 |
-
* NEW : Resize
|
1211 |
* NEW : Added a JSON class for fetching galleries in a RESTful way (see xml/json.php)
|
1212 |
* NEW : Adding various new capabilities for user roles
|
1213 |
* NEW : Auto downloader for translation file
|
2 |
Contributors: photocrati, imagely
|
3 |
Tags: wordpress gallery plugin, gallery, nextgen, nextgen gallery, photo gallery, image gallery, photography, slideshow, images, photo, photo album, watermark
|
4 |
Requires at least: 4.0.0
|
5 |
+
Stable tag: 2.2.8
|
6 |
Tested up to: 4.7.3
|
7 |
License: GPLv2
|
8 |
|
12 |
|
13 |
= WordPress Gallery Plugin =
|
14 |
|
15 |
+
NextGEN Gallery has been the industry's standard **WordPress gallery plugin** since 2007 and continues to receive over 1.5 million new downloads per year. It's easy for simple photo galleries, but powerful enough for the most demanding photographers, visual artists, and imaging professionals.
|
16 |
|
17 |
+
On the back end, NextGEN offers a complete WordPress gallery management system with the ability to batch upload photos, import meta data, add/delete/rearrange/sort photos, edit thumbnails, group galleries into albums, and more.
|
18 |
|
19 |
+
On the front end, the free version of NextGEN provides two main gallery display styles (slideshows and thumbnail galleries) and two album styles (compact and extended), all of which come with a wide array of options for controlling size, style, timing, transitions, controls, lightbox effects, and more.
|
20 |
|
21 |
Learn more about <a href="https://www.imagely.com/wordpress-gallery-plugin/" target="_blank">NextGEN WordPress Gallery Plugin features.</a>
|
22 |
|
23 |
**Demos**<br>
|
24 |
*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-thumbnail-gallery/" target="_blank">Basic Thumbnail Gallery Demo</a><br>
|
25 |
+
*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-slideshow-gallery/" target="_blank">Basic Slideshow Gallery Demo</a><br>
|
26 |
*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-compact-album/" target="_blank">Basic Compact Album</a><br>
|
27 |
*<a href="https://www.imagely.com/wordpress-gallery-plugin/basic-extended-album/" target="_blank">Basic List Album</a><br>
|
28 |
|
29 |
+
**INTRODUCING NEXTGEN GALLERY PRO.** NextGEN Plus and NextGEN Pro are premium WordPress gallery plugin extensions for NextGEN Gallery that add new photo gallery displays, lightboxes, ecommerce, proofing, and pro support. Learn more about <a href="https://www.imagely.com/wordpress-gallery-plugin/" target="_blank">NextGEN Plus and NextGEN Pro photo plugin features.</a>
|
30 |
|
31 |
**Demos**<br>
|
32 |
*<a href="https://www.imagely.com/wordpress-gallery-plugin/pro-mosaic-gallery/" target="_blank">Pro Mosaic Gallery</a><br>
|
63 |
Photocrati Media 2012-2016<br>
|
64 |
Alex Rabe 2007-2011
|
65 |
|
66 |
+
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.
|
67 |
|
68 |
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
69 |
|
71 |
|
72 |
== Installation ==
|
73 |
|
74 |
+
INSTALLATION: The easiest way to start uploading your photos is to login to you WordPress dashboard, go to Plugins >> Add New, search for NextGEN Gallery, and click to install. You can also download the zip file from this page and upload it from the Plugins >> Add New > Upload page.
|
75 |
|
76 |
+
HOW TO USE: Just go to a page or post and click the NextGEN Gallery icon. From our Insert Gallery Window, you can create, manage, customize, and display your photo galleries. You can also manage your photo galleries and gallery settings from the central options area under the "Gallery" tab on your dashboard menu.
|
77 |
|
78 |
DOCUMENTATION: See <a href="https://www.imagely.com/docs/nextgen-gallery/" target="_blank">NextGEN Gallery Documentation</a>.
|
79 |
|
95 |
|
96 |
== Shortcode ==
|
97 |
|
98 |
+
NextGEN Gallery 2.x introduces our new Insert Gallery Window, which means you never need to work with shortcodes again if you would prefer not too.
|
99 |
|
100 |
If you do want to work with shortcodes, we've also introduce a new, more powerful, and more flexible shortcode system with NextGEN Gallery 2.0.
|
101 |
|
106 |
== Frequently Asked Questions ==
|
107 |
|
108 |
|
109 |
+
= Why are my photo galleries not opening up in a lightbox after I move my site? =
|
110 |
|
111 |
This is often due to the URL paths to the CSS and JavaScript files used by the Lightbox Effects not being changed to relevant addresses based on the new site. This article will help sort out this issue if that is the case: <a href="https://www.imagely.com/docs/galleries-opening-lightbox/" target="_blank">Why are my galleries not opening up in a lightbox?</a>.
|
112 |
|
120 |
Part of what makes the NextGEN Gallery WordPress gallery plugin so popular is its flexibility - it works with the vast majority of premium and free themes, without requiring any coding.
|
121 |
|
122 |
|
123 |
+
= Are the photo galleries flash based? =
|
124 |
|
125 |
+
No, NextGEN Gallery uses Javascript and jQuery based displays to ensure compatibility across the widest range of displays possible.
|
126 |
|
127 |
|
128 |
= Are the galleries mobile friendly? =
|
129 |
|
130 |
+
Yes, since we use Javascript rather than flash, NextGEN Gallery is compatible with Android, iOS, and Blackberry. As of July 2013, all photo galleries are responsive. NextGEN Pro also includes a full screen, responsive Pro Lightbox with mobile gesture support.
|
131 |
|
132 |
|
133 |
= What is the difference between a gallery and an album? =
|
134 |
|
135 |
+
In the simplest of terms, Galleries contain your photos and Albums contain your Galleries. Albums act as links and placeholders to quickly and easily navigate your galleries - Galleries will actually display your images.
|
136 |
|
137 |
|
138 |
= Can I upload multiple images at once? =
|
139 |
|
140 |
+
Yes, you can batch upload entire photo galleries at one time.
|
141 |
|
142 |
|
143 |
= Can I password protect galleries? =
|
144 |
|
145 |
+
Yes, WordPress allows you to password protect pages by default - which includes all photo galleries and content for the entire page. Password protection of pages can be turned on and off at any time, with just a few clicks.
|
146 |
|
147 |
|
148 |
+
= Can I add a watermark to the photos/slideshows? =
|
149 |
|
150 |
Yes, you can add text or image watermarks to your gallery images.
|
151 |
|
155 |
Yes, each thumbnail image can be individually adjusted to suit your needs.
|
156 |
|
157 |
|
158 |
+
= Is there pagination for photo galleries? =
|
159 |
|
160 |
Yes, and you can adjust the amount of images to be shown on a page at any time.
|
161 |
|
187 |
|
188 |
== Changelog ==
|
189 |
|
190 |
+
= V2.2.8 - 06.13.2016 =
|
191 |
+
* Changed: Removed custom Freeius opt-in message
|
192 |
+
* Changed: New design and video for Upgrade to Pro page
|
193 |
+
* Changed: Added namespacing to NGG-generated transients
|
194 |
+
* Fixed: Better error reporting for the XML-RPC method, ngg.uploadImage
|
195 |
+
* Fixed: Thumbnail editing links missing when locale uses RTL language such as Hebrew
|
196 |
+
* Fixed: Roles and Capabilities discrepancy with displaying NextGEN Gallery UI elements
|
197 |
+
* Fixed: Fancybox lightbox effect not compatible with Pro Mosaic galleries
|
198 |
+
* Fixed: Basic Tagcloud does not honor display type setting when editing in IGW
|
199 |
+
* Fixed: Basic Tagcloud allows selection of Pro display types when NGG Pro is disabled
|
200 |
+
* Fixed: Limit display types available in "Display galleries as" setting for albums
|
201 |
+
* Fixed: Special characters in `show_slideshow_text` parameter causing inserted display to not be editable.
|
202 |
+
* Fixed: NGG Basic Slideshow not honoring transition effect setting
|
203 |
+
* Fixed: Image tags that are no longer should be removed
|
204 |
+
* Fixed: Spacing preserved when our shortcodes are placed with other content
|
205 |
+
* Fixed: Breadcrumbs in albums when slug is shared between gallery and album
|
206 |
+
* Fixed: get_unique_slug() creating invalid SQL query when gallery name contains quote characters
|
207 |
+
* Fixed: /ngg_tags pages displaying comments from all posts
|
208 |
+
* Fixed: PHP warning when saving image meta data
|
209 |
+
* Fixed: Fix incompatibility with WPML pagination due to overriding $_SERVER['REQUEST_URI']
|
210 |
+
|
211 |
= V2.2.3 - 04.05.2017 =
|
212 |
* Fixed: E_WARNING on Gallery Settings page due to improper use of array_combine() on PHP <= 5.3
|
213 |
|
214 |
= V2.2.2 - 04.04.2017 =
|
215 |
+
* Fixed: Hyperlinks in image or photo descriptions
|
216 |
* Fixed: WordPress SEO sitemap image count
|
217 |
* Fixed: Removed id parameter in shortcodes
|
218 |
* Fixed: Fatal error in Freemius code
|
219 |
|
220 |
= V2.2.1 - 03.13.2017 =
|
221 |
+
* NEW: Template mechanism for all gallery types
|
222 |
* NEW: Review notices
|
223 |
+
* Changed: Updated gallery plugin branding to Imagely
|
224 |
* Changed: Added the ability to click on a gallery title and have it open direct to Pro Lightbox
|
225 |
* Fixed: Problems with activation after initial installation
|
226 |
* Fixed: Don't display legacy shortcodes after creating new galleries
|
227 |
+
* Fixed: False positive malware detection notices against 'eval'
|
228 |
* Fixed: Various PHP notices and warnings
|
229 |
+
* Fixed: Issue with dynamic container height for Imagebrowser photo galleries
|
230 |
|
231 |
= V2.1.79 - 02.23.2017 =
|
232 |
+
* Secured: Resolved vulnerability with tag cloud galleries
|
233 |
|
234 |
= V2.1.77 - 01.31.2017 =
|
235 |
* Changed: Corrected Facebook link
|
236 |
* Changed: Tags in readme.txt
|
237 |
+
* Fixed: Problem deactivating other plugins
|
238 |
|
239 |
= V2.1.69 - 01.18.2017 =
|
240 |
* Fixed: Ensured compatibility with WordPress 4.7.1
|
241 |
+
* Fixed: Missing option names on setting pages when Gallery Wizard active
|
242 |
* Fixed: Ensure that NextGEN Gallery is always loaded after it's extension plugins in WP 4.7
|
243 |
* Fixed: Pope product uninstaller not running during activation
|
244 |
|
247 |
* Fixed: The ability to dismiss the gallery wizard notice
|
248 |
|
249 |
= V2.1.61 - 12.14.2016 =
|
250 |
+
* NEW: Photo gallery creation wizard for new users
|
251 |
* Fixed: Shortcodes in widgets not getting substituted in Divi
|
252 |
* Fixed: Ensure that NGG placeholder text doesn't get styled incorrectly by other themes
|
253 |
* Fixed: Various thickbox issues on custom post type pages
|
260 |
* Secured: Ability to customize CSS Styles
|
261 |
* Changed: readme.txt improvements
|
262 |
* Fixed: Compatibility with WordPress 4.7.0
|
263 |
+
* Fixed: IGW-inserted tagcloud galleries are incorrect in some cases
|
264 |
|
265 |
= V2.1.57 - 11.14.2016 =
|
266 |
* Secured: Custom Styles may only be written to specific directories
|
267 |
* Secured: SQL injection vulnerability for gallery names
|
268 |
+
* Changed: Gallery type icons are now clickable in the Insert Gallery Window
|
269 |
* Changed: Include backup image files when coping/moving a gallery
|
270 |
* Changed: Show gallery name in upload notification
|
271 |
* Changed: Added placeholder text to gallery name field on Add Gallery / Upload Images page
|
276 |
* Fixed: Conflict with Easy Digital Downloads
|
277 |
* Fixed: Misc invalid HTML tags in admin pages (thanks to kniebremser)
|
278 |
* Fixed: Change display:hidden to visibility:hidden in various places
|
279 |
+
* Fixed: Escaping of quotes in photo gallery titles and urls
|
280 |
* Fixed: Untranslatable strings
|
281 |
|
282 |
|
285 |
|
286 |
= V2.1.54 - 10.25.2016 =
|
287 |
* NEW: Added php docblock directives for code hinting/completion
|
288 |
+
* NEW: Gallery display types can have aliases
|
289 |
* NEW: Visual Shortcodes
|
290 |
* Changed: Now uses gulp for package compilation & JS/CSS minification
|
291 |
* Changed: Updated Freemius SDK to 1.2.1
|
292 |
* Fixed: Extraneous backslashes being added to gallery titles & descriptions
|
293 |
+
* Fixed: Import folder 'gallery title' field wasn't being used for new photo gallery titles
|
294 |
* Fixed: Settings reset will now redirect to /wp-admin/ to avoid potential activation-related errors
|
295 |
* Fixed: Table columns cache becomes out of date between versions
|
296 |
* Fixed: Various issues with shortcodes when used in widgets
|
301 |
* NEW: Added the ability to open galleries within albums using a lightbox
|
302 |
* Changed: Increased freemius opt-in to 100%
|
303 |
* Changed: Tamara Lackey's biography on the overview page
|
304 |
+
* Fixed: Images and photos not responsive for all gallery types
|
305 |
* Fixed: Compatibility with the Imagely Lightroom plugin
|
306 |
* Fixed: Removed Pope tests folder
|
307 |
* Fixed: Maximum function nesting level fatal error when displaying two or more albums
|
314 |
* NEW: Added notice for deprecating PHP 5.2
|
315 |
* NEW: Option to display child gallery and album descriptions when viewing albums
|
316 |
* Changed: ATP preview images are smaller with tighter margins to show more images
|
317 |
+
* Changed: Content of Upgrade to Pro WordPress gallery plugin page
|
318 |
* Changed: New NextGEN Overview page
|
319 |
* Changed: Replicate gallery name sanitation of NG legacy for gallery paths
|
320 |
* Fixed: Resolved all found PHP warnings/notices/deprecations and strict errors
|
321 |
* Fixed: Compatibility on Windows servers with network mounted document roots
|
322 |
* Fixed: Ensure EXIF meta data is loaded from the appropriate exif_data array instead of exif_array
|
323 |
+
* Fixed: Gallery Settings toggle not functioning in all cases
|
324 |
* Fixed: Uploading breaking when thumbnail or image resizing fails due to lack of specific format support for image libraries
|
325 |
* Fixed: Warning generated in nggallery.php checking useMediaRSS option
|
326 |
|
337 |
* NEW: Gulp build system
|
338 |
* NEW: Added "ngg_igw_placeholder_line_2_settings" and "ngg_igw_placeholder_line_1_settings" filters
|
339 |
* NEW: Added "ngg_settings_during_image_generation" filter to adjust image generation
|
340 |
+
* NEW: Added "ngg_before_save_thumbnail" filter for image and photo manipulation abilities
|
341 |
+
* NEW: Added the ability to apply GD filters during image and photo generation
|
342 |
* NEW: Integrated with WordPress SEO sitemaps to show include NGG images in image counts
|
343 |
* Changed: Links to manage a gallery after it's been created don't appear in the IGW
|
344 |
* Fixed: Freemius code shouldn't be minified
|
362 |
|
363 |
= V2.1.33 - 04.25.2016 =
|
364 |
* Fixed: Compatibility with themes and plugins which enqueue underscore.js in the head of the document
|
365 |
+
* Fixed: Ensure that shutter reloaded can find its image assets
|
366 |
|
367 |
= V2.1.31 - 04.05.2016 =
|
368 |
* NEW: Added constant NGG_SCRIPT_VERSION that is either the plugin version or rand() should SCRIPT_DEBUG be on
|
373 |
* Fixed: Compatibility with WPML String Translation when uploading images without title or description
|
374 |
* Fixed: Made get_image_url() encode gallery directory names 'because%this%is' a valid directory
|
375 |
* Fixed: Manage Galleries > Search results not saving when edited
|
376 |
+
* Fixed: Imagebrowser gallery templates not using AJAX pagination when enabled
|
377 |
* Fixed: Resource manager breaking the layout of the Multisite Plugin Activation page
|
378 |
* Fixed: Static url generation when the nextgen-gallery directory is a symlink outside of the WordPress roots
|
379 |
|
416 |
* Fixed: Problem deleting interframe communication cookies
|
417 |
|
418 |
= V2.1.15 - 09.09.2015 =
|
419 |
+
* Secured: Image, photo, and gallery uploadsuploads
|
420 |
* Fixed: Don't use esc_attr_e() to prevent translation issues
|
421 |
* Fixed: Ensure that deleting a gallery doesn't delete anything it shouldn't
|
422 |
* Fixed: get_gallery_abspath() should return NULL if the path doesn't exist
|
423 |
|
424 |
= V2.1.13 - 09.09.2015 =
|
425 |
+
* Secured: Image, photo, and gallery uploads
|
426 |
* Fixed: Don't use esc_attr_e() to present translation issues
|
427 |
|
428 |
= V2.1.10 - 09.01.2015 =
|
429 |
+
* Secured: Escape output of parameters in gallery templates to avoid XSS
|
430 |
|
431 |
= V2.1.9 - 08.25.2015 =
|
432 |
* NEW: Added ngg_manage_galleries_items_per_page filter
|
444 |
* Fixed: Cornerstone/X compatibility
|
445 |
* Fixed: Recovering images was 'generating' from backup instead of copying
|
446 |
* Fixed: Setting post thumbnail more than once on a page/post
|
447 |
+
* Fixed: Permanently hide gallery types from ATP without an active POPE module
|
448 |
|
449 |
= V2.1.2 - 07.20.2015 =
|
450 |
+
* NEW: Ability to import photos from Media Library
|
451 |
* NEW: Added filter 'ngg_datamapper_table_name'
|
452 |
* NEW: Added filter `ngg_legacy_template_directories` for legacy template locator (thanks Ross McKay)
|
453 |
* NEW: Pagination available onManage Images page
|
459 |
* Fixed: Ability to set NextGEN Image as Featured Image
|
460 |
* Fixed: Don't use resource manager in download requests for WP Photo Shelter
|
461 |
* Fixed: Updated custom jQuery-UI styling to resemble WordPress postbox styling
|
462 |
+
* Fixed: Styled plupload photo upload buttons to resemble WordPress buttons
|
463 |
* Fixed: Removed 'fixed' class from manage galleries table. Allows columns to adjust to content
|
464 |
* Fixed: Removed note about flash support and fixed typoe (thanks Rene Wolf)
|
465 |
* Fixed: Fixed typo in nggallery.po
|
469 |
* Fixed: Adjusted album-compact template to always include p.ngg-album-gallery-image-counter
|
470 |
* Fixed: Replaced empty gallery rendering in is_feed() with a link
|
471 |
* Fixed: Removed default settings for imagerotator, which is no longer supported
|
472 |
+
* Fixed: Optimizated scanning of images and photos when importing a gallery
|
473 |
* Fixed: When a gallery is deleted, ensure that DB and filesystem are purged
|
474 |
* Fixed: Removed Insert Gallery Window box shadow
|
475 |
* Fixed: Ensure that file_exists() calls are prefixed with @
|
484 |
* NEW: Added ngg_manage_images_items_per_page filter
|
485 |
* NEW: Added "ngg_get_image_url" filter
|
486 |
* NEW: Including Ukranian and Polish translations
|
487 |
+
* NEW: The ability to set template in gallery widgets
|
488 |
* Changed: Default thumbnail dimensions set to 240x160
|
489 |
* Changed: Product now adheres to Pope 0.12 and provides get_modules_to_load()
|
490 |
* Changed: Updated translations
|
521 |
* Fixed: Use of C_Gallery_Mapper in C_Image_Wrapper
|
522 |
* Fixed: Properly handle themes that don't call wp_footer() or wp_print_footer_scripts()
|
523 |
* Fixed: Warning about missing style.php file on Network Admin -> Gallery page
|
524 |
+
* Fixed: Warning about getimagesize() failure when backing up an image or photo
|
525 |
|
526 |
= v2.0.79 - 03.20.2015 =
|
527 |
* Secured: Sanitized C_Displayed_Gallery->_add_find_in_set_column() third parameter
|
532 |
* Fixed: Use of C_Gallery_Mapper in C_Image_Wrapper
|
533 |
* Fixed: Properly handle themes that don't call wp_footer() or wp_print_footer_scripts()
|
534 |
* Fixed: Warning about missing style.php file on Network Admin -> Gallery page
|
535 |
+
* Fixed: Warning about getimagesize() failure when backing up an image or photo
|
536 |
|
537 |
= V2.0.78 - 03.12.2015 =
|
538 |
+
* Secured: AJAX actions for uploading photos and importing folders now uses nonce checks
|
539 |
|
540 |
= V2.0.77 - 03.05.2015 =
|
541 |
* NEW: Added "ngg_get_image_url" filter
|
542 |
* Changed: Use a more reliable means of excluding Pro/Plus modules from using minified static resources
|
543 |
+
* Fixed: Imagebrowser gallery pagination with custom templates
|
544 |
* Fixed: Custom CSS is enqueued late to ensure it's one of the last stylesheets loaded
|
545 |
* Fixed: Fixed watermarking PNG images
|
546 |
* Fixed: Using the "Import Metadata" bulk action overwrites existing data
|
550 |
* Fixed: Restored nggdb->get_random_images(), nggdb->search_for_file, and nggdb->find_all_albums()
|
551 |
* Fixed: Allow gallery slug as parameter to nggdb::get_gallery()
|
552 |
* Fixed: Don't minify Plupload's i18n JavaScript
|
553 |
+
* Fixed: Custom template images and photos not being given their full effect code attributes
|
554 |
|
555 |
= V2.0.76 - 02.24.2015 =
|
556 |
* Fixed: Compatibility checks for very old versions of NextGEN Pro
|
568 |
= V2.0.71 - 02.19.2015 =
|
569 |
* NEW: Module files are compiled into a single package file to reduce disk I/O
|
570 |
* NEW: All CSS stylesheets and Javascript source files are minified to reduce latency
|
571 |
+
* NEW: All photo lightboxes are configured using an in-memory management class.
|
572 |
* NEW: Uses Pope 2.0, benefiting from the new caching capabilities
|
573 |
* NEW: NextGEN Gallery's functionality is disabled if NextGEN Pro is incompatible
|
574 |
* NEW: Added ngg_effect_code filter
|
575 |
* Changed: Updated FontAwesome to 4.3.0
|
576 |
* Changed: Updated select2 to 3.5.2
|
577 |
+
* Changed: Removed PicLens / CoolIris gallery integration
|
578 |
* Changed: Removed JSON API. Please use XML-RPC API instead
|
579 |
* Changed: For performance reasons, we cache FS & url lookups/calculations
|
580 |
* Changed: Greatly reduced the # of sql queries, and eliminated anything redundant
|
585 |
* Changed: Insert Gallery Window is routed using wp-admin/admin_init
|
586 |
* Changed: Removed unused code from ngglegacy module. Created wrappers for commonly-used functions
|
587 |
* Changed: LZW module removed
|
588 |
+
* Changed: Legacy gallery template drop-down selection now using select2
|
589 |
* Secured: Restrict folder browsing to NGG_IMPORT_ROOT constant
|
590 |
* Fixed: Compatibility issue with PHP's transparent ZLIB compression
|
591 |
* Fixed: Imagebrowser as lightbox effect not working when non-default permalink slug used
|
592 |
* Fixed: Angled quotations marks used in shortcode parameters
|
593 |
+
* Fixed: Compatibility between ImageBrowser gallery and TwentyFifteen theme
|
594 |
* Fixed: Allow pagination to retain query string url parameters when linking to other pages
|
595 |
* Fixed: Fixed pagination issues with slideshow galleries displayed as thumbnails
|
596 |
* Fixed: Fix C_GalleryStorage_Driver_Base->import_gallery_from_fs() not checking imgBackup
|
597 |
* Fixed: Fixed problem with default settings being applied multiple times
|
598 |
+
* Fixed: Fallback to "full" image / photo sizes if "backup" images aren't available
|
599 |
* Fixed: Use M_DataMapper's serialization methods throughout the codebase
|
600 |
* Fixed: Conflict with WordPress SEO and get_the_excerpt() call
|
601 |
* Fixed: Don't run Resource Manager on wp-login.php or wp-sign.php
|
602 |
+
* Fixed: TinyMCE Image Editor conflict with Insert Gallery Window placeholder images/photos
|
603 |
* Fixed: Fix Shutter positioning when admin bar is displayed
|
604 |
+
* Fixed: Allow deselection of a legacy gallery template
|
605 |
+
* Fixed: Prevent conflicts when using imagebrowser gallery as a lightbox effect
|
606 |
+
* Fixed: Pagination not working for slideshow galleries using thumbnail integration
|
607 |
|
608 |
= V2.0.66.33 - 11.24.2014 =
|
609 |
* Fixed: Broken NextGEN Pro ecommerce-related shortcodes
|
614 |
|
615 |
= V2.0.66.29 - 09.17.2014 =
|
616 |
* NEW: Added skip_excluding_globally_excluded_images property to displayed gallery objects
|
617 |
+
* Fixed: SQL generation for random photo/image selection
|
618 |
* Fixed: Adjust regex for replacing displayed gallery placeholder images
|
619 |
* Fixed: Removed filters to home_url needed previously for WMPL compatibility
|
620 |
* Fixed: Use canonical redirects when appropriate
|
621 |
+
* Fixed: Ability to override image/photo files using XML-RPC
|
622 |
|
623 |
= V2.0.66.27 - 08.18.2014 =
|
624 |
* Fixed: Missing class.frame_communication_option_handler.php error
|
639 |
* Secured: XSS vulnerability on Manage Albums page
|
640 |
|
641 |
= V2.0.66.16 - 07.30.2014 =
|
642 |
+
* NEW: Added new "limit" setting to Slideshow gallery widgets
|
643 |
* NEW: Added a "ngg_routes" action for other plugins to hook into to provide new routes
|
644 |
* NEW: Added NGG_SKIP_LOAD_SCRIPTS constant, which existed in 1.9.x
|
645 |
* NEW: Added NGG_GALLERY_ROOT_TYPE constant. Set to 'content' to load galleries from the content_dir / content_url
|
653 |
* NEW: Russian (ru_RU) language thanks to SnakeD3
|
654 |
* NEW: Spanish (es_ES) language thanks to Andrew Kurtis at WebHostingHub
|
655 |
* Changed: Updated Czech language thanks to Separatista; additional thanks to Martin Krizek for the original translation who was mistakenly unaccredited
|
656 |
+
* Changed: "Upgrade to Pro" WordPress gallery plugin page has new design, includes NextGEN Plus
|
657 |
* Changed: Basic Albums templates now given the image counter P element the class 'ngg-album-gallery-image-counter' (by user request)
|
658 |
* Changed: Gallery widgets now apply height:auto to their element; fixes compatibility with some themes
|
659 |
* Changed: Random galleries should be substantially faster now (1000% or more for large image tables)
|
669 |
* Fixed: Flush 'all' caches when pope_module_list setting changes
|
670 |
* Fixed: Don't enqueue related images css in the admin
|
671 |
* Fixed: Basic Slideshows fixes WP creating extraneous P element above the slideshow display
|
672 |
+
* Fixed: Basic Singlepic will now display images/photos marked 'excluded' in the admin
|
673 |
* Fixed: Admin pages can now update when the "Save" button text has been translated
|
674 |
|
675 |
= V2.0.66 - 05.20.2014 =
|
676 |
+
* Secured: Check mime type of image/photo files using a variety of mechanisms
|
677 |
|
678 |
= V2.0.65 - 05.04.2014 =
|
679 |
+
* Secured: Limit uploads to images/photos and zips
|
680 |
|
681 |
= V2.0.63 - 04.29.2014 =
|
682 |
* NEW: Translation ready
|
687 |
* NEW: Bundled Browser+ JavaScript library
|
688 |
* NEW: Added NGG_DISABLE_FILTER_THE_CONTENT constant to manage conflicts
|
689 |
* Changed: Moved jquery.nextgen_radio_toggle.js to NextGEN Admin Module
|
690 |
+
* Changed: Original display settings are passed to secondary gallery types
|
691 |
+
* Fixed: Photo thumbnail dimension calculations are inaccurate by 1px when maintaining aspect ratio
|
692 |
* Fixed: Copy IPTC data from original to new image when creating new sizes / thumbnails
|
693 |
+
* Fixed: Use correct absolute path when importing images or photos in a multisite environment
|
694 |
* Fixed: Incorrect display of disk space quotas in multisite environments
|
695 |
* Fixed: Removed redundant roles form in multisite environments
|
696 |
* Fixed: Insert Gallery Window support for multisite environments
|
697 |
+
* Fixed: Incorrect handling of NextGEN Gallery Styles in multisite environments
|
698 |
* Fixed: Not honouring NGG_IMPORT_ROOT constant
|
699 |
+
* Fixed: Fixed inability to edit photo gallery properties using XMLRPC's edit_gallery method
|
700 |
* Fixed: Alignment issues in Basic Compact Albums caused by subalbums not displaying image 'counter'
|
701 |
* Fixed: Display setting forms compatibility issue with WordPress 3.9
|
702 |
* Fixed; Compability with jQuery Dialogs in WordPress 3.9
|
712 |
* Fixed: Resource manager is manipulating feeds
|
713 |
* Fixed: Convert absolute urls to relative urls for lightboxes
|
714 |
* Fixed: Start the resource manager as early as we can within the init action
|
715 |
+
* Fixed: Routing problem for photo galleries with images named 1.jpg, 2.jpg, 3.jpg, etc.
|
716 |
+
* Fixed: Added tooltips to basic slideshow gallery settings
|
717 |
* Fixed: Remove CKEditor's NextGEN button, which is incompatible with NextGEN Gallery 2.x
|
718 |
|
719 |
= V2.0.61 - 04.01.2014 =
|
747 |
* Changed: Transients are removed every 30 minutes instead of 60 minutes
|
748 |
* Changed: Admin Page & Form components refactored to allow custom POST processing
|
749 |
* Changed: Default path for NEW multisite installations to wp-content/uploads/sites/%BLOG_ID%/nggallery/
|
750 |
+
* Fixed: Ability to upload ZIP files for photos and galleries on Windows hosts
|
751 |
* Fixed: Support for filenames with non-ASCII characters
|
752 |
+
* Fixed: Dynamic updates in the Insert Gallery Window (interframe communication)
|
753 |
+
* Fixed: Insert Gallery Window freezing in IE11
|
754 |
* Fixed: Path issues on Windows Servers
|
755 |
* Fixed: Module installer integrity
|
756 |
* Fixed: Database query performance. No more joins to the WP options table
|
761 |
* Fixed: Corrupted MediaRSS feeds
|
762 |
* Fixed: Padding on Gallery Settings and Other Options pages
|
763 |
* Fixed: Routing issues on subdirectory installs
|
764 |
+
* Fixed: Importing photo galleries using the Insert Gallery Window
|
765 |
* Fixed: Gallery path calculations on Windows web servers
|
766 |
* Fixed: Sub-album urls not processed correctly
|
767 |
* Fixed: Apply maximum entity count to existing displayed galleries
|
768 |
+
* Fixed: NextGEN Gallery Thumbnail Widget shouldn't use ImageBrowser gallery effect
|
769 |
+
* Fixed: Ability to set shuffle parameter for ImageRotator slideshow galleries
|
770 |
+
* Fixed: PHP warning about HTMLDocument when displaying a SinglePic photo
|
771 |
+
* Fixed: Sanitization of photo gallery title
|
772 |
* Fixed: Home URL now used instead of Site URL in MediaRSS feed
|
773 |
+
* Fixed: Insert Gallery Window broken when WPML is installed
|
774 |
+
* Fixed: Insert Gallery Window instructing browser to cache the page
|
775 |
+
* Fixed: Photo watermarking not working in low-memory environments
|
776 |
* Fixed: Maximum images limit not being applied for galleries already created.
|
777 |
* Fixed: Double forward slashes in static urls
|
778 |
* Fixed: Don't sleep when checking if the installer is running
|
795 |
* NEW: Added NGG_IMPORT_ROOT constant. Define and set to TRUE to browse from a custom directory
|
796 |
* NEW: Added NGG_DEBUG constant. Define and set to TRUE to display helpful messages for debugging
|
797 |
* NEW: Each custom table record will have an associated custom post record for expansion
|
798 |
+
* NEW: Display helpful error messages for image and photo upload issues
|
799 |
* NEW: Add data-(src|thumbnail|image-id|title|description) attribute to gallery image anchors
|
800 |
+
* NEW: Variant support for photo gallery sources. Random images is limited to 5 variations
|
801 |
* Fixed: Excessive creation of transients for random galleries
|
802 |
+
* Fixed: Some issues interfering with photo and gallery uploads
|
803 |
* Fixed: Compatibility with NextGEN Gallery Export Plugin for Adobe Lightroom (thanks Vladimir!)
|
804 |
+
* Fixed: Sorting photos in the Insert Gallery Window interface
|
805 |
* Fixed: HTML allowed in gallery/album descriptions
|
806 |
+
* Fixed: Requests for photo galleries within albums that have numeric names are broken
|
807 |
* Fixed: Call to a non-member function get() on WP_Query
|
808 |
+
* Fixed: Ability to sort by Image ID in the Insert Gallery Window
|
809 |
+
* Fixed: Isolate the Insert Gallery Window from implicit third-party script inclusion
|
810 |
* Fixed: Check for the existance of thumbnails when generating urls, and if missing, generate new ones
|
811 |
* Fixed: Compatibility with NextGEN Facebook OpenGraph+ plugin
|
812 |
* Fixed: Various XML-RPC issues
|
813 |
+
* Fixed: Gallery widget stylesheet not included
|
814 |
* Fixed: Issue with color not being pre-selected when previewing Watermark
|
815 |
* Fixed: E_NOTICE emitted when cleaning up cached image files
|
816 |
+
* Fixed: E_NOTICE emitted when viewing gallery type settings
|
817 |
* Fixed: Typo adjusting pcre.backtrack_limit for shortcodes
|
818 |
+
* Fixed: Content within the tabs of the Insert Gallery Window cut-off
|
819 |
+
* Fixed: Routing problem which would cause conflicts with different gallery types on the same page
|
820 |
* Fixed: Broken Dynamic CSS links on GoDaddy
|
821 |
* Fixed: Ability to use HTML in gallery/album descriptions
|
822 |
* Fixed: Sub-album requests conflicting with paginated galleries on the same page
|
824 |
|
825 |
= V2.0.33 - 10.21.2013 =
|
826 |
* NEW: Requests /ngg_tag/[tagname] will create a displayed gallery
|
827 |
+
* NEW: Option added to "Import Gallery" tab to use original images and photos
|
828 |
* Fixed: Links are broken on the ngg_tags-sitemap.xml file by WordPress SEO
|
829 |
* Fixed: PHP notice: Attempt to assign property of non-object
|
830 |
+
* Fixed: Undefined property warnings when using NextGEN Basic Thumbnail gallery
|
831 |
* Fixed: Detect if an applying a transient to a displayed gallery was successful
|
832 |
* Fixed: Compatibility issues with BJ-Lazy-Load and Colorbox
|
833 |
+
* Fixed: Pagination conflicts for multiple Imagebrowser galleries on the same page
|
834 |
* Fixed: Ability to display previous exception with debug mode
|
835 |
+
* Fixed: Tagcloud galleries not working in multisite instances
|
836 |
+
* Fixed: Load widgets.css when a gallery widget is being used
|
837 |
* Fixed: Installer should remove all instances of the component factory
|
838 |
+
* Fixed: Gallery widget settings interface not intuitive
|
839 |
* Fixed: Inability to upload images in some Windows host environments
|
840 |
+
* Fixed: Sorting images/galleries using the Insert Gallery Windwo
|
841 |
* Fixed: Fix detection of HTTPS (pull request by Leonhardt Wille)
|
842 |
* Fixed: Compilation errors of regular expressions
|
843 |
* Fixed: Pro galleries wouldn't display in environments using PHP 5.3.3 or less
|
844 |
* Fixed: Scanning of router slug is now limited to the uri, not the url
|
845 |
* Fixed: Show slideshow link isn't required for thumbnail/imagebrowser integration
|
846 |
+
* Fixed: WordPress media-upload with 'singlepic' image and photo sizes
|
847 |
* Fixed: Use target=_blank when the link setting is provided for NextGEN Basic Singlepic
|
848 |
* Fixed: Only display rendering errors if WP_DEBUG is enabled
|
849 |
|
850 |
= V2.0.31 - 10.03.2013 =
|
851 |
+
* NEW: Restored AJAX gallery pagination for NextGEN Basic ImageBrowser gallery
|
852 |
* Fixed: Compatibility with WordPress Local SEO by Yoast
|
853 |
+
* Fixed: Inability to upload images and photos if image_slug field was missing in database
|
854 |
* Fixed: Integration of NextGEN Basic Thumbnail and NextGEN Basic Slideshow display types
|
855 |
* Fixed: Photocrati Resource Manager further adjusted to be third-party friendly
|
856 |
* Fixed: Added the ability to find legacy templates in both the child/parent theme directories
|
857 |
+
* Fixed: JavaScript errors in Insert Gallery Window
|
858 |
* Fixed: Router can handle port numbers in urls
|
859 |
* Fixed: Carousel template was linking to NextGEN Basic ImageBrowser view
|
860 |
+
* Fixed: SQL query generated for displayed photo galleries using tags as source
|
861 |
* Fixed: 3rd party compat: raise & never lower pcre.backtrack_limit
|
862 |
|
863 |
= V2.0.30 - 09.25.2013 =
|
864 |
+
* NEW: Restored the ability to use imagebrowser gallery type instead of a lightbox effect
|
865 |
+
* Changed: Displayed photo galleries are no longer rendered in RSS feeds
|
866 |
* Changed: Removed "Plugin Check" widget from overview page
|
867 |
* Fixed: Silence PHP warnings/errors in an output buffer for AJAX actions
|
868 |
* Fixed: Compatibility issue with WordPress SEO and broken site maps (and large error_logs)
|
869 |
* Fixed: Compatibility issue with AJAX Event Calendar (and possibly others)
|
870 |
* Fixed: Adjusted Photocrati Resource Manager to be third-party friendly
|
871 |
* Fixed: Fixed empty result set for displayed galleries selecting 'All' tags
|
872 |
+
* Fixed: URL generation for imagebrowser gallery pagination links
|
873 |
+
* Fixed: Ensure that photo and image meta is imported on creation
|
874 |
* Fixed: Ensure that transients are removed when an external object cache is used
|
875 |
+
* Fixed: Don't load pluggable.php. This will fix some plugin conflicts
|
876 |
+
* Fixed: In Insert Gallery Window, galleries created in one tab weren't showing in another
|
877 |
* Fixed: Don't output frame events cookie for XML-RPC requests
|
878 |
|
879 |
= V2.0.27 - 09.18.2013 =
|
880 |
* Fixed: Reduce performance impact of purging displayed gallery transients
|
881 |
|
882 |
= V2.0.25 - 09.18.2013 =
|
883 |
+
* Reverting to the 2.0.21 codebase, due to performance issues in 2.0.23 and 2.0.24
|
884 |
|
885 |
= V2.0.23 - 09.16.2013 =
|
886 |
* NEW: WP-Cron job to periodically clean-up displayed gallery transients
|
887 |
* NEW: Added "excluded_container_ids" as parameter for ngg_images shortcode
|
888 |
+
* Fixed: Lightbox effect is honoured by all gallery display types
|
889 |
+
* Fixed: Highslide displays photos from the correct displayed galleries
|
890 |
* Fixed: Ensure that sub-albums display correctly when the word "album" is part of a slug
|
891 |
* Fixed: Ensure that sub-albums display correctly when numerical slugs are used
|
892 |
* Fixed: Related images heading only added when Related Images functionality is enabled
|
893 |
* Fixed: PHP Warning about undefined index when viewing basic albums
|
894 |
* Fixed: AJAX handling is third-party compatible
|
895 |
+
* Fixed: Image date is no longer overwritten when a photo is modified
|
896 |
* Fixed: Fixed issue with displayed galleries using source='tags'
|
897 |
* Fixed: Problem with transient cache not getting flushed properly from Other Options page
|
898 |
* Fixed: Use correct gallery/transient ID when ajax pagination is used
|
899 |
|
900 |
= V2.0.21 - 09.09.2013 =
|
901 |
* NEW: Multisite support
|
902 |
+
* Changed: Default image quality set to 100 for generated images and photos
|
903 |
* Changed: Removed dependence on simplehtmldom library
|
904 |
* Fixed: Related images functionality works as it did in 1.9.x
|
905 |
* Fixed: Don't compress inline JavaScript in post/page content
|
906 |
+
* Fixed: Click-to-advance photo slideshow behavior for slideshows
|
907 |
* Fixed: Security warnings from VaultPress
|
908 |
+
* Fixed: View as Slideshow link works with AJAX paginated galleries
|
909 |
+
* Fixed: Broken links on WordPress gallery plugin Overview page
|
910 |
+
* Fixed: Backup images option not working in some cases
|
911 |
* Fixed: Stylesheet url generated correctly for Windows hosts
|
912 |
* Fixed: Compatibility with NextGen Custom Fields plugin
|
913 |
* Fixed: Compatibility with Adsense Explosion plugin
|
917 |
Fixed: Match legacy behaviour when changing gallery path, i.e. don't move files
|
918 |
|
919 |
= V2.0.14 - 08.27.2013 =
|
920 |
+
* NEW: Added the ability to override photo thumbnail settings for NextGEN Basic Albums
|
921 |
* NEW: Shortcode Manager API, which ensures that shortcodes are outputted as intended
|
922 |
* Changed: Re-added the ability to select the original image size for widgets
|
923 |
* Fixed: Ensure that stylesheet url returned is correct for Windows hosts
|
924 |
+
* Fixed: Broken links and lightbox effects with AJAX gallery pagination
|
925 |
* Fixed: Try to ensure that third party plugins don't add content to our dynamic JS
|
926 |
* Fixed: Improved reliability of iframely.js
|
927 |
* Fixed: Ensure that urls are generated correctly in HTTPs environments
|
932 |
* NEW: Added "run_ngg_resource_manager" hook to by-pass our resource manager
|
933 |
* Changed: Removed "Reset & Uninstall" tab, for now
|
934 |
* Fixed: Compatibility with W3 Total Cache. Please flush cache after updating.
|
935 |
+
* Fixed: Conflicts with Photocrati Theme galleries
|
936 |
+
* Fixed: Blank Insert Gallery Window occuring in some cases
|
937 |
* Fixed: Fixed ability to change Lightbox Effect settings
|
938 |
* Fixed: Implemented techniques to ensure WP_Query variables aren't overwritten
|
939 |
* Fixed: Enqueuing AJAX JS libraries twice in wp-admin
|
942 |
* Fixed: Fixed installer issues
|
943 |
|
944 |
= V2.0.7 - 08.09.2013 =
|
945 |
+
* NEW: New resource manager that fixes some plugin and theme incompatibilities
|
946 |
* NEW: Styles (custom stylesheets) should reside in wp-content/ngg_styles
|
947 |
* NEW: Added option to "Other Options -> Misc" to control maximum images returned
|
948 |
* Secured: Removed default connector for jQuery FileTree library
|
949 |
* Changed: Updated the simplehtmldom library to version 1.5
|
950 |
* Changed: jQuery is now enqueued at the beginning of every request
|
951 |
* Fixed: Incompatibilities with BuddyPress
|
952 |
+
* Fixed: Incompatibilities with Events+, bbPress, Custom Permalinks, and other plugins
|
953 |
* Fixed: Incompcatibilities with Member Access, AMember, Magic Fields, and More Fields
|
954 |
+
* Fixed: Incompatibilities with Elegant Themes, Oxygen, Responsive, and some other themes
|
955 |
+
* Fixed: Ensure that gallery images and photos don't have a border by default
|
956 |
+
* Fixed: Conflict between imagebrowser gallery and album urls
|
957 |
* Fixed: Reverted default gallerypath to wp-content/gallery/
|
958 |
* Fixed: Upgrade-safe way of overriding Styles
|
959 |
* Fixed: Generation of AJAX url is now based on slug
|
960 |
* Fixed: Restore nggShowGallery and nggShowSlideshow as wrappers to new API
|
961 |
* Fixed: Always use domain as specified by WordPress Site URL
|
962 |
* Fixed: Use WordPress Home URL over Site URL when appropriate
|
963 |
+
* Fixed: Numerous gallery pagination issues
|
964 |
* Fixed: Adjusted our forms to comply with WordPress Firewalls
|
965 |
* Fixed: Correct use of select2 DOM selector for maximum compatibility
|
966 |
* Fixed: Path and URL calculations for Windows and UNIX environments
|
974 |
|
975 |
= V2.0 - 07.30.2013 =
|
976 |
* NEW: Improved user experience throughout the plugin, settings and usage.
|
977 |
+
* NEW: Plupload queue photo uploader that allows for bulk and zip uploads within the same interface.
|
978 |
+
* NEW: Complete redesign of the NextGEN Gallery options panel
|
979 |
+
* NEW: Added new Insert Gallery Window for adding galleries from pages and posts.
|
980 |
+
* NEW: Galleries are now mobile friendly and responsive (may need a responsive theme).
|
981 |
* NEW: Streamlined functionality for displaying galleries based on tags.
|
982 |
* NEW: Architecture based on Pope Framework (http://bitbucket.org/photocrati/pope-framework)
|
983 |
* NEW: New shortcode, “ngg_images”, and corresponding Attach to Post interface
|
989 |
* Changed: NextGEN styles now override vs replace default styles
|
990 |
* Changed: NextGEN legacy templates have been deprecated (but still function)
|
991 |
* FIXED: The ability to use NextGEN image as a Featured Image.
|
992 |
+
* FIXED: Misc bugs and annoyances, such as PHP warnings, errors, etc.
|
993 |
|
994 |
= V1.9.13 - 06.11.2013 =
|
995 |
+
* NEW: Slideshow galleries are now centered to their content area
|
996 |
+
* Secured: Ensure that only logged in users can upload images and photos
|
997 |
+
* Fixed: Photo import date is presered are no longer Jan 1 1970
|
998 |
* Fixed: Removed mention of upgrade.php, which no longer exists
|
999 |
|
1000 |
= V1.9.12 - 02.15.2013 =
|
1007 |
* Changed: Database schema is automatically updated when out-of-date
|
1008 |
* Fixed: Fixed several incompatibility issues with Jetpack
|
1009 |
* Fixed: Empty drop-down for "Page Link To"
|
1010 |
+
* Fixed: Alphabetical image and photo gallery sorting
|
1011 |
* Fixed: Compatibility with Arjuna X theme
|
1012 |
* Fixed: “Creating default object from empty value†on album page
|
1013 |
* Fixed: Compatibility issues with PHP 5.4 on album page
|
1023 |
* Fixed: Correct use of register_uninstall_hook
|
1024 |
* Fixed: CSS and usability issues with the TinyMCE window used to display galleries
|
1025 |
|
1026 |
+
* NEW: JW ImageRotator v3.17 is now bundled with the photo plugin and used by default.
|
1027 |
* Changed: Removed database upgrade code for versions of NextGEN Gallery earlier than 1.9.3
|
1028 |
* Fixed: Compatibility with WordPress v3.5 ( wpdb->prepare() warnings )
|
1029 |
+
* Fixed: Sorting by photo filename now produces expected results using a natural sorting algorithm
|
1030 |
|
1031 |
= V1.9.8 - 12.05.2012 =
|
1032 |
* Secured: Removed bundled version of swfupload. See fix below for SCM information.
|
1036 |
|
1037 |
= V1.9.7 - 11.13.2012 =
|
1038 |
* Secured: Removed bundled version of swfupload; using WordPress-bundled version instead for WordPress 3.2 instances
|
1039 |
+
* Changed: Using JQuery UI for the image gallery sorting interface (thanks Tomás Soler)
|
1040 |
+
* Bugfix: Image and photo uploads work in WP 3.2 when using Safari
|
1041 |
* Bugfix: Adjusted TinyMCE window to use built-in JavaScript libraries
|
1042 |
* Bugfix: Removed Photocrati acquisition announcement
|
1043 |
* Bugfix: Fixed incorrect usage of ImageJpeg() function
|
1054 |
* Changed: Branding changes following Photocrati acquisition (removed donation messages and updated links)
|
1055 |
* Secured: Use WordPress-bundled JavaScript libraries for swfobject and swfupload instead of bundling our own
|
1056 |
* Bugfix: Adjusted thickbox effect styling to ensure that the lightbox is always displayed in the foreground
|
1057 |
+
* Bugfix: Fixed compat issues with Contact Form 7 and other plugins by following WordPress Plugin conventions
|
1058 |
* Bugfix: Fixed network-wide activation in WordPress 3.4
|
1059 |
* Bugfix: Plugin is no longer dependent on it's folder name
|
1060 |
|
1062 |
* Bugfix : Ensure to set the slug for "all" albums
|
1063 |
* Bugfix : Updated german translation ( THX to Roger Hunziker )
|
1064 |
* Bugfix : Ensure error checking on IPTC array (THX to Kristian Edlund)
|
1065 |
+
* Bugfix : Handle IE8 cached images better in gallery slideshow
|
1066 |
+
* Bugfix : Show album preview image or photo if selected (THX to Kristian Edlund)
|
1067 |
|
1068 |
= V1.9.2 - 17.01.2012 =
|
1069 |
* NEW : Added more XMLRPC commands (THX to Vladimir Vinogradsky)
|
1070 |
* Changed : Rework Post-thumbnail function (THX to Kristian Edlund)
|
1071 |
+
* Bugfix : Check first for valid images or photos on unzip (only Mac OS zip-files)
|
1072 |
* Bugfix : Increase z-index for twenty eleven theme
|
1073 |
+
* Bugfix : Support non latin chars in tagcloud gallery
|
1074 |
* Bugfix : Allow other tinymce intance
|
1075 |
* Bugfix : Better support for WPML translation
|
1076 |
|
1082 |
* Bugfix : IE7/IE8 width set correctly for edit album autocomplete field
|
1083 |
|
1084 |
= V1.9.0 - 27.11.2011 =
|
1085 |
+
* NEW : Keep image transparency for PNG and GIF format
|
1086 |
* NEW : Switch to Plupload, support now HTML5 Upload (only with WordPress 3.3)
|
1087 |
+
* NEW : Added client side photo resize feature (only with WordPress 3.3)
|
1088 |
* NEW : Support for gallery templates in album shortcodes [ album id=x template="name" gallery="templatename" ]
|
1089 |
* NEW : Added new hook ngg_delete_picture
|
1090 |
* Changed : Updated to jQuery Cycle Version 2.9995
|
1091 |
* Changed : Always cache the single pictures, remove option
|
1092 |
* Bugfix : Couldn't use bulk operation for search results
|
1093 |
* Bugfix : Bugfix for Edit thumbnails under IE 8 + 9
|
1094 |
+
* Bugfix : Allow empty photo altext in ngg.editImage
|
1095 |
* Bugfix : Various PHP notice fixes
|
1096 |
* Bugfix : Resize fix for Shutter effect and mobile Browser
|
1097 |
* Bugfix : FTP Import missing slug field into database
|
1105 |
* Bugfix : Sub-Albums in Albums didn't create the correct link
|
1106 |
* Bugfix : AJAX Pagination didn't work anymore
|
1107 |
* Bugfix : Adding index.php to home_url()
|
1108 |
+
* Bugfix : Preview photo lost on backend gallery page 2 or higher
|
1109 |
|
1110 |
= V1.8.2 - 12.07.2011 =
|
1111 |
+
* Bugfix : Set gallery pagination variables for search result, otherwise update failed
|
1112 |
* Bugfix : Update failed for paged galleries since WordPress 3.2
|
1113 |
|
1114 |
= V1.8.1 - 18.06.2011 =
|
1119 |
|
1120 |
= V1.8.0 - 12.06.2011 =
|
1121 |
* NEW : Full rework of permalink url structure
|
1122 |
+
* NEW : Adding Google Sitemaps for images and photos(require WordPress SEO plugin by YOAST )
|
1123 |
* NEW : Support for WPML ( WordPress Multilingual Plugin )
|
1124 |
* NEW : Adding support for arrow key in shutter effect (THX to Flyvans)
|
1125 |
+
* NEW : Adding sort operation for WordPress gallery plugin overview page
|
1126 |
* Changed : Updated pagination to new WP3.1 style
|
1127 |
* Bugfix : Create unique slug in a better way
|
1128 |
* Bugfix : Rework screen options filter for gallery and image table
|
1129 |
* Bugfix : Empty values in XMLRPC update calls are ignored
|
1130 |
* Bugfix : Create gallery failed when safe-mode on
|
1131 |
+
* Bugfix : Permalink didn't work in combination with album & imagebrowser gallery
|
1132 |
|
1133 |
= V1.7.4 - 15.02.2011 =
|
1134 |
* Bugfix : Disallow direct call of ajax file to avoid path disclosure (THX to High-Tech Bridge SA)
|
1135 |
* Bugfix : Rework jQuery Cycle slideshow for IE compat reason (THX to Justin Dickenson)
|
1136 |
+
* Bugfix : Resize only larger images or photos in slideshow
|
1137 |
* Bugfix : Improved image format detection in gd.thumbnail class (THX to Kupar.b)
|
1138 |
|
1139 |
= V1.7.3 - 20.01.2011 =
|
1145 |
* Bugfix : WP3.1 compat issue, show site admin page only on Multisite installation
|
1146 |
|
1147 |
= V1.7.2 - 13.12.2010 =
|
1148 |
+
* Bugfix : Adding images or photos to database require slug (NOT NULL)
|
1149 |
|
1150 |
= V1.7.1 - 13.12.2010 =
|
1151 |
* Changed : Disable upgrade for PHP4 user
|
1164 |
* Bugfix : Install/Upgrade failed when table prefix contain captial letters
|
1165 |
* Bugfix : Fix validation issues in Media-RSS
|
1166 |
* Bugfix : Empty tags in XMP Meta causes PHP error
|
1167 |
+
* Bugfix : Rework load mechanism for gallery slideshow
|
1168 |
+
* Bugfix : Copy meta data when image or photo is copied
|
1169 |
* Bugfix : Icon Support for Ozh' Admin Drop Down Menu
|
1170 |
+
* Bugfix : Use correct sort order in gallery slideshow
|
1171 |
|
1172 |
= V1.6.2 - 19.09.2010 =
|
1173 |
* NEW : Added constant NGG_SKIP_LOAD_SCRIPTS to avoid script load
|
1174 |
* Bugfix : Load Tags library with core files
|
1175 |
+
* Bugfix : Photo slideshow script failed in IE7, load script now in header
|
1176 |
+
* Bugfix : Load gallery slideshow widget always
|
1177 |
* Changed : New admin notice for database upgrade
|
1178 |
+
* Changed : Rework crop feature for featured images and photos
|
1179 |
* Changed : Use site_url() instead get_option ('siteurl'), required for SSL support
|
1180 |
|
1181 |
= V1.6.1 - 08.09.2010 =
|
1182 |
* Bugfix : Script load of swfobject.js failed
|
1183 |
+
* Bugfix : Show gallery sideshow also with 1 or 2 images
|
1184 |
* Bugfix : Rework null byte check in zip upload
|
1185 |
|
1186 |
= V1.6.0 - 07.09.2010 =
|
1187 |
* NEW : Wordpress 3.0 Network (Multi-Site) support
|
1188 |
+
* NEW : Integrate jQuery Cycle as NON-Flash photo slideshow
|
1189 |
* NEW : Adding jQuery File Tree for import folder (THX to Sergey Pasyuk )
|
1190 |
* NEW : Added action hook 'ngg_show_imagebrowser_first' on custom request
|
1191 |
* NEW : Added filter hook 'ngg_slideshow_size' to resize sildeshow for mobile browser plugins
|
1192 |
* Changed : Reorder tabs for upload
|
1193 |
* Changed : New menu icon and screen icon (THX to Ben Dunkle)
|
1194 |
* Changed : Load frontend libs always
|
1195 |
+
* Changed : Rework of WordPress gallery plugin overview page
|
1196 |
* Bugfix : Security bugfix for Zip-Upload (THX to Dominic Szablewski)
|
1197 |
* Bugfix : Allow JPG, PNG, GIF extension
|
1198 |
* Bugfix : New German translation (THX to Martin Kramarz)
|
1209 |
* Bugfix : Esc_URL in Media RSS
|
1210 |
|
1211 |
= V1.5.3 - 11.04.2010 =
|
1212 |
+
* New : Adding gallery pagination to footer
|
1213 |
+
* Changed : Perpare new filter to replace photo slideshow
|
1214 |
* Bugfix : Remove non-breaking space from navigation
|
1215 |
* Bugfix : Pagination of galleries
|
1216 |
* Bugfix : Fixed brackets position for old shortcode query
|
1217 |
+
* Bugfix : Slideshow option 'Show next image on click' has wrong default value
|
1218 |
|
1219 |
= V1.5.2 - 25.03.2010 =
|
1220 |
* Bugfix : XSS security vulnerability (THX to Core Security Advisories Team , Pedro Varangot)
|
1222 |
|
1223 |
= V1.5.1 - 23.03.2010 =
|
1224 |
* Bugfix : PHP4 compat issue for Add gallery & options page
|
1225 |
+
* Bugfix : WordPress gallery plugin widget can now have a empty title
|
1226 |
* Bugfix : Adding correct stripslash for gallery title
|
1227 |
|
1228 |
= V1.5.0 - 18.03.2010 =
|
1229 |
* NEW : Support for Post thumbnail feature
|
1230 |
+
* NEW : Backup and Recover function for photos (THX to Simone Fumagalli)
|
1231 |
+
* NEW : Resize photos after upload (THX to Simone Fumagalli)
|
1232 |
* NEW : Added a JSON class for fetching galleries in a RESTful way (see xml/json.php)
|
1233 |
* NEW : Adding various new capabilities for user roles
|
1234 |
* NEW : Auto downloader for translation file
|