diff --git a/src/code/class-i-order-terms.php b/src/code/class-i-order-terms.php index 1244ff2..f3fd636 100644 --- a/src/code/class-i-order-terms.php +++ b/src/code/class-i-order-terms.php @@ -17,7 +17,7 @@ class I_Order_Terms { const PLUGIN_NAME = 'I Order Terms'; - const PLUGIN_VERSION = '1.5.0'; + const PLUGIN_VERSION = '1.5.2'; const WP_MIN_VERSION = '3.5'; const PLUGIN_BASENAME = 'i-order-terms/i-order-terms.php'; const PLUGIN_OPTIONS_PAGE = 'iorderterms_general'; @@ -27,12 +27,12 @@ class I_Order_Terms /** @var string Plugin URL */ private $plugin_url; - /** @var array List of notices for admin users */ - private $notices = array(); - /** @var array Taxonomies list */ - private $taxonomies = array(); - /** @var array Taxonomies that require custom sorting */ - private $taxonomies_registered = array(); + /** @var string[] List of notices for admin users */ + private $notices = []; + /** @var string[] Taxonomies list */ + private $taxonomies = []; + /** @var string[] Taxonomies that require custom sorting */ + private $taxonomies_registered = []; /** @@ -230,7 +230,7 @@ public function terms_clauses( $clauses, $taxonomies, $args ) // default sorting is to use custom order if ( isset( $args['orderby'] ) && $args['orderby'] !== 'name' ) return $clauses; - // accept only single taxonomy queries & only if taxonomy is registered for custom sorting + // accept only single taxonomy queries and only if taxonomy is registered for custom sorting if ( /* count( $taxonomies ) !== 1 || */ !in_array( $taxonomies[0], $this->taxonomies ) ) return $clauses; // user sorting by a column diff --git a/src/i-order-terms.php b/src/i-order-terms.php index f34f7a5..047d5ce 100644 --- a/src/i-order-terms.php +++ b/src/i-order-terms.php @@ -3,7 +3,7 @@ * Plugin Name: I Order Terms * Plugin URI: https://wordpress.org/plugins/i-order-terms/ * Description: Allows theme developers to add order/sort functionality for categories, tags and terms. - * Version: 1.5.0 + * Version: 1.5.2 * Requires at least: 3.5 * Requires PHP: 5.6 * Author: Igor Jerosimic diff --git a/src/js/admin-i-order-terms.js b/src/js/admin-i-order-terms.js index d3574a9..aff4e06 100644 --- a/src/js/admin-i-order-terms.js +++ b/src/js/admin-i-order-terms.js @@ -5,12 +5,17 @@ * @author Igor Jerosimic */ -// inspired by Simple Page Ordering plugin ( https://wordpress.org/plugins/simple-page-ordering/ ) +// Inspired by the Simple Page Ordering plugin ( https://wordpress.org/plugins/simple-page-ordering/ ) jQuery(document).ready(function($) { "use strict"; - function get_term_id(el) + /** + * Get term ID from element. + * @param el + * @returns {number|undefined} + */ + function getTermId(el) { var ret; @@ -18,7 +23,7 @@ jQuery(document).ready(function($) ret = parseInt(el.find('.check-column input').val(), 10); if (!ret) { - // try to find term ID by other means + // Try to find the term ID by other means ret = parseInt(el.attr('id').replace('tag-', ''), 10); } @@ -53,69 +58,69 @@ jQuery(document).ready(function($) var $term = ui.item, - $term_prev = $term.prev(), - $term_next = $term.next(), - $checker_holder = $term.find('.check-column'), + $termPrev = $term.prev(), + $termNext = $term.next(), + $checkerHolder = $term.find('.check-column'), $checker = $term.find('.check-column input'), taxonomy = $taxonomy[0].value, - term_id = get_term_id($term), - // term_parent_id = parseInt($term.find('.parent').text(), 10), - prev_term_id = get_term_id($term_prev), - next_term_id = get_term_id($term_next), - prev_term_parent_id, - next_term_parent_id; + termId = getTermId($term), + // termParentId = parseInt($term.find('.parent').text(), 10), + prevTermId = getTermId($termPrev), + nextTermId = getTermId($termNext), + prevTermParentId, + nextTermParentId; - // get parent ID's - if ($term_prev.length && prev_term_id !== undefined) { - prev_term_parent_id = parseInt($term_prev.find('.parent').text(), 10); + // Get parent ID's + if ($termPrev.length && prevTermId !== undefined) { + prevTermParentId = parseInt($termPrev.find('.parent').text(), 10); } - if ($term_next.length && next_term_id !== undefined) { - next_term_parent_id = parseInt($term_next.find('.parent').text(), 10); + if ($termNext.length && nextTermId !== undefined) { + nextTermParentId = parseInt($termNext.find('.parent').text(), 10); } - // at least one of prev/next should be present + // At least one of prev/next should be present // don't allow moving items in between its own children - if ((prev_term_id === undefined && next_term_id === undefined) || - (prev_term_parent_id === term_id) || - (next_term_parent_id === term_id) + if ((prevTermId === undefined && nextTermId === undefined) || + (prevTermParentId === termId) || + (nextTermParentId === termId) ) { $sort.sortable('cancel'); return; } - // disable new reorder until ajax returns + // Disable new reorder until ajax returns $sort.sortable('disable'); - // show spinner + // Show spinner if ($checker.length) { //$checker.hide().after(''); $checker.hide().after(''); } else { - //$checker_holder.append(''); - $checker_holder.prepend(''); + //$checkerHolder.append(''); + $checkerHolder.prepend(''); } - // force terms reload to avoid badly positioned children (visually) - var force_reload = (next_term_id === undefined && next_term_parent_id === prev_term_id); + // Force terms reload to avoid badly positioned children (visually) + var forceReload = (nextTermId === undefined && nextTermParentId === prevTermId); - // send sort cmd via ajax + // Send sort cmd via ajax var data = { action: 'i-order-terms', nonce: (iOrderTerms && iOrderTerms.nonce) ? iOrderTerms.nonce : '', - term_id: term_id, - term_prev_id: prev_term_id, - term_next_id: next_term_id, + term_id: termId, + term_prev_id: prevTermId, + term_next_id: nextTermId, taxonomy: taxonomy, - force_reload: force_reload + force_reload: forceReload }; - $.post(ajaxurl, data, function(response) { + $.post(ajaxurl, data, function (response) { var $ajaxResponse = $('#ajax-response'); $ajaxResponse.empty(); @@ -137,22 +142,22 @@ jQuery(document).ready(function($) console.error(response.message); } - // remove spinner + // Remove spinner if ($checker.length) { //$checker.show().siblings('img').remove(); $checker.show().siblings('.spinner').remove(); } else { - //$checker_holder.children('img').remove(); - $checker_holder.children('.spinner').remove(); + //$checkerHolder.children('img').remove(); + $checkerHolder.children('.spinner').remove(); } - // enable sorting again + // Enable sorting again $sort.sortable('enable'); }, 'json'); - // fix table row colors - $('table.wp-list-table > tbody > tr').each(function(index, el) { + // Fix table row colors + $('table.wp-list-table > tbody > tr').each(function (index, el) { if (index % 2 === 0) { $(el).addClass('alternate'); } else { @@ -163,8 +168,8 @@ jQuery(document).ready(function($) }); - // catch add-tag ajax calls - $(document).ajaxSuccess(function(event, xhr, settings) { + // Catch add-tag ajax calls + $(document).ajaxSuccess(function (event, xhr, settings) { if (settings.data && settings.data.indexOf('action=add-tag') !== -1 && xhr.responseText && xhr.responseText.indexOf('wp_error') === -1) { $sort.sortable('refresh'); } diff --git a/src/readme.txt b/src/readme.txt index 4ad4787..9c49f9c 100644 --- a/src/readme.txt +++ b/src/readme.txt @@ -4,7 +4,7 @@ Tags: sort, order, terms, taxonomy Requires PHP: 5.6 Requires at least: 3.5 Tested up to: 6.8 -Stable tag: 1.5.0 +Stable tag: 1.5.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -79,6 +79,8 @@ Please make sure to include plugin version when reporting bugs. 2. Settings section where you can select which taxonomy should be sortable. == Changelog == += 1.5.2 = +* Fixed version label = 1.5.1 = * Add nonce for AJAX requests to prevent CSRF attacks * Force AJAX message as text content @@ -104,6 +106,8 @@ Please make sure to include plugin version when reporting bugs. * Initial release == Upgrade Notice == += 1.5.2 = +* Fixed version label = 1.5.1 = * Add nonce for AJAX requests to prevent CSRF attacks * Force AJAX message as text content