Version Description
- Tweak: Grid widget code refactored for better performance.
- Tweak: Added
Lightbox Type
option in Grid widget to switch between default, Elementor's or any other lightbox plugin. - Tweak: Added
Shuffle Images After Filter Click
option in Grid widget. - Tweak: Added
Full Section Scroll on Touch Devices
option in Grid widget.
Download this release
Release Info
Developer | leap13 |
Plugin | Premium Addons for Elementor |
Version | 3.6.4 |
Comparing to | |
See all releases |
Code changes from version 3.6.3 to 3.6.4
- admin/includes/version-control.php +1 -1
- assets/frontend/css/premium-addons.css +14 -18
- assets/frontend/js/premium-addons.js +55 -47
- assets/frontend/js/premium-vscroll.js +397 -298
- includes/class-addons-integration.php +0 -1
- premium-addons-for-elementor.php +3 -3
- readme.txt +8 -1
- widgets/premium-grid.php +525 -239
- widgets/premium-vscroll.php +24 -25
admin/includes/version-control.php
CHANGED
@@ -91,7 +91,7 @@ class Version_Control {
|
|
91 |
<tr class="pa-roll-row">
|
92 |
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
|
93 |
<td>
|
94 |
-
<div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.6.
|
95 |
<p class="pa-roll-desc">
|
96 |
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
|
97 |
</p>
|
91 |
<tr class="pa-roll-row">
|
92 |
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
|
93 |
<td>
|
94 |
+
<div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.6.3', 'premium-addons-for-elementor') ); ?></div>
|
95 |
<p class="pa-roll-desc">
|
96 |
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
|
97 |
</p>
|
assets/frontend/css/premium-addons.css
CHANGED
@@ -3251,22 +3251,22 @@ button.premium-modal-box-modal-close {
|
|
3251 |
-o-transition: all 0.3s ease-in-out;
|
3252 |
transition: all 0.3s ease-in-out;
|
3253 |
}
|
3254 |
-
.
|
3255 |
filter: grayscale(100%);
|
3256 |
}
|
3257 |
-
.
|
3258 |
-
.
|
3259 |
transform: scale(1.2);
|
3260 |
}
|
3261 |
-
.
|
3262 |
-webkit-filter: sepia(30%);
|
3263 |
filter: sepia(30%);
|
3264 |
}
|
3265 |
-
.
|
3266 |
-webkit-filter: brightness(1);
|
3267 |
filter: brightness(1);
|
3268 |
}
|
3269 |
-
.
|
3270 |
-webkit-transform: translateX(-15px) scale(1.1);
|
3271 |
transform: translateX(-15px) scale(1.1);
|
3272 |
}
|
@@ -3315,31 +3315,31 @@ button.premium-modal-box-modal-close {
|
|
3315 |
list-style: none;
|
3316 |
display: inline-flex;
|
3317 |
}
|
3318 |
-
.
|
3319 |
transform: scale(1.1);
|
3320 |
}
|
3321 |
-
.
|
3322 |
transform: scale(1);
|
3323 |
}
|
3324 |
-
.
|
3325 |
transform: scale(1.3) rotate(5deg);
|
3326 |
}
|
3327 |
-
.
|
3328 |
filter: grayscale(0%);
|
3329 |
}
|
3330 |
-
.
|
3331 |
filter: blur(3px);
|
3332 |
}
|
3333 |
-
.
|
3334 |
-webkit-filter: sepia(0%);
|
3335 |
filter: sepia(0%);
|
3336 |
}
|
3337 |
-
.
|
3338 |
-webkit-transform: translateX(0px) scale(1.1);
|
3339 |
-moz-transform: translateX(0px) scale(1.1);
|
3340 |
transform: translateX(0px) scale(1.1);
|
3341 |
}
|
3342 |
-
.
|
3343 |
-webkit-filter: brightness(1.2);
|
3344 |
filter: brightness(1.2);
|
3345 |
}
|
@@ -3449,10 +3449,6 @@ button.premium-modal-box-modal-close {
|
|
3449 |
.premium-img-gallery-metro .premium-gallery-item {
|
3450 |
overflow: hidden
|
3451 |
}
|
3452 |
-
/*.premium-img-gallery-metro .pa-gallery-img-container {
|
3453 |
-
height: 100%;
|
3454 |
-
object-fit: fill;
|
3455 |
-
}*/
|
3456 |
.premium-img-gallery-metro .pa-gallery-img,
|
3457 |
.premium-img-gallery-metro .pa-gallery-img-container {
|
3458 |
height: 100%;
|
3251 |
-o-transition: all 0.3s ease-in-out;
|
3252 |
transition: all 0.3s ease-in-out;
|
3253 |
}
|
3254 |
+
.premium-img-gallery.gray img {
|
3255 |
filter: grayscale(100%);
|
3256 |
}
|
3257 |
+
.premium-img-gallery.zoomout img,
|
3258 |
+
.premium-img-gallery.scale img{
|
3259 |
transform: scale(1.2);
|
3260 |
}
|
3261 |
+
.premium-img-gallery.sepia img{
|
3262 |
-webkit-filter: sepia(30%);
|
3263 |
filter: sepia(30%);
|
3264 |
}
|
3265 |
+
.premium-img-gallery.bright img{
|
3266 |
-webkit-filter: brightness(1);
|
3267 |
filter: brightness(1);
|
3268 |
}
|
3269 |
+
.premium-img-gallery.trans img{
|
3270 |
-webkit-transform: translateX(-15px) scale(1.1);
|
3271 |
transform: translateX(-15px) scale(1.1);
|
3272 |
}
|
3315 |
list-style: none;
|
3316 |
display: inline-flex;
|
3317 |
}
|
3318 |
+
.premium-img-gallery.zoomin .pa-gallery-img:hover img {
|
3319 |
transform: scale(1.1);
|
3320 |
}
|
3321 |
+
.premium-img-gallery.zoomout .pa-gallery-img:hover img {
|
3322 |
transform: scale(1);
|
3323 |
}
|
3324 |
+
.premium-img-gallery.scale .pa-gallery-img:hover img {
|
3325 |
transform: scale(1.3) rotate(5deg);
|
3326 |
}
|
3327 |
+
.premium-img-gallery.gray .pa-gallery-img:hover img {
|
3328 |
filter: grayscale(0%);
|
3329 |
}
|
3330 |
+
.premium-img-gallery.blur .pa-gallery-img:hover img {
|
3331 |
filter: blur(3px);
|
3332 |
}
|
3333 |
+
.premium-img-gallery.sepia .pa-gallery-img:hover img {
|
3334 |
-webkit-filter: sepia(0%);
|
3335 |
filter: sepia(0%);
|
3336 |
}
|
3337 |
+
.premium-img-gallery.trans .pa-gallery-img:hover img {
|
3338 |
-webkit-transform: translateX(0px) scale(1.1);
|
3339 |
-moz-transform: translateX(0px) scale(1.1);
|
3340 |
transform: translateX(0px) scale(1.1);
|
3341 |
}
|
3342 |
+
.premium-img-gallery.bright .pa-gallery-img:hover img {
|
3343 |
-webkit-filter: brightness(1.2);
|
3344 |
filter: brightness(1.2);
|
3345 |
}
|
3449 |
.premium-img-gallery-metro .premium-gallery-item {
|
3450 |
overflow: hidden
|
3451 |
}
|
|
|
|
|
|
|
|
|
3452 |
.premium-img-gallery-metro .pa-gallery-img,
|
3453 |
.premium-img-gallery-metro .pa-gallery-img-container {
|
3454 |
height: 100%;
|
assets/frontend/js/premium-addons.js
CHANGED
@@ -76,18 +76,20 @@
|
|
76 |
minimum = gridSettings["minimum"],
|
77 |
imageToShow = gridSettings["click_images"],
|
78 |
counter = minimum,
|
79 |
-
|
|
|
80 |
|
81 |
-
if (layout === "metro") {
|
82 |
var suffix = "";
|
83 |
|
84 |
-
if ("tablet" === deviceType) {
|
85 |
suffix = "_tablet";
|
86 |
} else if ("mobile" === deviceType) {
|
87 |
suffix = "_mobile";
|
88 |
}
|
89 |
var gridWidth = galleryElement.width(),
|
90 |
cellSize = Math.floor(gridWidth / 12);
|
|
|
91 |
galleryElement
|
92 |
.find(".premium-gallery-item")
|
93 |
.each(function (index, item) {
|
@@ -121,26 +123,27 @@
|
|
121 |
},
|
122 |
filter: gridSettings["active_cat"],
|
123 |
layoutMode: layout,
|
124 |
-
originLeft:
|
125 |
masonry: {
|
126 |
columnWidth: columnWidth
|
127 |
}
|
128 |
});
|
129 |
});
|
130 |
|
131 |
-
if (loadMore) {
|
132 |
|
133 |
galleryElement
|
134 |
.parent()
|
135 |
.find(".premium-gallery-load-more div")
|
136 |
.addClass("premium-gallery-item-hidden");
|
137 |
-
|
|
|
138 |
galleryElement
|
139 |
.parent()
|
140 |
.find(".premium-gallery-load-more")
|
141 |
.removeClass("premium-gallery-item-hidden");
|
142 |
galleryElement
|
143 |
-
.find(".premium-gallery-item:gt(" + (minimum - 1) + ")")
|
144 |
.addClass("premium-gallery-item-hidden");
|
145 |
|
146 |
function appendItems( imagesToShow ) {
|
@@ -172,35 +175,33 @@
|
|
172 |
|
173 |
}
|
174 |
|
175 |
-
galleryElement
|
176 |
-
.parent()
|
177 |
-
.on("click", ".premium-gallery-load-more-btn", function () {
|
178 |
-
|
179 |
-
if ( isFilterClicked ) {
|
180 |
-
counter = minimum;
|
181 |
-
isFilterClicked = false;
|
182 |
-
} else {
|
183 |
-
counter = counter;
|
184 |
-
}
|
185 |
|
186 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
});
|
203 |
});
|
|
|
204 |
}
|
205 |
}
|
206 |
|
@@ -221,26 +222,33 @@
|
|
221 |
|
222 |
galleryElement.isotope({ filter: filter });
|
223 |
|
224 |
-
if (
|
|
|
|
|
|
|
|
|
225 |
appendItems( minimum );
|
226 |
|
227 |
return false;
|
228 |
});
|
229 |
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
|
|
|
|
243 |
});
|
|
|
244 |
};
|
245 |
|
246 |
/****** Premium Counter Handler ******/
|
76 |
minimum = gridSettings["minimum"],
|
77 |
imageToShow = gridSettings["click_images"],
|
78 |
counter = minimum,
|
79 |
+
ltrMode = gridSettings["ltr_mode"],
|
80 |
+
shuffle = gridSettings["shuffle"];
|
81 |
|
82 |
+
if ( layout === "metro" ) {
|
83 |
var suffix = "";
|
84 |
|
85 |
+
if ( "tablet" === deviceType ) {
|
86 |
suffix = "_tablet";
|
87 |
} else if ("mobile" === deviceType) {
|
88 |
suffix = "_mobile";
|
89 |
}
|
90 |
var gridWidth = galleryElement.width(),
|
91 |
cellSize = Math.floor(gridWidth / 12);
|
92 |
+
|
93 |
galleryElement
|
94 |
.find(".premium-gallery-item")
|
95 |
.each(function (index, item) {
|
123 |
},
|
124 |
filter: gridSettings["active_cat"],
|
125 |
layoutMode: layout,
|
126 |
+
originLeft: ltrMode,
|
127 |
masonry: {
|
128 |
columnWidth: columnWidth
|
129 |
}
|
130 |
});
|
131 |
});
|
132 |
|
133 |
+
if ( loadMore ) {
|
134 |
|
135 |
galleryElement
|
136 |
.parent()
|
137 |
.find(".premium-gallery-load-more div")
|
138 |
.addClass("premium-gallery-item-hidden");
|
139 |
+
|
140 |
+
if ( galleryElement.find(".premium-gallery-item").length > minimum ) {
|
141 |
galleryElement
|
142 |
.parent()
|
143 |
.find(".premium-gallery-load-more")
|
144 |
.removeClass("premium-gallery-item-hidden");
|
145 |
galleryElement
|
146 |
+
.find(".premium-gallery-item:gt(" + ( minimum - 1 ) + ")")
|
147 |
.addClass("premium-gallery-item-hidden");
|
148 |
|
149 |
function appendItems( imagesToShow ) {
|
175 |
|
176 |
}
|
177 |
|
178 |
+
galleryElement.parent().on("click", ".premium-gallery-load-more-btn", function () {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
|
180 |
+
if ( isFilterClicked ) {
|
181 |
+
counter = minimum;
|
182 |
+
isFilterClicked = false;
|
183 |
+
} else {
|
184 |
+
counter = counter;
|
185 |
+
}
|
186 |
+
|
187 |
+
counter = counter + imageToShow;
|
188 |
|
189 |
+
$.ajax({
|
190 |
+
url: appendItems( counter ),
|
191 |
+
beforeSend: function () {
|
192 |
+
galleryElement
|
193 |
+
.parent()
|
194 |
+
.find(".premium-gallery-load-more div")
|
195 |
+
.removeClass("premium-gallery-item-hidden");
|
196 |
+
},
|
197 |
+
success: function () {
|
198 |
+
galleryElement
|
199 |
+
.parent()
|
200 |
+
.find(".premium-gallery-load-more div")
|
201 |
+
.addClass("premium-gallery-item-hidden");
|
202 |
+
}
|
|
|
203 |
});
|
204 |
+
});
|
205 |
}
|
206 |
}
|
207 |
|
222 |
|
223 |
galleryElement.isotope({ filter: filter });
|
224 |
|
225 |
+
if ( shuffle ) {
|
226 |
+
galleryElement.isotope( 'shuffle' );
|
227 |
+
}
|
228 |
+
|
229 |
+
if ( loadMore )
|
230 |
appendItems( minimum );
|
231 |
|
232 |
return false;
|
233 |
});
|
234 |
|
235 |
+
|
236 |
+
if( 'default' === gridSettings['lightbox_type'] ) {
|
237 |
+
$scope
|
238 |
+
.find(".premium-img-gallery a[data-rel^='prettyPhoto']")
|
239 |
+
.prettyPhoto({
|
240 |
+
theme: gridSettings["theme"],
|
241 |
+
hook: "data-rel",
|
242 |
+
opacity: 0.7,
|
243 |
+
show_title: false,
|
244 |
+
deeplinking: false,
|
245 |
+
overlay_gallery: gridSettings["overlay"],
|
246 |
+
custom_markup: "",
|
247 |
+
default_width: 900,
|
248 |
+
default_height: 506,
|
249 |
+
social_tools: ""
|
250 |
});
|
251 |
+
}
|
252 |
};
|
253 |
|
254 |
/****** Premium Counter Handler ******/
|
assets/frontend/js/premium-vscroll.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
(function($) {
|
4 |
/****** Premium Vertical Scroll Handler ******/
|
5 |
-
var PremiumVerticalScrollHandler = function($scope, $) {
|
6 |
var vScrollElem = $scope.find(".premium-vscroll-wrap"),
|
7 |
instance = null,
|
8 |
vScrollSettings = vScrollElem.data("settings");
|
@@ -12,42 +12,52 @@
|
|
12 |
instance = new premiumVerticalScroll(vScrollElem, vScrollSettings);
|
13 |
instance.init();
|
14 |
|
15 |
-
// var isTouchDevice = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/);
|
16 |
-
// var isTouch = (('ontouchstart' in window) || (navigator.msMaxTouchPoints > 0) || (navigator.maxTouchPoints));
|
17 |
-
//
|
18 |
-
//
|
19 |
-
// if( touch ) {
|
20 |
-
// instance = new premiumVerticalScroll2( vScrollElem, vScrollSettings );
|
21 |
-
// instance.init();
|
22 |
-
// } else {
|
23 |
-
// if ( isTouchDevice || isTouch ) {
|
24 |
-
// instance = new premiumVerticalScroll( vScrollElem, vScrollSettings );
|
25 |
-
// instance.init();
|
26 |
-
// } else {
|
27 |
-
// instance = new premiumVerticalScroll2( vScrollElem, vScrollSettings );
|
28 |
-
// instance.init();
|
29 |
-
// }
|
30 |
-
// }
|
31 |
};
|
32 |
|
33 |
-
window.
|
34 |
-
var self
|
35 |
-
$
|
36 |
-
|
37 |
-
$
|
38 |
-
checkTemps
|
39 |
.length,
|
40 |
-
|
41 |
-
|
42 |
-
$
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
|
45 |
-
var $lastItem = $itemsList.last(),
|
46 |
-
lastSectionId = $lastItem.data("menuanchor"),
|
47 |
-
lastOffset = Math.round($("#" + lastSectionId).offset().top);
|
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
self.init = function() {
|
50 |
self.setSectionsData();
|
|
|
|
|
51 |
|
52 |
$itemsList.on("click.premiumVerticalScroll", self.onNavDotChange);
|
53 |
$menuItems.on("click.premiumVerticalScroll", self.onNavDotChange);
|
@@ -62,185 +72,386 @@
|
|
62 |
self.onNavDotLeave
|
63 |
);
|
64 |
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
standardScrollElements: "#" + lastSectionId,
|
69 |
-
scrollSpeed: settings.speed,
|
70 |
-
overflowScroll: settings.overflow,
|
71 |
-
setHeights: settings.setHeight,
|
72 |
-
before: function(index) {
|
73 |
-
$menuItems.removeClass("active");
|
74 |
-
$itemsList.removeClass("active");
|
75 |
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
}
|
88 |
});
|
|
|
|
|
|
|
|
|
|
|
89 |
|
90 |
-
|
91 |
-
$window.on("scroll.premiumVerticalScroll2", self.onWheel);
|
92 |
-
}
|
93 |
|
94 |
-
if (settings.
|
95 |
-
|
|
|
96 |
|
97 |
-
if (checkTemps) {
|
98 |
document.addEventListener
|
99 |
-
|
100 |
-
|
|
|
101 |
} else {
|
|
|
102 |
document.addEventListener
|
103 |
-
|
104 |
-
|
|
|
105 |
}
|
|
|
|
|
|
|
|
|
|
|
106 |
}
|
|
|
|
|
|
|
107 |
};
|
|
|
|
|
108 |
|
109 |
-
|
110 |
-
var $target = $(event.target),
|
111 |
-
sectionSelector = checkTemps
|
112 |
-
? ".premium-vscroll-temp"
|
113 |
-
: ".elementor-top-section",
|
114 |
-
$section = $target.closest(sectionSelector),
|
115 |
-
sectionId = $section.attr("id"),
|
116 |
-
$currentSection = $.scrollify.current();
|
117 |
-
|
118 |
-
//re-enable Scrollify
|
119 |
-
if (
|
120 |
-
sectionId !== lastSectionId &&
|
121 |
-
$section.hasClass("premium-vscroll-section") &&
|
122 |
-
$.scrollify.isDisabled()
|
123 |
-
) {
|
124 |
-
$(
|
125 |
-
".premium-vscroll-dots, .premium-vscroll-nav-menu"
|
126 |
-
).removeClass("premium-vscroll-dots-hide");
|
127 |
|
128 |
-
|
129 |
-
}
|
130 |
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
|
|
|
|
|
|
|
|
|
|
136 |
|
137 |
-
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
);
|
140 |
-
|
|
|
|
|
141 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
-
|
144 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
-
|
148 |
-
|
|
|
|
|
|
|
149 |
};
|
|
|
|
|
|
|
|
|
|
|
150 |
|
151 |
-
|
152 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
};
|
154 |
|
155 |
-
|
156 |
-
|
157 |
-
var $this = $(this),
|
158 |
-
sectionId = $this.data("menuanchor"),
|
159 |
-
$section = $("#" + sectionId);
|
160 |
|
161 |
-
|
162 |
-
|
|
|
163 |
};
|
164 |
|
165 |
-
self.
|
166 |
-
|
167 |
-
|
168 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
|
170 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
|
172 |
-
if ($.scrollify.isDisabled()) {
|
173 |
-
$.scrollify.enable();
|
174 |
}
|
175 |
|
176 |
-
|
177 |
-
$itemsList.removeClass("active");
|
178 |
|
179 |
-
|
180 |
-
$($itemsList[index]).addClass("active");
|
181 |
-
} else {
|
182 |
-
$($menuItems[index]).addClass("active");
|
183 |
-
}
|
184 |
|
185 |
-
|
|
|
|
|
186 |
|
187 |
-
|
188 |
|
189 |
-
|
190 |
-
};
|
191 |
|
192 |
-
|
193 |
-
var $this = $(this),
|
194 |
-
index = $this.data("index");
|
195 |
|
196 |
-
if (settings.tooltips) {
|
197 |
-
$(
|
198 |
-
'<div class="premium-vscroll-tooltip"><span>' +
|
199 |
-
settings.dotsText[index] +
|
200 |
-
"</span></div>"
|
201 |
-
)
|
202 |
-
.hide()
|
203 |
-
.appendTo($this)
|
204 |
-
.fadeIn(200);
|
205 |
}
|
206 |
-
};
|
207 |
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
214 |
|
215 |
-
|
216 |
-
var self = this,
|
217 |
-
$window = $(window),
|
218 |
-
$instance = $selector,
|
219 |
-
checkTemps = $selector.find(".premium-vscroll-sections-wrap")
|
220 |
-
.length,
|
221 |
-
$htmlBody = $("html, body"),
|
222 |
-
deviceType = $("body").data("elementor-device-mode"),
|
223 |
-
$itemsList = $(".premium-vscroll-dot-item", $instance),
|
224 |
-
$menuItems = $(".premium-vscroll-nav-item", $instance),
|
225 |
-
defaultSettings = {
|
226 |
-
speed: 700,
|
227 |
-
offset: 1,
|
228 |
-
fullSection: true
|
229 |
-
},
|
230 |
-
settings = $.extend({}, defaultSettings, settings),
|
231 |
-
sections = {},
|
232 |
-
timeStamp = 0,
|
233 |
-
currentSection = null,
|
234 |
-
platform = navigator.platform,
|
235 |
-
isScrolling = false;
|
236 |
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
|
245 |
self.checkNextSection = function(object, key) {
|
246 |
var keys = Object.keys(object),
|
@@ -286,6 +497,7 @@
|
|
286 |
timeout = setTimeout(delayed, threshold);
|
287 |
};
|
288 |
};
|
|
|
289 |
self.visible = function(selector, partial, hidden) {
|
290 |
var s = selector.get(0),
|
291 |
vpHeight = $window.outerHeight(),
|
@@ -314,131 +526,6 @@
|
|
314 |
}
|
315 |
};
|
316 |
|
317 |
-
self.init = function() {
|
318 |
-
self.setSectionsData();
|
319 |
-
|
320 |
-
$itemsList.on("click.premiumVerticalScroll", self.onNavDotChange);
|
321 |
-
$menuItems.on("click.premiumVerticalScroll", self.onNavDotChange);
|
322 |
-
|
323 |
-
$itemsList.on(
|
324 |
-
"mouseenter.premiumVerticalScroll",
|
325 |
-
self.onNavDotEnter
|
326 |
-
);
|
327 |
-
|
328 |
-
$itemsList.on(
|
329 |
-
"mouseleave.premiumVerticalScroll",
|
330 |
-
self.onNavDotLeave
|
331 |
-
);
|
332 |
-
|
333 |
-
if (deviceType === "desktop") {
|
334 |
-
$window.on("scroll.premiumVerticalScroll", self.onWheel);
|
335 |
-
}
|
336 |
-
|
337 |
-
$window.on(
|
338 |
-
"resize.premiumVerticalScroll orientationchange.premiumVerticalScroll",
|
339 |
-
self.debounce(50, self.onResize)
|
340 |
-
);
|
341 |
-
$window.on("load", function() {
|
342 |
-
self.setSectionsData();
|
343 |
-
});
|
344 |
-
|
345 |
-
self.keyboardHandler();
|
346 |
-
|
347 |
-
self.scrollHandler();
|
348 |
-
|
349 |
-
for (var section in sections) {
|
350 |
-
var $section = sections[section].selector;
|
351 |
-
elementorFrontend.waypoint(
|
352 |
-
$section,
|
353 |
-
function(direction) {
|
354 |
-
var $this = $(this),
|
355 |
-
sectionId = $this.attr("id");
|
356 |
-
if ("down" === direction && !isScrolling) {
|
357 |
-
currentSection = sectionId;
|
358 |
-
$itemsList.removeClass("active");
|
359 |
-
$menuItems.removeClass("active");
|
360 |
-
$(
|
361 |
-
"[data-menuanchor=" + sectionId + "]",
|
362 |
-
$instance
|
363 |
-
).addClass("active");
|
364 |
-
}
|
365 |
-
},
|
366 |
-
{
|
367 |
-
offset: "95%",
|
368 |
-
triggerOnce: false
|
369 |
-
}
|
370 |
-
);
|
371 |
-
|
372 |
-
elementorFrontend.waypoint(
|
373 |
-
$section,
|
374 |
-
function(direction) {
|
375 |
-
var $this = $(this),
|
376 |
-
sectionId = $this.attr("id");
|
377 |
-
if ("up" === direction && !isScrolling) {
|
378 |
-
currentSection = sectionId;
|
379 |
-
$itemsList.removeClass("active");
|
380 |
-
$menuItems.removeClass("active");
|
381 |
-
$(
|
382 |
-
"[data-menuanchor=" + sectionId + "]",
|
383 |
-
$instance
|
384 |
-
).addClass("active");
|
385 |
-
}
|
386 |
-
},
|
387 |
-
{
|
388 |
-
offset: "0%",
|
389 |
-
triggerOnce: false
|
390 |
-
}
|
391 |
-
);
|
392 |
-
}
|
393 |
-
};
|
394 |
-
|
395 |
-
self.keyboardHandler = function() {
|
396 |
-
$(document).keydown(function(event) {
|
397 |
-
if (38 == event.keyCode) {
|
398 |
-
self.onKeyUp(event, "up");
|
399 |
-
}
|
400 |
-
|
401 |
-
if (40 == event.keyCode) {
|
402 |
-
self.onKeyUp(event, "down");
|
403 |
-
}
|
404 |
-
});
|
405 |
-
};
|
406 |
-
|
407 |
-
self.scrollHandler = function() {
|
408 |
-
if (settings.fullSection) {
|
409 |
-
var vSection = document.getElementById($instance.attr("id"));
|
410 |
-
|
411 |
-
if (checkTemps) {
|
412 |
-
document.addEventListener
|
413 |
-
? vSection.addEventListener("wheel", self.onWheel, {
|
414 |
-
passive: false
|
415 |
-
})
|
416 |
-
: vSection.attachEvent("onmousewheel", self.onWheel);
|
417 |
-
} else {
|
418 |
-
document.addEventListener
|
419 |
-
? document.addEventListener("wheel", self.onWheel, {
|
420 |
-
passive: false
|
421 |
-
})
|
422 |
-
: document.attachEvent("onmousewheel", self.onWheel);
|
423 |
-
}
|
424 |
-
}
|
425 |
-
};
|
426 |
-
|
427 |
-
self.setSectionsData = function() {
|
428 |
-
$itemsList.each(function() {
|
429 |
-
var $this = $(this),
|
430 |
-
sectionId = $this.data("menuanchor"),
|
431 |
-
$section = $("#" + sectionId);
|
432 |
-
if ($section[0]) {
|
433 |
-
sections[sectionId] = {
|
434 |
-
selector: $section,
|
435 |
-
offset: Math.round($section.offset().top),
|
436 |
-
height: $section.outerHeight()
|
437 |
-
};
|
438 |
-
}
|
439 |
-
});
|
440 |
-
};
|
441 |
-
|
442 |
self.onNavDotEnter = function() {
|
443 |
var $this = $(this),
|
444 |
index = $this.data("index");
|
@@ -501,6 +588,21 @@
|
|
501 |
);
|
502 |
}
|
503 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
504 |
|
505 |
self.onAnchorChange = function( sectionId ) {
|
506 |
|
@@ -512,7 +614,7 @@
|
|
512 |
}
|
513 |
|
514 |
offset = sections[sectionId].offset - settings.offset;
|
515 |
-
|
516 |
if ( ! isScrolling ) {
|
517 |
isScrolling = true;
|
518 |
|
@@ -521,7 +623,7 @@
|
|
521 |
}
|
522 |
|
523 |
currentSection = sectionId;
|
524 |
-
|
525 |
$itemsList.removeClass("active");
|
526 |
$menuItems.removeClass("active");
|
527 |
|
@@ -598,6 +700,7 @@
|
|
598 |
}
|
599 |
|
600 |
self.onWheel = function(event) {
|
|
|
601 |
if (isScrolling) {
|
602 |
event.preventDefault();
|
603 |
return false;
|
@@ -610,7 +713,6 @@
|
|
610 |
$section = $target.closest(sectionSelector),
|
611 |
$vTarget = self.visible($instance, true, false),
|
612 |
sectionId = $section.attr("id"),
|
613 |
-
offset = 0,
|
614 |
newSectionId = false,
|
615 |
prevSectionId = false,
|
616 |
nextSectionId = false,
|
@@ -755,9 +857,6 @@
|
|
755 |
self.setSectionsData();
|
756 |
};
|
757 |
|
758 |
-
self.scrollStop = function() {
|
759 |
-
$htmlBody.stop(true);
|
760 |
-
};
|
761 |
};
|
762 |
|
763 |
$(window).on("elementor/frontend/init", function() {
|
2 |
|
3 |
(function($) {
|
4 |
/****** Premium Vertical Scroll Handler ******/
|
5 |
+
var PremiumVerticalScrollHandler = function( $scope, $ ) {
|
6 |
var vScrollElem = $scope.find(".premium-vscroll-wrap"),
|
7 |
instance = null,
|
8 |
vScrollSettings = vScrollElem.data("settings");
|
12 |
instance = new premiumVerticalScroll(vScrollElem, vScrollSettings);
|
13 |
instance.init();
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
};
|
16 |
|
17 |
+
window.premiumVerticalScroll = function( $selector, settings ) {
|
18 |
+
var self = this,
|
19 |
+
$window = $( window ),
|
20 |
+
isTouch = false,
|
21 |
+
$instance = $selector,
|
22 |
+
checkTemps = $selector.find(".premium-vscroll-sections-wrap")
|
23 |
.length,
|
24 |
+
$htmlBody = $("html, body"),
|
25 |
+
deviceType = $("body").data("elementor-device-mode"),
|
26 |
+
$itemsList = $(".premium-vscroll-dot-item", $instance),
|
27 |
+
$menuItems = $(".premium-vscroll-nav-item", $instance),
|
28 |
+
defaultSettings = {
|
29 |
+
speed: 700,
|
30 |
+
offset: 1,
|
31 |
+
fullSection: true
|
32 |
+
},
|
33 |
+
settings = $.extend({}, defaultSettings, settings),
|
34 |
+
sections = {},
|
35 |
+
timeStamp = 0,
|
36 |
+
currentSection = null,
|
37 |
+
platform = navigator.platform,
|
38 |
+
isScrolling = false,
|
39 |
+
sectionChanged = false,
|
40 |
+
inScope = true;
|
41 |
+
|
42 |
+
|
43 |
+
var interstitialIndex = 1;
|
44 |
+
|
45 |
+
var touchStartY = 0,
|
46 |
+
touchEndY = 0;
|
47 |
|
|
|
|
|
|
|
48 |
|
49 |
+
jQuery.extend(jQuery.easing, {
|
50 |
+
easeInOutCirc: function(x, t, b, c, d) {
|
51 |
+
if ((t /= d / 2) < 1)
|
52 |
+
return (-c / 2) * (Math.sqrt(1 - t * t) - 1) + b;
|
53 |
+
return (c / 2) * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;
|
54 |
+
}
|
55 |
+
});
|
56 |
+
|
57 |
self.init = function() {
|
58 |
self.setSectionsData();
|
59 |
+
|
60 |
+
isTouch = self.isTouchDevice();
|
61 |
|
62 |
$itemsList.on("click.premiumVerticalScroll", self.onNavDotChange);
|
63 |
$menuItems.on("click.premiumVerticalScroll", self.onNavDotChange);
|
72 |
self.onNavDotLeave
|
73 |
);
|
74 |
|
75 |
+
if ( "desktop" === deviceType ) {
|
76 |
+
$window.on("scroll.premiumVerticalScroll", self.onWheel);
|
77 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
|
79 |
+
$window.on(
|
80 |
+
"resize.premiumVerticalScroll orientationchange.premiumVerticalScroll",
|
81 |
+
self.debounce(50, self.onResize)
|
82 |
+
);
|
83 |
+
$window.on("load", function() {
|
84 |
+
self.setSectionsData();
|
85 |
+
});
|
86 |
+
|
87 |
+
self.keyboardHandler();
|
88 |
+
|
89 |
+
self.scrollHandler();
|
90 |
+
|
91 |
+
self.fullSectionHandler();
|
92 |
+
};
|
93 |
+
|
94 |
+
self.setSectionsData = function() {
|
95 |
+
$itemsList.each(function() {
|
96 |
+
var $this = $(this),
|
97 |
+
sectionId = $this.data("menuanchor"),
|
98 |
+
$section = $("#" + sectionId);
|
99 |
+
if ($section[0]) {
|
100 |
+
sections[sectionId] = {
|
101 |
+
selector: $section,
|
102 |
+
offset: Math.round($section.offset().top),
|
103 |
+
height: $section.outerHeight()
|
104 |
+
};
|
105 |
}
|
106 |
});
|
107 |
+
};
|
108 |
+
|
109 |
+
self.fullSectionHandler = function() {
|
110 |
+
|
111 |
+
if ( settings.fullSection ) {
|
112 |
|
113 |
+
var vSection = document.getElementById( $instance.attr( "id" ) );
|
|
|
|
|
114 |
|
115 |
+
if ( ! isTouch || ! settings.fullTouch ) {
|
116 |
+
|
117 |
+
if ( checkTemps ) {
|
118 |
|
|
|
119 |
document.addEventListener
|
120 |
+
? vSection.addEventListener( "wheel", self.onWheel, !1 )
|
121 |
+
: vSection.attachEvent( "onmousewheel", self.onWheel );
|
122 |
+
|
123 |
} else {
|
124 |
+
|
125 |
document.addEventListener
|
126 |
+
? document.addEventListener( "wheel", self.onWheel, !1 )
|
127 |
+
: document.attachEvent( "onmousewheel", self.onWheel );
|
128 |
+
|
129 |
}
|
130 |
+
|
131 |
+
} else {
|
132 |
+
document.addEventListener( "touchstart", self.onTouchStart );
|
133 |
+
document.addEventListener( "touchmove", self.onTouchMove, { passive: false } );
|
134 |
+
|
135 |
}
|
136 |
+
|
137 |
+
}
|
138 |
+
|
139 |
};
|
140 |
+
|
141 |
+
self.scrollHandler = function() {
|
142 |
|
143 |
+
for ( var section in sections ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
|
145 |
+
var $section = sections[ section ].selector;
|
|
|
146 |
|
147 |
+
elementorFrontend.waypoint(
|
148 |
+
$section,
|
149 |
+
function( direction ) {
|
150 |
+
|
151 |
+
var $this = $( this ),
|
152 |
+
sectionId = $this.attr( "id" );
|
153 |
+
|
154 |
+
if ( ! isScrolling ) {
|
155 |
+
|
156 |
+
currentSection = sectionId;
|
157 |
|
158 |
+
$itemsList.removeClass("active");
|
159 |
+
$menuItems.removeClass("active");
|
160 |
+
|
161 |
+
$( "[data-menuanchor=" + sectionId + "]", $instance ).addClass( "active" );
|
162 |
+
|
163 |
+
}
|
164 |
+
},
|
165 |
+
{
|
166 |
+
offset: "0%",
|
167 |
+
triggerOnce: false
|
168 |
+
}
|
169 |
);
|
170 |
+
|
171 |
+
}
|
172 |
+
|
173 |
};
|
174 |
+
|
175 |
+
self.keyboardHandler = function() {
|
176 |
+
$(document).keydown(function(event) {
|
177 |
+
if (38 == event.keyCode) {
|
178 |
+
self.onKeyUp(event, "up");
|
179 |
+
}
|
180 |
|
181 |
+
if (40 == event.keyCode) {
|
182 |
+
self.onKeyUp(event, "down");
|
183 |
+
}
|
184 |
+
});
|
185 |
+
};
|
186 |
+
|
187 |
+
self.scrolling = function ( sectionID ) {
|
188 |
+
|
189 |
+
if( self.atBottom( sectionID ) || sectionChanged ) {
|
190 |
+
self.onAnchorChange( sectionID );
|
191 |
+
sectionChanged = 0;
|
192 |
+
} else {
|
193 |
+
|
194 |
+
var ID = '#' + sectionID,
|
195 |
+
offset = $window.scrollTop() + $( ID ).outerHeight() / 4;
|
196 |
+
|
197 |
+
$htmlBody
|
198 |
+
.stop()
|
199 |
+
.clearQueue()
|
200 |
+
.animate(
|
201 |
+
{ scrollTop: offset },
|
202 |
+
700,
|
203 |
+
"easeInOutCirc",
|
204 |
+
function() {
|
205 |
+
isScrolling = false;
|
206 |
+
}
|
207 |
+
);
|
208 |
+
|
209 |
+
}
|
210 |
};
|
211 |
+
|
212 |
+
self.atBottom = function( sectionID ) {
|
213 |
+
|
214 |
+
var top = $window.scrollTop(),
|
215 |
+
portHeight = window.innerHeight,
|
216 |
+
ID = '#' + sectionID,
|
217 |
+
height = parseInt ( $( ID ).offset().top );
|
218 |
|
219 |
+
if( top < parseInt( height ) + ( $( ID ).outerHeight() - portHeight ) - 28 ) {
|
220 |
+
return false;
|
221 |
+
} else {
|
222 |
+
return true;
|
223 |
+
}
|
224 |
};
|
225 |
+
|
226 |
+
self.isTouchDevice = function() {
|
227 |
+
|
228 |
+
var isTouchDevice = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/),
|
229 |
+
isTouch = ( ( 'ontouchstart' in window ) || ( navigator.msMaxTouchPoints > 0 ) || ( navigator.maxTouchPoints ) );
|
230 |
|
231 |
+
return isTouchDevice || isTouch;
|
232 |
+
|
233 |
+
};
|
234 |
+
|
235 |
+
self.getEventsPage = function( e ) {
|
236 |
+
|
237 |
+
var events = [];
|
238 |
+
|
239 |
+
events.y = (typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY);
|
240 |
+
events.x = (typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX);
|
241 |
+
|
242 |
+
if( isTouch && typeof e.touches !== 'undefined' ) {
|
243 |
+
events.y = e.touches[0].pageY;
|
244 |
+
events.x = e.touches[0].pageX;
|
245 |
+
}
|
246 |
+
|
247 |
+
return events;
|
248 |
+
|
249 |
};
|
250 |
|
251 |
+
|
252 |
+
self.onTouchStart = function( e ) {
|
|
|
|
|
|
|
253 |
|
254 |
+
var touchEvents = self.getEventsPage( e );
|
255 |
+
touchStartY = touchEvents.y;
|
256 |
+
|
257 |
};
|
258 |
|
259 |
+
self.onTouchMove = function( e ) {
|
260 |
+
|
261 |
+
|
262 |
+
if ( inScope ) {
|
263 |
+
self.preventDefault( e );
|
264 |
+
}
|
265 |
+
|
266 |
+
if ( isScrolling ) {
|
267 |
+
self.preventDefault( e );
|
268 |
+
return false;
|
269 |
+
}
|
270 |
+
|
271 |
+
var touchEvents = self.getEventsPage( e );
|
272 |
+
|
273 |
+
touchEndY = touchEvents.y;
|
274 |
+
|
275 |
+
var $target = $( e.target ),
|
276 |
+
sectionSelector = checkTemps ? ".premium-vscroll-temp" : ".elementor-top-section",
|
277 |
+
$section = $target.closest( sectionSelector ),
|
278 |
+
$vTarget = self.visible( $instance, true, false ),
|
279 |
+
sectionId = $section.attr( "id" ),
|
280 |
+
newSectionId = false,
|
281 |
+
prevSectionId = false,
|
282 |
+
nextSectionId = false,
|
283 |
+
direction = false,
|
284 |
+
windowScrollTop = $window.scrollTop(),
|
285 |
+
dotIndex = $( ".premium-vscroll-dot-item.active" ).index();
|
286 |
|
287 |
+
$( ".premium-vscroll-tooltip" ).hide();
|
288 |
+
|
289 |
+
// if ( dotIndex === $itemsList.length - 1 && ! $vTarget ) {
|
290 |
+
//
|
291 |
+
// $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).addClass( "premium-vscroll-dots-hide" );
|
292 |
+
//
|
293 |
+
// } else if ( dotIndex === 0 && ! $vTarget ) {
|
294 |
+
//
|
295 |
+
// if ( $instance.offset().top - $( document ).scrollTop() > 200 ) {
|
296 |
+
//
|
297 |
+
// $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).addClass( "premium-vscroll-dots-hide" );
|
298 |
+
//
|
299 |
+
// }
|
300 |
+
//
|
301 |
+
// } else {
|
302 |
+
//
|
303 |
+
// $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).removeClass( "premium-vscroll-dots-hide" );
|
304 |
+
//
|
305 |
+
// }
|
306 |
+
|
307 |
+
if ( beforeCheck() ) {
|
308 |
+
|
309 |
+
sectionId = self.getFirstSection( sections );
|
310 |
|
|
|
|
|
311 |
}
|
312 |
|
313 |
+
if ( afterCheck() ) {
|
|
|
314 |
|
315 |
+
sectionId = self.getLastSection( sections );
|
|
|
|
|
|
|
|
|
316 |
|
317 |
+
}
|
318 |
+
|
319 |
+
if ( touchStartY > touchEndY ) {
|
320 |
|
321 |
+
direction = 'down';
|
322 |
|
323 |
+
} else if ( touchEndY > touchStartY ) {
|
|
|
324 |
|
325 |
+
direction = 'up';
|
|
|
|
|
326 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
}
|
|
|
328 |
|
329 |
+
// if ( Math.abs( touchStartY - touchEndY ) > ( window.innerHeight / 100 * 100 ) ) {
|
330 |
+
|
331 |
+
// if ( sectionId && sections.hasOwnProperty( sectionId ) ) {
|
332 |
+
//
|
333 |
+
// prevSectionId = self.checkPrevSection( sections, sectionId );
|
334 |
+
// nextSectionId = self.checkNextSection( sections, sectionId );
|
335 |
+
//
|
336 |
+
// if ( "up" === direction ) {
|
337 |
+
//
|
338 |
+
// if ( ! nextSectionId && sections[ sectionId ].offset < windowScrollTop ) {
|
339 |
+
// newSectionId = sectionId;
|
340 |
+
// } else {
|
341 |
+
// newSectionId = prevSectionId;
|
342 |
+
// }
|
343 |
+
// }
|
344 |
+
//
|
345 |
+
// if ( "down" === direction ) {
|
346 |
+
//
|
347 |
+
// if ( ! prevSectionId && sections[ sectionId ].offset > windowScrollTop + 5 ) {
|
348 |
+
// newSectionId = sectionId;
|
349 |
+
// } else {
|
350 |
+
// newSectionId = nextSectionId;
|
351 |
+
// }
|
352 |
+
// }
|
353 |
+
//
|
354 |
+
// if ( newSectionId ) {
|
355 |
+
//
|
356 |
+
// inScope = true;
|
357 |
+
//
|
358 |
+
// $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).removeClass( "premium-vscroll-dots-hide" );
|
359 |
+
//
|
360 |
+
// self.scrolling( newSectionId );
|
361 |
+
//
|
362 |
+
// } else {
|
363 |
+
// inScope = false;
|
364 |
+
//
|
365 |
+
// var $lastselector = checkTemps ? $instance : $( "#" + sectionId );
|
366 |
+
//
|
367 |
+
// if ( "down" === direction ) {
|
368 |
+
//
|
369 |
+
// if ( $lastselector.offset().top + $lastselector.innerHeight() - $( document ).scrollTop() > 600 ) {
|
370 |
+
//
|
371 |
+
// $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).addClass( "premium-vscroll-dots-hide" );
|
372 |
+
//
|
373 |
+
// }
|
374 |
+
//
|
375 |
+
// } else if ( "up" === direction ) {
|
376 |
+
//
|
377 |
+
// if ( $lastselector.offset().top - $( document ).scrollTop() > 200 ) {
|
378 |
+
//
|
379 |
+
// $(".premium-vscroll-dots, .premium-vscroll-nav-menu").addClass( "premium-vscroll-dots-hide" );
|
380 |
+
//
|
381 |
+
// }
|
382 |
+
//
|
383 |
+
// }
|
384 |
+
// }
|
385 |
+
//
|
386 |
+
// }
|
387 |
+
|
388 |
+
// } else {
|
389 |
+
|
390 |
+
if ( sectionId && sections.hasOwnProperty( sectionId ) ) {
|
391 |
+
|
392 |
+
prevSectionId = self.checkPrevSection( sections, sectionId );
|
393 |
+
nextSectionId = self.checkNextSection( sections, sectionId );
|
394 |
+
|
395 |
+
if ( "up" === direction ) {
|
396 |
+
|
397 |
+
if ( ! nextSectionId && sections[ sectionId ].offset < windowScrollTop ) {
|
398 |
+
newSectionId = sectionId;
|
399 |
+
} else {
|
400 |
+
newSectionId = prevSectionId;
|
401 |
+
}
|
402 |
+
}
|
403 |
|
404 |
+
if ( "down" === direction ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
405 |
|
406 |
+
if ( ! prevSectionId && sections[ sectionId ].offset > windowScrollTop + 5 || ! self.atBottom( sectionId ) ) {
|
407 |
+
newSectionId = sectionId;
|
408 |
+
} else {
|
409 |
+
newSectionId = nextSectionId;
|
410 |
+
sectionChanged = 1;
|
411 |
+
}
|
412 |
+
}
|
413 |
+
|
414 |
+
if ( newSectionId ) {
|
415 |
+
|
416 |
+
inScope = true;
|
417 |
+
|
418 |
+
$( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).removeClass( "premium-vscroll-dots-hide" );
|
419 |
+
|
420 |
+
self.scrolling( newSectionId );
|
421 |
+
|
422 |
+
} else {
|
423 |
+
inScope = false;
|
424 |
+
|
425 |
+
var $lastselector = checkTemps ? $instance : $( "#" + sectionId );
|
426 |
+
|
427 |
+
if ( "down" === direction ) {
|
428 |
+
|
429 |
+
if ( $lastselector.offset().top + $lastselector.innerHeight() - $( document ).scrollTop() > 600 ) {
|
430 |
+
|
431 |
+
$( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).addClass( "premium-vscroll-dots-hide" );
|
432 |
+
|
433 |
+
}
|
434 |
+
|
435 |
+
} else if ( "up" === direction ) {
|
436 |
+
|
437 |
+
if ( $lastselector.offset().top - $( document ).scrollTop() > 200 ) {
|
438 |
+
|
439 |
+
$(".premium-vscroll-dots, .premium-vscroll-nav-menu").addClass( "premium-vscroll-dots-hide" );
|
440 |
+
|
441 |
+
}
|
442 |
+
|
443 |
+
}
|
444 |
+
}
|
445 |
+
|
446 |
+
}
|
447 |
+
|
448 |
+
// }
|
449 |
+
|
450 |
+
};
|
451 |
+
|
452 |
+
self.scrollStop = function() {
|
453 |
+
$htmlBody.stop(true);
|
454 |
+
};
|
455 |
|
456 |
self.checkNextSection = function(object, key) {
|
457 |
var keys = Object.keys(object),
|
497 |
timeout = setTimeout(delayed, threshold);
|
498 |
};
|
499 |
};
|
500 |
+
|
501 |
self.visible = function(selector, partial, hidden) {
|
502 |
var s = selector.get(0),
|
503 |
vpHeight = $window.outerHeight(),
|
526 |
}
|
527 |
};
|
528 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
529 |
self.onNavDotEnter = function() {
|
530 |
var $this = $(this),
|
531 |
index = $this.data("index");
|
588 |
);
|
589 |
}
|
590 |
};
|
591 |
+
|
592 |
+
self.preventDefault = function( event ) {
|
593 |
+
|
594 |
+
if( event.preventDefault ){
|
595 |
+
|
596 |
+
event.preventDefault();
|
597 |
+
|
598 |
+
} else {
|
599 |
+
|
600 |
+
event.returnValue = false;
|
601 |
+
|
602 |
+
}
|
603 |
+
|
604 |
+
};
|
605 |
+
|
606 |
|
607 |
self.onAnchorChange = function( sectionId ) {
|
608 |
|
614 |
}
|
615 |
|
616 |
offset = sections[sectionId].offset - settings.offset;
|
617 |
+
|
618 |
if ( ! isScrolling ) {
|
619 |
isScrolling = true;
|
620 |
|
623 |
}
|
624 |
|
625 |
currentSection = sectionId;
|
626 |
+
|
627 |
$itemsList.removeClass("active");
|
628 |
$menuItems.removeClass("active");
|
629 |
|
700 |
}
|
701 |
|
702 |
self.onWheel = function(event) {
|
703 |
+
|
704 |
if (isScrolling) {
|
705 |
event.preventDefault();
|
706 |
return false;
|
713 |
$section = $target.closest(sectionSelector),
|
714 |
$vTarget = self.visible($instance, true, false),
|
715 |
sectionId = $section.attr("id"),
|
|
|
716 |
newSectionId = false,
|
717 |
prevSectionId = false,
|
718 |
nextSectionId = false,
|
857 |
self.setSectionsData();
|
858 |
};
|
859 |
|
|
|
|
|
|
|
860 |
};
|
861 |
|
862 |
$(window).on("elementor/frontend/init", function() {
|
includes/class-addons-integration.php
CHANGED
@@ -4,7 +4,6 @@ namespace PremiumAddons;
|
|
4 |
|
5 |
use PremiumAddons\Admin\Settings\Maps;
|
6 |
use PremiumAddons\Admin\Settings\Modules_Settings;
|
7 |
-
use PremiumAddons\Includes\premium_Template_Tags;
|
8 |
|
9 |
if( ! defined( 'ABSPATH' ) ) exit();
|
10 |
|
4 |
|
5 |
use PremiumAddons\Admin\Settings\Maps;
|
6 |
use PremiumAddons\Admin\Settings\Modules_Settings;
|
|
|
7 |
|
8 |
if( ! defined( 'ABSPATH' ) ) exit();
|
9 |
|
premium-addons-for-elementor.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Premium Addons for Elementor
|
4 |
Description: Premium Addons Plugin Includes 22+ premium widgets for Elementor Page Builder.
|
5 |
Plugin URI: https://premiumaddons.com
|
6 |
-
Version: 3.6.
|
7 |
Author: Leap13
|
8 |
Author URI: https://leap13.com/
|
9 |
Text Domain: premium-addons-for-elementor
|
@@ -14,12 +14,12 @@ License: GNU General Public License v3.0
|
|
14 |
if ( ! defined('ABSPATH') ) exit; // No access of directly access
|
15 |
|
16 |
// Define Constants
|
17 |
-
define('PREMIUM_ADDONS_VERSION', '3.6.
|
18 |
define('PREMIUM_ADDONS_URL', plugins_url('/', __FILE__));
|
19 |
define('PREMIUM_ADDONS_PATH', plugin_dir_path(__FILE__));
|
20 |
define('PREMIUM_ADDONS_FILE', __FILE__);
|
21 |
define('PREMIUM_ADDONS_BASENAME', plugin_basename( PREMIUM_ADDONS_FILE ) );
|
22 |
-
define('PREMIUM_ADDONS_STABLE_VERSION', '3.6.
|
23 |
|
24 |
if( ! class_exists('Premium_Addons_Elementor') ) {
|
25 |
|
3 |
Plugin Name: Premium Addons for Elementor
|
4 |
Description: Premium Addons Plugin Includes 22+ premium widgets for Elementor Page Builder.
|
5 |
Plugin URI: https://premiumaddons.com
|
6 |
+
Version: 3.6.4
|
7 |
Author: Leap13
|
8 |
Author URI: https://leap13.com/
|
9 |
Text Domain: premium-addons-for-elementor
|
14 |
if ( ! defined('ABSPATH') ) exit; // No access of directly access
|
15 |
|
16 |
// Define Constants
|
17 |
+
define('PREMIUM_ADDONS_VERSION', '3.6.4');
|
18 |
define('PREMIUM_ADDONS_URL', plugins_url('/', __FILE__));
|
19 |
define('PREMIUM_ADDONS_PATH', plugin_dir_path(__FILE__));
|
20 |
define('PREMIUM_ADDONS_FILE', __FILE__);
|
21 |
define('PREMIUM_ADDONS_BASENAME', plugin_basename( PREMIUM_ADDONS_FILE ) );
|
22 |
+
define('PREMIUM_ADDONS_STABLE_VERSION', '3.6.3');
|
23 |
|
24 |
if( ! class_exists('Premium_Addons_Elementor') ) {
|
25 |
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Donate link: http://premiumaddons.com
|
|
5 |
Requires at least: 4.5
|
6 |
Tested up to: 5.2.2
|
7 |
Requires PHP: 5.4
|
8 |
-
Stable tag: 3.6.
|
9 |
License: GPL v3.0
|
10 |
License URI: https://opensource.org/licenses/GPL-3.0
|
11 |
|
@@ -142,6 +142,13 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
|
|
142 |
|
143 |
== Changelog ==
|
144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
= 3.6.3 =
|
146 |
|
147 |
- Fixed: Filter by Widget / Addon, Filter by Category inputs removed after `Back to Library` button is clicked.
|
5 |
Requires at least: 4.5
|
6 |
Tested up to: 5.2.2
|
7 |
Requires PHP: 5.4
|
8 |
+
Stable tag: 3.6.4
|
9 |
License: GPL v3.0
|
10 |
License URI: https://opensource.org/licenses/GPL-3.0
|
11 |
|
142 |
|
143 |
== Changelog ==
|
144 |
|
145 |
+
= 3.6.4 =
|
146 |
+
|
147 |
+
- Tweak: Grid widget code refactored for better performance.
|
148 |
+
- Tweak: Added `Lightbox Type` option in Grid widget to switch between default, Elementor's or any other lightbox plugin.
|
149 |
+
- Tweak: Added `Shuffle Images After Filter Click` option in Grid widget.
|
150 |
+
- Tweak: Added `Full Section Scroll on Touch Devices` option in Grid widget.
|
151 |
+
|
152 |
= 3.6.3 =
|
153 |
|
154 |
- Fixed: Filter by Widget / Addon, Filter by Category inputs removed after `Back to Library` button is clicked.
|
widgets/premium-grid.php
CHANGED
@@ -70,7 +70,7 @@ class Premium_Grid extends Widget_Base {
|
|
70 |
|
71 |
$this->start_controls_section('premium_gallery_general',
|
72 |
[
|
73 |
-
'label'
|
74 |
|
75 |
]);
|
76 |
|
@@ -135,9 +135,9 @@ class Premium_Grid extends Widget_Base {
|
|
135 |
$this->add_group_control(
|
136 |
Group_Control_Image_Size::get_type(),
|
137 |
[
|
138 |
-
'name'
|
139 |
-
'default'
|
140 |
-
'condition'
|
141 |
'premium_gallery_img_size_select' => 'fitRows'
|
142 |
]
|
143 |
]
|
@@ -145,13 +145,13 @@ class Premium_Grid extends Widget_Base {
|
|
145 |
|
146 |
$this->add_responsive_control('premium_gallery_column_number',
|
147 |
[
|
148 |
-
'label'
|
149 |
-
'label_block'
|
150 |
-
'type'
|
151 |
-
'desktop_default'
|
152 |
-
'tablet_default'
|
153 |
-
'mobile_default'
|
154 |
-
'options'
|
155 |
'100%' => __( '1 Column', 'premium-addons-for-elementor' ),
|
156 |
'50%' => __( '2 Columns', 'premium-addons-for-elementor' ),
|
157 |
'33.330%' => __( '3 Columns', 'premium-addons-for-elementor' ),
|
@@ -160,31 +160,31 @@ class Premium_Grid extends Widget_Base {
|
|
160 |
'16.66%' => __( '6 Columns', 'premium-addons-for-elementor' ),
|
161 |
'8.33%' => __( '12 Columns', 'premium-addons-for-elementor' ),
|
162 |
],
|
163 |
-
'condition'
|
164 |
'premium_gallery_img_size_select!' => 'metro'
|
165 |
],
|
166 |
-
'selectors'
|
167 |
'{{WRAPPER}} .premium-img-gallery-masonry div.premium-gallery-item, {{WRAPPER}} .premium-img-gallery-fitRows div.premium-gallery-item' => 'width: {{VALUE}};',
|
168 |
],
|
169 |
-
'render_type'
|
170 |
]
|
171 |
);
|
172 |
|
173 |
$this->add_control( 'premium_gallery_load_more',
|
174 |
[
|
175 |
-
'label'
|
176 |
-
'description'
|
177 |
-
'type'
|
178 |
]
|
179 |
);
|
180 |
|
181 |
$this->add_control( 'premium_gallery_load_more_text',
|
182 |
[
|
183 |
-
'label'
|
184 |
-
'type'
|
185 |
-
'default'
|
186 |
-
'dynamic'
|
187 |
-
'condition'
|
188 |
'premium_gallery_load_more' => 'yes'
|
189 |
]
|
190 |
]
|
@@ -192,11 +192,11 @@ class Premium_Grid extends Widget_Base {
|
|
192 |
|
193 |
$this->add_control( 'premium_gallery_load_minimum',
|
194 |
[
|
195 |
-
'label'
|
196 |
-
'type'
|
197 |
-
'description'
|
198 |
-
'default'
|
199 |
-
'condition'
|
200 |
'premium_gallery_load_more' => 'yes'
|
201 |
]
|
202 |
]
|
@@ -204,10 +204,10 @@ class Premium_Grid extends Widget_Base {
|
|
204 |
|
205 |
$this->add_control( 'premium_gallery_load_click_number',
|
206 |
[
|
207 |
-
'label'
|
208 |
-
'type'
|
209 |
-
'description'
|
210 |
-
'default'
|
211 |
'condition' => [
|
212 |
'premium_gallery_load_more' => 'yes'
|
213 |
]
|
@@ -216,9 +216,9 @@ class Premium_Grid extends Widget_Base {
|
|
216 |
|
217 |
$this->add_responsive_control('premium_gallery_load_more_align',
|
218 |
[
|
219 |
-
'label'
|
220 |
-
'type'
|
221 |
-
'options'
|
222 |
'left' => [
|
223 |
'title'=> __( 'Left', 'premium-addons-for-elementor' ),
|
224 |
'icon' => 'fa fa-align-left',
|
@@ -232,11 +232,11 @@ class Premium_Grid extends Widget_Base {
|
|
232 |
'icon' => 'fa fa-align-right',
|
233 |
],
|
234 |
],
|
235 |
-
'default'
|
236 |
-
'selectors'
|
237 |
'{{WRAPPER}} .premium-gallery-load-more' => 'text-align: {{VALUE}};',
|
238 |
],
|
239 |
-
'condition'
|
240 |
'premium_gallery_load_more' => 'yes'
|
241 |
]
|
242 |
]
|
@@ -246,26 +246,38 @@ class Premium_Grid extends Widget_Base {
|
|
246 |
|
247 |
$this->start_controls_section('premium_gallery_cats',
|
248 |
[
|
249 |
-
'label'
|
250 |
-
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
|
252 |
$this->add_control( 'premium_gallery_first_cat_switcher',
|
253 |
[
|
254 |
-
'label'
|
255 |
-
'type'
|
256 |
-
'default'
|
|
|
257 |
]
|
258 |
);
|
259 |
|
260 |
$this->add_control( 'premium_gallery_first_cat_label',
|
261 |
[
|
262 |
-
'label'
|
263 |
-
'type'
|
264 |
-
'default'
|
265 |
-
'dynamic'
|
266 |
-
'condition' => [
|
267 |
'premium_gallery_first_cat_switcher' => 'yes'
|
268 |
-
]
|
269 |
]
|
270 |
);
|
271 |
|
@@ -273,20 +285,20 @@ class Premium_Grid extends Widget_Base {
|
|
273 |
|
274 |
$repeater->add_control( 'premium_gallery_img_cat',
|
275 |
[
|
276 |
-
'label'
|
277 |
-
'type'
|
278 |
-
'dynamic'
|
279 |
]
|
280 |
);
|
281 |
|
282 |
$repeater->add_control( 'premium_gallery_img_cat_rotation',
|
283 |
[
|
284 |
-
'label'
|
285 |
-
'type'
|
286 |
-
'description'
|
287 |
-
'min'
|
288 |
-
'max'
|
289 |
-
'selectors'
|
290 |
'{{WRAPPER}} {{CURRENT_ITEM}}' => '-webkit-transform: rotate({{VALUE}}deg); -moz-transform: rotate({{VALUE}}deg); -o-transform: rotate({{VALUE}}deg); transform: rotate({{VALUE}}deg);'
|
291 |
],
|
292 |
]
|
@@ -294,9 +306,9 @@ class Premium_Grid extends Widget_Base {
|
|
294 |
|
295 |
$this->add_control('premium_gallery_cats_content',
|
296 |
[
|
297 |
-
'label'
|
298 |
-
'type'
|
299 |
-
'default'
|
300 |
[
|
301 |
'premium_gallery_img_cat' => 'Category 1',
|
302 |
],
|
@@ -304,25 +316,30 @@ class Premium_Grid extends Widget_Base {
|
|
304 |
'premium_gallery_img_cat' => 'Category 2',
|
305 |
],
|
306 |
],
|
307 |
-
'fields'
|
308 |
-
'title_field'
|
|
|
309 |
]
|
310 |
);
|
311 |
|
312 |
$this->add_control( 'premium_gallery_active_cat',
|
313 |
[
|
314 |
-
'label'
|
315 |
-
'type'
|
316 |
-
'description'
|
317 |
-
'default'
|
|
|
|
|
318 |
]
|
319 |
);
|
320 |
|
321 |
-
$this->add_control('
|
322 |
[
|
323 |
-
'label' => __( 'Filter', 'premium-addons-for-elementor' ),
|
324 |
'type' => Controls_Manager::SWITCHER,
|
325 |
-
'
|
|
|
|
|
326 |
]
|
327 |
);
|
328 |
|
@@ -570,6 +587,22 @@ class Premium_Grid extends Widget_Base {
|
|
570 |
]
|
571 |
);
|
572 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
573 |
$this->add_control('premium_gallery_lightbox_theme',
|
574 |
[
|
575 |
'label' => __('Lightbox Theme', 'premium-addons-pro'),
|
@@ -584,7 +617,8 @@ class Premium_Grid extends Widget_Base {
|
|
584 |
],
|
585 |
'default' => 'pp_default',
|
586 |
'condition' => [
|
587 |
-
'premium_gallery_light_box'
|
|
|
588 |
]
|
589 |
]
|
590 |
);
|
@@ -594,7 +628,8 @@ class Premium_Grid extends Widget_Base {
|
|
594 |
'label' => __( 'Overlay Gallery Images', 'premium-addons-for-elementor' ),
|
595 |
'type' => Controls_Manager::SWITCHER,
|
596 |
'condition' => [
|
597 |
-
'premium_gallery_light_box'
|
|
|
598 |
]
|
599 |
]
|
600 |
);
|
@@ -1523,7 +1558,6 @@ class Premium_Grid extends Widget_Base {
|
|
1523 |
]
|
1524 |
);
|
1525 |
|
1526 |
-
|
1527 |
$this->end_controls_tab();
|
1528 |
|
1529 |
$this->end_controls_tabs();
|
@@ -1532,41 +1566,312 @@ class Premium_Grid extends Widget_Base {
|
|
1532 |
|
1533 |
}
|
1534 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1535 |
public function filter_cats( $string ) {
|
1536 |
|
1537 |
$cat_filtered = mb_strtolower( $string );
|
1538 |
|
1539 |
if( strpos( $cat_filtered, 'class' ) || strpos( $cat_filtered, 'src' ) ) {
|
1540 |
$cat_filtered = substr( $cat_filtered, strpos( $cat_filtered, '"' ) + 1 );
|
1541 |
-
$cat_filtered = strtok($cat_filtered, '"');
|
1542 |
-
$cat_filtered = preg_replace('/[http:.]/',''
|
1543 |
-
$cat_filtered = str_replace('/',''
|
1544 |
}
|
1545 |
|
1546 |
-
$cat_filtered = str_replace(', ', ',', $cat_filtered);
|
1547 |
-
$cat_filtered = preg_replace("/[\s_]/", "-", $cat_filtered);
|
1548 |
-
$cat_filtered = str_replace(',', ' ', $cat_filtered);
|
1549 |
|
1550 |
return $cat_filtered;
|
1551 |
}
|
1552 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1553 |
|
1554 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1555 |
|
1556 |
-
$
|
1557 |
|
1558 |
-
$
|
1559 |
|
1560 |
-
$
|
1561 |
-
$min_size = $settings['premium_gallery_min_range'].'px';
|
1562 |
-
$max_size = $settings['premium_gallery_max_range'].'px';
|
1563 |
|
1564 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1565 |
|
1566 |
-
|
1567 |
-
|
1568 |
-
|
1569 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1570 |
}
|
1571 |
|
1572 |
if ( 'original' === $settings['premium_gallery_img_size_select'] ) {
|
@@ -1575,94 +1880,72 @@ class Premium_Grid extends Widget_Base {
|
|
1575 |
$settings['premium_gallery_img_size_select'] = 'fitRows';
|
1576 |
}
|
1577 |
|
1578 |
-
$
|
1579 |
-
$minimum = ! empty ( $settings['premium_gallery_load_minimum'] ) ? $settings['premium_gallery_load_minimum'] : 6;
|
1580 |
-
$click_number = ! empty ( $settings['premium_gallery_load_click_number'] ) ? $settings['premium_gallery_load_click_number'] : 6;
|
1581 |
|
1582 |
-
$
|
1583 |
|
1584 |
$grid_settings = [
|
1585 |
'img_size' => $settings['premium_gallery_img_size_select'],
|
1586 |
-
'filter' => $
|
1587 |
-
'light_box' => $settings['premium_gallery_light_box'],
|
1588 |
-
'overlay_gallery'=> 'yes' === $settings['premium_gallery_overlay_gallery'] ? true : false,
|
1589 |
'theme' => $settings['premium_gallery_lightbox_theme'],
|
1590 |
-
'active_cat' => $
|
1591 |
-
'
|
1592 |
-
'
|
1593 |
-
'click_images' => $click_number,
|
1594 |
-
'rtl_mode' => $rtl_mode
|
1595 |
];
|
1596 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1597 |
$this->add_render_attribute( 'grid', [
|
1598 |
'id' => 'premium-img-gallery-' . esc_attr( $this->get_id() ),
|
1599 |
'class' => [
|
1600 |
'premium-img-gallery',
|
1601 |
-
'premium-img-gallery-' . $settings['premium_gallery_img_size_select']
|
|
|
1602 |
]
|
1603 |
]
|
1604 |
-
);
|
1605 |
-
|
1606 |
-
if ( ! empty( $settings['premium_gallery_active_cat'] ) ) {
|
1607 |
-
$active_category_index = 'yes' === $settings['premium_gallery_first_cat_switcher'] ? $settings['premium_gallery_active_cat'] - 1 : $settings['premium_gallery_active_cat'];
|
1608 |
-
} else {
|
1609 |
-
$active_category_index = -1;
|
1610 |
-
}
|
1611 |
|
1612 |
-
$
|
|
|
|
|
1613 |
|
1614 |
?>
|
1615 |
|
1616 |
-
<div <?php echo $this->get_render_attribute_string('grid'); ?>>
|
1617 |
-
<?php if( $filter == 'yes' ) :
|
1618 |
-
|
1619 |
-
|
1620 |
-
<?php if( 'yes' == $settings['premium_gallery_first_cat_switcher'] ) : ?>
|
1621 |
-
<li>
|
1622 |
-
<a href="javascript:;" class="category <?php echo $is_all_active; ?>" data-filter="*">
|
1623 |
-
<span><?php echo $settings['premium_gallery_first_cat_label']; ?></span>
|
1624 |
-
</a>
|
1625 |
-
</li>
|
1626 |
-
<?php endif;
|
1627 |
-
foreach( $settings['premium_gallery_cats_content'] as $index => $category ) {
|
1628 |
-
if( ! empty( $category['premium_gallery_img_cat'] ) ) {
|
1629 |
-
$cat_filtered = $this->filter_cats($category['premium_gallery_img_cat']);
|
1630 |
-
$cat_list_key = 'premium_grid_category_' . $index;
|
1631 |
-
if( $active_category_index == $index ) {
|
1632 |
-
$this->add_render_attribute($cat_list_key,
|
1633 |
-
'class',
|
1634 |
-
'active'
|
1635 |
-
);
|
1636 |
-
}
|
1637 |
-
|
1638 |
-
$this->add_render_attribute($cat_list_key,
|
1639 |
-
'class', [
|
1640 |
-
'category',
|
1641 |
-
'elementor-repeater-item-' . $category['_id']
|
1642 |
-
]
|
1643 |
-
);
|
1644 |
-
?>
|
1645 |
-
<li>
|
1646 |
-
<a href="javascript:;" <?php echo $this->get_render_attribute_string($cat_list_key); ?> data-filter=".<?php echo esc_attr( $cat_filtered ); ?>"
|
1647 |
-
><span><?php echo $category['premium_gallery_img_cat']; ?></span>
|
1648 |
-
</a>
|
1649 |
-
</li>
|
1650 |
-
<?php }
|
1651 |
-
} ?>
|
1652 |
-
</ul>
|
1653 |
-
</div>
|
1654 |
-
<?php endif; ?>
|
1655 |
|
1656 |
-
<div class="premium-gallery-container
|
|
|
1657 |
<?php if ( 'metro' === $settings['premium_gallery_img_size_select'] ) : ?>
|
1658 |
<div class="grid-sizer"></div>
|
1659 |
<?php endif;
|
|
|
1660 |
foreach( $settings['premium_gallery_img_content'] as $index => $image ) :
|
1661 |
-
$alt = esc_attr( Control_Media::get_image_alt( $image['premium_gallery_img'] ) );
|
1662 |
|
1663 |
$key = 'gallery_item_' . $index;
|
1664 |
|
1665 |
-
$this->add_render_attribute($key, [
|
1666 |
'class' => [
|
1667 |
'premium-gallery-item',
|
1668 |
'elementor-repeater-item-' . $image['_id'],
|
@@ -1675,117 +1958,120 @@ class Premium_Grid extends Widget_Base {
|
|
1675 |
|
1676 |
$cells = [
|
1677 |
'cells' => $image['premium_gallery_image_cell']['size'],
|
1678 |
-
'vcells'
|
1679 |
'cells_tablet' => $image['premium_gallery_image_cell_tablet']['size'],
|
1680 |
-
'vcells_tablet'
|
1681 |
'cells_mobile' => $image['premium_gallery_image_cell_mobile']['size'],
|
1682 |
-
'vcells_mobile'
|
1683 |
];
|
1684 |
|
1685 |
$this->add_render_attribute( $key, 'data-metro', wp_json_encode( $cells ) );
|
1686 |
}
|
1687 |
-
|
1688 |
?>
|
1689 |
<div <?php echo $this->get_render_attribute_string( $key ); ?>>
|
1690 |
<div class="pa-gallery-img <?php echo esc_attr( $layout ); ?>" onclick="">
|
1691 |
-
<div
|
1692 |
-
<?php
|
1693 |
-
$image_src = $image['premium_gallery_img'];
|
1694 |
-
$image_src_size = Group_Control_Image_Size::get_attachment_image_src( $image_src['id'], 'thumbnail', $settings );
|
1695 |
-
if( empty( $image_src_size ) ) : $image_src_size = $image_src['url']; else: $image_src_size = $image_src_size; endif;
|
1696 |
-
?>
|
1697 |
-
<img class="pa-gallery-image" src="<?php echo $image_src_size; ?>" alt="<?php echo $alt; ?>">
|
1698 |
-
<?php else : ?>
|
1699 |
-
<img class="pa-gallery-image" src="<?php echo esc_url($image['premium_gallery_img']['url']); ?>" alt="<?php echo $alt; ?>">
|
1700 |
-
<?php endif; ?>
|
1701 |
</div>
|
1702 |
-
<?php if(
|
1703 |
-
|
1704 |
-
<div class="pa-gallery-icons-
|
1705 |
-
|
1706 |
-
|
1707 |
-
<?php endif; ?>
|
1708 |
-
<?php if( $image['premium_gallery_link_whole'] != 'yes' && $image['premium_gallery_img_link_type'] == 'url' && !empty($image['premium_gallery_img_link']['url']) ) :
|
1709 |
-
$icon_link = $image['premium_gallery_img_link']['url'];
|
1710 |
-
$external = $image['premium_gallery_img_link']['is_external'] ? 'target="_blank"' : '';
|
1711 |
-
$no_follow = $image['premium_gallery_img_link']['nofollow'] ? 'rel="nofollow"' : ''; ?>
|
1712 |
-
<a href="<?php echo esc_attr( $icon_link ); ?>" <?php echo $external; ?><?php echo $no_follow; ?> class="pa-gallery-img-link"><span><i class="fa fa-link"></i></span></a>
|
1713 |
-
<?php elseif( $image['premium_gallery_link_whole'] != 'yes' && $image['premium_gallery_img_link_type'] == 'link') :
|
1714 |
-
$icon_link = get_permalink($image['premium_gallery_img_existing']);
|
1715 |
-
?>
|
1716 |
-
<a href="<?php echo esc_attr( $icon_link ); ?>" class="pa-gallery-img-link"><span><i class="fa fa-link"></i></span></a>
|
1717 |
-
<?php endif; ?>
|
1718 |
</div>
|
1719 |
-
</div>
|
1720 |
-
<?php if( ! empty( $image['premium_gallery_img_name'] ) || ! empty( $image['premium_gallery_img_desc'] ) ) : ?>
|
1721 |
-
<div class="premium-gallery-caption">
|
1722 |
-
<?php if( ! empty( $image['premium_gallery_img_name'] ) ) : ?>
|
1723 |
-
<span class="premium-gallery-img-name"><?php echo $image['premium_gallery_img_name']; ?></span>
|
1724 |
-
<?php endif; ?>
|
1725 |
-
<?php if( ! empty( $image['premium_gallery_img_desc'] ) ) : ?>
|
1726 |
-
<p class="premium-gallery-img-desc"><?php echo $image['premium_gallery_img_desc']; ?></p>
|
1727 |
-
<?php endif; ?>
|
1728 |
</div>
|
1729 |
-
|
1730 |
-
|
1731 |
-
|
1732 |
-
|
1733 |
-
|
1734 |
-
<
|
1735 |
-
|
1736 |
-
|
1737 |
-
|
1738 |
-
|
1739 |
-
$no_follow = $image['premium_gallery_img_link']['nofollow'] ? 'rel="nofollow"' : ''; ?>
|
1740 |
-
<a href="<?php echo esc_attr( $icon_link ); ?>" <?php echo $external; ?><?php echo $no_follow; ?> class="pa-gallery-img-link"><span><i class="fa fa-link"></i></span></a>
|
1741 |
-
<?php elseif( $image['premium_gallery_link_whole'] != 'yes' && $image['premium_gallery_img_link_type'] == 'link') :
|
1742 |
-
$icon_link = get_permalink($image['premium_gallery_img_existing']);
|
1743 |
?>
|
1744 |
-
<a href="<?php echo esc_attr( $icon_link ); ?>" class="pa-gallery-img-link"><span><i class="fa fa-link"></i></span></a>
|
1745 |
-
<?php endif; ?>
|
1746 |
-
<?php if( ! empty( $image['premium_gallery_img_name'] ) || ! empty( $image['premium_gallery_img_desc'] ) ) : ?>
|
1747 |
-
<div class="premium-gallery-caption">
|
1748 |
-
<?php if( ! empty( $image['premium_gallery_img_name'] ) ) : ?>
|
1749 |
-
<span class="premium-gallery-img-name"><?php echo $image['premium_gallery_img_name']; ?></span>
|
1750 |
-
<?php endif; ?>
|
1751 |
-
<?php if( ! empty( $image['premium_gallery_img_desc'] ) ) : ?>
|
1752 |
-
<p class="premium-gallery-img-desc"><?php echo $image['premium_gallery_img_desc']; ?></p>
|
1753 |
-
<?php endif; ?>
|
1754 |
</div>
|
1755 |
-
<?php endif; ?>
|
1756 |
</div>
|
1757 |
-
|
1758 |
-
|
1759 |
-
|
1760 |
-
|
1761 |
-
|
1762 |
-
|
1763 |
-
|
1764 |
-
|
1765 |
-
|
1766 |
-
|
1767 |
-
|
1768 |
-
|
1769 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1770 |
|
1771 |
</div>
|
1772 |
</div>
|
1773 |
<?php endforeach; ?>
|
1774 |
</div>
|
1775 |
-
|
1776 |
-
|
1777 |
-
<
|
1778 |
-
|
|
|
|
|
|
|
|
|
1779 |
<?php endif; ?>
|
|
|
1780 |
</div>
|
1781 |
-
|
|
|
1782 |
<style>
|
1783 |
-
@media(min-width: <?php echo $min_size; ?> ) and (max-width:<?php echo $max_size; ?>){
|
1784 |
-
#premium-img-gallery-<?php echo esc_attr($this->get_id()); ?> .premium-gallery-caption {
|
1785 |
display: none;
|
1786 |
-
|
1787 |
}
|
1788 |
</style>
|
1789 |
-
|
|
|
1790 |
<?php }
|
1791 |
}
|
70 |
|
71 |
$this->start_controls_section('premium_gallery_general',
|
72 |
[
|
73 |
+
'label' => __('Layout','premium-addons-for-elementor'),
|
74 |
|
75 |
]);
|
76 |
|
135 |
$this->add_group_control(
|
136 |
Group_Control_Image_Size::get_type(),
|
137 |
[
|
138 |
+
'name' => 'thumbnail', // Actually its `image_size`.
|
139 |
+
'default' => 'full',
|
140 |
+
'condition' => [
|
141 |
'premium_gallery_img_size_select' => 'fitRows'
|
142 |
]
|
143 |
]
|
145 |
|
146 |
$this->add_responsive_control('premium_gallery_column_number',
|
147 |
[
|
148 |
+
'label' => __( 'Columns', 'premium-addons-for-elementor' ),
|
149 |
+
'label_block' => true,
|
150 |
+
'type' => Controls_Manager::SELECT,
|
151 |
+
'desktop_default' => '50%',
|
152 |
+
'tablet_default' => '100%',
|
153 |
+
'mobile_default' => '100%',
|
154 |
+
'options' => [
|
155 |
'100%' => __( '1 Column', 'premium-addons-for-elementor' ),
|
156 |
'50%' => __( '2 Columns', 'premium-addons-for-elementor' ),
|
157 |
'33.330%' => __( '3 Columns', 'premium-addons-for-elementor' ),
|
160 |
'16.66%' => __( '6 Columns', 'premium-addons-for-elementor' ),
|
161 |
'8.33%' => __( '12 Columns', 'premium-addons-for-elementor' ),
|
162 |
],
|
163 |
+
'condition' => [
|
164 |
'premium_gallery_img_size_select!' => 'metro'
|
165 |
],
|
166 |
+
'selectors' => [
|
167 |
'{{WRAPPER}} .premium-img-gallery-masonry div.premium-gallery-item, {{WRAPPER}} .premium-img-gallery-fitRows div.premium-gallery-item' => 'width: {{VALUE}};',
|
168 |
],
|
169 |
+
'render_type' => 'template'
|
170 |
]
|
171 |
);
|
172 |
|
173 |
$this->add_control( 'premium_gallery_load_more',
|
174 |
[
|
175 |
+
'label' => __( 'Load More Button', 'premium-addons-for-elementor' ),
|
176 |
+
'description' => __('Requires number of images larger than 6', 'premium-addons-for-elementor'),
|
177 |
+
'type' => Controls_Manager::SWITCHER
|
178 |
]
|
179 |
);
|
180 |
|
181 |
$this->add_control( 'premium_gallery_load_more_text',
|
182 |
[
|
183 |
+
'label' => __( 'Button Text', 'premium-addons-for-elementor' ),
|
184 |
+
'type' => Controls_Manager::TEXT,
|
185 |
+
'default' => __('Load More', 'premium-addons-for-elementor'),
|
186 |
+
'dynamic' => [ 'active' => true ],
|
187 |
+
'condition' => [
|
188 |
'premium_gallery_load_more' => 'yes'
|
189 |
]
|
190 |
]
|
192 |
|
193 |
$this->add_control( 'premium_gallery_load_minimum',
|
194 |
[
|
195 |
+
'label' => __('Minimum Number of Images', 'premium-addons-for-elementor'),
|
196 |
+
'type' => Controls_Manager::NUMBER,
|
197 |
+
'description' => __('Set the minimum number of images before showing load more button', 'premium-addons-for-elementor'),
|
198 |
+
'default' => 6,
|
199 |
+
'condition' => [
|
200 |
'premium_gallery_load_more' => 'yes'
|
201 |
]
|
202 |
]
|
204 |
|
205 |
$this->add_control( 'premium_gallery_load_click_number',
|
206 |
[
|
207 |
+
'label' => __('Images to Show', 'premium-addons-for-elementor'),
|
208 |
+
'type' => Controls_Manager::NUMBER,
|
209 |
+
'description' => __('Set the minimum number of images to show with each click', 'premium-addons-for-elementor'),
|
210 |
+
'default' => 6,
|
211 |
'condition' => [
|
212 |
'premium_gallery_load_more' => 'yes'
|
213 |
]
|
216 |
|
217 |
$this->add_responsive_control('premium_gallery_load_more_align',
|
218 |
[
|
219 |
+
'label' => __( 'Button Alignment', 'premium-addons-for-elementor' ),
|
220 |
+
'type' => Controls_Manager::CHOOSE,
|
221 |
+
'options' => [
|
222 |
'left' => [
|
223 |
'title'=> __( 'Left', 'premium-addons-for-elementor' ),
|
224 |
'icon' => 'fa fa-align-left',
|
232 |
'icon' => 'fa fa-align-right',
|
233 |
],
|
234 |
],
|
235 |
+
'default' => 'center',
|
236 |
+
'selectors' => [
|
237 |
'{{WRAPPER}} .premium-gallery-load-more' => 'text-align: {{VALUE}};',
|
238 |
],
|
239 |
+
'condition' => [
|
240 |
'premium_gallery_load_more' => 'yes'
|
241 |
]
|
242 |
]
|
246 |
|
247 |
$this->start_controls_section('premium_gallery_cats',
|
248 |
[
|
249 |
+
'label' => __('Categories','premium-addons-for-elementor'),
|
250 |
+
]
|
251 |
+
);
|
252 |
+
|
253 |
+
$this->add_control('premium_gallery_filter',
|
254 |
+
[
|
255 |
+
'label' => __( 'Filter Tabs', 'premium-addons-for-elementor' ),
|
256 |
+
'type' => Controls_Manager::SWITCHER,
|
257 |
+
'default' => 'yes'
|
258 |
+
]
|
259 |
+
);
|
260 |
+
|
261 |
+
$condition = array( 'premium_gallery_filter' => 'yes' );
|
262 |
|
263 |
$this->add_control( 'premium_gallery_first_cat_switcher',
|
264 |
[
|
265 |
+
'label' => __( 'First Category', 'premium-addons-for-elementor' ),
|
266 |
+
'type' => Controls_Manager::SWITCHER,
|
267 |
+
'default' => 'yes',
|
268 |
+
'condition' => $condition
|
269 |
]
|
270 |
);
|
271 |
|
272 |
$this->add_control( 'premium_gallery_first_cat_label',
|
273 |
[
|
274 |
+
'label' => __( 'First Category Label', 'premium-addons-for-elementor' ),
|
275 |
+
'type' => Controls_Manager::TEXT,
|
276 |
+
'default' => __('All', 'premium-addons-for-elementor'),
|
277 |
+
'dynamic' => [ 'active' => true ],
|
278 |
+
'condition' => array_merge( [
|
279 |
'premium_gallery_first_cat_switcher' => 'yes'
|
280 |
+
], $condition )
|
281 |
]
|
282 |
);
|
283 |
|
285 |
|
286 |
$repeater->add_control( 'premium_gallery_img_cat',
|
287 |
[
|
288 |
+
'label' => __( 'Category', 'premium-addons-for-elementor' ),
|
289 |
+
'type' => Controls_Manager::TEXT,
|
290 |
+
'dynamic' => [ 'active' => true ],
|
291 |
]
|
292 |
);
|
293 |
|
294 |
$repeater->add_control( 'premium_gallery_img_cat_rotation',
|
295 |
[
|
296 |
+
'label' => __('Rotation Degrees', 'premium-addons-for-elementor'),
|
297 |
+
'type' => Controls_Manager::NUMBER,
|
298 |
+
'description' => __('Set rotation value in degrees', 'premium-addons-for-elementor'),
|
299 |
+
'min' => -180,
|
300 |
+
'max' => 180,
|
301 |
+
'selectors' => [
|
302 |
'{{WRAPPER}} {{CURRENT_ITEM}}' => '-webkit-transform: rotate({{VALUE}}deg); -moz-transform: rotate({{VALUE}}deg); -o-transform: rotate({{VALUE}}deg); transform: rotate({{VALUE}}deg);'
|
303 |
],
|
304 |
]
|
306 |
|
307 |
$this->add_control('premium_gallery_cats_content',
|
308 |
[
|
309 |
+
'label' => __( 'Categories', 'premium-addons-for-elementor' ),
|
310 |
+
'type' => Controls_Manager::REPEATER,
|
311 |
+
'default' => [
|
312 |
[
|
313 |
'premium_gallery_img_cat' => 'Category 1',
|
314 |
],
|
316 |
'premium_gallery_img_cat' => 'Category 2',
|
317 |
],
|
318 |
],
|
319 |
+
'fields' => array_values( $repeater->get_controls() ) ,
|
320 |
+
'title_field' => '{{{ premium_gallery_img_cat }}}',
|
321 |
+
'condition' => $condition
|
322 |
]
|
323 |
);
|
324 |
|
325 |
$this->add_control( 'premium_gallery_active_cat',
|
326 |
[
|
327 |
+
'label' => __('Active Category Index', 'premium-addons-for-elementor'),
|
328 |
+
'type' => Controls_Manager::NUMBER,
|
329 |
+
'description' => __('Put the index of the default active category, default is 1', 'premium-addons-for-elementor'),
|
330 |
+
'default' => 1,
|
331 |
+
'condition' => $condition
|
332 |
+
|
333 |
]
|
334 |
);
|
335 |
|
336 |
+
$this->add_control('premium_gallery_shuffle',
|
337 |
[
|
338 |
+
'label' => __( 'Shuffle Images on Filter Click', 'premium-addons-for-elementor' ),
|
339 |
'type' => Controls_Manager::SWITCHER,
|
340 |
+
'condition' => array_merge( [
|
341 |
+
'premium_gallery_filter' => 'yes'
|
342 |
+
], $condition )
|
343 |
]
|
344 |
);
|
345 |
|
587 |
]
|
588 |
);
|
589 |
|
590 |
+
$this->add_control('premium_gallery_lightbox_type',
|
591 |
+
[
|
592 |
+
'label' => __( 'Lightbox Type', 'premium-addons-for-elementor' ),
|
593 |
+
'type' => Controls_Manager::SELECT,
|
594 |
+
'default' => 'default',
|
595 |
+
'options' => [
|
596 |
+
'default' => __( 'Default', 'premium-addons-for-elementor' ),
|
597 |
+
'yes' => __( 'Elementor Lightbox', 'premium-addons-for-elementor' ),
|
598 |
+
'no' => __( 'Other', 'premium-addons-for-elementor' ),
|
599 |
+
],
|
600 |
+
'condition' => [
|
601 |
+
'premium_gallery_light_box' => 'yes',
|
602 |
+
],
|
603 |
+
]
|
604 |
+
);
|
605 |
+
|
606 |
$this->add_control('premium_gallery_lightbox_theme',
|
607 |
[
|
608 |
'label' => __('Lightbox Theme', 'premium-addons-pro'),
|
617 |
],
|
618 |
'default' => 'pp_default',
|
619 |
'condition' => [
|
620 |
+
'premium_gallery_light_box' => 'yes',
|
621 |
+
'premium_gallery_lightbox_type' => 'default'
|
622 |
]
|
623 |
]
|
624 |
);
|
628 |
'label' => __( 'Overlay Gallery Images', 'premium-addons-for-elementor' ),
|
629 |
'type' => Controls_Manager::SWITCHER,
|
630 |
'condition' => [
|
631 |
+
'premium_gallery_light_box' => 'yes',
|
632 |
+
'premium_gallery_lightbox_type' => 'default'
|
633 |
]
|
634 |
]
|
635 |
);
|
1558 |
]
|
1559 |
);
|
1560 |
|
|
|
1561 |
$this->end_controls_tab();
|
1562 |
|
1563 |
$this->end_controls_tabs();
|
1566 |
|
1567 |
}
|
1568 |
|
1569 |
+
/*
|
1570 |
+
* Filter Cats
|
1571 |
+
*
|
1572 |
+
* Formats Category to be inserted in class attribute.
|
1573 |
+
*
|
1574 |
+
* @since 2.1.0
|
1575 |
+
* @access public
|
1576 |
+
*
|
1577 |
+
* @return string category slug
|
1578 |
+
*/
|
1579 |
public function filter_cats( $string ) {
|
1580 |
|
1581 |
$cat_filtered = mb_strtolower( $string );
|
1582 |
|
1583 |
if( strpos( $cat_filtered, 'class' ) || strpos( $cat_filtered, 'src' ) ) {
|
1584 |
$cat_filtered = substr( $cat_filtered, strpos( $cat_filtered, '"' ) + 1 );
|
1585 |
+
$cat_filtered = strtok( $cat_filtered, '"' );
|
1586 |
+
$cat_filtered = preg_replace( '/[http:.]/', '', $cat_filtered );
|
1587 |
+
$cat_filtered = str_replace( '/', '', $cat_filtered );
|
1588 |
}
|
1589 |
|
1590 |
+
$cat_filtered = str_replace( ', ', ',', $cat_filtered );
|
1591 |
+
$cat_filtered = preg_replace( "/[\s_]/", "-", $cat_filtered );
|
1592 |
+
$cat_filtered = str_replace( ',', ' ', $cat_filtered );
|
1593 |
|
1594 |
return $cat_filtered;
|
1595 |
}
|
1596 |
|
1597 |
+
/*
|
1598 |
+
* Render Filter Tabs on the frontend
|
1599 |
+
*
|
1600 |
+
* @since 2.1.0
|
1601 |
+
* @access public
|
1602 |
+
*
|
1603 |
+
* @param string $first Class for the first category
|
1604 |
+
* @param number $active_index active category index
|
1605 |
+
*/
|
1606 |
+
protected function render_filter_tabs( $first, $active_index ) {
|
1607 |
+
|
1608 |
+
$settings = $this->get_settings_for_display();
|
1609 |
+
|
1610 |
+
?>
|
1611 |
+
|
1612 |
+
<div class="premium-img-gallery-filter">
|
1613 |
+
<ul class="premium-gallery-cats-container">
|
1614 |
+
<?php if( 'yes' == $settings['premium_gallery_first_cat_switcher'] ) : ?>
|
1615 |
+
<li>
|
1616 |
+
<a href="javascript:;" class="category <?php echo $first; ?>" data-filter="*">
|
1617 |
+
<span><?php echo $settings['premium_gallery_first_cat_label']; ?></span>
|
1618 |
+
</a>
|
1619 |
+
</li>
|
1620 |
+
<?php endif;
|
1621 |
+
foreach( $settings['premium_gallery_cats_content'] as $index => $category ) {
|
1622 |
+
if( ! empty( $category['premium_gallery_img_cat'] ) ) {
|
1623 |
+
$cat_filtered = $this->filter_cats( $category['premium_gallery_img_cat'] );
|
1624 |
+
|
1625 |
+
$key = 'premium_grid_category_' . $index;
|
1626 |
+
|
1627 |
+
if( $active_index === $index ) {
|
1628 |
+
$this->add_render_attribute( $key, 'class', 'active' );
|
1629 |
+
}
|
1630 |
+
|
1631 |
+
$this->add_render_attribute( $key,
|
1632 |
+
'class', [
|
1633 |
+
'category',
|
1634 |
+
'elementor-repeater-item-' . $category['_id']
|
1635 |
+
]
|
1636 |
+
);
|
1637 |
+
|
1638 |
+
$slug = sprintf( '.%s', $cat_filtered );
|
1639 |
+
|
1640 |
+
$this->add_render_attribute( $key, 'data-filter', $slug );
|
1641 |
+
?>
|
1642 |
+
<li>
|
1643 |
+
<a href="javascript:;" <?php echo $this->get_render_attribute_string( $key ); ?>>
|
1644 |
+
<span><?php echo $category['premium_gallery_img_cat']; ?></span>
|
1645 |
+
</a>
|
1646 |
+
</li>
|
1647 |
+
<?php }
|
1648 |
+
} ?>
|
1649 |
+
</ul>
|
1650 |
+
</div>
|
1651 |
+
|
1652 |
+
<?php
|
1653 |
+
}
|
1654 |
|
1655 |
+
/*
|
1656 |
+
* Render Grid Image
|
1657 |
+
*
|
1658 |
+
* Written in PHP and used to generate the final HTML for image.
|
1659 |
+
*
|
1660 |
+
* @since 3.6.4
|
1661 |
+
* @access protected
|
1662 |
+
*
|
1663 |
+
* @param array $item grid image repeater item
|
1664 |
+
* @param number $index item index
|
1665 |
+
*/
|
1666 |
+
protected function render_grid_image( $item, $index ) {
|
1667 |
+
|
1668 |
+
$settings = $this->get_settings();
|
1669 |
+
|
1670 |
+
$alt = Control_Media::get_image_alt( $item['premium_gallery_img'] );
|
1671 |
+
|
1672 |
+
$key = 'image_' . $index;
|
1673 |
+
|
1674 |
+
if( $settings['premium_gallery_img_size_select'] == 'fitRows' ) {
|
1675 |
+
$image_src = $item['premium_gallery_img'];
|
1676 |
+
$image_src_size = Group_Control_Image_Size::get_attachment_image_src( $image_src['id'], 'thumbnail', $settings );
|
1677 |
+
|
1678 |
+
if( empty( $image_src_size ) ) {
|
1679 |
+
$image_src = $image_src['url'];
|
1680 |
+
} else {
|
1681 |
+
$image_src = $image_src_size;
|
1682 |
+
}
|
1683 |
+
} else {
|
1684 |
+
$image_src = $item['premium_gallery_img']['url'];
|
1685 |
+
}
|
1686 |
+
|
1687 |
+
$this->add_render_attribute( $key, [
|
1688 |
+
'class' => 'pa-gallery-image',
|
1689 |
+
'src' => $image_src,
|
1690 |
+
'alt' => $alt
|
1691 |
+
]);
|
1692 |
+
|
1693 |
+
?>
|
1694 |
+
<img <?php echo $this->get_render_attribute_string( $key ); ?>>
|
1695 |
+
<?php
|
1696 |
+
|
1697 |
+
}
|
1698 |
+
|
1699 |
+
/*
|
1700 |
+
* Render Icons
|
1701 |
+
*
|
1702 |
+
* Render Lightbox and URL Icons HTML
|
1703 |
+
*
|
1704 |
+
* @since 3.6.4
|
1705 |
+
* @access protected
|
1706 |
+
*
|
1707 |
+
* @param array $item grid image repeater item
|
1708 |
+
* @param number $index item index
|
1709 |
+
*/
|
1710 |
+
protected function render_icons( $item, $index ) {
|
1711 |
+
|
1712 |
+
$settings = $this->get_settings_for_display();
|
1713 |
+
|
1714 |
+
$lightbox_key = 'image_lightbox_' . $index;
|
1715 |
+
|
1716 |
+
$link_key = 'image_link_' . $index;
|
1717 |
+
|
1718 |
+
$href = $item['premium_gallery_img']['url'];
|
1719 |
|
1720 |
+
$rel = sprintf( 'prettyPhoto[premium-grid-%s]', $this->get_id() );
|
1721 |
|
1722 |
+
$lightbox = $settings['premium_gallery_light_box'];
|
1723 |
|
1724 |
+
$lightbox_type = $settings['premium_gallery_lightbox_type'];
|
|
|
|
|
1725 |
|
1726 |
+
|
1727 |
+
if( 'yes' === $lightbox ) {
|
1728 |
+
|
1729 |
+
if( 'yes' !== $item['premium_gallery_lightbox_whole'] ) {
|
1730 |
+
|
1731 |
+
$this->add_render_attribute( $lightbox_key, [
|
1732 |
+
'class' => 'pa-gallery-magnific-image',
|
1733 |
+
'href' => $href,
|
1734 |
+
]);
|
1735 |
+
|
1736 |
+
if( 'default' !== $lightbox_type ) {
|
1737 |
+
$this->add_render_attribute( $lightbox_key, [
|
1738 |
+
'data-elementor-open-lightbox' => $lightbox_type
|
1739 |
+
]);
|
1740 |
+
} else {
|
1741 |
+
$this->add_render_attribute( $lightbox_key, [
|
1742 |
+
'data-rel' => $rel
|
1743 |
+
]);
|
1744 |
+
|
1745 |
+
}
|
1746 |
|
1747 |
+
?>
|
1748 |
+
<a <?php echo $this->get_render_attribute_string( $lightbox_key ); ?>>
|
1749 |
+
<span><i class="fa fa-search-plus"></i></span>
|
1750 |
+
</a>
|
1751 |
+
<?php
|
1752 |
+
}
|
1753 |
+
}
|
1754 |
+
|
1755 |
+
|
1756 |
+
if( ! empty( $item['premium_gallery_img_link']['url'] ) || ! empty ( $item['premium_gallery_img_existing'] ) ) {
|
1757 |
+
|
1758 |
+
if( 'yes' !== $item['premium_gallery_link_whole'] ) {
|
1759 |
+
|
1760 |
+
$icon_link = '';
|
1761 |
+
|
1762 |
+
$this->add_render_attribute( $link_key, [
|
1763 |
+
'class' => 'pa-gallery-img-link',
|
1764 |
+
]);
|
1765 |
+
|
1766 |
+
if( 'url' === $item['premium_gallery_img_link_type'] && ! empty( $item['premium_gallery_img_link']['url'] ) ) {
|
1767 |
+
|
1768 |
+
$icon_link = $item['premium_gallery_img_link']['url'];
|
1769 |
+
|
1770 |
+
$external = $item['premium_gallery_img_link']['is_external'] ? '_blank' : '';
|
1771 |
+
|
1772 |
+
$no_follow = $item['premium_gallery_img_link']['nofollow'] ? 'nofollow' : '';
|
1773 |
+
|
1774 |
+
$this->add_render_attribute( $link_key, [
|
1775 |
+
'href' => $icon_link,
|
1776 |
+
'target' => $external,
|
1777 |
+
'rel' => $no_follow
|
1778 |
+
]);
|
1779 |
+
|
1780 |
+
} elseif( 'link' === $item['premium_gallery_img_link_type'] && ! empty( $item['premium_gallery_img_existing']['url'] ) ) {
|
1781 |
+
|
1782 |
+
$icon_link = get_permalink( $item['premium_gallery_img_existing'] );
|
1783 |
+
|
1784 |
+
$this->add_render_attribute( $link_key, [
|
1785 |
+
'href' => $icon_link
|
1786 |
+
]);
|
1787 |
+
|
1788 |
+
}
|
1789 |
+
|
1790 |
+
if ( ! empty ( $icon_link ) ) {
|
1791 |
+
?>
|
1792 |
+
<a <?php echo $this->get_render_attribute_string( $link_key ); ?>>
|
1793 |
+
<span><i class="fa fa-link"></i></span>
|
1794 |
+
</a>
|
1795 |
+
<?php
|
1796 |
+
}
|
1797 |
+
}
|
1798 |
+
}
|
1799 |
+
}
|
1800 |
+
|
1801 |
+
/*
|
1802 |
+
* Render Image Caption
|
1803 |
+
*
|
1804 |
+
* Written in PHP to render the final HTML for image title and description
|
1805 |
+
*
|
1806 |
+
* @since 3.6.4
|
1807 |
+
* @access proteced
|
1808 |
+
*
|
1809 |
+
* @param array $item grid image repeater item
|
1810 |
+
*/
|
1811 |
+
protected function render_image_caption( $item ) {
|
1812 |
+
|
1813 |
+
$title = $item['premium_gallery_img_name'];
|
1814 |
+
|
1815 |
+
$description = $item['premium_gallery_img_desc'];
|
1816 |
+
|
1817 |
+
if( ! empty( $title ) || ! empty( $description ) ) : ?>
|
1818 |
+
<div class="premium-gallery-caption">
|
1819 |
+
|
1820 |
+
<?php if( ! empty( $title ) ) : ?>
|
1821 |
+
<span class="premium-gallery-img-name"><?php echo $title; ?></span>
|
1822 |
+
<?php endif;
|
1823 |
+
|
1824 |
+
if( ! empty( $description ) ) : ?>
|
1825 |
+
<p class="premium-gallery-img-desc"><?php echo $description; ?></p>
|
1826 |
+
<?php endif; ?>
|
1827 |
+
|
1828 |
+
</div>
|
1829 |
+
<?php endif;
|
1830 |
+
}
|
1831 |
+
|
1832 |
+
/**
|
1833 |
+
* Render Grid output on the frontend.
|
1834 |
+
*
|
1835 |
+
* Written in PHP and used to generate the final HTML.
|
1836 |
+
*
|
1837 |
+
* @since 2.1.0
|
1838 |
+
* @access protected
|
1839 |
+
*/
|
1840 |
+
protected function render() {
|
1841 |
+
|
1842 |
+
$settings = $this->get_settings_for_display();
|
1843 |
+
|
1844 |
+
$filter = $settings['premium_gallery_filter'];
|
1845 |
+
|
1846 |
+
$layout = $settings['premium_gallery_img_style'];
|
1847 |
+
|
1848 |
+
$lightbox = $settings['premium_gallery_light_box'];
|
1849 |
+
|
1850 |
+
$lightbox_type = $settings['premium_gallery_lightbox_type'];
|
1851 |
+
|
1852 |
+
if ( 'yes' === $settings['premium_gallery_responsive_switcher'] ) {
|
1853 |
+
$min_size = $settings['premium_gallery_min_range'] . 'px';
|
1854 |
+
$max_size = $settings['premium_gallery_max_range'] . 'px';
|
1855 |
+
}
|
1856 |
+
|
1857 |
+
$category = "*";
|
1858 |
+
|
1859 |
+
if ( 'yes' === $filter ) {
|
1860 |
+
|
1861 |
+
if( 'yes' !== $settings['premium_gallery_first_cat_switcher'] ) {
|
1862 |
+
$active_index = $settings['premium_gallery_active_cat'];
|
1863 |
+
$active_category = $settings['premium_gallery_cats_content'][$active_index]['premium_gallery_img_cat'];
|
1864 |
+
$category = "." . $this->filter_cats( $active_category );
|
1865 |
+
}
|
1866 |
+
|
1867 |
+
if ( ! empty( $settings['premium_gallery_active_cat'] ) ) {
|
1868 |
+
$active_category_index = 'yes' === $settings['premium_gallery_first_cat_switcher'] ? $settings['premium_gallery_active_cat'] - 1 : $settings['premium_gallery_active_cat'];
|
1869 |
+
} else {
|
1870 |
+
$active_category_index = -1;
|
1871 |
+
}
|
1872 |
+
|
1873 |
+
$is_all_active = ( 0 > $active_category_index ) ? "active" : "";
|
1874 |
+
|
1875 |
}
|
1876 |
|
1877 |
if ( 'original' === $settings['premium_gallery_img_size_select'] ) {
|
1880 |
$settings['premium_gallery_img_size_select'] = 'fitRows';
|
1881 |
}
|
1882 |
|
1883 |
+
$ltr_mode = 'yes' === $settings['premium_gallery_rtl_mode'] ? false : true;
|
|
|
|
|
1884 |
|
1885 |
+
$shuffle = 'yes' === $settings['premium_gallery_shuffle'] ? true : false;
|
1886 |
|
1887 |
$grid_settings = [
|
1888 |
'img_size' => $settings['premium_gallery_img_size_select'],
|
1889 |
+
'filter' => $filter,
|
|
|
|
|
1890 |
'theme' => $settings['premium_gallery_lightbox_theme'],
|
1891 |
+
'active_cat' => $category,
|
1892 |
+
'ltr_mode' => $ltr_mode,
|
1893 |
+
'shuffle' => $shuffle
|
|
|
|
|
1894 |
];
|
1895 |
+
|
1896 |
+
$load_more = 'yes' === $settings['premium_gallery_load_more'] ? true : false;
|
1897 |
+
|
1898 |
+
if( $load_more ) {
|
1899 |
+
$minimum = ! empty ( $settings['premium_gallery_load_minimum'] ) ? $settings['premium_gallery_load_minimum'] : 6;
|
1900 |
+
$click_number = ! empty ( $settings['premium_gallery_load_click_number'] ) ? $settings['premium_gallery_load_click_number'] : 6;
|
1901 |
+
|
1902 |
+
$grid_settings = array_merge( $grid_settings, [
|
1903 |
+
'load_more' => $load_more,
|
1904 |
+
'minimum' => $minimum,
|
1905 |
+
'click_images' => $click_number,
|
1906 |
+
]);
|
1907 |
+
}
|
1908 |
+
|
1909 |
+
if ( 'yes' === $lightbox ) {
|
1910 |
+
$grid_settings = array_merge( $grid_settings, [
|
1911 |
+
'light_box' => $lightbox,
|
1912 |
+
'lightbox_type' => $lightbox_type,
|
1913 |
+
'overlay' => 'yes' === $settings['premium_gallery_overlay_gallery'] ? true : false,
|
1914 |
+
]);
|
1915 |
+
}
|
1916 |
+
|
1917 |
$this->add_render_attribute( 'grid', [
|
1918 |
'id' => 'premium-img-gallery-' . esc_attr( $this->get_id() ),
|
1919 |
'class' => [
|
1920 |
'premium-img-gallery',
|
1921 |
+
'premium-img-gallery-' . $settings['premium_gallery_img_size_select'],
|
1922 |
+
$settings['premium_gallery_img_effect']
|
1923 |
]
|
1924 |
]
|
1925 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
1926 |
|
1927 |
+
$this->add_render_attribute( 'container', 'class', [
|
1928 |
+
'pa-gallery-img-container'
|
1929 |
+
]);
|
1930 |
|
1931 |
?>
|
1932 |
|
1933 |
+
<div <?php echo $this->get_render_attribute_string( 'grid' ); ?>>
|
1934 |
+
<?php if( $filter == 'yes' ) :
|
1935 |
+
$this->render_filter_tabs( $is_all_active, $active_category_index );
|
1936 |
+
endif; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1937 |
|
1938 |
+
<div class="premium-gallery-container" data-settings='<?php echo wp_json_encode( $grid_settings ); ?>'>
|
1939 |
+
|
1940 |
<?php if ( 'metro' === $settings['premium_gallery_img_size_select'] ) : ?>
|
1941 |
<div class="grid-sizer"></div>
|
1942 |
<?php endif;
|
1943 |
+
|
1944 |
foreach( $settings['premium_gallery_img_content'] as $index => $image ) :
|
|
|
1945 |
|
1946 |
$key = 'gallery_item_' . $index;
|
1947 |
|
1948 |
+
$this->add_render_attribute( $key, [
|
1949 |
'class' => [
|
1950 |
'premium-gallery-item',
|
1951 |
'elementor-repeater-item-' . $image['_id'],
|
1958 |
|
1959 |
$cells = [
|
1960 |
'cells' => $image['premium_gallery_image_cell']['size'],
|
1961 |
+
'vcells' => $image['premium_gallery_image_vcell']['size'],
|
1962 |
'cells_tablet' => $image['premium_gallery_image_cell_tablet']['size'],
|
1963 |
+
'vcells_tablet' => $image['premium_gallery_image_vcell_tablet']['size'],
|
1964 |
'cells_mobile' => $image['premium_gallery_image_cell_mobile']['size'],
|
1965 |
+
'vcells_mobile' => $image['premium_gallery_image_vcell_mobile']['size'],
|
1966 |
];
|
1967 |
|
1968 |
$this->add_render_attribute( $key, 'data-metro', wp_json_encode( $cells ) );
|
1969 |
}
|
1970 |
+
|
1971 |
?>
|
1972 |
<div <?php echo $this->get_render_attribute_string( $key ); ?>>
|
1973 |
<div class="pa-gallery-img <?php echo esc_attr( $layout ); ?>" onclick="">
|
1974 |
+
<div <?php echo $this->get_render_attribute_string( 'container' ); ?>>
|
1975 |
+
<?php $this->render_grid_image ( $image, $index ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1976 |
</div>
|
1977 |
+
<?php if( 'default' === $layout || 'style1' === $layout ) : ?>
|
1978 |
+
|
1979 |
+
<div class="pa-gallery-icons-wrapper">
|
1980 |
+
<div class="pa-gallery-icons-inner-container">
|
1981 |
+
<?php $this->render_icons( $image, $index ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1982 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1983 |
</div>
|
1984 |
+
|
1985 |
+
<?php $this->render_image_caption( $image );
|
1986 |
+
|
1987 |
+
else: ?>
|
1988 |
+
<div class="pa-gallery-icons-caption-container">
|
1989 |
+
<div class="pa-gallery-icons-caption-cell">
|
1990 |
+
<?php
|
1991 |
+
$this->render_icons( $image, $index );
|
1992 |
+
|
1993 |
+
$this->render_image_caption( $image );
|
|
|
|
|
|
|
|
|
1994 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1995 |
</div>
|
|
|
1996 |
</div>
|
1997 |
+
<?php endif;
|
1998 |
+
|
1999 |
+
if( 'yes' === $image['premium_gallery_link_whole'] ) {
|
2000 |
+
|
2001 |
+
if( 'url' === $image['premium_gallery_img_link_type'] && ! empty( $image['premium_gallery_img_link']['url'] ) ) {
|
2002 |
+
|
2003 |
+
$icon_link = $image['premium_gallery_img_link']['url'];
|
2004 |
+
$external = $image['premium_gallery_img_link']['is_external'] ? 'target="_blank"' : '';
|
2005 |
+
$no_follow = $image['premium_gallery_img_link']['nofollow'] ? 'rel="nofollow"' : '';
|
2006 |
+
|
2007 |
+
?>
|
2008 |
+
<a class="pa-gallery-whole-link" href="<?php echo esc_attr( $icon_link ); ?>" <?php echo $external; ?><?php echo $no_follow; ?>></a>
|
2009 |
+
|
2010 |
+
<?php } elseif( 'link' === $image['premium_gallery_img_link_type'] ) {
|
2011 |
+
$icon_link = get_permalink( $image['premium_gallery_img_existing'] );
|
2012 |
+
?>
|
2013 |
+
<a class="pa-gallery-whole-link" href="<?php echo esc_attr( $icon_link ); ?>"></a>
|
2014 |
+
<?php }
|
2015 |
+
|
2016 |
+
} elseif ( 'yes' === $lightbox ) {
|
2017 |
+
|
2018 |
+
if( 'yes' === $image['premium_gallery_lightbox_whole'] ) {
|
2019 |
+
|
2020 |
+
$lightbox_key = 'image_lightbox_' . $index;
|
2021 |
+
|
2022 |
+
$rel = sprintf( 'prettyPhoto[premium-grid-%s]', $this->get_id() );
|
2023 |
+
|
2024 |
+
$this->add_render_attribute( $lightbox_key, [
|
2025 |
+
'class' => 'pa-gallery-whole-link',
|
2026 |
+
'href' => $image['premium_gallery_img']['url'],
|
2027 |
+
]);
|
2028 |
+
|
2029 |
+
if( 'default' !== $lightbox_type ) {
|
2030 |
+
$this->add_render_attribute( $lightbox_key, [
|
2031 |
+
'data-elementor-open-lightbox' => $lightbox_type
|
2032 |
+
]);
|
2033 |
+
} else {
|
2034 |
+
$this->add_render_attribute( $lightbox_key, [
|
2035 |
+
'data-rel' => $rel
|
2036 |
+
]);
|
2037 |
+
}
|
2038 |
+
|
2039 |
+
?>
|
2040 |
+
|
2041 |
+
<a <?php echo $this->get_render_attribute_string( $lightbox_key ); ?>></a>
|
2042 |
+
|
2043 |
+
<?php
|
2044 |
+
}
|
2045 |
+
|
2046 |
+
}
|
2047 |
+
|
2048 |
+
?>
|
2049 |
|
2050 |
</div>
|
2051 |
</div>
|
2052 |
<?php endforeach; ?>
|
2053 |
</div>
|
2054 |
+
|
2055 |
+
<?php if ( 'yes' === $settings['premium_gallery_load_more'] ) : ?>
|
2056 |
+
<div class="premium-gallery-load-more premium-gallery-btn-hidden">
|
2057 |
+
<button class="premium-gallery-load-more-btn">
|
2058 |
+
<span><?php echo $settings['premium_gallery_load_more_text']; ?></span>
|
2059 |
+
<div class="premium-loader"></div>
|
2060 |
+
</button>
|
2061 |
+
</div>
|
2062 |
<?php endif; ?>
|
2063 |
+
|
2064 |
</div>
|
2065 |
+
|
2066 |
+
<?php if( 'yes' === $settings['premium_gallery_responsive_switcher'] ) : ?>
|
2067 |
<style>
|
2068 |
+
@media( min-width: <?php echo $min_size; ?> ) and ( max-width:<?php echo $max_size; ?> ) {
|
2069 |
+
#premium-img-gallery-<?php echo esc_attr( $this->get_id() ); ?> .premium-gallery-caption {
|
2070 |
display: none;
|
2071 |
+
}
|
2072 |
}
|
2073 |
</style>
|
2074 |
+
<?php endif; ?>
|
2075 |
+
|
2076 |
<?php }
|
2077 |
}
|
widgets/premium-vscroll.php
CHANGED
@@ -319,17 +319,16 @@ class Premium_Vscroll extends Widget_Base {
|
|
319 |
]
|
320 |
);
|
321 |
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
//
|
333 |
$this->end_controls_section();
|
334 |
|
335 |
$this->start_controls_section('navigation_style',
|
@@ -756,15 +755,15 @@ class Premium_Vscroll extends Widget_Base {
|
|
756 |
|
757 |
$this->add_render_attribute( 'vertical_scroll_wrapper', 'id', 'premium-vscroll-wrap-' . $id );
|
758 |
|
759 |
-
$this->add_render_attribute( 'vertical_scroll_inner', 'class',
|
760 |
|
761 |
$this->add_render_attribute( 'vertical_scroll_inner', 'id', 'premium-vscroll-' . $id );
|
762 |
|
763 |
$this->add_render_attribute( 'vertical_scroll_dots', 'class', array(
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
)
|
769 |
);
|
770 |
|
@@ -779,15 +778,15 @@ class Premium_Vscroll extends Widget_Base {
|
|
779 |
$this->add_render_attribute( 'vertical_scroll_sections_wrap', 'class', 'premium-vscroll-sections-wrap' );
|
780 |
|
781 |
$vscroll_settings = [
|
782 |
-
'id'
|
783 |
-
'speed'
|
784 |
-
'tooltips'
|
785 |
-
'dotsText'
|
786 |
-
'dotsPos'
|
787 |
-
'dotsVPos'
|
788 |
-
'fullSection'=> 'yes' == $settings['full_section'] ? true : false,
|
789 |
-
'
|
790 |
-
|
791 |
];
|
792 |
|
793 |
$templates = 'templates' === $settings['content_type'] ? $settings['section_repeater'] : $settings['id_repeater'];
|
319 |
]
|
320 |
);
|
321 |
|
322 |
+
$this->add_control('full_section_touch',
|
323 |
+
[
|
324 |
+
'label' => __('Enable Full Section Scroll on Touch Devices', 'premium-addons-for-elementor'),
|
325 |
+
'type' => Controls_Manager::SWITCHER,
|
326 |
+
'condition' => [
|
327 |
+
'full_section' => 'yes'
|
328 |
+
]
|
329 |
+
]
|
330 |
+
);
|
331 |
+
|
|
|
332 |
$this->end_controls_section();
|
333 |
|
334 |
$this->start_controls_section('navigation_style',
|
755 |
|
756 |
$this->add_render_attribute( 'vertical_scroll_wrapper', 'id', 'premium-vscroll-wrap-' . $id );
|
757 |
|
758 |
+
$this->add_render_attribute( 'vertical_scroll_inner', 'class', 'premium-vscroll-inner' );
|
759 |
|
760 |
$this->add_render_attribute( 'vertical_scroll_inner', 'id', 'premium-vscroll-' . $id );
|
761 |
|
762 |
$this->add_render_attribute( 'vertical_scroll_dots', 'class', array(
|
763 |
+
'premium-vscroll-dots',
|
764 |
+
$settings['navigation_dots_pos'],
|
765 |
+
$settings['navigation_dots_v_pos'],
|
766 |
+
$settings['dots_shape']
|
767 |
)
|
768 |
);
|
769 |
|
778 |
$this->add_render_attribute( 'vertical_scroll_sections_wrap', 'class', 'premium-vscroll-sections-wrap' );
|
779 |
|
780 |
$vscroll_settings = [
|
781 |
+
'id' => $id,
|
782 |
+
'speed' => ! empty( $settings['scroll_speed'] ) ? $settings['scroll_speed'] * 1000 : 700,
|
783 |
+
'tooltips' => 'yes' == $settings['dots_tooltips_switcher'] ? true : false,
|
784 |
+
'dotsText' => $dots_text,
|
785 |
+
'dotsPos' => $settings['navigation_dots_pos'],
|
786 |
+
'dotsVPos' => $settings['navigation_dots_v_pos'],
|
787 |
+
'fullSection' => 'yes' == $settings['full_section'] ? true : false,
|
788 |
+
'fullTouch' => 'yes' == $settings['full_section_touch'] ? true : false,
|
789 |
+
'addToHistory' => 'yes' == $settings['save_state'] ? true : false
|
790 |
];
|
791 |
|
792 |
$templates = 'templates' === $settings['content_type'] ? $settings['section_repeater'] : $settings['id_repeater'];
|