PluginProbe
WP Ultimate Post Grid / 1.6
WP Ultimate Post Grid v1.6
4.1.1 trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.8 1.9 2.0 2.1 2.2 2.3 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.2 3.0.0 3.3.0 3.4.0 3.5.0 3.6.0 3.7.0 All 32 releases
← All changes | js/grid.js +27 -156 2.01.6 View file →
@@ -7,16 +7,16 @@
7 7
8 8 var args = {
9 9 itemSelector: '.wpupg-item',
10 10 transitionDuration: wpupg_public.animationSpeed,
11 - hiddenStyle: wpupg_public.animationHide,
12 - visibleStyle: wpupg_public.animationShow
11 + hiddenStyle: {
12 + opacity: 0
13 + },
14 + visibleStyle: {
15 + opacity: 1
16 + }
13 17 };
14 18
15 - if(wpupg_public.rtl) {
16 - args.isOriginLeft = false;
17 - }
18 -
19 19 var layout_mode = container.data('layout-mode');
20 20 if(layout_mode) {
21 21 args.layoutMode = layout_mode;
22 22 }
@@ -33,13 +33,10 @@
33 33 container.isotope('layout');
34 34 });
35 35
36 36 WPUltimatePostGrid.grids[grid_id] = {
37 - args: args,
38 37 container: container,
39 38 centered: container.data('centered'),
40 - data: window['wpupg_grid_' + container.data('grid-id')],
41 - id: container.data('grid-id'),
42 39 pages: [0],
43 40 page: 0,
44 41 filters: {}
45 42 };
@@ -44,99 +41,16 @@
44 41 filters: {}
45 42 };
46 43
47 44 WPUltimatePostGrid.checkLinks(grid_id);
48 - WPUltimatePostGrid.updatePosts(grid_id);
49 -
50 - jQuery(container).on('hover', '.wpupg-item', function(e) {
51 - var hovering = e.type == 'mouseenter';
52 - WPUltimatePostGrid.hoverGridItem(jQuery(this), hovering);
53 - });
54 45 };
55 46
56 -WPUltimatePostGrid.hoverGridItem = function(grid_item, hovering) {
57 - if(hovering) {
58 - grid_item.addClass('wpupg-hovering');
59 -
60 - grid_item.find('.wpupg-show-on-hover').each(function() {
61 - var item = jQuery(this),
62 - effect = item.data('hover-in'),
63 - duration = parseInt(item.data('hover-in-duration'));
64 -
65 - if(effect == 'fade') {
66 - item.fadeIn(duration);
67 - } else if(effect == 'slide') {
68 - item.slideDown(duration);
69 - } else {
70 - item.show();
71 - }
72 - });
73 -
74 - grid_item.find('.wpupg-hide-on-hover').each(function() {
75 - var item = jQuery(this),
76 - effect = item.data('hover-out'),
77 - duration = parseInt(item.data('hover-out-duration'));
78 -
79 - if(effect == 'fade') {
80 - item.fadeOut(duration);
81 - } else if(effect == 'slide') {
82 - item.slideUp(duration);
83 - } else {
84 - item.hide();
85 - }
86 - });
87 - } else {
88 - grid_item.removeClass('wpupg-hovering');
89 -
90 - grid_item.find('.wpupg-show-on-hover').each(function() {
91 - var item = jQuery(this),
92 - effect = item.data('hover-out'),
93 - duration = parseInt(item.data('hover-out-duration'));
94 -
95 - if(effect == 'fade') {
96 - item.fadeOut(duration);
97 - } else if(effect == 'slide') {
98 - item.slideUp(duration);
99 - } else {
100 - item.hide();
101 - }
102 - });
103 -
104 - grid_item.find('.wpupg-hide-on-hover').each(function() {
105 - var item = jQuery(this),
106 - effect = item.data('hover-in'),
107 - duration = parseInt(item.data('hover-in-duration'));
108 -
109 - if(effect == 'fade') {
110 - item.fadeIn(duration);
111 - } else if(effect == 'slide') {
112 - item.slideDown(duration);
113 - } else {
114 - item.show();
115 - }
116 - });
117 - }
118 -};
119 -
120 -WPUltimatePostGrid.updatePosts = function(grid_id) {
121 - var grid = WPUltimatePostGrid.grids[grid_id];
122 -
123 - var posts = [];
124 -
125 - grid.container.find('.wpupg-item').each(function() {
126 - var post_id = jQuery(this).data('id');
127 - posts.push(post_id);
128 - });
129 -
130 - WPUltimatePostGrid.grids[grid_id].posts = posts;
131 -};
132 -
133 47 WPUltimatePostGrid.filterGrid = function(grid_id) {
134 48 var grid = WPUltimatePostGrid.grids[grid_id];
135 49 var filters = [];
136 50
137 51 // Page filter
138 - if(grid.pagination_type == 'pages') {
52 + if(grid.pagination_type != 'load_more') {
139 53 var page = grid.page || 0;
140 54 filters.push(['.wpupg-page-' + page]);
141 55 }
142 56
@@ -146,18 +60,15 @@
146 60 var taxonomy_filters = grid.filters[taxonomy];
147 61
148 62 var match_one_filters = [];
149 63 var match_all_filter = '';
150 - var filter = '';
151 64
152 65 if(taxonomy_filters) {
153 66 for(var i = 0; i < taxonomy_filters.length; i++) {
154 - filter = '.wpupg-tax-' + taxonomy + '-' + taxonomy_filters[i];
155 -
156 67 if(grid.multiselect_type == 'match_one') {
157 - match_one_filters.push(filter);
68 + match_one_filters.push('.wpupg-tax-' + taxonomy + '-' + taxonomy_filters[i]);
158 69 } else {
159 - match_all_filter += filter;
70 + match_all_filter += '.wpupg-tax-' + taxonomy + '-' + taxonomy_filters[i];
160 71 }
161 72 }
162 73 }
163 74
@@ -170,19 +81,9 @@
170 81 }
171 82
172 83 grid.filter = '';
173 84 WPUltimatePostGrid.getFilterString(grid_id, '', filters, 0);
174 - if(grid.inverse) {
175 - if(grid.pagination_type == 'pages') {
176 - var page = grid.page || 0;
177 - var filter_without_page = grid.filter.replace('.wpupg-page-' + page, '');
178 85
179 - grid.filter = '.wpupg-page-' + page + ':not(' + filter_without_page + ')';
180 - } else {
181 - grid.filter = ':not(' + grid.filter + ')';
182 - }
183 - }
184 -
185 86 grid.container.isotope({ filter: grid.filter });
186 87 grid.container.trigger('wpupgFiltered');
187 88 WPUltimatePostGrid.updateDeeplink();
188 89 };
@@ -206,9 +107,9 @@
206 107 var grid = WPUltimatePostGrid.grids[grid_id];
207 108 var grid_link = '';
208 109
209 110 // Page filter
210 - if(grid.page != 0) grid_link += '+p:' + (grid.page+1);
111 + if(grid.page != 0) grid_link += '|p:' + (grid.page+1);
211 112
212 113 // Taxonomy filters
213 114 for(var taxonomy in grid.filters) {
214 115 if(grid.filters.hasOwnProperty(taxonomy)) {
@@ -214,9 +115,9 @@
214 115 if(grid.filters.hasOwnProperty(taxonomy)) {
215 116 var taxonomy_filter = grid.filters[taxonomy];
216 117
217 118 if(taxonomy_filter.length > 0) {
218 - grid_link += '+' + taxonomy + ':' + taxonomy_filter.join(',');
119 + grid_link += '|' + taxonomy + ':' + taxonomy_filter.join(',');
219 120 }
220 121 }
221 122 }
222 123
@@ -227,8 +128,9 @@
227 128 }
228 129 }
229 130 }
230 131
132 + if(link == '') link = '*';
231 133 document.location.hash = link;
232 134 };
233 135
234 136 WPUltimatePostGrid.restoreDeeplink = function() {
@@ -234,23 +136,19 @@
234 136 WPUltimatePostGrid.restoreDeeplink = function() {
235 137 var link = document.location.hash;
236 138 link = link.substr(1);
237 139
238 - if(link) {
140 + if(link && link != '*') {
239 141 // Make sure characters are not URL encoded
240 142 link = link.replace('%23', '#');
241 143 link = link.replace('%7C', '|');
242 - link = link.replace('%2B', '+');
243 144 link = link.replace('%3A', ':');
244 145 link = link.replace('%2C', ',');
245 146
246 - // Backwards compatibility
247 - link = link.replace('|', '+');
248 -
249 147 var grids = link.split('#');
250 148
251 149 for(var i=0; i < grids.length; i++) {
252 - var parts = grids[i].split('+');
150 + var parts = grids[i].split('|');
253 151 var grid_id = parts[0];
254 152
255 153 for(var j=1; j < parts.length; j++) {
256 154 var filter = parts[j].split(':');
@@ -276,9 +174,9 @@
276 174 grid.container.find('.wpupg-item').each(function() {
277 175 var item = jQuery(this);
278 176
279 177 // Remove links from item
280 - item.find('a:not(.wpupg-keep-link, .wpurp-recipe-favorite, .wpurp-recipe-add-to-shopping-list, .wpurp-recipe-add-to-meal-plan, .wpurp-recipe-print-button, .wpurp-recipe-grid-link)').each(function() {
178 + item.find('a:not(.wpupg-keep-link, .wpurp-recipe-favorite, .wpurp-recipe-add-to-shopping-list, .wpurp-recipe-print-button, .wpurp-recipe-grid-link)').each(function() {
281 179 var link = jQuery(this);
282 180 if(link.parents('.sharrre').length == 0) {
283 181 link.replaceWith(function() { return link.contents(); });
284 182 }
@@ -283,14 +181,14 @@
283 181 link.replaceWith(function() { return link.contents(); });
284 182 }
285 183 });
286 184
287 - var link = item.data('custom-link') ? item.data('custom-link') : ( link_target == 'post' ? item.data('permalink') : item.data('image') );
185 + var link = link_target == 'post' ? item.data('permalink') : item.data('image');
288 186 var rel = link_target == 'post' ? '' : ' rel="lightbox"';
289 187
290 188 // Add link around item
291 189 if (link && item.parent('a').length == 0) {
292 - item.wrap('<a href="' + link + '" target="' + link_type + '"' + rel + ' class="' + wpupg_public.link_class + '"></a>');
190 + item.wrap('<a href="' + link + '" target="' + link_type + '"' + rel + '></a>');
293 191 }
294 192 });
295 193 }
296 194 };
@@ -313,9 +211,8 @@
313 211 var grid_id = container.data('grid');
314 212
315 213 WPUltimatePostGrid.grids[grid_id].multiselect = container.data('multiselect');
316 214 WPUltimatePostGrid.grids[grid_id].multiselect_type = container.data('multiselect-type');
317 - WPUltimatePostGrid.grids[grid_id].inverse = container.data('inverse');
318 215
319 216 container.find('.wpupg-filter-isotope-term').click(function() {
320 217 var filter_item = jQuery(this);
321 218 var taxonomy = filter_item.data('taxonomy');
@@ -432,14 +329,11 @@
432 329 };
433 330
434 331 WPUltimatePostGrid.updatePagination = function(container, page) {
435 332 var type = container.data('type');
436 -
437 - if(type) {
438 - var func = 'updatePagination' + type.charAt(0).toUpperCase() + type.slice(1);
439 - if(typeof WPUltimatePostGrid[func] == 'function') {
440 - WPUltimatePostGrid[func](container, page);
441 - }
333 + var func = 'updatePagination' + type.charAt(0).toUpperCase() + type.slice(1);
334 + if(typeof WPUltimatePostGrid[func] == 'function') {
335 + WPUltimatePostGrid[func](container, page);
442 336 }
443 337 };
444 338
445 339 WPUltimatePostGrid.updatePaginationPages = function(container, page) {
@@ -454,10 +348,8 @@
454 348 pagination_item.siblings('.wpupg-pagination-term').removeClass('active').trigger('checkActiveFilter');
455 349
456 350 var page = parseInt(pagination_item.addClass('active').trigger('checkActiveFilter').data('page'));
457 351
458 - WPUltimatePostGrid.scrollTo(WPUltimatePostGrid.grids[grid_id].container);
459 -
460 352 if(WPUltimatePostGrid.grids[grid_id].pages.indexOf(page) !== -1) {
461 353 WPUltimatePostGrid.grids[grid_id].page = page;
462 354 WPUltimatePostGrid.filterGrid(grid_id);
463 355 } else {
@@ -474,17 +366,21 @@
474 366
475 367 // Get recipes through AJAX
476 368 jQuery.post(wpupg_public.ajax_url, data, function(html) {
477 369 var posts = jQuery(html).toArray();
370 + WPUltimatePostGrid.grids[grid_id].container.isotope('insert', posts);
371 + WPUltimatePostGrid.grids[grid_id].page = page;
372 + WPUltimatePostGrid.filterGrid(grid_id);
373 + WPUltimatePostGrid.checkLinks(grid_id);
478 374
479 - WPUltimatePostGrid.grids[grid_id].page = page;
480 - WPUltimatePostGrid.insertPosts(grid_id, posts);
375 + WPUltimatePostGrid.grids[grid_id].container.imagesLoaded( function() {
376 + WPUltimatePostGrid.grids[grid_id].container.isotope('layout');
377 + });
481 378
482 379 pagination_item.removeClass('wpupg-spinner');
483 380 pagination_item.css('color', WPUltimatePostGrid.grids[grid_id].pagination_style.active_text_color);
484 381
485 382 WPUltimatePostGrid.grids[grid_id].pages.push(page);
486 - WPUltimatePostGrid.updatePosts(grid_id);
487 383 });
488 384 }
489 385 });
490 386
@@ -555,33 +451,8 @@
555 451 .css('color', text_color);
556 452 }
557 453 }).trigger('checkActiveFilter');
558 454 });
559 -};
560 -
561 -WPUltimatePostGrid.insertPosts = function(grid_id, posts) {
562 - WPUltimatePostGrid.grids[grid_id].container.isotope('destroy');
563 -
564 - WPUltimatePostGrid.grids[grid_id].container.append(posts);
565 - WPUltimatePostGrid.grids[grid_id].container.isotope(WPUltimatePostGrid.grids[grid_id].args);
566 -
567 - WPUltimatePostGrid.updatePosts(grid_id);
568 - WPUltimatePostGrid.checkLinks(grid_id);
569 - WPUltimatePostGrid.filterGrid(grid_id);
570 -
571 - WPUltimatePostGrid.grids[grid_id].container.imagesLoaded( function() {
572 - WPUltimatePostGrid.grids[grid_id].container.isotope('layout');
573 - WPUltimatePostGrid.grids[grid_id].loading = false;
574 - });
575 -};
576 -
577 -WPUltimatePostGrid.scrollTo = function(target) {
578 - var scroll_to = target.offset().top - 50;
579 - scroll_to = scroll_to < 0 ? 0 : scroll_to;
580 -
581 - jQuery('html,body').animate({
582 - scrollTop: scroll_to
583 - }, 500);
584 455 };
585 456
586 457 jQuery(document).ready(function($) {
587 458 $('.wpupg-grid').each(function() {