Instagram Gallery - Version 2.8.3

Version Description

Download this release

Release Info

Developer quadlayers
Plugin Icon 128x128 Instagram Gallery
Version 2.8.3
Comparing to
See all releases

Code changes from version 2.7.2 to 2.8.3

Files changed (51) hide show
  1. assets/backend/css/qligg-admin.css +36 -13
  2. assets/backend/css/qligg-admin.css.map +1 -1
  3. assets/backend/css/qligg-admin.min.css +1 -2
  4. assets/backend/img/logo.jpg +0 -0
  5. assets/backend/js/qligg-admin-account.js +67 -44
  6. assets/backend/js/qligg-admin-account.min.js +1 -2
  7. assets/backend/js/qligg-admin-feed.js +192 -160
  8. assets/backend/js/qligg-admin-feed.min.js +1 -2
  9. assets/backend/js/qligg-admin-settings.min.js +1 -2
  10. assets/frontend/css/qligg.css +29 -15
  11. assets/frontend/css/qligg.css.map +1 -1
  12. assets/frontend/css/qligg.min.css +1 -2
  13. assets/frontend/js/qligg.js +19 -6
  14. assets/frontend/js/qligg.min.js +1 -1
  15. includes/apiV2.php +220 -0
  16. includes/backend.php +1 -1
  17. includes/compatibility.php +97 -23
  18. includes/controllers/AccountController.php +34 -42
  19. includes/controllers/FeedController.php +6 -6
  20. includes/frontend.php +76 -54
  21. includes/helpers.php +155 -95
  22. includes/models/Account.php +94 -0
  23. includes/models/Feed.php +104 -90
  24. includes/models/QLIGG_Model.php +41 -41
  25. includes/models/Setting.php +5 -1
  26. includes/models/Suggestions.php +8 -5
  27. includes/models/Token.php +4 -0
  28. includes/notices.php +68 -35
  29. includes/qligg.php +8 -1
  30. includes/view/backend/pages/accounts.php +32 -23
  31. includes/view/backend/pages/feeds.php +33 -21
  32. includes/view/backend/pages/modals/account/main.php +6 -1
  33. includes/view/backend/pages/modals/feed/panel-feed-box.php +3 -3
  34. includes/view/backend/pages/modals/feed/panel-feed-button-load.php +2 -2
  35. includes/view/backend/pages/modals/feed/panel-feed-button.php +2 -2
  36. includes/view/backend/pages/modals/feed/panel-feed-carousel.php +1 -1
  37. includes/view/backend/pages/modals/feed/panel-feed-image-mask.php +7 -6
  38. includes/view/backend/pages/modals/feed/panel-feed-image-popup.php +17 -9
  39. includes/view/backend/pages/modals/feed/panel-feed-image.php +76 -65
  40. includes/view/backend/pages/modals/feed/panel-feed-profile.php +51 -0
  41. includes/view/backend/pages/modals/feed/panel-feed.php +61 -55
  42. includes/view/backend/pages/modals/feed/panel-tabs.php +24 -21
  43. includes/view/backend/pages/modals/template-scripts-account.php +1 -1
  44. includes/view/backend/pages/modals/template-scripts-feed.php +1 -0
  45. includes/view/backend/pages/suggestions.php +13 -0
  46. includes/widget.php +9 -9
  47. insta-gallery.php +8 -8
  48. languages/insta-gallery.pot +1051 -945
  49. readme.txt +16 -16
  50. templates/item/item-image-mask.php +4 -4
  51. templates/item/item.php +1 -4
assets/backend/css/qligg-admin.css CHANGED
@@ -1,3 +1,11 @@
 
 
 
 
 
 
 
 
1
  #qligg_account_table td,
2
  #qligg_feeds_table td,
3
  #qligg_account_table th,
@@ -5,6 +13,7 @@
5
  padding: 1em!important;
6
  vertical-align: top;
7
  line-height: 1.75em;
 
8
  }
9
  #qligg_account_table td img.qligg-avatar,
10
  #qligg_feeds_table td img.qligg-avatar {
@@ -53,7 +62,7 @@
53
  content: "\f347";
54
  }
55
  #qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-disabled {
56
- color: #d5d5d5!important;
57
  cursor: default;
58
  pointer-events: none;
59
  }
@@ -171,7 +180,7 @@
171
  line-height: 2em;
172
  z-index: 9;
173
  cursor: pointer;
174
- transition: all .25s linear;
175
  text-align: center;
176
  font-weight: bold;
177
  color: #23282d;
@@ -233,16 +242,31 @@
233
  #qligg_modal.qligg-modal-feed .panel-wrap {
234
  overflow: hidden;
235
  }
236
- #qligg_modal.qligg-modal-feed .disabled-color-picker {
237
- color: #d5d5d5!important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
238
  cursor: default;
239
  pointer-events: none;
240
  opacity: 0.8;
241
  }
242
- #qligg_modal.qligg-modal-feed .disabled-color-picker input,
243
- #qligg_modal.qligg-modal-feed .disabled-color-picker select,
244
- #qligg_modal.qligg-modal-feed .disabled-color-picker textarea,
245
- #qligg_modal.qligg-modal-feed .disabled-color-picker .wp-picker-container {
246
  opacity: 0.5;
247
  }
248
  #qligg_modal.qligg-modal-feed .ig-list-buttons input[type=radio] {
@@ -287,8 +311,8 @@
287
  border-bottom: 1px solid #eee;
288
  }
289
  #qligg_modal.qligg-modal-feed ul.qligg-tabs li a span {
290
- margin-left: .618em;
291
- margin-right: .618em;
292
  }
293
  #qligg_modal.qligg-modal-feed ul.qligg-tabs li a:before {
294
  content: "\f107";
@@ -328,7 +352,7 @@
328
  display: inline-block;
329
  }
330
  #qligg-generate-token {
331
- padding: 0 24px 0 120px;
332
  height: 44px;
333
  line-height: 44px;
334
  text-transform: uppercase;
@@ -338,8 +362,7 @@
338
  transition: all 0.5s ease-in-out;
339
  font-weight: 600;
340
  display: inline-block;
341
- background: #408bd1 url(../img/instagram.png) no-repeat 16px 13.5px;
342
- background-size: auto 20px;
343
  }
344
  #qligg-generate-token:focus,
345
  #qligg-generate-token:hover {
1
+ #qligg_account_table tr.basic,
2
+ #qligg_feeds_table tr.basic {
3
+ background-color: #fed0d0;
4
+ }
5
+ #qligg_account_table tr.basic:nth-child(odd),
6
+ #qligg_feeds_table tr.basic:nth-child(odd) {
7
+ background-color: #ffe1e1;
8
+ }
9
  #qligg_account_table td,
10
  #qligg_feeds_table td,
11
  #qligg_account_table th,
13
  padding: 1em!important;
14
  vertical-align: top;
15
  line-height: 1.75em;
16
+ width: auto;
17
  }
18
  #qligg_account_table td img.qligg-avatar,
19
  #qligg_feeds_table td img.qligg-avatar {
62
  content: "\f347";
63
  }
64
  #qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-disabled {
65
+ color: #d5d5d5 !important;
66
  cursor: default;
67
  pointer-events: none;
68
  }
180
  line-height: 2em;
181
  z-index: 9;
182
  cursor: pointer;
183
+ transition: all 0.25s linear;
184
  text-align: center;
185
  font-weight: bold;
186
  color: #23282d;
242
  #qligg_modal.qligg-modal-feed .panel-wrap {
243
  overflow: hidden;
244
  }
245
+ #qligg_modal.qligg-modal-feed .disabled-feature {
246
+ position: relative;
247
+ }
248
+ #qligg_modal.qligg-modal-feed .disabled-feature:before {
249
+ content: '';
250
+ background-color: #eee;
251
+ position: absolute;
252
+ top: 0;
253
+ bottom: 0;
254
+ left: 0;
255
+ right: 0;
256
+ opacity: 0.5;
257
+ overflow: hidden;
258
+ pointer-events: none;
259
+ }
260
+ #qligg_modal.qligg-modal-feed .disabled-field {
261
+ color: #d5d5d5 !important;
262
  cursor: default;
263
  pointer-events: none;
264
  opacity: 0.8;
265
  }
266
+ #qligg_modal.qligg-modal-feed .disabled-field input,
267
+ #qligg_modal.qligg-modal-feed .disabled-field select,
268
+ #qligg_modal.qligg-modal-feed .disabled-field textarea,
269
+ #qligg_modal.qligg-modal-feed .disabled-field .wp-picker-container {
270
  opacity: 0.5;
271
  }
272
  #qligg_modal.qligg-modal-feed .ig-list-buttons input[type=radio] {
311
  border-bottom: 1px solid #eee;
312
  }
313
  #qligg_modal.qligg-modal-feed ul.qligg-tabs li a span {
314
+ margin-left: 0.618em;
315
+ margin-right: 0.618em;
316
  }
317
  #qligg_modal.qligg-modal-feed ul.qligg-tabs li a:before {
318
  content: "\f107";
352
  display: inline-block;
353
  }
354
  #qligg-generate-token {
355
+ padding: 0 24px;
356
  height: 44px;
357
  line-height: 44px;
358
  text-transform: uppercase;
362
  transition: all 0.5s ease-in-out;
363
  font-weight: 600;
364
  display: inline-block;
365
+ background: #408bd1;
 
366
  }
367
  #qligg-generate-token:focus,
368
  #qligg-generate-token:hover {
assets/backend/css/qligg-admin.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../less/qligg-admin.less"],"names":[],"mappings":"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","file":"qligg-admin.css"}
1
+ {"version":3,"sources":["../../less/qligg-admin.less"],"names":[],"mappings":"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","file":"qligg-admin.css"}
assets/backend/css/qligg-admin.min.css CHANGED
@@ -1,2 +1 @@
1
-
2
- #qligg_account_table td,#qligg_feeds_table td,#qligg_account_table th,#qligg_feeds_table th{padding:1em!important;vertical-align:top;line-height:1.75em}#qligg_account_table td img.qligg-avatar,#qligg_feeds_table td img.qligg-avatar{width:50px;height:50px}#qligg_account_table .button>i,#qligg_feeds_table .button>i{margin:6.5px 2px 0 0;font-size:16px;opacity:.8}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button{position:relative;overflow:hidden;float:left;display:block;width:24px;height:24px;margin:0;background:0;border:0;box-shadow:none;color:#82878c;text-indent:-9999px;cursor:pointer;outline:0}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button::before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:normal 20px/23px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-up::before{content:"\f343"}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-down::before{content:"\f347"}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-disabled{color:#d5d5d5!important;cursor:default;pointer-events:none}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav::before{content:"\f333";font-family:Dashicons;text-align:center;line-height:1;color:#999;display:block;width:24px;float:left;height:100%;line-height:24px;cursor:move}#qligg_modal{max-width:890px;max-height:560px;margin:auto}#qligg_modal .wp-color-result-text{z-index:1;position:relative}#qligg_modal select[readonly],#qligg_modal input[type="checkbox"][readonly]{pointer-events:none!important}#qligg_modal .panel .options_group{overflow:hidden;border-bottom:1px solid #eee}#qligg_modal .panel .options_group:first-child{border-top:0}#qligg_modal .panel div.form-field,#qligg_modal .panel p.form-field{font-size:12px;padding:7.5px 15px;line-height:24px}#qligg_modal .panel div.form-field>label,#qligg_modal .panel p.form-field>label{display:inline-block}#qligg_modal .panel div.form-field>label:first-child,#qligg_modal .panel p.form-field>label:first-child{width:120px}#qligg_modal .panel div.form-field>.select2-container:nth-of-type(1),#qligg_modal .panel p.form-field>.select2-container:nth-of-type(1){width:80px!important}#qligg_modal .panel div.form-field>.select2-container:nth-of-type(2),#qligg_modal .panel p.form-field>.select2-container:nth-of-type(2){width:calc(100% - 171px)!important}#qligg_modal .panel div.form-field>.select2-container:only-of-type,#qligg_modal .panel p.form-field>.select2-container:only-of-type{width:calc(100% - 88px)!important}#qligg_modal .panel div>input,#qligg_modal .panel p>input{width:auto}#qligg_modal .panel div>input:not([type=checkbox]):not([type=radio]),#qligg_modal .panel p>input:not([type=checkbox]):not([type=radio]){min-width:120px}#qligg_modal .panel ul.list-images{display:flex;padding:0;margin:0}#qligg_modal .panel ul.list-images li{display:inline-block;margin:0 10px 0 0;margin-bottom:0;vertical-align:middle;color:#aaa;position:relative;border:1px solid #f1f1f1;border-radius:3px;padding:10px;background-color:#fff;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,0.07)}#qligg_modal .panel ul.list-images li:before{content:'';position:absolute;top:0;bottom:0;left:0;right:0;background-color:#eee;opacity:.2}#qligg_modal .panel ul.list-images li:last-child{margin-right:0}#qligg_modal .panel ul.list-images li.active:before,#qligg_modal .panel ul.list-images li:hover:before{opacity:0}#qligg_modal .panel ul.list-images li.active label,#qligg_modal .panel ul.list-images li:hover label{color:#e23565}#qligg_modal .panel ul.list-images label{pointer-events:none;display:block;position:relative;line-height:2em;z-index:9;cursor:pointer;transition:all .25s linear;text-align:center;font-weight:bold;color:#23282d}#qligg_modal .panel ul.list-images input[type=radio]{display:none}#qligg_modal.processing{pointer-events:none}#qligg_modal.processing:before{content:'';position:absolute;top:0;bottom:0;left:0;right:0;background-color:#fff;z-index:999;opacity:.8}#qligg_modal.qligg-modal-token{max-width:560px;max-height:210px}#qligg_modal.qligg-modal-feed{max-width:990px;max-height:560px}#qligg_modal.qligg-modal-feed table{padding:15px;border-width:1px 0 0 0;box-shadow:none;table-layout:fixed}#qligg_modal.qligg-modal-feed table th{width:70px}#qligg_modal.qligg-modal-feed table td{width:calc(50% - 70px)}#qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-media-view-all{width:100%}#qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-media-view{width:100%}#qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-details{overflow:hidden}#qligg_modal.qligg-modal-feed input[type=time]{height:30px}#qligg_modal.qligg-modal-feed .panel-wrap{overflow:hidden}#qligg_modal.qligg-modal-feed .disabled-color-picker{color:#d5d5d5!important;cursor:default;pointer-events:none;opacity:.8}#qligg_modal.qligg-modal-feed .disabled-color-picker input,#qligg_modal.qligg-modal-feed .disabled-color-picker select,#qligg_modal.qligg-modal-feed .disabled-color-picker textarea,#qligg_modal.qligg-modal-feed .disabled-color-picker .wp-picker-container{opacity:.5}#qligg_modal.qligg-modal-feed .ig-list-buttons input[type=radio]{position:absolute;visibility:visible}#qligg_modal.qligg-modal-feed ul.qligg-tabs{margin:0;width:20%;float:left;line-height:1em;padding:0 0 10px;position:relative;background-color:#fafafa;border-right:1px solid #eee;box-sizing:border-box}#qligg_modal.qligg-modal-feed ul.qligg-tabs:after{content:"";display:block;width:100%;height:9999em;position:absolute;bottom:-9999em;left:0;background-color:#fafafa;border-right:1px solid #eee}#qligg_modal.qligg-modal-feed ul.qligg-tabs li{margin:0;padding:0;display:block;position:relative}#qligg_modal.qligg-modal-feed ul.qligg-tabs li a{margin:0;padding:10px;display:block;box-shadow:none;text-decoration:none;line-height:20px!important;border-bottom:1px solid #eee}#qligg_modal.qligg-modal-feed ul.qligg-tabs li a span{margin-left:.618em;margin-right:.618em}#qligg_modal.qligg-modal-feed ul.qligg-tabs li a:before{content:"\f107";font-family:Dashicons;speak:none;font-weight:400;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;font-variant:normal;text-decoration:none}#qligg_modal.qligg-modal-feed ul.qligg-tabs li.active a{background-color:#eee}#qligg_modal.qligg-modal-feed .qligg-input,#qligg_modal.qligg-modal-feed .qligg-select2{width:350px;max-width:100%}#qligg_modal.qligg-modal-feed .qligg-input{margin:0;padding:6px;box-sizing:border-box;vertical-align:top}.settings-save-status .spinner{float:none;display:inline-block;margin:0 10px}.settings-save-status .saved{font-size:12px;display:none}.settings-save-status .saved.is-active{display:inline-block}#qligg-generate-token{padding:0 24px 0 120px;height:44px;line-height:44px;text-transform:uppercase;color:rgba(255,255,255,0.8)!important;text-decoration:none;border-radius:3px;transition:all .5s ease-in-out;font-weight:600;display:inline-block;background:#408bd1 url(../img/instagram.png) no-repeat 16px 13.5px;background-size:auto 20px}#qligg-generate-token:focus,#qligg-generate-token:hover{box-shadow:inset 0 0 20px 20px rgba(255,255,255,0.2)}
1
+ #qligg_account_table tr.basic,#qligg_feeds_table tr.basic{background-color:#fed0d0}#qligg_account_table tr.basic:nth-child(odd),#qligg_feeds_table tr.basic:nth-child(odd){background-color:#ffe1e1}#qligg_account_table td,#qligg_account_table th,#qligg_feeds_table td,#qligg_feeds_table th{padding:1em!important;vertical-align:top;line-height:1.75em;width:auto}#qligg_account_table td img.qligg-avatar,#qligg_feeds_table td img.qligg-avatar{width:50px;height:50px}#qligg_account_table .button>i,#qligg_feeds_table .button>i{margin:6.5px 2px 0 0;font-size:16px;opacity:.8}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button{position:relative;overflow:hidden;float:left;display:block;width:24px;height:24px;margin:0;background:0 0;border:none;box-shadow:none;color:#82878c;text-indent:-9999px;cursor:pointer;outline:0}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button::before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:normal 20px/23px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-up::before{content:"\f343"}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-down::before{content:"\f347"}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav button.wc-move-disabled{color:#d5d5d5!important;cursor:default;pointer-events:none}#qligg_feeds_table tbody.ui-sortable .wc-item-reorder-nav::before{content:"\f333";font-family:Dashicons;text-align:center;line-height:1;color:#999;display:block;width:24px;float:left;height:100%;line-height:24px;cursor:move}#qligg_modal{max-width:890px;max-height:560px;margin:auto}#qligg_modal .wp-color-result-text{z-index:1;position:relative}#qligg_modal input[type=checkbox][readonly],#qligg_modal select[readonly]{pointer-events:none!important}#qligg_modal .panel .options_group{overflow:hidden;border-bottom:1px solid #eee}#qligg_modal .panel .options_group:first-child{border-top:0}#qligg_modal .panel div.form-field,#qligg_modal .panel p.form-field{font-size:12px;padding:7.5px 15px;line-height:24px}#qligg_modal .panel div.form-field>label,#qligg_modal .panel p.form-field>label{display:inline-block}#qligg_modal .panel div.form-field>label:first-child,#qligg_modal .panel p.form-field>label:first-child{width:120px}#qligg_modal .panel div.form-field>.select2-container:nth-of-type(1),#qligg_modal .panel p.form-field>.select2-container:nth-of-type(1){width:80px!important}#qligg_modal .panel div.form-field>.select2-container:nth-of-type(2),#qligg_modal .panel p.form-field>.select2-container:nth-of-type(2){width:calc(100% - 171px)!important}#qligg_modal .panel div.form-field>.select2-container:only-of-type,#qligg_modal .panel p.form-field>.select2-container:only-of-type{width:calc(100% - 88px)!important}#qligg_modal .panel div>input,#qligg_modal .panel p>input{width:auto}#qligg_modal .panel div>input:not([type=checkbox]):not([type=radio]),#qligg_modal .panel p>input:not([type=checkbox]):not([type=radio]){min-width:120px}#qligg_modal .panel ul.list-images{display:flex;padding:0;margin:0}#qligg_modal .panel ul.list-images li{display:inline-block;margin:0 10px 0 0;margin-bottom:0;vertical-align:middle;color:#aaa;position:relative;border:1px solid #f1f1f1;border-radius:3px;padding:10px;background-color:#fff;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.07)}#qligg_modal .panel ul.list-images li:before{content:'';position:absolute;top:0;bottom:0;left:0;right:0;background-color:#eee;opacity:.2}#qligg_modal .panel ul.list-images li:last-child{margin-right:0}#qligg_modal .panel ul.list-images li.active:before,#qligg_modal .panel ul.list-images li:hover:before{opacity:0}#qligg_modal .panel ul.list-images li.active label,#qligg_modal .panel ul.list-images li:hover label{color:#e23565}#qligg_modal .panel ul.list-images label{pointer-events:none;display:block;position:relative;line-height:2em;z-index:9;cursor:pointer;transition:all .25s linear;text-align:center;font-weight:700;color:#23282d}#qligg_modal .panel ul.list-images input[type=radio]{display:none}#qligg_modal.processing{pointer-events:none}#qligg_modal.processing:before{content:'';position:absolute;top:0;bottom:0;left:0;right:0;background-color:#fff;z-index:999;opacity:.8}#qligg_modal.qligg-modal-token{max-width:560px;max-height:210px}#qligg_modal.qligg-modal-feed{max-width:990px;max-height:560px}#qligg_modal.qligg-modal-feed table{padding:15px;border-width:1px 0 0 0;box-shadow:none;table-layout:fixed}#qligg_modal.qligg-modal-feed table th{width:70px}#qligg_modal.qligg-modal-feed table td{width:calc(50% - 70px)}#qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-media-view-all{width:100%}#qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-media-view{width:100%}#qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-details{overflow:hidden}#qligg_modal.qligg-modal-feed input[type=time]{height:30px}#qligg_modal.qligg-modal-feed .panel-wrap{overflow:hidden}#qligg_modal.qligg-modal-feed .disabled-feature{position:relative}#qligg_modal.qligg-modal-feed .disabled-feature:before{content:'';background-color:#eee;position:absolute;top:0;bottom:0;left:0;right:0;opacity:.5;overflow:hidden;pointer-events:none}#qligg_modal.qligg-modal-feed .disabled-field{color:#d5d5d5!important;cursor:default;pointer-events:none;opacity:.8}#qligg_modal.qligg-modal-feed .disabled-field .wp-picker-container,#qligg_modal.qligg-modal-feed .disabled-field input,#qligg_modal.qligg-modal-feed .disabled-field select,#qligg_modal.qligg-modal-feed .disabled-field textarea{opacity:.5}#qligg_modal.qligg-modal-feed .ig-list-buttons input[type=radio]{position:absolute;visibility:visible}#qligg_modal.qligg-modal-feed ul.qligg-tabs{margin:0;width:20%;float:left;line-height:1em;padding:0 0 10px;position:relative;background-color:#fafafa;border-right:1px solid #eee;box-sizing:border-box}#qligg_modal.qligg-modal-feed ul.qligg-tabs:after{content:"";display:block;width:100%;height:9999em;position:absolute;bottom:-9999em;left:0;background-color:#fafafa;border-right:1px solid #eee}#qligg_modal.qligg-modal-feed ul.qligg-tabs li{margin:0;padding:0;display:block;position:relative}#qligg_modal.qligg-modal-feed ul.qligg-tabs li a{margin:0;padding:10px;display:block;box-shadow:none;text-decoration:none;line-height:20px!important;border-bottom:1px solid #eee}#qligg_modal.qligg-modal-feed ul.qligg-tabs li a span{margin-left:.618em;margin-right:.618em}#qligg_modal.qligg-modal-feed ul.qligg-tabs li a:before{content:"\f107";font-family:Dashicons;speak:none;font-weight:400;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;font-variant:normal;text-decoration:none}#qligg_modal.qligg-modal-feed ul.qligg-tabs li.active a{background-color:#eee}#qligg_modal.qligg-modal-feed .qligg-input,#qligg_modal.qligg-modal-feed .qligg-select2{width:350px;max-width:100%}#qligg_modal.qligg-modal-feed .qligg-input{margin:0;padding:6px;box-sizing:border-box;vertical-align:top}.settings-save-status .spinner{float:none;display:inline-block;margin:0 10px}.settings-save-status .saved{font-size:12px;display:none}.settings-save-status .saved.is-active{display:inline-block}#qligg-generate-token{padding:0 24px;height:44px;line-height:44px;text-transform:uppercase;color:rgba(255,255,255,.8)!important;text-decoration:none;border-radius:3px;transition:all .5s ease-in-out;font-weight:600;display:inline-block;background:#408bd1}#qligg-generate-token:focus,#qligg-generate-token:hover{box-shadow:inset 0 0 20px 20px rgba(255,255,255,.2)}
 
assets/backend/img/logo.jpg CHANGED
Binary file
assets/backend/js/qligg-admin-account.js CHANGED
@@ -1,5 +1,13 @@
1
  (function ($) {
2
 
 
 
 
 
 
 
 
 
3
  _.mixin({
4
  escapeHtml: function (attribute) {
5
  return attribute.replace('&', /&/g)
@@ -75,9 +83,9 @@
75
  $.ajax({
76
  url: ajaxurl,
77
  data: {
78
- action: 'qligg_add_token',
79
- nonce: qligg_account.nonce.qligg_add_token,
80
- access_token: modal.model.attributes.access_token
81
  },
82
  dataType: 'json',
83
  type: 'POST',
@@ -137,24 +145,24 @@
137
 
138
  $(document).on('click', '[data-qligg-delete-token]', function (e) {
139
  e.preventDefault();
140
-
141
  var c = confirm(qligg_account.message.confirm_delete);
142
-
143
  if (!c) {
144
  return false;
145
  }
146
 
147
  var $button = $(e.target),
148
- token_id = $button.closest('[data-token_id]').data('token_id'),
149
  $spinner = $(e.target).closest('td').find('.spinner');
150
 
151
  $.ajax({
152
  url: ajaxurl,
153
  type: 'post',
154
  data: {
155
- action: 'qligg_delete_token',
156
- token_id: token_id,
157
- nonce: qligg_account.nonce.qligg_delete_token
158
  },
159
  beforeSend: function () {
160
  $spinner.addClass('is-active');
@@ -191,45 +199,60 @@
191
  // ---------------------------------------------------------------------------
192
  $(document).on('ready', function (e) {
193
 
194
- var hash = window.location.hash,
195
- access_token = hash.substring(14);
196
 
197
- if (access_token.length > 40) {
 
 
 
 
 
198
 
199
- var $button = $('#qligg-generate-token'),
200
- $spinner = $button.closest('p').find('.spinner');
 
201
 
202
- $.ajax({
203
- url: ajaxurl,
204
- type: 'post',
205
- data: {
206
- action: 'qligg_add_token',
207
- access_token: access_token,
208
- nonce: qligg_account.nonce.qligg_add_token
209
- },
210
- beforeSend: function () {
211
- $button.css({'opacity': '.5', 'pointer-events': 'none'});
212
- $spinner.addClass('is-active');
213
- },
214
- success: function (response) {
215
- if (response.success) {
216
- setTimeout(function () {
217
- window.location.reload();
218
- }, 300);
219
- } else {
220
- alert(response.data);
221
- }
222
- },
223
- complete: function () {
224
- $button.removeAttr('style');
225
- $spinner.removeClass('is-active');
226
- window.location.hash = '';
227
- window.location.href.split('#')[0]
228
  },
229
- error: function (jqXHR, textStatus) {
230
- console.log(textStatus);
 
 
 
 
 
 
 
 
 
 
 
231
  }
232
- });
233
- }
 
 
 
 
 
 
 
 
 
 
234
  });
235
  })(jQuery);
1
  (function ($) {
2
 
3
+ function getUrlVars() {
4
+ var vars = {};
5
+ var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {
6
+ vars[key] = value;
7
+ });
8
+ return vars;
9
+ }
10
+
11
  _.mixin({
12
  escapeHtml: function (attribute) {
13
  return attribute.replace('&', /&/g)
83
  $.ajax({
84
  url: ajaxurl,
85
  data: {
86
+ action: 'qligg_add_account',
87
+ nonce: qligg_account.nonce.qligg_add_account,
88
+ account_data: modal.model.attributes
89
  },
90
  dataType: 'json',
91
  type: 'POST',
145
 
146
  $(document).on('click', '[data-qligg-delete-token]', function (e) {
147
  e.preventDefault();
148
+
149
  var c = confirm(qligg_account.message.confirm_delete);
150
+
151
  if (!c) {
152
  return false;
153
  }
154
 
155
  var $button = $(e.target),
156
+ account_id = $button.closest('[data-account_id]').data('account_id'),
157
  $spinner = $(e.target).closest('td').find('.spinner');
158
 
159
  $.ajax({
160
  url: ajaxurl,
161
  type: 'post',
162
  data: {
163
+ action: 'qligg_delete_account',
164
+ account_id: account_id,
165
+ nonce: qligg_account.nonce.qligg_delete_account
166
  },
167
  beforeSend: function () {
168
  $spinner.addClass('is-active');
199
  // ---------------------------------------------------------------------------
200
  $(document).on('ready', function (e) {
201
 
202
+ var $button = $('#qligg-generate-token'),
203
+ $spinner = $button.closest('p').find('.spinner');
204
 
205
+ var urlVars = getUrlVars(),
206
+ id = urlVars.id || false,
207
+ access_token = urlVars.access_token || false,
208
+ account_type = urlVars.account_type || false,
209
+ expires_in = urlVars.expires_in || false,
210
+ username = urlVars.username || false;
211
 
212
+ if (!id || !access_token || !username) {
213
+ return;
214
+ }
215
 
216
+ $.ajax({
217
+ url: ajaxurl,
218
+ type: 'post',
219
+ data: {
220
+ action: 'qligg_add_account',
221
+ account_data: {
222
+ id,
223
+ access_token,
224
+ account_type,
225
+ expires_in,
226
+ username,
227
+ // full_name,
228
+ // profile_pic_url: profile_pic_url.replace(/\\u0026/ig, '&'),
229
+ // profile_pic_url_hd: profile_pic_url_hd.replace(/\\u0026/ig, '&'),
 
 
 
 
 
 
 
 
 
 
 
 
230
  },
231
+ nonce: qligg_account.nonce.qligg_add_account
232
+ },
233
+ beforeSend: function () {
234
+ $button.css({'opacity': '.5', 'pointer-events': 'none'});
235
+ $spinner.addClass('is-active');
236
+ },
237
+ success: function (response) {
238
+ if (response.success) {
239
+ setTimeout(function () {
240
+ window.location = window.location.href.split("&access_token")[0];
241
+ }, 300);
242
+ } else {
243
+ alert(response.data);
244
  }
245
+ },
246
+ complete: function () {
247
+ $button.removeAttr('style');
248
+ $spinner.removeClass('is-active');
249
+ // window.location.hash = '';
250
+ window.location.href.substring(0, window.location.href.indexOf('?'));
251
+ },
252
+ error: function (jqXHR, textStatus) {
253
+ console.log(textStatus);
254
+ }
255
+ });
256
+
257
  });
258
  })(jQuery);
assets/backend/js/qligg-admin-account.min.js CHANGED
@@ -1,2 +1 @@
1
-
2
- (function(c){_.mixin({escapeHtml:function(e){return e.replace("&amp;",/&/g).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&#039;/g,"'")},getFormData:function(e){return e.serializeJSON()}});var b=Backbone.Model.extend({defaults:{access_token:""}});var a=Backbone.View.extend({events:{"change input":"enable","click .media-modal-close":"close","submit .media-modal-form":"submit"},templates:{},initialize:function(){_.bindAll(this,"open","render","close","enable","submit");this.init();this.open()},init:function(){this.templates.window=wp.template("qligg-modal-account-main")},render:function(){var e=this;e.$el.html(e.templates.window(e.model.attributes))},updateModel:function(i){i.preventDefault();var h=this,f=h.$el.find("form");var g=_.getFormData(f);this.model.set(g)},enable:function(f){c(".media-modal-submit").removeProp("disabled");this.updateModel(f)},open:function(f){this.render();c("body").addClass("modal-open").append(this.$el)},close:function(f){f.preventDefault();this.undelegateEvents();c(document).off("focusin");c("body").removeClass("modal-open");this.remove();return},submit:function(j){j.preventDefault();var i=this,g=i.$el.find("#qligg_modal"),h=g.find(".settings-save-status .spinner"),f=g.find(".settings-save-status .saved");c.ajax({url:ajaxurl,data:{action:"qligg_add_token",nonce:qligg_account.nonce.qligg_add_token,access_token:i.model.attributes.access_token},dataType:"json",type:"POST",beforeSend:function(){c(".media-modal-submit").prop("disabled",true);h.addClass("is-active")},complete:function(){h.removeClass("is-active")},error:function(e){alert("Error!")},success:function(e){console.log(e);if(e.success){g.addClass("reload");f.addClass("is-active");_.delay(function(){f.removeClass("is-active")},5000);i.close(j);window.location.reload()}else{alert(e.data)}}});return false}});var d=Backbone.View.extend({initialize:function(g){var f=new b();f.set({access_token:""});new a({model:f})}});c(document).on("click","[data-qligg-copy-token]",function(f){f.preventDefault();c(c(this).data("qligg-copy-token")).select();document.execCommand("copy")});c(document).on("click","[data-qligg-delete-token]",function(i){i.preventDefault();var j=confirm(qligg_account.message.confirm_delete);if(!j){return false}var h=c(i.target),f=h.closest("[data-token_id]").data("token_id"),g=c(i.target).closest("td").find(".spinner");c.ajax({url:ajaxurl,type:"post",data:{action:"qligg_delete_token",token_id:f,nonce:qligg_account.nonce.qligg_delete_token},beforeSend:function(){g.addClass("is-active")},success:function(e){if(e.success){setTimeout(function(){window.location.reload()},300)}else{alert(e.data)}},complete:function(){g.removeClass("is-active")},error:function(e,k){console.log(k)}})});c("#qligg-add-token").on("click",function(f){f.preventDefault();new d(f)});c(document).on("ready",function(i){var h=window.location.hash,j=h.substring(14);if(j.length>40){var g=c("#qligg-generate-token"),f=g.closest("p").find(".spinner");c.ajax({url:ajaxurl,type:"post",data:{action:"qligg_add_token",access_token:j,nonce:qligg_account.nonce.qligg_add_token},beforeSend:function(){g.css({opacity:".5","pointer-events":"none"});f.addClass("is-active")},success:function(e){if(e.success){setTimeout(function(){window.location.reload()},300)}else{alert(e.data)}},complete:function(){g.removeAttr("style");f.removeClass("is-active");window.location.hash="";window.location.href.split("#")[0]},error:function(e,k){console.log(k)}})}})})(jQuery);
1
+ !function($){function getUrlVars(){var vars={},parts=window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,(function(m,key,value){vars[key]=value}));return vars}_.mixin({escapeHtml:function(attribute){return attribute.replace("&amp;",/&/g).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&#039;/g,"'")},getFormData:function($form){return $form.serializeJSON()}});var Account=Backbone.Model.extend({defaults:{access_token:""}}),AccountView=Backbone.View.extend({events:{"change input":"enable","click .media-modal-close":"close","submit .media-modal-form":"submit"},templates:{},initialize:function(){_.bindAll(this,"open","render","close","enable","submit"),this.init(),this.open()},init:function(){this.templates.window=wp.template("qligg-modal-account-main")},render:function(){var modal=this;this.$el.html(this.templates.window(this.model.attributes))},updateModel:function(e){e.preventDefault();var modal=this,$form=this.$el.find("form"),model=_.getFormData($form);this.model.set(model)},enable:function(e){$(".media-modal-submit").removeProp("disabled"),this.updateModel(e)},open:function(e){this.render(),$("body").addClass("modal-open").append(this.$el)},close:function(e){e.preventDefault(),this.undelegateEvents(),$(document).off("focusin"),$("body").removeClass("modal-open"),this.remove()},submit:function(e){e.preventDefault();var modal=this,$modal=modal.$el.find("#qligg_modal"),$spinner=$modal.find(".settings-save-status .spinner"),$saved=$modal.find(".settings-save-status .saved");return $.ajax({url:ajaxurl,data:{action:"qligg_add_account",nonce:qligg_account.nonce.qligg_add_account,account_data:modal.model.attributes},dataType:"json",type:"POST",beforeSend:function(){$(".media-modal-submit").prop("disabled",!0),$spinner.addClass("is-active")},complete:function(){$spinner.removeClass("is-active")},error:function(response){alert("Error!")},success:function(response){console.log(response),response.success?($modal.addClass("reload"),$saved.addClass("is-active"),_.delay((function(){$saved.removeClass("is-active")}),5e3),modal.close(e),window.location.reload()):alert(response.data)}}),!1}}),AccountModal=Backbone.View.extend({initialize:function(e){var model=new Account;model.set({access_token:""}),new AccountView({model:model})}});$(document).on("click","[data-qligg-copy-token]",(function(e){e.preventDefault(),$($(this).data("qligg-copy-token")).select(),document.execCommand("copy")})),$(document).on("click","[data-qligg-delete-token]",(function(e){var c;if(e.preventDefault(),!confirm(qligg_account.message.confirm_delete))return!1;var $button,account_id=$(e.target).closest("[data-account_id]").data("account_id"),$spinner=$(e.target).closest("td").find(".spinner");$.ajax({url:ajaxurl,type:"post",data:{action:"qligg_delete_account",account_id:account_id,nonce:qligg_account.nonce.qligg_delete_account},beforeSend:function(){$spinner.addClass("is-active")},success:function(response){response.success?setTimeout((function(){window.location.reload()}),300):alert(response.data)},complete:function(){$spinner.removeClass("is-active")},error:function(jqXHR,textStatus){console.log(textStatus)}})})),$("#qligg-add-token").on("click",(function(e){e.preventDefault(),new AccountModal(e)})),$(document).on("ready",(function(e){var $button=$("#qligg-generate-token"),$spinner=$button.closest("p").find(".spinner"),urlVars=getUrlVars(),id=urlVars.id||!1,access_token=urlVars.access_token||!1,account_type=urlVars.account_type||!1,expires_in=urlVars.expires_in||!1,username=urlVars.username||!1;id&&access_token&&username&&$.ajax({url:ajaxurl,type:"post",data:{action:"qligg_add_account",account_data:{id:id,access_token:access_token,account_type:account_type,expires_in:expires_in,username:username},nonce:qligg_account.nonce.qligg_add_account},beforeSend:function(){$button.css({opacity:".5","pointer-events":"none"}),$spinner.addClass("is-active")},success:function(response){response.success?setTimeout((function(){window.location=window.location.href.split("&access_token")[0]}),300):alert(response.data)},complete:function(){$button.removeAttr("style"),$spinner.removeClass("is-active"),window.location.href.substring(0,window.location.href.indexOf("?"))},error:function(jqXHR,textStatus){console.log(textStatus)}})}))}(jQuery);
 
assets/backend/js/qligg-admin-feed.js CHANGED
@@ -1,6 +1,7 @@
1
  (function ($) {
 
2
  var count = 0,
3
- timer;
4
 
5
  var is_blocked = function ($node) {
6
  return $node.is('.processing') || $node.parents('.processing').length;
@@ -17,53 +18,44 @@
17
  _.mixin({
18
  escapeHtml: function (attribute) {
19
  return attribute.replace('&amp;', /&/g)
20
- .replace(/&gt;/g, ">")
21
- .replace(/&lt;/g, "<")
22
- .replace(/&quot;/g, '"')
23
- .replace(/&#039;/g, "'");
24
  },
25
  getFormData: function ($form) {
26
- return $form.serializeJSON({checkboxUncheckedValue: 'false', parseBooleans: true, parseNulls: true});
27
  //breakes image highlight id
28
- // return $form.serializeJSON({checkboxUncheckedValue: 'false', parseBooleans: true, parseNumbers: true, parseNulls: true});
29
  }
30
  });
31
 
32
  // Model
33
  // ---------------------------------------------------------------------------
34
 
35
- var Feed = Backbone.Model.extend({
36
  defaults: qligg_feed.args
37
  });
38
 
39
- var FeedViewTabs = Backbone.View.extend({
40
- templates: {},
41
- initialize: function () {
42
- this.templates.window = wp.template('qligg-modal-tabs');
43
- },
44
- render: function () {
45
- this.model.attributes.panel = 'tab_panel_feed';
46
- this.$el.html(this.templates.window(this.model.attributes));
47
- }
48
- });
49
-
50
- var FeedViewPanels = Backbone.View.extend({
51
- templates: {},
52
- initialize: function () {
53
- this.templates.window = wp.template('qligg-modal-panels');
54
-
55
- },
56
- render: function () {
57
- this.$el.html(this.templates.window(this.model.attributes));
58
- this.$el.trigger('qligg-enhanced-color');
59
  }
60
  });
61
 
62
  var FeedView = Backbone.View.extend({
63
  events: {
64
- 'change input': 'enable',
65
- 'change textarea': 'enable',
66
- 'change select': 'enable',
67
  'click .media-modal-image': 'setLayout',
68
  'click .media-modal-backdrop': 'close',
69
  'click .media-modal-close': 'close',
@@ -73,11 +65,11 @@
73
  'change .media-modal-render-tabs': 'renderTabs',
74
  'change .media-modal-render-panels': 'renderPanels',
75
  'submit .media-modal-form': 'submit',
76
- 'qligg.color.change input': 'enable',
77
  },
78
  templates: {},
79
  initialize: function () {
80
- _.bindAll(this, 'open', 'tab', 'edit', 'change', 'load', 'render', 'close', 'submit');
81
  this.init();
82
  this.open();
83
  },
@@ -87,20 +79,87 @@
87
  assign: function (view, selector) {
88
  view.setElement(this.$(selector)).render();
89
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  render: function () {
91
  var modal = this;
92
  modal.$el.html(modal.templates.window(modal.model.attributes));
93
- this.tabs = new FeedViewTabs({model: modal.model});
94
- this.panels = new FeedViewPanels({model: modal.model});
95
  this.assign(this.tabs, '#qligg-modal-tabs');
96
  this.assign(this.panels, '#qligg-modal-panels');
97
  _.delay(function () {
98
  modal.$el.trigger('qligg-enhanced-color');
99
  }, 100);
100
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  load: function () {
102
- var modal = this,
103
- $modal = modal.$el.find('#qligg_modal');
104
  if (modal.model.attributes.id == undefined) {
105
  modal.render();
106
  return;
@@ -114,12 +173,9 @@
114
  },
115
  dataType: 'json',
116
  type: 'POST',
117
- beforeSend: function () {
118
- //if ($modal.length)
119
- // block();
120
- },
121
  complete: function () {
122
- // if ($modal.length)
123
  unblock();
124
  },
125
  error: function () {
@@ -138,10 +194,14 @@
138
  edit: function (e) {
139
  e.preventDefault();
140
  var modal = this,
141
- $button = $(e.target),
142
- feed_count = parseInt($('#qligg_feeds_table tr[data-feed_id]').length),
143
- order = parseInt(modal.model.get('order'));
 
 
 
144
  count++;
 
145
  if (timer) {
146
  clearTimeout(timer);
147
  }
@@ -149,114 +209,26 @@
149
  timer = setTimeout(function () {
150
 
151
  if ($button.hasClass('media-modal-next')) {
152
- order = Math.min(order + count, feed_count);
153
  } else {
154
- order = Math.max(order - count, 1);
155
  }
 
 
 
156
  modal.model.set({
157
- id: parseInt($('#qligg_feeds_table tr[data-feed_position=' + order + ']').data('feed_id'))
158
- // id: parseInt($('#qligg_feeds_table tr[data-item_nonce=' + order + ']').data('item_id'))
159
  });
160
  count = 0;
161
  modal.load();
162
  }, 300);
163
  },
164
- open: function (e) {
165
- var modal = this;
166
- $('body').addClass('modal-open').append(this.$el);
167
- if (modal.model.attributes.id == undefined) {
168
- _.delay(function () {
169
- unblock();
170
- modal.setUsername();
171
- }, 100);
172
-
173
- return;
174
- }
175
- this.load();
176
- },
177
- setLayout: function (e) {
178
- e.preventDefault();
179
- e.stopPropagation();
180
- $(e.target).find('input[type=radio]').prop('checked', true);//.trigger('change');
181
- $(e.target).siblings().find('input[type=radio]').prop('checked', false);
182
- this.updateModel(e);
183
- this.renderPanels(e);
184
- this.renderTabs(e);
185
- this.enable(e);
186
- },
187
- setUsername: function (e) {
188
- var modal = this,
189
- $select = modal.$el.find('#qligg_modal').find('form').find('select[name=username]');
190
- $select.trigger('change');
191
- },
192
- updateModel: function (e) {
193
- e.preventDefault();
194
- var modal = this,
195
- $form = modal.$el.find('#qligg_modal').find('form');
196
-
197
- var model = _.getFormData($form);
198
-
199
- this.model.set(model);
200
- },
201
- tab: function (e) {
202
- e.preventDefault();
203
-
204
- var modal = this,
205
- $modal = modal.$el.find('#qligg_modal'),
206
- $tab = $(e.currentTarget),
207
- $tabs = $modal.find('ul.qligg-tabs'),
208
- panel = $tab.find('a').attr('href').replace('#', '');
209
-
210
- $tabs.find('.active').removeClass('active');
211
- $tab.addClass('active');
212
-
213
- this.model.attributes['panel'] = panel;
214
- this.model.changed['panel'] = panel;
215
-
216
- this.renderPanels(e);
217
-
218
- },
219
- renderTabs: function (e) {
220
- this.renderPanels(e);
221
- this.tabs.render();
222
- },
223
- renderPanels: function (e) {
224
- this.updateModel(e);
225
- this.panels.render();
226
- },
227
- change: function (e) {
228
- e.preventDefault();
229
- this.updateModel(e);
230
- },
231
- reload: function (e) {
232
- if (this.$el.find('#qligg_modal').hasClass('reload')) {
233
- location.reload();
234
- return;
235
- }
236
- this.remove();
237
- return;
238
- },
239
- close: function (e) {
240
- e.preventDefault();
241
- this.undelegateEvents();
242
- $(document).off('focusin');
243
- $('body').removeClass('modal-open');
244
- // if necesary reload...
245
- this.$el.find('#qligg_modal').addClass('reload');
246
- this.reload(e);
247
- return;
248
- },
249
- enable: function (e) {
250
- $('.media-modal-submit').removeProp('disabled');
251
- this.updateModel(e);
252
-
253
- },
254
  submit: function (e) {
255
  e.preventDefault();
256
  var modal = this,
257
- $modal = modal.$el.find('#qligg_modal'),
258
- $spinner = $modal.find('.settings-save-status .spinner'),
259
- $saved = $modal.find('.settings-save-status .saved');
260
  $.ajax({
261
  url: ajaxurl,
262
  data: {
@@ -296,20 +268,49 @@
296
  }
297
  });
298
  return false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
299
  }
300
  });
301
 
302
- var FeedModal = Backbone.View.extend({
303
- initialize: function (e) {
304
- var $button = $(e.target),
305
- feed_id = $button.closest('[data-feed_position]').data('feed_id');
306
- var model = new Feed();
307
- model.set({
308
- id: feed_id
309
- });
310
- new FeedView({
311
- model: model
312
- }).render();
313
  }
314
  });
315
 
@@ -318,7 +319,7 @@
318
  $('.color-picker').filter(':not(.enhanced)').each(function () {
319
 
320
  if ($(this).is('[readonly]')) {
321
- $(this).parent('.form-field').addClass('disabled-color-picker');
322
  }
323
 
324
  $(this).wpColorPicker({
@@ -327,11 +328,11 @@
327
  $(event.target).trigger('qligg.color.change');
328
  },
329
  clear: function (event, ui) {
330
- // $(event.target).trigger('change');
331
  },
332
  hide: function (event, ui) {
333
  aler('!!!!');
334
- // $(event.target).trigger('change');
335
  }
336
  });
337
  });
@@ -371,8 +372,8 @@
371
  }
372
 
373
  var $button = $(e.target),
374
- $spinner = $button.parent().find('.spinner'),
375
- feed_id = $button.closest('[data-feed_id]').data('feed_id');
376
 
377
  $.ajax({
378
  url: ajaxurl,
@@ -417,8 +418,8 @@
417
  }
418
 
419
  var $button = $(e.target),
420
- $spinner = $button.parent().find('.spinner'),
421
- feed_id = $button.closest('[data-feed_id]').data('feed_id');
422
 
423
  $.ajax({
424
  url: ajaxurl,
@@ -451,6 +452,37 @@
451
  });
452
  });
453
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
454
  // Copy shortcode
455
  // ---------------------------------------------------------------------------
456
 
1
  (function ($) {
2
+
3
  var count = 0,
4
+ timer;
5
 
6
  var is_blocked = function ($node) {
7
  return $node.is('.processing') || $node.parents('.processing').length;
18
  _.mixin({
19
  escapeHtml: function (attribute) {
20
  return attribute.replace('&amp;', /&/g)
21
+ .replace(/&gt;/g, ">")
22
+ .replace(/&lt;/g, "<")
23
+ .replace(/&quot;/g, '"')
24
+ .replace(/&#039;/g, "'");
25
  },
26
  getFormData: function ($form) {
27
+ return $form.serializeJSON({ checkboxUncheckedValue: 'false', parseBooleans: true, parseNulls: true });
28
  //breakes image highlight id
29
+ // return $form.serializeJSON({checkboxUncheckedValue: 'false', parseBooleans: true, parseNumbers: true, parseNulls: true});
30
  }
31
  });
32
 
33
  // Model
34
  // ---------------------------------------------------------------------------
35
 
36
+ var FeedModel = Backbone.Model.extend({
37
  defaults: qligg_feed.args
38
  });
39
 
40
+ var FeedModal = Backbone.View.extend({
41
+ initialize: function (e) {
42
+ var $button = $(e.target),
43
+ feed_id = $button.closest('[data-feed_position]').data('feed_id');
44
+ var model = new FeedModel();
45
+ model.set({
46
+ id: feed_id
47
+ });
48
+ new FeedView({
49
+ model: model
50
+ }).render();
 
 
 
 
 
 
 
 
 
51
  }
52
  });
53
 
54
  var FeedView = Backbone.View.extend({
55
  events: {
56
+ 'change input': 'enableSave',
57
+ 'change textarea': 'enableSave',
58
+ 'change select': 'enableSave',
59
  'click .media-modal-image': 'setLayout',
60
  'click .media-modal-backdrop': 'close',
61
  'click .media-modal-close': 'close',
65
  'change .media-modal-render-tabs': 'renderTabs',
66
  'change .media-modal-render-panels': 'renderPanels',
67
  'submit .media-modal-form': 'submit',
68
+ 'qligg.color.change input': 'enableSave',
69
  },
70
  templates: {},
71
  initialize: function () {
72
+ _.bindAll(this, 'open', 'tab', 'edit', 'load', 'render', 'close', 'submit');
73
  this.init();
74
  this.open();
75
  },
79
  assign: function (view, selector) {
80
  view.setElement(this.$(selector)).render();
81
  },
82
+ updateModel: function (e) {
83
+ e.preventDefault();
84
+ var modal = this,
85
+ $form = modal.$el.find('#qligg_modal').find('form');
86
+
87
+ var model = _.getFormData($form);
88
+
89
+ this.model.set(model);
90
+ },
91
+ reload: function (e) {
92
+ if (this.$el.find('#qligg_modal').hasClass('reload')) {
93
+ location.reload();
94
+ return;
95
+ }
96
+ this.remove();
97
+ return;
98
+ },
99
+ close: function (e) {
100
+ e.preventDefault();
101
+ this.undelegateEvents();
102
+ $(document).off('focusin');
103
+ $('body').removeClass('modal-open');
104
+ // if necesary reload...
105
+ this.$el.find('#qligg_modal').addClass('reload');
106
+ this.reload(e);
107
+ return;
108
+ },
109
+ enableSave: function (e) {
110
+ $('.media-modal-submit').removeProp('disabled');
111
+ this.updateModel(e);
112
+ },
113
+ disableSave: function (e) {
114
+ $('.media-modal-submit').prop('disabled', true);
115
+ },
116
+ tab: function (e) {
117
+ e.preventDefault();
118
+ var modal = this,
119
+ $modal = modal.$el.find('#qligg_modal'),
120
+ $tab = $(e.currentTarget),
121
+ $tabs = $modal.find('ul.qligg-tabs'),
122
+ panel = $tab.find('a').attr('href').replace('#', '');
123
+ $tabs.find('.active').removeClass('active');
124
+ $tab.addClass('active');
125
+ this.model.attributes['panel'] = panel;
126
+ this.model.changed['panel'] = panel;
127
+ this.renderPanels(e);
128
+ },
129
+ renderTabs: function (e) {
130
+ this.renderPanels(e);
131
+ this.tabs.render();
132
+ },
133
+ renderPanels: function (e) {
134
+ this.updateModel(e);
135
+ this.panels.render();
136
+ },
137
  render: function () {
138
  var modal = this;
139
  modal.$el.html(modal.templates.window(modal.model.attributes));
140
+ this.tabs = new FeedViewTabs({ model: modal.model });
141
+ this.panels = new FeedViewPanels({ model: modal.model });
142
  this.assign(this.tabs, '#qligg-modal-tabs');
143
  this.assign(this.panels, '#qligg-modal-panels');
144
  _.delay(function () {
145
  modal.$el.trigger('qligg-enhanced-color');
146
  }, 100);
147
  },
148
+ open: function (e) {
149
+ var modal = this;
150
+ $('body').addClass('modal-open').append(this.$el);
151
+ if (modal.model.attributes.id == undefined) {
152
+ _.delay(function () {
153
+ unblock();
154
+ modal.setUsername();
155
+ }, 100);
156
+
157
+ return;
158
+ }
159
+ this.load();
160
+ },
161
  load: function () {
162
+ var modal = this;
 
163
  if (modal.model.attributes.id == undefined) {
164
  modal.render();
165
  return;
173
  },
174
  dataType: 'json',
175
  type: 'POST',
176
+ // beforeSend: function () {
177
+ // },
 
 
178
  complete: function () {
 
179
  unblock();
180
  },
181
  error: function () {
194
  edit: function (e) {
195
  e.preventDefault();
196
  var modal = this,
197
+ $button = $(e.target),
198
+ feed_count = parseInt($('#qligg_feeds_table tr[data-feed_id]').length),
199
+ feed_position = parseInt($('#qligg_feeds_table tr[data-feed_id=' + modal.model.get('id') + ']').data('feed_position'));
200
+
201
+ console.log('order', feed_position);
202
+
203
  count++;
204
+
205
  if (timer) {
206
  clearTimeout(timer);
207
  }
209
  timer = setTimeout(function () {
210
 
211
  if ($button.hasClass('media-modal-next')) {
212
+ feed_position = Math.min(feed_position + count, feed_count);
213
  } else {
214
+ feed_position = Math.max(feed_position - count, 1);
215
  }
216
+
217
+ console.log($('#qligg_feeds_table tr[data-feed_position=' + feed_position + ']').data('feed_id'));
218
+
219
  modal.model.set({
220
+ id: parseInt($('#qligg_feeds_table tr[data-feed_position=' + feed_position + ']').data('feed_id'))
 
221
  });
222
  count = 0;
223
  modal.load();
224
  }, 300);
225
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
  submit: function (e) {
227
  e.preventDefault();
228
  var modal = this,
229
+ $modal = modal.$el.find('#qligg_modal'),
230
+ $spinner = $modal.find('.settings-save-status .spinner'),
231
+ $saved = $modal.find('.settings-save-status .saved');
232
  $.ajax({
233
  url: ajaxurl,
234
  data: {
268
  }
269
  });
270
  return false;
271
+ },
272
+ setLayout: function (e) {
273
+ e.preventDefault();
274
+ e.stopPropagation();
275
+ $(e.target).find('input[type=radio]').prop('checked', true);//.trigger('change');
276
+ $(e.target).siblings().find('input[type=radio]').prop('checked', false);
277
+ this.updateModel(e);
278
+ this.renderPanels(e);
279
+ this.renderTabs(e);
280
+ this.enableSave(e);
281
+ },
282
+ setUsername: function (e) {
283
+ var modal = this,
284
+ $select = modal.$el.find('#qligg_modal').find('form').find('select[name=username]');
285
+ $select.trigger('change');
286
+ },
287
+ // change: function (e) {
288
+ // e.preventDefault();
289
+ // this.updateModel(e);
290
+ // },
291
+
292
+ });
293
+
294
+ var FeedViewTabs = Backbone.View.extend({
295
+ templates: {},
296
+ initialize: function () {
297
+ this.templates.window = wp.template('qligg-modal-tabs');
298
+ },
299
+ render: function () {
300
+ this.model.attributes.panel = 'tab_panel_feed';
301
+ this.$el.html(this.templates.window(this.model.attributes));
302
  }
303
  });
304
 
305
+ var FeedViewPanels = Backbone.View.extend({
306
+ templates: {},
307
+ initialize: function () {
308
+ this.templates.window = wp.template('qligg-modal-panels');
309
+
310
+ },
311
+ render: function () {
312
+ this.$el.html(this.templates.window(this.model.attributes));
313
+ this.$el.trigger('qligg-enhanced-color');
 
 
314
  }
315
  });
316
 
319
  $('.color-picker').filter(':not(.enhanced)').each(function () {
320
 
321
  if ($(this).is('[readonly]')) {
322
+ $(this).parent('.form-field').addClass('disabled-field');
323
  }
324
 
325
  $(this).wpColorPicker({
328
  $(event.target).trigger('qligg.color.change');
329
  },
330
  clear: function (event, ui) {
331
+ // $(event.target).trigger('change');
332
  },
333
  hide: function (event, ui) {
334
  aler('!!!!');
335
+ // $(event.target).trigger('change');
336
  }
337
  });
338
  });
372
  }
373
 
374
  var $button = $(e.target),
375
+ $spinner = $button.parent().find('.spinner'),
376
+ feed_id = $button.closest('[data-feed_id]').data('feed_id');
377
 
378
  $.ajax({
379
  url: ajaxurl,
418
  }
419
 
420
  var $button = $(e.target),
421
+ $spinner = $button.parent().find('.spinner'),
422
+ feed_id = $button.closest('[data-feed_id]').data('feed_id');
423
 
424
  $.ajax({
425
  url: ajaxurl,
452
  });
453
  });
454
 
455
+ // Upload image
456
+
457
+ $(document).on('click', '.upload_image_button', function (e) {
458
+ e.preventDefault();
459
+
460
+ var send_attachment_bkp = wp.media.editor.send.attachment,
461
+ button = $(this);
462
+
463
+ wp.media.editor.send.attachment = function (props, attachment) {
464
+ $(button).parent().prev().attr('src', attachment.url);
465
+ $(button).prev().val(attachment.url).trigger('change');
466
+ wp.media.editor.send.attachment = send_attachment_bkp;
467
+ }
468
+
469
+ wp.media.editor.open(button);
470
+
471
+ return false;
472
+ });
473
+
474
+ $(document).on('click', '.remove_image_button', function (e) {
475
+ e.preventDefault();
476
+
477
+ var src = $(this).parent().prev().attr('data-src');
478
+
479
+ $(this).parent().prev().attr('src', src);
480
+
481
+ $(this).prev().prev().val('').trigger('change');
482
+
483
+ return false;
484
+ });
485
+
486
  // Copy shortcode
487
  // ---------------------------------------------------------------------------
488
 
assets/backend/js/qligg-admin-feed.min.js CHANGED
@@ -1,2 +1 @@
1
-
2
- (function(f){var l=0,a;var e=function(m){return m.is(".processing")||m.parents(".processing").length};var d=function(){f("#qligg_modal").addClass("processing")};var j=function(){f("#qligg_modal").removeClass("processing")};_.mixin({escapeHtml:function(m){return m.replace("&amp;",/&/g).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&#039;/g,"'")},getFormData:function(m){return m.serializeJSON({checkboxUncheckedValue:"false",parseBooleans:true,parseNulls:true})}});var b=Backbone.Model.extend({defaults:qligg_feed.args});var g=Backbone.View.extend({templates:{},initialize:function(){this.templates.window=wp.template("qligg-modal-tabs")},render:function(){this.model.attributes.panel="tab_panel_feed";this.$el.html(this.templates.window(this.model.attributes))}});var i=Backbone.View.extend({templates:{},initialize:function(){this.templates.window=wp.template("qligg-modal-panels")},render:function(){this.$el.html(this.templates.window(this.model.attributes));this.$el.trigger("qligg-enhanced-color")}});var h=Backbone.View.extend({events:{"change input":"enable","change textarea":"enable","change select":"enable","click .media-modal-image":"setLayout","click .media-modal-backdrop":"close","click .media-modal-close":"close","click .media-modal-prev":"edit","click .media-modal-next":"edit","click .media-modal-tab":"tab","change .media-modal-render-tabs":"renderTabs","change .media-modal-render-panels":"renderPanels","submit .media-modal-form":"submit","qligg.color.change input":"enable",},templates:{},initialize:function(){_.bindAll(this,"open","tab","edit","change","load","render","close","submit");this.init();this.open()},init:function(){this.templates.window=wp.template("qligg-modal-main")},assign:function(n,m){n.setElement(this.$(m)).render()},render:function(){var m=this;m.$el.html(m.templates.window(m.model.attributes));this.tabs=new g({model:m.model});this.panels=new i({model:m.model});this.assign(this.tabs,"#qligg-modal-tabs");this.assign(this.panels,"#qligg-modal-panels");_.delay(function(){m.$el.trigger("qligg-enhanced-color")},100)},load:function(){var n=this,m=n.$el.find("#qligg_modal");if(n.model.attributes.id==undefined){n.render();return}f.ajax({url:ajaxurl,data:{action:"qligg_edit_feed",nonce:qligg_feed.nonce.qligg_edit_feed,feed_id:this.model.attributes.id},dataType:"json",type:"POST",beforeSend:function(){},complete:function(){j()},error:function(){alert("Error!")},success:function(o){if(o.success){n.model.set(o.data);n.render()}else{alert(o.data)}}})},edit:function(q){q.preventDefault();var n=this,p=f(q.target),o=parseInt(f("#qligg_feeds_table tr[data-feed_id]").length),m=parseInt(n.model.get("order"));l++;if(a){clearTimeout(a)}a=setTimeout(function(){if(p.hasClass("media-modal-next")){m=Math.min(m+l,o)}else{m=Math.max(m-l,1)}n.model.set({id:parseInt(f("#qligg_feeds_table tr[data-feed_position="+m+"]").data("feed_id"))});l=0;n.load()},300)},open:function(n){var m=this;f("body").addClass("modal-open").append(this.$el);if(m.model.attributes.id==undefined){_.delay(function(){j();m.setUsername()},100);return}this.load()},setLayout:function(m){m.preventDefault();m.stopPropagation();f(m.target).find("input[type=radio]").prop("checked",true);f(m.target).siblings().find("input[type=radio]").prop("checked",false);this.updateModel(m);this.renderPanels(m);this.renderTabs(m);this.enable(m)},setUsername:function(o){var n=this,m=n.$el.find("#qligg_modal").find("form").find("select[name=username]");m.trigger("change")},updateModel:function(p){p.preventDefault();var o=this,m=o.$el.find("#qligg_modal").find("form");var n=_.getFormData(m);this.model.set(n)},tab:function(r){r.preventDefault();var p=this,o=p.$el.find("#qligg_modal"),q=f(r.currentTarget),m=o.find("ul.qligg-tabs"),n=q.find("a").attr("href").replace("#","");m.find(".active").removeClass("active");q.addClass("active");this.model.attributes.panel=n;this.model.changed.panel=n;this.renderPanels(r)},renderTabs:function(m){this.renderPanels(m);this.tabs.render()},renderPanels:function(m){this.updateModel(m);this.panels.render()},change:function(m){m.preventDefault();this.updateModel(m)},reload:function(m){if(this.$el.find("#qligg_modal").hasClass("reload")){location.reload();return}this.remove();return},close:function(m){m.preventDefault();this.undelegateEvents();f(document).off("focusin");f("body").removeClass("modal-open");this.$el.find("#qligg_modal").addClass("reload");this.reload(m);return},enable:function(m){f(".media-modal-submit").removeProp("disabled");this.updateModel(m)},submit:function(q){q.preventDefault();var p=this,n=p.$el.find("#qligg_modal"),o=n.find(".settings-save-status .spinner"),m=n.find(".settings-save-status .saved");f.ajax({url:ajaxurl,data:{action:"qligg_save_feed",nonce:qligg_feed.nonce.qligg_save_feed,feed:JSON.stringify(p.model.attributes)},dataType:"json",type:"POST",beforeSend:function(){f(".media-modal-submit").prop("disabled",true);o.addClass("is-active")},complete:function(){m.addClass("is-active");o.removeClass("is-active");_.delay(function(){m.removeClass("is-active")},1000)},error:function(r){alert("Error!")},success:function(r){console.log(r);if(r.success){if(p.model.attributes.id==undefined){n.addClass("reload");p.reload(q);p.close(q)}}else{alert(r.data)}}});return false}});var c=Backbone.View.extend({initialize:function(p){var o=f(p.target),n=o.closest("[data-feed_position]").data("feed_id");var m=new b();m.set({id:n});new h({model:m}).render()}});f(document).on("qligg-enhanced-color",function(m){f(".color-picker").filter(":not(.enhanced)").each(function(){if(f(this).is("[readonly]")){f(this).parent(".form-field").addClass("disabled-color-picker")}f(this).wpColorPicker({change:function(n,o){console.log("wpColorPicker");f(n.target).trigger("qligg.color.change")},clear:function(n,o){},hide:function(n,o){aler("!!!!")}})})});f("#qligg-add-feed").on("click",function(m){m.preventDefault();new c(m)});var k=false;f(".qligg_edit_feed").on("click",function(m){m.preventDefault();if(!k){new c(m);k=true}});f(".qligg_delete_feed").on("click",function(p){p.preventDefault();var q=confirm(qligg_feed.message.confirm_delete);if(!q){return false}var o=f(p.target),n=o.parent().find(".spinner"),m=o.closest("[data-feed_id]").data("feed_id");f.ajax({url:ajaxurl,data:{action:"qligg_delete_feed",nonce:qligg_feed.nonce.qligg_delete_feed,feed_id:m},dataType:"json",type:"POST",beforeSend:function(){n.addClass("is-active")},complete:function(){n.removeClass("is-active")},error:function(r){},success:function(r){if(r.data){console.log(r.data);location.reload()}else{alert(r.data)}}})});f(".qligg_clear_cache").on("click",function(p){p.preventDefault();var q=confirm(qligg_feed.message.confirm_clear_cache);if(!q){return false}var o=f(p.target),n=o.parent().find(".spinner"),m=o.closest("[data-feed_id]").data("feed_id");f.ajax({url:ajaxurl,type:"post",data:{action:"qligg_clear_cache",feed_id:m,nonce:qligg_feed.nonce.qligg_clear_cache,},beforeSend:function(){n.addClass("is-active")},success:function(r){if(r.success){setTimeout(function(){n.removeClass("is-active")},300)}else{alert(r.data)}},complete:function(){setTimeout(function(){n.removeClass("is-active")},600)},error:function(r,s){console.log(s)},})});f(document).on("click","[data-qligg-copy-feed-shortcode]",function(m){m.preventDefault();f(f(this).data("qligg-copy-feed-shortcode")).select();document.execCommand("copy")})})(jQuery);
1
+ !function($){var count=0,timer,is_blocked=function($node){return $node.is(".processing")||$node.parents(".processing").length},block=function(){$("#qligg_modal").addClass("processing")},unblock=function(){$("#qligg_modal").removeClass("processing")};_.mixin({escapeHtml:function(attribute){return attribute.replace("&amp;",/&/g).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&#039;/g,"'")},getFormData:function($form){return $form.serializeJSON({checkboxUncheckedValue:"false",parseBooleans:!0,parseNulls:!0})}});var FeedModel=Backbone.Model.extend({defaults:qligg_feed.args}),FeedModal=Backbone.View.extend({initialize:function(e){var $button,feed_id=$(e.target).closest("[data-feed_position]").data("feed_id"),model=new FeedModel;model.set({id:feed_id}),new FeedView({model:model}).render()}}),FeedView=Backbone.View.extend({events:{"change input":"enableSave","change textarea":"enableSave","change select":"enableSave","click .media-modal-image":"setLayout","click .media-modal-backdrop":"close","click .media-modal-close":"close","click .media-modal-prev":"edit","click .media-modal-next":"edit","click .media-modal-tab":"tab","change .media-modal-render-tabs":"renderTabs","change .media-modal-render-panels":"renderPanels","submit .media-modal-form":"submit","qligg.color.change input":"enableSave"},templates:{},initialize:function(){_.bindAll(this,"open","tab","edit","load","render","close","submit"),this.init(),this.open()},init:function(){this.templates.window=wp.template("qligg-modal-main")},assign:function(view,selector){view.setElement(this.$(selector)).render()},updateModel:function(e){e.preventDefault();var modal=this,$form=this.$el.find("#qligg_modal").find("form"),model=_.getFormData($form);this.model.set(model)},reload:function(e){this.$el.find("#qligg_modal").hasClass("reload")?location.reload():this.remove()},close:function(e){e.preventDefault(),this.undelegateEvents(),$(document).off("focusin"),$("body").removeClass("modal-open"),this.$el.find("#qligg_modal").addClass("reload"),this.reload(e)},enableSave:function(e){$(".media-modal-submit").removeProp("disabled"),this.updateModel(e)},disableSave:function(e){$(".media-modal-submit").prop("disabled",!0)},tab:function(e){e.preventDefault();var modal=this,$modal=this.$el.find("#qligg_modal"),$tab=$(e.currentTarget),$tabs=$modal.find("ul.qligg-tabs"),panel=$tab.find("a").attr("href").replace("#","");$tabs.find(".active").removeClass("active"),$tab.addClass("active"),this.model.attributes.panel=panel,this.model.changed.panel=panel,this.renderPanels(e)},renderTabs:function(e){this.renderPanels(e),this.tabs.render()},renderPanels:function(e){this.updateModel(e),this.panels.render()},render:function(){var modal=this;modal.$el.html(modal.templates.window(modal.model.attributes)),this.tabs=new FeedViewTabs({model:modal.model}),this.panels=new FeedViewPanels({model:modal.model}),this.assign(this.tabs,"#qligg-modal-tabs"),this.assign(this.panels,"#qligg-modal-panels"),_.delay((function(){modal.$el.trigger("qligg-enhanced-color")}),100)},open:function(e){var modal=this;$("body").addClass("modal-open").append(this.$el),null!=modal.model.attributes.id?this.load():_.delay((function(){unblock(),modal.setUsername()}),100)},load:function(){var modal=this;null!=modal.model.attributes.id?$.ajax({url:ajaxurl,data:{action:"qligg_edit_feed",nonce:qligg_feed.nonce.qligg_edit_feed,feed_id:this.model.attributes.id},dataType:"json",type:"POST",complete:function(){unblock()},error:function(){alert("Error!")},success:function(response){response.success?(modal.model.set(response.data),modal.render()):alert(response.data)}}):modal.render()},edit:function(e){e.preventDefault();var modal=this,$button=$(e.target),feed_count=parseInt($("#qligg_feeds_table tr[data-feed_id]").length),feed_position=parseInt($("#qligg_feeds_table tr[data-feed_id="+modal.model.get("id")+"]").data("feed_position"));console.log("order",feed_position),count++,timer&&clearTimeout(timer),timer=setTimeout((function(){feed_position=$button.hasClass("media-modal-next")?Math.min(feed_position+count,feed_count):Math.max(feed_position-count,1),console.log($("#qligg_feeds_table tr[data-feed_position="+feed_position+"]").data("feed_id")),modal.model.set({id:parseInt($("#qligg_feeds_table tr[data-feed_position="+feed_position+"]").data("feed_id"))}),count=0,modal.load()}),300)},submit:function(e){e.preventDefault();var modal=this,$modal=modal.$el.find("#qligg_modal"),$spinner=$modal.find(".settings-save-status .spinner"),$saved=$modal.find(".settings-save-status .saved");return $.ajax({url:ajaxurl,data:{action:"qligg_save_feed",nonce:qligg_feed.nonce.qligg_save_feed,feed:JSON.stringify(modal.model.attributes)},dataType:"json",type:"POST",beforeSend:function(){$(".media-modal-submit").prop("disabled",!0),$spinner.addClass("is-active")},complete:function(){$saved.addClass("is-active"),$spinner.removeClass("is-active"),_.delay((function(){$saved.removeClass("is-active")}),1e3)},error:function(response){alert("Error!")},success:function(response){console.log(response),response.success?null==modal.model.attributes.id&&($modal.addClass("reload"),modal.reload(e),modal.close(e)):alert(response.data)}}),!1},setLayout:function(e){e.preventDefault(),e.stopPropagation(),$(e.target).find("input[type=radio]").prop("checked",!0),$(e.target).siblings().find("input[type=radio]").prop("checked",!1),this.updateModel(e),this.renderPanels(e),this.renderTabs(e),this.enableSave(e)},setUsername:function(e){var modal=this,$select;this.$el.find("#qligg_modal").find("form").find("select[name=username]").trigger("change")}}),FeedViewTabs=Backbone.View.extend({templates:{},initialize:function(){this.templates.window=wp.template("qligg-modal-tabs")},render:function(){this.model.attributes.panel="tab_panel_feed",this.$el.html(this.templates.window(this.model.attributes))}}),FeedViewPanels=Backbone.View.extend({templates:{},initialize:function(){this.templates.window=wp.template("qligg-modal-panels")},render:function(){this.$el.html(this.templates.window(this.model.attributes)),this.$el.trigger("qligg-enhanced-color")}});$(document).on("qligg-enhanced-color",(function(e){$(".color-picker").filter(":not(.enhanced)").each((function(){$(this).is("[readonly]")&&$(this).parent(".form-field").addClass("disabled-field"),$(this).wpColorPicker({change:function(event,ui){console.log("wpColorPicker"),$(event.target).trigger("qligg.color.change")},clear:function(event,ui){},hide:function(event,ui){aler("!!!!")}})}))})),$("#qligg-add-feed").on("click",(function(e){e.preventDefault(),new FeedModal(e)}));var exist_modal=!1;$(".qligg_edit_feed").on("click",(function(e){e.preventDefault(),exist_modal||(new FeedModal(e),exist_modal=!0)})),$(".qligg_delete_feed").on("click",(function(e){var c;if(e.preventDefault(),!confirm(qligg_feed.message.confirm_delete))return!1;var $button=$(e.target),$spinner=$button.parent().find(".spinner"),feed_id=$button.closest("[data-feed_id]").data("feed_id");$.ajax({url:ajaxurl,data:{action:"qligg_delete_feed",nonce:qligg_feed.nonce.qligg_delete_feed,feed_id:feed_id},dataType:"json",type:"POST",beforeSend:function(){$spinner.addClass("is-active")},complete:function(){$spinner.removeClass("is-active")},error:function(response){},success:function(response){response.data?(console.log(response.data),location.reload()):alert(response.data)}})})),$(".qligg_clear_cache").on("click",(function(e){var c;if(e.preventDefault(),!confirm(qligg_feed.message.confirm_clear_cache))return!1;var $button=$(e.target),$spinner=$button.parent().find(".spinner"),feed_id=$button.closest("[data-feed_id]").data("feed_id");$.ajax({url:ajaxurl,type:"post",data:{action:"qligg_clear_cache",feed_id:feed_id,nonce:qligg_feed.nonce.qligg_clear_cache},beforeSend:function(){$spinner.addClass("is-active")},success:function(response){response.success?setTimeout((function(){$spinner.removeClass("is-active")}),300):alert(response.data)},complete:function(){setTimeout((function(){$spinner.removeClass("is-active")}),600)},error:function(jqXHR,textStatus){console.log(textStatus)}})})),$(document).on("click",".upload_image_button",(function(e){e.preventDefault();var send_attachment_bkp=wp.media.editor.send.attachment,button=$(this);return wp.media.editor.send.attachment=function(props,attachment){$(button).parent().prev().attr("src",attachment.url),$(button).prev().val(attachment.url).trigger("change"),wp.media.editor.send.attachment=send_attachment_bkp},wp.media.editor.open(button),!1})),$(document).on("click",".remove_image_button",(function(e){e.preventDefault();var src=$(this).parent().prev().attr("data-src");return $(this).parent().prev().attr("src",src),$(this).prev().prev().val("").trigger("change"),!1})),$(document).on("click","[data-qligg-copy-feed-shortcode]",(function(e){e.preventDefault(),$($(this).data("qligg-copy-feed-shortcode")).select(),document.execCommand("copy")}))}(jQuery);
 
assets/backend/js/qligg-admin-settings.min.js CHANGED
@@ -1,2 +1 @@
1
-
2
- (function(c){_.mixin({escapeHtml:function(e){return e.replace("&amp;",/&/g).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&#039;/g,"'")},getFormData:function(e){return e.serializeJSON()}});function b(f){if(f){if(!c("#qligg-save-settings .insta-gallery-spinner img").length){var e='<img src="'+f+'" class="ig-spin" />';c("#qligg-save-settings .insta-gallery-spinner").append(e)}else{c("#qligg-save-settings .insta-gallery-spinner img").attr("src",f)}c("#qligg-save-settings .insta-gallery-spinner .ig-spin").hide();c("#qligg-save-settings .insta-gallery-spinner img").show()}else{c("#qligg-save-settings .insta-gallery-spinner .ig-spin").show();c("#qligg-save-settings .insta-gallery-spinner img").remove()}}var d=c("input[name=insta_spinner_image_id]"),a=c("#ig-spinner-reset");c("#qligg-save-settings").on("submit",function(h){h.preventDefault();var f=c(this),g=f.find(".spinner");c.ajax({url:ajaxurl,type:"post",dataType:"JSON",data:{action:"qligg_save_settings",nonce:qligg_settings.nonce.qligg_save_settings,settings_data:f.serialize(),},beforeSend:function(){g.addClass("is-active")},success:function(e){},complete:function(){g.removeClass("is-active")},error:function(e,i){console.log(i)}})});a.click(function(){d.val("");b();c(this).hide()});if(d.val()==""){a.hide()}if(d.data("misrc")!=""){b(d.data("misrc"))}c("#ig-spinner-upload").click(function(g){g.preventDefault();var f;if(f){f.open()}f=wp.media({title:"Select Media",multiple:false,library:{type:"image",}});f.on("close",function(){var k=f.state().get("selection");if(k.length){var e=new Array();var h=0,l;k.each(function(i){e[h]=i.id;l=i.attributes.url;h++});var j=e.join(",");d.val(j);b(l)}if(d.val()==""){a.hide()}else{a.show()}});f.on("open",function(){var h=f.state().get("selection");var e=d.val().split(",");e.forEach(function(i){attachment=wp.media.attachment(i);attachment.fetch();h.add(attachment?[attachment]:[])})});f.open()})})(jQuery);
1
+ !function($){function ig_change_spinner(link){if(link){if($("#qligg-save-settings .insta-gallery-spinner img").length)$("#qligg-save-settings .insta-gallery-spinner img").attr("src",link);else{var img='<img src="'+link+'" class="ig-spin" />';$("#qligg-save-settings .insta-gallery-spinner").append(img)}$("#qligg-save-settings .insta-gallery-spinner .ig-spin").hide(),$("#qligg-save-settings .insta-gallery-spinner img").show()}else $("#qligg-save-settings .insta-gallery-spinner .ig-spin").show(),$("#qligg-save-settings .insta-gallery-spinner img").remove()}_.mixin({escapeHtml:function(attribute){return attribute.replace("&amp;",/&/g).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&#039;/g,"'")},getFormData:function($form){return $form.serializeJSON()}});var $igs_image_id=$("input[name=insta_spinner_image_id]"),$igs_reset=$("#ig-spinner-reset");$("#qligg-save-settings").on("submit",(function(e){e.preventDefault();var $form=$(this),$spinner=$form.find(".spinner");$.ajax({url:ajaxurl,type:"post",dataType:"JSON",data:{action:"qligg_save_settings",nonce:qligg_settings.nonce.qligg_save_settings,settings_data:$form.serialize()},beforeSend:function(){$spinner.addClass("is-active")},success:function(response){},complete:function(){$spinner.removeClass("is-active")},error:function(jqXHR,textStatus){console.log(textStatus)}})})),$igs_reset.click((function(){$igs_image_id.val(""),ig_change_spinner(),$(this).hide()})),""==$igs_image_id.val()&&$igs_reset.hide(),""!=$igs_image_id.data("misrc")&&ig_change_spinner($igs_image_id.data("misrc")),$("#ig-spinner-upload").click((function(e){var image_frame;e.preventDefault(),image_frame&&image_frame.open(),(image_frame=wp.media({title:"Select Media",multiple:!1,library:{type:"image"}})).on("close",(function(){var selection=image_frame.state().get("selection");if(selection.length){var gallery_ids=new Array,i=0,attachment_url;selection.each((function(attachment){gallery_ids[i]=attachment.id,attachment_url=attachment.attributes.url,i++}));var ids=gallery_ids.join(",");$igs_image_id.val(ids),ig_change_spinner(attachment_url)}""==$igs_image_id.val()?$igs_reset.hide():$igs_reset.show()})),image_frame.on("open",(function(){var selection=image_frame.state().get("selection"),ids;$igs_image_id.val().split(",").forEach((function(id){attachment=wp.media.attachment(id),attachment.fetch(),selection.add(attachment?[attachment]:[])}))})),image_frame.open()}))}(jQuery);
 
assets/frontend/css/qligg.css CHANGED
@@ -243,14 +243,14 @@
243
  }
244
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon,
245
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image {
246
- transition: all .3s;
247
  }
248
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon {
249
  position: absolute;
250
  z-index: 1;
251
  font-size: 16px;
252
  color: #fff;
253
- opacity: .66;
254
  top: 0;
255
  margin: 10px;
256
  right: 0;
@@ -277,9 +277,9 @@
277
  line-height: 1.2;
278
  padding: 0 1em;
279
  }
280
- .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info,
281
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-caption {
282
- display: block;
283
  clear: both;
284
  margin: 0;
285
  padding: 1em 0;
@@ -289,21 +289,23 @@
289
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-likes i {
290
  font-weight: bold;
291
  }
292
- .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info {
293
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
294
  font-size: 0.9em;
 
295
  }
296
- .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info .ig-card-date {
297
- margin: 0;
298
  text-transform: uppercase;
299
  opacity: 0.6;
300
- float: right;
 
301
  }
302
- .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info .ig-card-date,
303
- .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info .ig-card-comments,
304
- .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info .ig-card-likes {
305
  display: inline-block;
306
- margin: 0 5px 0px 0;
 
307
  }
308
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap {
309
  display: block;
@@ -341,7 +343,7 @@
341
  z-index: 9;
342
  width: 100%;
343
  color: #fff;
344
- transition: all .5s ease;
345
  opacity: 0;
346
  line-height: 20px;
347
  font-size: 18px;
@@ -357,6 +359,7 @@
357
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask-content > span > i {
358
  font-size: 12px;
359
  margin-right: 3px;
 
360
  }
361
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-icon.qligg-icon-instagram {
362
  opacity: 0.8;
@@ -437,7 +440,7 @@
437
  margin: 0 3px;
438
  font-size: 14px;
439
  padding: 12px 24px;
440
- transition: all .3s;
441
  text-decoration: none;
442
  border-radius: 2px;
443
  background-color: #c32a67;
@@ -493,7 +496,7 @@
493
  }
494
  .insta-gallery-feed[data-feed_layout=carousel] .swiper-button-next,
495
  .insta-gallery-feed[data-feed_layout=carousel] .swiper-button-prev {
496
- transition: all .3s;
497
  background: none;
498
  top: 0;
499
  bottom: 0;
@@ -783,6 +786,17 @@
783
  text-decoration: none;
784
  font-size: 13px;
785
  }
 
 
 
 
 
 
 
 
 
 
 
786
  .instagal-ie-8 .insta-gallery-spinner {
787
  display: none;
788
  }
243
  }
244
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon,
245
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image {
246
+ transition: all 0.3s;
247
  }
248
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon {
249
  position: absolute;
250
  z-index: 1;
251
  font-size: 16px;
252
  color: #fff;
253
+ opacity: 0.66;
254
  top: 0;
255
  margin: 10px;
256
  right: 0;
277
  line-height: 1.2;
278
  padding: 0 1em;
279
  }
280
+ .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info,
281
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-caption {
282
+ display: flex;
283
  clear: both;
284
  margin: 0;
285
  padding: 1em 0;
289
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-likes i {
290
  font-weight: bold;
291
  }
292
+ .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info {
293
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
294
  font-size: 0.9em;
295
+ /*.insta-gallery-card-date,*/
296
  }
297
+ .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info .insta-gallery-card-date {
298
+ display: inline-block;
299
  text-transform: uppercase;
300
  opacity: 0.6;
301
+ /*float: right;*/
302
+ /*margin-left: auto;*/
303
  }
304
+ .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info .ig-card-comments,
305
+ .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info .ig-card-likes {
 
306
  display: inline-block;
307
+ margin-left: auto;
308
+ /*margin-right: auto;*/
309
  }
310
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap {
311
  display: block;
343
  z-index: 9;
344
  width: 100%;
345
  color: #fff;
346
+ transition: all 0.5s ease;
347
  opacity: 0;
348
  line-height: 20px;
349
  font-size: 18px;
359
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask-content > span > i {
360
  font-size: 12px;
361
  margin-right: 3px;
362
+ font-weight: bold;
363
  }
364
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-icon.qligg-icon-instagram {
365
  opacity: 0.8;
440
  margin: 0 3px;
441
  font-size: 14px;
442
  padding: 12px 24px;
443
+ transition: all 0.3s;
444
  text-decoration: none;
445
  border-radius: 2px;
446
  background-color: #c32a67;
496
  }
497
  .insta-gallery-feed[data-feed_layout=carousel] .swiper-button-next,
498
  .insta-gallery-feed[data-feed_layout=carousel] .swiper-button-prev {
499
+ transition: all 0.3s;
500
  background: none;
501
  top: 0;
502
  bottom: 0;
786
  text-decoration: none;
787
  font-size: 13px;
788
  }
789
+ .insta-gallery-feed .swiper-button-next:after,
790
+ .insta-gallery-feed .swiper-button-next:before,
791
+ .insta-gallery-feed .swiper-container-rtl .swiper-button-prev:after,
792
+ .insta-gallery-feed .swiper-container-rtl .swiper-button-prev:before,
793
+ .insta-gallery-feed .swiper-button-prev:after,
794
+ .insta-gallery-feed .swiper-button-prev:before,
795
+ .insta-gallery-feed .swiper-container-rtl .swiper-button-next:after,
796
+ .insta-gallery-feed .swiper-container-rtl .swiper-button-next:before {
797
+ display: none;
798
+ content: '';
799
+ }
800
  .instagal-ie-8 .insta-gallery-spinner {
801
  display: none;
802
  }
assets/frontend/css/qligg.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../less/qligg.less"],"names":[],"mappings":"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","file":"qligg.css"}
1
+ {"version":3,"sources":["../../less/qligg.less"],"names":[],"mappings":"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","file":"qligg.css"}
assets/frontend/css/qligg.min.css CHANGED
@@ -1,2 +1 @@
1
-
2
- @-moz-keyframes "insta-gallery-spin"{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes "insta-gallery-spin"{100%{-webkit-transform:rotate(360deg)}}@keyframes "insta-gallery-spin"{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@font-face{font-family:'qligg';src:url(data:font/opentype;charset=utf-8;base64,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);src:url(data:font/opentype;charset=utf-8;base64,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) format('embedded-opentype'),url(data:font/opentype;charset=utf-8;base64,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) format('truetype'),url(data:font/opentype;charset=utf-8;base64,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) format('woff'),url(data:font/opentype;charset=utf-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgo8ZGVmcz4KPGZvbnQgaWQ9InFsaWdnIiBob3Jpei1hZHYteD0iMTAyNCI+Cjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMDI0IiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTY0IiAvPgo8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMTAyNCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwOyIgaG9yaXotYWR2LXg9IjUxMiIgZD0iIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwMDsiIGdseXBoLW5hbWU9InVwbG9hZCIgZD0iTTEyOCA0NDh2LTM0MS4zMzNjMC0xNy4yOCAzLjQ1Ni0zMy44MzUgOS43MjgtNDguOTgxIDYuNDg1LTE1LjcwMSAxNi0yOS43ODEgMjcuNzc2LTQxLjU1N3MyNS44NTYtMjEuMjkxIDQxLjU1Ny0yNy43NzZjMTUuMTA0LTYuMjI5IDMxLjY1OS05LjY4NSA0OC45MzktOS42ODVoNTEyYzE3LjI4IDAgMzMuODM1IDMuNDU2IDQ4Ljk4MSA5LjcyOCAxNS43MDEgNi40ODUgMjkuNzgxIDE2IDQxLjU1NyAyNy43NzZzMjEuMjkxIDI1Ljg1NiAyNy43NzYgNDEuNTU3YzYuMjI5IDE1LjEwNCA5LjY4NSAzMS42NTkgOS42ODUgNDguOTM5djM0MS4zMzNjMCAyMy41NTItMTkuMTE1IDQyLjY2Ny00Mi42NjcgNDIuNjY3cy00Mi42NjctMTkuMTE1LTQyLjY2Ny00Mi42Njd2LTM0MS4zMzNjMC01Ljg0NS0xLjE1Mi0xMS4zNDktMy4yLTE2LjI5OS0yLjEzMy01LjIwNS01LjMzMy05Ljg5OS05LjMwMS0xMy44NjdzLTguNjYxLTcuMTI1LTEzLjg2Ny05LjMwMWMtNC45NDktMi4wNDgtMTAuNDUzLTMuMi0xNi4yOTktMy4yaC01MTJjLTUuODQ1IDAtMTEuMzQ5IDEuMTUyLTE2LjI5OSAzLjItNS4yMDUgMi4xMzMtOS44OTkgNS4zMzMtMTMuODY3IDkuMzAxcy03LjEyNSA4LjY2MS05LjMwMSAxMy44NjdjLTIuMDQ4IDQuOTQ5LTMuMiAxMC40NTMtMy4yIDE2LjI5OXYzNDEuMzMzYzAgMjMuNTUyLTE5LjExNSA0Mi42NjctNDIuNjY3IDQyLjY2N3MtNDIuNjY3LTE5LjExNS00Mi42NjctNDIuNjY3ek00NjkuMzMzIDc3MS42Njl2LTQ1MS42NjljMC0yMy41NTIgMTkuMTE1LTQyLjY2NyA0Mi42NjctNDIuNjY3czQyLjY2NyAxOS4xMTUgNDIuNjY3IDQyLjY2N3Y0NTEuNjY5bDk3LjgzNS05Ny44MzVjMTYuNjgzLTE2LjY4MyA0My42OTEtMTYuNjgzIDYwLjMzMSAwczE2LjY4MyA0My42OTEgMCA2MC4zMzFsLTE3MC42NjcgMTcwLjY2N2MtMC4wNDMgMC4wNDMtMC4xMjggMC4wODUtMC4xNzEgMC4xNzEtNC4wNTMgNC4wMTEtOC43MDQgNy4wNDAtMTMuNjUzIDkuMDg4LTEwLjQ1MyA0LjMwOS0yMi4yMjkgNC4zMDktMzIuNjgzIDAtNC45NDktMi4wNDgtOS42NDMtNS4wNzctMTMuNjUzLTkuMDg4LTAuMDQzLTAuMDQzLTAuMTI4LTAuMDg1LTAuMTcxLTAuMTcxbC0xNzAuNjY3LTE3MC42NjdjLTE2LjY4My0xNi42ODMtMTYuNjgzLTQzLjY5MSAwLTYwLjMzMXM0My42OTEtMTYuNjgzIDYwLjMzMSAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDE7IiBnbHlwaC1uYW1lPSJ2aWRlbyIgaG9yaXotYWR2LXg9Ijg5NiIgZD0iTTg0OC44IDUzMC42bC03MDQgNDE2LjJjLTU3LjIgMzMuOC0xNDQuOCAxLTE0NC44LTgyLjZ2LTgzMi4yYzAtNzUgODEuNC0xMjAuMiAxNDQuOC04Mi42bDcwNCA0MTZjNjIuOCAzNyA2MyAxMjguMiAwIDE2NS4yeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDI7IiBnbHlwaC1uYW1lPSJzaGFyZS1vIiBkPSJNMTAwNC44IDUyNC44bC00NDggMzU4LjRjLTYuNCA2LjQtMTkuMiA2LjQtMjUuNiA2LjQtMTIuOC02LjQtMTkuMi0xOS4yLTE5LjItMzJ2LTE4NS42Yy0yNDMuMi02LjQtMzUyLTk2LTQ0MS42LTI1Ni03MC40LTEyOC03MC40LTI4OC03MC40LTM5Ni44IDAtNi40IDAtMTkuMiAwLTI1LjYgMC0xMi44IDYuNC01MS4yIDQ0LjgtNTEuMnM0NC44IDE5LjIgNTEuMiAzMmMxNjYuNCAyOTQuNCAyMzAuNCAzMDcuMiA0MTYgMzA3LjJ2LTE3OS4yYzAtMTIuOCA2LjQtMjUuNiAxOS4yLTI1LjYgNi40LTYuNCAyNS42LTYuNCAzMiA2LjRsNDQ4IDM2NC44YzE5LjIgMjUuNiAxOS4yIDUxLjItNi40IDc2Ljh6TTU4OC44IDIxNy42djExNS4yYzAgNi40LTYuNCAxOS4yLTYuNCAyNS42LTYuNCAwLTE5LjIgNi40LTI1LjYgNi40LTEyMS42IDAtMTkyIDAtMjgxLjYtMzguNC04My4yLTM4LjQtMTI4LTEwMi40LTE5Mi0yMDQuOCA2LjQgODkuNiAxMi44IDE2Ni40IDY0IDI1NiA3Ni44IDE0Ny4yIDE3Mi44IDIxNy42IDQwOS42IDIxNy42IDE5LjIgMCAzMiAxMi44IDMyIDMydjEzNC40bDMzMi44LTI4MS42LTMzMi44LTI2Mi40eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDM7IiBnbHlwaC1uYW1lPSJjb21tZW50IiBkPSJNNDIuNjY3IDQ1Mi4yNjdjMC0yNTYgMjA0LjgtNDczLjYgNDY5LjMzMy00NzMuNiA4MS4wNjcgMCAxNTcuODY3IDQyLjY2NyAyMjYuMTMzIDc2LjhsMjEzLjMzMy01NS40NjdjNC4yNjcgMCA0LjI2NyAwIDguNTMzIDAgMTcuMDY3IDAgMjUuNiAxMi44IDI1LjYgMjUuNiAwIDQuMjY3IDAgNC4yNjcgMCA4LjUzM2wtNTUuNDY3IDIwOS4wNjdjMzguNCA2OC4yNjcgNTkuNzMzIDEyMy43MzMgNTkuNzMzIDIwNC44LTguNTMzIDI2NC41MzMtMjIxLjg2NyA0NjkuMzMzLTQ3Ny44NjcgNDY5LjMzMy0yNjAuMjY3IDAtNDY5LjMzMy0yMDkuMDY3LTQ2OS4zMzMtNDY1LjA2N3pNMTAyLjQgNDUyLjI2N2MwIDIyMS44NjcgMTgzLjQ2NyA0MDUuMzMzIDQwNS4zMzMgNDA1LjMzMyAyMjYuMTMzIDAgNDA5LjYtMTc5LjIgNDA5LjYtNDA1LjMzMyAwLTcyLjUzMy0yMS4zMzMtMTI4LTU1LjQ2Ny0xODcuNzMzdjBjLTQuMjY3LTQuMjY3LTQuMjY3LTguNTMzLTQuMjY3LTEyLjhzMC00LjI2NyAwLTQuMjY3djBsNDYuOTMzLTE3NC45MzMtMTc0LjkzMyA0Ni45MzNjLTQuMjY3IDAtNC4yNjcgMC04LjUzMyAwcy04LjUzMyAwLTEyLjgtNC4yNjd2MGMtNTkuNzMzLTM0LjEzMy0xMzIuMjY3LTc2LjgtMjA0LjgtNzYuOC0yMTcuNiAwLTQwMS4wNjcgMTg3LjczMy00MDEuMDY3IDQxMy44Njd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNDsiIGdseXBoLW5hbWU9ImhlYXJ0IiBkPSJNNzU1LjIgODk2Yy04NS4zMzMgMC0xNDAuOC0yMS4zMzMtMjA5LjA2Ny04OS42IDAgMC0xNy4wNjctMTcuMDY3LTI5Ljg2Ny0yOS44NjctMTIuOCAxMi44LTI5Ljg2NyAyOS44NjctMjkuODY3IDI5Ljg2Ny02OC4yNjcgNjguMjY3LTEyOCA4OS42LTIxMy4zMzMgODkuNi0xNjIuMTMzIDAtMjczLjA2Ny0xMzIuMjY3LTI3My4wNjctMjkwLjEzMyAwLTE3OS4yIDE0NS4wNjctMzAyLjkzMyAzNjYuOTMzLTQ5MC42NjcgMzguNC0zNC4xMzMgODEuMDY3LTY4LjI2NyAxMjMuNzMzLTEwNi42NjcgNC4yNjctNC4yNjcgMTIuOC04LjUzMyAyMS4zMzMtOC41MzNzMTIuOCA0LjI2NyAyMS4zMzMgOC41MzNjNDYuOTMzIDQyLjY2NyA4OS42IDc2LjggMTMyLjI2NyAxMTUuMiAyMDQuOCAxNzQuOTMzIDM2Mi42NjcgMzAyLjkzMyAzNjIuNjY3IDQ4Ni40LTQuMjY3IDE1My42LTExNS4yIDI4NS44NjctMjczLjA2NyAyODUuODY3ek02MjIuOTMzIDE2Ni40Yy0zNC4xMzMtMjkuODY3LTcyLjUzMy02NC0xMTAuOTMzLTk4LjEzMy0zOC40IDI5Ljg2Ny03Mi41MzMgNTkuNzMzLTEwNi42NjcgODkuNi0yMTMuMzMzIDE3OS4yLTM0NS42IDI5NC40LTM0NS42IDQ0OCAwIDEzMi4yNjcgODkuNiAyMzQuNjY3IDIwOS4wNjcgMjM0LjY2NyA2NCAwIDExMC45MzMtMTIuOCAxNjIuMTMzLTY0IDQyLjY2Ny00Mi42NjcgNTEuMi01MS4yIDUxLjItNTEuMiAxMi44LTE3LjA2NyAxNy4wNjctMjEuMzMzIDI5Ljg2Ny0yNS42IDEyLjggMCAyMS4zMzMgOC41MzMgMjkuODY3IDE3LjA2NyAwIDAgOC41MzMgOC41MzMgNTEuMiA1NS40NjcgNTUuNDY3IDU1LjQ2NyA4OS42IDY0IDE2Mi4xMzMgNjQgMTE5LjQ2NyAwIDIwOS4wNjctMTAyLjQgMjA5LjA2Ny0yMzQuNjY3IDAtMTQ5LjMzMy0xMzYuNTMzLTI2NC41MzMtMzQxLjMzMy00MzUuMnoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA1OyIgZ2x5cGgtbmFtZT0iaW5zdGFncmFtIiBkPSJNNzI5LjYgOTE3LjMzM2gtNDM1LjJjLTEzNi41MzMgMC0yNTEuNzMzLTExNS4yLTI1MS43MzMtMjUxLjczM3YtNDMwLjkzM2MwLTE0MC44IDExNS4yLTI1NiAyNTEuNzMzLTI1Nmg0MzAuOTMzYzE0MC44IDAgMjUxLjczMyAxMTUuMiAyNTEuNzMzIDI1MS43MzN2NDM1LjJjNC4yNjcgMTM2LjUzMy0xMTAuOTMzIDI1MS43MzMtMjQ3LjQ2NyAyNTEuNzMzek05MTcuMzMzIDIzMC40YzAtMTAyLjQtODUuMzMzLTE4Ny43MzMtMTg3LjczMy0xODcuNzMzaC00MzUuMmMtMTAyLjQgMC0xODcuNzMzIDg1LjMzMy0xODcuNzMzIDE4Ny43MzN2NDM1LjJjMCAxMDIuNCA4NS4zMzMgMTg3LjczMyAxODcuNzMzIDE4Ny43MzNoNDM5LjQ2N2MxMDIuNCAwIDE4Ny43MzMtODUuMzMzIDE4Ny43MzMtMTg3LjczM3YtNDM1LjJ6TTcyMS4wNjcgNDgyLjEzM2MtOC41MzMgNDYuOTMzLTI1LjYgODUuMzMzLTU5LjczMyAxMTkuNDY3cy03Mi41MzMgNTEuMi0xMTkuNDY3IDU5LjczM2MtMjEuMzMzIDQuMjY3LTQyLjY2NyA0LjI2Ny01OS43MzMgMC01NS40NjctMTIuOC0xMDIuNC00Mi42NjctMTM2LjUzMy04NS4zMzNzLTQ2LjkzMy0xMDIuNC0zOC40LTE1Ny44NjdjOC41MzMtNTUuNDY3IDM0LjEzMy0xMDIuNCA4MS4wNjctMTM2LjUzMyAzOC40LTI1LjYgODEuMDY3LTQyLjY2NyAxMjMuNzMzLTQyLjY2NyA4LjUzMyAwIDIxLjMzMyAwIDI5Ljg2NyA0LjI2NyA1NS40NjcgOC41MzMgMTA2LjY2NyAzOC40IDEzNi41MzMgODEuMDY3IDM4LjQgNDYuOTMzIDUxLjIgMTAyLjQgNDIuNjY3IDE1Ny44Njd6TTUzNy42IDMwMi45MzNjLTM4LjQtNC4yNjctNzYuOCA0LjI2Ny0xMTAuOTMzIDI1LjYtMjkuODY3IDI1LjYtNTEuMiA1OS43MzMtNTkuNzMzIDk4LjEzMy00LjI2NyAzOC40IDQuMjY3IDc2LjggMjUuNiAxMTAuOTMzIDI1LjYgMjkuODY3IDU5LjczMyA1MS4yIDk4LjEzMyA1OS43MzMgOC41MzMgMCAxMi44IDAgMjEuMzMzIDBzMTIuOCAwIDIxLjMzMyAwYzY0LTguNTMzIDExNS4yLTU5LjczMyAxMjMuNzMzLTEyMy43MzMgMTcuMDY3LTgxLjA2Ny0zOC40LTE1Ny44NjctMTE5LjQ2Ny0xNzAuNjY3ek03ODUuMDY3IDcyMS4wNjdjLTguNTMzIDguNTMzLTE3LjA2NyAxMi44LTI1LjYgMTIuOHMtMjEuMzMzLTQuMjY3LTI1LjYtMTIuOGMtOC41MzMtOC41MzMtMTIuOC0xNy4wNjctMTIuOC0yNS42czQuMjY3LTIxLjMzMyAxMi44LTI1LjZjOC41MzMtOC41MzMgMTcuMDY3LTEyLjggMjUuNi0xMi44czIxLjMzMyA0LjI2NyAyNS42IDEyLjhjOC41MzMgOC41MzMgMTIuOCAxNy4wNjcgMTIuOCAyNS42IDAgMTIuOC00LjI2NyAyMS4zMzMtMTIuOCAyNS42eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDY7IiBnbHlwaC1uYW1lPSJwcmV2IiBkPSJNNzExLjIxOSA4MC45OThjMTMuNzIyLTEzLjkyNiAxMy43MjItMzYuMzAxIDAtNTAuMTI1cy0zNS44OTEtMTMuODc1LTQ5LjYxMyAwbC00MDAuODk2IDQwNC44OWMtMTMuNzIyIDEzLjgyNC0xMy43MjIgMzYuMTk4IDAgNTAuMTI1bDQwMC44OTYgNDA0Ljg5YzEzLjcyMiAxMy44MjQgMzUuODkxIDEzLjgyNCA0OS42MTMgMCAxMy43MjItMTMuODc1IDEzLjcyMi0zNi4zMDEgMC01MC4xMjVsLTM2NS42MTktMzc5Ljg1MyAzNjUuNjE5LTM3OS44MDJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNzsiIGdseXBoLW5hbWU9InByZXYtbyIgZD0iTTYzNy41NDIgNzQxLjU4MWMyMi44MzUtMjIuMzIzIDI0LjYyNy01My40MDIgMC04MC42OTFsLTE5MS44NDYtMjAwLjA5MCAxOTEuODQ2LTIwMC4wOTBjMjQuNjI3LTI3LjI5IDIyLjgzNS01OC40MTkgMC04MC41ODktMjIuNzg0LTIyLjMyMy02MS4yODYtMjAuODktODIuNjg4IDAtMjEuNDAyIDIwLjc4Ny0yMzAuNTAyIDI0MC4zODQtMjMwLjUwMiAyNDAuMzg0LTExLjQxOCAxMS4xMS0xNy4xNTIgMjUuNzAyLTE3LjE1MiA0MC4yOTRzNS43MzQgMjkuMTg0IDE3LjE1MiA0MC4zOTdjMCAwIDIwOS4xMDEgMjE5LjQ5NCAyMzAuNTAyIDI0MC4zODQgMjEuNDAyIDIwLjk0MSA1OS45MDQgMjIuMzIzIDgyLjY4OCAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDg7IiBnbHlwaC1uYW1lPSJuZXh0IiBkPSJNNjc4LjQgNDYwLjhsLTM2NS42MTkgMzc5LjkwNGMtMTMuNzIyIDEzLjgyNC0xMy43MjIgMzYuMTk4IDAgNTAuMTI1IDEzLjcyMiAxMy44MjQgMzUuODkxIDEzLjgyNCA0OS42MTMgMGw0MDAuODk2LTQwNC44OWMxMy43MjItMTMuODc1IDEzLjcyMi0zNi4zMDEgMC01MC4xMjVsLTQwMC44OTYtNDA0Ljg5Yy0xMy43MjItMTMuODc1LTM1Ljg5MS0xMy44MjQtNDkuNjEzIDAtMTMuNzIyIDEzLjc3My0xMy43MjIgMzYuMTk4IDAgNTAuMTI1bDM2NS42MTkgMzc5Ljc1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDk7IiBnbHlwaC1uYW1lPSJuZXh0LW8iIGQ9Ik00NjkuMTQ2IDc0MS41ODFjMjEuNDAyLTIwLjg5IDIzMC41MDItMjQwLjM4NCAyMzAuNTAyLTI0MC4zODQgMTEuNDE4LTExLjIxMyAxNy4xNTItMjUuODA1IDE3LjE1Mi00MC4zOTdzLTUuNzM0LTI5LjE4NC0xNy4xNTItNDAuMjk0YzAgMC0yMDkuMTAxLTIxOS41OTctMjMwLjUwMi0yNDAuMzg0LTIxLjQwMi0yMC44OS01OS45MDQtMjIuMzIzLTgyLjY4OCAwLTIyLjgzNSAyMi4yMjEtMjQuNjI3IDUzLjI5OSAwIDgwLjU4OWwxOTEuODQ2IDIwMC4wOTAtMTkxLjg0NiAyMDAuMDkwYy0yNC42MjcgMjcuMjktMjIuODM1IDU4LjQxOSAwIDgwLjY5MSAyMi43ODQgMjIuMzIzIDYxLjI4NiAyMC45NDEgODIuNjg4IDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYTsiIGdseXBoLW5hbWU9ImhlYXJ0LW8iIGQ9Ik03MzYgODk2Yy03Ni45MjggMC0xMzguNTkyLTI3LjYxNi0xOTIuOTYtODIuMDE2LTAuMDMyLTAuMDMyLTAuMDY0LTAuMDY0LTAuMDk2LTAuMDk2aC0wLjAzMmwtMzAuOTEyLTM4Ljk0NC0zMC45MTIgMzYuNTc2Yy0wLjAzMiAwLjAzMi0wLjA2NCAwLjA2NC0wLjA5NiAwLjA5NmgtMC4wMzJjLTU0LjQgNTQuNDMyLTExNi4wMzIgODQuMzg0LTE5Mi45NiA4NC4zODRzLTE0OS4yNDgtMjkuOTUyLTIwMy42NDgtODQuMzUyYy01NC4zNjgtNTQuNC04NC4zNTItMTI2LjcyLTg0LjM1Mi0yMDMuNjQ4IDAtNzYuODY0IDI5LjkyLTE0OS4xODQgODQuMjU2LTIwMy41NTJsMzgyLjMwNC0zODUuNTA0YzEyLTEyLjEyOCAyOC4zODQtMTguOTQ0IDQ1LjQ0LTE4Ljk0NHMzMy40NCA2LjgxNiA0NS40NCAxOC45NDRsMzgyLjI3MiAzODUuNTA0YzU0LjMzNiA1NC4zNjggODQuMjg4IDEyNi42NTYgODQuMjg4IDIwMy41NTIgMCA3Ni45MjgtMjkuOTg0IDE0OS4yNDgtODQuMzUyIDIwMy42NDgtNTQuNCA1NC40LTEyNi43MiA4NC4zNTItMjAzLjY0OCA4NC4zNTJ2MHoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBiOyIgZ2x5cGgtbmFtZT0iY29tbWVudC1vIiBkPSJNNTEyIDY0Ljk5MmMtMjAuNzY4IDAtNTEuMTY4IDIzLjM2LTcxLjMyOCAyNS41MDQtNTcuNTA0LTQ4LjIyNC0xMTcuNDA4LTEwNi4yNzItMTk4Ljg0OC0xMzYuNDQ4LTM1LjU1Mi0xNS4wNzItNjYuMDgwLTIzLjgwOC03NC4wMTYtMTQuMzA0LTEwLjY1NiAxMi4zODQtMjYuNzUyIDI5LjU2OC0yOS42IDM0LjE3NiAwLjE2IDYuODQ4IDguNDQ4IDEuNDQgMTcuNDcyIDExLjE2OCA0OS4xNTIgMjAuNjcyIDgwLjg5NiA3NC4wMTYgMTAyLjI0IDEzOS4yMzItMTUzLjk1MiA3Ny4xNTItMjU3LjkyIDIyMS44ODgtMjU3LjkyIDM4OC4wOTYgMCAyNDcuMDcyIDIyOS4yNDggNDQ3LjM5MiA1MTIgNDQ3LjM5MnM1MTItMjAwLjI4OCA1MTItNDQ3LjM5Mi0yMjkuMjQ4LTQ0Ny40MjQtNTEyLTQ0Ny40MjR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYzsiIGdseXBoLW5hbWU9ImNsb2NrLW8iIGQ9Ik01MTIgOTQ0Yy0yNzQgMC00OTYtMjIyLTQ5Ni00OTZzMjIyLTQ5NiA0OTYtNDk2IDQ5NiAyMjIgNDk2IDQ5Ni0yMjIgNDk2LTQ5NiA0OTZ6TTUxMiA0OGMtMjIxIDAtNDAwIDE3OS00MDAgNDAwczE3OSA0MDAgNDAwIDQwMCA0MDAtMTc5IDQwMC00MDAtMTc5LTQwMC00MDAtNDAwek02MzUuNiAyNTYuOGwtMTY5LjggMTIzLjRjLTYuMiA0LjYtOS44IDExLjgtOS44IDE5LjR2MzI4LjRjMCAxMy4yIDEwLjggMjQgMjQgMjRoNjRjMTMuMiAwIDI0LTEwLjggMjQtMjR2LTI4My40bDEzMy42LTk3LjJjMTAuOC03LjggMTMtMjIuOCA1LjItMzMuNmwtMzcuNi01MS44Yy03LjgtMTAuNi0yMi44LTEzLTMzLjYtNS4yeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MGQ7IiBnbHlwaC1uYW1lPSJnYWxsZXJ5IiBkPSJNOTI4IDk2MGgtNjQwYy01My4wMjAgMC05Ni00Mi45OC05Ni05NnYtOTZoLTk2Yy01My4wMjAgMC05Ni00Mi45OC05Ni05NnYtNjQwYzAtNTMuMDIwIDQyLjk4LTk2IDk2LTk2aDY0MGM1My4wMjAgMCA5NiA0Mi45OCA5NiA5NnY5Nmg5NmM1My4wMjAgMCA5NiA0Mi45OCA5NiA5NnY2NDBjMCA1My4wMjAtNDIuOTggOTYtOTYgOTZ6TTcyNCAzMmgtNjE2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjAgNjE2YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJ2MGg4NHYtNDQ4YzAtNTMuMDIwIDQyLjk4LTk2IDk2LTk2aDQ0OHYtODRjMC02LjYyNy01LjM3My0xMi0xMi0xMnYwek05MTYgMjI0aC02MTZjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MCA2MTZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMnYwaDYxNmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydjAtNjE2YzAtNi42MjctNS4zNzMtMTItMTItMTJ2MHoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlYTkyOyIgZ2x5cGgtbmFtZT0iaW5zdGFncmFtLW8iIGQ9Ik01MTIgODY3LjhjMTM2LjggMCAxNTMtMC42IDIwNi44LTMgNTAtMi4yIDc3LTEwLjYgOTUtMTcuNiAyMy44LTkuMiA0MS0yMC40IDU4LjgtMzguMiAxOC0xOCAyOS0zNSAzOC40LTU4LjggNy0xOCAxNS40LTQ1LjIgMTcuNi05NSAyLjQtNTQgMy03MC4yIDMtMjA2LjhzLTAuNi0xNTMtMy0yMDYuOGMtMi4yLTUwLTEwLjYtNzctMTcuNi05NS05LjItMjMuOC0yMC40LTQxLTM4LjItNTguOC0xOC0xOC0zNS0yOS01OC44LTM4LjQtMTgtNy00NS4yLTE1LjQtOTUtMTcuNi01NC0yLjQtNzAuMi0zLTIwNi44LTNzLTE1MyAwLjYtMjA2LjggM2MtNTAgMi4yLTc3IDEwLjYtOTUgMTcuNi0yMy44IDkuMi00MSAyMC40LTU4LjggMzguMi0xOCAxOC0yOSAzNS0zOC40IDU4LjgtNyAxOC0xNS40IDQ1LjItMTcuNiA5NS0yLjQgNTQtMyA3MC4yLTMgMjA2LjhzMC42IDE1MyAzIDIwNi44YzIuMiA1MCAxMC42IDc3IDE3LjYgOTUgOS4yIDIzLjggMjAuNCA0MSAzOC4yIDU4LjggMTggMTggMzUgMjkgNTguOCAzOC40IDE4IDcgNDUuMiAxNS40IDk1IDE3LjYgNTMuOCAyLjQgNzAgMyAyMDYuOCAzek01MTIgOTYwYy0xMzkgMC0xNTYuNC0wLjYtMjExLTMtNTQuNC0yLjQtOTEuOC0xMS4yLTEyNC4yLTIzLjgtMzMuOC0xMy4yLTYyLjQtMzAuNi05MC44LTU5LjItMjguNi0yOC40LTQ2LTU3LTU5LjItOTAuNi0xMi42LTMyLjYtMjEuNC02OS44LTIzLjgtMTI0LjItMi40LTU0LjgtMy03Mi4yLTMtMjExLjJzMC42LTE1Ni40IDMtMjExYzIuNC01NC40IDExLjItOTEuOCAyMy44LTEyNC4yIDEzLjItMzMuOCAzMC42LTYyLjQgNTkuMi05MC44IDI4LjQtMjguNCA1Ny00NiA5MC42LTU5IDMyLjYtMTIuNiA2OS44LTIxLjQgMTI0LjItMjMuOCA1NC42LTIuNCA3Mi0zIDIxMS0zczE1Ni40IDAuNiAyMTEgM2M1NC40IDIuNCA5MS44IDExLjIgMTI0LjIgMjMuOCAzMy42IDEzIDYyLjIgMzAuNiA5MC42IDU5czQ2IDU3IDU5IDkwLjZjMTIuNiAzMi42IDIxLjQgNjkuOCAyMy44IDEyNC4yIDIuNCA1NC42IDMgNzIgMyAyMTFzLTAuNiAxNTYuNC0zIDIxMWMtMi40IDU0LjQtMTEuMiA5MS44LTIzLjggMTI0LjItMTIuNiAzNC0zMCA2Mi42LTU4LjYgOTEtMjguNCAyOC40LTU3IDQ2LTkwLjYgNTktMzIuNiAxMi42LTY5LjggMjEuNC0xMjQuMiAyMy44LTU0LjggMi42LTcyLjIgMy4yLTIxMS4yIDMuMnYwek01MTIgNzExYy0xNDUuMiAwLTI2My0xMTcuOC0yNjMtMjYzczExNy44LTI2MyAyNjMtMjYzIDI2MyAxMTcuOCAyNjMgMjYzYzAgMTQ1LjItMTE3LjggMjYzLTI2MyAyNjN6TTUxMiAyNzcuNGMtOTQuMiAwLTE3MC42IDc2LjQtMTcwLjYgMTcwLjZzNzYuNCAxNzAuNiAxNzAuNiAxNzAuNmM5NC4yIDAgMTcwLjYtNzYuNCAxNzAuNi0xNzAuNnMtNzYuNC0xNzAuNi0xNzAuNi0xNzAuNnpNODQ2LjggNzIxLjRjMC0zMy45MS0yNy40OS02MS40LTYxLjQtNjEuNHMtNjEuNCAyNy40OS02MS40IDYxLjRjMCAzMy45MSAyNy40OSA2MS40IDYxLjQgNjEuNHM2MS40LTI3LjQ5IDYxLjQtNjEuNHoiIC8+CjwvZm9udD48L2RlZnM+PC9zdmc+) format('svg');font-weight:normal;font-style:normal}[class^="qligg-icon-"],[class*=" qligg-icon-"]{font-family:'qligg'!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.qligg-icon-video:before{content:"\e901"}.qligg-icon-gallery:before{content:"\e90d"}.qligg-icon-clock-o:before{content:"\e90c"}.qligg-icon-upload:before{content:"\e900"}.qligg-icon-share-o:before{content:"\e902"}.qligg-icon-comment:before{content:"\e903"}.qligg-icon-heart:before{content:"\e904"}.qligg-icon-instagram:before{content:"\e905"}.qligg-icon-prev:before{content:"\e906"}.qligg-icon-prev-o:before{content:"\e907"}.qligg-icon-next:before{content:"\e908"}.qligg-icon-next-o:before{content:"\e909"}.qligg-icon-heart-o:before{content:"\e90a"}.qligg-icon-comment-o:before{content:"\e90b"}.qligg-icon-instagram-o:before{content:"\ea92"}.insta-gallery-feed,.qligg-mfp-wrap{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1}.insta-gallery-feed .insta-gallery-item,.insta-gallery-feed .insta-gallery-image,.insta-gallery-feed .insta-gallery-actions{opacity:0}.insta-gallery-feed.loaded .insta-gallery-list .insta-gallery-item{transition:opacity .4s;opacity:1}.insta-gallery-feed.loaded .insta-gallery-list .insta-gallery-item.ig-image-loaded .insta-gallery-image{transition:all .4s;opacity:1}.insta-gallery-feed.loaded .insta-gallery-actions{transition:all .4s ease-in;opacity:1}.insta-gallery-feed .insta-gallery-spinner{position:relative;height:60px;width:auto;box-sizing:content-box;background-size:60px;background-position:50% 50%;background-repeat:no-repeat;background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJsb2FkZXItMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI0MHB4IiBoZWlnaHQ9IjQwcHgiIHZpZXdCb3g9IjAgMCA1MCA1MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTAgNTA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjZTJlMmUyIiBkPSJNNDMuOTM1LDI1LjE0NWMwLTEwLjMxOC04LjM2NC0xOC42ODMtMTguNjgzLTE4LjY4M2MtMTAuMzE4LDAtMTguNjgzLDguMzY1LTE4LjY4MywxOC42ODNoNC4wNjhjMC04LjA3MSw2LjU0My0xNC42MTUsMTQuNjE1LTE0LjYxNWM4LjA3MiwwLDE0LjYxNSw2LjU0MywxNC42MTUsMTQuNjE1SDQzLjkzNXoiIHRyYW5zZm9ybT0icm90YXRlKDE3OS4yNzMgMjUgMjUpIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPSJ4bWwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDI1IDI1IiB0bz0iMzYwIDI1IDI1IiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGVUcmFuc2Zvcm0+PC9wYXRoPjwvc3ZnPg==)}.insta-gallery-feed .insta-gallery-list:after{content:'';display:block;clear:both}.insta-gallery-feed .insta-gallery-list .insta-gallery-item{overflow:hidden;display:block;line-height:0}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-1{width:100%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-2{width:50%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-2.highlight{width:100%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-3{width:33.333%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-3.highlight{width:66.666%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-4{width:25%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-4.highlight{width:50%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-5{width:20%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-5.highlight{width:40%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-6{width:16.666%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-6.highlight{width:33.333%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-7{width:14.285%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-7.highlight{width:42.855%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-8{width:12.5%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-8.highlight{width:37.5}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-9{width:11.111%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-9.highlight{width:33.333%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-10{width:10%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-10.highlight{width:30%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-11{width:9.09%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-11.highlight{width:27.27%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-12{width:8.33%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-12.highlight{width:33.32%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-13{width:7.692%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-13.highlight{width:30.768%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-14{width:7.142%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-14.highlight{width:28.568%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-15{width:6.666%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-15.highlight{width:26.664%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-16{width:6.25%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-16.highlight{width:31.25%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-17{width:5.882%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-17.highlight{width:29.41%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-18{width:5.555%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-19{width:5.263%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-19.highlight{width:33.33%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-20{width:5%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-20.highlight{width:30%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-item-wrap{width:100%;overflow:hidden}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image{transition:all .3s}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon{position:absolute;z-index:1;font-size:16px;color:#fff;opacity:.66;top:0;margin:10px;right:0;text-shadow:1px 1px rgba(0,0,0,0.15);display:block;text-decoration:none}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon.qligg-icon-video{top:50%;left:50%;margin:-12px auto auto -8px;font-size:24px;width:24px;height:24px}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon.qligg-icon-instagram{top:auto;bottom:0;opacity:0;pointer-events:none}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card{background-color:#fff;line-height:1.2;padding:0 1em}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-caption{display:block;clear:both;margin:0;padding:1em 0}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-link i,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-comments i,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-likes i{font-weight:bold}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info{border-bottom:1px solid rgba(0,0,0,0.05);font-size:.9em}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info .ig-card-date{margin:0;text-transform:uppercase;opacity:.6;float:right}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info .ig-card-date,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info .ig-card-comments,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-info .ig-card-likes{display:inline-block;margin:0 5px 0 0}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap{display:block;position:relative;text-align:center;background-color:#eee;cursor:pointer}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image{width:100%;height:auto;overflow:hidden;vertical-align:middle}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask{position:absolute;content:'';top:0;bottom:0;left:0;right:0;z-index:8;transition:all .5s ease-out;opacity:0;background:rgba(0,122,255,0.55);width:100%;height:100%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask-content{position:absolute;top:50%;left:0;right:0;margin:-10px 0 0 0;z-index:9;width:100%;color:#fff;transition:all .5s ease;opacity:0;line-height:20px;font-size:18px;text-align:center}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask-content>span{padding:0 4px;font-size:15px;font-weight:600;vertical-align:middle;line-height:20px}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask-content>span>i{font-size:12px;margin-right:3px}.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-icon.qligg-icon-instagram{opacity:.8;pointer-events:all;z-index:99}.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-icon.qligg-icon-instagram:hover{opacity:1}.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-icon.qligg-icon-video,.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-icon.qligg-icon-gallery{opacity:0;pointer-events:none}.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-image-wrap .insta-gallery-image-mask-content{opacity:1}.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-image-wrap .insta-gallery-image-mask{opacity:1;transition:all .5s ease-out}.insta-gallery-feed .insta-gallery-profile{width:auto;margin:15px 0}.insta-gallery-feed .insta-gallery-profile,.insta-gallery-feed .insta-gallery-profile .avatar,.insta-gallery-feed .insta-gallery-profile .info{height:46px;display:flex;align-items:center}.insta-gallery-feed .insta-gallery-profile img{border:0;width:46px;height:46px;margin-right:10px;border-radius:60px}.insta-gallery-feed .insta-gallery-profile .avatar{margin:0 10px 0 0}.insta-gallery-feed .insta-gallery-profile .separator,.insta-gallery-feed .insta-gallery-profile .follow,.insta-gallery-feed .insta-gallery-profile .user{margin:0;padding:0;text-decoration:none;font-weight:600;font-size:16px;color:#262626;display:inline-block;vertical-align:middle;line-height:18px}.insta-gallery-feed .insta-gallery-profile .separator{color:#262626;margin-left:4px;margin-right:4px}.insta-gallery-feed .insta-gallery-profile .follow{color:#3897f0}.insta-gallery-feed .insta-gallery-profile .follow:hover{color:#262626}.insta-gallery-feed .insta-gallery-profile .description{line-height:18px;font-size:12px;font-weight:600}.insta-gallery-feed .insta-gallery-actions{text-align:center;margin:15px 0}.insta-gallery-feed .insta-gallery-actions .insta-gallery-button{display:inline-block;margin:0 3px;font-size:14px;padding:12px 24px;transition:all .3s;text-decoration:none;border-radius:2px;background-color:#c32a67;color:#fff}.insta-gallery-feed .insta-gallery-actions .insta-gallery-button>i{margin:0 8px 0 0;font-size:12px}.insta-gallery-feed .insta-gallery-actions .insta-gallery-button:focus,.insta-gallery-feed .insta-gallery-actions .insta-gallery-button:hover{box-shadow:inset 0 0 20px 20px rgba(255,255,255,0.2)}.insta-gallery-feed .insta-gallery-actions .insta-gallery-button.follow{background-color:#408bd1}.insta-gallery-feed .insta-gallery-actions .insta-gallery-button.load{background-color:#262626}.insta-gallery-feed.insta-gallery-square .insta-gallery-list .insta-gallery-item{display:flex;justify-content:center;align-items:stretch;box-sizing:border-box}.insta-gallery-feed.insta-gallery-square .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap{display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%;padding-top:100%}.insta-gallery-feed.insta-gallery-square .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-link{position:static}.insta-gallery-feed.insta-gallery-square .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image{overflow:hidden;object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;right:0;left:0}.insta-gallery-feed[data-feed_layout=carousel]{overflow:hidden}.insta-gallery-feed[data-feed_layout=carousel] .insta-gallery-list{display:flex}.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-next,.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-prev{transition:all .3s;background:0;top:0;bottom:0;height:100%;margin:0;background:transparent;width:32px;display:flex;align-items:center}.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-next>i,.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-prev>i{text-align:center;color:#e23565;width:32px;font-size:26px}.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-next:hover,.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-prev:hover{background-color:rgba(0,0,0,0.2)}.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-prev{left:0}.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-next{right:0}.insta-gallery-feed[data-feed_layout=carousel] .swiper-pagination-bullet-active{background-color:#e23565}.insta-gallery-feed[data-feed_layout=gallery] .insta-gallery-list{display:flex;flex-wrap:wrap;justify-content:start;overflow:hidden}@media screen and (max-width:1023px) and (min-width:768px){.insta-gallery-feed[data-feed_layout=masonry] .insta-gallery-list .insta-gallery-item,.insta-gallery-feed[data-feed_layout=gallery] .insta-gallery-list .insta-gallery-item{min-width:33.333%}}@media screen and (max-width:767px){.insta-gallery-feed[data-feed_layout=masonry] .insta-gallery-list .insta-gallery-item,.insta-gallery-feed[data-feed_layout=gallery] .insta-gallery-list .insta-gallery-item{min-width:33.333%}}@media screen and (max-width:480px){.insta-gallery-feed[data-feed_layout=masonry] .insta-gallery-list .insta-gallery-item,.insta-gallery-feed[data-feed_layout=gallery] .insta-gallery-list .insta-gallery-item{min-width:50%}}.insta-gallery-feed[data-feed_layout=masonry] .insta-gallery-list .insta-gallery-item{position:absolute}.insta-gallery-alert{background-color:#e23565;padding:15px;color:#fff;border-radius:3px;margin:0 0 15px 0;width:100%;display:block}.insta-gallery-alert::after,.insta-gallery-alert::before{content:' ';display:table}.insta-gallery-alert::after{clear:both}.insta-gallery-alert .button{float:right}.insta-gallery-alert ul{padding:0;margin:0}.insta-gallery-alert li{list-style:none outside!important;padding-left:0!important;margin-left:0!important}.qligg-mfp-wrap .mfp-arrow{font-family:'qligg'!important;speak:none;font-style:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:30px;font-weight:bold}.qligg-mfp-wrap .mfp-arrow:after{display:none}.qligg-mfp-wrap .mfp-arrow:before{border:0}.qligg-mfp-wrap .mfp-arrow.mfp-arrow-left:before{content:"\e906"}.qligg-mfp-wrap .mfp-arrow.mfp-arrow-right:before{content:"\e908"}.qligg-mfp-wrap .mfp-container{cursor:pointer!important}.qligg-mfp-wrap .mfp-container .mfp-close{position:fixed;top:30px;right:10px;color:#fff;font-weight:normal;font-size:30px;margin:0;height:auto;line-height:1;cursor:pointer!important;font-size:24px;content:'×'}.qligg-mfp-wrap .mfp-container .mfp-content{width:auto;max-width:90%;margin:0 auto}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure>img,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure>video{max-height:70vh!important;max-width:80vw!important}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-img{padding:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure{position:relative;padding:0;overflow:hidden!important;border-radius:3px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure:after{display:none}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.left{padding-left:300px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.left .mfp-bottom-bar{border-right:1px solid #eee;top:0;bottom:0;left:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.right{padding-right:300px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.right .mfp-bottom-bar{border-left:1px solid #eee;top:0;bottom:0;right:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.left .mfp-bottom-bar,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.right .mfp-bottom-bar{width:300px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.top .mfp-bottom-bar,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.bottom .mfp-bottom-bar{left:0;right:0;overflow-y:auto;overflow-x:hidden;width:100%;min-height:50px;max-height:100px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.bottom{padding-bottom:50px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.bottom .mfp-bottom-bar{border-top:1px solid #eee;bottom:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.top{padding-top:50px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.top .mfp-bottom-bar{border-bottom:1px solid #eee;top:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar{top:auto;bottom:auto;right:auto;left:auto;background-color:#fff;margin:0;padding:0;line-height:1.4;text-align:left}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title{font-size:13px;font-weight:400;color:#262626;padding:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title a{font-weight:bold;color:#262626}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title a:hover{color:#3897f0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-icons,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-user,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-caption{display:block;clear:both;margin:0;padding:15px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-caption{padding-top:0;padding-bottom:0;margin-bottom:15px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-icons .mfp-link,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-icons .mfp-counter{position:inherit;display:inline-block;font-size:12px;font-weight:400;color:#999;margin:0 15px 0 0;line-height:1}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-icons .mfp-link:hover{color:#3897f0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-link i,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-comments i,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-likes i{margin:0 4px 0 0;font-weight:bold}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info{border-top:1px solid #eee}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info .mfp-date{text-transform:uppercase;font-size:12px;color:#999;float:right;position:relative;bottom:-1px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info .mfp-date,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info .mfp-comments,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info .mfp-likes{display:inline-block;margin:0 5px 0 0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-user{display:flex;align-items:center;border-bottom:1px solid #eee;width:auto}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-user img{border:0;width:32px;height:32px;margin-right:10px;border-radius:40px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-user a{margin:0;padding:0;text-decoration:none;font-size:13px}.instagal-ie-8 .insta-gallery-spinner{display:none}.instagal-ie-8 insta-gallery-list .insta-gallery-item{max-width:33.333%;float:left}.instagal-ie-8 insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap:hover:after{background:0}.instagal-ie-8 .swiper-button-prev{display:none}.instagal-ie-8 .swiper-button-next{display:none}.instagal-ie-9 .insta-gallery-spinner{display:none}.instagal-ie-9 insta-gallery-list .insta-gallery-item{max-width:33.333%;float:left}.instagal-ie-9 .swiper-button-prev{display:none}.instagal-ie-9 .swiper-button-next{display:none}.igblock-wrap-IElte8 insta-gallery-list .insta-gallery-item{width:25%;float:left}.igblock-wrap-IElte8 insta-gallery-list:after{clear:both;display:block;content:""}
1
+ @-moz-keyframes insta-gallery-spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes insta-gallery-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes insta-gallery-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@font-face{font-family:qligg;src:url(data:font/opentype;charset=utf-8;base64,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);src:url(data:font/opentype;charset=utf-8;base64,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) format('embedded-opentype'),url(data:font/opentype;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SB5QAAAC8AAAAYGNtYXDqzunMAAABHAAAAFxnYXNwAAAAEAAAAXgAAAAIZ2x5ZpBTx8kAAAGAAAAMsGhlYWQVTiJdAAAOMAAAADZoaGVhB8cD0AAADmgAAAAkaG10eEGABdkAAA6MAAAATGxvY2EWvhqaAAAO2AAAAChtYXhwABkAyQAADwAAAAAgbmFtZaNwe4sAAA8gAAABbnBvc3QAAwAAAAAQkAAAACAAAwPYAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADqkgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAQAAAAAwACAACAAQAAQAg6Q3qkv/9//8AAAAAACDpAOqS//3//wAB/+MXBBWAAAMAAQAAAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAIAgP/rA4ADkgBCAGkAABMRFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JiMiBhURFAYHDgEHDgEHDgEjISImJy4BJy4BJy4BNRE0JiMiBhUBERQWMzI2NREXFjI3NjQvATgBMS4BJyYiBw4BBzgBMQcGFBcWMjeABQUFDgkIFQwLGQ0CAA0ZCwwVCQgOBQUFGRIRGQICAQUDAwcEAwkE/gAECQMEBwMDBQECAhkREhkBVRkSEhliDCMNDAyrAwcEBxIHBAcDqwwMDSMMAcD+qw0ZCwwVCQkOBQQFBQQFDgkJFQwLGQ0BVRIZGRL+qwUIBAQHAgMFAgECAgECBQMCBwQECAUBVRIZGRIBRP48EhkZEgHEYg0NDCQMqwMFAQMDAQUDqwwkDA0NAAEAAP/NA1EDswAMAAAJASYGFREUFjcBNjQnA1H9QCtmYTACwC8vAhMBoBktP/zAODccAaAcbhwAAgAA/8YD8wN6ADEATwAACQEuASMOAR0BBgcOAQcGBwYHDgEHBhUcARUUFjMyNjc2Nz4BNzYzFRQWMxY2NwE2JicBNTQmNSImIyIGBw4BBz4BNzY3PgE3NjMyNj0BCQED7f5ABRAFCQpbRERnJyciGg4PDQEBEB0dEQU+Ly9aMjJGCgkFFgUBwA8CE/5gBwQQBVt8Qz5SMAUVJh0iI15BQFkOEgFN/rMCDQFmBQIFEgm6AhISQS4vPDA1NGkxMSkFEAQKKhcJbz49PAcHtAkQBQIJAW0TJxP+zXMFEAQHCh0cZExDeUQ3KSk2DQ0SDof+5v76AAIAK//rA94DlQAmAFMAABMUFx4BFxYzMjY3FzoBMzI2NTwBNSc+ATUmJy4BJyYjIgcOAQcGFTM0Nz4BNzYzMhceARcWFRQGBzEOARUcATkBFycqASMiBgcxDgEjIicuAScmNSskJH5WVmM9cjPVBAIDDQ04HR8DJyeCVlVgYlVWfyUkOyEgbkpKU1VKS28gIB4ZAwEvrwQCAwMHAy1pN1FJSW0hIAHEYFZWgSYmMxk3EAoDAgPRM109Y1ZWfiQkJCV+VVVgU0pKbiAhIB9uSkpVNlksBAYDAwKuLgEDGTQhIXFLS1UAAAACAAAAAAQEA4AANABpAAABIgYHMAYHLgExLgEjIgcOAQcGFRQXHgEXFhceARceATMyNjc+ATc2Nz4BNzY1JicuAScmIwMOAQcuAScmJy4BJyY1NDc+ATc2MzIWFx4BMR4BFzI2NzA2Nz4BMzIXHgEXFhUUBw4BBwYHAvNAXjMUCgkVM2JAPTIySBQUGhpgRERTHT8gAwwGBgkGJEEgTENCYhscARUVSDEyO4QaOB0dNBpQQEBZGBgQDzgnJi0wTCYgEwoKCgoNBxMgKkI2LSYnOA8QGBlZPz9NA4AmNBQJCRQ0JhcXTzU1O0M7O3M8PEcZNRwEBQUEIDYdQTs6czw8RTo0M08XF/0mFjIaFywXQzk5aTQ0OjErKz8SExomIBQMCgMKBxQjKhYSEj8rKzE4MzNoNzdAAAAFACv/6wPRA5UAIAAxAFAAaQCBAAABISIHDgEHBhURFBceARcWMyEyNz4BNzY1ETYnLgEnJiMTFAYjISImNRE0NjMhMhYVEScuAScuAScmIgcOAQcOARceARceATMyNjc+ATc+AScHBiYnLgEnJjY3PgE3OgEzOgEzHgEXFgYHEy4BIyIGBw4BFRQWFx4BMzI2Nz4BNTQmAtr+TDMuLUUUFBQURS0uMwGvNS4uRBQTAhQTRC4tM7tvTP5MTG9vTAG4TW/JBhwaGTsjEB8NKUYZGhMGBycjHT8gBhEHKUkWHRQGtx05GRcfBgMNEBMyHQYJBgYJBjBGBg1IPPcGDQcGEAMHBgYHBg0GBxADBgcHA5UUFEUtLjP+UTUvLkYUFBQURS0uMwG0My4tRRQU/VFMb29MAbRMb29M/kz8IzsaGRwGBAQJLCAgVCopRhkUFwEDByogI1IpswMNEBMyHRw5GhYfBgZFMD1kCgGiBgcHBgYNBwYQAwcGBgcGDQYKDQABAQUAHwLHA3sAEgAAJRYUBw4BJwEmNDcBNjIXFhQHAQLHCwsKHQr+bwsLAZEKHQoLC/6TUQoeCgoBCwGVCh0LAZUKCgsdCv6EAAAAAQEzALQCfgLmACIAAAEeAQ8BFxYGBwYmJyYnLgEnJjEuATU0NjcwNz4BNzY3PgEXAn4RARLAwBIBERIxEAglJVMhIQgJCQghIVMlJQgQMRIC5hEsFMjIFSsREQEQCCYnViMjCBULCxUIIyJXJicIDwEQAAABATkAHwL7A3sAEwAACQEmNDc2MhcBFhQHAQYiJyY0NwECpv6TCwsKHQoBkQsL/m8KHQoLCwFtAc0BfAodCwoK/msKHgr+awoKCh4KAXwAAAEBggC0As0C5gAiAAABFhceARcWMR4BFRQGBzAHDgEHBgcOAScuAT8BJyY2NzYWFwHVCCUlUyEhCAkJCCEhUyUlCBAxEhEBEsDAEgEREjEQAuYIJyZXIiMIFQsLFQgjI1YnJggQARERKxXIyBQsERABDwAAAQAAAAAEAAOAACoAAAEiBgc4ATkBByc4ATkBLgEjIgYHDgEVFBYXAR4BMzI2NwE+ATU0JicuASMC4DpeKR8fKV46OmkpKCwsKAF/CRcNDRcJAX8oLCwoKWk6A4ApKSclKCwsKClpOjppKf5/CQoKCQGBKWk6OmkpKCwAAAEAAP/EBAADwAAuAAAlIiYnDgEHDgEnLgEnNBY3PgE3JicuAScmNTQ3PgE3NjMyFx4BFxYVFAcOAQcGIwIAECgPK189GykGCBQCCwclMRA6LzBEEhMoKIteXWpqXV6LKCgoKIteXWpBGAEkTRcLCgcJFQQFAQcQSjEdKSlkOjk+XVJReSQjIyR5UVJdXFJReiMjAAADABD/0APwA7AAGwA3AE0AAAEiBw4BBwYVFBceARcWMzI3PgE3NjU0Jy4BJyYDIicuAScmNTQ3PgE3NjMyFx4BFxYVFAcOAQcGNycuATURNDY7ATIWFREXHgEPAQ4BJwIAZ1pahycnJyeHWlpnZ1pahycnJyeHWlpnU0lJbCAfHyBsSUlTU0lJbCAfHyBsSUkpqgUFDgpACg6GCAMGJgYTCAOwJyeHWlpnZ1pahycnJyeHWlpnZ1pahycn/IAfIGxJSVNTSUlsIB8fIGxJSVNTSUlsIB/RewQKBgFICg4OCv7lYgUUCDQIAwYAAAMAAP/ABAADwAAZAC4AQgAAASEiBh0BIyIGFREUFjMhMjY9ATMyNjURNCYDISImNTERNDYzMTMRFBYzIRUUBiM3ISImNTERNDYzMSEyFhUxERQGIwOg/YAoOGAoODgoAoAoOGAoODj0/ZgFBwcFVDgoAcAHBcD9mAUHBwUCaAUHBwUDwDgoYDgo/YAoODgoYDgoAoAoOPxgBwUCaAUH/kAoOFQFB8AHBQJoBQcHBf2YBQcAAAUAAP/AA/8DwABIAJIArgC6AMYAAAEyFhceARceARceARceARceARUUBgcOAQcOAQcOAQcOAQcOASMiJicuAScuAScuAScuAScuATU0Njc+ATc+ATc+ATc+ATc+ATM1IgYHDgEHDgEHDgEHDgEHDgEVFBYXHgEXHgEXHgEXHgEXHgEzMjY3PgE3PgE3PgE3PgE3PgE1NCYnLgEnLgEnLgEnLgEnLgEjMRUiBw4BBwYVFBceARcWMzI3PgE3NjU0Jy4BJyYDIiY1NDYzMhYVFAYBFAYjIiY1NDYzMhYCAGc/KSUsDhIbDg0SBwULAgECAgECCwUHEg0OGxIOLCUpP2dmQCklLA4RHA0OEgcFCwECAQECAQsFBxINDhsSDiwlKT9naEIpKTsYGiwVFRwKCgwCAgEBAgIMCgocFRUsGhg7KSlCaGhCKSk7GBksFhUcCgkNAQIBAQIBDQkKHBUVLBoYOykpQmg2MDBIFBUVFEgwMDY2MDBIFBUVFEgwMDZHZGRHR2RkAQgkGhkkJBkaJANkAQICCwUHEg0NHBINLCYoQGdmQCgmLA0SHA0OEgcFCwECAQECAQsFBxIODRwRDiwlKUBmZ0AoJSwOEhsODRIHBQsCAgFcAQICDAoKHBUVLBoYOykpQmhoQikpOxgaLBUVHAoJDQICAQECAg0JChwVFSwaGDspKUJoaEIpKTsYGS0VFRwKCQ0CAgH5FRRIMDA2NjAwSBQVFRRIMDA2NjAwSBQV/k5kR0dkZEdHZAG8GSQkGRokJAAAAQAAAAEAAPgMw+VfDzz1AAsEAAAAAADZFW7wAAAAANkVbvAAAP/ABAQDwAAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAA//wEBAABAAAAAAAAAAAAAAAAAAAAEwQAAAAAAAAAAAAAAAIAAAAEAACAA4AAAAQAAAAEAAArBAAAAAQAACsEAAEFBAABMwQAATkEAAGCBAAAAAQAAAAEAAAQBAAAAAQAAAAAAAAAAAoAFAAeALQA0AFKAb4CWgMaA0ADegOiA9wEGgRkBNoFNAZYAAEAAAATAMcABQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAFAAAAAQAAAAAAAgAHAE4AAQAAAAAAAwAFADAAAQAAAAAABAAFAGMAAQAAAAAABQALAA8AAQAAAAAABgAFAD8AAQAAAAAACgAaAHIAAwABBAkAAQAKAAUAAwABBAkAAgAOAFUAAwABBAkAAwAKADUAAwABBAkABAAKAGgAAwABBAkABQAWABoAAwABBAkABgAKAEQAAwABBAkACgA0AIxxbGlnZwBxAGwAaQBnAGdWZXJzaW9uIDEuMABWAGUAcgBzAGkAbwBuACAAMQAuADBxbGlnZwBxAGwAaQBnAGdxbGlnZwBxAGwAaQBnAGdSZWd1bGFyAFIAZQBnAHUAbABhAHJxbGlnZwBxAGwAaQBnAGdGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'),url(data:font/opentype;charset=utf-8;base64,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) format('woff'),url(data:font/opentype;charset=utf-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgo8ZGVmcz4KPGZvbnQgaWQ9InFsaWdnIiBob3Jpei1hZHYteD0iMTAyNCI+Cjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMDI0IiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTY0IiAvPgo8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMTAyNCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwOyIgaG9yaXotYWR2LXg9IjUxMiIgZD0iIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwMDsiIGdseXBoLW5hbWU9InVwbG9hZCIgZD0iTTEyOCA0NDh2LTM0MS4zMzNjMC0xNy4yOCAzLjQ1Ni0zMy44MzUgOS43MjgtNDguOTgxIDYuNDg1LTE1LjcwMSAxNi0yOS43ODEgMjcuNzc2LTQxLjU1N3MyNS44NTYtMjEuMjkxIDQxLjU1Ny0yNy43NzZjMTUuMTA0LTYuMjI5IDMxLjY1OS05LjY4NSA0OC45MzktOS42ODVoNTEyYzE3LjI4IDAgMzMuODM1IDMuNDU2IDQ4Ljk4MSA5LjcyOCAxNS43MDEgNi40ODUgMjkuNzgxIDE2IDQxLjU1NyAyNy43NzZzMjEuMjkxIDI1Ljg1NiAyNy43NzYgNDEuNTU3YzYuMjI5IDE1LjEwNCA5LjY4NSAzMS42NTkgOS42ODUgNDguOTM5djM0MS4zMzNjMCAyMy41NTItMTkuMTE1IDQyLjY2Ny00Mi42NjcgNDIuNjY3cy00Mi42NjctMTkuMTE1LTQyLjY2Ny00Mi42Njd2LTM0MS4zMzNjMC01Ljg0NS0xLjE1Mi0xMS4zNDktMy4yLTE2LjI5OS0yLjEzMy01LjIwNS01LjMzMy05Ljg5OS05LjMwMS0xMy44NjdzLTguNjYxLTcuMTI1LTEzLjg2Ny05LjMwMWMtNC45NDktMi4wNDgtMTAuNDUzLTMuMi0xNi4yOTktMy4yaC01MTJjLTUuODQ1IDAtMTEuMzQ5IDEuMTUyLTE2LjI5OSAzLjItNS4yMDUgMi4xMzMtOS44OTkgNS4zMzMtMTMuODY3IDkuMzAxcy03LjEyNSA4LjY2MS05LjMwMSAxMy44NjdjLTIuMDQ4IDQuOTQ5LTMuMiAxMC40NTMtMy4yIDE2LjI5OXYzNDEuMzMzYzAgMjMuNTUyLTE5LjExNSA0Mi42NjctNDIuNjY3IDQyLjY2N3MtNDIuNjY3LTE5LjExNS00Mi42NjctNDIuNjY3ek00NjkuMzMzIDc3MS42Njl2LTQ1MS42NjljMC0yMy41NTIgMTkuMTE1LTQyLjY2NyA0Mi42NjctNDIuNjY3czQyLjY2NyAxOS4xMTUgNDIuNjY3IDQyLjY2N3Y0NTEuNjY5bDk3LjgzNS05Ny44MzVjMTYuNjgzLTE2LjY4MyA0My42OTEtMTYuNjgzIDYwLjMzMSAwczE2LjY4MyA0My42OTEgMCA2MC4zMzFsLTE3MC42NjcgMTcwLjY2N2MtMC4wNDMgMC4wNDMtMC4xMjggMC4wODUtMC4xNzEgMC4xNzEtNC4wNTMgNC4wMTEtOC43MDQgNy4wNDAtMTMuNjUzIDkuMDg4LTEwLjQ1MyA0LjMwOS0yMi4yMjkgNC4zMDktMzIuNjgzIDAtNC45NDktMi4wNDgtOS42NDMtNS4wNzctMTMuNjUzLTkuMDg4LTAuMDQzLTAuMDQzLTAuMTI4LTAuMDg1LTAuMTcxLTAuMTcxbC0xNzAuNjY3LTE3MC42NjdjLTE2LjY4My0xNi42ODMtMTYuNjgzLTQzLjY5MSAwLTYwLjMzMXM0My42OTEtMTYuNjgzIDYwLjMzMSAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDE7IiBnbHlwaC1uYW1lPSJ2aWRlbyIgaG9yaXotYWR2LXg9Ijg5NiIgZD0iTTg0OC44IDUzMC42bC03MDQgNDE2LjJjLTU3LjIgMzMuOC0xNDQuOCAxLTE0NC44LTgyLjZ2LTgzMi4yYzAtNzUgODEuNC0xMjAuMiAxNDQuOC04Mi42bDcwNCA0MTZjNjIuOCAzNyA2MyAxMjguMiAwIDE2NS4yeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDI7IiBnbHlwaC1uYW1lPSJzaGFyZS1vIiBkPSJNMTAwNC44IDUyNC44bC00NDggMzU4LjRjLTYuNCA2LjQtMTkuMiA2LjQtMjUuNiA2LjQtMTIuOC02LjQtMTkuMi0xOS4yLTE5LjItMzJ2LTE4NS42Yy0yNDMuMi02LjQtMzUyLTk2LTQ0MS42LTI1Ni03MC40LTEyOC03MC40LTI4OC03MC40LTM5Ni44IDAtNi40IDAtMTkuMiAwLTI1LjYgMC0xMi44IDYuNC01MS4yIDQ0LjgtNTEuMnM0NC44IDE5LjIgNTEuMiAzMmMxNjYuNCAyOTQuNCAyMzAuNCAzMDcuMiA0MTYgMzA3LjJ2LTE3OS4yYzAtMTIuOCA2LjQtMjUuNiAxOS4yLTI1LjYgNi40LTYuNCAyNS42LTYuNCAzMiA2LjRsNDQ4IDM2NC44YzE5LjIgMjUuNiAxOS4yIDUxLjItNi40IDc2Ljh6TTU4OC44IDIxNy42djExNS4yYzAgNi40LTYuNCAxOS4yLTYuNCAyNS42LTYuNCAwLTE5LjIgNi40LTI1LjYgNi40LTEyMS42IDAtMTkyIDAtMjgxLjYtMzguNC04My4yLTM4LjQtMTI4LTEwMi40LTE5Mi0yMDQuOCA2LjQgODkuNiAxMi44IDE2Ni40IDY0IDI1NiA3Ni44IDE0Ny4yIDE3Mi44IDIxNy42IDQwOS42IDIxNy42IDE5LjIgMCAzMiAxMi44IDMyIDMydjEzNC40bDMzMi44LTI4MS42LTMzMi44LTI2Mi40eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDM7IiBnbHlwaC1uYW1lPSJjb21tZW50IiBkPSJNNDIuNjY3IDQ1Mi4yNjdjMC0yNTYgMjA0LjgtNDczLjYgNDY5LjMzMy00NzMuNiA4MS4wNjcgMCAxNTcuODY3IDQyLjY2NyAyMjYuMTMzIDc2LjhsMjEzLjMzMy01NS40NjdjNC4yNjcgMCA0LjI2NyAwIDguNTMzIDAgMTcuMDY3IDAgMjUuNiAxMi44IDI1LjYgMjUuNiAwIDQuMjY3IDAgNC4yNjcgMCA4LjUzM2wtNTUuNDY3IDIwOS4wNjdjMzguNCA2OC4yNjcgNTkuNzMzIDEyMy43MzMgNTkuNzMzIDIwNC44LTguNTMzIDI2NC41MzMtMjIxLjg2NyA0NjkuMzMzLTQ3Ny44NjcgNDY5LjMzMy0yNjAuMjY3IDAtNDY5LjMzMy0yMDkuMDY3LTQ2OS4zMzMtNDY1LjA2N3pNMTAyLjQgNDUyLjI2N2MwIDIyMS44NjcgMTgzLjQ2NyA0MDUuMzMzIDQwNS4zMzMgNDA1LjMzMyAyMjYuMTMzIDAgNDA5LjYtMTc5LjIgNDA5LjYtNDA1LjMzMyAwLTcyLjUzMy0yMS4zMzMtMTI4LTU1LjQ2Ny0xODcuNzMzdjBjLTQuMjY3LTQuMjY3LTQuMjY3LTguNTMzLTQuMjY3LTEyLjhzMC00LjI2NyAwLTQuMjY3djBsNDYuOTMzLTE3NC45MzMtMTc0LjkzMyA0Ni45MzNjLTQuMjY3IDAtNC4yNjcgMC04LjUzMyAwcy04LjUzMyAwLTEyLjgtNC4yNjd2MGMtNTkuNzMzLTM0LjEzMy0xMzIuMjY3LTc2LjgtMjA0LjgtNzYuOC0yMTcuNiAwLTQwMS4wNjcgMTg3LjczMy00MDEuMDY3IDQxMy44Njd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNDsiIGdseXBoLW5hbWU9ImhlYXJ0IiBkPSJNNzU1LjIgODk2Yy04NS4zMzMgMC0xNDAuOC0yMS4zMzMtMjA5LjA2Ny04OS42IDAgMC0xNy4wNjctMTcuMDY3LTI5Ljg2Ny0yOS44NjctMTIuOCAxMi44LTI5Ljg2NyAyOS44NjctMjkuODY3IDI5Ljg2Ny02OC4yNjcgNjguMjY3LTEyOCA4OS42LTIxMy4zMzMgODkuNi0xNjIuMTMzIDAtMjczLjA2Ny0xMzIuMjY3LTI3My4wNjctMjkwLjEzMyAwLTE3OS4yIDE0NS4wNjctMzAyLjkzMyAzNjYuOTMzLTQ5MC42NjcgMzguNC0zNC4xMzMgODEuMDY3LTY4LjI2NyAxMjMuNzMzLTEwNi42NjcgNC4yNjctNC4yNjcgMTIuOC04LjUzMyAyMS4zMzMtOC41MzNzMTIuOCA0LjI2NyAyMS4zMzMgOC41MzNjNDYuOTMzIDQyLjY2NyA4OS42IDc2LjggMTMyLjI2NyAxMTUuMiAyMDQuOCAxNzQuOTMzIDM2Mi42NjcgMzAyLjkzMyAzNjIuNjY3IDQ4Ni40LTQuMjY3IDE1My42LTExNS4yIDI4NS44NjctMjczLjA2NyAyODUuODY3ek02MjIuOTMzIDE2Ni40Yy0zNC4xMzMtMjkuODY3LTcyLjUzMy02NC0xMTAuOTMzLTk4LjEzMy0zOC40IDI5Ljg2Ny03Mi41MzMgNTkuNzMzLTEwNi42NjcgODkuNi0yMTMuMzMzIDE3OS4yLTM0NS42IDI5NC40LTM0NS42IDQ0OCAwIDEzMi4yNjcgODkuNiAyMzQuNjY3IDIwOS4wNjcgMjM0LjY2NyA2NCAwIDExMC45MzMtMTIuOCAxNjIuMTMzLTY0IDQyLjY2Ny00Mi42NjcgNTEuMi01MS4yIDUxLjItNTEuMiAxMi44LTE3LjA2NyAxNy4wNjctMjEuMzMzIDI5Ljg2Ny0yNS42IDEyLjggMCAyMS4zMzMgOC41MzMgMjkuODY3IDE3LjA2NyAwIDAgOC41MzMgOC41MzMgNTEuMiA1NS40NjcgNTUuNDY3IDU1LjQ2NyA4OS42IDY0IDE2Mi4xMzMgNjQgMTE5LjQ2NyAwIDIwOS4wNjctMTAyLjQgMjA5LjA2Ny0yMzQuNjY3IDAtMTQ5LjMzMy0xMzYuNTMzLTI2NC41MzMtMzQxLjMzMy00MzUuMnoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA1OyIgZ2x5cGgtbmFtZT0iaW5zdGFncmFtIiBkPSJNNzI5LjYgOTE3LjMzM2gtNDM1LjJjLTEzNi41MzMgMC0yNTEuNzMzLTExNS4yLTI1MS43MzMtMjUxLjczM3YtNDMwLjkzM2MwLTE0MC44IDExNS4yLTI1NiAyNTEuNzMzLTI1Nmg0MzAuOTMzYzE0MC44IDAgMjUxLjczMyAxMTUuMiAyNTEuNzMzIDI1MS43MzN2NDM1LjJjNC4yNjcgMTM2LjUzMy0xMTAuOTMzIDI1MS43MzMtMjQ3LjQ2NyAyNTEuNzMzek05MTcuMzMzIDIzMC40YzAtMTAyLjQtODUuMzMzLTE4Ny43MzMtMTg3LjczMy0xODcuNzMzaC00MzUuMmMtMTAyLjQgMC0xODcuNzMzIDg1LjMzMy0xODcuNzMzIDE4Ny43MzN2NDM1LjJjMCAxMDIuNCA4NS4zMzMgMTg3LjczMyAxODcuNzMzIDE4Ny43MzNoNDM5LjQ2N2MxMDIuNCAwIDE4Ny43MzMtODUuMzMzIDE4Ny43MzMtMTg3LjczM3YtNDM1LjJ6TTcyMS4wNjcgNDgyLjEzM2MtOC41MzMgNDYuOTMzLTI1LjYgODUuMzMzLTU5LjczMyAxMTkuNDY3cy03Mi41MzMgNTEuMi0xMTkuNDY3IDU5LjczM2MtMjEuMzMzIDQuMjY3LTQyLjY2NyA0LjI2Ny01OS43MzMgMC01NS40NjctMTIuOC0xMDIuNC00Mi42NjctMTM2LjUzMy04NS4zMzNzLTQ2LjkzMy0xMDIuNC0zOC40LTE1Ny44NjdjOC41MzMtNTUuNDY3IDM0LjEzMy0xMDIuNCA4MS4wNjctMTM2LjUzMyAzOC40LTI1LjYgODEuMDY3LTQyLjY2NyAxMjMuNzMzLTQyLjY2NyA4LjUzMyAwIDIxLjMzMyAwIDI5Ljg2NyA0LjI2NyA1NS40NjcgOC41MzMgMTA2LjY2NyAzOC40IDEzNi41MzMgODEuMDY3IDM4LjQgNDYuOTMzIDUxLjIgMTAyLjQgNDIuNjY3IDE1Ny44Njd6TTUzNy42IDMwMi45MzNjLTM4LjQtNC4yNjctNzYuOCA0LjI2Ny0xMTAuOTMzIDI1LjYtMjkuODY3IDI1LjYtNTEuMiA1OS43MzMtNTkuNzMzIDk4LjEzMy00LjI2NyAzOC40IDQuMjY3IDc2LjggMjUuNiAxMTAuOTMzIDI1LjYgMjkuODY3IDU5LjczMyA1MS4yIDk4LjEzMyA1OS43MzMgOC41MzMgMCAxMi44IDAgMjEuMzMzIDBzMTIuOCAwIDIxLjMzMyAwYzY0LTguNTMzIDExNS4yLTU5LjczMyAxMjMuNzMzLTEyMy43MzMgMTcuMDY3LTgxLjA2Ny0zOC40LTE1Ny44NjctMTE5LjQ2Ny0xNzAuNjY3ek03ODUuMDY3IDcyMS4wNjdjLTguNTMzIDguNTMzLTE3LjA2NyAxMi44LTI1LjYgMTIuOHMtMjEuMzMzLTQuMjY3LTI1LjYtMTIuOGMtOC41MzMtOC41MzMtMTIuOC0xNy4wNjctMTIuOC0yNS42czQuMjY3LTIxLjMzMyAxMi44LTI1LjZjOC41MzMtOC41MzMgMTcuMDY3LTEyLjggMjUuNi0xMi44czIxLjMzMyA0LjI2NyAyNS42IDEyLjhjOC41MzMgOC41MzMgMTIuOCAxNy4wNjcgMTIuOCAyNS42IDAgMTIuOC00LjI2NyAyMS4zMzMtMTIuOCAyNS42eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDY7IiBnbHlwaC1uYW1lPSJwcmV2IiBkPSJNNzExLjIxOSA4MC45OThjMTMuNzIyLTEzLjkyNiAxMy43MjItMzYuMzAxIDAtNTAuMTI1cy0zNS44OTEtMTMuODc1LTQ5LjYxMyAwbC00MDAuODk2IDQwNC44OWMtMTMuNzIyIDEzLjgyNC0xMy43MjIgMzYuMTk4IDAgNTAuMTI1bDQwMC44OTYgNDA0Ljg5YzEzLjcyMiAxMy44MjQgMzUuODkxIDEzLjgyNCA0OS42MTMgMCAxMy43MjItMTMuODc1IDEzLjcyMi0zNi4zMDEgMC01MC4xMjVsLTM2NS42MTktMzc5Ljg1MyAzNjUuNjE5LTM3OS44MDJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNzsiIGdseXBoLW5hbWU9InByZXYtbyIgZD0iTTYzNy41NDIgNzQxLjU4MWMyMi44MzUtMjIuMzIzIDI0LjYyNy01My40MDIgMC04MC42OTFsLTE5MS44NDYtMjAwLjA5MCAxOTEuODQ2LTIwMC4wOTBjMjQuNjI3LTI3LjI5IDIyLjgzNS01OC40MTkgMC04MC41ODktMjIuNzg0LTIyLjMyMy02MS4yODYtMjAuODktODIuNjg4IDAtMjEuNDAyIDIwLjc4Ny0yMzAuNTAyIDI0MC4zODQtMjMwLjUwMiAyNDAuMzg0LTExLjQxOCAxMS4xMS0xNy4xNTIgMjUuNzAyLTE3LjE1MiA0MC4yOTRzNS43MzQgMjkuMTg0IDE3LjE1MiA0MC4zOTdjMCAwIDIwOS4xMDEgMjE5LjQ5NCAyMzAuNTAyIDI0MC4zODQgMjEuNDAyIDIwLjk0MSA1OS45MDQgMjIuMzIzIDgyLjY4OCAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDg7IiBnbHlwaC1uYW1lPSJuZXh0IiBkPSJNNjc4LjQgNDYwLjhsLTM2NS42MTkgMzc5LjkwNGMtMTMuNzIyIDEzLjgyNC0xMy43MjIgMzYuMTk4IDAgNTAuMTI1IDEzLjcyMiAxMy44MjQgMzUuODkxIDEzLjgyNCA0OS42MTMgMGw0MDAuODk2LTQwNC44OWMxMy43MjItMTMuODc1IDEzLjcyMi0zNi4zMDEgMC01MC4xMjVsLTQwMC44OTYtNDA0Ljg5Yy0xMy43MjItMTMuODc1LTM1Ljg5MS0xMy44MjQtNDkuNjEzIDAtMTMuNzIyIDEzLjc3My0xMy43MjIgMzYuMTk4IDAgNTAuMTI1bDM2NS42MTkgMzc5Ljc1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDk7IiBnbHlwaC1uYW1lPSJuZXh0LW8iIGQ9Ik00NjkuMTQ2IDc0MS41ODFjMjEuNDAyLTIwLjg5IDIzMC41MDItMjQwLjM4NCAyMzAuNTAyLTI0MC4zODQgMTEuNDE4LTExLjIxMyAxNy4xNTItMjUuODA1IDE3LjE1Mi00MC4zOTdzLTUuNzM0LTI5LjE4NC0xNy4xNTItNDAuMjk0YzAgMC0yMDkuMTAxLTIxOS41OTctMjMwLjUwMi0yNDAuMzg0LTIxLjQwMi0yMC44OS01OS45MDQtMjIuMzIzLTgyLjY4OCAwLTIyLjgzNSAyMi4yMjEtMjQuNjI3IDUzLjI5OSAwIDgwLjU4OWwxOTEuODQ2IDIwMC4wOTAtMTkxLjg0NiAyMDAuMDkwYy0yNC42MjcgMjcuMjktMjIuODM1IDU4LjQxOSAwIDgwLjY5MSAyMi43ODQgMjIuMzIzIDYxLjI4NiAyMC45NDEgODIuNjg4IDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYTsiIGdseXBoLW5hbWU9ImhlYXJ0LW8iIGQ9Ik03MzYgODk2Yy03Ni45MjggMC0xMzguNTkyLTI3LjYxNi0xOTIuOTYtODIuMDE2LTAuMDMyLTAuMDMyLTAuMDY0LTAuMDY0LTAuMDk2LTAuMDk2aC0wLjAzMmwtMzAuOTEyLTM4Ljk0NC0zMC45MTIgMzYuNTc2Yy0wLjAzMiAwLjAzMi0wLjA2NCAwLjA2NC0wLjA5NiAwLjA5NmgtMC4wMzJjLTU0LjQgNTQuNDMyLTExNi4wMzIgODQuMzg0LTE5Mi45NiA4NC4zODRzLTE0OS4yNDgtMjkuOTUyLTIwMy42NDgtODQuMzUyYy01NC4zNjgtNTQuNC04NC4zNTItMTI2LjcyLTg0LjM1Mi0yMDMuNjQ4IDAtNzYuODY0IDI5LjkyLTE0OS4xODQgODQuMjU2LTIwMy41NTJsMzgyLjMwNC0zODUuNTA0YzEyLTEyLjEyOCAyOC4zODQtMTguOTQ0IDQ1LjQ0LTE4Ljk0NHMzMy40NCA2LjgxNiA0NS40NCAxOC45NDRsMzgyLjI3MiAzODUuNTA0YzU0LjMzNiA1NC4zNjggODQuMjg4IDEyNi42NTYgODQuMjg4IDIwMy41NTIgMCA3Ni45MjgtMjkuOTg0IDE0OS4yNDgtODQuMzUyIDIwMy42NDgtNTQuNCA1NC40LTEyNi43MiA4NC4zNTItMjAzLjY0OCA4NC4zNTJ2MHoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBiOyIgZ2x5cGgtbmFtZT0iY29tbWVudC1vIiBkPSJNNTEyIDY0Ljk5MmMtMjAuNzY4IDAtNTEuMTY4IDIzLjM2LTcxLjMyOCAyNS41MDQtNTcuNTA0LTQ4LjIyNC0xMTcuNDA4LTEwNi4yNzItMTk4Ljg0OC0xMzYuNDQ4LTM1LjU1Mi0xNS4wNzItNjYuMDgwLTIzLjgwOC03NC4wMTYtMTQuMzA0LTEwLjY1NiAxMi4zODQtMjYuNzUyIDI5LjU2OC0yOS42IDM0LjE3NiAwLjE2IDYuODQ4IDguNDQ4IDEuNDQgMTcuNDcyIDExLjE2OCA0OS4xNTIgMjAuNjcyIDgwLjg5NiA3NC4wMTYgMTAyLjI0IDEzOS4yMzItMTUzLjk1MiA3Ny4xNTItMjU3LjkyIDIyMS44ODgtMjU3LjkyIDM4OC4wOTYgMCAyNDcuMDcyIDIyOS4yNDggNDQ3LjM5MiA1MTIgNDQ3LjM5MnM1MTItMjAwLjI4OCA1MTItNDQ3LjM5Mi0yMjkuMjQ4LTQ0Ny40MjQtNTEyLTQ0Ny40MjR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYzsiIGdseXBoLW5hbWU9ImNsb2NrLW8iIGQ9Ik01MTIgOTQ0Yy0yNzQgMC00OTYtMjIyLTQ5Ni00OTZzMjIyLTQ5NiA0OTYtNDk2IDQ5NiAyMjIgNDk2IDQ5Ni0yMjIgNDk2LTQ5NiA0OTZ6TTUxMiA0OGMtMjIxIDAtNDAwIDE3OS00MDAgNDAwczE3OSA0MDAgNDAwIDQwMCA0MDAtMTc5IDQwMC00MDAtMTc5LTQwMC00MDAtNDAwek02MzUuNiAyNTYuOGwtMTY5LjggMTIzLjRjLTYuMiA0LjYtOS44IDExLjgtOS44IDE5LjR2MzI4LjRjMCAxMy4yIDEwLjggMjQgMjQgMjRoNjRjMTMuMiAwIDI0LTEwLjggMjQtMjR2LTI4My40bDEzMy42LTk3LjJjMTAuOC03LjggMTMtMjIuOCA1LjItMzMuNmwtMzcuNi01MS44Yy03LjgtMTAuNi0yMi44LTEzLTMzLjYtNS4yeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MGQ7IiBnbHlwaC1uYW1lPSJnYWxsZXJ5IiBkPSJNOTI4IDk2MGgtNjQwYy01My4wMjAgMC05Ni00Mi45OC05Ni05NnYtOTZoLTk2Yy01My4wMjAgMC05Ni00Mi45OC05Ni05NnYtNjQwYzAtNTMuMDIwIDQyLjk4LTk2IDk2LTk2aDY0MGM1My4wMjAgMCA5NiA0Mi45OCA5NiA5NnY5Nmg5NmM1My4wMjAgMCA5NiA0Mi45OCA5NiA5NnY2NDBjMCA1My4wMjAtNDIuOTggOTYtOTYgOTZ6TTcyNCAzMmgtNjE2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjAgNjE2YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJ2MGg4NHYtNDQ4YzAtNTMuMDIwIDQyLjk4LTk2IDk2LTk2aDQ0OHYtODRjMC02LjYyNy01LjM3My0xMi0xMi0xMnYwek05MTYgMjI0aC02MTZjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MCA2MTZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMnYwaDYxNmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydjAtNjE2YzAtNi42MjctNS4zNzMtMTItMTItMTJ2MHoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlYTkyOyIgZ2x5cGgtbmFtZT0iaW5zdGFncmFtLW8iIGQ9Ik01MTIgODY3LjhjMTM2LjggMCAxNTMtMC42IDIwNi44LTMgNTAtMi4yIDc3LTEwLjYgOTUtMTcuNiAyMy44LTkuMiA0MS0yMC40IDU4LjgtMzguMiAxOC0xOCAyOS0zNSAzOC40LTU4LjggNy0xOCAxNS40LTQ1LjIgMTcuNi05NSAyLjQtNTQgMy03MC4yIDMtMjA2LjhzLTAuNi0xNTMtMy0yMDYuOGMtMi4yLTUwLTEwLjYtNzctMTcuNi05NS05LjItMjMuOC0yMC40LTQxLTM4LjItNTguOC0xOC0xOC0zNS0yOS01OC44LTM4LjQtMTgtNy00NS4yLTE1LjQtOTUtMTcuNi01NC0yLjQtNzAuMi0zLTIwNi44LTNzLTE1MyAwLjYtMjA2LjggM2MtNTAgMi4yLTc3IDEwLjYtOTUgMTcuNi0yMy44IDkuMi00MSAyMC40LTU4LjggMzguMi0xOCAxOC0yOSAzNS0zOC40IDU4LjgtNyAxOC0xNS40IDQ1LjItMTcuNiA5NS0yLjQgNTQtMyA3MC4yLTMgMjA2LjhzMC42IDE1MyAzIDIwNi44YzIuMiA1MCAxMC42IDc3IDE3LjYgOTUgOS4yIDIzLjggMjAuNCA0MSAzOC4yIDU4LjggMTggMTggMzUgMjkgNTguOCAzOC40IDE4IDcgNDUuMiAxNS40IDk1IDE3LjYgNTMuOCAyLjQgNzAgMyAyMDYuOCAzek01MTIgOTYwYy0xMzkgMC0xNTYuNC0wLjYtMjExLTMtNTQuNC0yLjQtOTEuOC0xMS4yLTEyNC4yLTIzLjgtMzMuOC0xMy4yLTYyLjQtMzAuNi05MC44LTU5LjItMjguNi0yOC40LTQ2LTU3LTU5LjItOTAuNi0xMi42LTMyLjYtMjEuNC02OS44LTIzLjgtMTI0LjItMi40LTU0LjgtMy03Mi4yLTMtMjExLjJzMC42LTE1Ni40IDMtMjExYzIuNC01NC40IDExLjItOTEuOCAyMy44LTEyNC4yIDEzLjItMzMuOCAzMC42LTYyLjQgNTkuMi05MC44IDI4LjQtMjguNCA1Ny00NiA5MC42LTU5IDMyLjYtMTIuNiA2OS44LTIxLjQgMTI0LjItMjMuOCA1NC42LTIuNCA3Mi0zIDIxMS0zczE1Ni40IDAuNiAyMTEgM2M1NC40IDIuNCA5MS44IDExLjIgMTI0LjIgMjMuOCAzMy42IDEzIDYyLjIgMzAuNiA5MC42IDU5czQ2IDU3IDU5IDkwLjZjMTIuNiAzMi42IDIxLjQgNjkuOCAyMy44IDEyNC4yIDIuNCA1NC42IDMgNzIgMyAyMTFzLTAuNiAxNTYuNC0zIDIxMWMtMi40IDU0LjQtMTEuMiA5MS44LTIzLjggMTI0LjItMTIuNiAzNC0zMCA2Mi42LTU4LjYgOTEtMjguNCAyOC40LTU3IDQ2LTkwLjYgNTktMzIuNiAxMi42LTY5LjggMjEuNC0xMjQuMiAyMy44LTU0LjggMi42LTcyLjIgMy4yLTIxMS4yIDMuMnYwek01MTIgNzExYy0xNDUuMiAwLTI2My0xMTcuOC0yNjMtMjYzczExNy44LTI2MyAyNjMtMjYzIDI2MyAxMTcuOCAyNjMgMjYzYzAgMTQ1LjItMTE3LjggMjYzLTI2MyAyNjN6TTUxMiAyNzcuNGMtOTQuMiAwLTE3MC42IDc2LjQtMTcwLjYgMTcwLjZzNzYuNCAxNzAuNiAxNzAuNiAxNzAuNmM5NC4yIDAgMTcwLjYtNzYuNCAxNzAuNi0xNzAuNnMtNzYuNC0xNzAuNi0xNzAuNi0xNzAuNnpNODQ2LjggNzIxLjRjMC0zMy45MS0yNy40OS02MS40LTYxLjQtNjEuNHMtNjEuNCAyNy40OS02MS40IDYxLjRjMCAzMy45MSAyNy40OSA2MS40IDYxLjQgNjEuNHM2MS40LTI3LjQ5IDYxLjQtNjEuNHoiIC8+CjwvZm9udD48L2RlZnM+PC9zdmc+) format('svg');font-weight:400;font-style:normal}[class*=" qligg-icon-"],[class^=qligg-icon-]{font-family:qligg!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.qligg-icon-video:before{content:"\e901"}.qligg-icon-gallery:before{content:"\e90d"}.qligg-icon-clock-o:before{content:"\e90c"}.qligg-icon-upload:before{content:"\e900"}.qligg-icon-share-o:before{content:"\e902"}.qligg-icon-comment:before{content:"\e903"}.qligg-icon-heart:before{content:"\e904"}.qligg-icon-instagram:before{content:"\e905"}.qligg-icon-prev:before{content:"\e906"}.qligg-icon-prev-o:before{content:"\e907"}.qligg-icon-next:before{content:"\e908"}.qligg-icon-next-o:before{content:"\e909"}.qligg-icon-heart-o:before{content:"\e90a"}.qligg-icon-comment-o:before{content:"\e90b"}.qligg-icon-instagram-o:before{content:"\ea92"}.insta-gallery-feed,.qligg-mfp-wrap{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1}.insta-gallery-feed .insta-gallery-actions,.insta-gallery-feed .insta-gallery-image,.insta-gallery-feed .insta-gallery-item{opacity:0}.insta-gallery-feed.loaded .insta-gallery-list .insta-gallery-item{transition:opacity .4s;opacity:1}.insta-gallery-feed.loaded .insta-gallery-list .insta-gallery-item.ig-image-loaded .insta-gallery-image{transition:all .4s;opacity:1}.insta-gallery-feed.loaded .insta-gallery-actions{transition:all .4s ease-in;opacity:1}.insta-gallery-feed .insta-gallery-spinner{position:relative;height:60px;width:auto;box-sizing:content-box;background-size:60px;background-position:50% 50%;background-repeat:no-repeat;background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJsb2FkZXItMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI0MHB4IiBoZWlnaHQ9IjQwcHgiIHZpZXdCb3g9IjAgMCA1MCA1MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTAgNTA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjZTJlMmUyIiBkPSJNNDMuOTM1LDI1LjE0NWMwLTEwLjMxOC04LjM2NC0xOC42ODMtMTguNjgzLTE4LjY4M2MtMTAuMzE4LDAtMTguNjgzLDguMzY1LTE4LjY4MywxOC42ODNoNC4wNjhjMC04LjA3MSw2LjU0My0xNC42MTUsMTQuNjE1LTE0LjYxNWM4LjA3MiwwLDE0LjYxNSw2LjU0MywxNC42MTUsMTQuNjE1SDQzLjkzNXoiIHRyYW5zZm9ybT0icm90YXRlKDE3OS4yNzMgMjUgMjUpIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPSJ4bWwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDI1IDI1IiB0bz0iMzYwIDI1IDI1IiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGVUcmFuc2Zvcm0+PC9wYXRoPjwvc3ZnPg==)}.insta-gallery-feed .insta-gallery-list:after{content:'';display:block;clear:both}.insta-gallery-feed .insta-gallery-list .insta-gallery-item{overflow:hidden;display:block;line-height:0}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-1{width:100%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-2{width:50%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-2.highlight{width:100%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-3{width:33.333%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-3.highlight{width:66.666%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-4{width:25%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-4.highlight{width:50%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-5{width:20%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-5.highlight{width:40%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-6{width:16.666%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-6.highlight{width:33.333%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-7{width:14.285%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-7.highlight{width:42.855%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-8{width:12.5%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-8.highlight{width:37.5}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-9{width:11.111%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-9.highlight{width:33.333%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-10{width:10%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-10.highlight{width:30%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-11{width:9.09%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-11.highlight{width:27.27%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-12{width:8.33%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-12.highlight{width:33.32%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-13{width:7.692%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-13.highlight{width:30.768%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-14{width:7.142%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-14.highlight{width:28.568%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-15{width:6.666%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-15.highlight{width:26.664%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-16{width:6.25%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-16.highlight{width:31.25%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-17{width:5.882%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-17.highlight{width:29.41%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-18{width:5.555%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-19{width:5.263%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-19.highlight{width:33.33%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-20{width:5%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item.insta-gallery-cols-20.highlight{width:30%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-item-wrap{width:100%;overflow:hidden}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image{transition:all .3s}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon{position:absolute;z-index:1;font-size:16px;color:#fff;opacity:.66;top:0;margin:10px;right:0;text-shadow:1px 1px rgba(0,0,0,.15);display:block;text-decoration:none}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon.qligg-icon-video{top:50%;left:50%;margin:-12px auto auto -8px;font-size:24px;width:24px;height:24px}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-icon.qligg-icon-instagram{top:auto;bottom:0;opacity:0;pointer-events:none}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card{background-color:#fff;line-height:1.2;padding:0 1em}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-caption,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info{display:flex;clear:both;margin:0;padding:1em 0}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-comments i,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-likes i,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .ig-card-link i{font-weight:700}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info{border-bottom:1px solid rgba(0,0,0,.05);font-size:.9em}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info .insta-gallery-card-date{display:inline-block;text-transform:uppercase;opacity:.6}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info .ig-card-comments,.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info .ig-card-likes{display:inline-block;margin-left:auto}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap{display:block;position:relative;text-align:center;background-color:#eee;cursor:pointer}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image{width:100%;height:auto;overflow:hidden;vertical-align:middle}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask{position:absolute;content:'';top:0;bottom:0;left:0;right:0;z-index:8;transition:all .5s ease-out;opacity:0;background:rgba(0,122,255,.55);width:100%;height:100%}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask-content{position:absolute;top:50%;left:0;right:0;margin:-10px 0 0 0;z-index:9;width:100%;color:#fff;transition:all .5s ease;opacity:0;line-height:20px;font-size:18px;text-align:center}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask-content>span{padding:0 4px;font-size:15px;font-weight:600;vertical-align:middle;line-height:20px}.insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask-content>span>i{font-size:12px;margin-right:3px;font-weight:700}.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-icon.qligg-icon-instagram{opacity:.8;pointer-events:all;z-index:99}.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-icon.qligg-icon-instagram:hover{opacity:1}.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-icon.qligg-icon-gallery,.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-icon.qligg-icon-video{opacity:0;pointer-events:none}.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-image-wrap .insta-gallery-image-mask-content{opacity:1}.insta-gallery-feed .insta-gallery-list .insta-gallery-item:hover .insta-gallery-image-wrap .insta-gallery-image-mask{opacity:1;transition:all .5s ease-out}.insta-gallery-feed .insta-gallery-profile{width:auto;margin:15px 0}.insta-gallery-feed .insta-gallery-profile,.insta-gallery-feed .insta-gallery-profile .avatar,.insta-gallery-feed .insta-gallery-profile .info{height:46px;display:flex;align-items:center}.insta-gallery-feed .insta-gallery-profile img{border:none;width:46px;height:46px;margin-right:10px;border-radius:60px}.insta-gallery-feed .insta-gallery-profile .avatar{margin:0 10px 0 0}.insta-gallery-feed .insta-gallery-profile .follow,.insta-gallery-feed .insta-gallery-profile .separator,.insta-gallery-feed .insta-gallery-profile .user{margin:0;padding:0;text-decoration:none;font-weight:600;font-size:16px;color:#262626;display:inline-block;vertical-align:middle;line-height:18px}.insta-gallery-feed .insta-gallery-profile .separator{color:#262626;margin-left:4px;margin-right:4px}.insta-gallery-feed .insta-gallery-profile .follow{color:#3897f0}.insta-gallery-feed .insta-gallery-profile .follow:hover{color:#262626}.insta-gallery-feed .insta-gallery-profile .description{line-height:18px;font-size:12px;font-weight:600}.insta-gallery-feed .insta-gallery-actions{text-align:center;margin:15px 0}.insta-gallery-feed .insta-gallery-actions .insta-gallery-button{display:inline-block;margin:0 3px;font-size:14px;padding:12px 24px;transition:all .3s;text-decoration:none;border-radius:2px;background-color:#c32a67;color:#fff}.insta-gallery-feed .insta-gallery-actions .insta-gallery-button>i{margin:0 8px 0 0;font-size:12px}.insta-gallery-feed .insta-gallery-actions .insta-gallery-button:focus,.insta-gallery-feed .insta-gallery-actions .insta-gallery-button:hover{box-shadow:inset 0 0 20px 20px rgba(255,255,255,.2)}.insta-gallery-feed .insta-gallery-actions .insta-gallery-button.follow{background-color:#408bd1}.insta-gallery-feed .insta-gallery-actions .insta-gallery-button.load{background-color:#262626}.insta-gallery-feed.insta-gallery-square .insta-gallery-list .insta-gallery-item{display:flex;justify-content:center;align-items:stretch;box-sizing:border-box}.insta-gallery-feed.insta-gallery-square .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap{display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%;padding-top:100%}.insta-gallery-feed.insta-gallery-square .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-link{position:static}.insta-gallery-feed.insta-gallery-square .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image{overflow:hidden;object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;right:0;left:0}.insta-gallery-feed[data-feed_layout=carousel]{overflow:hidden}.insta-gallery-feed[data-feed_layout=carousel] .insta-gallery-list{display:flex}.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-next,.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-prev{transition:all .3s;background:0 0;top:0;bottom:0;height:100%;margin:0;background:0 0;width:32px;display:flex;align-items:center}.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-next>i,.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-prev>i{text-align:center;color:#e23565;width:32px;font-size:26px}.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-next:hover,.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-prev:hover{background-color:rgba(0,0,0,.2)}.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-prev{left:0}.insta-gallery-feed[data-feed_layout=carousel] .swiper-button-next{right:0}.insta-gallery-feed[data-feed_layout=carousel] .swiper-pagination-bullet-active{background-color:#e23565}.insta-gallery-feed[data-feed_layout=gallery] .insta-gallery-list{display:flex;flex-wrap:wrap;justify-content:start;overflow:hidden}@media screen and (max-width:1023px) and (min-width:768px){.insta-gallery-feed[data-feed_layout=gallery] .insta-gallery-list .insta-gallery-item,.insta-gallery-feed[data-feed_layout=masonry] .insta-gallery-list .insta-gallery-item{min-width:33.333%}}@media screen and (max-width:767px){.insta-gallery-feed[data-feed_layout=gallery] .insta-gallery-list .insta-gallery-item,.insta-gallery-feed[data-feed_layout=masonry] .insta-gallery-list .insta-gallery-item{min-width:33.333%}}@media screen and (max-width:480px){.insta-gallery-feed[data-feed_layout=gallery] .insta-gallery-list .insta-gallery-item,.insta-gallery-feed[data-feed_layout=masonry] .insta-gallery-list .insta-gallery-item{min-width:50%}}.insta-gallery-feed[data-feed_layout=masonry] .insta-gallery-list .insta-gallery-item{position:absolute}.insta-gallery-alert{background-color:#e23565;padding:15px;color:#fff;border-radius:3px;margin:0 0 15px 0;width:100%;display:block}.insta-gallery-alert::after,.insta-gallery-alert::before{content:' ';display:table}.insta-gallery-alert::after{clear:both}.insta-gallery-alert .button{float:right}.insta-gallery-alert ul{padding:0;margin:0}.insta-gallery-alert li{list-style:none outside!important;padding-left:0!important;margin-left:0!important}.qligg-mfp-wrap .mfp-arrow{font-family:qligg!important;speak:none;font-style:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:30px;font-weight:700}.qligg-mfp-wrap .mfp-arrow:after{display:none}.qligg-mfp-wrap .mfp-arrow:before{border:none}.qligg-mfp-wrap .mfp-arrow.mfp-arrow-left:before{content:"\e906"}.qligg-mfp-wrap .mfp-arrow.mfp-arrow-right:before{content:"\e908"}.qligg-mfp-wrap .mfp-container{cursor:pointer!important}.qligg-mfp-wrap .mfp-container .mfp-close{position:fixed;top:30px;right:10px;color:#fff;font-weight:400;font-size:30px;margin:0;height:auto;line-height:1;cursor:pointer!important;font-size:24px;content:'×'}.qligg-mfp-wrap .mfp-container .mfp-content{width:auto;max-width:90%;margin:0 auto}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure>img,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure>video{max-height:70vh!important;max-width:80vw!important}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-img{padding:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure{position:relative;padding:0;overflow:hidden!important;border-radius:3px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure:after{display:none}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.left{padding-left:300px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.left .mfp-bottom-bar{border-right:1px solid #eee;top:0;bottom:0;left:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.right{padding-right:300px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.right .mfp-bottom-bar{border-left:1px solid #eee;top:0;bottom:0;right:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.left .mfp-bottom-bar,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.right .mfp-bottom-bar{width:300px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.bottom .mfp-bottom-bar,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.top .mfp-bottom-bar{left:0;right:0;overflow-y:auto;overflow-x:hidden;width:100%;min-height:50px;max-height:100px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.bottom{padding-bottom:50px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.bottom .mfp-bottom-bar{border-top:1px solid #eee;bottom:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.top{padding-top:50px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure.top .mfp-bottom-bar{border-bottom:1px solid #eee;top:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar{top:auto;bottom:auto;right:auto;left:auto;background-color:#fff;margin:0;padding:0;line-height:1.4;text-align:left}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title{font-size:13px;font-weight:400;color:#262626;padding:0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title a{font-weight:700;color:#262626}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title a:hover{color:#3897f0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-caption,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-icons,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-user{display:block;clear:both;margin:0;padding:15px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-caption{padding-top:0;padding-bottom:0;margin-bottom:15px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-icons .mfp-counter,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-icons .mfp-link{position:inherit;display:inline-block;font-size:12px;font-weight:400;color:#999;margin:0 15px 0 0;line-height:1}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-icons .mfp-link:hover{color:#3897f0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-comments i,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-likes i,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-link i{margin:0 4px 0 0;font-weight:700}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info{border-top:1px solid #eee}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info .mfp-date{text-transform:uppercase;font-size:12px;color:#999;float:right;position:relative;bottom:-1px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info .mfp-comments,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info .mfp-date,.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-info .mfp-likes{display:inline-block;margin:0 5px 0 0}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-user{display:flex;align-items:center;border-bottom:1px solid #eee;width:auto}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-user img{border:none;width:32px;height:32px;margin-right:10px;border-radius:40px}.qligg-mfp-wrap .mfp-container .mfp-content .mfp-bottom-bar .mfp-title .mfp-user a{margin:0;padding:0;text-decoration:none;font-size:13px}.insta-gallery-feed .swiper-button-next:after,.insta-gallery-feed .swiper-button-next:before,.insta-gallery-feed .swiper-button-prev:after,.insta-gallery-feed .swiper-button-prev:before,.insta-gallery-feed .swiper-container-rtl .swiper-button-next:after,.insta-gallery-feed .swiper-container-rtl .swiper-button-next:before,.insta-gallery-feed .swiper-container-rtl .swiper-button-prev:after,.insta-gallery-feed .swiper-container-rtl .swiper-button-prev:before{display:none;content:''}.instagal-ie-8 .insta-gallery-spinner{display:none}.instagal-ie-8 insta-gallery-list .insta-gallery-item{max-width:33.333%;float:left}.instagal-ie-8 insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap:hover:after{background:0 0}.instagal-ie-8 .swiper-button-prev{display:none}.instagal-ie-8 .swiper-button-next{display:none}.instagal-ie-9 .insta-gallery-spinner{display:none}.instagal-ie-9 insta-gallery-list .insta-gallery-item{max-width:33.333%;float:left}.instagal-ie-9 .swiper-button-prev{display:none}.instagal-ie-9 .swiper-button-next{display:none}.igblock-wrap-IElte8 insta-gallery-list .insta-gallery-item{width:25%;float:left}.igblock-wrap-IElte8 insta-gallery-list:after{clear:both;display:block;content:""}
 
assets/frontend/js/qligg.js CHANGED
@@ -236,8 +236,6 @@
236
  return;
237
  }
238
 
239
- console.log('options', options);
240
-
241
  $('.insta-gallery-item', $wrap).magnificPopup({
242
  type: 'inline',
243
  callbacks: {
@@ -246,7 +244,7 @@
246
  },
247
  elementParse: function (item) {
248
 
249
- var media = '', profile = '', counter = '', caption = '', likes = '';
250
 
251
  //if (item.el.data('item').type == 'video') {
252
  // media = '<video autoplay>' +
@@ -255,24 +253,39 @@
255
  //} else if (item.el.data('item').type == 'gallery') {
256
  //media = 'this is a gallery';
257
  //} else {
 
 
 
258
  media = '<img src="' + item.el.data('item').images.standard + '"/>'
259
  //}
260
 
261
  counter = '<div class="mfp-icons"><div class="mfp-counter">' + (item.index + 1) + ' / ' + $('.insta-gallery-item', $wrap).length + '</div><a class="mfp-link" href="' + item.el.data('item').link + '" target="_blank" rel="noopener"><i class="qligg-icon-instagram"></i>Instagram</a></div>';
262
 
263
  if (options.popup.profile) {
264
- profile = '<div class="mfp-user"><img src="' + options.profile.picture + '"><a href="' + options.profile.link + '" title="' + options.profile.name + '" target="_blank" rel="noopener">' + options.profile.user + '</a></div>';
265
  }
266
 
267
  if (options.popup.caption) {
268
  caption = '<div class="mfp-caption">' + item.el.data('item').caption + '</div>';
269
  }
270
 
 
 
 
 
 
 
 
 
 
 
 
 
271
  if (options.popup.likes) {
272
- likes = '<div class="mfp-info"><div class="mfp-likes"><i class="qligg-icon-heart"></i>' + item.el.data('item').likes + '</div><div class="mfp-comments"><i class="qligg-icon-comment"></i>' + item.el.data('item').comments + '</div><div class="mfp-date">' + item.el.data('item').date + '</div></div>';
273
  }
274
 
275
- item.src = '<div class="mfp-figure ' + options.popup.align + '">' + media + '<div class="mfp-close"></div><div class="mfp-bottom-bar"><div class="mfp-title">' + profile + counter + caption + likes + '</div></div></div>';
276
  }
277
  },
278
  gallery: {
236
  return;
237
  }
238
 
 
 
239
  $('.insta-gallery-item', $wrap).magnificPopup({
240
  type: 'inline',
241
  callbacks: {
244
  },
245
  elementParse: function (item) {
246
 
247
+ var media = '', profile = '', counter = '', caption = '', info = '', likes = '', date = '', comments = '';
248
 
249
  //if (item.el.data('item').type == 'video') {
250
  // media = '<video autoplay>' +
253
  //} else if (item.el.data('item').type == 'gallery') {
254
  //media = 'this is a gallery';
255
  //} else {
256
+
257
+ console.log(item.el.data('item').images.standard);
258
+
259
  media = '<img src="' + item.el.data('item').images.standard + '"/>'
260
  //}
261
 
262
  counter = '<div class="mfp-icons"><div class="mfp-counter">' + (item.index + 1) + ' / ' + $('.insta-gallery-item', $wrap).length + '</div><a class="mfp-link" href="' + item.el.data('item').link + '" target="_blank" rel="noopener"><i class="qligg-icon-instagram"></i>Instagram</a></div>';
263
 
264
  if (options.popup.profile) {
265
+ profile = '<div class="mfp-user"><img src="' + options.profile.pic_url + '"><a href="' + options.profile.link + '" title="' + options.profile.full_name + '" target="_blank" rel="noopener">' + options.profile.username + '</a></div>';
266
  }
267
 
268
  if (options.popup.caption) {
269
  caption = '<div class="mfp-caption">' + item.el.data('item').caption + '</div>';
270
  }
271
 
272
+ if (item.el.data('item').date) {
273
+ date = '<div class="mfp-date">' + item.el.data('item').date + '</div>';
274
+ }
275
+
276
+ if (item.el.data('item').comments) {
277
+ comments = '<div class="mfp-comments"><i class="qligg-icon-comment"></i>' + item.el.data('item').comments + '</div>';
278
+ }
279
+
280
+ if (item.el.data('item').likes) {
281
+ likes = '<div class="mfp-likes"><i class="qligg-icon-heart"></i>' + item.el.data('item').likes + '</div>';
282
+ }
283
+
284
  if (options.popup.likes) {
285
+ info = '<div class="mfp-info">' + likes + comments + date + '</div>';
286
  }
287
 
288
+ item.src = '<div class="mfp-figure ' + options.popup.align + '">' + media + '<div class="mfp-close"></div><div class="mfp-bottom-bar"><div class="mfp-title">' + profile + counter + caption + info + '</div></div></div>';
289
  }
290
  },
291
  gallery: {
assets/frontend/js/qligg.min.js CHANGED
@@ -1 +1 @@
1
- !function($){var swiper_index=0,$swipers={};function qligg_load_item_images($item,next_max_id){var $wrap=$(".insta-gallery-list",$item),$spinner=$(".insta-gallery-spinner",$item),feed=$item.data("feed");$.ajax({url:qligg.ajax_url,type:"post",timeout:3e4,data:{action:"qligg_load_item_images",next_max_id:next_max_id,feed:JSON.stringify(feed)},beforeSend:function(){$spinner.show()},success:function(response){if(!0!==response.success)return $wrap.append($(response.data)),void $spinner.hide();var $images=$(response.data);$wrap.append($images).trigger("qligg.loaded",[$images])},complete:function(){},error:function(jqXHR,textStatus){$spinner.hide(),console.log(textStatus)}})}$(".insta-gallery-feed").on("qligg.loaded",(function(e,images){var $item=$(e.delegateTarget),$wrap=$(".insta-gallery-list",$item),$spinner=$(".insta-gallery-spinner",$item),$button=$(".insta-gallery-button.load",$item),options=$item.data("feed"),total=$(images).length,loaded=0;total&&$wrap.find(".insta-gallery-image").load((function(e){++loaded>=total&&$wrap.trigger("qligg.imagesLoaded",[images])})),total<options.limit&&($spinner.hide(),setTimeout((function(){$button.fadeOut()}),300))})),$(".insta-gallery-feed").on("qligg.imagesLoaded",(function(e){var $item=$(e.delegateTarget),$spinner;$(".insta-gallery-spinner",$item).hide()})),$(".insta-gallery-feed[data-feed_layout=gallery]").on("qligg.imagesLoaded",(function(e,images){var $item;$(e.delegateTarget).addClass("loaded"),$(images).each((function(i,item){setTimeout((function(){$(item).addClass("ig-image-loaded")}),150+30*i)}))})),$(".insta-gallery-feed[data-feed_layout=carousel]").on("qligg.imagesLoaded",(function(e,images){var $item;$(e.delegateTarget).addClass("loaded"),$(images).each((function(i,item){$(item).addClass("ig-image-loaded")}))})),$(".insta-gallery-feed[data-feed_layout=carousel]").on("qligg.imagesLoaded",(function(e,images){var $item=$(e.delegateTarget),$swiper=$(".swiper-container",$item),options=$item.data("feed");options.carousel.slides=options.carousel.slidespv,swiper_index++,$swipers[swiper_index]=new Swiper($swiper,{loop:!0,autoHeight:!0,observer:!0,observeParents:!0,slidesPerView:1,spaceBetween:2,autoplay:!!options.carousel.autoplay&&{delay:parseInt(options.carousel.autoplay_interval)},pagination:{el:".swiper-pagination",dynamicBullets:!0,clickable:!0,type:"bullets"},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},breakpoints:{320:{slidesPerView:2,spaceBetween:2},480:{spaceBetween:parseInt(options.spacing),slidesPerView:Math.min(2,parseInt(options.carousel.slides))},768:{spaceBetween:parseInt(options.spacing),slidesPerView:Math.min(3,parseInt(options.carousel.slides))},1024:{spaceBetween:parseInt(options.spacing),slidesPerView:parseInt(options.carousel.slides)}}})})),$(".insta-gallery-feed[data-feed_layout=masonry]").on("qligg.imagesLoaded",(function(e,images){var $item=$(e.delegateTarget),$wrap=$(".insta-gallery-list",$item);$wrap.data("masonry")?$wrap.masonry("appended",images,!1):$wrap.masonry({itemSelector:".insta-gallery-item",isResizable:!0,isAnimated:!1,transitionDuration:0,percentPosition:!0,columnWidth:".insta-gallery-item:last-child"})})),$(".insta-gallery-feed[data-feed_layout=masonry]").on("layoutComplete",(function(e,items){var $item;$(e.delegateTarget).addClass("loaded"),$(items).each((function(i,item){$(item.element).addClass("ig-image-loaded")}))})),$(".insta-gallery-feed").on("qligg.loaded",(function(e){var $item=$(e.delegateTarget),$wrap=$(".insta-gallery-list",$item),options=$item.data("feed");$(".insta-gallery-item .insta-gallery-icon.qligg-icon-instagram",$wrap).on("click",(function(e){e.stopPropagation()})),options.popup.display&&(console.log("options",options),$(".insta-gallery-item",$wrap).magnificPopup({type:"inline",callbacks:{beforeOpen:function(){this.st.mainClass=this.st.mainClass+" qligg-mfp-wrap"},elementParse:function(item){var media="",profile="",counter="",caption="",likes="";media='<img src="'+item.el.data("item").images.standard+'"/>',counter='<div class="mfp-icons"><div class="mfp-counter">'+(item.index+1)+" / "+$(".insta-gallery-item",$wrap).length+'</div><a class="mfp-link" href="'+item.el.data("item").link+'" target="_blank" rel="noopener"><i class="qligg-icon-instagram"></i>Instagram</a></div>',options.popup.profile&&(profile='<div class="mfp-user"><img src="'+options.profile.picture+'"><a href="'+options.profile.link+'" title="'+options.profile.name+'" target="_blank" rel="noopener">'+options.profile.user+"</a></div>"),options.popup.caption&&(caption='<div class="mfp-caption">'+item.el.data("item").caption+"</div>"),options.popup.likes&&(likes='<div class="mfp-info"><div class="mfp-likes"><i class="qligg-icon-heart"></i>'+item.el.data("item").likes+'</div><div class="mfp-comments"><i class="qligg-icon-comment"></i>'+item.el.data("item").comments+'</div><div class="mfp-date">'+item.el.data("item").date+"</div></div>"),item.src='<div class="mfp-figure '+options.popup.align+'">'+media+'<div class="mfp-close"></div><div class="mfp-bottom-bar"><div class="mfp-title">'+profile+counter+caption+likes+"</div></div></div>"}},gallery:{enabled:!0}}))})),$(".insta-gallery-feed").on("click",".insta-gallery-button.load",(function(e){e.preventDefault();var $item=$(e.delegateTarget),next_max_id;if(!$item.hasClass("loaded"))return!1;qligg_load_item_images($item,$(".insta-gallery-list .insta-gallery-item:last-child",$item).data("item").i)})),$(".insta-gallery-feed").each((function(index,item){var $item=$(item);if($item.hasClass("loaded"))return!1;qligg_load_item_images($item,0)})),-1!=navigator.appVersion.indexOf("MSIE 8.")&&(document.body.className+=" instagal-ie-8"),-1!=navigator.appVersion.indexOf("MSIE 9.")&&(document.body.className+=" instagal-ie-9")}(jQuery);
1
+ !function($){var swiper_index=0,$swipers={};function qligg_load_item_images($item,next_max_id){var $wrap=$(".insta-gallery-list",$item),$spinner=$(".insta-gallery-spinner",$item),feed=$item.data("feed");$.ajax({url:qligg.ajax_url,type:"post",timeout:3e4,data:{action:"qligg_load_item_images",next_max_id:next_max_id,feed:JSON.stringify(feed)},beforeSend:function(){$spinner.show()},success:function(response){if(!0!==response.success)return $wrap.append($(response.data)),void $spinner.hide();var $images=$(response.data);$wrap.append($images).trigger("qligg.loaded",[$images])},complete:function(){},error:function(jqXHR,textStatus){$spinner.hide(),console.log(textStatus)}})}$(".insta-gallery-feed").on("qligg.loaded",(function(e,images){var $item=$(e.delegateTarget),$wrap=$(".insta-gallery-list",$item),$spinner=$(".insta-gallery-spinner",$item),$button=$(".insta-gallery-button.load",$item),options=$item.data("feed"),total=$(images).length,loaded=0;total&&$wrap.find(".insta-gallery-image").load((function(e){++loaded>=total&&$wrap.trigger("qligg.imagesLoaded",[images])})),total<options.limit&&($spinner.hide(),setTimeout((function(){$button.fadeOut()}),300))})),$(".insta-gallery-feed").on("qligg.imagesLoaded",(function(e){var $item=$(e.delegateTarget),$spinner;$(".insta-gallery-spinner",$item).hide()})),$(".insta-gallery-feed[data-feed_layout=gallery]").on("qligg.imagesLoaded",(function(e,images){var $item;$(e.delegateTarget).addClass("loaded"),$(images).each((function(i,item){setTimeout((function(){$(item).addClass("ig-image-loaded")}),150+30*i)}))})),$(".insta-gallery-feed[data-feed_layout=carousel]").on("qligg.imagesLoaded",(function(e,images){var $item;$(e.delegateTarget).addClass("loaded"),$(images).each((function(i,item){$(item).addClass("ig-image-loaded")}))})),$(".insta-gallery-feed[data-feed_layout=carousel]").on("qligg.imagesLoaded",(function(e,images){var $item=$(e.delegateTarget),$swiper=$(".swiper-container",$item),options=$item.data("feed");options.carousel.slides=options.carousel.slidespv,swiper_index++,$swipers[swiper_index]=new Swiper($swiper,{loop:!0,autoHeight:!0,observer:!0,observeParents:!0,slidesPerView:1,spaceBetween:2,autoplay:!!options.carousel.autoplay&&{delay:parseInt(options.carousel.autoplay_interval)},pagination:{el:".swiper-pagination",dynamicBullets:!0,clickable:!0,type:"bullets"},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},breakpoints:{320:{slidesPerView:2,spaceBetween:2},480:{spaceBetween:parseInt(options.spacing),slidesPerView:Math.min(2,parseInt(options.carousel.slides))},768:{spaceBetween:parseInt(options.spacing),slidesPerView:Math.min(3,parseInt(options.carousel.slides))},1024:{spaceBetween:parseInt(options.spacing),slidesPerView:parseInt(options.carousel.slides)}}})})),$(".insta-gallery-feed[data-feed_layout=masonry]").on("qligg.imagesLoaded",(function(e,images){var $item=$(e.delegateTarget),$wrap=$(".insta-gallery-list",$item);$wrap.data("masonry")?$wrap.masonry("appended",images,!1):$wrap.masonry({itemSelector:".insta-gallery-item",isResizable:!0,isAnimated:!1,transitionDuration:0,percentPosition:!0,columnWidth:".insta-gallery-item:last-child"})})),$(".insta-gallery-feed[data-feed_layout=masonry]").on("layoutComplete",(function(e,items){var $item;$(e.delegateTarget).addClass("loaded"),$(items).each((function(i,item){$(item.element).addClass("ig-image-loaded")}))})),$(".insta-gallery-feed").on("qligg.loaded",(function(e){var $item=$(e.delegateTarget),$wrap=$(".insta-gallery-list",$item),options=$item.data("feed");$(".insta-gallery-item .insta-gallery-icon.qligg-icon-instagram",$wrap).on("click",(function(e){e.stopPropagation()})),options.popup.display&&$(".insta-gallery-item",$wrap).magnificPopup({type:"inline",callbacks:{beforeOpen:function(){this.st.mainClass=this.st.mainClass+" qligg-mfp-wrap"},elementParse:function(item){var media="",profile="",counter="",caption="",info="",likes="",date="",comments="";console.log(item.el.data("item").images.standard),media='<img src="'+item.el.data("item").images.standard+'"/>',counter='<div class="mfp-icons"><div class="mfp-counter">'+(item.index+1)+" / "+$(".insta-gallery-item",$wrap).length+'</div><a class="mfp-link" href="'+item.el.data("item").link+'" target="_blank" rel="noopener"><i class="qligg-icon-instagram"></i>Instagram</a></div>',options.popup.profile&&(profile='<div class="mfp-user"><img src="'+options.profile.pic_url+'"><a href="'+options.profile.link+'" title="'+options.profile.full_name+'" target="_blank" rel="noopener">'+options.profile.username+"</a></div>"),options.popup.caption&&(caption='<div class="mfp-caption">'+item.el.data("item").caption+"</div>"),item.el.data("item").date&&(date='<div class="mfp-date">'+item.el.data("item").date+"</div>"),item.el.data("item").comments&&(comments='<div class="mfp-comments"><i class="qligg-icon-comment"></i>'+item.el.data("item").comments+"</div>"),item.el.data("item").likes&&(likes='<div class="mfp-likes"><i class="qligg-icon-heart"></i>'+item.el.data("item").likes+"</div>"),options.popup.likes&&(info='<div class="mfp-info">'+likes+comments+date+"</div>"),item.src='<div class="mfp-figure '+options.popup.align+'">'+media+'<div class="mfp-close"></div><div class="mfp-bottom-bar"><div class="mfp-title">'+profile+counter+caption+info+"</div></div></div>"}},gallery:{enabled:!0}})})),$(".insta-gallery-feed").on("click",".insta-gallery-button.load",(function(e){e.preventDefault();var $item=$(e.delegateTarget),next_max_id;if(!$item.hasClass("loaded"))return!1;qligg_load_item_images($item,$(".insta-gallery-list .insta-gallery-item:last-child",$item).data("item").i)})),$(".insta-gallery-feed").each((function(index,item){var $item=$(item);if($item.hasClass("loaded"))return!1;qligg_load_item_images($item,0)})),-1!=navigator.appVersion.indexOf("MSIE 8.")&&(document.body.className+=" instagal-ie-8"),-1!=navigator.appVersion.indexOf("MSIE 9.")&&(document.body.className+=" instagal-ie-9")}(jQuery);
includes/apiV2.php ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if (!defined('ABSPATH'))
4
+ exit;
5
+
6
+ if (!class_exists('QLIGG_API_V2')) {
7
+
8
+ class QLIGG_API_V2
9
+ {
10
+
11
+ public $message;
12
+ public $instagram_id = '504270170253170';
13
+ public $instagram_url = 'https://www.instagram.com';
14
+ public $instagram_graph_url = 'https://graph.instagram.com';
15
+ public $instagram_redirect_uri = 'https://socialfeed.quadlayers.com/index.php';
16
+
17
+ public $facebook_id = '834353156975525';
18
+ public $facebook_url = 'https://www.facebook.com';
19
+ public $facebook_graph_url = 'https://graph.facebook.com';
20
+ public $facebook_redirect_uri = 'https://socialfeed.quadlayers.com/facebook.php';
21
+
22
+ function getAccessTokenLink()
23
+ {
24
+
25
+ $state = admin_url('admin.php');
26
+ $scope = 'user_profile,user_media';
27
+
28
+ return "{$this->instagram_url}/oauth/authorize?app_id={$this->instagram_id}&redirect_uri={$this->instagram_redirect_uri}&response_type=code&scope={$scope}&state={$state}";
29
+ }
30
+
31
+ function getFacebookAccessTokenLink()
32
+ {
33
+
34
+ $state = admin_url('admin.php');
35
+ $scope = 'manage_pages,instagram_basic,instagram_manage_insights,instagram_manage_comments';
36
+
37
+ return "{$this->facebook_url}/dialog/oauth?client_id={$this->facebook_id}&redirect_uri={$this->facebook_redirect_uri}&response_type=code&scope={$scope}&state={$state}";
38
+ }
39
+
40
+ function getUserProfile($access_token)
41
+ {
42
+
43
+ $response = $this->remoteGet("{$this->instagram_graph_url}/me", array(
44
+ 'fields' => 'id,media_count,username,account_type',
45
+ 'access_token' => $access_token
46
+ ));
47
+
48
+ return (array) $response;
49
+ }
50
+
51
+ function getTagId($hashtag = null)
52
+ {
53
+
54
+ $access_token = null;
55
+ $account_id = null;
56
+
57
+ $response = $this->remoteGet("{$this->facebook_graph_url}/ig_hashtag_search", array(
58
+ 'user_id' => $account_id,
59
+ 'q' => urlencode($hashtag),
60
+ 'access_token' => $access_token
61
+ ));
62
+
63
+ if (isset($response['data'][0]['id'])) {
64
+ return $response['data'][0]['id'];
65
+ }
66
+ }
67
+
68
+ function getTagMedia($hashtag = null, $after = null)
69
+ {
70
+
71
+ if ($hashtag_id = $this->getTagId($hashtag)) {
72
+
73
+ $access_token = null;
74
+ $account_id = null;
75
+
76
+ $limit = 60; //$num = min( $num, 200 );
77
+ $order_by = 'recent_media'; //top_media
78
+
79
+ $response = $this->remoteGet("{$this->facebook_graph_url}/{$hashtag_id}/{$order_by}", array(
80
+ 'after' => $after,
81
+ 'user_id' => $account_id,
82
+ 'limit' => $limit,
83
+ 'fields' => 'media_url,caption,id,media_type,comments_count,like_count,permalink,children{media_url,id,media_type,permalink}',
84
+ 'access_token' => $access_token
85
+ ));
86
+
87
+ return (array) $response;
88
+ }
89
+ }
90
+
91
+ function getUserMedia($access_token, $after = null)
92
+ {
93
+
94
+ $limit = 60; //$num = min( $num, 200 );
95
+
96
+ $response = $this->remoteGet("{$this->instagram_graph_url}/me/media", array(
97
+ 'after' => $after,
98
+ 'limit' => $limit,
99
+ 'fields' => 'media_url,thumbnail_url,caption,id,media_type,timestamp,username,comments_count,like_count,permalink,children{media_url,id,media_type,timestamp,permalink,thumbnail_url}',
100
+ 'access_token' => $access_token
101
+ ));
102
+
103
+ // error_log('$response: ' . json_encode($response, JSON_PRETTY_PRINT));
104
+
105
+ return (array) $response;
106
+ }
107
+
108
+ function setupMediaItems($data, $last_id = null)
109
+ {
110
+
111
+ static $load = false;
112
+ static $i = 1;
113
+
114
+ if (!$last_id) {
115
+ $load = true;
116
+ }
117
+
118
+ $instagram_items = array();
119
+
120
+ if (is_array($data) && !empty($data)) {
121
+
122
+ foreach ($data as $item) {
123
+
124
+ if ($load) {
125
+
126
+ preg_match_all("/#(\\w+)/", @$item['caption'], $hashtags);
127
+
128
+ $media_url = ($item['media_type'] === 'CAROUSEL_ALBUM') ? @$item['children']['data'][0]['media_url'] : @$item['media_url'];
129
+ // error_log(json_encode($item, JSON_PRETTY_PRINT));
130
+ $date = isset($item['timestamp']) ? date_i18n('j F, Y', strtotime(trim(str_replace(array('T', '+', ' 0000'), ' ', $item['timestamp'])))) : false;
131
+
132
+ $instagram_items[] = array(
133
+ 'i' => $i,
134
+ 'id' => $item['id'],
135
+ 'type' => strtolower(str_replace('_ALBUM', '', $item['media_type'])),
136
+ 'media' => $media_url,
137
+ 'images' => array(
138
+ 'standard' => "{$item['permalink']}media?size=l",
139
+ 'medium' => "{$item['permalink']}media?size=m",
140
+ 'small' => "{$item['permalink']}media?size=t",
141
+ ),
142
+ 'videos' => array(
143
+ 'standard' => "{$item['permalink']}media?size=l",
144
+ 'medium' => "{$item['permalink']}media?size=m",
145
+ 'small' => "{$item['permalink']}media?size=t",
146
+ ),
147
+ 'likes' => isset($item['like_count']) ? $item['like_count'] : false,
148
+ 'comments' => isset($item['comments_count']) ? $item['comments_count'] : false,
149
+ 'caption' => preg_replace('/(?<!\S)#([0-9a-zA-Z]+)/', "<a href=\"{$this->instagram_url}/explore/tags/$1\">#$1</a>", htmlspecialchars(@$item['caption'])),
150
+ 'hashtags' => @$hashtags[1],
151
+ 'link' => $item['permalink'],
152
+ // 'user_id' => @$item['user']['id'],
153
+ 'date' => $date
154
+ );
155
+ }
156
+ if ($last_id && ($last_id == $i)) {
157
+ $i = $last_id;
158
+ $load = true;
159
+ }
160
+ $i++;
161
+ }
162
+ }
163
+
164
+ return $instagram_items;
165
+ }
166
+
167
+ function validateResponse($json = null)
168
+ {
169
+
170
+ if (!($response = json_decode(wp_remote_retrieve_body($json), true)) || 200 !== wp_remote_retrieve_response_code($json)) {
171
+
172
+ if (isset($response['error']['message'])) {
173
+ $this->message = $response['error']['message'];
174
+ return array(
175
+ 'error' => 1,
176
+ 'message' => $this->message
177
+ );
178
+ }
179
+
180
+ if (is_wp_error($json)) {
181
+ $response = array(
182
+ 'error' => 1,
183
+ 'message' => $json->get_error_message()
184
+ );
185
+ } else {
186
+ $response = array(
187
+ 'error' => 1,
188
+ 'message' => esc_html__('Unknow error occurred, please try again', 'insta-gallery')
189
+ );
190
+ }
191
+ }
192
+
193
+ return $response;
194
+ }
195
+
196
+ public function remoteGet($url = null, $args = array())
197
+ {
198
+
199
+ $url = add_query_arg($args, trailingslashit($url));
200
+
201
+ // error_log($url);
202
+
203
+ $response = $this->validateResponse(wp_remote_get($url, array('timeout' => 29)));
204
+
205
+ return $response;
206
+ }
207
+
208
+ // Return message
209
+ // ---------------------------------------------------------------------------
210
+ public function getMessage()
211
+ {
212
+ return $this->message;
213
+ }
214
+
215
+ public function setMessage($message = '')
216
+ {
217
+ $this->message = $message;
218
+ }
219
+ }
220
+ }
includes/backend.php CHANGED
@@ -16,8 +16,8 @@ class QLIGG_Backend {
16
  function init() {
17
  add_action('admin_enqueue_scripts', array($this, 'add_js'));
18
  add_action('admin_enqueue_scripts', array($this, 'dequeue_js'), 999);
19
- // add_action('admin_head', array($this, 'add_css'));
20
 
 
21
  add_filter('default_option_qligg', array($this, 'generate_db'));
22
  add_filter('sanitize_option_qligg', 'wp_unslash');
23
  }
16
  function init() {
17
  add_action('admin_enqueue_scripts', array($this, 'add_js'));
18
  add_action('admin_enqueue_scripts', array($this, 'dequeue_js'), 999);
 
19
 
20
+ //1326, delete generate_db
21
  add_filter('default_option_qligg', array($this, 'generate_db'));
22
  add_filter('sanitize_option_qligg', 'wp_unslash');
23
  }
includes/compatibility.php CHANGED
@@ -3,29 +3,6 @@
3
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Token.php');
4
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Feed.php');
5
 
6
- if(!class_exists('QLIGG_Settings')) {
7
-
8
- class QLIGG_Settings {
9
-
10
- protected static $instance;
11
-
12
- // fix required header in license tab
13
- function settings_header() {
14
- global $submenu;
15
- include (QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
16
- }
17
-
18
- public static function instance() {
19
- if (!isset(self::$instance)) {
20
- self::$instance = new self();
21
- }
22
- return self::$instance;
23
- }
24
-
25
- }
26
-
27
- }
28
-
29
  class QLIGG_Compatibility {
30
 
31
  protected static $instance;
@@ -327,11 +304,33 @@ class QLIGG_Compatibility {
327
  return $new_instagram_feeds;
328
  }
329
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  function init() {
331
  add_filter('option_insta_gallery_iac ', array($this, 'rename_insta_gallery_token'), 10);
332
  add_filter('option_insta_gallery_token', array($this, 'rename_insta_gallery_token'), 10);
333
  add_filter('option_insta_gallery_items', array($this, 'rename_insta_gallery_items_223'), 10);
334
  add_filter('default_option_insta_gallery_feeds', array($this, 'rename_insta_gallery_items_266'), 10);
 
335
  add_action('init', array($this, 'premium_compatibility'));
336
  }
337
 
@@ -347,3 +346,78 @@ class QLIGG_Compatibility {
347
  }
348
 
349
  QLIGG_Compatibility::instance();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Token.php');
4
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Feed.php');
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  class QLIGG_Compatibility {
7
 
8
  protected static $instance;
304
  return $new_instagram_feeds;
305
  }
306
 
307
+ // Backward compatibility v2.7.1 to 2.8.0
308
+ // -----------------------------------------------------------------------
309
+ function rename_insta_gallery_token_271($new_accounts = array()) {
310
+
311
+ // if dosent exists return
312
+ if (!$old_accounts = get_option('insta_gallery_token')) {
313
+ return $new_accounts;
314
+ }
315
+
316
+ // create compatibility
317
+ foreach ($old_accounts as $id => $access_token) {
318
+ $new_accounts[$id] = array(
319
+ 'id' => $id,
320
+ 'account_type' => 'BASIC',
321
+ 'access_token' => $access_token
322
+ );
323
+ }
324
+
325
+ return $new_accounts;
326
+ }
327
+
328
  function init() {
329
  add_filter('option_insta_gallery_iac ', array($this, 'rename_insta_gallery_token'), 10);
330
  add_filter('option_insta_gallery_token', array($this, 'rename_insta_gallery_token'), 10);
331
  add_filter('option_insta_gallery_items', array($this, 'rename_insta_gallery_items_223'), 10);
332
  add_filter('default_option_insta_gallery_feeds', array($this, 'rename_insta_gallery_items_266'), 10);
333
+ add_filter('default_option_insta_gallery_accounts', array($this, 'rename_insta_gallery_token_271'), 10);
334
  add_action('init', array($this, 'premium_compatibility'));
335
  }
336
 
346
  }
347
 
348
  QLIGG_Compatibility::instance();
349
+
350
+ // Get user feed
351
+ // -----------------------------------------------------------------------------
352
+ function qligg_get_user_items_old($user_id = null, $limit = 12, $next_max_id = null, $max_id = null) {
353
+
354
+ global $qligg_api;
355
+
356
+ if (!$user_id) {
357
+ $qligg_api->set_message(esc_html__('Please update Instagram User in the gallery settings tab.', 'insta-gallery'));
358
+ return;
359
+ }
360
+
361
+ $token_model = new QLIGG_Token();
362
+ $tokens = $token_model->get_tokens();
363
+
364
+ if (empty($tokens[$user_id])) {
365
+ $qligg_api->set_message(esc_html__('Please update Instagram Access Token in the account settings tab.', 'insta-gallery'));
366
+ return;
367
+ }
368
+
369
+ $settings_model = new QLIGG_Setting();
370
+ $settings = $settings_model->get_settings();
371
+
372
+ $tk = "insta_gallery_user_items_{$user_id}_{$max_id}";
373
+
374
+ // Get any existing copy of our transient data
375
+ if (QLIGG_DEVELOPER || false === ($response = get_transient($tk))) {
376
+ if ($response = $qligg_api->get_user_items($tokens[$user_id], $max_id)) {
377
+ set_transient($tk, $response, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
378
+ }
379
+ }
380
+
381
+ if (!isset($response['data'])) {
382
+ return;
383
+ }
384
+
385
+ if (count($feeds = $qligg_api->setup_user_item($response['data'], $next_max_id, $max_id)) >= $limit) {
386
+ return $feeds;
387
+ }
388
+
389
+ if (!$next_max_id) {
390
+ return $feeds;
391
+ }
392
+
393
+ if (!isset($response['pagination']['next_max_id'])) {
394
+ return $feeds;
395
+ }
396
+
397
+ $max_id = $response['pagination']['next_max_id'];
398
+
399
+ return array_merge($feeds, qligg_get_user_items($user_id, $limit, $next_max_id, $max_id));
400
+ }
401
+
402
+ if (!class_exists('QLIGG_Settings')) {
403
+
404
+ class QLIGG_Settings {
405
+
406
+ protected static $instance;
407
+
408
+ // fix required header in license tab
409
+ function settings_header() {
410
+ global $submenu;
411
+ include (QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
412
+ }
413
+
414
+ public static function instance() {
415
+ if (!isset(self::$instance)) {
416
+ self::$instance = new self();
417
+ }
418
+ return self::$instance;
419
+ }
420
+
421
+ }
422
+
423
+ }
includes/controllers/AccountController.php CHANGED
@@ -1,12 +1,14 @@
1
  <?php
2
 
3
- include_once(QLIGG_PLUGIN_DIR . 'includes/models/Token.php');
4
  include_once(QLIGG_PLUGIN_DIR . 'includes/controllers/QLIGG_Controller.php');
5
 
6
  class QLIGG_Account_Controller extends QLIGG_Controller {
7
 
8
  protected static $instance;
9
- protected static $slug = QLIGG_DOMAIN . '_token';
 
 
10
 
11
  public static function instance() {
12
  if (!isset(self::$instance)) {
@@ -17,75 +19,64 @@ class QLIGG_Account_Controller extends QLIGG_Controller {
17
  }
18
 
19
  function init() {
20
- add_action('wp_ajax_qligg_add_token', array($this, 'ajax_add_token'));
21
- add_action('wp_ajax_qligg_delete_token', array($this, 'ajax_delete_token'));
22
  add_action('admin_enqueue_scripts', array($this, 'add_js'));
23
  add_action('admin_menu', array($this, 'add_menu'));
24
  }
25
 
26
  function add_menu() {
27
- add_submenu_page(QLIGG_DOMAIN, esc_html__('Account', 'insta-gallery'), esc_html__('Account', 'insta-gallery'), 'manage_options', self::$slug, array($this, 'add_panel'));
28
  }
29
 
30
  function add_panel() {
31
- global $submenu, $qligg_api;
32
- $token_model = new QLIGG_Token();
33
- $tokens = $token_model->get_tokens();
34
 
35
  include (QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
36
  include (QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/accounts.php');
37
  }
38
 
39
- function ajax_add_token() {
40
-
41
- global $qligg_api;
42
-
43
- if (!empty($_REQUEST) && current_user_can('manage_options') && check_ajax_referer('qligg_add_token', 'nonce', false)) {
44
 
45
- if (empty($_REQUEST['access_token'])) {
46
- parent::error_ajax(esc_html__('Empty access token', 'insta-gallery'));
47
- }
48
 
49
- $access_token = sanitize_text_field($_REQUEST['access_token']);
50
- $token_model = new QLIGG_Token();
51
- $tokens = $token_model->get_tokens();
52
 
53
- if (count($access_token_id = explode('.', $access_token)) == 1) {
54
- parent::error_ajax(esc_html__('Invalid access token', 'insta-gallery'));
55
  }
56
 
57
- if (!$qligg_api->validate_token($access_token)) {
58
- parent::error_ajax($qligg_api->get_message());
59
- }
60
 
61
- if (isset($tokens[$access_token_id[0]]) && $tokens[$access_token_id[0]] == $access_token) {
62
- if ($profile_info = qligg_get_user_profile($access_token_id[0])) {
63
- parent::error_ajax(sprintf(esc_html__('The %s account is already connected. To connect a new account logout from Instagram in this browser.', 'insta-gallery'), @$profile_info['user']));
64
- }
65
  parent::error_ajax(esc_html__('Account already connected. To connect a new account logout from Instagram in this browser.', 'insta-gallery'));
66
  }
67
 
68
- $new_token = array($access_token_id[0] => $access_token);
69
-
70
- $token_model->add_token($new_token);
71
-
72
- parent::success_ajax(esc_html__('Access token created', 'insta-gallery'));
73
  }
74
 
75
  parent::error_access_denied();
76
  }
77
 
78
- function ajax_delete_token() {
79
 
80
- if (!empty($_REQUEST['token_id']) && current_user_can('manage_options') && check_ajax_referer('qligg_delete_token', 'nonce', false)) {
81
 
82
- $token_model = new QLIGG_Token();
83
 
84
- $token_id = sanitize_text_field($_REQUEST['token_id']);
 
 
85
 
86
- $token_model->delete_token($token_id);
87
 
88
- parent::success_ajax(esc_html__('Token removed successfully', 'insta-gallery'));
89
  }
90
 
91
  parent::error_access_denied();
@@ -96,16 +87,17 @@ class QLIGG_Account_Controller extends QLIGG_Controller {
96
  wp_register_script('qligg-admin-account', plugins_url('/assets/backend/js/qligg-admin-account' . QLIGG::is_min() . '.js', QLIGG_PLUGIN_FILE), array('wp-util', 'jquery', 'backbone', 'jquery-serializejson'), QLIGG_PLUGIN_VERSION, true);
97
  wp_localize_script('qligg-admin-account', 'qligg_account', array(
98
  'nonce' => array(
99
- 'qligg_add_token' => wp_create_nonce('qligg_add_token'),
100
- 'qligg_delete_token' => wp_create_nonce('qligg_delete_token'),
101
  ),
102
  'message' => array(
103
- 'confirm_delete' => __('Do you want to delete the token?', 'insta-gallery')
104
  )
105
  ));
106
 
107
  if (isset($_GET['page']) && ($_GET['page'] === self::$slug)) {
108
  wp_enqueue_script('qligg-admin-account');
 
109
  }
110
  }
111
 
1
  <?php
2
 
3
+ include_once(QLIGG_PLUGIN_DIR . 'includes/models/Account.php');
4
  include_once(QLIGG_PLUGIN_DIR . 'includes/controllers/QLIGG_Controller.php');
5
 
6
  class QLIGG_Account_Controller extends QLIGG_Controller {
7
 
8
  protected static $instance;
9
+ protected static $slug = 'qligg_account';
10
+
11
+ // protected static $slug = QLIGG_DOMAIN . '_account';
12
 
13
  public static function instance() {
14
  if (!isset(self::$instance)) {
19
  }
20
 
21
  function init() {
22
+ add_action('wp_ajax_qligg_add_account', array($this, 'ajax_add_account'));
23
+ add_action('wp_ajax_qligg_delete_account', array($this, 'ajax_delete_account'));
24
  add_action('admin_enqueue_scripts', array($this, 'add_js'));
25
  add_action('admin_menu', array($this, 'add_menu'));
26
  }
27
 
28
  function add_menu() {
29
+ add_submenu_page(QLIGG_DOMAIN, esc_html__('Accounts', 'insta-gallery'), esc_html__('Accounts', 'insta-gallery'), 'manage_options', self::$slug, array($this, 'add_panel'));
30
  }
31
 
32
  function add_panel() {
33
+ global $submenu, $qligg_api_v2;
34
+ $account_model = new QLIGG_Account();
35
+ $accounts = $account_model->get_accounts();
36
 
37
  include (QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
38
  include (QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/accounts.php');
39
  }
40
 
41
+ function ajax_add_account() {
 
 
 
 
42
 
43
+ // global $qligg_api_v2;
 
 
44
 
45
+ if (!empty($_REQUEST) && current_user_can('manage_options') && check_ajax_referer('qligg_add_account', 'nonce', false)) {
 
 
46
 
47
+ if (empty($_REQUEST['account_data']['id'])) {
48
+ parent::error_ajax(esc_html__('Empty access account', 'insta-gallery'));
49
  }
50
 
51
+ $account_data = $_REQUEST['account_data'];
52
+ $account_model = new QLIGG_Account();
53
+ $accounts = $account_model->get_accounts();
54
 
55
+ $account_model->add_account($account_data);
56
+
57
+ if (isset($accounts[$account_data['id']])) {// && $accounts[$account_data['id']] == $account_data) {
 
58
  parent::error_ajax(esc_html__('Account already connected. To connect a new account logout from Instagram in this browser.', 'insta-gallery'));
59
  }
60
 
61
+ parent::success_ajax(esc_html__('Access account created', 'insta-gallery'));
 
 
 
 
62
  }
63
 
64
  parent::error_access_denied();
65
  }
66
 
67
+ function ajax_delete_account() {
68
 
69
+ if (!empty($_REQUEST['account_id']) && current_user_can('manage_options') && check_ajax_referer('qligg_delete_account', 'nonce', false)) {
70
 
71
+ $account_model = new QLIGG_Account();
72
 
73
+ $account_id = sanitize_text_field($_REQUEST['account_id']);
74
+ //
75
+ // error_log($account_id);
76
 
77
+ $account_model->delete_account($account_id);
78
 
79
+ parent::success_ajax(esc_html__('Account removed successfully', 'insta-gallery'));
80
  }
81
 
82
  parent::error_access_denied();
87
  wp_register_script('qligg-admin-account', plugins_url('/assets/backend/js/qligg-admin-account' . QLIGG::is_min() . '.js', QLIGG_PLUGIN_FILE), array('wp-util', 'jquery', 'backbone', 'jquery-serializejson'), QLIGG_PLUGIN_VERSION, true);
88
  wp_localize_script('qligg-admin-account', 'qligg_account', array(
89
  'nonce' => array(
90
+ 'qligg_add_account' => wp_create_nonce('qligg_add_account'),
91
+ 'qligg_delete_account' => wp_create_nonce('qligg_delete_account'),
92
  ),
93
  'message' => array(
94
+ 'confirm_delete' => __('Do you want to delete the account?', 'insta-gallery')
95
  )
96
  ));
97
 
98
  if (isset($_GET['page']) && ($_GET['page'] === self::$slug)) {
99
  wp_enqueue_script('qligg-admin-account');
100
+ wp_enqueue_style('qligg-admin');
101
  }
102
  }
103
 
includes/controllers/FeedController.php CHANGED
@@ -13,11 +13,11 @@ class QLIGG_Feed_Controller extends QLIGG_Controller {
13
  }
14
 
15
  function add_panel() {
16
- global $submenu, $qligg_api;
17
  $feed_model = new QLIGG_Feed();
18
  $feeds = $feed_model->get_feeds();
19
- $token_model = new QLIGG_Token();
20
- $tokens = $token_model->get_tokens();
21
 
22
  include (QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
23
  include (QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/feeds.php');
@@ -105,9 +105,9 @@ class QLIGG_Feed_Controller extends QLIGG_Controller {
105
  $feed = $feed_model->get_feed($feed_id);
106
 
107
  if ($feed['type'] == 'username') {
108
- $tk = "%%insta_gallery_user_items_{$feed['username']}_%%";
109
  } else {
110
- $tk = "%%insta_gallery_tag_items_{$feed['tag']}_%%";
111
  }
112
 
113
  if ($tks = $wpdb->get_row($wpdb->prepare("SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE %s", $tk))) {
@@ -146,7 +146,7 @@ class QLIGG_Feed_Controller extends QLIGG_Controller {
146
  'confirm_delete' => __('Do you want to delete the feed?', 'insta-gallery'),
147
  'confirm_clear_cache' => __('Do you want to delete the feed?', 'insta-gallery')
148
  ),
149
- 'args' => $feed_model->get_args()[1]));
150
  }
151
  }
152
 
13
  }
14
 
15
  function add_panel() {
16
+ global $submenu, $qligg_api_v2;
17
  $feed_model = new QLIGG_Feed();
18
  $feeds = $feed_model->get_feeds();
19
+ $account_model = new QLIGG_Account();
20
+ $accounts = $account_model->get_accounts();
21
 
22
  include (QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
23
  include (QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/feeds.php');
105
  $feed = $feed_model->get_feed($feed_id);
106
 
107
  if ($feed['type'] == 'username') {
108
+ $tk = "%%insta_gallery_v2_user_media_{$feed['username']}_%%";
109
  } else {
110
+ $tk = "%%insta_gallery_v2_tag_media_{$feed['tag']}_%%";
111
  }
112
 
113
  if ($tks = $wpdb->get_row($wpdb->prepare("SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE %s", $tk))) {
146
  'confirm_delete' => __('Do you want to delete the feed?', 'insta-gallery'),
147
  'confirm_clear_cache' => __('Do you want to delete the feed?', 'insta-gallery')
148
  ),
149
+ 'args' => $feed_model->get_args()));
150
  }
151
  }
152
 
includes/frontend.php CHANGED
@@ -6,18 +6,20 @@ if (!defined('ABSPATH'))
6
  if (!class_exists('QLIGG_Frontend')) {
7
 
8
 
9
- class QLIGG_Frontend {
 
10
 
11
  protected static $instance;
12
 
13
- function add_js() {
 
14
 
15
  wp_register_style('insta-gallery', plugins_url('/assets/frontend/css/qligg' . QLIGG::is_min() . '.css', QLIGG_PLUGIN_FILE), null, QLIGG_PLUGIN_VERSION);
16
 
17
  wp_register_script('insta-gallery', plugins_url('/assets/frontend/js/qligg' . QLIGG::is_min() . '.js', QLIGG_PLUGIN_FILE), array('jquery'), QLIGG_PLUGIN_VERSION, true);
18
 
19
  wp_localize_script('insta-gallery', 'qligg', array(
20
- 'ajax_url' => admin_url('admin-ajax.php')
21
  ));
22
 
23
  // Masonry
@@ -35,12 +37,13 @@ if (!class_exists('QLIGG_Frontend')) {
35
  wp_register_script('magnific-popup', plugins_url('/assets/frontend/magnific-popup/jquery.magnific-popup.min.js', QLIGG_PLUGIN_FILE), array('jquery'), QLIGG_PLUGIN_VERSION, true);
36
  }
37
 
38
- function get_items($feed = false, $next_max_id = false) {
 
39
 
40
  if (isset($feed['type'])) {
41
 
42
  if ($feed['type'] == 'username') {
43
- return qligg_get_user_items($feed['username'], $feed['limit'], $next_max_id);
44
  }
45
 
46
  if ($feed['type'] == 'tag') {
@@ -51,9 +54,10 @@ if (!class_exists('QLIGG_Frontend')) {
51
  return array();
52
  }
53
 
54
- function ajax_load_item_images() {
 
55
 
56
- global $qligg_api;
57
 
58
  if (!isset($_REQUEST['feed'])) {
59
  wp_send_json_error(esc_html__('Invalid item id', 'insta-gallery'));
@@ -95,7 +99,7 @@ if (!class_exists('QLIGG_Frontend')) {
95
  }
96
 
97
  $messages = array(
98
- $qligg_api->get_message()
99
  );
100
 
101
  include($this->template_path('alert.php'));
@@ -103,22 +107,26 @@ if (!class_exists('QLIGG_Frontend')) {
103
  wp_send_json_error(ob_get_clean());
104
  }
105
 
106
- function template_path($template_name, $template_file = false) {
107
-
108
- if (file_exists(trailingslashit(get_stylesheet_directory()) . "insta-gallery/{$template_name}")) {
109
- $template_file = trailingslashit(get_stylesheet_directory()) . "insta-gallery/{$template_name}";
110
- }
111
 
112
  if (file_exists(QLIGG_PLUGIN_DIR . "templates/{$template_name}")) {
113
  $template_file = QLIGG_PLUGIN_DIR . "templates/{$template_name}";
114
  }
115
 
 
 
 
 
116
  return apply_filters('qligg_template_file', $template_file, $template_name);
117
  }
118
 
119
- function do_shortcode($atts, $content = null) {
 
 
 
120
 
121
- global $qligg_api;
122
 
123
  $feed_model = new QLIGG_Feed();
124
  $feeds = $feed_model->get_feeds();
@@ -126,7 +134,8 @@ if (!class_exists('QLIGG_Frontend')) {
126
  $settings = $settings_model->get_settings();
127
 
128
  $atts = shortcode_atts(array(
129
- 'id' => 0), $atts);
 
130
 
131
  // Start loading
132
  // -----------------------------------------------------------------------
@@ -135,7 +144,7 @@ if (!class_exists('QLIGG_Frontend')) {
135
  if (count($feeds)) {
136
  if (isset($feeds[$id])) {
137
 
138
- $feed = wp_parse_args($feeds[$id], $feed_model->get_args()[1]);
139
 
140
  // premium compatibility 2.6.6
141
 
@@ -148,7 +157,19 @@ if (!class_exists('QLIGG_Frontend')) {
148
  $profile_info = qligg_get_tag_profile($feed['tag']);
149
  }
150
  }
151
- $feed['profile'] = $profile_info;
 
 
 
 
 
 
 
 
 
 
 
 
152
  $feed['spacing'] = $feed['spacing'] / 2;
153
 
154
  $feed['insta_layout'] = $feed['layout'];
@@ -198,54 +219,54 @@ if (!class_exists('QLIGG_Frontend')) {
198
  $item_selector = "insta-gallery-feed-{$id}";
199
 
200
  ob_start();
201
- ?>
202
  <style>
203
- <?php
204
- if ($feed['layout'] != 'carousel') {
205
- if (!empty($feed['spacing'])) {
206
- echo "#{$item_selector} .insta-gallery-list {margin: 0 -{$feed['spacing']}px;}";
 
 
 
 
207
  }
208
- if (!empty($feed['spacing'])) {
209
- echo "#{$item_selector} .insta-gallery-list .insta-gallery-item {padding: {$feed['spacing']}px;}";
 
 
 
 
 
210
  }
211
- }
212
- if ($feed['layout'] == 'carousel') {
213
- if (!empty($feed['carousel']['pagination_color'])) {
214
- echo "#{$item_selector} .swiper-pagination-bullet-active {background-color: {$feed['carousel']['pagination_color']};}";
215
  }
216
- if (!empty($feed['carousel']['navarrows_color'])) {
217
- echo "#{$item_selector} .swiper-button-next > i, #{$item_selector} .swiper-button-prev > i {color: {$feed['carousel']['navarrows_color']};}";
 
 
 
218
  }
219
- }
220
- if (!empty($feed['mask']['background'])) {
221
- echo "#{$item_selector} .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask {background-color: {$feed['mask']['background']};}";
222
- }
223
- if (!empty($feed['button']['background'])) {
224
- echo "#{$item_selector} .insta-gallery-actions .insta-gallery-button {background-color: {$feed['button']['background']};}";
225
- }
226
- if (!empty($feed['button']['background_hover'])) {
227
- echo "#{$item_selector} .insta-gallery-actions .insta-gallery-button:hover {background-color: {$feed['button']['background_hover']};}";
228
- }
229
 
230
- if (!empty($settings['insta_spinner_image_id'])) {
231
 
232
- $spinner = wp_get_attachment_image_src($settings['insta_spinner_image_id'], 'full');
233
 
234
- if (!empty($spinner[0])) {
235
- echo "#{$item_selector} .insta-gallery-spinner {background-image:url($spinner[0])}";
 
236
  }
237
- }
238
- do_action('qligg_template_style', $item_selector, $feed);
239
- ?>
240
  </style>
241
- <?php
242
  if ($template_file = $this->template_path("{$feed['layout']}.php")) {
243
  include($template_file);
244
  return ob_get_clean();
245
  }
246
 
247
  $messages = array(
248
- sprintf(esc_html__('The layout %s is not a available.', 'insta-gallery'), $feed['layout'])
249
  );
250
 
251
  include($this->template_path('alert.php'));
@@ -255,23 +276,24 @@ if (!class_exists('QLIGG_Frontend')) {
255
  }
256
  }
257
 
258
- // }
259
 
260
- function init() {
 
261
  add_action('wp_ajax_nopriv_qligg_load_item_images', array($this, 'ajax_load_item_images'));
262
  add_action('wp_ajax_qligg_load_item_images', array($this, 'ajax_load_item_images'));
263
  add_action('wp_enqueue_scripts', array($this, 'add_js'));
264
  add_shortcode('insta-gallery', array($this, 'do_shortcode'));
265
  }
266
 
267
- public static function instance() {
 
268
  if (!isset(self::$instance)) {
269
  self::$instance = new self();
270
  self::$instance->init();
271
  }
272
  return self::$instance;
273
  }
274
-
275
  }
276
 
277
  QLIGG_Frontend::instance();
6
  if (!class_exists('QLIGG_Frontend')) {
7
 
8
 
9
+ class QLIGG_Frontend
10
+ {
11
 
12
  protected static $instance;
13
 
14
+ function add_js()
15
+ {
16
 
17
  wp_register_style('insta-gallery', plugins_url('/assets/frontend/css/qligg' . QLIGG::is_min() . '.css', QLIGG_PLUGIN_FILE), null, QLIGG_PLUGIN_VERSION);
18
 
19
  wp_register_script('insta-gallery', plugins_url('/assets/frontend/js/qligg' . QLIGG::is_min() . '.js', QLIGG_PLUGIN_FILE), array('jquery'), QLIGG_PLUGIN_VERSION, true);
20
 
21
  wp_localize_script('insta-gallery', 'qligg', array(
22
+ 'ajax_url' => admin_url('admin-ajax.php')
23
  ));
24
 
25
  // Masonry
37
  wp_register_script('magnific-popup', plugins_url('/assets/frontend/magnific-popup/jquery.magnific-popup.min.js', QLIGG_PLUGIN_FILE), array('jquery'), QLIGG_PLUGIN_VERSION, true);
38
  }
39
 
40
+ function get_items($feed = false, $next_max_id = false)
41
+ {
42
 
43
  if (isset($feed['type'])) {
44
 
45
  if ($feed['type'] == 'username') {
46
+ return qligg_get_user_media($feed['username'], $feed['limit'], $next_max_id);
47
  }
48
 
49
  if ($feed['type'] == 'tag') {
54
  return array();
55
  }
56
 
57
+ function ajax_load_item_images()
58
+ {
59
 
60
+ global $qligg_api_v2;
61
 
62
  if (!isset($_REQUEST['feed'])) {
63
  wp_send_json_error(esc_html__('Invalid item id', 'insta-gallery'));
99
  }
100
 
101
  $messages = array(
102
+ $qligg_api_v2->getMessage()
103
  );
104
 
105
  include($this->template_path('alert.php'));
107
  wp_send_json_error(ob_get_clean());
108
  }
109
 
110
+ function template_path($template_name, $template_file = false)
111
+ {
 
 
 
112
 
113
  if (file_exists(QLIGG_PLUGIN_DIR . "templates/{$template_name}")) {
114
  $template_file = QLIGG_PLUGIN_DIR . "templates/{$template_name}";
115
  }
116
 
117
+ if (file_exists(trailingslashit(get_stylesheet_directory()) . "insta-gallery/{$template_name}")) {
118
+ $template_file = trailingslashit(get_stylesheet_directory()) . "insta-gallery/{$template_name}";
119
+ }
120
+
121
  return apply_filters('qligg_template_file', $template_file, $template_name);
122
  }
123
 
124
+ function do_shortcode($atts, $content = null)
125
+ {
126
+
127
+ // var_dump($atts);
128
 
129
+ global $qligg_api_v2;
130
 
131
  $feed_model = new QLIGG_Feed();
132
  $feeds = $feed_model->get_feeds();
134
  $settings = $settings_model->get_settings();
135
 
136
  $atts = shortcode_atts(array(
137
+ 'id' => 0
138
+ ), $atts);
139
 
140
  // Start loading
141
  // -----------------------------------------------------------------------
144
  if (count($feeds)) {
145
  if (isset($feeds[$id])) {
146
 
147
+ $feed = wp_parse_args($feeds[$id], $feed_model->get_args());
148
 
149
  // premium compatibility 2.6.6
150
 
157
  $profile_info = qligg_get_tag_profile($feed['tag']);
158
  }
159
  }
160
+
161
+ // var_dump($profile_info);
162
+
163
+ // error_log(json_encode($profile_info, JSON_PRETTY_PRINT));
164
+
165
+ $profile_info['user'] = $profile_info['username'];
166
+ $profile_info['name'] = $profile_info['full_name'];
167
+ $profile_info['picture'] = $profile_info['profile_pic_url'];
168
+
169
+ $feed['profile'] = array_merge($profile_info, $feed['profile']);
170
+ $feed['box']['desc'] = $feed['profile']['description'];
171
+ //error_log(json_encode($feed['profile'], JSON_PRETTY_PRINT));
172
+
173
  $feed['spacing'] = $feed['spacing'] / 2;
174
 
175
  $feed['insta_layout'] = $feed['layout'];
219
  $item_selector = "insta-gallery-feed-{$id}";
220
 
221
  ob_start();
222
+ ?>
223
  <style>
224
+ <?php
225
+ if ($feed['layout'] != 'carousel') {
226
+ if (!empty($feed['spacing'])) {
227
+ echo "#{$item_selector} .insta-gallery-list {margin: 0 -{$feed['spacing']}px;}";
228
+ }
229
+ if (!empty($feed['spacing'])) {
230
+ echo "#{$item_selector} .insta-gallery-list .insta-gallery-item {padding: {$feed['spacing']}px;}";
231
+ }
232
  }
233
+ if ($feed['layout'] == 'carousel') {
234
+ if (!empty($feed['carousel']['pagination_color'])) {
235
+ echo "#{$item_selector} .swiper-pagination-bullet-active {background-color: {$feed['carousel']['pagination_color']};}";
236
+ }
237
+ if (!empty($feed['carousel']['navarrows_color'])) {
238
+ echo "#{$item_selector} .swiper-button-next > i, #{$item_selector} .swiper-button-prev > i {color: {$feed['carousel']['navarrows_color']};}";
239
+ }
240
  }
241
+ if (!empty($feed['mask']['background'])) {
242
+ echo "#{$item_selector} .insta-gallery-list .insta-gallery-item .insta-gallery-image-wrap .insta-gallery-image-mask {background-color: {$feed['mask']['background']};}";
 
 
243
  }
244
+ if (!empty($feed['button']['background'])) {
245
+ echo "#{$item_selector} .insta-gallery-actions .insta-gallery-button {background-color: {$feed['button']['background']};}";
246
+ }
247
+ if (!empty($feed['button']['background_hover'])) {
248
+ echo "#{$item_selector} .insta-gallery-actions .insta-gallery-button:hover {background-color: {$feed['button']['background_hover']};}";
249
  }
 
 
 
 
 
 
 
 
 
 
250
 
251
+ if (!empty($settings['insta_spinner_image_id'])) {
252
 
253
+ $spinner = wp_get_attachment_image_src($settings['insta_spinner_image_id'], 'full');
254
 
255
+ if (!empty($spinner[0])) {
256
+ echo "#{$item_selector} .insta-gallery-spinner {background-image:url($spinner[0])}";
257
+ }
258
  }
259
+ do_action('qligg_template_style', $item_selector, $feed);
260
+ ?>
 
261
  </style>
262
+ <?php
263
  if ($template_file = $this->template_path("{$feed['layout']}.php")) {
264
  include($template_file);
265
  return ob_get_clean();
266
  }
267
 
268
  $messages = array(
269
+ sprintf(esc_html__('The layout %s is not a available.', 'insta-gallery'), $feed['layout'])
270
  );
271
 
272
  include($this->template_path('alert.php'));
276
  }
277
  }
278
 
279
+ // }
280
 
281
+ function init()
282
+ {
283
  add_action('wp_ajax_nopriv_qligg_load_item_images', array($this, 'ajax_load_item_images'));
284
  add_action('wp_ajax_qligg_load_item_images', array($this, 'ajax_load_item_images'));
285
  add_action('wp_enqueue_scripts', array($this, 'add_js'));
286
  add_shortcode('insta-gallery', array($this, 'do_shortcode'));
287
  }
288
 
289
+ public static function instance()
290
+ {
291
  if (!isset(self::$instance)) {
292
  self::$instance = new self();
293
  self::$instance->init();
294
  }
295
  return self::$instance;
296
  }
 
297
  }
298
 
299
  QLIGG_Frontend::instance();
includes/helpers.php CHANGED
@@ -5,7 +5,7 @@ include_once(QLIGG_PLUGIN_DIR . 'includes/models/Setting.php');
5
 
6
  function qligg_sanitize_instagram_feed($feed) {
7
 
8
- global $qligg_api;
9
 
10
  // Removing @, # and trimming input
11
  // ---------------------------------------------------------------------
@@ -15,7 +15,7 @@ function qligg_sanitize_instagram_feed($feed) {
15
  $feed = trim($feed);
16
  $feed = str_replace('@', '', $feed);
17
  $feed = str_replace('#', '', $feed);
18
- $feed = str_replace($qligg_api->instagram_url, '', $feed);
19
  $feed = str_replace('/explore/tags/', '', $feed);
20
  $feed = str_replace('/', '', $feed);
21
 
@@ -24,184 +24,244 @@ function qligg_sanitize_instagram_feed($feed) {
24
 
25
  // Return user profile
26
  // -----------------------------------------------------------------------------
27
- function qligg_get_user_profile($user_id = null) {
28
 
29
- global $qligg_api;
30
-
31
- $settings_model = new QLIGG_Setting();
32
- $settings = $settings_model->get_settings();
33
- $token_model = new QLIGG_Token();
34
- $tokens = $token_model->get_tokens();
35
-
36
- $profile_info = array();
37
-
38
- $tk = "insta_gallery_user_profile"; // transient key
39
 
40
  $defaults = array(
41
- 'id' => '',
42
- 'user' => 'nousername',
43
- 'name' => esc_html__('Something went wrong, remove this token', 'insta-gallery'),
44
- 'picture' => 'http://2.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=96&d=mm&r=g',
 
 
 
45
  'link' => ''
46
  );
47
 
48
- if (empty($user_id) || !isset($tokens[$user_id])) {
49
  return $defaults;
50
  }
51
 
52
- if (QLIGG_DEVELOPER || false === ($profile_info = get_transient($tk))) {
53
- foreach ($tokens as $id => $access_token) {
54
- $profile_info[$id] = $qligg_api->get_user_profile($access_token);
55
- }
56
- set_transient($tk, $profile_info, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
57
  }
58
 
59
- if (!isset($profile_info[$user_id])) {
 
 
 
 
 
 
60
  return $defaults;
61
  }
 
 
 
62
 
63
- return wp_parse_args(array(
64
- 'id' => $profile_info[$user_id]['id'],
65
- 'user' => "@{$profile_info[$user_id]['username']}",
66
- 'name' => $profile_info[$user_id]['full_name'],
67
- 'picture' => $profile_info[$user_id]['profile_picture'],
68
- 'link' => "{$qligg_api->instagram_url}/{$profile_info[$user_id]['username']}"
69
- ), $defaults);
70
- }
71
 
72
- // Return tag info
73
- // -----------------------------------------------------------------------------
74
- function qligg_get_tag_profile($tag = null) {
75
 
76
- global $qligg_api;
 
 
 
 
 
77
 
78
- if (!$tag) {
79
- return;
80
  }
81
 
 
 
 
 
 
 
82
  $settings_model = new QLIGG_Setting();
83
  $settings = $settings_model->get_settings();
84
 
85
- $tk = "insta_gallery_tag_items_{$tag}_";
86
 
87
- // Get any existing copy of our transient data
88
- if (QLIGG_DEVELOPER || false === ($response = get_transient($tk))) {
89
- if ($response = $qligg_api->get_tag_items($tag)) {
90
- set_transient($tk, $response, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
91
- }
92
- }
 
 
 
 
93
 
94
  $defaults = array(
95
  'id' => '',
96
- 'user' => 'notag',
97
- 'name' => esc_html__('Something went wrong, remove this this tag', 'insta-gallery'),
98
- 'picture' => 'http://2.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=96&d=mm&r=g',
99
- 'link' => ''
 
 
100
  );
101
 
102
- if (!isset($response['graphql']['hashtag'])) {
103
  return $defaults;
104
  }
105
 
106
- return wp_parse_args(array(
107
- 'id' => $response['graphql']['hashtag']['id'],
108
- 'user' => "#{$response['graphql']['hashtag']['name']}",
109
- 'name' => sprintf(esc_html__('Tag #%s', 'insta-gallery'), $response['graphql']['hashtag']['name']),
110
- 'picture' => $response['graphql']['hashtag']['profile_pic_url'],
111
- 'link' => "{$qligg_api->instagram_url}/explore/tags/{$tag}"
112
- ), $defaults);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  }
114
 
115
  // Get user feed
116
  // -----------------------------------------------------------------------------
117
- function qligg_get_user_items($user_id = null, $limit = 12, $next_max_id = null, $max_id = null) {
118
 
119
- global $qligg_api;
120
 
121
- if (!$user_id) {
122
- $qligg_api->set_message(esc_html__('Please update Instagram User in the gallery settings tab.', 'insta-gallery'));
123
  return;
124
  }
125
 
126
- $token_model = new QLIGG_Token();
127
- $tokens = $token_model->get_tokens();
 
 
 
128
 
129
- if (empty($tokens[$user_id])) {
130
- $qligg_api->set_message(esc_html__('Please update Instagram Access Token in the account settings tab.', 'insta-gallery'));
 
 
131
  return;
132
  }
133
 
134
- $settings_model = new QLIGG_Setting();
135
- $settings = $settings_model->get_settings();
 
 
 
136
 
137
- $tk = "insta_gallery_user_items_{$user_id}_{$max_id}";
138
 
139
  // Get any existing copy of our transient data
140
  if (QLIGG_DEVELOPER || false === ($response = get_transient($tk))) {
141
- if ($response = $qligg_api->get_user_items($tokens[$user_id], $max_id)) {
142
- set_transient($tk, $response, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
 
 
 
143
  }
 
 
 
 
 
 
 
 
 
144
  }
145
 
146
- if (!isset($response['data'])) {
147
- return;
 
 
148
  }
149
 
150
- if (count($feeds = $qligg_api->setup_user_item($response['data'], $next_max_id, $max_id)) >= $limit) {
151
  return $feeds;
152
  }
153
 
154
- if (!$next_max_id) {
155
  return $feeds;
156
  }
157
 
158
- if (!isset($response['pagination']['next_max_id'])) {
159
  return $feeds;
160
  }
161
 
162
- $max_id = $response['pagination']['next_max_id'];
163
 
164
- return array_merge($feeds, qligg_get_user_items($user_id, $limit, $next_max_id, $max_id));
165
  }
166
 
167
  // Get tag items
168
  // -----------------------------------------------------------------------------
169
- function qligg_get_tag_items($tag = null, $limit = 12, $next_max_id = null, $end_cursor = null) {
170
-
171
- global $qligg_api;
172
 
173
- $token_model = new QLIGG_Token();
174
- $tokens = $token_model->get_tokens();
175
 
176
- if (!$tag) {
 
177
  return;
178
  }
179
 
180
- $settings_model = new QLIGG_Setting();
181
- $settings = $settings_model->get_settings();
182
-
183
- $tk = "insta_gallery_tag_items_{$tag}_{$end_cursor}";
184
 
185
  // Get any existing copy of our transient data
186
  if (QLIGG_DEVELOPER || false === ($response = get_transient($tk))) {
187
- if ($response = $qligg_api->get_tag_items($tag, $end_cursor)) {
188
- set_transient($tk, $response, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
 
 
 
 
 
 
 
189
  }
 
 
 
 
 
190
  }
191
 
192
- if (!isset($response['graphql']['hashtag']['edge_hashtag_to_media']['edges'])) {
193
- return;
 
 
 
 
 
 
194
  }
195
 
196
- if (count($feeds = $qligg_api->setup_tag_item($response['graphql']['hashtag']['edge_hashtag_to_media']['edges'], $next_max_id)) >= $limit) {
197
  return $feeds;
198
  }
199
 
200
- if (!isset($response['graphql']['hashtag']['edge_hashtag_to_media']['page_info']['end_cursor'])) {
201
  return $feeds;
202
  }
203
 
204
- $end_cursor = $response['graphql']['hashtag']['edge_hashtag_to_media']['page_info']['end_cursor'];
205
 
206
- return array_merge($feeds, qligg_get_tag_items($tag, $limit, $next_max_id, $end_cursor));
207
  }
5
 
6
  function qligg_sanitize_instagram_feed($feed) {
7
 
8
+ global $qligg_api_v2;
9
 
10
  // Removing @, # and trimming input
11
  // ---------------------------------------------------------------------
15
  $feed = trim($feed);
16
  $feed = str_replace('@', '', $feed);
17
  $feed = str_replace('#', '', $feed);
18
+ $feed = str_replace($qligg_api_v2->instagram_url, '', $feed);
19
  $feed = str_replace('/explore/tags/', '', $feed);
20
  $feed = str_replace('/', '', $feed);
21
 
24
 
25
  // Return user profile
26
  // -----------------------------------------------------------------------------
27
+ function qligg_get_user_profile($account_id = null) {
28
 
29
+ global $qligg_api_v2, $qligg_api;
 
 
 
 
 
 
 
 
 
30
 
31
  $defaults = array(
32
+ 'id' => $account_id,
33
+ 'type' => '',
34
+ 'account_type' => '',
35
+ 'username' => 'Unknow',
36
+ 'full_name' => '',
37
+ 'profile_pic_url' => 'http://2.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=150&d=mm&r=g',
38
+ 'profile_pic_url_hd' => 'http://2.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=320&d=mm&r=g',
39
  'link' => ''
40
  );
41
 
42
+ if (empty($account_id)) {
43
  return $defaults;
44
  }
45
 
46
+ $account_model = new QLIGG_Account();
47
+
48
+ if (!$account = $account_model->get_account($account_id)) {
49
+ return $defaults;
 
50
  }
51
 
52
+ $tk = "insta_gallery_v2_user_profile_{$account_id}"; // transient key
53
+
54
+ if (!QLIGG_DEVELOPER && false !== ($profile_info = get_transient($tk))) {
55
+ return wp_parse_args($profile_info, $defaults);
56
+ }
57
+
58
+ if (!$account['access_token']) {
59
  return $defaults;
60
  }
61
+ //1326
62
+ //detect token type old || new
63
+ //validate token based on type
64
 
65
+ if ($account['account_type'] === 'BASIC') {
 
 
 
 
 
 
 
66
 
67
+ $_profile_info = $qligg_api->get_user_profile($account['access_token']);
 
 
68
 
69
+ $defaults['account_type'] = $account['account_type'];
70
+ $defaults['username'] = $_profile_info['username'];
71
+ $defaults['full_name'] = __('This token expires soon!');
72
+ /* 1326
73
+ $defaults['profile_pic_url'] = $_profile_info['profile_picture'];
74
+ $defaults['profile_pic_url_hd'] = $_profile_info['profile_picture'];*/
75
 
76
+ return $defaults;
 
77
  }
78
 
79
+ $_profile_info = $qligg_api_v2->getUserProfile($account['access_token']);
80
+
81
+ $_profile_info['link'] = "{$qligg_api_v2->instagram_url}/{$account['username']}";
82
+
83
+ // business token required to get profile pics
84
+
85
  $settings_model = new QLIGG_Setting();
86
  $settings = $settings_model->get_settings();
87
 
88
+ $profile_info = wp_parse_args($_profile_info, $defaults);
89
 
90
+ set_transient($tk, $profile_info, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
91
+
92
+ return $profile_info;
93
+ }
94
+
95
+ // Return tag info
96
+ // -----------------------------------------------------------------------------
97
+ function qligg_get_tag_profile($hashtag = null) {
98
+
99
+ global $qligg_api_v2;
100
 
101
  $defaults = array(
102
  'id' => '',
103
+ 'account_type' => 'TAG',
104
+ 'username' => $hashtag,
105
+ 'full_name' => $hashtag,
106
+ 'profile_pic_url' => 'http://2.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=150&d=mm&r=g',
107
+ 'profile_pic_url_hd' => 'http://2.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=320&d=mm&r=g',
108
+ 'link' => "{$qligg_api_v2->instagram_url}/explore/tags/{$hashtag}"
109
  );
110
 
111
+ if (empty($hashtag)) {
112
  return $defaults;
113
  }
114
 
115
+ $tk = "insta_gallery_v2_tag_profile_{$hashtag}"; // transient key
116
+
117
+ if (!QLIGG_DEVELOPER && false !== ($profile_info = get_transient($tk))) {
118
+ return wp_parse_args($profile_info, $defaults);
119
+ }
120
+
121
+ if (!$hashtag_id = $qligg_api_v2->getTagId($hashtag)) {
122
+ return $defaults;
123
+ }
124
+
125
+ $_profile_info = array();
126
+
127
+ $_profile_info['id'] = $hashtag_id;
128
+
129
+ // business token to get profile pic
130
+
131
+ $profile_info = wp_parse_args($_profile_info, $defaults);
132
+ $settings_model = new QLIGG_Setting();
133
+ $settings = $settings_model->get_settings();
134
+
135
+ set_transient($tk, $profile_info, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
136
+
137
+ return $profile_info;
138
  }
139
 
140
  // Get user feed
141
  // -----------------------------------------------------------------------------
142
+ function qligg_get_user_media($account_id = null, $limit = 12, $last_id = null, $after = null) {
143
 
144
+ global $qligg_api_v2, $qligg_api;
145
 
146
+ if (!$account_id) {
147
+ $qligg_api_v2->setMessage(esc_html__('Please update Instagram User in the feed settings.', 'insta-gallery'));
148
  return;
149
  }
150
 
151
+ $account_model = new QLIGG_Account();
152
+
153
+ // error_log($account_id);
154
+
155
+ $account = $account_model->get_account($account_id);
156
 
157
+ // error_log(json_encode($account));
158
+
159
+ if (!isset($account['access_token'])) {
160
+ $qligg_api_v2->setMessage(esc_html__('Please update Instagram Access Token in the account settings.', 'insta-gallery'));
161
  return;
162
  }
163
 
164
+ // compatibility with 2.7.1
165
+ // ---------------------------------------------------------------------------
166
+ if ($account['account_type'] === 'BASIC' && $qligg_api->validate_token($account['access_token'])) {
167
+ return qligg_get_user_items_old($account_id, $limit, $last_id, $after);
168
+ }
169
 
170
+ $tk = "insta_gallery_v2_user_media_{$account_id}_{$after}";
171
 
172
  // Get any existing copy of our transient data
173
  if (QLIGG_DEVELOPER || false === ($response = get_transient($tk))) {
174
+
175
+ $response = $qligg_api_v2->getUserMedia($account['access_token'], $after);
176
+
177
+ if (!isset($response['data'])) {
178
+ return;
179
  }
180
+
181
+ if (!count($response['data'])) {
182
+ return;
183
+ }
184
+
185
+ $settings_model = new QLIGG_Setting();
186
+ $settings = $settings_model->get_settings();
187
+
188
+ set_transient($tk, $response, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
189
  }
190
 
191
+ $feeds = $qligg_api_v2->setupMediaItems($response['data'], $last_id);
192
+
193
+ if (!$last_id) {
194
+ return $feeds;
195
  }
196
 
197
+ if (count($feeds) >= $limit) {
198
  return $feeds;
199
  }
200
 
201
+ if (!isset($response['paging']['next'])) {
202
  return $feeds;
203
  }
204
 
205
+ if (!isset($response['paging']['cursors']['after'])) {
206
  return $feeds;
207
  }
208
 
209
+ $after = $response['paging']['cursors']['after'];
210
 
211
+ return array_merge($feeds, qligg_get_user_media($account_id, $limit, $last_id, $after));
212
  }
213
 
214
  // Get tag items
215
  // -----------------------------------------------------------------------------
216
+ function qligg_get_tag_items($hashtag = null, $limit = 12, $last_id = null, $after = null) {
 
 
217
 
218
+ global $qligg_api_v2;
 
219
 
220
+ if (!$hashtag) {
221
+ $qligg_api_v2->setMessage(esc_html__('Please update Instagram Tag in the feed settings.', 'insta-gallery'));
222
  return;
223
  }
224
 
225
+ $tk = "insta_gallery_v2_tag_media_{$hashtag}_{$after}";
 
 
 
226
 
227
  // Get any existing copy of our transient data
228
  if (QLIGG_DEVELOPER || false === ($response = get_transient($tk))) {
229
+
230
+ $response = $qligg_api_v2->getTagMedia($hashtag, $after);
231
+
232
+ if (!isset($response['data'])) {
233
+ return;
234
+ }
235
+
236
+ if (!count($response['data'])) {
237
+ return;
238
  }
239
+
240
+ $settings_model = new QLIGG_Setting();
241
+ $settings = $settings_model->get_settings();
242
+
243
+ set_transient($tk, $response, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
244
  }
245
 
246
+ $feeds = $qligg_api_v2->setupMediaItems($response['data'], $last_id);
247
+
248
+ if (!$last_id) {
249
+ return $feeds;
250
+ }
251
+
252
+ if (count($feeds) >= $limit) {
253
+ return $feeds;
254
  }
255
 
256
+ if (!isset($response['paging']['next'])) {
257
  return $feeds;
258
  }
259
 
260
+ if (!isset($response['paging']['cursors']['after'])) {
261
  return $feeds;
262
  }
263
 
264
+ $after = $response['paging']['cursors']['after'];
265
 
266
+ return array_merge($feeds, qligg_get_tag_items($hashtag, $limit, $last_id, $after));
267
  }
includes/models/Account.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ include_once 'QLIGG_Model.php';
4
+
5
+ class QLIGG_Account extends QLIGG_Model {
6
+
7
+ protected $table = 'insta_gallery_accounts';
8
+
9
+ function get_args() {
10
+ return array(
11
+ 'id' => '',
12
+ 'access_token' => '',
13
+ 'account_type' => '',
14
+ 'expiration_date' => '',
15
+ 'username' => '',
16
+ );
17
+ }
18
+
19
+ function get_defaults() {
20
+ return array(
21
+ );
22
+ }
23
+
24
+ function get_account($id) {
25
+
26
+ $accounts = $this->get_accounts();
27
+
28
+ if (isset($accounts[$id])) {
29
+ return $accounts[$id];
30
+ }
31
+ }
32
+
33
+ function get_accounts() {
34
+
35
+ $accounts = $this->get_all();
36
+ //make sure each account has all values
37
+ if (count($accounts)) {
38
+ foreach ($accounts as $id => $account) {
39
+ $accounts[$id] = array_replace_recursive($this->get_args(), $accounts[$id]);
40
+ }
41
+ }
42
+ return $accounts;
43
+ }
44
+
45
+ function update_account($account_data) {
46
+ return $this->save_account($account_data);
47
+ }
48
+
49
+ function update_accounts($accounts, $order = 0) {
50
+ return $this->save_all($accounts);
51
+ }
52
+
53
+ function add_account($account_data) {
54
+ $account_id = $account_data['id'];
55
+ $account_data['id'] = $account_id;
56
+ $account_data['access_token'] = $this->clean_token($account_data['access_token']);
57
+ $account_data['expiration_date'] = $this->expiration_date($account_data['expires_in']);
58
+
59
+ return $this->save_account($account_data);
60
+ }
61
+
62
+ function save_account($account_data = null) {
63
+ $accounts = $this->get_accounts();
64
+ $accounts[$account_data['id']] = array_replace_recursive($this->get_args(), $account_data);
65
+ return $this->save_all($accounts);
66
+ }
67
+
68
+ function delete_account($id = null) {
69
+ $accounts = $this->get_all();
70
+ if ($accounts) {
71
+ if (count($accounts) > 0) {
72
+ unset($accounts[$id]);
73
+ return $this->save_all($accounts);
74
+ }
75
+ }
76
+ }
77
+
78
+ function clean_token($maybe_dirty) {
79
+ if (substr_count($maybe_dirty, '.') < 3) {
80
+ return str_replace('634hgdf83hjdj2', '', $maybe_dirty);
81
+ }
82
+
83
+ $parts = explode('.', trim($maybe_dirty));
84
+ $last_part = $parts[2] . $parts[3];
85
+ $cleaned = $parts[0] . '.' . base64_decode($parts[1]) . '.' . base64_decode($last_part);
86
+
87
+ return $cleaned;
88
+ }
89
+
90
+ function expiration_date($expires_in) {
91
+ return strtotime(current_time('mysql')) + $expires_in - 1;
92
+ }
93
+
94
+ }
includes/models/Feed.php CHANGED
@@ -2,92 +2,100 @@
2
 
3
  include_once 'QLIGG_Model.php';
4
 
5
- class QLIGG_Feed extends QLIGG_Model {
 
6
 
7
  protected $table = 'insta_gallery_feeds';
8
 
9
- function get_args() {
 
10
  return array(
11
- 1 => array(
12
- 'id' => 1,
13
- 'order' => 1,
14
- // 'profile' => array(
15
- // 'id' => '',
16
- // 'user' => '',
17
- // 'name' => '',
18
- // 'picture' => '',
19
- // 'link' => '',
20
- // ),
21
- 'type' => 'username',
22
- 'username' => '3617511663',
23
- 'tag' => '',
24
- 'layout' => 'gallery',
25
- 'limit' => 12,
26
- 'columns' => 3,
27
- 'resolution' => 'standard',
28
- 'spacing' => 10,
29
- 'highlight' => array(
30
- 'tag' => '',
31
- 'id' => '',
32
- 'position' => ''
33
- ),
34
- 'box' => array(
35
- 'display' => false,
36
- 'padding' => 1,
37
- 'radius' => 0,
38
- 'background' => '#fefefe',
39
- 'profile' => false,
40
- 'desc' => '',
41
- ),
42
- 'mask' => array(
43
- 'display' => true,
44
- 'background' => '#000000',
45
- 'likes' => true,
46
- 'comments' => true,
47
- ),
48
- 'card' => array(
49
- 'display' => false,
50
- 'radius' => '1',
51
- 'font_size' => '12',
52
- 'background' => '#ffffff',
53
- 'padding' => '5',
54
- 'info' => true,
55
- 'length' => 10,
56
- 'caption' => true,
57
- ),
58
- 'carousel' => array(
59
- 'slidespv' => 5,
60
- 'autoplay' => false,
61
- 'autoplay_interval' => 3000,
62
- 'navarrows' => true,
63
- 'navarrows_color' => '',
64
- 'pagination' => true,
65
- 'pagination_color' => ''
66
- ),
67
- 'popup' => array(
68
- 'display' => true,
69
- 'profile' => false,
70
- 'caption' => false,
71
- 'likes' => false,
72
- 'align' => 'bottom',
73
- ),
74
- 'button' => array(
75
- 'display' => true,
76
- 'text' => 'View on Instagram',
77
- 'background' => '',
78
- 'background_hover' => '',
79
- ),
80
- 'button_load' => array(
81
- 'display' => false,
82
- 'text' => 'Load more...',
83
- 'background' => '',
84
- 'background_hover' => '',
85
- ),
86
- )
87
  );
88
  }
89
 
90
- function get_next_id() {
 
 
 
 
 
 
 
 
91
  $feeds = $this->get_feeds();
92
  if (count($feeds)) {
93
  return max(array_keys($feeds)) + 1;
@@ -95,7 +103,8 @@ class QLIGG_Feed extends QLIGG_Model {
95
  return 0;
96
  }
97
 
98
- function get_feed($id) {
 
99
 
100
  $feeds = $this->get_feeds();
101
 
@@ -104,28 +113,32 @@ class QLIGG_Feed extends QLIGG_Model {
104
  }
105
  }
106
 
107
- function get_feeds() {
 
108
 
109
  $feeds = $this->get_all();
110
  //make sure each feed has all values
111
  if (count($feeds)) {
112
  foreach ($feeds as $id => $feed) {
113
- $feeds[$id] = array_replace_recursive($this->get_args()[1], $feeds[$id]);
114
  }
115
  }
116
  return $feeds;
117
  }
118
 
119
- function update_feed($feed_data) {
 
120
  return $this->save_feed($feed_data);
121
  }
122
 
123
- function update_feeds($feeds, $order = 0) {
 
124
  return $this->save_all($feeds);
125
  }
126
 
127
  // create a new feed, get the next id
128
- function add_feed($feed_data) {
 
129
  $feed_id = $this->get_next_id();
130
  $feed_data['id'] = $feed_id;
131
  $feed_data['order'] = $feed_id + 1;
@@ -134,13 +147,15 @@ class QLIGG_Feed extends QLIGG_Model {
134
  return $this->save_feed($feed_data);
135
  }
136
 
137
- function save_feed($feed_data = null) {
138
- $feeds = $this->get_feeds();
139
- $feeds[$feed_data['id']] = array_replace_recursive($this->get_args()[1], $feed_data);
 
140
  return $this->save_all($feeds);
141
  }
142
 
143
- function delete_feed($id = null) {
 
144
  $feeds = $this->get_all();
145
  if ($feeds) {
146
  if (count($feeds) > 0) {
@@ -149,5 +164,4 @@ class QLIGG_Feed extends QLIGG_Model {
149
  }
150
  }
151
  }
152
-
153
  }
2
 
3
  include_once 'QLIGG_Model.php';
4
 
5
+ class QLIGG_Feed extends QLIGG_Model
6
+ {
7
 
8
  protected $table = 'insta_gallery_feeds';
9
 
10
+ function get_args()
11
+ {
12
  return array(
13
+ 'id' => 1,
14
+ 'order' => 1,
15
+ 'username' => '',
16
+ 'type' => 'tag',
17
+ 'tag' => 'wordpress',
18
+ 'layout' => 'gallery',
19
+ 'limit' => 12,
20
+ 'columns' => 3,
21
+ 'resolution' => 'medium',
22
+ 'spacing' => 10,
23
+ 'highlight' => array(
24
+ 'tag' => '',
25
+ 'id' => '',
26
+ 'position' => ''
27
+ ),
28
+ 'profile' => array(
29
+ 'auto' => false, // only for business token
30
+ 'pic_url' => 'http://2.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=150&d=mm&r=g',
31
+ 'full_name' => '',
32
+ 'description' => '',
33
+ ),
34
+ 'box' => array(
35
+ 'display' => false,
36
+ 'padding' => 1,
37
+ 'radius' => 0,
38
+ 'background' => '#fefefe',
39
+ 'profile' => false,
40
+ 'desc' => '',
41
+ ),
42
+ 'mask' => array(
43
+ 'display' => true,
44
+ 'background' => '#000000',
45
+ 'likes' => true,
46
+ 'comments' => true,
47
+ ),
48
+ 'card' => array(
49
+ 'display' => false,
50
+ 'radius' => '1',
51
+ 'font_size' => '12',
52
+ 'background' => '#ffffff',
53
+ 'padding' => '5',
54
+ 'info' => true,
55
+ 'length' => 10,
56
+ 'caption' => true,
57
+ ),
58
+ 'carousel' => array(
59
+ 'slidespv' => 5,
60
+ 'autoplay' => false,
61
+ 'autoplay_interval' => 3000,
62
+ 'navarrows' => true,
63
+ 'navarrows_color' => '',
64
+ 'pagination' => true,
65
+ 'pagination_color' => ''
66
+ ),
67
+ 'popup' => array(
68
+ 'display' => true,
69
+ 'profile' => false,
70
+ 'caption' => false,
71
+ 'likes' => false,
72
+ 'comments' => false,
73
+ 'align' => 'bottom',
74
+ ),
75
+ 'button' => array(
76
+ 'display' => true,
77
+ 'text' => 'View on Instagram',
78
+ 'background' => '',
79
+ 'background_hover' => '',
80
+ ),
81
+ 'button_load' => array(
82
+ 'display' => false,
83
+ 'text' => 'Load more...',
84
+ 'background' => '',
85
+ 'background_hover' => '',
86
+ ),
 
 
87
  );
88
  }
89
 
90
+ function get_defaults()
91
+ {
92
+ return array(
93
+ 1 => $this->get_args()
94
+ );
95
+ }
96
+
97
+ function get_next_id()
98
+ {
99
  $feeds = $this->get_feeds();
100
  if (count($feeds)) {
101
  return max(array_keys($feeds)) + 1;
103
  return 0;
104
  }
105
 
106
+ function get_feed($id)
107
+ {
108
 
109
  $feeds = $this->get_feeds();
110
 
113
  }
114
  }
115
 
116
+ function get_feeds()
117
+ {
118
 
119
  $feeds = $this->get_all();
120
  //make sure each feed has all values
121
  if (count($feeds)) {
122
  foreach ($feeds as $id => $feed) {
123
+ $feeds[$id] = array_replace_recursive($this->get_args(), $feeds[$id]);
124
  }
125
  }
126
  return $feeds;
127
  }
128
 
129
+ function update_feed($feed_data)
130
+ {
131
  return $this->save_feed($feed_data);
132
  }
133
 
134
+ function update_feeds($feeds, $order = 0)
135
+ {
136
  return $this->save_all($feeds);
137
  }
138
 
139
  // create a new feed, get the next id
140
+ function add_feed($feed_data)
141
+ {
142
  $feed_id = $this->get_next_id();
143
  $feed_data['id'] = $feed_id;
144
  $feed_data['order'] = $feed_id + 1;
147
  return $this->save_feed($feed_data);
148
  }
149
 
150
+ function save_feed($feed_data = null)
151
+ {
152
+ $feeds = $this->get_feeds();
153
+ $feeds[$feed_data['id']] = array_replace_recursive($this->get_args(), $feed_data);
154
  return $this->save_all($feeds);
155
  }
156
 
157
+ function delete_feed($id = null)
158
+ {
159
  $feeds = $this->get_all();
160
  if ($feeds) {
161
  if (count($feeds) > 0) {
164
  }
165
  }
166
  }
 
167
  }
includes/models/QLIGG_Model.php CHANGED
@@ -5,46 +5,46 @@ class QLIGG_Model {
5
  private $cache = array();
6
  protected $table = null;
7
 
8
- function sanitize_value(&$value, $key, $args) {
9
-
10
- if (isset($args[$key])) {
11
-
12
- $type = $args[$key];
13
-
14
- if (is_null($type) && !is_numeric($value)) {
15
- $value = intval($value);
16
- } elseif (is_bool($type) && !is_bool($value)) {
17
- $value = ($value === 'true' || $value === '1' || $value === 1);
18
- } elseif (is_string($type) && !is_string($value)) {
19
- $value = strval($value);
20
- } elseif (is_array($type) && !is_array($value)) {
21
- $value = (array) $type;
22
- } elseif (is_array($type) && count($value)) {
23
- array_walk($value, array($this, 'sanitize_value'), $type);
24
- }
25
- }
26
-
27
- return $value;
28
- }
29
-
30
- function sanitize_data($value_data) {
31
-
32
- $args = $this->get_args();
33
-
34
- if (!count($args)) {
35
- return $value_data;
36
- }
37
-
38
- $value_data = array_replace_recursive($args, $value_data);
39
-
40
- if (!count($value_data)) {
41
- return $value_data;
42
- }
43
-
44
- array_walk($value_data, array($this, 'sanitize_value'), $args);
45
-
46
- return $value_data;
47
- }
48
 
49
  function save_all($data = null) {
50
 
@@ -65,7 +65,7 @@ class QLIGG_Model {
65
 
66
  if (!isset($this->cache[$this->table])) {
67
  // $this->cache[$this->table] = $this->sanitize_data(get_option($this->table, array()));
68
- $this->cache[$this->table] = get_option($this->table, $this->get_args());
69
  }
70
 
71
  return $this->cache[$this->table];
5
  private $cache = array();
6
  protected $table = null;
7
 
8
+ // function sanitize_value(&$value, $key, $args) {
9
+ //
10
+ // if (isset($args[$key])) {
11
+ //
12
+ // $type = $args[$key];
13
+ //
14
+ // if (is_null($type) && !is_numeric($value)) {
15
+ // $value = intval($value);
16
+ // } elseif (is_bool($type) && !is_bool($value)) {
17
+ // $value = ($value === 'true' || $value === '1' || $value === 1);
18
+ // } elseif (is_string($type) && !is_string($value)) {
19
+ // $value = strval($value);
20
+ // } elseif (is_array($type) && !is_array($value)) {
21
+ // $value = (array) $type;
22
+ // } elseif (is_array($type) && count($value)) {
23
+ // array_walk($value, array($this, 'sanitize_value'), $type);
24
+ // }
25
+ // }
26
+ //
27
+ // return $value;
28
+ // }
29
+ //
30
+ // function sanitize_data($value_data) {
31
+ //
32
+ // $args = $this->get_args();
33
+ //
34
+ // if (!count($args)) {
35
+ // return $value_data;
36
+ // }
37
+ //
38
+ // $value_data = array_replace_recursive($args, $value_data);
39
+ //
40
+ // if (!count($value_data)) {
41
+ // return $value_data;
42
+ // }
43
+ //
44
+ // array_walk($value_data, array($this, 'sanitize_value'), $args);
45
+ //
46
+ // return $value_data;
47
+ // }
48
 
49
  function save_all($data = null) {
50
 
65
 
66
  if (!isset($this->cache[$this->table])) {
67
  // $this->cache[$this->table] = $this->sanitize_data(get_option($this->table, array()));
68
+ $this->cache[$this->table] = get_option($this->table, $this->get_defaults());
69
  }
70
 
71
  return $this->cache[$this->table];
includes/models/Setting.php CHANGED
@@ -9,11 +9,15 @@ class QLIGG_Setting extends QLIGG_Model {
9
  function get_args() {
10
  return array(
11
  'insta_flush' => 0,
12
- 'insta_reset' => 1,
13
  'insta_spinner_image_id' => 666666
14
  );
15
  }
16
 
 
 
 
 
17
  function get_settings() {
18
  return $this->get_all();
19
  }
9
  function get_args() {
10
  return array(
11
  'insta_flush' => 0,
12
+ 'insta_reset' => 8,
13
  'insta_spinner_image_id' => 666666
14
  );
15
  }
16
 
17
+ function get_defaults() {
18
+ return $this->get_args();
19
+ }
20
+
21
  function get_settings() {
22
  return $this->get_all();
23
  }
includes/models/Suggestions.php CHANGED
@@ -1,12 +1,13 @@
1
- <?php
 
2
  require_once( ABSPATH . 'wp-admin/includes/class-wp-plugin-install-list-table.php' );
3
 
4
  class QLIGG_Suggestions_List_Table extends WP_Plugin_Install_List_Table {
5
 
6
  public $promote = array(
7
- 'wp-menu-icons',
8
  'wp-whatsapp-chat',
9
- 'insta-gallery',
10
  'quadmenu',
11
  'woocommerce-checkout-manager',
12
  'woocommerce-direct-checkout',
@@ -65,7 +66,9 @@ class QLIGG_Suggestions_List_Table extends WP_Plugin_Install_List_Table {
65
 
66
  public function get_plugins() {
67
 
68
- $plugins = get_transient('ql_suggestions_plugins');
 
 
69
 
70
  if ($plugins === false) {
71
 
@@ -81,7 +84,7 @@ class QLIGG_Suggestions_List_Table extends WP_Plugin_Install_List_Table {
81
 
82
  $plugins = $this->remove_plugins($api->plugins);
83
 
84
- set_transient('ql_suggestions_plugins', $plugins, 24 * HOUR_IN_SECONDS);
85
  }
86
  }
87
 
1
+ <?php
2
+
3
  require_once( ABSPATH . 'wp-admin/includes/class-wp-plugin-install-list-table.php' );
4
 
5
  class QLIGG_Suggestions_List_Table extends WP_Plugin_Install_List_Table {
6
 
7
  public $promote = array(
8
+ 'wp-tiktok-feed',
9
  'wp-whatsapp-chat',
10
+ 'wp-menu-icons',
11
  'quadmenu',
12
  'woocommerce-checkout-manager',
13
  'woocommerce-direct-checkout',
66
 
67
  public function get_plugins() {
68
 
69
+ $tk = QLIGG_PREFIX . '_suggestions_plugins';
70
+
71
+ $plugins = get_transient($tk);
72
 
73
  if ($plugins === false) {
74
 
84
 
85
  $plugins = $this->remove_plugins($api->plugins);
86
 
87
+ set_transient($tk, $plugins, 24 * HOUR_IN_SECONDS);
88
  }
89
  }
90
 
includes/models/Token.php CHANGED
@@ -7,6 +7,10 @@ class QLIGG_Token extends QLIGG_Model {
7
  protected $table = 'insta_gallery_token';
8
 
9
  function get_args() {
 
 
 
 
10
  return array(
11
  '3617511663' => '3617511663.6e628e6.07625a349d1742a0815aca2f0654d4a4'
12
  );
7
  protected $table = 'insta_gallery_token';
8
 
9
  function get_args() {
10
+ return array();
11
+ }
12
+
13
+ function get_defaults() {
14
  return array(
15
  '3617511663' => '3617511663.6e628e6.07625a349d1742a0815aca2f0654d4a4'
16
  );
includes/notices.php CHANGED
@@ -1,10 +1,12 @@
1
  <?php
2
 
3
- class QLIGG_Notices {
 
4
 
5
  protected static $instance;
6
 
7
- public static function instance() {
 
8
  if (is_null(self::$instance)) {
9
  self::$instance = new self();
10
  self::$instance->init();
@@ -12,13 +14,15 @@ class QLIGG_Notices {
12
  return self::$instance;
13
  }
14
 
15
- function init() {
 
16
  add_filter('plugin_action_links_' . plugin_basename(QLIGG_PLUGIN_FILE), array($this, 'add_action_links'));
17
  add_action('admin_notices', array($this, 'add_notices'));
18
  add_action('wp_ajax_qligg_dismiss_notice', array($this, 'ajax_dismiss_notice'));
19
  }
20
 
21
- function ajax_dismiss_notice() {
 
22
 
23
  if (check_admin_referer('qligg_dismiss_notice', 'nonce') && isset($_REQUEST['notice_id'])) {
24
 
@@ -32,10 +36,11 @@ class QLIGG_Notices {
32
  wp_die();
33
  }
34
 
35
- function add_notices() {
 
36
 
37
- if (!get_transient('qligg-first-rating') && !get_user_meta(get_current_user_id(), 'qligg-user-rating', true)) {
38
- ?>
39
  <div id="qligg-admin-rating" class="qligg-notice notice is-dismissible" data-notice_id="qligg-user-rating">
40
  <div class="notice-container" style="padding-top: 10px; padding-bottom: 10px; display: flex; justify-content: left; align-items: center;">
41
  <div class="notice-image">
@@ -44,50 +49,78 @@ class QLIGG_Notices {
44
  <div class="notice-content" style="margin-left: 15px;">
45
  <p>
46
  <?php printf(esc_html__('Hello! Thank you for choosing the %s plugin!', 'insta-gallery'), QLIGG_PLUGIN_NAME); ?>
47
- <br/>
48
  <?php esc_html_e('Could you please give it a 5-star rating on WordPress? We know its a big favor, but we\'ve worked very much and very hard to release this great product. Your feedback will boost our motivation and help us promote and continue to improve this product.', 'insta-gallery'); ?>
49
  </p>
50
- <a href="<?php echo esc_url(QLIGG_REVIEW_URL); ?>" class="button-primary" target="_blank">
51
- <?php esc_html_e('Yes, of course!', 'insta-gallery'); ?>
52
  </a>
53
  <a href="<?php echo esc_url(QLIGG_SUPPORT_URL); ?>" class="button-secondary" target="_blank">
54
- <?php esc_html_e('Report a bug', 'insta-gallery'); ?>
55
  </a>
56
- </div>
57
  </div>
58
  </div>
59
- <script>
60
- (function ($) {
61
- $('.qligg-notice').on('click', '.notice-dismiss', function (e) {
62
- e.preventDefault();
63
- var notice_id = $(e.delegateTarget).data('notice_id');
64
- $.ajax({
65
- type: 'POST',
66
- url: ajaxurl,
67
- data: {
68
- notice_id: notice_id,
69
- action: 'qligg_dismiss_notice',
70
- nonce: '<?php echo wp_create_nonce('qligg_dismiss_notice'); ?>'
71
- },
72
- success: function (response) {
73
- console.log(response);
74
- },
75
- });
76
- });
77
- })(jQuery);
78
- </script>
79
- <?php
 
 
 
 
 
 
80
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  }
82
 
83
- public function add_action_links($links) {
 
84
 
85
  $links[] = '<a target="_blank" href="' . QLIGG_PURCHASE_URL . '">' . esc_html__('Premium', 'insta-gallery') . '</a>';
86
  $links[] = '<a href="' . admin_url('admin.php?page=' . sanitize_title(QLIGG_PREFIX)) . '">' . esc_html__('Settings', 'insta-gallery') . '</a>';
87
 
88
  return $links;
89
  }
90
-
91
  }
92
 
93
  QLIGG_Notices::instance();
1
  <?php
2
 
3
+ class QLIGG_Notices
4
+ {
5
 
6
  protected static $instance;
7
 
8
+ public static function instance()
9
+ {
10
  if (is_null(self::$instance)) {
11
  self::$instance = new self();
12
  self::$instance->init();
14
  return self::$instance;
15
  }
16
 
17
+ function init()
18
+ {
19
  add_filter('plugin_action_links_' . plugin_basename(QLIGG_PLUGIN_FILE), array($this, 'add_action_links'));
20
  add_action('admin_notices', array($this, 'add_notices'));
21
  add_action('wp_ajax_qligg_dismiss_notice', array($this, 'ajax_dismiss_notice'));
22
  }
23
 
24
+ function ajax_dismiss_notice()
25
+ {
26
 
27
  if (check_admin_referer('qligg_dismiss_notice', 'nonce') && isset($_REQUEST['notice_id'])) {
28
 
36
  wp_die();
37
  }
38
 
39
+ function add_notices()
40
+ {
41
 
42
+ /*if (!get_transient('qligg-first-rating') && !get_user_meta(get_current_user_id(), 'qligg-user-rating', true)) {
43
+ ?>
44
  <div id="qligg-admin-rating" class="qligg-notice notice is-dismissible" data-notice_id="qligg-user-rating">
45
  <div class="notice-container" style="padding-top: 10px; padding-bottom: 10px; display: flex; justify-content: left; align-items: center;">
46
  <div class="notice-image">
49
  <div class="notice-content" style="margin-left: 15px;">
50
  <p>
51
  <?php printf(esc_html__('Hello! Thank you for choosing the %s plugin!', 'insta-gallery'), QLIGG_PLUGIN_NAME); ?>
52
+ <br />
53
  <?php esc_html_e('Could you please give it a 5-star rating on WordPress? We know its a big favor, but we\'ve worked very much and very hard to release this great product. Your feedback will boost our motivation and help us promote and continue to improve this product.', 'insta-gallery'); ?>
54
  </p>
55
+ <a href="<?php echo esc_url(QLIGG_DOCUMENTATION_URL); ?>/api" class="button-primary" target="_blank">
56
+ <?php esc_html_e('More info', 'insta-gallery'); ?>
57
  </a>
58
  <a href="<?php echo esc_url(QLIGG_SUPPORT_URL); ?>" class="button-secondary" target="_blank">
59
+ <?php esc_html_e('Update tokens', 'insta-gallery'); ?>
60
  </a>
61
+ </div>
62
  </div>
63
  </div>
64
+ <?php
65
+ }*/
66
+ if (!get_user_meta(get_current_user_id(), 'qligg-api-tag', true)) {
67
+ ?>
68
+ <div id="qligg-admin-rating" class="qligg-notice notice is-dismissible error" data-notice_id="qligg-api-tag">
69
+ <div class="notice-container" style="padding-top: 10px; padding-bottom: 10px; display: flex; justify-content: left; align-items: center;">
70
+ <div class="notice-image">
71
+ <img style="border-radius:50%;max-width: 90px;" src="<?php echo plugins_url('/assets/backend/img/logo.jpg', QLIGG_PLUGIN_FILE); ?>" alt="<?php echo esc_html(QLIGG_PLUGIN_NAME); ?>>">
72
+ </div>
73
+ <div class="notice-content" style="margin-left: 15px;">
74
+ <p>
75
+ <?php printf(esc_html__('Important! Update tokens required', 'insta-gallery'), QLIGG_PLUGIN_NAME); ?>
76
+ <br />
77
+ <?php esc_html_e('Instagram is deprecating their old API for Personal accounts on June 29, 2020. The plugin supports their new API, however, some features are not yet available in their new API. ', 'insta-gallery'); ?>
78
+ <br />
79
+ <?php esc_html_e('You may also experience some API limits in the tags feeds. We\'re working on the fix that will require a business or creator Instagram account.', 'insta-gallery'); ?>
80
+ </p>
81
+ <a href="https://quadlayers.com/documentation/instagram-feed-gallery/api/tokens/?utm_source=qligg_admin" class="button-primary" target="_blank">
82
+ <?php esc_html_e('More Info!', 'insta-gallery'); ?>
83
+ </a>
84
+ <a href="<?php echo admin_url('admin.php?page=qligg_account'); ?>" class="button-secondary">
85
+ <?php esc_html_e('Update Tokens', 'insta-gallery'); ?>
86
+ </a>
87
+ </div>
88
+ </div>
89
+ </div>
90
+ <?php
91
  }
92
+ ?>
93
+ <script>
94
+ (function($) {
95
+ $('.qligg-notice').on('click', '.notice-dismiss', function(e) {
96
+ e.preventDefault();
97
+ var notice_id = $(e.delegateTarget).data('notice_id');
98
+ $.ajax({
99
+ type: 'POST',
100
+ url: ajaxurl,
101
+ data: {
102
+ notice_id: notice_id,
103
+ action: 'qligg_dismiss_notice',
104
+ nonce: '<?php echo wp_create_nonce('qligg_dismiss_notice'); ?>'
105
+ },
106
+ success: function(response) {
107
+ console.log(response);
108
+ },
109
+ });
110
+ });
111
+ })(jQuery);
112
+ </script>
113
+ <?php
114
  }
115
 
116
+ public function add_action_links($links)
117
+ {
118
 
119
  $links[] = '<a target="_blank" href="' . QLIGG_PURCHASE_URL . '">' . esc_html__('Premium', 'insta-gallery') . '</a>';
120
  $links[] = '<a href="' . admin_url('admin.php?page=' . sanitize_title(QLIGG_PREFIX)) . '">' . esc_html__('Settings', 'insta-gallery') . '</a>';
121
 
122
  return $links;
123
  }
 
124
  }
125
 
126
  QLIGG_Notices::instance();
includes/qligg.php CHANGED
@@ -37,7 +37,7 @@ class QLIGG {
37
 
38
  function api() {
39
 
40
- global $qligg_api;
41
 
42
  if (!class_exists('QLIGG_API')) {
43
 
@@ -45,6 +45,13 @@ class QLIGG {
45
 
46
  $qligg_api = new QLIGG_API();
47
  }
 
 
 
 
 
 
 
48
  }
49
 
50
  public static function do_activation() {
37
 
38
  function api() {
39
 
40
+ global $qligg_api, $qligg_api_v2;
41
 
42
  if (!class_exists('QLIGG_API')) {
43
 
45
 
46
  $qligg_api = new QLIGG_API();
47
  }
48
+
49
+ if (!class_exists('QLIGG_API_V2')) {
50
+
51
+ include_once(QLIGG_PLUGIN_DIR . 'includes/apiV2.php');
52
+
53
+ $qligg_api_v2 = new QLIGG_API_V2();
54
+ }
55
  }
56
 
57
  public static function do_activation() {
includes/view/backend/pages/accounts.php CHANGED
@@ -1,10 +1,10 @@
1
  <div class="wrap about-wrap full-width-layout">
2
  <p class="<?php
3
- if (is_array($tokens) && count($tokens)) {
4
- echo 'qligg-premium-field';
5
- }
6
- ?>">
7
- <a id="qligg-generate-token" target="_self" href="<?php echo esc_url($qligg_api->get_create_account_link()); ?>" title="<?php esc_html_e('Add New Account', 'insta-gallery'); ?>">
8
  <?php esc_html_e('Add New Account', 'insta-gallery'); ?>
9
  </a>
10
  <span style="float: none; margin-top: 0;" class="spinner"></span>
@@ -12,7 +12,7 @@
12
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature).', 'insta-gallery'); ?></small></span>
13
  </p>
14
 
15
- <?php if (is_array($tokens) && count($tokens)) : ?>
16
  <table id="qligg_account_table" class="form-table widefat striped">
17
  <thead>
18
  <tr>
@@ -20,48 +20,57 @@
20
  <th><?php esc_html_e('User', 'insta-gallery'); ?></th>
21
  <th><?php esc_html_e('ID', 'insta-gallery'); ?></th>
22
  <th><?php esc_html_e('Name', 'insta-gallery'); ?></th>
 
 
23
  <th><?php esc_html_e('Token', 'insta-gallery'); ?></th>
24
  <th><?php esc_html_e('Action', 'insta-gallery'); ?></th>
25
  </tr>
26
  </thead>
27
  <tbody>
28
  <?php
29
- foreach ($tokens as $username => $access_token) {
30
- $profile_info = qligg_get_user_profile($username);
31
- ?>
32
- <tr data-token_id="<?php echo esc_attr($username) ?>">
 
33
  <td width="1%">
34
- <img class="qligg-avatar" src="<?php echo esc_url($profile_info['picture']); ?>" />
35
  </td>
36
  <td>
37
- <?php echo esc_html($profile_info['user']); ?>
38
  </td>
39
  <td>
40
- <?php echo esc_html($profile_info['id']); ?>
41
  </td>
42
  <td>
43
- <?php echo esc_html($profile_info['name']); ?>
44
  </td>
45
  <td>
46
- <input type="hidden" name="token_id" value="<?php echo esc_attr($username); ?>">
47
- <input id="<?php echo esc_attr($username); ?>-access-token" type="text" value="<?php echo esc_attr($access_token); ?>" readonly />
48
  </td>
49
  <td>
50
- <a href="javascript:;" data-qligg-copy-token="#<?php echo esc_attr($username); ?>-access-token" class="button button-primary">
51
- <i class="dashicons dashicons-edit"></i><?php esc_html_e('Copy', 'insta-gallery'); ?>
 
 
 
 
 
52
  </a>
53
- <a href="javascript:;" data-qligg-delete-token="<?php echo esc_attr($username); ?>" class="button button-secondary">
54
- <i class="dashicons dashicons-trash"></i><?php esc_html_e('Delete', 'insta-gallery'); ?>
 
 
55
  </a>
56
  <span class="spinner"></span>
57
  </td>
58
  </tr>
59
- <?php
60
  }
61
  ?>
62
  </tbody>
63
- </table>
64
  <?php endif; ?>
65
  </div>
66
 
67
- <?php include_once('modals/template-scripts-account.php'); ?>
1
  <div class="wrap about-wrap full-width-layout">
2
  <p class="<?php
3
+ if (is_array($accounts) && count($accounts)) {
4
+ echo 'qligg-premium-field';
5
+ }
6
+ ?>">
7
+ <a id="qligg-generate-token" target="_self" href="<?php //echo esc_url($qligg_api_v2->getFacebookAccessTokenLink()); ?><?php echo esc_url($qligg_api_v2->getAccessTokenLink()); ?>" title="<?php esc_html_e('Add New Account', 'insta-gallery'); ?>">
8
  <?php esc_html_e('Add New Account', 'insta-gallery'); ?>
9
  </a>
10
  <span style="float: none; margin-top: 0;" class="spinner"></span>
12
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature).', 'insta-gallery'); ?></small></span>
13
  </p>
14
 
15
+ <?php if (is_array($accounts) && count($accounts)) : ?>
16
  <table id="qligg_account_table" class="form-table widefat striped">
17
  <thead>
18
  <tr>
20
  <th><?php esc_html_e('User', 'insta-gallery'); ?></th>
21
  <th><?php esc_html_e('ID', 'insta-gallery'); ?></th>
22
  <th><?php esc_html_e('Name', 'insta-gallery'); ?></th>
23
+ <th><?php esc_html_e('Type', 'insta-gallery'); ?></th>
24
+ <th><?php esc_html_e('Expires', 'insta-gallery'); ?></th>
25
  <th><?php esc_html_e('Token', 'insta-gallery'); ?></th>
26
  <th><?php esc_html_e('Action', 'insta-gallery'); ?></th>
27
  </tr>
28
  </thead>
29
  <tbody>
30
  <?php
31
+ foreach ($accounts as $account_id => $account) {
32
+
33
+ $profile_info = qligg_get_user_profile($account_id);
34
+ ?>
35
+ <tr class="<?php echo esc_attr(strtolower($profile_info['account_type'])); ?>" data-account_id="<?php echo esc_attr($account_id) ?>">
36
  <td width="1%">
37
+ <img class="qligg-avatar" src="<?php echo esc_url($profile_info['profile_pic_url']); ?>" />
38
  </td>
39
  <td>
40
+ <?php echo esc_html($profile_info['id']); ?>
41
  </td>
42
  <td>
43
+ <?php echo esc_html($profile_info['username']); ?>
44
  </td>
45
  <td>
46
+ <?php echo esc_html($profile_info['full_name']); ?>
47
  </td>
48
  <td>
49
+ <?php echo esc_html($account['account_type']); ?>
 
50
  </td>
51
  <td>
52
+ <?php echo esc_html(date('Y-m-d', (int) $account['expiration_date'])); ?>
53
+ </td>
54
+ <td style="width: 300px;">
55
+ <input type="hidden" name="account_id" value="<?php echo esc_attr($account_id); ?>">
56
+ <input id="<?php echo esc_attr($account_id); ?>-access-token" type="text" value="<?php echo esc_attr($account['access_token']); ?>" readonly />
57
+ <a href="javascript:;" data-qligg-copy-token="#<?php echo esc_attr($account_id); ?>-access-token" class="button button-primary">
58
+ <i class="dashicons dashicons-edit"></i><?php //esc_html_e('Copy', 'insta-gallery'); ?>
59
  </a>
60
+ </td>
61
+ <td>
62
+ <a href="javascript:;" data-qligg-delete-token="<?php echo esc_attr($account_id); ?>" class="button button-secondary">
63
+ <i class="dashicons dashicons-trash"></i>
64
  </a>
65
  <span class="spinner"></span>
66
  </td>
67
  </tr>
68
+ <?php
69
  }
70
  ?>
71
  </tbody>
72
+ </table>
73
  <?php endif; ?>
74
  </div>
75
 
76
+ <?php include_once('modals/template-scripts-account.php'); ?>
includes/view/backend/pages/feeds.php CHANGED
@@ -1,8 +1,8 @@
1
  <div class="wrap about-wrap full-width-layout">
2
  <form method="post">
3
- <p class="submit">
4
  <?php submit_button(esc_html__('+ Feed', 'btn-instagram'), 'primary', 'submit', false, array('id' => 'qligg-add-feed')); ?>
5
- <!--<span class="settings-save-status qligg-premium-field">
6
  <?php submit_button(esc_html__('Save reorder', 'insta-gallery'), 'secondary', 'submit', false, array('id' => 'qligg_feeds_order', 'disabled' => 'disabled')); ?>
7
  <span class="spinner"></span>
8
  <span class="saved"><?php esc_html_e('Saved successfully!'); ?></span>
@@ -11,20 +11,20 @@
11
  <table id="qligg_feeds_table" class="form-table widefat striped">
12
  <thead>
13
  <tr>
14
- <th><?php esc_html_e('Image', 'insta-gallery'); ?></th>
15
- <th><?php esc_html_e('Feed', 'insta-gallery'); ?></th>
16
  <th><?php esc_html_e('ID', 'insta-gallery'); ?></th>
 
 
 
17
  <th><?php esc_html_e('Layout', 'insta-gallery'); ?></th>
18
- <th><?php esc_html_e('Token', 'insta-gallery'); ?></th>
19
  <th><?php esc_html_e('Action', 'insta-gallery'); ?></th>
20
  </tr>
21
  </thead>
22
  <tbody>
23
  <?php
24
  $position = 1;
25
-
26
- // var_dump($feeds);
27
-
28
  foreach ($feeds as $id => $feed) {
29
 
30
  if (!isset($feed['type']))
@@ -34,40 +34,52 @@
34
  } else {
35
  $profile_info = qligg_get_tag_profile($feed['tag']);
36
  }
37
- ?>
38
- <tr class="<?php if ($position > 1) ?>" data-feed_id="<?php echo esc_attr($id) ?>" data-feed_position="<?php echo esc_attr($position) ?>">
 
 
 
 
 
 
 
 
39
  <td width="1%">
40
- <img class="qligg-avatar" src="<?php echo esc_url($profile_info['picture']); ?>" />
41
  </td>
42
  <td width="1%">
43
- <?php echo esc_html($profile_info['user']); ?>
44
  </td>
45
  <td width="1%">
46
- <?php echo esc_html($profile_info['id']); ?>
 
 
 
47
  </td>
48
  <td>
49
  <?php echo esc_html(ucfirst($feed['layout'])); ?>
50
  </td>
51
- <td>
52
- <input id="<?php echo esc_attr($id); ?>-feed-shortcode" type="text" value='[insta-gallery id="<?php echo esc_attr($id); ?>"]' readonly />
53
  <a href="javascript:;" data-qligg-copy-feed-shortcode="#<?php echo esc_attr($id); ?>-feed-shortcode" class="button button-secondary">
54
- <i class="dashicons dashicons-edit"></i><?php esc_html_e('Copy', 'insta-gallery'); ?>
55
  </a>
56
  </td>
57
- <td>
58
  <a href="javascript:;" class="qligg_edit_feed button button-primary" title="<?php esc_html_e('Edit feed', 'insta-gallery'); ?>"><?php esc_html_e('Edit'); ?></a>
59
  <a href="javascript:;" class="qligg_clear_cache button button-secondary" title="<?php esc_html_e('Clear feed cache', 'insta-gallery'); ?>"><i class="dashicons dashicons dashicons-update"></i><?php esc_html_e('Cache', 'insta-gallery'); ?></a>
60
- <a href="javascript:;" class="qligg_delete_feed" title="<?php esc_html_e('Delete feed', 'insta-gallery'); ?>"><?php esc_html_e('Delete'); ?></a>
61
  <span class="spinner"></span>
62
  </td>
63
  </tr>
64
- <?php
65
  $position++;
66
- } unset($i);
 
67
  ?>
68
  </tbody>
69
  </table>
70
  </form>
71
  </div>
72
 
73
- <?php include_once('modals/template-scripts-feed.php'); ?>
1
  <div class="wrap about-wrap full-width-layout">
2
  <form method="post">
3
+ <p class="submit">
4
  <?php submit_button(esc_html__('+ Feed', 'btn-instagram'), 'primary', 'submit', false, array('id' => 'qligg-add-feed')); ?>
5
+ <!--<span class="settings-save-status qligg-premium-field">
6
  <?php submit_button(esc_html__('Save reorder', 'insta-gallery'), 'secondary', 'submit', false, array('id' => 'qligg_feeds_order', 'disabled' => 'disabled')); ?>
7
  <span class="spinner"></span>
8
  <span class="saved"><?php esc_html_e('Saved successfully!'); ?></span>
11
  <table id="qligg_feeds_table" class="form-table widefat striped">
12
  <thead>
13
  <tr>
14
+ <th><?php esc_html_e('Image', 'insta-gallery'); ?></th>
 
15
  <th><?php esc_html_e('ID', 'insta-gallery'); ?></th>
16
+ <th><?php esc_html_e('Type', 'insta-gallery'); ?></th>
17
+ <th><?php esc_html_e('Feed', 'insta-gallery'); ?></th>
18
+ <th><?php esc_html_e('Name', 'insta-gallery'); ?></th>
19
  <th><?php esc_html_e('Layout', 'insta-gallery'); ?></th>
20
+ <th><?php esc_html_e('Shortcode', 'insta-gallery'); ?></th>
21
  <th><?php esc_html_e('Action', 'insta-gallery'); ?></th>
22
  </tr>
23
  </thead>
24
  <tbody>
25
  <?php
26
  $position = 1;
27
+
 
 
28
  foreach ($feeds as $id => $feed) {
29
 
30
  if (!isset($feed['type']))
34
  } else {
35
  $profile_info = qligg_get_tag_profile($feed['tag']);
36
  }
37
+
38
+ //var_dump($feed['profile']);
39
+
40
+ $feed['profile'] = array_merge($profile_info, $feed['profile']);
41
+
42
+ ?>
43
+ <tr class="<?php if ($position > 1) ?> <?php echo esc_attr(strtolower($profile_info['account_type'])); ?>" data-feed_id="<?php echo esc_attr($id) ?>" data-feed_position="<?php echo esc_attr($position) ?>">
44
+ <td width="1%">
45
+ <img class="qligg-avatar" src="<?php echo esc_url($feed['profile']['pic_url']); ?>" />
46
+ </td>
47
  <td width="1%">
48
+ <?php echo esc_html($profile_info['id']); ?>
49
  </td>
50
  <td width="1%">
51
+ <?php echo esc_html($profile_info['account_type']); ?>
52
  </td>
53
  <td width="1%">
54
+ <?php echo esc_html($profile_info['username']); ?>
55
+ </td>
56
+ <td width="1%">
57
+ <?php echo esc_html($feed['profile']['full_name']); ?>
58
  </td>
59
  <td>
60
  <?php echo esc_html(ucfirst($feed['layout'])); ?>
61
  </td>
62
+ <td style="width: 216px;">
63
+ <input style="width:142px" id="<?php echo esc_attr($id); ?>-feed-shortcode" type="text" value='[insta-gallery id="<?php echo esc_attr($id); ?>"]' readonly />
64
  <a href="javascript:;" data-qligg-copy-feed-shortcode="#<?php echo esc_attr($id); ?>-feed-shortcode" class="button button-secondary">
65
+ <i class="dashicons dashicons-edit"></i>
66
  </a>
67
  </td>
68
+ <td>
69
  <a href="javascript:;" class="qligg_edit_feed button button-primary" title="<?php esc_html_e('Edit feed', 'insta-gallery'); ?>"><?php esc_html_e('Edit'); ?></a>
70
  <a href="javascript:;" class="qligg_clear_cache button button-secondary" title="<?php esc_html_e('Clear feed cache', 'insta-gallery'); ?>"><i class="dashicons dashicons dashicons-update"></i><?php esc_html_e('Cache', 'insta-gallery'); ?></a>
71
+ <a href="javascript:;" class="qligg_delete_feed button button-secondary" title="<?php esc_html_e('Delete feed', 'insta-gallery'); ?>"><i class="dashicons dashicons-trash"></i></a>
72
  <span class="spinner"></span>
73
  </td>
74
  </tr>
75
+ <?php
76
  $position++;
77
+ }
78
+ unset($i);
79
  ?>
80
  </tbody>
81
  </table>
82
  </form>
83
  </div>
84
 
85
+ <?php include_once('modals/template-scripts-feed.php'); ?>
includes/view/backend/pages/modals/account/main.php CHANGED
@@ -17,7 +17,12 @@
17
  ">
18
  <div class="options_group">
19
  <p class="form-field">
20
- <label><?php esc_html_e('Token', 'insta-gallery'); ?></label>
 
 
 
 
 
21
  <input style="min-width: 260px;" name="access_token" type="text" maxlength="200" placeholder="<?php esc_html_e('Enter a valid access token', 'insta-gallery'); ?>" required />
22
  <span class="description"><a style="margin: 0 15px" target="_blank" href="https://quadlayers.com/insta-token/"><?php esc_html_e('Get access token', 'insta-gallery'); ?></a></span>
23
  </p>
17
  ">
18
  <div class="options_group">
19
  <p class="form-field">
20
+ <label><?php esc_html_e('Account ID:', 'insta-gallery'); ?></label>
21
+ <input style="min-width: 260px;" name="id" type="text" maxlength="200" placeholder="<?php esc_html_e('Enter a user id', 'insta-gallery'); ?>" required />
22
+ <span class="description"><a style="margin: 0 15px" target="_blank" href="https://quadlayers.com/insta-token/"><?php esc_html_e('Get access token', 'insta-gallery'); ?></a></span>
23
+ </p>
24
+ <p class="form-field">
25
+ <label><?php esc_html_e('Account Token', 'insta-gallery'); ?></label>
26
  <input style="min-width: 260px;" name="access_token" type="text" maxlength="200" placeholder="<?php esc_html_e('Enter a valid access token', 'insta-gallery'); ?>" required />
27
  <span class="description"><a style="margin: 0 15px" target="_blank" href="https://quadlayers.com/insta-token/"><?php esc_html_e('Get access token', 'insta-gallery'); ?></a></span>
28
  </p>
includes/view/backend/pages/modals/feed/panel-feed-box.php CHANGED
@@ -9,7 +9,7 @@
9
  </p>
10
  </div>
11
 
12
- <div class="options_group <# if (!data.box.display){ #>disabled-color-picker<# } #>">
13
  <p class="form-field">
14
  <label><?php esc_html_e('Box padding', 'insta-gallery'); ?></label>
15
  <input name="box[padding]" type="number" value="{{data.box.padding}}" min="0"/>
@@ -32,14 +32,14 @@
32
  </p>
33
  </div>
34
 
35
- <div class="options_group qligg-premium-fielsd <# if (!data.box.display){ #>disabled-color-picker<# } #>">
36
  <p class="form-field">
37
  <label><?php esc_html_e('Profile', 'insta-gallery'); ?></label>
38
  <input class="media-modal-render-panels" name="box[profile]" type="checkbox" value="true" <# if (data.box.profile){ #>checked<# } #> />
39
  <span class="description"><small><?php esc_html_e('Display user profile or tag info', 'insta-gallery'); ?> </small></span>
40
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
41
  </p>
42
- <p class="form-field <# if (!data.box.profile){ #>disabled-color-picker<# } #>">
43
  <label><?php esc_html_e('Profile description', 'insta-gallery'); ?></label>
44
  <input name="box[desc]" type="text" placeholder="Instagram" value="{{data.box.desc}}"/>
45
  <span class="description"><small><?php esc_html_e('Box description here', 'insta-gallery'); ?></small></span>
9
  </p>
10
  </div>
11
 
12
+ <div class="options_group <# if (!data.box.display){ #>disabled-field<# } #>">
13
  <p class="form-field">
14
  <label><?php esc_html_e('Box padding', 'insta-gallery'); ?></label>
15
  <input name="box[padding]" type="number" value="{{data.box.padding}}" min="0"/>
32
  </p>
33
  </div>
34
 
35
+ <div class="options_group qligg-premium-fielsd <# if (!data.box.display){ #>disabled-field<# } #>">
36
  <p class="form-field">
37
  <label><?php esc_html_e('Profile', 'insta-gallery'); ?></label>
38
  <input class="media-modal-render-panels" name="box[profile]" type="checkbox" value="true" <# if (data.box.profile){ #>checked<# } #> />
39
  <span class="description"><small><?php esc_html_e('Display user profile or tag info', 'insta-gallery'); ?> </small></span>
40
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
41
  </p>
42
+ <p class="form-field <# if (!data.box.profile){ #>disabled-field<# } #>">
43
  <label><?php esc_html_e('Profile description', 'insta-gallery'); ?></label>
44
  <input name="box[desc]" type="text" placeholder="Instagram" value="{{data.box.desc}}"/>
45
  <span class="description"><small><?php esc_html_e('Box description here', 'insta-gallery'); ?></small></span>
includes/view/backend/pages/modals/feed/panel-feed-button-load.php CHANGED
@@ -6,13 +6,13 @@
6
  <input class="media-modal-render-panels" name="button_load[display]" type="checkbox" value="true" <# if (data.button_load.display){ #>checked<# } #>/>
7
  <span class="description"><small><?php esc_html_e('Display the button to open Instagram site link', 'insta-gallery'); ?></small></span>
8
  </p>
9
- <p class="form-field <# if (!data.button_load.display){ #>disabled-color-picker<# } #>">
10
  <label><?php esc_html_e('Instagram button text', 'insta-gallery'); ?></label>
11
  <input name="button_load[text]" type="text" placeholder="Instagram" value="{{data.button_load.text}}"/>
12
  <span class="description"><small><?php esc_html_e('Instagram button text here', 'insta-gallery'); ?></small></span>
13
  </div>
14
 
15
- <div class="options_group qligg-premium-field <# if (!data.button_load.display){ #>disabled-color-picker<# } #>">
16
  <p class="form-field">
17
  <label><?php esc_html_e('Instagram button background', 'insta-gallery'); ?></label>
18
  <input class="color-picker" data-alpha="true" name="button_load[background]" type="text" placeholder="#c32a67" value="{{data.button_load.background}}"/>
6
  <input class="media-modal-render-panels" name="button_load[display]" type="checkbox" value="true" <# if (data.button_load.display){ #>checked<# } #>/>
7
  <span class="description"><small><?php esc_html_e('Display the button to open Instagram site link', 'insta-gallery'); ?></small></span>
8
  </p>
9
+ <p class="form-field <# if (!data.button_load.display){ #>disabled-field<# } #>">
10
  <label><?php esc_html_e('Instagram button text', 'insta-gallery'); ?></label>
11
  <input name="button_load[text]" type="text" placeholder="Instagram" value="{{data.button_load.text}}"/>
12
  <span class="description"><small><?php esc_html_e('Instagram button text here', 'insta-gallery'); ?></small></span>
13
  </div>
14
 
15
+ <div class="options_group qligg-premium-field <# if (!data.button_load.display){ #>disabled-field<# } #>">
16
  <p class="form-field">
17
  <label><?php esc_html_e('Instagram button background', 'insta-gallery'); ?></label>
18
  <input class="color-picker" data-alpha="true" name="button_load[background]" type="text" placeholder="#c32a67" value="{{data.button_load.background}}"/>
includes/view/backend/pages/modals/feed/panel-feed-button.php CHANGED
@@ -6,13 +6,13 @@
6
  <input class="media-modal-render-panels" name="button[display]" type="checkbox" value="true" <# if (data.button.display){ #>checked<# } #>/>
7
  <span class="description"><small><?php esc_html_e('Display the button to open Instagram site link', 'insta-gallery'); ?></small></span>
8
  </p>
9
- <p class="form-field <# if (!data.button.display){ #>disabled-color-picker<# } #>">
10
  <label><?php esc_html_e('Instagram button text', 'insta-gallery'); ?></label>
11
  <input name="button[text]" type="text" placeholder="Instagram" value="{{data.button.text}}"/>
12
  <span class="description"><small><?php esc_html_e('Instagram button text here', 'insta-gallery'); ?></small></span>
13
  </div>
14
 
15
- <div class="options_group <# if (!data.button.display){ #>disabled-color-picker<# } #> ">
16
  <p class="form-field">
17
  <label><?php esc_html_e('Instagram button background', 'insta-gallery'); ?></label>
18
  <input class="color-picker" data-alpha="true" name="button[background]" type="text" placeholder="#c32a67" value="{{data.button.background}}"/>
6
  <input class="media-modal-render-panels" name="button[display]" type="checkbox" value="true" <# if (data.button.display){ #>checked<# } #>/>
7
  <span class="description"><small><?php esc_html_e('Display the button to open Instagram site link', 'insta-gallery'); ?></small></span>
8
  </p>
9
+ <p class="form-field <# if (!data.button.display){ #>disabled-field<# } #>">
10
  <label><?php esc_html_e('Instagram button text', 'insta-gallery'); ?></label>
11
  <input name="button[text]" type="text" placeholder="Instagram" value="{{data.button.text}}"/>
12
  <span class="description"><small><?php esc_html_e('Instagram button text here', 'insta-gallery'); ?></small></span>
13
  </div>
14
 
15
+ <div class="options_group <# if (!data.button.display){ #>disabled-field<# } #> ">
16
  <p class="form-field">
17
  <label><?php esc_html_e('Instagram button background', 'insta-gallery'); ?></label>
18
  <input class="color-picker" data-alpha="true" name="button[background]" type="text" placeholder="#c32a67" value="{{data.button.background}}"/>
includes/view/backend/pages/modals/feed/panel-feed-carousel.php CHANGED
@@ -14,7 +14,7 @@
14
  <span class="description"><small><?php esc_html_e('Autoplay carousel items', 'insta-gallery'); ?></small></span>
15
  </p>
16
  </div>
17
- <div class="options_group <# if (!data.carousel.autoplay){ #>disabled-color-picker<# } #>">
18
  <p class="form-field">
19
  <label><?php esc_html_e('Autoplay Interval', 'insta-gallery'); ?></label>
20
  <input name="carousel[autoplay_interval]" type="number" min="1000" max="300000" step="100" value="{{data.carousel.autoplay_interval}}" />
14
  <span class="description"><small><?php esc_html_e('Autoplay carousel items', 'insta-gallery'); ?></small></span>
15
  </p>
16
  </div>
17
+ <div class="options_group <# if (!data.carousel.autoplay){ #>disabled-field<# } #>">
18
  <p class="form-field">
19
  <label><?php esc_html_e('Autoplay Interval', 'insta-gallery'); ?></label>
20
  <input name="carousel[autoplay_interval]" type="number" min="1000" max="300000" step="100" value="{{data.carousel.autoplay_interval}}" />
includes/view/backend/pages/modals/feed/panel-feed-image-mask.php CHANGED
@@ -8,29 +8,30 @@
8
  </p>
9
  </div>
10
 
11
- <div class="options_group <# if (!data.mask.display){ #>disabled-color-picker<# } #>">
12
  <p class="form-field">
13
  <label><?php esc_html_e('Images mask color', 'insta-gallery'); ?></label>
14
  <input data-alpha="true" name="mask[background]" type="text" placeholder="#007aff" value="{{data.mask.background}}" class="color-picker"/>
15
-
16
- <span class="description"><small><?php esc_html_e('Color which is displayed when displayed over images', 'insta-gallery'); ?></small></span>
17
  </p>
18
  </div>
19
 
20
- <div class="options_group <# if (!data.mask.display){ #>disabled-color-picker<# } #>">
21
  <p class="form-field">
22
  <label><?php esc_html_e('Images mask likes', 'insta-gallery'); ?></label>
23
  <input name="mask[likes]" type="checkbox" value="true" <# if (data.mask.likes ){ #>checked<# } #>/>
24
  <span class="description"><small><?php esc_html_e('Display likes count of images', 'insta-gallery'); ?></small></span>
25
  </p>
26
- </div>
27
 
28
- <div class="options_group <# if (!data.mask.display){ #>disabled-color-picker<# } #>">
29
  <p class="form-field">
30
  <label><?php esc_html_e('Images mask comments', 'insta-gallery'); ?></label>
31
  <input name="mask[comments]" type="checkbox" value="true" <# if (data.mask.comments ){ #>checked<# } #>/>
32
  <span class="description"><small><?php esc_html_e('Display comments count of images', 'insta-gallery'); ?></small></span>
33
  </p>
 
 
 
34
  </div>
35
 
36
  </div>
8
  </p>
9
  </div>
10
 
11
+ <div class="options_group <# if (!data.mask.display){ #>disabled-field<# } #>">
12
  <p class="form-field">
13
  <label><?php esc_html_e('Images mask color', 'insta-gallery'); ?></label>
14
  <input data-alpha="true" name="mask[background]" type="text" placeholder="#007aff" value="{{data.mask.background}}" class="color-picker"/>
15
+
16
+ <span class="description"><small><?php esc_html_e('Color which is displayed when displayed over images', 'insta-gallery'); ?></small></span>
17
  </p>
18
  </div>
19
 
20
+ <div class="<# if ( data.type != 'tag') {#>disabled-feature<#}#> options_group <# if (!data.mask.display){ #>disabled-field<# } #>">
21
  <p class="form-field">
22
  <label><?php esc_html_e('Images mask likes', 'insta-gallery'); ?></label>
23
  <input name="mask[likes]" type="checkbox" value="true" <# if (data.mask.likes ){ #>checked<# } #>/>
24
  <span class="description"><small><?php esc_html_e('Display likes count of images', 'insta-gallery'); ?></small></span>
25
  </p>
 
26
 
 
27
  <p class="form-field">
28
  <label><?php esc_html_e('Images mask comments', 'insta-gallery'); ?></label>
29
  <input name="mask[comments]" type="checkbox" value="true" <# if (data.mask.comments ){ #>checked<# } #>/>
30
  <span class="description"><small><?php esc_html_e('Display comments count of images', 'insta-gallery'); ?></small></span>
31
  </p>
32
+ <p class="form-field">
33
+ Instagram is deprecating their old API for Personal accounts on June 29, 2020. The plugin supports their new API, however, some features (such as this one) are not yet available in their new API. We're working to get this feature back as soon as possible.
34
+ </p>
35
  </div>
36
 
37
  </div>
includes/view/backend/pages/modals/feed/panel-feed-image-popup.php CHANGED
@@ -7,17 +7,17 @@
7
  <span class="description"><small><?php esc_html_e('Display popup gallery by clicking on image', 'insta-gallery'); ?></small></span>
8
  </p>
9
  </div>
10
-
11
- <div class="options_group qligg-premium-field <# if (!data.popup.display){ #>disabled-color-picker<# } #>">
12
- <p class="form-field">
13
  <label><?php esc_html_e('Images popup profile', 'insta-gallery'); ?></label>
14
  <input name="popup[profile]" type="checkbox" value="true" <# if (data.popup.profile){ #>checked<# } #> />
15
  <span class="description"><small><?php esc_html_e('Display user profile or tag info', 'insta-gallery'); ?></small></span>
16
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
17
  </p>
18
  </div>
19
-
20
- <div class="options_group qligg-premium-field <# if (!data.popup.display){ #>disabled-color-picker<# } #>">
21
  <p class="form-field">
22
  <label><?php esc_html_e('Images popup caption', 'insta-gallery'); ?></label>
23
  <input name="popup[caption]" type="checkbox" value="true" <# if (data.popup.caption){ #>checked<# } #> />
@@ -26,26 +26,34 @@
26
  </p>
27
  </div>
28
 
29
- <div class="options_group qligg-premium-field <# if (!data.popup.display){ #>disabled-color-picker<# } #>">
30
  <p class="form-field">
31
  <label><?php esc_html_e('Images popup likes', 'insta-gallery'); ?></label>
32
  <input name="popup[likes]" type="checkbox" value="true" <# if (data.popup.likes){ #>checked<# } #>/>
33
  <span class="description"><small><?php esc_html_e('Display likes count of images', 'insta-gallery'); ?></small></span>
34
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
35
  </p>
 
 
 
 
 
 
 
 
 
36
  </div>
37
 
38
- <div class="options_group qligg-premium-field <# if (!data.popup.display){ #>disabled-color-picker<# } #>">
39
  <p class="form-field">
40
  <label><?php esc_html_e('Images popup align', 'insta-gallery'); ?></label>
41
  <select name="popup[align]">
42
- <option value="top" <?php selected('top', $feed['popup']['align']); ?>><?php esc_html_e('Top', 'insta-gallery'); ?></option>
43
  <option <# if ( data.popup.align == 'left') { #>selected="selected"<# } #> value="left"><?php esc_html_e('Left', 'insta-gallery'); ?> </option>
44
  <option <# if ( data.popup.align == 'right') { #>selected="selected"<# } #> value="right"><?php esc_html_e('Right', 'insta-gallery'); ?> </option>
45
  <option <# if ( data.popup.align == 'bottom') { #>selected="selected"<# } #> value="bottom"><?php esc_html_e('Bottom', 'insta-gallery'); ?> </option>
46
  <option <# if ( data.popup.align == 'top') { #>selected="selected"<# } #> value="top"><?php esc_html_e('Top', 'insta-gallery'); ?> </option>
47
  </select>
48
- <span class="description"><small><?php esc_html_e('Display likes count of images', 'insta-gallery'); ?></small></span>
49
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
50
  </p>
51
  </div>
7
  <span class="description"><small><?php esc_html_e('Display popup gallery by clicking on image', 'insta-gallery'); ?></small></span>
8
  </p>
9
  </div>
10
+
11
+ <div class="options_group qligg-premium-field <# if (!data.popup.display){ #>disabled-field<# } #>">
12
+ <p class="form-field">
13
  <label><?php esc_html_e('Images popup profile', 'insta-gallery'); ?></label>
14
  <input name="popup[profile]" type="checkbox" value="true" <# if (data.popup.profile){ #>checked<# } #> />
15
  <span class="description"><small><?php esc_html_e('Display user profile or tag info', 'insta-gallery'); ?></small></span>
16
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
17
  </p>
18
  </div>
19
+
20
+ <div class="options_group qligg-premium-field <# if (!data.popup.display){ #>disabled-field<# } #>">
21
  <p class="form-field">
22
  <label><?php esc_html_e('Images popup caption', 'insta-gallery'); ?></label>
23
  <input name="popup[caption]" type="checkbox" value="true" <# if (data.popup.caption){ #>checked<# } #> />
26
  </p>
27
  </div>
28
 
29
+ <div class="<# if ( data.type != 'tag') {#>disabled-feature<#}#> options_group qligg-premium-field <# if (!data.popup.display){ #>disabled-field<# } #>">
30
  <p class="form-field">
31
  <label><?php esc_html_e('Images popup likes', 'insta-gallery'); ?></label>
32
  <input name="popup[likes]" type="checkbox" value="true" <# if (data.popup.likes){ #>checked<# } #>/>
33
  <span class="description"><small><?php esc_html_e('Display likes count of images', 'insta-gallery'); ?></small></span>
34
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
35
  </p>
36
+ <p class="form-field">
37
+ <label><?php esc_html_e('Images popup comments', 'insta-gallery'); ?></label>
38
+ <input name="popup[comments]" type="checkbox" value="true" <# if (data.popup.comments){ #>checked<# } #>/>
39
+ <span class="description"><small><?php esc_html_e('Display comments count of images', 'insta-gallery'); ?></small></span>
40
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
41
+ </p>
42
+ <p class="form-field">
43
+ Instagram is deprecating their old API for Personal accounts on June 29, 2020. The plugin supports their new API, however, some features (such as this one) are not yet available in their new API. We're working to get this feature back as soon as possible.
44
+ </p>
45
  </div>
46
 
47
+ <div class="options_group qligg-premium-field <# if (!data.popup.display){ #>disabled-field<# } #>">
48
  <p class="form-field">
49
  <label><?php esc_html_e('Images popup align', 'insta-gallery'); ?></label>
50
  <select name="popup[align]">
 
51
  <option <# if ( data.popup.align == 'left') { #>selected="selected"<# } #> value="left"><?php esc_html_e('Left', 'insta-gallery'); ?> </option>
52
  <option <# if ( data.popup.align == 'right') { #>selected="selected"<# } #> value="right"><?php esc_html_e('Right', 'insta-gallery'); ?> </option>
53
  <option <# if ( data.popup.align == 'bottom') { #>selected="selected"<# } #> value="bottom"><?php esc_html_e('Bottom', 'insta-gallery'); ?> </option>
54
  <option <# if ( data.popup.align == 'top') { #>selected="selected"<# } #> value="top"><?php esc_html_e('Top', 'insta-gallery'); ?> </option>
55
  </select>
56
+ <span class="description"><small><?php esc_html_e('Align item description in popup', 'insta-gallery'); ?></small></span>
57
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
58
  </p>
59
  </div>
includes/view/backend/pages/modals/feed/panel-feed-image.php CHANGED
@@ -1,77 +1,88 @@
1
  <div id="tab_panel_feed_image" class="panel qligg_options_panel <# if (data.panel != 'tab_panel_feed_image') { #>hidden<# } #>">
2
 
3
- <div class="options_group">
4
- <p class="form-field">
5
- <label><?php esc_html_e('Images resolution', 'insta-gallery'); ?></label>
6
- <select name="resolution">
7
- <option <# if ( data.resolution == 'standard') { #>selected="selected"<# } #> value="standard"><?php esc_html_e('Standard', 'insta-gallery'); ?> (640 x auto)</option>
8
- <option <# if ( data.resolution == 'medium') { #>selected="selected"<# } #> value="medium"><?php esc_html_e('Medium', 'insta-gallery'); ?> (320 x auto)</option>
9
- <option <# if ( data.resolution == 'small') { #>selected="selected"<# } #> value="small"><?php esc_html_e('Small', 'insta-gallery'); ?> (150 x 150)</option>
10
- </select>
11
- </p>
12
- <p class="form-field">
13
- <label><?php esc_html_e('Images spacing', 'insta-gallery'); ?></label>
14
- <input name="spacing" min="0" type="number" value="{{data.spacing}}" />
15
- <span class="description"><small><?php esc_html_e('Add blank space between images', 'insta-gallery'); ?></small></span>
16
- </p>
17
  </div>
18
 
19
- <div class="options_group qligg-premium-field">
20
- <p class="form-field">
21
- <label><?php esc_html_e('Images card', 'insta-gallery'); ?></label>
22
- <input class="media-modal-render-panels" name="card[display]" type="checkbox" value="true" <# if (data.card.display){ #>checked<# } #> />
23
- <span class="description"><small><?php esc_html_e('Display card gallery by clicking on image', 'insta-gallery'); ?></small></span>
24
- <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
25
- </p>
26
- </div>
27
 
28
- <div class="options_group qligg-premium-field <# if (!data.card.display){ #>disabled-color-picker<# } #>">
29
- <p class="form-field">
30
- <label><?php esc_html_e('Card radius', 'insta-gallery'); ?></label>
31
- <input name="card[radius]" type="number" min="0" max="1000" value="{{data.card.radius}}"/>
32
- <span class="description"><small><?php esc_html_e('Add radius to the Instagram Feed', 'insta-gallery'); ?></small></span>
33
- <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
34
- </p>
35
 
36
- <p class="form-field">
37
- <label><?php esc_html_e('Card font size', 'insta-gallery'); ?></label>
38
- <input name="card[font_size]" type="number" min="8" max="36" value="{{data.card.font_size}}"/>
39
- <span class="description"><small><?php esc_html_e('Add font-size to the Instagram Feed', 'insta-gallery'); ?></small></span>
40
- <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
41
- </p>
 
 
42
 
43
- <p class="form-field">
44
- <label><?php esc_html_e('Card background', 'insta-gallery'); ?></label>
45
- <input class="color-picker" data-alpha="true" name="card[background]" type="link" placeholder="#007aff" value="{{data.card.background}}"/>
46
- <span class="description"><small><?php esc_html_e('Color which is displayed when over images', 'insta-gallery'); ?></small></span>
47
- <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
48
- </p>
 
49
 
50
- <p class="form-field">
51
- <label><?php esc_html_e('Card padding', 'insta-gallery'); ?></label>
52
- <input name="card[padding]" type="number" min="0" max="50" value="{{data.card.padding}}"/>
53
- <span class="description"><small><?php esc_html_e('Add blank space between images', 'insta-gallery'); ?></small></span>
54
- </p>
 
55
 
56
- <p class="form-field">
57
- <label><?php esc_html_e('Card info', 'insta-gallery'); ?></label>
58
- <input name="card[info]" type="checkbox" value="true" <# if (data.card.info){ #>checked<# } #> />
59
- <span class="description"><small><?php esc_html_e('Display likes count of images', 'insta-gallery'); ?></small></span>
60
- <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
61
- </p>
62
 
63
- <p class="form-field">
64
- <label><?php esc_html_e('Card caption', 'insta-gallery'); ?></label>
65
- <input name="card[caption]" type="checkbox" value="true" <# if (data.card.caption){ #>checked<# } #> />
66
- <span class="description"><small><?php esc_html_e('Display caption count of images', 'insta-gallery'); ?></small></span>
67
- <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
68
- </p>
69
 
70
- <p class="form-field">
71
- <label><?php esc_html_e('Card length', 'insta-gallery'); ?></label>
72
- <input name="card[length]" type="number" min="5" max="1000" value="{{data.card.length}}"/></small></span>
73
- <span class="description"><small><?php esc_html_e('Add blank space between images', 'insta-gallery'); ?></small></span>
74
- </p>
75
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
 
77
- </div>
1
  <div id="tab_panel_feed_image" class="panel qligg_options_panel <# if (data.panel != 'tab_panel_feed_image') { #>hidden<# } #>">
2
 
3
+ <div class="options_group">
4
+ <p class="form-field">
5
+ <label><?php esc_html_e('Images resolution', 'insta-gallery'); ?></label>
6
+ <select class="media-modal-render-panels" name="resolution">
7
+ <option <# if ( data.resolution=='standard' ) { #>selected="selected"<# } #> value="standard"><?php esc_html_e('Standard', 'insta-gallery'); ?> (1080 x auto)</option>
8
+ <option <# if ( data.resolution=='medium' ) { #>selected="selected"<# } #> value="medium"><?php esc_html_e('Medium', 'insta-gallery'); ?> (320 x auto)</option>
9
+ <option <# if ( data.resolution=='small' ) { #>selected="selected"<# } #> value="small"><?php esc_html_e('Small', 'insta-gallery'); ?> (150 x 150)</option>
10
+ </select>
11
+ </p>
 
 
 
 
 
12
  </div>
13
 
14
+ <# if ( data.resolution=='standard' ) {#>
15
+ <div class="disabled-feature options_group">
16
+ <p class="form-field">
17
+ Unfortunatelly the new Instagram API dosent allow us to recover 640px images. The new standar size is 1080px and this could cause perfomance issues in the feed load. We strongly recommend to switch to the medium size.
18
+ </p>
19
+ </div>
20
+ <# }#>
 
21
 
22
+ <div class="options_group">
23
+ <p class="form-field">
24
+ <label><?php esc_html_e('Images spacing', 'insta-gallery'); ?></label>
25
+ <input name="spacing" min="0" type="number" value="{{data.spacing}}" />
26
+ <span class="description"><small><?php esc_html_e('Add blank space between images', 'insta-gallery'); ?></small></span>
27
+ </p>
28
+ </div>
29
 
30
+ <div class="options_group qligg-premium-field">
31
+ <p class="form-field">
32
+ <label><?php esc_html_e('Images card', 'insta-gallery'); ?></label>
33
+ <input class="media-modal-render-panels" name="card[display]" type="checkbox" value="true" <# if (data.card.display){ #>checked<# } #> />
34
+ <span class="description"><small><?php esc_html_e('Display card gallery by clicking on image', 'insta-gallery'); ?></small></span>
35
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
36
+ </p>
37
+ </div>
38
 
39
+ <div class="options_group qligg-premium-field <# if (!data.card.display){ #>disabled-field<# } #>">
40
+ <p class="form-field">
41
+ <label><?php esc_html_e('Card radius', 'insta-gallery'); ?></label>
42
+ <input name="card[radius]" type="number" min="0" max="1000" value="{{data.card.radius}}" />
43
+ <span class="description"><small><?php esc_html_e('Add radius to the Instagram Feed', 'insta-gallery'); ?></small></span>
44
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
45
+ </p>
46
 
47
+ <p class="form-field">
48
+ <label><?php esc_html_e('Card font size', 'insta-gallery'); ?></label>
49
+ <input name="card[font_size]" type="number" min="8" max="36" value="{{data.card.font_size}}" />
50
+ <span class="description"><small><?php esc_html_e('Add font-size to the Instagram Feed', 'insta-gallery'); ?></small></span>
51
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
52
+ </p>
53
 
54
+ <p class="form-field">
55
+ <label><?php esc_html_e('Card background', 'insta-gallery'); ?></label>
56
+ <input class="color-picker" data-alpha="true" name="card[background]" type="link" placeholder="#007aff" value="{{data.card.background}}" />
57
+ <span class="description"><small><?php esc_html_e('Color which is displayed when over images', 'insta-gallery'); ?></small></span>
58
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
59
+ </p>
60
 
61
+ <p class="form-field">
62
+ <label><?php esc_html_e('Card padding', 'insta-gallery'); ?></label>
63
+ <input name="card[padding]" type="number" min="0" max="50" value="{{data.card.padding}}" />
64
+ <span class="description"><small><?php esc_html_e('Add blank space between images', 'insta-gallery'); ?></small></span>
65
+ </p>
 
66
 
67
+ <p class="form-field">
68
+ <label><?php esc_html_e('Card info', 'insta-gallery'); ?></label>
69
+ <input name="card[info]" type="checkbox" value="true" <# if (data.card.info){ #>checked<# } #> />
70
+ <span class="description"><small><?php esc_html_e('Display likes count of images', 'insta-gallery'); ?></small></span>
71
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
72
+ </p>
73
+
74
+ <p class="form-field">
75
+ <label><?php esc_html_e('Card caption', 'insta-gallery'); ?></label>
76
+ <input name="card[caption]" type="checkbox" value="true" <# if (data.card.caption){ #>checked<# } #> />
77
+ <span class="description"><small><?php esc_html_e('Display caption count of images', 'insta-gallery'); ?></small></span>
78
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
79
+ </p>
80
+
81
+ <p class="form-field">
82
+ <label><?php esc_html_e('Card length', 'insta-gallery'); ?></label>
83
+ <input name="card[length]" type="number" min="5" max="1000" value="{{data.card.length}}" /></small></span>
84
+ <span class="description"><small><?php esc_html_e('Add blank space between images', 'insta-gallery'); ?></small></span>
85
+ </p>
86
+ </div>
87
 
88
+ </div>
includes/view/backend/pages/modals/feed/panel-feed-profile.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="tab_panel_feed_profile" class="panel qligg_options_panel <# if (data.panel != 'tab_panel_feed_profile') { #>hidden<# } #>">
2
+ <div class="attachment-info" style="
3
+ position: absolute;
4
+ right: 0;
5
+ width:300px;
6
+ ">
7
+ <div id="panel-info">
8
+ <span class="settings-save-status">
9
+ <span class="spinner"></span>
10
+ <span class="saved"><?php esc_html_e('Saved.'); ?></span>
11
+ </span>
12
+
13
+ <div class="details">
14
+ <div class="filename"><strong><?php esc_html_e('Feed', 'insta-gallery'); ?>:</strong> {{data.username}}</div>
15
+ </div>
16
+
17
+ <div class="settings">
18
+ <div class="upload">
19
+ <img id="cavatar-img" class="qligg-avatar" data-src="{{data.profile.pic_url}}" src="{{data.profile.pic_url}}" width="150" height="150" />
20
+ <div>
21
+ <input type="hidden" name="profile[pic_url]" id="cavatar" value="{{data.profile.pic_url}}" />
22
+ <button type="button" class="upload_image_button button"><?php esc_html_e('Upload', 'insta-gallery'); ?></button>
23
+ <button type="button" class="remove_image_button button">&times;</button>
24
+ </div>
25
+ </div>
26
+ </div>
27
+
28
+ <div class="actions">
29
+ <a target="_blank" href="<?php echo QLIGG_PURCHASE_URL; ?>"><?php esc_html_e('Premium', 'insta-gallery'); ?></a> |
30
+ <a target="_blank" href="<?php echo QLIGG_DOCUMENTATION_URL; ?>"><?php esc_html_e('Documentation', 'insta-gallery'); ?></a>
31
+ </div>
32
+ </div>
33
+ </div>
34
+
35
+ <div style="padding-right: 300px;">
36
+ <div class="options_group">
37
+ <p class="form-field">
38
+ <label><?php esc_html_e('Full Name', 'insta-gallery'); ?></label>
39
+ <input name="profile[full_name]" type="text" value="{{data.profile.full_name}}" />
40
+ <span class="description"><small><?php esc_html_e('Feed profile full name', 'insta-gallery'); ?></small></span>
41
+ </p>
42
+ </div>
43
+
44
+ <div class="options_group">
45
+ <p class="form-field">
46
+ <label><?php esc_html_e('Description', 'insta-gallery'); ?></label>
47
+ <textarea name="profile[description]" placeholder="<?php esc_html_e('Feed profile description', 'insta-gallery'); ?>">{{data.profile.description}}</textarea>
48
+ </p>
49
+ </div>
50
+ </div>
51
+ </div>
includes/view/backend/pages/modals/feed/panel-feed.php CHANGED
@@ -1,57 +1,63 @@
1
- <div id="tab_panel_feed" class="panel qligg_options_panel <# if (data.panel != 'tab_panel_feed') { #>hidden<# } #>" >
 
 
 
 
 
 
2
 
3
  <div class="options_group">
4
  <p class="form-field">
5
  <label><?php esc_html_e('Type', 'insta-gallery'); ?></label>
6
- <input type="radio" class="media-modal-render-panels" name="type" value="tag" <# if(data.type == 'tag') { #>checked="checked"<# } #> />
7
- <label><?php esc_html_e('Tag', 'insta-gallery'); ?></label>
8
- <input type="radio" class="media-modal-render-panels" name="type" value="username" <# if(data.type == 'username') { #>checked="checked"<# } #> />
9
- <label><?php esc_html_e('User name', 'insta-gallery'); ?></label>
10
  </p>
11
  </div>
12
 
13
- <div class="options_group <# if ( data.type != 'username') {#>hidden<#}#>">
14
- <p class="form-field">
15
- <?php if (!count($tokens)): ?>
16
- <div class="notice error" style="margin-left:0; margin-right:0; padding-top: 10px; padding-bottom: 10px; display: flex; justify-content: left; align-items: center;">
17
- <strong>
18
- <?php printf(__('No Instagram account connected. Please connect your account <a target="_blank" href="%s">here</a>.', 'insta-gallery'), $qligg_api->get_create_account_link()); ?>
19
- </strong>
20
- </div>
21
- <?php
22
- else :
23
- ?>
24
  <label><?php esc_html_e('User', 'insta-gallery'); ?></label>
25
- <select name="username" <# if ( data.type == 'username') {#>required="required"<#}#>>
26
- <?php foreach ($tokens as $username => $access_token) : ?>
27
- <?php $profile_info = qligg_get_user_profile($username); ?>
28
- <option value="<?php echo esc_attr($username) ?>" <# if ( data.type == <?php echo $username; ?> ) { #>selected="selected"<# } #> > <?php echo esc_html($profile_info['user']); ?></option>
29
- <?php endforeach; ?>
30
  </select>
31
  <span class="description"><small><?php esc_html_e('Please enter Instagram username', 'insta-gallery'); ?></small></span>
32
- <?php endif; ?>
33
  </p>
34
- </div>
35
-
36
- <div class="options_group <# if ( data.type != 'tag') {#>hidden<#}#>">
37
- <p class="form-field">
38
  <label><?php esc_html_e('Tag', 'insta-gallery'); ?></label>
39
- <input name="tag" type="text" <# if ( data.type == 'tag') {#>required="required"<#}#> placeholder="beautiful" value="{{data.tag}}" />
40
- <span class="description">
41
  <small>
42
  <?php esc_html_e('Please enter Instagram tag', 'insta-gallery'); ?>
43
  </small>
44
  </span>
45
- </p>
46
  </div>
47
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  <div class="options_group">
49
  <div class="form-field">
50
  <ul class="list-images">
51
  <li class="media-modal-image <# if ( data.layout == 'gallery') {#>active<#}#>">
52
- <input type="radio" name="layout" value="gallery" <# if (data.layout== 'gallery'){ #>checked<# } #> />
53
- <label for="insta_layout-gallery"><?php esc_html_e('Gallery', 'insta-gallery'); ?></label>
54
- <img src="<?php echo plugins_url('/assets/backend/img/gallery.png', QLIGG_PLUGIN_FILE); ?>"/>
55
  </li>
56
  <li class="media-modal-image <# if ( data.layout == 'carousel') {#>active<# } #>">
57
  <input type="radio" name="layout" value="carousel" <# if (data.layout== 'carousel'){ #>checked<# } #> />
@@ -59,54 +65,54 @@
59
  <img src="<?php echo plugins_url('/assets/backend/img/carousel.png', QLIGG_PLUGIN_FILE); ?>"/>
60
  </li>
61
  <li class="media-modal-image qligg-premium-field <# if ( data.layout == 'masonry') {#>active<#}#>">
62
- <input type="radio" name="layout" value="masonry" <# if (data.layout== 'masonry'){ #>checked<# } #> />
63
- <label for="insta_layout-masonry"><?php esc_html_e('Masonry', 'insta-gallery'); ?>
64
- <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
65
- </label>
66
- <img src="<?php echo plugins_url('/assets/backend/img/masonry.png', QLIGG_PLUGIN_FILE); ?>"/>
67
  </li>
68
  <li class="media-modal-image qligg-premium-field <# if ( data.layout == 'highlight') {#>active<#}#>">
69
- <input type="radio" id="insta_layout-highlight" name="layout" value="highlight" <# if (data.layout== 'highlight'){ #>checked<# } #> />
70
- <label for="insta_layout-highlight"><?php esc_html_e('Highlight', 'insta-gallery'); ?>
71
- <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
72
- </label>
73
- <img src="<?php echo plugins_url('/assets/backend/img/highlight.png', QLIGG_PLUGIN_FILE); ?>"/>
74
  </li>
75
  </ul>
76
  </div>
77
  </div>
78
 
79
- <div class="options_group">
80
- <p class="form-field">
81
- <label><?php esc_html_e('Limit', 'insta-gallery'); ?></label>
82
  <input name="limit" type="number" min="1" max="33" value="{{data.limit}}" />
83
  <span class="description"><small><?php esc_html_e('Number of images to display', 'insta-gallery'); ?></small></span>
84
  </p>
85
  </div>
86
 
87
- <div class="options_group <# if(!_.contains(['gallery', 'masonry', 'highlight'], data.layout)) { #>hidden<# } #>">
88
- <p class="form-field">
89
- <label><?php esc_html_e('Columns', 'insta-gallery'); ?></label>
90
- <input name="columns" type="number" min="1" max="20" value="{{data.columns}}" />
91
  <span class="description"><small><?php esc_html_e('Number of images in a row', 'insta-gallery'); ?></small></span>
92
- </p>
93
  </div>
94
 
95
  <div class="options_group qligg-premium-field <# if(!_.contains(['highlight', 'masonry'], data.layout)) { #>hidden<# } #>">
96
- <p class="form-field">
97
- <label><?php esc_html_e('Highlight by tag', 'insta-gallery'); ?></label>
98
  <textarea name="highlight[tag]" placeholder="tag1, tag2, tag3">{{data.highlight.tag}}</textarea>
99
  <span class="description"><small><?php esc_html_e('Highlight feeds items with this tags', 'insta-gallery'); ?></small></span>
100
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
101
  </p>
102
- <p class="form-field">
103
- <label><?php esc_html_e('Highlight by id', 'insta-gallery'); ?></label>
104
  <textarea name="highlight[id]" placeholder="101010110101010">{{data.highlight.id}}</textarea>
105
  <span class="description"><small><?php esc_html_e('Highlight feeds items with this ids', 'insta-gallery'); ?></small></span>
106
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
107
  </p>
108
  <p class="form-field">
109
- <label><?php esc_html_e('Highlight by position', 'insta-gallery'); ?></label>
110
  <textarea name="highlight[position]" placeholder="1, 5, 7">{{data.highlight.position}}</textarea>
111
  <span class="description"><small><?php esc_html_e('Highlight feeds items in this positions', 'insta-gallery'); ?></small></span>
112
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
1
+ <div id="tab_panel_feed" class="panel qligg_options_panel <# if (data.panel != 'tab_panel_feed') { #>hidden<# } #>">
2
+
3
+ <div class="disabled-feature options_group">
4
+ <p class="form-field">
5
+ Instagram is deprecating their old API for Personal accounts on June 29, 2020. The plugin supports their new API, however, some features are will be no longuer available in their new API.
6
+ </p>
7
+ </div>
8
 
9
  <div class="options_group">
10
  <p class="form-field">
11
  <label><?php esc_html_e('Type', 'insta-gallery'); ?></label>
12
+ <input type="radio" class="media-modal-render-panels" name="type" value="tag" <# if(data.type=='tag' ) { #>checked="checked"<# } #> />
13
+ <label><?php esc_html_e('Tag', 'insta-gallery'); ?></label>
14
+ <input type="radio" class="media-modal-render-panels" name="type" value="username" <# if(data.type=='username' ) { #>checked="checked"<# } #> />
15
+ <label><?php esc_html_e('User name', 'insta-gallery'); ?></label>
16
  </p>
17
  </div>
18
 
19
+ <div class="options_group <?php if (!count($accounts)) { ?>disabled-feature<?php } ?>">
20
+
21
+ <p class="form-field <# if ( data.type != 'username') {#>hidden<#}#>">
 
 
 
 
 
 
 
 
22
  <label><?php esc_html_e('User', 'insta-gallery'); ?></label>
23
+ <select name="username" <# if ( data.username=='username' ) {#>required="required"<#}#>>
24
+ <?php foreach ($accounts as $account_id => $account) : ?>
25
+ <?php $profile_info = qligg_get_user_profile($account_id); ?>
26
+ <option value="<?php echo esc_attr($account_id) ?>" <# if ( data.username==<?php echo $account_id; ?> ) { #>selected="selected"<# } #> > <?php echo esc_html($profile_info['username']); ?></option>
27
+ <?php endforeach; ?>
28
  </select>
29
  <span class="description"><small><?php esc_html_e('Please enter Instagram username', 'insta-gallery'); ?></small></span>
 
30
  </p>
31
+ <p class="form-field <# if ( data.type != 'tag') {#>hidden<#}#>">
 
 
 
32
  <label><?php esc_html_e('Tag', 'insta-gallery'); ?></label>
33
+ <input name="tag" type="text" <# if ( data.type=='tag' ) {#>required="required"<#}#> placeholder="beautiful" value="{{data.tag}}" />
34
+ <span class="description">
35
  <small>
36
  <?php esc_html_e('Please enter Instagram tag', 'insta-gallery'); ?>
37
  </small>
38
  </span>
39
+ </p>
40
  </div>
41
 
42
+ <?php if (!count($accounts)) : ?>
43
+ <div class="options_group">
44
+ <p class="form-field">
45
+ <span class="notice error" style="margin-left:0; margin-right:0; padding-top: 10px; padding-bottom: 10px; display: flex; justify-content: left; align-items: center;">
46
+ <strong>
47
+ <?php printf(__('No Instagram account connected. Please connect your account <a target="_blank" href="%s">here</a>.', 'insta-gallery'), $qligg_api_v2->getAccessTokenLink()); ?>
48
+ </strong>
49
+ </span>
50
+ </p>
51
+ </div>
52
+ <?php endif; ?>
53
+
54
  <div class="options_group">
55
  <div class="form-field">
56
  <ul class="list-images">
57
  <li class="media-modal-image <# if ( data.layout == 'gallery') {#>active<#}#>">
58
+ <input type="radio" name="layout" value="gallery" <# if (data.layout=='gallery' ){ #>checked<# } #> />
59
+ <label for="insta_layout-gallery"><?php esc_html_e('Gallery', 'insta-gallery'); ?></label>
60
+ <img src="<?php echo plugins_url('/assets/backend/img/gallery.png', QLIGG_PLUGIN_FILE); ?>" />
61
  </li>
62
  <li class="media-modal-image <# if ( data.layout == 'carousel') {#>active<# } #>">
63
  <input type="radio" name="layout" value="carousel" <# if (data.layout== 'carousel'){ #>checked<# } #> />
65
  <img src="<?php echo plugins_url('/assets/backend/img/carousel.png', QLIGG_PLUGIN_FILE); ?>"/>
66
  </li>
67
  <li class="media-modal-image qligg-premium-field <# if ( data.layout == 'masonry') {#>active<#}#>">
68
+ <input type="radio" name="layout" value="masonry" <# if (data.layout=='masonry' ){ #>checked<# } #> />
69
+ <label for="insta_layout-masonry"><?php esc_html_e('Masonry', 'insta-gallery'); ?>
70
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
71
+ </label>
72
+ <img src="<?php echo plugins_url('/assets/backend/img/masonry.png', QLIGG_PLUGIN_FILE); ?>" />
73
  </li>
74
  <li class="media-modal-image qligg-premium-field <# if ( data.layout == 'highlight') {#>active<#}#>">
75
+ <input type="radio" id="insta_layout-highlight" name="layout" value="highlight" <# if (data.layout=='highlight' ){ #>checked<# } #> />
76
+ <label for="insta_layout-highlight"><?php esc_html_e('Highlight', 'insta-gallery'); ?>
77
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
78
+ </label>
79
+ <img src="<?php echo plugins_url('/assets/backend/img/highlight.png', QLIGG_PLUGIN_FILE); ?>" />
80
  </li>
81
  </ul>
82
  </div>
83
  </div>
84
 
85
+ <div class="options_group">
86
+ <p class="form-field">
87
+ <label><?php esc_html_e('Limit', 'insta-gallery'); ?></label>
88
  <input name="limit" type="number" min="1" max="33" value="{{data.limit}}" />
89
  <span class="description"><small><?php esc_html_e('Number of images to display', 'insta-gallery'); ?></small></span>
90
  </p>
91
  </div>
92
 
93
+ <div class="options_group <# if(!_.contains(['gallery', 'masonry', 'highlight'], data.layout)) { #>hidden<# } #>">
94
+ <p class="form-field">
95
+ <label><?php esc_html_e('Columns', 'insta-gallery'); ?></label>
96
+ <input name="columns" type="number" min="1" max="20" value="{{data.columns}}" />
97
  <span class="description"><small><?php esc_html_e('Number of images in a row', 'insta-gallery'); ?></small></span>
98
+ </p>
99
  </div>
100
 
101
  <div class="options_group qligg-premium-field <# if(!_.contains(['highlight', 'masonry'], data.layout)) { #>hidden<# } #>">
102
+ <p class="form-field">
103
+ <label><?php esc_html_e('Highlight by tag', 'insta-gallery'); ?></label>
104
  <textarea name="highlight[tag]" placeholder="tag1, tag2, tag3">{{data.highlight.tag}}</textarea>
105
  <span class="description"><small><?php esc_html_e('Highlight feeds items with this tags', 'insta-gallery'); ?></small></span>
106
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
107
  </p>
108
+ <p class="form-field">
109
+ <label><?php esc_html_e('Highlight by id', 'insta-gallery'); ?></label>
110
  <textarea name="highlight[id]" placeholder="101010110101010">{{data.highlight.id}}</textarea>
111
  <span class="description"><small><?php esc_html_e('Highlight feeds items with this ids', 'insta-gallery'); ?></small></span>
112
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
113
  </p>
114
  <p class="form-field">
115
+ <label><?php esc_html_e('Highlight by position', 'insta-gallery'); ?></label>
116
  <textarea name="highlight[position]" placeholder="1, 5, 7">{{data.highlight.position}}</textarea>
117
  <span class="description"><small><?php esc_html_e('Highlight feeds items in this positions', 'insta-gallery'); ?></small></span>
118
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
includes/view/backend/pages/modals/feed/panel-tabs.php CHANGED
@@ -2,27 +2,30 @@
2
  <li class="media-modal-tab active">
3
  <a href="#tab_panel_feed"><span><?php esc_html_e('General', 'insta-gallery'); ?></span></a>
4
  </li>
5
- <# if (data.layout == 'carousel' ){ #>
 
 
 
 
6
  <li class="media-modal-tab">
7
- <a href="#tab_panel_carousel"><span><?php esc_html_e('Carousel', 'insta-gallery'); ?></span></a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  </li>
9
- <# } #>
10
- <li class="media-modal-tab">
11
- <a href="#tab_panel_feed_box"><span><?php esc_html_e('Box', 'insta-gallery'); ?></span></a>
12
- </li>
13
- <li class="media-modal-tab">
14
- <a href="#tab_panel_feed_image"><span><?php esc_html_e('Image', 'insta-gallery'); ?></span></a>
15
- </li>
16
- <li class="media-modal-tab">
17
- <a href="#tab_panel_feed_image_mask"><span><?php esc_html_e('Image mask', 'insta-gallery'); ?></span></a>
18
- </li>
19
- <li class="media-modal-tab">
20
- <a href="#tab_panel_feed_image_popup"><span><?php esc_html_e('Image popup', 'insta-gallery'); ?></span></a>
21
- </li>
22
- <li class="media-modal-tab">
23
- <a href="#tab_panel_feed_button"><span><?php esc_html_e('Button', 'insta-gallery'); ?></span></a>
24
- </li>
25
- <li class="media-modal-tab">
26
- <a href="#tab_panel_feed_button_load"><span><?php esc_html_e('Button load more', 'insta-gallery'); ?></span></a>
27
- </li>
28
  </ul>
2
  <li class="media-modal-tab active">
3
  <a href="#tab_panel_feed"><span><?php esc_html_e('General', 'insta-gallery'); ?></span></a>
4
  </li>
5
+ <# if (data.layout=='carousel'){ #>
6
+ <li class="media-modal-tab">
7
+ <a href="#tab_panel_carousel"><span><?php esc_html_e('Carousel', 'insta-gallery'); ?></span></a>
8
+ </li>
9
+ <# } #>
10
  <li class="media-modal-tab">
11
+ <a href="#tab_panel_feed_profile"><span><?php esc_html_e('Profile', 'insta-gallery'); ?></span></a>
12
+ </li>
13
+ <li class="media-modal-tab">
14
+ <a href="#tab_panel_feed_box"><span><?php esc_html_e('Box', 'insta-gallery'); ?></span></a>
15
+ </li>
16
+ <li class="media-modal-tab">
17
+ <a href="#tab_panel_feed_image"><span><?php esc_html_e('Image', 'insta-gallery'); ?></span></a>
18
+ </li>
19
+ <li class="media-modal-tab">
20
+ <a href="#tab_panel_feed_image_mask"><span><?php esc_html_e('Image mask', 'insta-gallery'); ?></span></a>
21
+ </li>
22
+ <li class="media-modal-tab">
23
+ <a href="#tab_panel_feed_image_popup"><span><?php esc_html_e('Image popup', 'insta-gallery'); ?></span></a>
24
+ </li>
25
+ <li class="media-modal-tab">
26
+ <a href="#tab_panel_feed_button"><span><?php esc_html_e('Button', 'insta-gallery'); ?></span></a>
27
+ </li>
28
+ <li class="media-modal-tab">
29
+ <a href="#tab_panel_feed_button_load"><span><?php esc_html_e('Button load more', 'insta-gallery'); ?></span></a>
30
  </li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  </ul>
includes/view/backend/pages/modals/template-scripts-account.php CHANGED
@@ -1,4 +1,4 @@
1
  <script type="text/html" id='tmpl-qligg-modal-account-main'>
2
- <?php include_once(QLIGG_PLUGIN_DIR . 'includes/view/backend/pages/modals/account/main.php'); ?>
3
  </script>
4
 
1
  <script type="text/html" id='tmpl-qligg-modal-account-main'>
2
+ <?php include_once(QLIGG_PLUGIN_DIR . 'includes/view/backend/pages/modals/account/main.php'); ?>
3
  </script>
4
 
includes/view/backend/pages/modals/template-scripts-feed.php CHANGED
@@ -8,6 +8,7 @@
8
 
9
  <script type="text/html" id='tmpl-qligg-modal-panels'>
10
  <?php include_once('feed/panel-feed.php'); ?>
 
11
  <?php include_once('feed/panel-feed-carousel.php'); ?>
12
  <?php include_once('feed/panel-feed-box.php'); ?>
13
  <?php include_once('feed/panel-feed-image.php'); ?>
8
 
9
  <script type="text/html" id='tmpl-qligg-modal-panels'>
10
  <?php include_once('feed/panel-feed.php'); ?>
11
+ <?php include_once('feed/panel-feed-profile.php'); ?>
12
  <?php include_once('feed/panel-feed-carousel.php'); ?>
13
  <?php include_once('feed/panel-feed-box.php'); ?>
14
  <?php include_once('feed/panel-feed-image.php'); ?>
includes/view/backend/pages/suggestions.php CHANGED
@@ -1,3 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <div class="wrap" style="
2
  position: relative;
3
  margin: 25px 40px 0 20px;
1
+ <style>
2
+ @media screen and (max-width: 2299px) and (min-width: 1600px) {
3
+
4
+ #the-list {
5
+ display: flex;
6
+ flex-wrap: wrap;
7
+ }
8
+ .plugin-card {
9
+ margin: 8px !important;
10
+ width: calc(50% - 4px - 16px)!important;
11
+ }
12
+ }
13
+ </style>
14
  <div class="wrap" style="
15
  position: relative;
16
  margin: 25px 40px 0 20px;
includes/widget.php CHANGED
@@ -11,7 +11,7 @@ class QLIGG_Widget extends WP_Widget {
11
 
12
  public function widget($args, $instance) {
13
  $title = empty($instance['title']) ? '' : apply_filters('widget_title', $instance['title']);
14
- $instagal_id = empty($instance['instagal_id']) ? '' : $instance['instagal_id'];
15
 
16
  echo $args['before_widget'];
17
 
@@ -19,8 +19,8 @@ class QLIGG_Widget extends WP_Widget {
19
  echo $args['before_title'] . wp_kses_post($title) . $args['after_title'];
20
  }
21
 
22
- if (!empty($instagal_id)) {
23
- echo do_shortcode('[insta-gallery id="' . $instagal_id . '"]');
24
  }
25
 
26
  echo $args['after_widget'];
@@ -29,11 +29,11 @@ class QLIGG_Widget extends WP_Widget {
29
  public function form($instance) {
30
  $instance = wp_parse_args((array) $instance, array(
31
  'title' => '',
32
- 'instagal_id' => 0,
33
  ));
34
 
35
  $title = $instance['title'];
36
- $instagal_id = $instance['instagal_id'];
37
 
38
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Feed.php');
39
 
@@ -46,8 +46,8 @@ class QLIGG_Widget extends WP_Widget {
46
  </p>
47
  <?php if (!empty($feeds) && is_array($feeds)): ?>
48
  <p>
49
- <label for="<?php echo esc_attr($this->get_field_id('instagal_id')); ?>"><?php esc_html_e('Select your Instagram gallery', 'insta-gallery'); ?>:</label>
50
- <select id="<?php echo esc_attr($this->get_field_id('instagal_id')); ?>" name="<?php echo esc_attr($this->get_field_name('instagal_id')); ?>" class="widefat">
51
  <?php
52
  foreach ($feeds as $id => $feed) {
53
 
@@ -61,7 +61,7 @@ class QLIGG_Widget extends WP_Widget {
61
 
62
  $label = sprintf('%s : %s', sprintf(esc_html__('Feed %s', 'insta-gallery'), $id), $profile_info['name']);
63
  ?>
64
- <option value="<?php echo esc_html($id); ?>" <?php selected($id, $instagal_id) ?>><?php echo esc_html($label); ?></option>
65
  <?php } ?>
66
  </select>
67
  </p>
@@ -79,7 +79,7 @@ class QLIGG_Widget extends WP_Widget {
79
  public function update($new_instance, $old_instance) {
80
  $instance = $old_instance;
81
  $instance['title'] = strip_tags($new_instance['title']);
82
- $instance['instagal_id'] = trim(strip_tags($new_instance['instagal_id']));
83
  return $instance;
84
  }
85
 
11
 
12
  public function widget($args, $instance) {
13
  $title = empty($instance['title']) ? '' : apply_filters('widget_title', $instance['title']);
14
+ $feed_id = empty($instance['feed_id']) ? @$instance['instagal_id'] : $instance['feed_id'];
15
 
16
  echo $args['before_widget'];
17
 
19
  echo $args['before_title'] . wp_kses_post($title) . $args['after_title'];
20
  }
21
 
22
+ if (!empty($feed_id)) {
23
+ echo do_shortcode('[insta-gallery id="' . $feed_id . '"]');
24
  }
25
 
26
  echo $args['after_widget'];
29
  public function form($instance) {
30
  $instance = wp_parse_args((array) $instance, array(
31
  'title' => '',
32
+ 'feed_id' => 0,
33
  ));
34
 
35
  $title = $instance['title'];
36
+ $feed_id = $instance['feed_id'];
37
 
38
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Feed.php');
39
 
46
  </p>
47
  <?php if (!empty($feeds) && is_array($feeds)): ?>
48
  <p>
49
+ <label for="<?php echo esc_attr($this->get_field_id('feed_id')); ?>"><?php esc_html_e('Select your Instagram gallery', 'insta-gallery'); ?>:</label>
50
+ <select id="<?php echo esc_attr($this->get_field_id('feed_id')); ?>" name="<?php echo esc_attr($this->get_field_name('feed_id')); ?>" class="widefat">
51
  <?php
52
  foreach ($feeds as $id => $feed) {
53
 
61
 
62
  $label = sprintf('%s : %s', sprintf(esc_html__('Feed %s', 'insta-gallery'), $id), $profile_info['name']);
63
  ?>
64
+ <option value="<?php echo esc_html($id); ?>" <?php selected($id, $feed_id) ?>><?php echo esc_html($label); ?></option>
65
  <?php } ?>
66
  </select>
67
  </p>
79
  public function update($new_instance, $old_instance) {
80
  $instance = $old_instance;
81
  $instance['title'] = strip_tags($new_instance['title']);
82
+ $instance['feed_id'] = trim(strip_tags($new_instance['feed_id']));
83
  return $instance;
84
  }
85
 
insta-gallery.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
  /**
4
- * Plugin Name: Instagram Feed Gallery
5
- * Plugin URI: https://quadlayers.com/portfolio/instagram-gallery/
6
- * Description: Display beautifull and responsive galleries on your website from your Instagram feed account.
7
- * Version: 2.7.2
8
  * Author: QuadLayers
9
  * Author URI: https://quadlayers.com
10
- * License: GPL-2.0+
11
- * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
12
  * Text Domain: insta-gallery
13
  * Domain Path: /languages
14
  */
@@ -16,10 +16,10 @@ if (!defined('ABSPATH'))
16
  exit;
17
 
18
  if (!defined('QLIGG_PLUGIN_NAME')) {
19
- define('QLIGG_PLUGIN_NAME', 'Instagram Feed Gallery');
20
  }
21
  if (!defined('QLIGG_PLUGIN_VERSION')) {
22
- define('QLIGG_PLUGIN_VERSION', '2.7.2');
23
  }
24
  if (!defined('QLIGG_PLUGIN_FILE')) {
25
  define('QLIGG_PLUGIN_FILE', __FILE__);
1
  <?php
2
 
3
  /**
4
+ * Plugin Name: Social Feed Gallery
5
+ * Plugin URI: https://quadlayers.com/portfolio/instagram-feed-gallery/
6
+ * Description: Display beautiful and responsive galleries on your website from your Instagram feed account.
7
+ * Version: 2.8.3
8
  * Author: QuadLayers
9
  * Author URI: https://quadlayers.com
10
+ * License: GPLv3
11
+ * License URI: https://www.gnu.org/licenses/gpl-3.0.html
12
  * Text Domain: insta-gallery
13
  * Domain Path: /languages
14
  */
16
  exit;
17
 
18
  if (!defined('QLIGG_PLUGIN_NAME')) {
19
+ define('QLIGG_PLUGIN_NAME', 'Social Feed Gallery');
20
  }
21
  if (!defined('QLIGG_PLUGIN_VERSION')) {
22
+ define('QLIGG_PLUGIN_VERSION', '2.8.3');
23
  }
24
  if (!defined('QLIGG_PLUGIN_FILE')) {
25
  define('QLIGG_PLUGIN_FILE', __FILE__);
languages/insta-gallery.pot CHANGED
@@ -1,945 +1,1051 @@
1
- #, fuzzy
2
- msgid ""
3
- msgstr ""
4
- "Project-Id-Version: WP Social Feed Gallery\n"
5
- "POT-Creation-Date: 2019-11-25 10:10-0300\n"
6
- "PO-Revision-Date: 2019-08-09 08:43-0300\n"
7
- "Last-Translator: \n"
8
- "Language-Team: \n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.8.1\n"
13
- "X-Poedit-Basepath: ..\n"
14
- "X-Poedit-WPHeader: insta-gallery.php\n"
15
- "X-Poedit-SourceCharset: UTF-8\n"
16
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
17
- "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
18
- "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
19
- "X-Poedit-SearchPath-0: .\n"
20
- "X-Poedit-SearchPathExcluded-0: *.js\n"
21
-
22
- #: includes/ajax.php:50
23
- msgid "Settings updated successfully"
24
- msgstr ""
25
-
26
- #: includes/ajax.php:54 includes/ajax.php:99 includes/ajax.php:125
27
- #: includes/ajax.php:198 includes/ajax.php:225 includes/ajax.php:262
28
- msgid "Invalid Request"
29
- msgstr ""
30
-
31
- #: includes/ajax.php:66
32
- msgid "Empty access token"
33
- msgstr ""
34
-
35
- #: includes/ajax.php:72
36
- msgid "Invalid access token"
37
- msgstr ""
38
-
39
- #: includes/ajax.php:82
40
- #, php-format
41
- msgid ""
42
- "The %s account is already connected. To connect a new account logout from "
43
- "Instagram in this browser."
44
- msgstr ""
45
-
46
- #: includes/ajax.php:85
47
- msgid ""
48
- "Account already connected. To connect a new account logout from Instagram in "
49
- "this browser."
50
- msgstr ""
51
-
52
- #: includes/ajax.php:95
53
- msgid "Access token created"
54
- msgstr ""
55
-
56
- #: includes/ajax.php:111 includes/frontend.php:56
57
- msgid "Invalid item id"
58
- msgstr ""
59
-
60
- #: includes/ajax.php:121
61
- msgid "Token removed successfully"
62
- msgstr ""
63
-
64
- #: includes/ajax.php:137
65
- msgid "Select gallery item type"
66
- msgstr ""
67
-
68
- #: includes/ajax.php:140
69
- msgid "Username is empty"
70
- msgstr ""
71
-
72
- #: includes/ajax.php:143
73
- msgid "Tag is empty"
74
- msgstr ""
75
-
76
- #: includes/ajax.php:255
77
- msgid "Feed caches cleared"
78
- msgstr ""
79
-
80
- #: includes/api.php:275
81
- msgid "Please provide a valid #tag"
82
- msgstr ""
83
-
84
- #: includes/api.php:306
85
- msgid "Unknow error occurred, please try again"
86
- msgstr ""
87
-
88
- #: includes/frontend.php:248
89
- #, php-format
90
- msgid "The layout %s is not a available."
91
- msgstr ""
92
-
93
- #: includes/pages/premium.php:4 includes/pages/views/edit.php:94
94
- #: includes/pages/views/edit.php:99 includes/settings.php:13
95
- #: includes/settings.php:148
96
- msgid "Premium"
97
- msgstr ""
98
-
99
- #: includes/pages/premium.php:6
100
- #, php-format
101
- msgid ""
102
- "Unlock the power of our premium %s plugin which allows you to add unlimited "
103
- "Instagram accounts and offers you more layout options."
104
- msgstr ""
105
-
106
- #: includes/pages/premium.php:9
107
- msgid "Purchase Now"
108
- msgstr ""
109
-
110
- #: includes/pages/premium.php:10 includes/pages/welcome.php:19
111
- msgid "View demo"
112
- msgstr ""
113
-
114
- #: includes/pages/premium.php:14
115
- msgid "Multiple accounts"
116
- msgstr ""
117
-
118
- #: includes/pages/premium.php:16
119
- msgid ""
120
- "Include unlimited user accounts and create feeds galleries for different "
121
- "users with their own layout and settings."
122
- msgstr ""
123
-
124
- #: includes/pages/premium.php:20
125
- msgid "Customize colors"
126
- msgstr ""
127
-
128
- #: includes/pages/premium.php:22
129
- msgid ""
130
- "Customize the colors of the Instagram Feed with a custom background, "
131
- "padding, and a rounded border. It also includes the user or tag profile info "
132
- "in the header of the box."
133
- msgstr ""
134
-
135
- #: includes/pages/premium.php:26
136
- msgid "Load more button"
137
- msgstr ""
138
-
139
- #: includes/pages/premium.php:28
140
- msgid ""
141
- "Allow your users to load more images in the gallery providing an improved "
142
- "user experience."
143
- msgstr ""
144
-
145
- #: includes/pages/premium.php:43
146
- msgid "More content"
147
- msgstr ""
148
-
149
- #: includes/pages/premium.php:45
150
- msgid "Include some extra content for the images and the images popup."
151
- msgstr ""
152
-
153
- #: includes/pages/premium.php:50
154
- msgid "Popup content"
155
- msgstr ""
156
-
157
- #: includes/pages/premium.php:52
158
- msgid ""
159
- "Our premium version allows you to include some extra content in the image "
160
- "popup, like the user profile, the image caption, and the number of comments "
161
- "and likes."
162
- msgstr ""
163
-
164
- #: includes/pages/premium.php:60
165
- msgid "Layouts"
166
- msgstr ""
167
-
168
- #: includes/pages/premium.php:62
169
- msgid ""
170
- "Unlock the power of the masonry and highlight layouts that allows you to "
171
- "display the Instagram Feeds in a grid that supports items of variable size."
172
- msgstr ""
173
-
174
- #: includes/pages/premium.php:67
175
- msgid "Masonry layout"
176
- msgstr ""
177
-
178
- #: includes/pages/premium.php:69
179
- msgid ""
180
- "The masonry layout is a grid that displays the images with a fixed with and "
181
- "variable height size."
182
- msgstr ""
183
-
184
- #: includes/pages/premium.php:73
185
- msgid "Highlight layout"
186
- msgstr ""
187
-
188
- #: includes/pages/premium.php:75
189
- msgid ""
190
- "The highlight layout is a masonry grid that allows you to stand out some "
191
- "images with two or three columns width size."
192
- msgstr ""
193
-
194
- #: includes/pages/token.php:7 includes/pages/token.php:8
195
- msgid "Add New Account"
196
- msgstr ""
197
-
198
- #: includes/pages/token.php:11
199
- msgid "Button not working?"
200
- msgstr ""
201
-
202
- #: includes/pages/token.php:18
203
- msgid "Manually connect an account"
204
- msgstr ""
205
-
206
- #: includes/pages/token.php:20
207
- msgid "Enter a valid Access Token"
208
- msgstr ""
209
-
210
- #: includes/pages/token.php:22 includes/pages/token.php:137
211
- #: includes/pages/views/edit.php:624
212
- msgid "Update"
213
- msgstr ""
214
-
215
- #: includes/pages/token.php:24
216
- msgid "Get access token"
217
- msgstr ""
218
-
219
- #: includes/pages/token.php:38 includes/pages/views/list.php:17
220
- msgid "Image"
221
- msgstr ""
222
-
223
- #: includes/pages/token.php:39
224
- msgid "ID"
225
- msgstr ""
226
-
227
- #: includes/pages/token.php:40 includes/pages/views/edit.php:17
228
- #: includes/pages/views/edit.php:38
229
- msgid "User"
230
- msgstr ""
231
-
232
- #: includes/pages/token.php:41
233
- msgid "Name"
234
- msgstr ""
235
-
236
- #: includes/pages/token.php:42
237
- msgid "Token"
238
- msgstr ""
239
-
240
- #: includes/pages/token.php:43 includes/pages/views/list.php:21
241
- msgid "Action"
242
- msgstr ""
243
-
244
- #: includes/pages/token.php:62
245
- msgid "Copy"
246
- msgstr ""
247
-
248
- #: includes/pages/token.php:65 includes/pages/views/list.php:54
249
- msgid "Delete"
250
- msgstr ""
251
-
252
- #: includes/pages/token.php:85
253
- msgid "Feeds cache"
254
- msgstr ""
255
-
256
- #: includes/pages/token.php:89
257
- msgid "Reset your Instagram feeds cache every x hours."
258
- msgstr ""
259
-
260
- #: includes/pages/token.php:94
261
- msgid "Remove data"
262
- msgstr ""
263
-
264
- #: includes/pages/token.php:98
265
- msgid "Check this box to remove all data related to this plugin on uninstall."
266
- msgstr ""
267
-
268
- #: includes/pages/token.php:103
269
- msgid "Replace loader"
270
- msgstr ""
271
-
272
- #: includes/pages/token.php:117
273
- msgid "Upload"
274
- msgstr ""
275
-
276
- #: includes/pages/token.php:118
277
- msgid "Reset Spinner"
278
- msgstr ""
279
-
280
- #: includes/pages/token.php:120
281
- msgid "Select an image from media library to replace the default loader icon."
282
- msgstr ""
283
-
284
- #: includes/pages/views/edit.php:12 includes/pages/views/list.php:19
285
- msgid "Type"
286
- msgstr ""
287
-
288
- #: includes/pages/views/edit.php:22 includes/pages/views/edit.php:66
289
- msgid "Tag"
290
- msgstr ""
291
-
292
- #: includes/pages/views/edit.php:27
293
- msgid "Please select option to display images from Instagram @username or #tag"
294
- msgstr ""
295
-
296
- #: includes/pages/views/edit.php:42
297
- #, php-format
298
- msgid ""
299
- "No Instagram account connected. Please connect your account <a href=\"%s"
300
- "\">here</a>."
301
- msgstr ""
302
-
303
- #: includes/pages/views/edit.php:54
304
- msgid "Please enter Instagram username"
305
- msgstr ""
306
-
307
- #: includes/pages/views/edit.php:69
308
- msgid "Please enter Instagram tag"
309
- msgstr ""
310
-
311
- #: includes/pages/views/edit.php:79
312
- msgid "Layout"
313
- msgstr ""
314
-
315
- #: includes/pages/views/edit.php:84
316
- msgid "Gallery"
317
- msgstr ""
318
-
319
- #: includes/pages/views/edit.php:89
320
- msgid "Carousel"
321
- msgstr ""
322
-
323
- #: includes/pages/views/edit.php:94
324
- msgid "Masonry"
325
- msgstr ""
326
-
327
- #: includes/pages/views/edit.php:99
328
- msgid "Highlight"
329
- msgstr ""
330
-
331
- #: includes/pages/views/edit.php:112
332
- msgid "Box"
333
- msgstr ""
334
-
335
- #: includes/pages/views/edit.php:116
336
- msgid "Display the Instagram Feed inside a customizable box"
337
- msgstr ""
338
-
339
- #: includes/pages/views/edit.php:118 includes/pages/views/edit.php:134
340
- #: includes/pages/views/edit.php:144 includes/pages/views/edit.php:154
341
- #: includes/pages/views/edit.php:170 includes/pages/views/edit.php:180
342
- #: includes/pages/views/edit.php:221 includes/pages/views/edit.php:229
343
- #: includes/pages/views/edit.php:237 includes/pages/views/edit.php:334
344
- #: includes/pages/views/edit.php:350 includes/pages/views/edit.php:360
345
- #: includes/pages/views/edit.php:370 includes/pages/views/edit.php:389
346
- #: includes/pages/views/edit.php:399 includes/pages/views/edit.php:438
347
- #: includes/pages/views/edit.php:446 includes/pages/views/edit.php:456
348
- #: includes/pages/views/edit.php:469 includes/pages/views/edit.php:533
349
- #: includes/pages/views/edit.php:549 includes/pages/views/edit.php:559
350
- #: includes/pages/views/edit.php:569
351
- msgid "This is a premium feature."
352
- msgstr ""
353
-
354
- #: includes/pages/views/edit.php:128
355
- msgid "Box padding"
356
- msgstr ""
357
-
358
- #: includes/pages/views/edit.php:132
359
- msgid "Add padding to the Instagram Feed"
360
- msgstr ""
361
-
362
- #: includes/pages/views/edit.php:138
363
- msgid "Box radius"
364
- msgstr ""
365
-
366
- #: includes/pages/views/edit.php:142 includes/pages/views/edit.php:348
367
- msgid "Add radius to the Instagram Feed"
368
- msgstr ""
369
-
370
- #: includes/pages/views/edit.php:148
371
- msgid "Box background"
372
- msgstr ""
373
-
374
- #: includes/pages/views/edit.php:152
375
- msgid "Color which is displayed on box background"
376
- msgstr ""
377
-
378
- #: includes/pages/views/edit.php:164
379
- msgid "Profile"
380
- msgstr ""
381
-
382
- #: includes/pages/views/edit.php:168 includes/pages/views/edit.php:436
383
- msgid "Display user profile or tag info"
384
- msgstr ""
385
-
386
- #: includes/pages/views/edit.php:174
387
- msgid "Profile description"
388
- msgstr ""
389
-
390
- #: includes/pages/views/edit.php:178
391
- msgid "Box description here"
392
- msgstr ""
393
-
394
- #: includes/pages/views/edit.php:190
395
- msgid "Limit"
396
- msgstr ""
397
-
398
- #: includes/pages/views/edit.php:192
399
- msgid "Number of images to display"
400
- msgstr ""
401
-
402
- #: includes/pages/views/edit.php:202
403
- msgid "Columns"
404
- msgstr ""
405
-
406
- #: includes/pages/views/edit.php:206
407
- msgid "Number of images in a row"
408
- msgstr ""
409
-
410
- #: includes/pages/views/edit.php:217
411
- msgid "Highlight by tag"
412
- msgstr ""
413
-
414
- #: includes/pages/views/edit.php:220
415
- msgid "Highlight feeds items with this tags"
416
- msgstr ""
417
-
418
- #: includes/pages/views/edit.php:225
419
- msgid "Highlight by id"
420
- msgstr ""
421
-
422
- #: includes/pages/views/edit.php:228
423
- msgid "Highlight feeds items with this ids"
424
- msgstr ""
425
-
426
- #: includes/pages/views/edit.php:233
427
- msgid "Highlight by position"
428
- msgstr ""
429
-
430
- #: includes/pages/views/edit.php:236
431
- msgid "Highlight feeds items in this positions"
432
- msgstr ""
433
-
434
- #: includes/pages/views/edit.php:247
435
- msgid "Slides per view"
436
- msgstr ""
437
-
438
- #: includes/pages/views/edit.php:250
439
- msgid "Number of images per slide"
440
- msgstr ""
441
-
442
- #: includes/pages/views/edit.php:254
443
- msgid "Autoplay"
444
- msgstr ""
445
-
446
- #: includes/pages/views/edit.php:257
447
- msgid "Autoplay carousel items"
448
- msgstr ""
449
-
450
- #: includes/pages/views/edit.php:261
451
- msgid "Autoplay Interval"
452
- msgstr ""
453
-
454
- #: includes/pages/views/edit.php:265
455
- msgid "Moves to next picture after specified time interval"
456
- msgstr ""
457
-
458
- #: includes/pages/views/edit.php:269
459
- msgid "Navigation"
460
- msgstr ""
461
-
462
- #: includes/pages/views/edit.php:272
463
- msgid "Display navigation arrows"
464
- msgstr ""
465
-
466
- #: includes/pages/views/edit.php:276
467
- msgid "Navigation color"
468
- msgstr ""
469
-
470
- #: includes/pages/views/edit.php:279
471
- msgid "Change navigation arrows color"
472
- msgstr ""
473
-
474
- #: includes/pages/views/edit.php:283
475
- msgid "Pagination"
476
- msgstr ""
477
-
478
- #: includes/pages/views/edit.php:286
479
- msgid "Display pagination dots"
480
- msgstr ""
481
-
482
- #: includes/pages/views/edit.php:290
483
- msgid "Pagination color"
484
- msgstr ""
485
-
486
- #: includes/pages/views/edit.php:293
487
- msgid "Change pagination dotts color"
488
- msgstr ""
489
-
490
- #: includes/pages/views/edit.php:303
491
- msgid "Images size"
492
- msgstr ""
493
-
494
- #: includes/pages/views/edit.php:306
495
- msgid "Standard"
496
- msgstr ""
497
-
498
- #: includes/pages/views/edit.php:307
499
- msgid "Medium"
500
- msgstr ""
501
-
502
- #: includes/pages/views/edit.php:308
503
- msgid "Small"
504
- msgstr ""
505
-
506
- #: includes/pages/views/edit.php:313
507
- msgid "Images spacing"
508
- msgstr ""
509
-
510
- #: includes/pages/views/edit.php:317 includes/pages/views/edit.php:378
511
- #: includes/pages/views/edit.php:407
512
- msgid "Add blank space between images"
513
- msgstr ""
514
-
515
- #: includes/pages/views/edit.php:328
516
- msgid "Images card"
517
- msgstr ""
518
-
519
- #: includes/pages/views/edit.php:332
520
- msgid "Display card gallery by clicking on image"
521
- msgstr ""
522
-
523
- #: includes/pages/views/edit.php:344
524
- msgid "Card radius"
525
- msgstr ""
526
-
527
- #: includes/pages/views/edit.php:354
528
- msgid "Card font size"
529
- msgstr ""
530
-
531
- #: includes/pages/views/edit.php:358
532
- msgid "Add font-size to the Instagram Feed"
533
- msgstr ""
534
-
535
- #: includes/pages/views/edit.php:364
536
- msgid "Card background"
537
- msgstr ""
538
-
539
- #: includes/pages/views/edit.php:368
540
- msgid "Color which is displayed when over images"
541
- msgstr ""
542
-
543
- #: includes/pages/views/edit.php:374
544
- msgid "Card padding"
545
- msgstr ""
546
-
547
- #: includes/pages/views/edit.php:383
548
- msgid "Card info"
549
- msgstr ""
550
-
551
- #: includes/pages/views/edit.php:387 includes/pages/views/edit.php:454
552
- #: includes/pages/views/edit.php:468 includes/pages/views/edit.php:507
553
- msgid "Display likes count of images"
554
- msgstr ""
555
-
556
- #: includes/pages/views/edit.php:393
557
- msgid "Card caption"
558
- msgstr ""
559
-
560
- #: includes/pages/views/edit.php:397
561
- msgid "Display caption count of images"
562
- msgstr ""
563
-
564
- #: includes/pages/views/edit.php:403
565
- msgid "Card length"
566
- msgstr ""
567
-
568
- #: includes/pages/views/edit.php:418
569
- msgid "Images popup"
570
- msgstr ""
571
-
572
- #: includes/pages/views/edit.php:421
573
- msgid "Display popup gallery by clicking on image"
574
- msgstr ""
575
-
576
- #: includes/pages/views/edit.php:432
577
- msgid "Images popup profile"
578
- msgstr ""
579
-
580
- #: includes/pages/views/edit.php:442
581
- msgid "Images popup caption"
582
- msgstr ""
583
-
584
- #: includes/pages/views/edit.php:445
585
- msgid "Display caption in the popup"
586
- msgstr ""
587
-
588
- #: includes/pages/views/edit.php:450
589
- msgid "Images popup likes"
590
- msgstr ""
591
-
592
- #: includes/pages/views/edit.php:460
593
- msgid "Images popup align"
594
- msgstr ""
595
-
596
- #: includes/pages/views/edit.php:463
597
- msgid "Top"
598
- msgstr ""
599
-
600
- #: includes/pages/views/edit.php:464
601
- msgid "Left"
602
- msgstr ""
603
-
604
- #: includes/pages/views/edit.php:465
605
- msgid "Right"
606
- msgstr ""
607
-
608
- #: includes/pages/views/edit.php:466
609
- msgid "Bottom"
610
- msgstr ""
611
-
612
- #: includes/pages/views/edit.php:479
613
- msgid "Images mask"
614
- msgstr ""
615
-
616
- #: includes/pages/views/edit.php:483
617
- msgid "Image mouseover effect"
618
- msgstr ""
619
-
620
- #: includes/pages/views/edit.php:494
621
- msgid "Images mask color"
622
- msgstr ""
623
-
624
- #: includes/pages/views/edit.php:498
625
- msgid "Color which is displayed when hovered over images"
626
- msgstr ""
627
-
628
- #: includes/pages/views/edit.php:503
629
- msgid "Images mask likes"
630
- msgstr ""
631
-
632
- #: includes/pages/views/edit.php:512
633
- msgid "Images mask comments"
634
- msgstr ""
635
-
636
- #: includes/pages/views/edit.php:516
637
- msgid "Display comments count of images"
638
- msgstr ""
639
-
640
- #: includes/pages/views/edit.php:527
641
- msgid "Instagram load more"
642
- msgstr ""
643
-
644
- #: includes/pages/views/edit.php:531
645
- msgid "Display the load more button"
646
- msgstr ""
647
-
648
- #: includes/pages/views/edit.php:543
649
- msgid "Instagram load more text"
650
- msgstr ""
651
-
652
- #: includes/pages/views/edit.php:547
653
- msgid "Instagram load more text here"
654
- msgstr ""
655
-
656
- #: includes/pages/views/edit.php:553
657
- msgid "Instagram load more background"
658
- msgstr ""
659
-
660
- #: includes/pages/views/edit.php:557
661
- msgid "Color which is displayed on button load background"
662
- msgstr ""
663
-
664
- #: includes/pages/views/edit.php:563
665
- msgid "Instagram load more hover background"
666
- msgstr ""
667
-
668
- #: includes/pages/views/edit.php:567
669
- msgid "Color which is displayed when hovered over button load more"
670
- msgstr ""
671
-
672
- #: includes/pages/views/edit.php:579
673
- msgid "Instagram button"
674
- msgstr ""
675
-
676
- #: includes/pages/views/edit.php:583
677
- msgid "Display the button to open Instagram site link"
678
- msgstr ""
679
-
680
- #: includes/pages/views/edit.php:594
681
- msgid "Instagram button text"
682
- msgstr ""
683
-
684
- #: includes/pages/views/edit.php:598
685
- msgid "Instagram button text here"
686
- msgstr ""
687
-
688
- #: includes/pages/views/edit.php:603
689
- msgid "Instagram button background"
690
- msgstr ""
691
-
692
- #: includes/pages/views/edit.php:606
693
- msgid "Color which is displayed on button background"
694
- msgstr ""
695
-
696
- #: includes/pages/views/edit.php:610
697
- msgid "Instagram button hover background"
698
- msgstr ""
699
-
700
- #: includes/pages/views/edit.php:613
701
- msgid "Color which is displayed when hovered over button"
702
- msgstr ""
703
-
704
- #: includes/pages/views/edit.php:626
705
- #, php-format
706
- msgid ""
707
- "Update settings and copy/paste generated shortcode in your post/pages or go "
708
- "to Widgets and use %s widget"
709
- msgstr ""
710
-
711
- #: includes/pages/views/list.php:7 includes/pages/views/list.php:9
712
- #: includes/widget.php:71
713
- msgid "Add New Gallery"
714
- msgstr ""
715
-
716
- #: includes/pages/views/list.php:18
717
- msgid "Source"
718
- msgstr ""
719
-
720
- #: includes/pages/views/list.php:20
721
- msgid "Shortcode"
722
- msgstr ""
723
-
724
- #: includes/pages/views/list.php:51
725
- msgid "Edit"
726
- msgstr ""
727
-
728
- #: includes/pages/views/list.php:57
729
- msgid "Cache"
730
- msgstr ""
731
-
732
- #: includes/pages/welcome.php:10
733
- msgid ""
734
- "Hello we're QuadLayers! We've recently acquired this plugin. We will do our "
735
- "absolute best to support it and fix all the issues."
736
- msgstr ""
737
-
738
- #: includes/pages/welcome.php:15
739
- msgid "Demo"
740
- msgstr ""
741
-
742
- #: includes/pages/welcome.php:17
743
- #, php-format
744
- msgid ""
745
- "Thank you for choosing our %s plugin for WordPress! Here you can see our "
746
- "demo and test the features we offer in the premium version."
747
- msgstr ""
748
-
749
- #: includes/pages/welcome.php:22
750
- msgid "Support"
751
- msgstr ""
752
-
753
- #: includes/pages/welcome.php:24
754
- #, php-format
755
- msgid ""
756
- "If you have any doubt or you find any issue don't hesitate to contact us "
757
- "through our ticket system or join our community to meet other %s users."
758
- msgstr ""
759
-
760
- #: includes/pages/welcome.php:26
761
- msgid "Submit ticket"
762
- msgstr ""
763
-
764
- #: includes/pages/welcome.php:29
765
- msgid "Community"
766
- msgstr ""
767
-
768
- #: includes/pages/welcome.php:31
769
- #, php-format
770
- msgid ""
771
- "If you want to get in touch with other %s users or be aware of our "
772
- "promotional discounts join our community now."
773
- msgstr ""
774
-
775
- #: includes/pages/welcome.php:33
776
- msgid "Join our community"
777
- msgstr ""
778
-
779
- #: includes/settings.php:15
780
- msgid "Settings"
781
- msgstr ""
782
-
783
- #: includes/settings.php:28
784
- #, php-format
785
- msgid ""
786
- "Thanks for using %s! We will do our absolute best to support you and fix all "
787
- "the issues."
788
- msgstr ""
789
-
790
- #: includes/settings.php:31
791
- msgid "Check out our demo"
792
- msgstr ""
793
-
794
- #. Author of the plugin/theme
795
- #: includes/settings.php:47
796
- msgid "QuadLayers"
797
- msgstr ""
798
-
799
- #: includes/settings.php:144
800
- msgid "Welcome"
801
- msgstr ""
802
-
803
- #: includes/settings.php:145
804
- msgid "Account"
805
- msgstr ""
806
-
807
- #: includes/settings.php:146
808
- msgid "Feeds"
809
- msgstr ""
810
-
811
- #: includes/settings.php:147
812
- msgid "Suggestions"
813
- msgstr ""
814
-
815
- #: includes/settings.php:158
816
- msgid "Are you sure want to clear this item cache?"
817
- msgstr ""
818
-
819
- #: includes/settings.php:159
820
- msgid "Are you sure want to delete this item?"
821
- msgstr ""
822
-
823
- #: includes/settings.php:160
824
- msgid "Are you sure want to delete this access token?"
825
- msgstr ""
826
-
827
- #: includes/settings.php:161
828
- msgid "Are you sure want to delete all settings on plugin uninstall?"
829
- msgstr ""
830
-
831
- #: includes/suggestions.php:108
832
- msgid "Search Results"
833
- msgstr ""
834
-
835
- #: includes/suggestions.php:111
836
- msgctxt "Plugin Installer"
837
- msgid "Beta Testing"
838
- msgstr ""
839
-
840
- #: includes/suggestions.php:113
841
- msgctxt "Plugin Installer"
842
- msgid "Featured"
843
- msgstr ""
844
-
845
- #: includes/suggestions.php:114
846
- msgctxt "Plugin Installer"
847
- msgid "Popular"
848
- msgstr ""
849
-
850
- #: includes/suggestions.php:115
851
- msgctxt "Plugin Installer"
852
- msgid "Recommended"
853
- msgstr ""
854
-
855
- #: includes/suggestions.php:116
856
- msgctxt "Plugin Installer"
857
- msgid "Favorites"
858
- msgstr ""
859
-
860
- #: includes/utis.php:19
861
- msgid "Something went wrong, remove this token"
862
- msgstr ""
863
-
864
- #: includes/utis.php:70
865
- msgid "Something went wrong, remove this this tag"
866
- msgstr ""
867
-
868
- #: includes/utis.php:82
869
- #, php-format
870
- msgid "Tag #%s"
871
- msgstr ""
872
-
873
- #: includes/utis.php:95
874
- msgid "Please update Instagram User in the gallery settings tab."
875
- msgstr ""
876
-
877
- #: includes/utis.php:100
878
- msgid "Please update Instagram Access Token in the account settings tab."
879
- msgstr ""
880
-
881
- #: includes/widget.php:10
882
- msgid "Displays your Instagram gallery"
883
- msgstr ""
884
-
885
- #: includes/widget.php:42
886
- msgid "Title"
887
- msgstr ""
888
-
889
- #: includes/widget.php:46
890
- msgid "Select your Instagram gallery"
891
- msgstr ""
892
-
893
- #: includes/widget.php:59
894
- #, php-format
895
- msgid "Feed %s"
896
- msgstr ""
897
-
898
- #: includes/widget.php:67
899
- msgid ""
900
- "Please add new gallery in plugin admin panel, then come back and select your "
901
- "gallery to here."
902
- msgstr ""
903
-
904
- #: insta-gallery.php:85
905
- #, php-format
906
- msgid "Hello! Thank you for choosing the %s plugin!"
907
- msgstr ""
908
-
909
- #: insta-gallery.php:87
910
- msgid ""
911
- "Could you please give it a 5-star rating on WordPress? We know its a big "
912
- "favor, but we've worked very much and very hard to release this great "
913
- "product. Your feedback will boost our motivation and help us promote and "
914
- "continue to improve this product."
915
- msgstr ""
916
-
917
- #: insta-gallery.php:90
918
- msgid "Yes, of course!"
919
- msgstr ""
920
-
921
- #: insta-gallery.php:93
922
- msgid "Report a bug"
923
- msgstr ""
924
-
925
- #: templates/alert.php:2
926
- msgid "Unable to get results"
927
- msgstr ""
928
-
929
- #. Plugin Name of the plugin/theme
930
- msgid "Instagram Feed Gallery"
931
- msgstr ""
932
-
933
- #. Plugin URI of the plugin/theme
934
- msgid "https://quadlayers.com/portfolio/instagram-gallery/"
935
- msgstr ""
936
-
937
- #. Description of the plugin/theme
938
- msgid ""
939
- "Display beautifull and responsive galleries on your website from your "
940
- "Instagram feed account."
941
- msgstr ""
942
-
943
- #. Author URI of the plugin/theme
944
- msgid "https://quadlayers.com"
945
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #, fuzzy
2
+ msgid ""
3
+ msgstr ""
4
+ "Project-Id-Version: Instagram Feed Gallery\n"
5
+ "POT-Creation-Date: 2020-06-15 22:14-0300\n"
6
+ "PO-Revision-Date: 2019-08-09 08:43-0300\n"
7
+ "Last-Translator: \n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 2.3.1\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "X-Poedit-WPHeader: insta-gallery.php\n"
15
+ "X-Poedit-SourceCharset: UTF-8\n"
16
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
17
+ "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
18
+ "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
21
+
22
+ #: includes/api.php:275
23
+ msgid "Please provide a valid #tag"
24
+ msgstr ""
25
+
26
+ #: includes/api.php:306 includes/apiV2.php:188
27
+ msgid "Unknow error occurred, please try again"
28
+ msgstr ""
29
+
30
+ #: includes/compatibility.php:357
31
+ msgid "Please update Instagram User in the gallery settings tab."
32
+ msgstr ""
33
+
34
+ #: includes/compatibility.php:365
35
+ msgid "Please update Instagram Access Token in the account settings tab."
36
+ msgstr ""
37
+
38
+ #: includes/controllers/AccountController.php:29
39
+ msgid "Accounts"
40
+ msgstr ""
41
+
42
+ #: includes/controllers/AccountController.php:48
43
+ msgid "Empty access account"
44
+ msgstr ""
45
+
46
+ #: includes/controllers/AccountController.php:58
47
+ msgid ""
48
+ "Account already connected. To connect a new account logout from Instagram in "
49
+ "this browser."
50
+ msgstr ""
51
+
52
+ #: includes/controllers/AccountController.php:61
53
+ msgid "Access account created"
54
+ msgstr ""
55
+
56
+ #: includes/controllers/AccountController.php:79
57
+ msgid "Account removed successfully"
58
+ msgstr ""
59
+
60
+ #: includes/controllers/AccountController.php:94
61
+ msgid "Do you want to delete the account?"
62
+ msgstr ""
63
+
64
+ #: includes/controllers/FeedController.php:12
65
+ msgid "Feeds"
66
+ msgstr ""
67
+
68
+ #: includes/controllers/FeedController.php:29
69
+ msgid "All"
70
+ msgstr ""
71
+
72
+ #: includes/controllers/FeedController.php:119
73
+ msgid "Feed cache cleared"
74
+ msgstr ""
75
+
76
+ #: includes/controllers/FeedController.php:146
77
+ #: includes/controllers/FeedController.php:147
78
+ msgid "Do you want to delete the feed?"
79
+ msgstr ""
80
+
81
+ #: includes/controllers/PremiumController.php:9 includes/notices.php:119
82
+ #: includes/view/backend/pages/modals/feed/panel-feed-profile.php:29
83
+ #: includes/view/backend/pages/premium.php:5
84
+ msgid "Premium"
85
+ msgstr ""
86
+
87
+ #: includes/controllers/QLIGG_Controller.php:14
88
+ msgid "Please, reload page"
89
+ msgstr ""
90
+
91
+ #: includes/controllers/QLIGG_Controller.php:18
92
+ msgid "Access denied"
93
+ msgstr ""
94
+
95
+ #: includes/controllers/SettingController.php:12
96
+ msgid "Setting"
97
+ msgstr ""
98
+
99
+ #: includes/controllers/SettingController.php:39
100
+ msgid "Settings updated successfully"
101
+ msgstr ""
102
+
103
+ #: includes/controllers/SettingController.php:42
104
+ msgid "Invalid Request"
105
+ msgstr ""
106
+
107
+ #: includes/controllers/SuggestionsController.php:9
108
+ msgid "Suggestions"
109
+ msgstr ""
110
+
111
+ #: includes/controllers/WelcomeController.php:21
112
+ msgid "Welcome"
113
+ msgstr ""
114
+
115
+ #: includes/frontend.php:63
116
+ msgid "Invalid item id"
117
+ msgstr ""
118
+
119
+ #: includes/frontend.php:269
120
+ #, php-format
121
+ msgid "The layout %s is not a available."
122
+ msgstr ""
123
+
124
+ #: includes/helpers.php:71
125
+ msgid "This token expires soon!"
126
+ msgstr ""
127
+
128
+ #: includes/helpers.php:147
129
+ msgid "Please update Instagram User in the feed settings."
130
+ msgstr ""
131
+
132
+ #: includes/helpers.php:160
133
+ msgid "Please update Instagram Access Token in the account settings."
134
+ msgstr ""
135
+
136
+ #: includes/helpers.php:221
137
+ msgid "Please update Instagram Tag in the feed settings."
138
+ msgstr ""
139
+
140
+ #: includes/models/Suggestions.php:110
141
+ msgid "Search Results"
142
+ msgstr ""
143
+
144
+ #: includes/models/Suggestions.php:113
145
+ msgctxt "Plugin Installer"
146
+ msgid "Beta Testing"
147
+ msgstr ""
148
+
149
+ #: includes/models/Suggestions.php:115
150
+ msgctxt "Plugin Installer"
151
+ msgid "Featured"
152
+ msgstr ""
153
+
154
+ #: includes/models/Suggestions.php:116
155
+ msgctxt "Plugin Installer"
156
+ msgid "Popular"
157
+ msgstr ""
158
+
159
+ #: includes/models/Suggestions.php:117
160
+ msgctxt "Plugin Installer"
161
+ msgid "Recommended"
162
+ msgstr ""
163
+
164
+ #: includes/models/Suggestions.php:118
165
+ msgctxt "Plugin Installer"
166
+ msgid "Favorites"
167
+ msgstr ""
168
+
169
+ #: includes/notices.php:75
170
+ msgid "Important! Update tokens required"
171
+ msgstr ""
172
+
173
+ #: includes/notices.php:77
174
+ msgid ""
175
+ "Instagram is deprecating their old API for Personal accounts on June 29, "
176
+ "2020. The plugin supports their new API, however, some features are not yet "
177
+ "available in their new API. "
178
+ msgstr ""
179
+
180
+ #: includes/notices.php:79
181
+ msgid ""
182
+ "You may also experience some API limits in the tags feeds. We're working on "
183
+ "the fix that will require a business or creator Instagram account."
184
+ msgstr ""
185
+
186
+ #: includes/notices.php:82
187
+ msgid "More Info!"
188
+ msgstr ""
189
+
190
+ #: includes/notices.php:85
191
+ msgid "Update Tokens"
192
+ msgstr ""
193
+
194
+ #: includes/notices.php:120
195
+ msgid "Settings"
196
+ msgstr ""
197
+
198
+ #: includes/view/backend/pages/accounts.php:7
199
+ #: includes/view/backend/pages/accounts.php:8
200
+ msgid "Add New Account"
201
+ msgstr ""
202
+
203
+ #: includes/view/backend/pages/accounts.php:11
204
+ msgid "Button not working?"
205
+ msgstr ""
206
+
207
+ #: includes/view/backend/pages/accounts.php:12
208
+ msgid "(This is a premium feature)."
209
+ msgstr ""
210
+
211
+ #: includes/view/backend/pages/accounts.php:19
212
+ #: includes/view/backend/pages/feeds.php:14
213
+ #: includes/view/backend/pages/modals/feed/panel-tabs.php:17
214
+ msgid "Image"
215
+ msgstr ""
216
+
217
+ #: includes/view/backend/pages/accounts.php:20
218
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:22
219
+ msgid "User"
220
+ msgstr ""
221
+
222
+ #: includes/view/backend/pages/accounts.php:21
223
+ #: includes/view/backend/pages/feeds.php:15
224
+ msgid "ID"
225
+ msgstr ""
226
+
227
+ #: includes/view/backend/pages/accounts.php:22
228
+ #: includes/view/backend/pages/feeds.php:18
229
+ msgid "Name"
230
+ msgstr ""
231
+
232
+ #: includes/view/backend/pages/accounts.php:23
233
+ #: includes/view/backend/pages/feeds.php:16
234
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:11
235
+ msgid "Type"
236
+ msgstr ""
237
+
238
+ #: includes/view/backend/pages/accounts.php:24
239
+ msgid "Expires"
240
+ msgstr ""
241
+
242
+ #: includes/view/backend/pages/accounts.php:25
243
+ msgid "Token"
244
+ msgstr ""
245
+
246
+ #: includes/view/backend/pages/accounts.php:26
247
+ #: includes/view/backend/pages/feeds.php:21
248
+ msgid "Action"
249
+ msgstr ""
250
+
251
+ #: includes/view/backend/pages/feeds.php:4
252
+ msgid "+ Feed"
253
+ msgstr ""
254
+
255
+ #: includes/view/backend/pages/feeds.php:6
256
+ msgid "Save reorder"
257
+ msgstr ""
258
+
259
+ #: includes/view/backend/pages/feeds.php:8
260
+ #: includes/view/backend/pages/modals/account/main.php:40
261
+ #: includes/view/backend/pages/modals/feed/main.php:38
262
+ msgid "Saved successfully!"
263
+ msgstr ""
264
+
265
+ #: includes/view/backend/pages/feeds.php:17
266
+ #: includes/view/backend/pages/modals/feed/panel-feed-profile.php:14
267
+ msgid "Feed"
268
+ msgstr ""
269
+
270
+ #: includes/view/backend/pages/feeds.php:19
271
+ msgid "Layout"
272
+ msgstr ""
273
+
274
+ #: includes/view/backend/pages/feeds.php:20
275
+ msgid "Shortcode"
276
+ msgstr ""
277
+
278
+ #: includes/view/backend/pages/feeds.php:69
279
+ #: includes/view/backend/pages/modals/feed/main.php:18
280
+ msgid "Edit feed"
281
+ msgstr ""
282
+
283
+ #: includes/view/backend/pages/feeds.php:69
284
+ msgid "Edit"
285
+ msgstr ""
286
+
287
+ #: includes/view/backend/pages/feeds.php:70
288
+ msgid "Clear feed cache"
289
+ msgstr ""
290
+
291
+ #: includes/view/backend/pages/feeds.php:70
292
+ msgid "Cache"
293
+ msgstr ""
294
+
295
+ #: includes/view/backend/pages/feeds.php:71
296
+ msgid "Delete feed"
297
+ msgstr ""
298
+
299
+ #: includes/view/backend/pages/modals/account/main.php:7
300
+ #: includes/view/backend/pages/modals/feed/main.php:15
301
+ msgid "Close dialog"
302
+ msgstr ""
303
+
304
+ #: includes/view/backend/pages/modals/account/main.php:10
305
+ msgid "Manually connect an account"
306
+ msgstr ""
307
+
308
+ #: includes/view/backend/pages/modals/account/main.php:20
309
+ msgid "Account ID:"
310
+ msgstr ""
311
+
312
+ #: includes/view/backend/pages/modals/account/main.php:21
313
+ msgid "Enter a user id"
314
+ msgstr ""
315
+
316
+ #: includes/view/backend/pages/modals/account/main.php:22
317
+ #: includes/view/backend/pages/modals/account/main.php:27
318
+ msgid "Get access token"
319
+ msgstr ""
320
+
321
+ #: includes/view/backend/pages/modals/account/main.php:25
322
+ msgid "Account Token"
323
+ msgstr ""
324
+
325
+ #: includes/view/backend/pages/modals/account/main.php:26
326
+ msgid "Enter a valid access token"
327
+ msgstr ""
328
+
329
+ #: includes/view/backend/pages/modals/account/main.php:45
330
+ #: includes/view/backend/pages/modals/feed/main.php:43
331
+ #: includes/view/backend/pages/settings.php:64
332
+ msgid "Save"
333
+ msgstr ""
334
+
335
+ #: includes/view/backend/pages/modals/feed/main.php:12
336
+ msgid "Edit previous media item"
337
+ msgstr ""
338
+
339
+ #: includes/view/backend/pages/modals/feed/main.php:13
340
+ msgid "Edit next media item"
341
+ msgstr ""
342
+
343
+ #: includes/view/backend/pages/modals/feed/main.php:18
344
+ msgid "New"
345
+ msgstr ""
346
+
347
+ #: includes/view/backend/pages/modals/feed/main.php:49
348
+ msgid "Close"
349
+ msgstr ""
350
+
351
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:5
352
+ #: includes/view/backend/pages/modals/feed/panel-tabs.php:14
353
+ msgid "Box"
354
+ msgstr ""
355
+
356
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:7
357
+ msgid "Display the Instagram Feed inside a customizable box"
358
+ msgstr ""
359
+
360
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:8
361
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:17
362
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:24
363
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:31
364
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:40
365
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:46
366
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:16
367
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:25
368
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:34
369
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:40
370
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:57
371
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:35
372
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:44
373
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:51
374
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:58
375
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:71
376
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:78
377
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:70
378
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:77
379
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:106
380
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:112
381
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:118
382
+ msgid "(This is a premium feature)"
383
+ msgstr ""
384
+
385
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:14
386
+ msgid "Box padding"
387
+ msgstr ""
388
+
389
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:16
390
+ msgid "Add padding to the Instagram Feed"
391
+ msgstr ""
392
+
393
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:21
394
+ msgid "Box radius"
395
+ msgstr ""
396
+
397
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:23
398
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:43
399
+ msgid "Add radius to the Instagram Feed"
400
+ msgstr ""
401
+
402
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:28
403
+ msgid "Box background"
404
+ msgstr ""
405
+
406
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:30
407
+ msgid "Color which is displayed on box background"
408
+ msgstr ""
409
+
410
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:37
411
+ #: includes/view/backend/pages/modals/feed/panel-tabs.php:11
412
+ msgid "Profile"
413
+ msgstr ""
414
+
415
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:39
416
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:15
417
+ msgid "Display user profile or tag info"
418
+ msgstr ""
419
+
420
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:43
421
+ msgid "Profile description"
422
+ msgstr ""
423
+
424
+ #: includes/view/backend/pages/modals/feed/panel-feed-box.php:45
425
+ msgid "Box description here"
426
+ msgstr ""
427
+
428
+ #: includes/view/backend/pages/modals/feed/panel-feed-button-load.php:5
429
+ #: includes/view/backend/pages/modals/feed/panel-feed-button.php:5
430
+ msgid "Instagram button"
431
+ msgstr ""
432
+
433
+ #: includes/view/backend/pages/modals/feed/panel-feed-button-load.php:7
434
+ #: includes/view/backend/pages/modals/feed/panel-feed-button.php:7
435
+ msgid "Display the button to open Instagram site link"
436
+ msgstr ""
437
+
438
+ #: includes/view/backend/pages/modals/feed/panel-feed-button-load.php:10
439
+ #: includes/view/backend/pages/modals/feed/panel-feed-button.php:10
440
+ msgid "Instagram button text"
441
+ msgstr ""
442
+
443
+ #: includes/view/backend/pages/modals/feed/panel-feed-button-load.php:12
444
+ #: includes/view/backend/pages/modals/feed/panel-feed-button.php:12
445
+ msgid "Instagram button text here"
446
+ msgstr ""
447
+
448
+ #: includes/view/backend/pages/modals/feed/panel-feed-button-load.php:17
449
+ #: includes/view/backend/pages/modals/feed/panel-feed-button.php:17
450
+ msgid "Instagram button background"
451
+ msgstr ""
452
+
453
+ #: includes/view/backend/pages/modals/feed/panel-feed-button-load.php:19
454
+ #: includes/view/backend/pages/modals/feed/panel-feed-button.php:19
455
+ msgid "Color which is displayed on button background"
456
+ msgstr ""
457
+
458
+ #: includes/view/backend/pages/modals/feed/panel-feed-button-load.php:22
459
+ #: includes/view/backend/pages/modals/feed/panel-feed-button.php:22
460
+ msgid "Instagram button hover background"
461
+ msgstr ""
462
+
463
+ #: includes/view/backend/pages/modals/feed/panel-feed-button-load.php:24
464
+ #: includes/view/backend/pages/modals/feed/panel-feed-button.php:24
465
+ msgid "Color which is displayed when hovered over button"
466
+ msgstr ""
467
+
468
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:5
469
+ msgid "Slides per view"
470
+ msgstr ""
471
+
472
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:7
473
+ msgid "Number of images per slide"
474
+ msgstr ""
475
+
476
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:12
477
+ msgid "Autoplay"
478
+ msgstr ""
479
+
480
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:14
481
+ msgid "Autoplay carousel items"
482
+ msgstr ""
483
+
484
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:19
485
+ msgid "Autoplay Interval"
486
+ msgstr ""
487
+
488
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:21
489
+ msgid "Moves to next picture after specified time interval"
490
+ msgstr ""
491
+
492
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:26
493
+ msgid "Navigation"
494
+ msgstr ""
495
+
496
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:28
497
+ msgid "Display navigation arrows"
498
+ msgstr ""
499
+
500
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:33
501
+ msgid "Navigation color"
502
+ msgstr ""
503
+
504
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:35
505
+ msgid "Change navigation arrows color"
506
+ msgstr ""
507
+
508
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:40
509
+ msgid "Pagination"
510
+ msgstr ""
511
+
512
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:42
513
+ msgid "Display pagination dots"
514
+ msgstr ""
515
+
516
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:47
517
+ msgid "Pagination color"
518
+ msgstr ""
519
+
520
+ #: includes/view/backend/pages/modals/feed/panel-feed-carousel.php:49
521
+ msgid "Change pagination dotts color"
522
+ msgstr ""
523
+
524
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-mask.php:5
525
+ msgid "Images mask"
526
+ msgstr ""
527
+
528
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-mask.php:7
529
+ msgid "Image mouseover effect"
530
+ msgstr ""
531
+
532
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-mask.php:13
533
+ msgid "Images mask color"
534
+ msgstr ""
535
+
536
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-mask.php:16
537
+ msgid "Color which is displayed when displayed over images"
538
+ msgstr ""
539
+
540
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-mask.php:22
541
+ msgid "Images mask likes"
542
+ msgstr ""
543
+
544
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-mask.php:24
545
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:33
546
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:70
547
+ msgid "Display likes count of images"
548
+ msgstr ""
549
+
550
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-mask.php:28
551
+ msgid "Images mask comments"
552
+ msgstr ""
553
+
554
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-mask.php:30
555
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:39
556
+ msgid "Display comments count of images"
557
+ msgstr ""
558
+
559
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:5
560
+ msgid "Images popup"
561
+ msgstr ""
562
+
563
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:7
564
+ msgid "Display popup gallery by clicking on image"
565
+ msgstr ""
566
+
567
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:13
568
+ msgid "Images popup profile"
569
+ msgstr ""
570
+
571
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:22
572
+ msgid "Images popup caption"
573
+ msgstr ""
574
+
575
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:24
576
+ msgid "Display caption in the popup"
577
+ msgstr ""
578
+
579
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:31
580
+ msgid "Images popup likes"
581
+ msgstr ""
582
+
583
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:37
584
+ msgid "Images popup comments"
585
+ msgstr ""
586
+
587
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:49
588
+ msgid "Images popup align"
589
+ msgstr ""
590
+
591
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:51
592
+ msgid "Left"
593
+ msgstr ""
594
+
595
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:52
596
+ msgid "Right"
597
+ msgstr ""
598
+
599
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:53
600
+ msgid "Bottom"
601
+ msgstr ""
602
+
603
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:54
604
+ msgid "Top"
605
+ msgstr ""
606
+
607
+ #: includes/view/backend/pages/modals/feed/panel-feed-image-popup.php:56
608
+ msgid "Align item description in popup"
609
+ msgstr ""
610
+
611
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:5
612
+ msgid "Images resolution"
613
+ msgstr ""
614
+
615
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:7
616
+ msgid "Standard"
617
+ msgstr ""
618
+
619
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:8
620
+ msgid "Medium"
621
+ msgstr ""
622
+
623
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:9
624
+ msgid "Small"
625
+ msgstr ""
626
+
627
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:24
628
+ msgid "Images spacing"
629
+ msgstr ""
630
+
631
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:26
632
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:64
633
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:84
634
+ msgid "Add blank space between images"
635
+ msgstr ""
636
+
637
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:32
638
+ msgid "Images card"
639
+ msgstr ""
640
+
641
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:34
642
+ msgid "Display card gallery by clicking on image"
643
+ msgstr ""
644
+
645
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:41
646
+ msgid "Card radius"
647
+ msgstr ""
648
+
649
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:48
650
+ msgid "Card font size"
651
+ msgstr ""
652
+
653
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:50
654
+ msgid "Add font-size to the Instagram Feed"
655
+ msgstr ""
656
+
657
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:55
658
+ msgid "Card background"
659
+ msgstr ""
660
+
661
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:57
662
+ msgid "Color which is displayed when over images"
663
+ msgstr ""
664
+
665
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:62
666
+ msgid "Card padding"
667
+ msgstr ""
668
+
669
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:68
670
+ msgid "Card info"
671
+ msgstr ""
672
+
673
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:75
674
+ msgid "Card caption"
675
+ msgstr ""
676
+
677
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:77
678
+ msgid "Display caption count of images"
679
+ msgstr ""
680
+
681
+ #: includes/view/backend/pages/modals/feed/panel-feed-image.php:82
682
+ msgid "Card length"
683
+ msgstr ""
684
+
685
+ #: includes/view/backend/pages/modals/feed/panel-feed-profile.php:10
686
+ msgid "Saved."
687
+ msgstr ""
688
+
689
+ #: includes/view/backend/pages/modals/feed/panel-feed-profile.php:22
690
+ #: includes/view/backend/pages/settings.php:42
691
+ msgid "Upload"
692
+ msgstr ""
693
+
694
+ #: includes/view/backend/pages/modals/feed/panel-feed-profile.php:30
695
+ #: includes/view/backend/pages/parts/header.php:10
696
+ msgid "Documentation"
697
+ msgstr ""
698
+
699
+ #: includes/view/backend/pages/modals/feed/panel-feed-profile.php:38
700
+ msgid "Full Name"
701
+ msgstr ""
702
+
703
+ #: includes/view/backend/pages/modals/feed/panel-feed-profile.php:40
704
+ msgid "Feed profile full name"
705
+ msgstr ""
706
+
707
+ #: includes/view/backend/pages/modals/feed/panel-feed-profile.php:46
708
+ msgid "Description"
709
+ msgstr ""
710
+
711
+ #: includes/view/backend/pages/modals/feed/panel-feed-profile.php:47
712
+ msgid "Feed profile description"
713
+ msgstr ""
714
+
715
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:13
716
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:32
717
+ msgid "Tag"
718
+ msgstr ""
719
+
720
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:15
721
+ msgid "User name"
722
+ msgstr ""
723
+
724
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:29
725
+ msgid "Please enter Instagram username"
726
+ msgstr ""
727
+
728
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:36
729
+ msgid "Please enter Instagram tag"
730
+ msgstr ""
731
+
732
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:47
733
+ #, php-format
734
+ msgid ""
735
+ "No Instagram account connected. Please connect your account <a target="
736
+ "\"_blank\" href=\"%s\">here</a>."
737
+ msgstr ""
738
+
739
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:59
740
+ msgid "Gallery"
741
+ msgstr ""
742
+
743
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:64
744
+ #: includes/view/backend/pages/modals/feed/panel-tabs.php:7
745
+ msgid "Carousel"
746
+ msgstr ""
747
+
748
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:69
749
+ msgid "Masonry"
750
+ msgstr ""
751
+
752
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:76
753
+ msgid "Highlight"
754
+ msgstr ""
755
+
756
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:87
757
+ msgid "Limit"
758
+ msgstr ""
759
+
760
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:89
761
+ msgid "Number of images to display"
762
+ msgstr ""
763
+
764
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:95
765
+ msgid "Columns"
766
+ msgstr ""
767
+
768
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:97
769
+ msgid "Number of images in a row"
770
+ msgstr ""
771
+
772
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:103
773
+ msgid "Highlight by tag"
774
+ msgstr ""
775
+
776
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:105
777
+ msgid "Highlight feeds items with this tags"
778
+ msgstr ""
779
+
780
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:109
781
+ msgid "Highlight by id"
782
+ msgstr ""
783
+
784
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:111
785
+ msgid "Highlight feeds items with this ids"
786
+ msgstr ""
787
+
788
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:115
789
+ msgid "Highlight by position"
790
+ msgstr ""
791
+
792
+ #: includes/view/backend/pages/modals/feed/panel-feed.php:117
793
+ msgid "Highlight feeds items in this positions"
794
+ msgstr ""
795
+
796
+ #: includes/view/backend/pages/modals/feed/panel-tabs.php:3
797
+ msgid "General"
798
+ msgstr ""
799
+
800
+ #: includes/view/backend/pages/modals/feed/panel-tabs.php:20
801
+ msgid "Image mask"
802
+ msgstr ""
803
+
804
+ #: includes/view/backend/pages/modals/feed/panel-tabs.php:23
805
+ msgid "Image popup"
806
+ msgstr ""
807
+
808
+ #: includes/view/backend/pages/modals/feed/panel-tabs.php:26
809
+ msgid "Button"
810
+ msgstr ""
811
+
812
+ #: includes/view/backend/pages/modals/feed/panel-tabs.php:29
813
+ msgid "Button load more"
814
+ msgstr ""
815
+
816
+ #: includes/view/backend/pages/parts/header.php:5
817
+ #, php-format
818
+ msgid ""
819
+ "Thanks for using %s! We will do our best to offer you the best and improved "
820
+ "communication experience with your users."
821
+ msgstr ""
822
+
823
+ #: includes/view/backend/pages/parts/header.php:8
824
+ msgid "Purchase"
825
+ msgstr ""
826
+
827
+ #: includes/view/backend/pages/parts/header.php:9
828
+ #: includes/view/backend/pages/welcome.php:12
829
+ msgid "Demo"
830
+ msgstr ""
831
+
832
+ #. Author of the plugin/theme
833
+ #: includes/view/backend/pages/parts/header.php:26
834
+ msgid "QuadLayers"
835
+ msgstr ""
836
+
837
+ #: includes/view/backend/pages/premium.php:7
838
+ #, php-format
839
+ msgid ""
840
+ "Unlock the power of our premium %s plugin which allows you to add unlimited "
841
+ "Instagram accounts and offers you more layout options."
842
+ msgstr ""
843
+
844
+ #: includes/view/backend/pages/premium.php:10
845
+ msgid "Purchase Now"
846
+ msgstr ""
847
+
848
+ #: includes/view/backend/pages/premium.php:11
849
+ #: includes/view/backend/pages/welcome.php:16
850
+ msgid "View demo"
851
+ msgstr ""
852
+
853
+ #: includes/view/backend/pages/premium.php:15
854
+ msgid "Multiple accounts"
855
+ msgstr ""
856
+
857
+ #: includes/view/backend/pages/premium.php:17
858
+ msgid ""
859
+ "Include unlimited user accounts and create feeds galleries for different "
860
+ "users with their own layout and settings."
861
+ msgstr ""
862
+
863
+ #: includes/view/backend/pages/premium.php:21
864
+ msgid "Customize colors"
865
+ msgstr ""
866
+
867
+ #: includes/view/backend/pages/premium.php:23
868
+ msgid ""
869
+ "Customize the colors of the Instagram Feed with a custom background, "
870
+ "padding, and a rounded border. It also includes the user or tag profile info "
871
+ "in the header of the box."
872
+ msgstr ""
873
+
874
+ #: includes/view/backend/pages/premium.php:27
875
+ msgid "Load more button"
876
+ msgstr ""
877
+
878
+ #: includes/view/backend/pages/premium.php:29
879
+ msgid ""
880
+ "Allow your users to load more images in the gallery providing an improved "
881
+ "user experience."
882
+ msgstr ""
883
+
884
+ #: includes/view/backend/pages/premium.php:44
885
+ msgid "More content"
886
+ msgstr ""
887
+
888
+ #: includes/view/backend/pages/premium.php:46
889
+ msgid "Include some extra content for the images and the images popup."
890
+ msgstr ""
891
+
892
+ #: includes/view/backend/pages/premium.php:51
893
+ msgid "Popup content"
894
+ msgstr ""
895
+
896
+ #: includes/view/backend/pages/premium.php:53
897
+ msgid ""
898
+ "Our premium version allows you to include some extra content in the image "
899
+ "popup, like the user profile, the image caption, and the number of comments "
900
+ "and likes."
901
+ msgstr ""
902
+
903
+ #: includes/view/backend/pages/premium.php:61
904
+ msgid "Layouts"
905
+ msgstr ""
906
+
907
+ #: includes/view/backend/pages/premium.php:63
908
+ msgid ""
909
+ "Unlock the power of the masonry and highlight layouts that allows you to "
910
+ "display the Instagram Feeds in a grid that supports items of variable size."
911
+ msgstr ""
912
+
913
+ #: includes/view/backend/pages/premium.php:68
914
+ msgid "Masonry layout"
915
+ msgstr ""
916
+
917
+ #: includes/view/backend/pages/premium.php:70
918
+ msgid ""
919
+ "The masonry layout is a grid that displays the images with a fixed with and "
920
+ "variable height size."
921
+ msgstr ""
922
+
923
+ #: includes/view/backend/pages/premium.php:74
924
+ msgid "Highlight layout"
925
+ msgstr ""
926
+
927
+ #: includes/view/backend/pages/premium.php:76
928
+ msgid ""
929
+ "The highlight layout is a masonry grid that allows you to stand out some "
930
+ "images with two or three columns width size."
931
+ msgstr ""
932
+
933
+ #: includes/view/backend/pages/settings.php:10
934
+ msgid "Feeds cache"
935
+ msgstr ""
936
+
937
+ #: includes/view/backend/pages/settings.php:14
938
+ msgid "Reset your Instagram feeds cache every x hours."
939
+ msgstr ""
940
+
941
+ #: includes/view/backend/pages/settings.php:19
942
+ msgid "Remove data"
943
+ msgstr ""
944
+
945
+ #: includes/view/backend/pages/settings.php:23
946
+ msgid "Check this box to remove all data related to this plugin on uninstall."
947
+ msgstr ""
948
+
949
+ #: includes/view/backend/pages/settings.php:28
950
+ msgid "Replace loader"
951
+ msgstr ""
952
+
953
+ #: includes/view/backend/pages/settings.php:43
954
+ msgid "Reset Spinner"
955
+ msgstr ""
956
+
957
+ #: includes/view/backend/pages/settings.php:46
958
+ msgid "Select an image from media library to replace the default loader icon."
959
+ msgstr ""
960
+
961
+ #: includes/view/backend/pages/welcome.php:7
962
+ msgid ""
963
+ "Hello we're QuadLayers! We've recently acquired this plugin. We will do our "
964
+ "absolute best to support it and fix all the issues."
965
+ msgstr ""
966
+
967
+ #: includes/view/backend/pages/welcome.php:14
968
+ #, php-format
969
+ msgid ""
970
+ "Thank you for choosing our %s plugin for WordPress! Here you can see our "
971
+ "demo and test the features we offer in the premium version."
972
+ msgstr ""
973
+
974
+ #: includes/view/backend/pages/welcome.php:19
975
+ msgid "Support"
976
+ msgstr ""
977
+
978
+ #: includes/view/backend/pages/welcome.php:21
979
+ #, php-format
980
+ msgid ""
981
+ "If you have any doubt or you find any issue don't hesitate to contact us "
982
+ "through our ticket system or join our community to meet other %s users."
983
+ msgstr ""
984
+
985
+ #: includes/view/backend/pages/welcome.php:23
986
+ msgid "Submit ticket"
987
+ msgstr ""
988
+
989
+ #: includes/view/backend/pages/welcome.php:26
990
+ msgid "Community"
991
+ msgstr ""
992
+
993
+ #: includes/view/backend/pages/welcome.php:28
994
+ #, php-format
995
+ msgid ""
996
+ "If you want to get in touch with other %s users or be aware of our "
997
+ "promotional discounts join our community now."
998
+ msgstr ""
999
+
1000
+ #: includes/view/backend/pages/welcome.php:30
1001
+ msgid "Join our community"
1002
+ msgstr ""
1003
+
1004
+ #: includes/widget.php:8
1005
+ msgid "Displays your Instagram gallery"
1006
+ msgstr ""
1007
+
1008
+ #: includes/widget.php:45
1009
+ msgid "Title"
1010
+ msgstr ""
1011
+
1012
+ #: includes/widget.php:49
1013
+ msgid "Select your Instagram gallery"
1014
+ msgstr ""
1015
+
1016
+ #: includes/widget.php:62
1017
+ #, php-format
1018
+ msgid "Feed %s"
1019
+ msgstr ""
1020
+
1021
+ #: includes/widget.php:70
1022
+ msgid ""
1023
+ "Please add new gallery in plugin admin panel, then come back and select your "
1024
+ "gallery to here."
1025
+ msgstr ""
1026
+
1027
+ #: includes/widget.php:74
1028
+ msgid "Add New Gallery"
1029
+ msgstr ""
1030
+
1031
+ #: templates/alert.php:2
1032
+ msgid "Unable to get results"
1033
+ msgstr ""
1034
+
1035
+ #. Plugin Name of the plugin/theme
1036
+ msgid "Social Feed Gallery"
1037
+ msgstr ""
1038
+
1039
+ #. Plugin URI of the plugin/theme
1040
+ msgid "https://quadlayers.com/portfolio/instagram-feed-gallery/"
1041
+ msgstr ""
1042
+
1043
+ #. Description of the plugin/theme
1044
+ msgid ""
1045
+ "Display beautiful and responsive galleries on your website from your "
1046
+ "Instagram feed account."
1047
+ msgstr ""
1048
+
1049
+ #. Author URI of the plugin/theme
1050
+ msgid "https://quadlayers.com"
1051
+ msgstr ""
readme.txt CHANGED
@@ -1,18 +1,18 @@
1
- === Social Feed Gallery ===
2
- Contributors: quadlayers, instagram
3
  Donate link: https://quadlayers.com/portfolio/instagram-gallery/
4
- Tags: instagram, instagram feed, instagram gallery, instagram photos, instagram widget, instagram pictures, gallery widget, pictures, carousel slider, image gallery, image slider
5
  Requires at least: 3.4
6
- Tested up to: 5.4.0
7
- Stable tag: 2.7.2
8
- License: GPLv2 or later
9
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
- Instagram Feed Gallery helps to display your Instagram feed pictures in your website.
12
 
13
  == Presentation ==
14
 
15
- [Premium](https://quadlayers.com/portfolio/wordpress-instagram-feed/) | [Demo](https://quadlayers.com/instagram-feed/) | [Documentation](https://quadlayers.com/documentation/instagram-feed-gallery/) | [Community](https://www.facebook.com/groups/quadlayers/)
16
 
17
  We are glad to present a plugin that helps to integrate <b>Instagram feed <b> from @ids or #tags inside your Wordpress site. Giving the possibility to <b>customize the layout of the display <b>, choosing from gallery or carousel for free version. Adding masonry or highlight alternatives for premium version.
18
  While allowing to <b>set the appearance of display's boxes, images & backgrounds, masks and buttons<b>.
@@ -105,20 +105,20 @@ There may be some other plugins(like: fancybox, elementor) which also uses image
105
 
106
  == Changelog ==
107
 
108
- = 2.7.2 =
109
- * Fix. instagram carousel sliders
110
 
111
- = 2.7.1 =
112
- * Fix. instagram premium compatibility
113
 
114
  = 2.7.0 =
115
- * Fix. instagram refactoring
116
 
117
  = 2.6.6 =
118
- * Fix. instagram photo enhance
119
 
120
  = 2.6.5 =
121
- * Fix. instagram gallery actions
122
 
123
  = 2.6.4 =
124
  * Fix. small CSS fixes
1
+ === Social Feed Gallery ===
2
+ Contributors: quadlayers
3
  Donate link: https://quadlayers.com/portfolio/instagram-gallery/
4
+ Tags: Instagram, Instagram feed, Instagram gallery, Instagram photos, Instagram widget, Instagram pictures
5
  Requires at least: 3.4
6
+ Tested up to: 5.4.2
7
+ Stable tag: 2.8.3
8
+ License: GPLv3
9
+ License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
11
+ Formerly "Instagram Feed Gallery". The easiest way to display your Instagram feed pictures in your website.
12
 
13
  == Presentation ==
14
 
15
+ [Premium](https://quadlayers.com/portfolio/instagram-feed-gallery/) | [Demo](https://quadlayers.com/instagram-feed/) | [Documentation](https://quadlayers.com/documentation/instagram-feed-gallery/) | [Community](https://www.facebook.com/groups/quadlayers/)
16
 
17
  We are glad to present a plugin that helps to integrate <b>Instagram feed <b> from @ids or #tags inside your Wordpress site. Giving the possibility to <b>customize the layout of the display <b>, choosing from gallery or carousel for free version. Adding masonry or highlight alternatives for premium version.
18
  While allowing to <b>set the appearance of display's boxes, images & backgrounds, masks and buttons<b>.
105
 
106
  == Changelog ==
107
 
108
+ = 2.8.1 =
109
+ * Fix. small CSS fixes
110
 
111
+ = 2.8.0 =
112
+ * Fix. new Instagram API compatibility
113
 
114
  = 2.7.0 =
115
+ * Fix. Instagram refactoring
116
 
117
  = 2.6.6 =
118
+ * Fix. Instagram photo enhance
119
 
120
  = 2.6.5 =
121
+ * Fix. Instagram gallery actions
122
 
123
  = 2.6.4 =
124
  * Fix. small CSS fixes
templates/item/item-image-mask.php CHANGED
@@ -1,15 +1,15 @@
1
  <div class="insta-gallery-image-mask">
2
  </div>
3
  <div class="insta-gallery-image-mask-content">
4
- <?php if ($feed['mask']['likes']): ?>
5
  <span class="ig-likes-likes">
6
- <i class="qligg-icon-heart-o"></i>
7
  <?php echo esc_attr($item['likes']); ?>
8
  </span>
9
  <?php endif; ?>
10
- <?php if ($feed['mask']['comments']): ?>
11
  <span class="ig-likes-comments">
12
- <i class="qligg-icon-comment-o"></i>
13
  <?php echo esc_attr($item['comments']); ?>
14
  </span>
15
  <?php endif; ?>
1
  <div class="insta-gallery-image-mask">
2
  </div>
3
  <div class="insta-gallery-image-mask-content">
4
+ <?php if ($feed['mask']['likes'] && $item['likes'] !== false): ?>
5
  <span class="ig-likes-likes">
6
+ <i class="qligg-icon-heart"></i>
7
  <?php echo esc_attr($item['likes']); ?>
8
  </span>
9
  <?php endif; ?>
10
+ <?php if ($feed['mask']['comments'] && $item['comments'] !== false): ?>
11
  <span class="ig-likes-comments">
12
+ <i class="qligg-icon-comment"></i>
13
  <?php echo esc_attr($item['comments']); ?>
14
  </span>
15
  <?php endif; ?>
templates/item/item.php CHANGED
@@ -1,7 +1,4 @@
1
- <div id="insta-gallery-item-<?php echo esc_attr($item['id']); ?>"
2
- class="insta-gallery-item insta-gallery-cols-<?php echo esc_attr($feed['columns']); ?>
3
- <?php echo ($feed['layout'] == 'carousel') ? ' swiper-slide nofancybox' : '' ?>"
4
- data-item="<?php echo htmlentities(json_encode($item), ENT_QUOTES, 'UTF-8'); ?>" data-elementor-open-lightbox="no">
5
  <div class="insta-gallery-item-wrap">
6
  <?php include($this->template_path('item/item-image.php')); ?>
7
  </div>
1
+ <div id="insta-gallery-item-<?php echo esc_attr($item['id']); ?>" class="insta-gallery-item insta-gallery-cols-<?php echo esc_attr($feed['columns']); ?> <?php echo ($feed['layout'] == 'carousel') ? ' swiper-slide nofancybox' : '' ?>" data-item="<?php echo htmlentities(json_encode($item), ENT_QUOTES, 'UTF-8'); ?>" data-elementor-open-lightbox="no">
 
 
 
2
  <div class="insta-gallery-item-wrap">
3
  <?php include($this->template_path('item/item-image.php')); ?>
4
  </div>