Instagram Gallery - Version 2.9.1

Version Description

  • Fix. profile avatar
Download this release

Release Info

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

Code changes from version 2.8.3 to 2.9.1

assets/backend/css/qligg-admin.css CHANGED
@@ -10,7 +10,7 @@
10
  #qligg_feeds_table td,
11
  #qligg_account_table th,
12
  #qligg_feeds_table th {
13
- padding: 1em!important;
14
  vertical-align: top;
15
  line-height: 1.75em;
16
  width: auto;
@@ -115,7 +115,7 @@
115
  }
116
  #qligg_modal .panel div.form-field > .select2-container:nth-of-type(1),
117
  #qligg_modal .panel p.form-field > .select2-container:nth-of-type(1) {
118
- width: 80px!important;
119
  }
120
  #qligg_modal .panel div.form-field > .select2-container:nth-of-type(2),
121
  #qligg_modal .panel p.form-field > .select2-container:nth-of-type(2) {
@@ -136,7 +136,7 @@
136
  #qligg_modal .panel ul.list-images {
137
  display: flex;
138
  padding: 0;
139
- margin: 0;
140
  }
141
  #qligg_modal .panel ul.list-images li {
142
  display: inline-block;
@@ -228,10 +228,10 @@
228
  /*}*/
229
  }
230
  #qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-media-view-all {
231
- width: 100% ;
232
  }
233
  #qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-media-view {
234
- width: 100% ;
235
  }
236
  #qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-details {
237
  overflow: hidden;
@@ -244,6 +244,7 @@
244
  }
245
  #qligg_modal.qligg-modal-feed .disabled-feature {
246
  position: relative;
 
247
  }
248
  #qligg_modal.qligg-modal-feed .disabled-feature:before {
249
  content: '';
@@ -307,7 +308,7 @@
307
  display: block;
308
  box-shadow: none;
309
  text-decoration: none;
310
- line-height: 20px!important;
311
  border-bottom: 1px solid #eee;
312
  }
313
  #qligg_modal.qligg-modal-feed ul.qligg-tabs li a span {
10
  #qligg_feeds_table td,
11
  #qligg_account_table th,
12
  #qligg_feeds_table th {
13
+ padding: 1em !important;
14
  vertical-align: top;
15
  line-height: 1.75em;
16
  width: auto;
115
  }
116
  #qligg_modal .panel div.form-field > .select2-container:nth-of-type(1),
117
  #qligg_modal .panel p.form-field > .select2-container:nth-of-type(1) {
118
+ width: 80px !important;
119
  }
120
  #qligg_modal .panel div.form-field > .select2-container:nth-of-type(2),
121
  #qligg_modal .panel p.form-field > .select2-container:nth-of-type(2) {
136
  #qligg_modal .panel ul.list-images {
137
  display: flex;
138
  padding: 0;
139
+ margin: 1em 0;
140
  }
141
  #qligg_modal .panel ul.list-images li {
142
  display: inline-block;
228
  /*}*/
229
  }
230
  #qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-media-view-all {
231
+ width: 100%;
232
  }
233
  #qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-media-view {
234
+ width: 100%;
235
  }
236
  #qligg_modal.qligg-modal-feed .edit-attachment-frame .attachment-details {
237
  overflow: hidden;
244
  }
245
  #qligg_modal.qligg-modal-feed .disabled-feature {
246
  position: relative;
247
+ pointer-events: none;
248
  }
249
  #qligg_modal.qligg-modal-feed .disabled-feature:before {
250
  content: '';
308
  display: block;
309
  box-shadow: none;
310
  text-decoration: none;
311
+ line-height: 20px !important;
312
  border-bottom: 1px solid #eee;
313
  }
314
  #qligg_modal.qligg-modal-feed ul.qligg-tabs li a span {
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 +1 @@
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)}
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:1em 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;pointer-events:none}#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/js/qligg-admin-account.js CHANGED
@@ -2,7 +2,7 @@
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;
@@ -11,10 +11,10 @@
11
  _.mixin({
12
  escapeHtml: function (attribute) {
13
  return attribute.replace('&', /&/g)
14
- .replace(/>/g, ">")
15
- .replace(/&lt;/g, "<")
16
- .replace(/&quot;/g, '"')
17
- .replace(/&#039;/g, "'");
18
  },
19
  getFormData: function ($form) {
20
  return $form.serializeJSON();
@@ -53,7 +53,7 @@
53
  updateModel: function (e) {
54
  e.preventDefault();
55
  var modal = this,
56
- $form = modal.$el.find('form');
57
  var model = _.getFormData($form);
58
  this.model.set(model);
59
  },
@@ -77,9 +77,9 @@
77
  submit: function (e) {
78
  e.preventDefault();
79
  var modal = this,
80
- $modal = modal.$el.find('#qligg_modal'),
81
- $spinner = $modal.find('.settings-save-status .spinner'),
82
- $saved = $modal.find('.settings-save-status .saved');
83
  $.ajax({
84
  url: ajaxurl,
85
  data: {
@@ -100,7 +100,7 @@
100
  alert('Error!');
101
  },
102
  success: function (response) {
103
- console.log(response);
104
  if (response.success) {
105
  $modal.addClass('reload');
106
  $saved.addClass('is-active');
@@ -153,8 +153,8 @@
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,
@@ -197,19 +197,21 @@
197
 
198
  // Generate token
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
 
@@ -218,20 +220,11 @@
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) {
@@ -246,7 +239,7 @@
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) {
@@ -254,5 +247,5 @@
254
  }
255
  });
256
 
257
- });
258
  })(jQuery);
2
 
3
  function getUrlVars() {
4
  var vars = {};
5
+ var parts = window.location.href.slice(0, -2).replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {
6
  vars[key] = value;
7
  });
8
  return vars;
11
  _.mixin({
12
  escapeHtml: function (attribute) {
13
  return attribute.replace('&amp;', /&/g)
14
+ .replace(/&gt;/g, ">")
15
+ .replace(/&lt;/g, "<")
16
+ .replace(/&quot;/g, '"')
17
+ .replace(/&#039;/g, "'");
18
  },
19
  getFormData: function ($form) {
20
  return $form.serializeJSON();
53
  updateModel: function (e) {
54
  e.preventDefault();
55
  var modal = this,
56
+ $form = modal.$el.find('form');
57
  var model = _.getFormData($form);
58
  this.model.set(model);
59
  },
77
  submit: function (e) {
78
  e.preventDefault();
79
  var modal = this,
80
+ $modal = modal.$el.find('#qligg_modal'),
81
+ $spinner = $modal.find('.settings-save-status .spinner'),
82
+ $saved = $modal.find('.settings-save-status .saved');
83
  $.ajax({
84
  url: ajaxurl,
85
  data: {
100
  alert('Error!');
101
  },
102
  success: function (response) {
103
+ //console.log(response);
104
  if (response.success) {
105
  $modal.addClass('reload');
106
  $saved.addClass('is-active');
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,
197
 
198
  // Generate token
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
+ console.log('urlVars', urlVars);
213
+
214
+ if (!urlVars.id || !urlVars.access_token || !urlVars.username) {
215
  return;
216
  }
217
 
220
  type: 'post',
221
  data: {
222
  action: 'qligg_add_account',
223
+ account_data: window.location.href,
 
 
 
 
 
 
 
 
 
224
  nonce: qligg_account.nonce.qligg_add_account
225
  },
226
  beforeSend: function () {
227
+ $button.css({ 'opacity': '.5', 'pointer-events': 'none' });
228
  $spinner.addClass('is-active');
229
  },
230
  success: function (response) {
239
  complete: function () {
240
  $button.removeAttr('style');
241
  $spinner.removeClass('is-active');
242
+ // window.location.hash = '';
243
  window.location.href.substring(0, window.location.href.indexOf('?'));
244
  },
245
  error: function (jqXHR, textStatus) {
247
  }
248
  });
249
 
250
+ });*/
251
  })(jQuery);
assets/backend/js/qligg-admin-account.min.js CHANGED
@@ -1 +1 @@
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);
1
+ !function($){function getUrlVars(){var vars={},parts=window.location.href.slice(0,-2).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){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)}))}(jQuery);
assets/backend/js/qligg-admin-feed.js CHANGED
@@ -148,14 +148,20 @@
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 () {
@@ -198,8 +204,6 @@
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) {
@@ -214,8 +218,6 @@
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
  });
@@ -279,11 +281,11 @@
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);
148
  open: function (e) {
149
  var modal = this;
150
  $('body').addClass('modal-open').append(this.$el);
151
+
152
  if (modal.model.attributes.id == undefined) {
153
+
154
+ modal.model.set({
155
+ username: Object.keys(qligg_feed.accounts)[0]
156
+ });
157
+
158
  _.delay(function () {
159
  unblock();
 
160
  }, 100);
161
 
162
  return;
163
  }
164
+
165
  this.load();
166
  },
167
  load: function () {
204
  feed_count = parseInt($('#qligg_feeds_table tr[data-feed_id]').length),
205
  feed_position = parseInt($('#qligg_feeds_table tr[data-feed_id=' + modal.model.get('id') + ']').data('feed_position'));
206
 
 
 
207
  count++;
208
 
209
  if (timer) {
218
  feed_position = Math.max(feed_position - count, 1);
219
  }
220
 
 
 
221
  modal.model.set({
222
  id: parseInt($('#qligg_feeds_table tr[data-feed_position=' + feed_position + ']').data('feed_id'))
223
  });
281
  this.renderTabs(e);
282
  this.enableSave(e);
283
  },
284
+ // setUsername: function (e) {
285
+ // var modal = this,
286
+ // $select = modal.$el.find('#qligg_modal').find('form').find('select[name=username]');
287
+ // $select.trigger('change');
288
+ // },
289
  // change: function (e) {
290
  // e.preventDefault();
291
  // this.updateModel(e);
assets/backend/js/qligg-admin-feed.min.js CHANGED
@@ -1 +1 @@
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);
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;if($("body").addClass("modal-open").append(this.$el),null==this.model.attributes.id)return this.model.set({username:Object.keys(qligg_feed.accounts)[0]}),void _.delay((function(){unblock()}),100);this.load()},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"));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),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)}}),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/frontend/css/qligg.css CHANGED
@@ -298,8 +298,11 @@
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 {
@@ -579,9 +582,9 @@
579
  margin: 0;
580
  }
581
  .insta-gallery-alert li {
582
- list-style: none outside!important;
583
- padding-left: 0!important;
584
- margin-left: 0!important;
585
  }
586
  .qligg-mfp-wrap .mfp-arrow {
587
  font-family: 'qligg' !important;
@@ -608,7 +611,7 @@
608
  content: "\e908";
609
  }
610
  .qligg-mfp-wrap .mfp-container {
611
- cursor: pointer!important;
612
  }
613
  .qligg-mfp-wrap .mfp-container .mfp-close {
614
  position: fixed;
@@ -620,7 +623,7 @@
620
  margin: 0;
621
  height: auto;
622
  line-height: 1;
623
- cursor: pointer!important;
624
  font-size: 24px;
625
  content: '×';
626
  }
@@ -632,8 +635,8 @@
632
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure,
633
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure > img,
634
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure > video {
635
- max-height: 70vh!important;
636
- max-width: 80vw!important;
637
  }
638
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-img {
639
  padding: 0;
@@ -641,7 +644,7 @@
641
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure {
642
  position: relative;
643
  padding: 0;
644
- overflow: hidden!important;
645
  border-radius: 3px;
646
  }
647
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure:after {
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 .insta-gallery-card-icons {
305
+ margin: 0 0 0 auto;
306
  }
307
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info .ig-card-comments,
308
  .insta-gallery-feed .insta-gallery-list .insta-gallery-item .insta-gallery-image-card .insta-gallery-image-card-info .ig-card-likes {
582
  margin: 0;
583
  }
584
  .insta-gallery-alert li {
585
+ list-style: none outside !important;
586
+ padding-left: 0 !important;
587
+ margin-left: 0 !important;
588
  }
589
  .qligg-mfp-wrap .mfp-arrow {
590
  font-family: 'qligg' !important;
611
  content: "\e908";
612
  }
613
  .qligg-mfp-wrap .mfp-container {
614
+ cursor: pointer !important;
615
  }
616
  .qligg-mfp-wrap .mfp-container .mfp-close {
617
  position: fixed;
623
  margin: 0;
624
  height: auto;
625
  line-height: 1;
626
+ cursor: pointer !important;
627
  font-size: 24px;
628
  content: '×';
629
  }
635
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure,
636
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure > img,
637
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure > video {
638
+ max-height: 70vh !important;
639
+ max-width: 80vw !important;
640
  }
641
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-img {
642
  padding: 0;
644
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure {
645
  position: relative;
646
  padding: 0;
647
+ overflow: hidden !important;
648
  border-radius: 3px;
649
  }
650
  .qligg-mfp-wrap .mfp-container .mfp-content .mfp-figure:after {
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":"AAAA,gBAAgB;EACZ;IACI,gBAAgB,cAAhB;;;AAIR,mBAAmB;EACf;IACI,mBAAmB,cAAnB;;;AAIR,WAAW;EACP;IACI,mBAAmB,cAAnB;IACA,WAAmB,cAAnB;;;AAIR;EACI,aAAa,OAAb;EACA,k0LAAA;EACA,m0LAAm0L,OAAO,ooLAAooL,OAAO,muLAAmuL,OAAO,mqbAAmqb,OAAO,MAAz29B;EACA,mBAAA;EACA,kBAAA;;AAGJ;AACA;;EAEI,aAAyB,OAAzB;EACA,WAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;EACA,oBAAA;EACA,cAAA;;EAEA,mCAAA;EACA,kCAAA;;AAGJ,iBAAiB;EACb,SAAS,OAAT;;AAGJ,mBAAmB;EACf,SAAS,OAAT;;AAGJ,mBAAmB;EACf,SAAS,OAAT;;AAGJ,kBAAkB;EACd,SAAS,OAAT;;AAGJ,mBAAmB;EACf,SAAS,OAAT;;AAGJ,mBAAmB;EACf,SAAS,OAAT;;AAGJ,iBAAiB;EACb,SAAS,OAAT;;AAGJ,qBAAqB;EACjB,SAAS,OAAT;;AAGJ,gBAAgB;EACZ,SAAS,OAAT;;AAGJ,kBAAkB;EACd,SAAS,OAAT;;AAGJ,gBAAgB;EACZ,SAAS,OAAT;;AAGJ,kBAAkB;EACd,SAAS,OAAT;;AAGJ,mBAAmB;EACf,SAAS,OAAT;;AAGJ,qBAAqB;EACjB,SAAS,OAAT;;AAGJ,uBAAuB;EACnB,SAAS,OAAT;;AAGJ;AA0sBA;EAzsBI,gDAAgD,gDAAhD;EACA,eAAA;EACA,cAAA;;AAGJ,mBAKI;AALJ,mBAMI;AANJ,mBAOI;EACI,UAAA;;AAGJ,mBAAC,OAEG,oBAEI;EACI,wBAAA;EACA,UAAA;;AAEA,mBARX,OAEG,oBAEI,oBAIK,gBACG;EACI,oBAAA;EACA,UAAA;;AAXpB,mBAAC,OAiBG;EACI,4BAAA;EACA,UAAA;;AA9BZ,mBA+CI;EACI,kBAAA;EACA,YAAA;EACA,WAAA;EACA,uBAAA;EACA,qBAAA;EACA,4BAAA;EACA,4BAAA;EACA,64BAAA;;AAQA,mBAFJ,oBAEK;EACG,SAAS,EAAT;EACA,cAAA;EACA,WAAA;;AAlEZ,mBA6DI,oBAQI;EACI,gBAAA;EACA,cAAA;EACA,cAAA;;AAEA,mBAbR,oBAQI,oBAKK;EACG,WAAA;;AAGJ,mBAjBR,oBAQI,oBASK;EACG,UAAA;;AAEA,mBApBZ,oBAQI,oBASK,qBAGI;EACG,WAAA;;AAIR,mBAzBR,oBAQI,oBAiBK;EACG,cAAA;;AAEA,mBA5BZ,oBAQI,oBAiBK,qBAGI;EACG,cAAA;;AAIR,mBAjCR,oBAQI,oBAyBK;EACG,UAAA;;AAEA,mBApCZ,oBAQI,oBAyBK,qBAGI;EACG,UAAA;;AAIR,mBAzCR,oBAQI,oBAiCK;EACG,UAAA;;AAEA,mBA5CZ,oBAQI,oBAiCK,qBAGI;EACG,UAAA;;AAIR,mBAjDR,oBAQI,oBAyCK;EACG,cAAA;;AAEA,mBApDZ,oBAQI,oBAyCK,qBAGI;EACG,cAAA;;AAKR,mBA1DR,oBAQI,oBAkDK;EACG,cAAA;;AAEA,mBA7DZ,oBAQI,oBAkDK,qBAGI;EACG,cAAA;;AAKR,mBAnER,oBAQI,oBA2DK;EACG,YAAA;;AAEA,mBAtEZ,oBAQI,oBA2DK,qBAGI;EACG,WAAA;;AAKR,mBA5ER,oBAQI,oBAoEK;EACG,cAAA;;AAEA,mBA/EZ,oBAQI,oBAoEK,qBAGI;EACG,cAAA;;AAKR,mBArFR,oBAQI,oBA6EK;EACG,UAAA;;AAEA,mBAxFZ,oBAQI,oBA6EK,sBAGI;EACG,UAAA;;AAIR,mBA7FR,oBAQI,oBAqFK;EACG,YAAA;;AAEA,mBAhGZ,oBAQI,oBAqFK,sBAGI;EACG,aAAA;;AAIR,mBArGR,oBAQI,oBA6FK;EACG,YAAA;;AAEA,mBAxGZ,oBAQI,oBA6FK,sBAGI;EACG,aAAA;;AAIR,mBA7GR,oBAQI,oBAqGK;EACG,aAAA;;AAEA,mBAhHZ,oBAQI,oBAqGK,sBAGI;EACG,cAAA;;AAIR,mBArHR,oBAQI,oBA6GK;EACG,aAAA;;AAEA,mBAxHZ,oBAQI,oBA6GK,sBAGI;EACG,cAAA;;AAIR,mBA7HR,oBAQI,oBAqHK;EACG,aAAA;;AAEA,mBAhIZ,oBAQI,oBAqHK,sBAGI;EACG,cAAA;;AAIR,mBArIR,oBAQI,oBA6HK;EACG,YAAA;;AAEA,mBAxIZ,oBAQI,oBA6HK,sBAGI;EACG,aAAA;;AAIR,mBA7IR,oBAQI,oBAqIK;EACG,aAAA;;AAEA,mBAhJZ,oBAQI,oBAqIK,sBAGI;EACG,aAAA;;AAIR,mBArJR,oBAQI,oBA6IK;EACG,aAAA;;AAGJ,mBAzJR,oBAQI,oBAiJK;EACG,aAAA;;AAEA,mBA5JZ,oBAQI,oBAiJK,sBAGI;EACG,aAAA;;AAKR,mBAlKR,oBAQI,oBA0JK;EACG,SAAA;;AAEA,mBArKZ,oBAQI,oBA0JK,sBAGI;EACG,UAAA;;AAnOpB,mBA6DI,oBAQI,oBAkKI;EACI,WAAA;EAEA,gBAAA;;AA1OhB,mBA6DI,oBAQI,oBAwKI;AA7OZ,mBA6DI,oBAQI,oBAyKI;EACI,oBAAA;;AA/OhB,mBA6DI,oBAQI,oBA6KI;EACI,kBAAA;EACA,UAAA;EACA,eAAA;EACA,WAAA;EACA,aAAA;EACA,MAAA;EACA,YAAA;EACA,QAAA;EACA,wCAAA;EACA,cAAA;EACA,qBAAA;;AAEA,mBAlMZ,oBAQI,oBA6KI,oBAaK;EACG,QAAA;EACA,SAAA;EACA,4BAAA;EACA,eAAA;EACA,WAAA;EACA,YAAA;;AAGJ,mBA3MZ,oBAQI,oBA6KI,oBAsBK;EACG,SAAA;EACA,SAAA;EACA,UAAA;EACA,oBAAA;;AA5QpB,mBA6DI,oBAQI,oBA2MI;EACI,sBAAA;EAEA,gBAAA;EACA,cAAA;;AApRhB,mBA6DI,oBAQI,oBA2MI,0BAOI;AAvRhB,mBA6DI,oBAQI,oBA2MI,0BAQI;EACI,aAAA;EACA,WAAA;EACA,SAAA;EACA,cAAA;;AA5RpB,mBA6DI,oBAQI,oBA2MI,0BAeI,cAGI;AAlSpB,mBA6DI,oBAQI,oBA2MI,0BAgBI,kBAEI;AAlSpB,mBA6DI,oBAQI,oBA2MI,0BAiBI,eACI;EACI,iBAAA;;AAnSxB,mBA6DI,oBAQI,oBA2MI,0BAuBI;EACI,4CAAA;EACA,gBAAA;;;AAzSpB,mBA6DI,oBAQI,oBA2MI,0BAuBI,+BAII;EACI,qBAAA;EACA,yBAAA;EACA,YAAA;;;;AA9SxB,mBA6DI,oBAQI,oBA2MI,0BAuBI,+BAYI;EACI,kBAAA;;AApTxB,mBA6DI,oBAQI,oBA2MI,0BAuBI,+BAiBI;AAxTpB,mBA6DI,oBAQI,oBA2MI,0BAuBI,+BAkBI;EACI,qBAAA;EACA,iBAAA;;;AA3TxB,mBA6DI,oBAQI,oBA4PI;EACI,cAAA;EACA,kBAAA;EACA,kBAAA;EACA,sBAAA;EACA,eAAA;;AAtUhB,mBA6DI,oBAQI,oBA4PI,0BAOI;EACI,WAAA;EACA,YAAA;EACA,gBAAA;EACA,sBAAA;;AA5UpB,mBA6DI,oBAQI,oBA4PI,0BAcI;EACI,kBAAA;EACA,SAAY,EAAZ;EACA,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,6BAAA;EACA,UAAA;EACA,mCAAA;EACA,WAAA;EACA,YAAA;;AA3VpB,mBA6DI,oBAQI,oBA4PI,0BA6BI;EACI,kBAAA;EACA,QAAA;EACA,SAAA;EACA,QAAA;EACA,mBAAA;EACA,UAAA;EACA,WAAA;EACA,WAAA;EACA,yBAAA;EACA,UAAA;EACA,iBAAA;EACA,eAAA;EACA,kBAAA;;AA3WpB,mBA6DI,oBAQI,oBA4PI,0BA6BI,kCAeI;EACI,cAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,iBAAA;;AAlXxB,mBA6DI,oBAQI,oBA4PI,0BA6BI,kCAeI,OAOI;EACI,eAAA;EACA,iBAAA;EACA,iBAAA;;AAQR,mBAlUhB,oBAQI,oBAwTK,MACG,oBACK;EACG,YAAA;EACA,mBAAA;EACA,WAAA;;AAEA,mBAvUpB,oBAQI,oBAwTK,MACG,oBACK,qBAKI;EACG,UAAA;;AAIR,mBA5UhB,oBAQI,oBAwTK,MACG,oBAWK;AACD,mBA7UhB,oBAQI,oBAwTK,MACG,oBAYK;EACG,UAAA;EACA,oBAAA;;AAfZ,mBAhUR,oBAQI,oBAwTK,MAmBG,0BAEI;EACI,UAAA;;AAtBZ,mBAhUR,oBAQI,oBAwTK,MAmBG,0BAMI;EACI,UAAA;EACA,6BAAA;;AAxZxB,mBAmaI;EACI,WAAA;EACA,cAAA;;AAEA,mBAJJ;AAnaJ,mBAmaI,uBAKI;AAxaR,mBAmaI,uBAMI;EACI,YAAA;EACA,aAAA;EACA,mBAAA;;AA5aZ,mBAmaI,uBAYI;EACI,YAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,mBAAA;;AApbZ,mBAmaI,uBAoBI;EACI,kBAAA;;AAxbZ,mBAmaI,uBAwBI;AA3bR,mBAmaI,uBAyBI;AA5bR,mBAmaI,uBA0BI;EACI,SAAA;EACA,UAAA;EACA,qBAAA;EACA,gBAAA;EACA,eAAA;EACA,cAAA;EACA,qBAAA;EACA,sBAAA;EACA,iBAAA;;AAtcZ,mBAmaI,uBAsCI;EACI,cAAA;EACA,gBAAA;EACA,iBAAA;;AA5cZ,mBAmaI,uBA4CI;EACI,cAAA;;AAEA,mBA/CR,uBA4CI,QAGK;EACG,cAAA;;AAndhB,mBAmaI,uBAoDI;EACI,iBAAA;EACA,eAAA;EACA,gBAAA;;AA1dZ,mBAkeI;EACI,kBAAA;EACA,gBAAA;;AApeR,mBAkeI,uBAII;EACI,qBAAA;EACA,aAAA;EACA,eAAA;EACA,kBAAA;EACA,oBAAA;EACA,qBAAA;EACA,kBAAA;EACA,yBAAA;EACA,WAAA;;AA/eZ,mBAkeI,uBAII,sBAWI;EACI,iBAAA;EACA,eAAA;;AAGJ,mBApBR,uBAII,sBAgBK;AACD,mBArBR,uBAII,sBAiBK;EACG,wDAAA;;AAGJ,mBAzBR,uBAII,sBAqBK;EACG,yBAAA;;AAGJ,mBA7BR,uBAII,sBAyBK;EACG,yBAAA;;AASZ,mBAAC,qBAEG,oBAEI;EACI,aAAA;EACA,uBAAA;EACA,oBAAA;EACA,sBAAA;;AARZ,mBAAC,qBAEG,oBAEI,oBAMI;EACI,aAAA;EACA,uBAAA;EACA,mBAAA;EAEA,gBAAA;EACA,WAAA;EACA,iBAAA;;AAjBhB,mBAAC,qBAEG,oBAEI,oBAMI,0BASI;EACI,gBAAA;;AApBpB,mBAAC,qBAEG,oBAEI,oBAMI,0BAaI;EACI,gBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EAEA,kBAAA;EACA,MAAA;EACA,SAAA;EACA,QAAA;EACA,OAAA;;AAUpB,mBAAC;EACG,gBAAA;;AADJ,mBAAC,2BAGG;EACI,aAAA;;AAJR,mBAAC,2BAQG;AARJ,mBAAC,2BASG;EACI,oBAAA;EACA,gBAAA;EACA,MAAA;EACA,SAAA;EACA,YAAA;EACA,SAAA;EACA,uBAAA;EACA,WAAA;EACA,aAAA;EACA,mBAAA;;AAnBR,mBAAC,2BAQG,oBAaI;AArBR,mBAAC,2BASG,oBAYI;EACI,kBAAA;EACA,cAAA;EACA,WAAA;EACA,eAAA;;AAGJ,mBA5BP,2BAQG,oBAoBK;AAAD,mBA5BP,2BASG,oBAmBK;EACG,oCAAA;;AA7BZ,mBAAC,2BAkCG;EACI,OAAA;;AAnCR,mBAAC,2BAsCG;EACI,QAAA;;AAvCR,mBAAC,2BA0CG;EACI,yBAAA;;AAQR,mBAAC,0BAEG;EACI,aAAA;EACA,eAAA;EAEA,sBAAA;EACA,gBAAA;;AAeI,mBAAsC,wBAAuB;EAA7D,mBAPX,0BAGG,oBAEI;EAEI,mBANX,0BAEG,oBAEI;IAGQ,kBAAA;;;AAGJ,mBAAqC;EAArC,mBAXX,0BAGG,oBAEI;EAMI,mBAVX,0BAEG,oBAEI;IAOQ,kBAAA;;;AAGJ,mBAAqC;EAArC,mBAfX,0BAGG,oBAEI;EAUI,mBAdX,0BAEG,oBAEI;IAWQ,cAAA;;;AAShB,mBAAC,0BAEG,oBAEI;EACI,kBAAA;;AAUhB;EACI,yBAAA;EACA,aAAA;EACA,WAAA;EACA,kBAAA;EACA,kBAAA;EACA,WAAA;EACA,cAAA;;AAEA,oBAAC;AACD,oBAAC;EACG,SAAS,GAAT;EACA,cAAA;;AAGJ,oBAAC;EACG,WAAA;;AAhBR,oBAmBI;EACI,YAAA;;AApBR,oBAuBI;EACI,UAAA;EACA,SAAA;;AAzBR,oBA4BI;EACI,mCAAA;EACA,0BAAA;EACA,yBAAA;;AAOR,eAII;EACI,aAAyB,OAAzB;EACA,WAAA;EACA,kBAAA;EACA,oBAAA;EACA,oBAAA;EACA,cAAA;EACA,mCAAA;EACA,kCAAA;EACA,eAAA;EACA,iBAAA;;AAEA,eAZJ,WAYK;EACG,aAAA;;AAGJ,eAhBJ,WAgBK;EACG,YAAA;;AAIA,eArBR,WAoBK,eACI;EACG,SAAS,OAAT;;AAKJ,eA3BR,WA0BK,gBACI;EACG,SAAS,OAAT;;AAhChB,eAqCI;EAEI,0BAAA;;AAvCR,eAqCI,eAII;EACI,eAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,mBAAA;EACA,eAAA;EACA,SAAA;EACA,YAAA;EACA,cAAA;EACA,0BAAA;EACA,eAAA;EACA,SAAa,OAAb;;AArDZ,eAqCI,eAmBI;EACI,WAAA;EACA,cAAA;EACA,cAAA;;AAII,eA1BZ,eAmBI,aAKI;AA7DZ,eAqCI,eAmBI,aAKI,YAGI;AAhEhB,eAqCI,eAmBI,aAKI,YAII;EACI,2BAAA;EACA,0BAAA;;AAnEpB,eAqCI,eAmBI,aAeI;EACI,UAAA;;AAxEhB,eAqCI,eAmBI,aAmBI;EACI,kBAAA;EACA,UAAA;EACA,2BAAA;EACA,kBAAA;;AAEA,eA5CZ,eAmBI,aAmBI,YAMK;EACG,aAAA;;AAGJ,eAhDZ,eAmBI,aAmBI,YAUK;EACG,mBAAA;;AADJ,eAhDZ,eAmBI,aAmBI,YAUK,KAGG;EACI,4BAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;;AAIR,eA3DZ,eAmBI,aAmBI,YAqBK;EACG,oBAAA;;AADJ,eA3DZ,eAmBI,aAmBI,YAqBK,MAGG;EACI,2BAAA;EACA,MAAA;EACA,SAAA;EACA,QAAA;;AAIR,eAtEZ,eAmBI,aAmBI,YAgCK,KAEG;AADJ,eAvEZ,eAmBI,aAmBI,YAiCK,MACG;EACI,YAAA;;AAIR,eA7EZ,eAmBI,aAmBI,YAuCK,IAEG;AADJ,eA9EZ,eAmBI,aAmBI,YAwCK,OACG;EACI,OAAA;EACA,QAAA;EACA,gBAAA;EACA,kBAAA;EACA,WAAA;EACA,gBAAA;EACA,iBAAA;;AAIR,eA1FZ,eAmBI,aAmBI,YAoDK;EACG,oBAAA;;AADJ,eA1FZ,eAmBI,aAmBI,YAoDK,OAGG;EACI,0BAAA;EACA,SAAA;;AAIR,eAnGZ,eAmBI,aAmBI,YA6DK;EACG,iBAAA;;AADJ,eAnGZ,eAmBI,aAmBI,YA6DK,IAGG;EACI,6BAAA;EACA,MAAA;;AA7IxB,eAqCI,eAmBI,aA0FI;EACI,SAAA;EACA,YAAA;EACA,WAAA;EACA,UAAA;EACA,sBAAA;EACA,SAAA;EACA,UAAA;EACA,gBAAA;EACA,gBAAA;;AA3JhB,eAqCI,eAmBI,aA0FI,gBAWI;EACI,eAAA;EACA,gBAAA;EACA,cAAA;EACA,UAAA;;AAjKpB,eAqCI,eAmBI,aA0FI,gBAWI,WAMI;EACI,iBAAA;EACA,cAAA;;AAEA,eAlIpB,eAmBI,aA0FI,gBAWI,WAMI,EAIK;EACG,cAAA;;AAxK5B,eAqCI,eAmBI,aA0FI,gBAWI,WAgBI;AA7KpB,eAqCI,eAmBI,aA0FI,gBAWI,WAiBI;AA9KpB,eAqCI,eAmBI,aA0FI,gBAWI,WAkBI;AA/KpB,eAqCI,eAmBI,aA0FI,gBAWI,WAmBI;EACI,cAAA;EACA,WAAA;EACA,SAAA;EACA,aAAA;;AApLxB,eAqCI,eAmBI,aA0FI,gBAWI,WA0BI;EACI,cAAA;EACA,iBAAA;EACA,mBAAA;;AA1LxB,eAqCI,eAmBI,aA0FI,gBAWI,WAgCI,WAEI;AA/LxB,eAqCI,eAmBI,aA0FI,gBAWI,WAgCI,WAGI;EACI,iBAAA;EACA,qBAAA;EACA,eAAA;EACA,gBAAA;EACA,WAAA;EACA,kBAAA;EACA,cAAA;;AAKA,eAvKxB,eAmBI,aA0FI,gBAWI,WAgCI,WAaI,UAEK;EACG,cAAA;;AA7MhC,eAqCI,eAmBI,aA0FI,gBAWI,WAqDI,UAGI;AArNxB,eAqCI,eAmBI,aA0FI,gBAWI,WAsDI,cAEI;AArNxB,eAqCI,eAmBI,aA0FI,gBAWI,WAuDI,WACI;EACI,mBAAA;EAEA,iBAAA;;AAxN5B,eAqCI,eAmBI,aA0FI,gBAWI,WAiEI;EACI,0BAAA;;AA/NxB,eAqCI,eAmBI,aA0FI,gBAWI,WAiEI,UAGI;EACI,yBAAA;EACA,eAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;;AAvO5B,eAqCI,eAmBI,aA0FI,gBAWI,WAiEI,UAYI;AA1OxB,eAqCI,eAmBI,aA0FI,gBAWI,WAiEI,UAaI;AA3OxB,eAqCI,eAmBI,aA0FI,gBAWI,WAiEI,UAcI;EACI,qBAAA;EACA,mBAAA;;AA9O5B,eAqCI,eAmBI,aA0FI,gBAWI,WAqFI;EACI,aAAA;EACA,mBAAA;EACA,6BAAA;EACA,WAAA;;AAtPxB,eAqCI,eAmBI,aA0FI,gBAWI,WAqFI,UAMI;EACI,YAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,mBAAA;;AA7P5B,eAqCI,eAmBI,aA0FI,gBAWI,WAqFI,UAcI;EACI,SAAA;EACA,UAAA;EACA,qBAAA;EACA,eAAA;;AAc5B,mBAEI,oBAAmB;AAFvB,mBAGI,oBAAmB;AAHvB,mBAII,sBAAsB,oBAAmB;AAJ7C,mBAKI,sBAAsB,oBAAmB;AAL7C,mBAMI,oBAAmB;AANvB,mBAOI,oBAAmB;AAPvB,mBAQI,sBAAsB,oBAAmB;AAR7C,mBASI,sBAAsB,oBAAmB;EACrC,aAAA;EACA,SAAS,EAAT;;AAMR,cACI;EACI,aAAA;;AAFR,cAKI,mBACI;EASI,kBAAA;EACA,WAAA;;AAPQ,cAJhB,mBACI,oBACI,0BACK,MACI;EACG,gBAAA;;AAVxB,cAoBI;EACI,aAAA;;AArBR,cAwBI;EACI,aAAA;;AAOR,cACI;EACI,aAAA;;AAFR,cAKI,mBACI;EACI,kBAAA;EACA,WAAA;;AARZ,cAYI;EACI,aAAA;;AAbR,cAgBI;EACI,aAAA;;AAIR,oBACI,mBACI;EACI,UAAA;EACA,WAAA;;AAGJ,oBANJ,mBAMK;EACG,WAAA;EACA,cAAA;EACA,SAAS,EAAT","file":"qligg.css"}
assets/frontend/css/qligg.min.css CHANGED
@@ -1 +1 @@
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,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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: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:""}
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,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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: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 .insta-gallery-card-icons{margin:0 0 0 auto}.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
@@ -254,15 +254,13 @@
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) {
254
  //media = 'this is a gallery';
255
  //} else {
256
 
 
 
257
  media = '<img src="' + item.el.data('item').images.standard + '"/>'
258
  //}
259
 
260
  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>';
261
 
262
  if (options.popup.profile) {
263
+ profile = '<div class="mfp-user"><img src="' + options.profile.profile_picture_url + '"><a href="' + options.profile.link + '" title="' + options.profile.name + '" target="_blank" rel="noopener">' + options.profile.username + '</a></div>';
264
  }
265
 
266
  if (options.popup.caption) {
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&&$(".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);
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="";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.profile_picture_url+'"><a href="'+options.profile.link+'" title="'+options.profile.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/api.php CHANGED
@@ -1,335 +1,340 @@
1
  <?php
2
 
3
  if (!defined('ABSPATH'))
4
- exit;
5
 
6
  if (!class_exists('QLIGG_API')) {
7
 
8
- class QLIGG_API {
 
9
 
10
- protected $instagram;
11
- public $message;
12
- public $instagram_url = 'https://www.instagram.com';
13
- private $api_url = 'https://api.instagram.com';
14
 
15
- public function get_create_account_link() {
 
16
 
17
- $admin_url = admin_url('admin.php?page-qligg_token');
18
- $client_id = '6e628e63145746bcb684912009514665';
19
 
20
- return "{$this->instagram_url}/oauth/authorize/?client_id={$client_id}&scope=basic&redirect_uri=https://instagram.quadlayers.com/index.php?return_uri={$admin_url}&response_type=token&state={$admin_url}&hl=en";
21
- }
22
-
23
- // API generate code generation url
24
- // ---------------------------------------------------------------------------
25
- /* public function get_access_code($client_id = null) {
26
-
27
- $args = array(
28
- 'client_id' => $client_id,
29
- 'response_type' => 'code',
30
- 'scope' => 'public_content',
31
- 'redirect_uri' => urlencode(admin_url('admin.php?page=qligg_token&igigresponse=1'))
32
- );
33
-
34
- return add_query_arg($args, "{$this->api_url}/oauth/authorize/");
35
- } */
36
-
37
- // API call to get access token using authorization code
38
- // ---------------------------------------------------------------------------
39
- public function get_access_token($client_id, $client_secret, $redirect_uri, $code) {
40
-
41
- $args = array(
42
- 'body' => array(
43
- 'client_id' => $client_id,
44
- 'client_secret' => $client_secret,
45
- 'redirect_uri' => $redirect_uri,
46
- 'code' => $code,
47
- 'grant_type' => 'authorization_code',
48
- 'scope' => 'public_content'
49
- ));
50
-
51
- $response = $this->validate_response(wp_remote_post("{$this->api_url}/oauth/access_token", $args));
52
-
53
- if (isset($response['access_token'])) {
54
- return $response['access_token'];
55
- }
56
-
57
- return false;
58
- }
59
 
60
- // API call to get user profile information using access token
61
- // ---------------------------------------------------------------------------
62
- public function get_user_profile($access_token) {
63
 
64
- $args = array(
65
- 'access_token' => $access_token
66
- );
 
 
 
67
 
68
- $url = "{$this->api_url}/v1/users/self";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
 
70
- $response = $this->remote_get($url, $args);
71
 
72
- if (empty($response)) {
73
- return false;
74
- }
75
 
76
- if (isset($response['meta']['code']) && ($response['meta']['code'] != 200) && isset($response['meta']['error_message'])) {
77
- $this->message = $response['meta']['error_message'];
78
- return false;
79
- }
80
 
81
- return isset($response['data']) ? $response['data'] : false;
82
- }
 
 
83
 
84
- // API call to check if access token is valid
85
- // ---------------------------------------------------------------------------
86
- public function validate_token($access_token) {
87
 
88
- $args = array(
89
- 'access_token' => $access_token
90
- );
91
 
92
- $url = "{$this->api_url}/v1/users/self";
93
 
94
- $response = $this->remote_get($url, $args);
 
 
95
 
96
- if (isset($response['meta']['code']) && $response['meta']['code'] == 200) {
97
- return true;
98
- }
 
99
 
100
- if (isset($response['meta']['error_message'])) {
101
- $this->message = $response['meta']['error_message'];
102
- }
103
 
104
- return false;
105
- }
 
 
106
 
107
- // API call to get user feed using access token
108
- // ---------------------------------------------------------------------------
109
-
110
- function setup_user_item($data, $next_max_id = null) {
111
-
112
- static $load = false;
113
- static $i = 1;
114
-
115
- if (!$next_max_id) {
116
- $load = true;
117
- }
118
-
119
- $instagram_items = array();
120
-
121
- if (is_array($data) && !empty($data)) {
122
-
123
- foreach ($data as $item) {
124
-
125
- if ($load) {
126
-
127
- preg_match_all("/#(\\w+)/", @$item['caption']['text'], $hashtags);
128
-
129
- $instagram_items[] = array(
130
- 'i' => $i,
131
- 'id' => str_replace("_{$item['user']['id']}", '', $item['id']),
132
- 'images' => array(
133
- 'standard' => @$item['images']['standard_resolution']['url'],
134
- 'medium' => @$item['images']['low_resolution']['url'],
135
- 'small' => @$item['images']['thumbnail']['url'],
136
- ),
137
- 'videos' => array(
138
- 'standard' => @$item['videos']['standard_resolution']['url'],
139
- 'medium' => @$item['videos']['low_resolution']['url'],
140
- 'small' => @$item['videos']['thumbnail']['url'],
141
- ),
142
- 'likes' => @$item['likes']['count'],
143
- 'comments' => @$item['comments']['count'],
144
- 'caption' => preg_replace('/(?<!\S)#([0-9a-zA-Z]+)/', "<a href=\"{$this->instagram_url}/explore/tags/$1\">#$1</a>", htmlspecialchars(@$item['caption']['text'])),
145
- 'hashtags' => @$hashtags[1],
146
- 'link' => @$item['link'],
147
- 'type' => @$item['type'],
148
- 'user_id' => @$item['user']['id'],
149
- 'date' => date_i18n('j F, Y', @$item['created_time'])
150
  );
151
 
152
- }
153
- if ($next_max_id && ($next_max_id == $i)) {
154
- $i = $next_max_id;
155
- $load = true;
156
- }
157
- $i++;
158
- }
159
- }
160
 
161
- return $instagram_items;
162
- }
163
 
164
- public function get_user_items($access_token, $max_id = null) {
 
 
165
 
166
- $args = array(
167
- 'access_token' => $access_token,
168
- 'max_id' => $max_id,
169
- 'count' => 33
170
- );
171
 
172
- $url = "{$this->api_url}/v1/users/self/media/recent/";
 
173
 
174
- $response = $this->remote_get($url, $args);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
 
176
- if (empty($response)) {
177
- return false;
178
- }
179
 
180
- if (isset($response['meta']['code']) && ($response['meta']['code'] != 200) && isset($response['meta']['error_message'])) {
181
- $this->message = $response['meta']['error_message'];
182
- return false;
183
- }
 
184
 
185
- if (!isset($response['data'])) {
186
- return false;
187
- }
188
 
189
- return $response;
190
- }
191
 
192
- // Tag name and return items list array
193
- // -------------------------------------------------------------------------
194
-
195
- function setup_tag_item($data, $next_max_id = null) {
196
-
197
- static $load = false;
198
- static $i = 1;
199
-
200
- if (!$next_max_id) {
201
- $load = true;
202
- }
203
-
204
- $instagram_items = array();
205
-
206
- if (is_array($data) && !empty($data)) {
207
-
208
- foreach ($data as $res) {
209
-
210
- if (!isset($res['node']['display_url'])) {
211
- continue;
212
- }
213
-
214
- preg_match_all("/#(\\w+)/", @$res['node']['edge_media_to_caption']['edges'][0]['node']['text'], $hashtags);
215
-
216
- //$types = array(
217
- // 'GraphImage' => 'image',
218
- // 'GraphVideo' => 'video',
219
- // 'GraphSidecar' => 'carousel',
220
- //);
221
-
222
- if ($load) {
223
- $instagram_items[] = array(
224
- 'i' => $i,
225
- 'id' => $res['node']['id'],
226
- 'images' => array(
227
- 'standard' => $res['node']['display_url'],
228
- 'medium' => $res['node']['thumbnail_src'],
229
- 'small' => $res['node']['thumbnail_resources'][0]['src'],
230
- ),
231
- 'likes' => $res['node']['edge_liked_by']['count'],
232
- 'comments' => $res['node']['edge_media_to_comment']['count'],
233
- 'caption' => preg_replace('/(?<!\S)#([0-9a-zA-Z]+)/', "<a href=\"{$this->instagram_url}/explore/tags/$1\">#$1</a>", htmlspecialchars(@$res['node']['edge_media_to_caption']['edges'][0]['node']['text'])),
234
- 'hashtags' => @$hashtags[1],
235
- 'link' => "{$this->instagram_url}/p/{$res['node']['shortcode']}/",
236
- 'type' => 'image', //@$types[$res['node']['__typename']],
237
- 'user_id' => $res['node']['owner']['id'],
238
- 'date' => date_i18n('j F, Y', strtotime($res['node']['taken_at_timestamp']))
239
- );
240
- }
241
- if ($next_max_id && ($next_max_id == $i)) {
242
- $i = $next_max_id;
243
- $load = true;
244
- }
245
- $i++;
246
- }
247
- }
248
 
249
- return $instagram_items;
250
- }
 
 
251
 
252
- public function get_tag_items($tag = null, $max_id = null) {
 
 
253
 
254
- if ($tag) {
 
255
 
256
- $tag = urlencode((string) $tag);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
257
 
258
- $args = array(
259
- '__a' => 1,
260
- 'max_id' => "{$max_id}="
261
- );
262
 
263
- $response = $this->remote_get("{$this->instagram_url}/explore/tags/{$tag}/", $args);
264
 
265
- // API updated on Jan 03 17
266
- // ---------------------------------------------------------------------
267
 
268
- if (!isset($response['graphql']['hashtag']['edge_hashtag_to_media']['edges'])) {
269
- return false;
270
- }
 
271
 
272
- return $response;
273
- }
274
 
275
- $this->message = esc_html__('Please provide a valid #tag', 'insta-gallery');
276
- }
277
 
278
- function validate_response($json = null) {
 
 
279
 
280
- if (!($response = json_decode(wp_remote_retrieve_body($json), true)) || 200 !== wp_remote_retrieve_response_code($json)) {
 
281
 
282
- if (isset($response['meta']['error_message'])) {
283
- $this->message = $response['meta']['error_message'];
284
- return array(
285
- 'error' => 1,
286
- 'message' => $this->message
287
- );
288
  }
289
 
290
- if (isset($response['error_message'])) {
291
- $this->message = $response['error_message'];
292
- return array(
293
- 'error' => 1,
294
- 'message' => $this->message
295
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
296
  }
297
 
298
- if (is_wp_error($json)) {
299
- $response = array(
300
- 'error' => 1,
301
- 'message' => $json->get_error_message()
302
- );
303
- } else {
304
- $response = array(
305
- 'error' => 1,
306
- 'message' => esc_html__('Unknow error occurred, please try again', 'insta-gallery')
307
- );
308
- }
309
- }
310
 
311
- return $response;
312
- }
313
 
314
- public function remote_get($url = null, $args = array()) {
315
 
316
- $url = add_query_arg($args, trailingslashit($url));
317
-
318
- $response = $this->validate_response(wp_remote_get($url, array('timeout' => 29)));
319
-
320
- return $response;
321
- }
322
 
323
- // Return message
324
- // ---------------------------------------------------------------------------
325
- public function get_message() {
326
- return $this->message;
327
- }
 
328
 
329
- public function set_message($message = '') {
330
- $this->message = $message;
 
 
331
  }
332
-
333
- }
334
-
335
  }
1
  <?php
2
 
3
  if (!defined('ABSPATH'))
4
+ exit;
5
 
6
  if (!class_exists('QLIGG_API')) {
7
 
8
+ class QLIGG_API
9
+ {
10
 
11
+ protected $instagram;
12
+ public $message;
13
+ public $instagram_url = 'https://www.instagram.com';
14
+ private $api_url = 'https://api.instagram.com';
15
 
16
+ public function get_create_account_link()
17
+ {
18
 
19
+ $admin_url = admin_url('admin.php?page-qligg_token');
20
+ $client_id = '6e628e63145746bcb684912009514665';
21
 
22
+ return "{$this->instagram_url}/oauth/authorize/?client_id={$client_id}&scope=basic&redirect_uri=https://instagram.quadlayers.com/index.php?return_uri={$admin_url}&response_type=token&state={$admin_url}&hl=en";
23
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
 
25
+ // API generate code generation url
26
+ // ---------------------------------------------------------------------------
27
+ /* public function get_access_code($client_id = null) {
28
 
29
+ $args = array(
30
+ 'client_id' => $client_id,
31
+ 'response_type' => 'code',
32
+ 'scope' => 'public_content',
33
+ 'redirect_uri' => urlencode(admin_url('admin.php?page=qligg_token&igigresponse=1'))
34
+ );
35
 
36
+ return add_query_arg($args, "{$this->api_url}/oauth/authorize/");
37
+ } */
38
+
39
+ // API call to get access token using authorization code
40
+ // ---------------------------------------------------------------------------
41
+ public function get_access_token($client_id, $client_secret, $redirect_uri, $code)
42
+ {
43
+
44
+ $args = array(
45
+ 'body' => array(
46
+ 'client_id' => $client_id,
47
+ 'client_secret' => $client_secret,
48
+ 'redirect_uri' => $redirect_uri,
49
+ 'code' => $code,
50
+ 'grant_type' => 'authorization_code',
51
+ 'scope' => 'public_content'
52
+ )
53
+ );
54
 
55
+ $response = $this->validate_response(wp_remote_post("{$this->api_url}/oauth/access_token", $args));
56
 
57
+ if (isset($response['access_token'])) {
58
+ return $response['access_token'];
59
+ }
60
 
61
+ return false;
62
+ }
 
 
63
 
64
+ // API call to get user profile information using access token
65
+ // ---------------------------------------------------------------------------
66
+ public function get_user_profile($access_token)
67
+ {
68
 
69
+ $args = array(
70
+ 'access_token' => $access_token
71
+ );
72
 
73
+ $url = "{$this->api_url}/v1/users/self";
 
 
74
 
75
+ $response = $this->remote_get($url, $args);
76
 
77
+ if (empty($response)) {
78
+ return false;
79
+ }
80
 
81
+ if (isset($response['meta']['code']) && ($response['meta']['code'] != 200) && isset($response['meta']['error_message'])) {
82
+ $this->message = $response['meta']['error_message'];
83
+ return false;
84
+ }
85
 
86
+ return isset($response['data']) ? $response['data'] : false;
87
+ }
 
88
 
89
+ // API call to check if access token is valid
90
+ // ---------------------------------------------------------------------------
91
+ public function validate_token($access_token)
92
+ {
93
 
94
+ $args = array(
95
+ 'access_token' => $access_token
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  );
97
 
98
+ $url = "{$this->api_url}/v1/users/self";
 
 
 
 
 
 
 
99
 
100
+ $response = $this->remote_get($url, $args);
 
101
 
102
+ if (isset($response['meta']['code']) && $response['meta']['code'] == 200) {
103
+ return true;
104
+ }
105
 
106
+ if (isset($response['meta']['error_message'])) {
107
+ $this->message = $response['meta']['error_message'];
108
+ }
 
 
109
 
110
+ return false;
111
+ }
112
 
113
+ // API call to get user feed using access token
114
+ // ---------------------------------------------------------------------------
115
+
116
+ function setup_user_item($data, $next_max_id = null)
117
+ {
118
+
119
+ static $load = false;
120
+ static $i = 1;
121
+
122
+ if (!$next_max_id) {
123
+ $load = true;
124
+ }
125
+
126
+ $instagram_items = array();
127
+
128
+ if (is_array($data) && !empty($data)) {
129
+
130
+ foreach ($data as $item) {
131
+
132
+ if ($load) {
133
+
134
+ preg_match_all('/(?<!\S)#([0-9a-zA-Z]+)/', @$item['caption']['text'], $hashtags);
135
+
136
+ $instagram_items[] = array(
137
+ 'i' => $i,
138
+ 'id' => str_replace("_{$item['user']['id']}", '', $item['id']),
139
+ 'images' => array(
140
+ 'standard' => @$item['images']['standard_resolution']['url'],
141
+ 'medium' => @$item['images']['low_resolution']['url'],
142
+ 'small' => @$item['images']['thumbnail']['url'],
143
+ ),
144
+ 'videos' => array(
145
+ 'standard' => @$item['videos']['standard_resolution']['url'],
146
+ 'medium' => @$item['videos']['low_resolution']['url'],
147
+ 'small' => @$item['videos']['thumbnail']['url'],
148
+ ),
149
+ 'likes' => @$item['likes']['count'],
150
+ 'comments' => @$item['comments']['count'],
151
+ 'caption' => preg_replace('/(?<!\S)#([0-9a-zA-Z]+)/', "<a href=\"{$this->instagram_url}/explore/tags/$1\">#$1</a>", htmlspecialchars(@$item['caption']['text'])),
152
+ 'hashtags' => @$hashtags[1], // issue with uft 8 encode breakes json_encode
153
+ 'link' => @$item['link'],
154
+ 'type' => @$item['type'],
155
+ 'user_id' => @$item['user']['id'],
156
+ 'date' => date_i18n('j F, Y', @$item['created_time'])
157
+ );
158
+ }
159
+ if ($next_max_id && ($next_max_id == $i)) {
160
+ $i = $next_max_id;
161
+ $load = true;
162
+ }
163
+ $i++;
164
+ }
165
+ }
166
+
167
+ return $instagram_items;
168
+ }
169
 
170
+ public function get_user_items($access_token, $max_id = null)
171
+ {
 
172
 
173
+ $args = array(
174
+ 'access_token' => $access_token,
175
+ 'max_id' => $max_id,
176
+ 'count' => 33
177
+ );
178
 
179
+ $url = "{$this->api_url}/v1/users/self/media/recent/";
 
 
180
 
181
+ $response = $this->remote_get($url, $args);
 
182
 
183
+ if (empty($response)) {
184
+ return false;
185
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
 
187
+ if (isset($response['meta']['code']) && ($response['meta']['code'] != 200) && isset($response['meta']['error_message'])) {
188
+ $this->message = $response['meta']['error_message'];
189
+ return false;
190
+ }
191
 
192
+ if (!isset($response['data'])) {
193
+ return false;
194
+ }
195
 
196
+ return $response;
197
+ }
198
 
199
+ // Tag name and return items list array
200
+ // -------------------------------------------------------------------------
201
+
202
+ function setup_tag_item($data, $next_max_id = null)
203
+ {
204
+
205
+ static $load = false;
206
+ static $i = 1;
207
+
208
+ if (!$next_max_id) {
209
+ $load = true;
210
+ }
211
+
212
+ $instagram_items = array();
213
+
214
+ if (is_array($data) && !empty($data)) {
215
+
216
+ foreach ($data as $res) {
217
+
218
+ if (!isset($res['node']['display_url'])) {
219
+ continue;
220
+ }
221
+
222
+ //preg_match_all("/#(\\w+)/", @$res['node']['edge_media_to_caption']['edges'][0]['node']['text'], $hashtags);
223
+
224
+ if ($load) {
225
+ $instagram_items[] = array(
226
+ 'i' => $i,
227
+ 'id' => $res['node']['id'],
228
+ 'images' => array(
229
+ 'standard' => $res['node']['display_url'],
230
+ 'medium' => $res['node']['thumbnail_src'],
231
+ 'small' => $res['node']['thumbnail_resources'][0]['src'],
232
+ ),
233
+ 'likes' => $res['node']['edge_liked_by']['count'],
234
+ 'comments' => $res['node']['edge_media_to_comment']['count'],
235
+ 'caption' => preg_replace('/(?<!\S)#([0-9a-zA-Z]+)/', "<a href=\"{$this->instagram_url}/explore/tags/$1\">#$1</a>", htmlspecialchars(@$res['node']['edge_media_to_caption']['edges'][0]['node']['text'])),
236
+ //'hashtags' => @$hashtags[1], // issue with uft 8 encode breakes json_encode
237
+ 'link' => "{$this->instagram_url}/p/{$res['node']['shortcode']}/",
238
+ 'type' => 'image', //@$types[$res['node']['__typename']],
239
+ 'user_id' => $res['node']['owner']['id'],
240
+ 'date' => date_i18n('j F, Y', strtotime($res['node']['taken_at_timestamp']))
241
+ );
242
+ }
243
+ if ($next_max_id && ($next_max_id == $i)) {
244
+ $i = $next_max_id;
245
+ $load = true;
246
+ }
247
+ $i++;
248
+ }
249
+ }
250
+
251
+ return $instagram_items;
252
+ }
253
 
254
+ public function get_tag_items($tag = null, $max_id = null)
255
+ {
 
 
256
 
257
+ if ($tag) {
258
 
259
+ $tag = urlencode((string) $tag);
 
260
 
261
+ $args = array(
262
+ '__a' => 1,
263
+ 'max_id' => "{$max_id}="
264
+ );
265
 
266
+ $response = $this->remote_get("{$this->instagram_url}/explore/tags/{$tag}/", $args);
 
267
 
268
+ // API updated on Jan 03 17
269
+ // ---------------------------------------------------------------------
270
 
271
+ if (!isset($response['graphql']['hashtag']['edge_hashtag_to_media']['edges'])) {
272
+ return false;
273
+ }
274
 
275
+ return $response;
276
+ }
277
 
278
+ $this->message = esc_html__('Please provide a valid #tag', 'insta-gallery');
 
 
 
 
 
279
  }
280
 
281
+ function validate_response($json = null)
282
+ {
283
+
284
+ if (!($response = json_decode(wp_remote_retrieve_body($json), true)) || 200 !== wp_remote_retrieve_response_code($json)) {
285
+
286
+ if (isset($response['meta']['error_message'])) {
287
+ $this->message = $response['meta']['error_message'];
288
+ return array(
289
+ 'error' => 1,
290
+ 'message' => $this->message
291
+ );
292
+ }
293
+
294
+ if (isset($response['error_message'])) {
295
+ $this->message = $response['error_message'];
296
+ return array(
297
+ 'error' => 1,
298
+ 'message' => $this->message
299
+ );
300
+ }
301
+
302
+ if (is_wp_error($json)) {
303
+ $response = array(
304
+ 'error' => 1,
305
+ 'message' => $json->get_error_message()
306
+ );
307
+ } else {
308
+ $response = array(
309
+ 'error' => 1,
310
+ 'message' => esc_html__('Unknow error occurred, please try again', 'insta-gallery')
311
+ );
312
+ }
313
+ }
314
+
315
+ return $response;
316
  }
317
 
318
+ public function remote_get($url = null, $args = array())
319
+ {
 
 
 
 
 
 
 
 
 
 
320
 
321
+ $url = add_query_arg($args, trailingslashit($url));
 
322
 
323
+ $response = $this->validate_response(wp_remote_get($url, array('timeout' => 29)));
324
 
325
+ return $response;
326
+ }
 
 
 
 
327
 
328
+ // Return message
329
+ // ---------------------------------------------------------------------------
330
+ public function get_message()
331
+ {
332
+ return $this->message;
333
+ }
334
 
335
+ public function set_message($message = '')
336
+ {
337
+ $this->message = $message;
338
+ }
339
  }
 
 
 
340
  }
includes/apiFacebook.php ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if (!defined('ABSPATH'))
4
+ exit;
5
+
6
+ include_once(QLIGG_PLUGIN_DIR . 'includes/models/Account.php');
7
+
8
+ class QLIGG_API_Facebook
9
+ {
10
+ public $message;
11
+ public $facebook_id = '834353156975525';
12
+ public $facebook_url = 'https://www.facebook.com';
13
+ public $facebook_graph_url = 'https://graph.facebook.com';
14
+ public $facebook_redirect_uri = 'https://socialfeed.quadlayers.com/facebook.php';
15
+ public $instagram_url = 'https://www.instagram.com';
16
+
17
+ function getAccessTokenLink()
18
+ {
19
+
20
+ $state = admin_url('admin.php');
21
+ //$scope = 'manage_pages,instagram_basic,instagram_manage_insights,instagram_manage_comments';
22
+ $scope = 'instagram_basic,instagram_manage_insights,instagram_manage_comments,manage_pages,pages_read_engagement';
23
+
24
+
25
+ return "{$this->facebook_url}/dialog/oauth?client_id={$this->facebook_id}&redirect_uri={$this->facebook_redirect_uri}&response_type=code&scope={$scope}&state={$state}";
26
+ }
27
+
28
+ function getUserProfile($account_id, $access_token)
29
+ {
30
+ //'fields' => 'id,follow_count,followed_by_count,has_profile_picture,is_private,is_published,media_count,profile_pic,username,account_type',
31
+ $response = $this->remoteGet("https://graph.facebook.com/{$account_id}", array(
32
+ 'fields' => 'id,username,website,biography,name,followers_count,media_count,profile_picture_url',
33
+ 'access_token' => $access_token
34
+ ));
35
+
36
+ return (array) $response;
37
+ }
38
+
39
+ function getUserMedia($account_id, $access_token, $after = null)
40
+ {
41
+
42
+ $limit = 60; //$num = min( $num, 200 );
43
+
44
+ $response = $this->remoteGet("{$this->facebook_graph_url}/{$account_id}/media", array(
45
+ 'after' => $after,
46
+ 'limit' => $limit,
47
+ '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}',
48
+ 'access_token' => $access_token
49
+ ));
50
+
51
+ return (array) $response;
52
+ }
53
+
54
+ function setupMediaItems($data, $last_id = null)
55
+ {
56
+
57
+ static $load = false;
58
+ static $i = 1;
59
+
60
+ if (!$last_id) {
61
+ $load = true;
62
+ }
63
+
64
+ $instagram_items = array();
65
+
66
+ if (is_array($data) && !empty($data)) {
67
+
68
+ foreach ($data as $item) {
69
+
70
+ if ($load) {
71
+
72
+ preg_match_all('/(?<!\S)#([0-9a-zA-Z]+)/', @$item['caption'], $hashtags);
73
+
74
+ $media_url = ($item['media_type'] === 'CAROUSEL_ALBUM') ? @$item['children']['data'][0]['media_url'] : @$item['media_url'];
75
+ $date = isset($item['timestamp']) ? date_i18n('j F, Y', strtotime(trim(str_replace(array('T', '+', ' 0000'), ' ', $item['timestamp'])))) : false;
76
+
77
+ $test = $instagram_items[] = array(
78
+ 'i' => $i,
79
+ 'id' => $item['id'],
80
+ 'type' => strtolower(str_replace('_ALBUM', '', $item['media_type'])),
81
+ 'media' => $media_url,
82
+ 'images' => array(
83
+ 'standard' => "{$item['permalink']}media?size=l",
84
+ 'medium' => "{$item['permalink']}media?size=m",
85
+ 'small' => "{$item['permalink']}media?size=t",
86
+ ),
87
+ 'videos' => array(
88
+ 'standard' => "{$item['permalink']}media?size=l",
89
+ 'medium' => "{$item['permalink']}media?size=m",
90
+ 'small' => "{$item['permalink']}media?size=t",
91
+ ),
92
+ 'likes' => isset($item['like_count']) ? $item['like_count'] : false,
93
+ 'comments' => isset($item['comments_count']) ? $item['comments_count'] : false,
94
+ 'caption' => preg_replace('/(?<!\S)#([0-9a-zA-Z]+)/', "<a href=\"{$this->instagram_url}/explore/tags/$1\">#$1</a>", htmlspecialchars(@$item['caption'])),
95
+ 'hashtags' => @$hashtags[1], //array_map('utf8_encode', (array) @$hashtags[1]), // issue with uft 8 encode breakes json_encode
96
+ 'link' => $item['permalink'],
97
+ 'date' => $date
98
+ );
99
+ }
100
+
101
+ if ($last_id && ($last_id == $i)) {
102
+ $i = $last_id;
103
+ $load = true;
104
+ }
105
+ $i++;
106
+ }
107
+ }
108
+
109
+ return $instagram_items;
110
+ }
111
+
112
+
113
+
114
+ function getTagId($account_id, $access_token, $hashtag = null)
115
+ {
116
+
117
+ $response = $this->remoteGet("{$this->facebook_graph_url}/ig_hashtag_search", array(
118
+ 'user_id' => $account_id,
119
+ 'q' => urlencode($hashtag),
120
+ 'access_token' => $access_token
121
+ ));
122
+
123
+ if (isset($response['data'][0]['id'])) {
124
+ return $response['data'][0]['id'];
125
+ }
126
+ }
127
+
128
+ function getTagMedia($account_id, $hashtag = null, $after = null)
129
+ {
130
+
131
+ if (!$hashtag) {
132
+ $this->setMessage(esc_html__('Please update Instagram Tag in the feed settings.', 'insta-gallery'));
133
+ return;
134
+ }
135
+
136
+ if (!$account_id) {
137
+ $this->setMessage(esc_html__('Please update Instagram Account in the feed settings.', 'insta-gallery'));
138
+ return;
139
+ }
140
+
141
+ $account_model = new QLIGG_Account();
142
+
143
+ $account = $account_model->get_account($account_id);
144
+
145
+ if (!isset($account['access_token'])) {
146
+ $this->setMessage(esc_html__('Please update Instagram Access Token in the account settings.', 'insta-gallery'));
147
+ return;
148
+ }
149
+
150
+ if (!$hashtag_id = $this->getTagId($account['id'], $account['access_token'], $hashtag)) {
151
+ $this->setMessage(sprintf(esc_html__('Can\'t find the tag %s.', 'insta-gallery'), $hashtag));
152
+ return;
153
+ }
154
+
155
+ $limit = 30; //$num = min( $num, 200 );
156
+ $order_by = 'recent_media'; //top_media
157
+
158
+ $response = $this->remoteGet("{$this->facebook_graph_url}/{$hashtag_id}/{$order_by}", array(
159
+ 'after' => $after,
160
+ 'user_id' => $account['id'],
161
+ 'limit' => $limit,
162
+ 'fields' => 'media_url,caption,id,media_type,comments_count,like_count,permalink,children{media_url,id,media_type,permalink}',
163
+ 'access_token' => $account['access_token']
164
+ ));
165
+
166
+ return (array) $response;
167
+ }
168
+
169
+ function validateResponse($json = null)
170
+ {
171
+
172
+ if (!($response = json_decode(wp_remote_retrieve_body($json), true)) || 200 !== wp_remote_retrieve_response_code($json)) {
173
+
174
+ if (isset($response['error']['message'])) {
175
+ $this->message = $response['error']['message'];
176
+ return array(
177
+ 'error' => 1,
178
+ 'message' => $this->message
179
+ );
180
+ }
181
+
182
+ if (is_wp_error($json)) {
183
+ $response = array(
184
+ 'error' => 1,
185
+ 'message' => $json->get_error_message()
186
+ );
187
+ } else {
188
+ $response = array(
189
+ 'error' => 1,
190
+ 'message' => esc_html__('Unknow error occurred, please try again', 'insta-gallery')
191
+ );
192
+ }
193
+ }
194
+
195
+ return $response;
196
+ }
197
+
198
+ public function remoteGet($url = null, $args = array())
199
+ {
200
+
201
+ $url = add_query_arg($args, trailingslashit($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
+ }
includes/{apiV2.php → apiInstagram.php} RENAMED
@@ -3,21 +3,16 @@
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
  {
@@ -28,15 +23,6 @@ if (!class_exists('QLIGG_API_V2')) {
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
 
@@ -48,46 +34,6 @@ if (!class_exists('QLIGG_API_V2')) {
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
 
@@ -100,8 +46,6 @@ if (!class_exists('QLIGG_API_V2')) {
100
  'access_token' => $access_token
101
  ));
102
 
103
- // error_log('$response: ' . json_encode($response, JSON_PRETTY_PRINT));
104
-
105
  return (array) $response;
106
  }
107
 
@@ -123,13 +67,12 @@ if (!class_exists('QLIGG_API_V2')) {
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'])),
@@ -147,12 +90,12 @@ if (!class_exists('QLIGG_API_V2')) {
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;
@@ -198,8 +141,6 @@ if (!class_exists('QLIGG_API_V2')) {
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;
3
  if (!defined('ABSPATH'))
4
  exit;
5
 
6
+ if (!class_exists('QLIGG_API_Instagram')) {
7
 
8
+ class QLIGG_API_Instagram
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/instagram.php';
 
 
 
 
 
16
 
17
  function getAccessTokenLink()
18
  {
23
  return "{$this->instagram_url}/oauth/authorize?app_id={$this->instagram_id}&redirect_uri={$this->instagram_redirect_uri}&response_type=code&scope={$scope}&state={$state}";
24
  }
25
 
 
 
 
 
 
 
 
 
 
26
  function getUserProfile($access_token)
27
  {
28
 
34
  return (array) $response;
35
  }
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  function getUserMedia($access_token, $after = null)
38
  {
39
 
46
  'access_token' => $access_token
47
  ));
48
 
 
 
49
  return (array) $response;
50
  }
51
 
67
 
68
  if ($load) {
69
 
70
+ preg_match_all('/(?<!\S)#([0-9a-zA-Z]+)/', @$item['caption'], $hashtags);
71
+
72
  $media_url = ($item['media_type'] === 'CAROUSEL_ALBUM') ? @$item['children']['data'][0]['media_url'] : @$item['media_url'];
 
73
  $date = isset($item['timestamp']) ? date_i18n('j F, Y', strtotime(trim(str_replace(array('T', '+', ' 0000'), ' ', $item['timestamp'])))) : false;
74
+
75
+ $test = $instagram_items[] = array(
76
  'i' => $i,
77
  'id' => $item['id'],
78
  'type' => strtolower(str_replace('_ALBUM', '', $item['media_type'])),
90
  'likes' => isset($item['like_count']) ? $item['like_count'] : false,
91
  'comments' => isset($item['comments_count']) ? $item['comments_count'] : false,
92
  'caption' => preg_replace('/(?<!\S)#([0-9a-zA-Z]+)/', "<a href=\"{$this->instagram_url}/explore/tags/$1\">#$1</a>", htmlspecialchars(@$item['caption'])),
93
+ 'hashtags' => @$hashtags[1], //array_map('utf8_encode', (array) @$hashtags[1]), // issue with uft 8 encode breakes json_encode
94
  'link' => $item['permalink'],
 
95
  'date' => $date
96
  );
97
  }
98
+
99
  if ($last_id && ($last_id == $i)) {
100
  $i = $last_id;
101
  $load = true;
141
 
142
  $url = add_query_arg($args, trailingslashit($url));
143
 
 
 
144
  $response = $this->validateResponse(wp_remote_get($url, array('timeout' => 29)));
145
 
146
  return $response;
includes/compatibility.php CHANGED
@@ -5,343 +5,343 @@ include_once(QLIGG_PLUGIN_DIR . 'includes/models/Feed.php');
5
 
6
  class QLIGG_Compatibility {
7
 
8
- protected static $instance;
9
 
10
- function premium_compatibility() {
11
 
12
- global $qligg, $qligg_token;
13
 
14
- include_once(QLIGG_PLUGIN_DIR . 'includes/models/Setting.php');
15
- include_once(QLIGG_PLUGIN_DIR . 'includes/models/Token.php');
16
 
17
- $token_model = new QLIGG_Token();
18
 
19
- $qligg_token = $token_model->get_tokens();
20
 
21
- $setting_model = new QLIGG_Setting();
22
 
23
- $qligg = $setting_model->get_settings();
24
- }
25
 
26
- function rename_insta_gallery_token($token = array()) {
27
 
28
- if (isset($token['access_token'])) {
29
 
30
- $access_token = base64_decode($token['access_token']);
31
 
32
- $access_token_id = explode('.', $access_token);
33
 
34
- $token = array(
35
- $access_token_id[0] => $access_token
36
- );
 
 
 
37
  }
38
 
39
- return $token;
40
- }
41
 
42
- function rename_insta_gallery_items_223($instagram_feeds = array()) {
 
43
 
44
- $token_model = new QLIGG_Token();
45
- $tokens = $token_model->get_tokens();
46
 
47
- // Backward compatibility v2.2.3
48
- // -----------------------------------------------------------------------
49
-
50
- foreach ($instagram_feeds as $id => $instagram_feed) {
51
-
52
- if (!isset($instagram_feed['insta_username']) && !empty($instagram_feed['insta_user'])) {
53
- $instagram_feeds[$id]['insta_username'] = key($tokens);
54
- }
55
-
56
- if (!isset($instagram_feed['insta_source']) && !empty($instagram_feed['ig_select_from'])) {
57
- $instagram_feeds[$id]['insta_source'] = $instagram_feed['ig_select_from'];
58
- }
59
-
60
- if (!isset($instagram_feed['insta_layout']) && !empty($instagram_feed['ig_display_type'])) {
61
- $instagram_feeds[$id]['insta_layout'] = $instagram_feed['ig_display_type'];
62
- }
63
-
64
- if (empty($instagram_feed['insta_button-text'])) {
65
- $instagram_feeds[$id]['insta_button-text'] = 'View on Instagram';
66
- }
67
- if (empty($instagram_feed['insta_thumb']) && !empty($instagram_feed['insta_thumb-size'])) {
68
- $instagram_feeds[$id]['insta_size'] = $instagram_feed['insta_thumb-size'];
69
- }
70
- if (empty($instagram_feed['insta_button']) && !empty($instagram_feed['insta_instalink'])) {
71
- $instagram_feeds[$id]['insta_button'] = $instagram_feed['insta_instalink'];
72
- }
73
- if (empty($instagram_feed['insta_button-text']) && !empty($instagram_feed['insta_instalink-text'])) {
74
- $instagram_feeds[$id]['insta_button-text'] = $instagram_feed['insta_instalink-text'];
75
- }
76
- if (empty($instagram_feed['insta_button-background']) && !empty($instagram_feed['insta_instalink-bgcolor'])) {
77
- $instagram_feeds[$id]['insta_button-background'] = $instagram_feed['insta_instalink-bgcolor'];
78
- }
79
- if (empty($instagram_feed['insta_button-background-hover']) && !empty($instagram_feed['insta_instalink-hvrcolor'])) {
80
- $instagram_feeds[$id]['insta_button-background-hover'] = $instagram_feed['insta_instalink-hvrcolor'];
81
- }
82
-
83
- if (!isset($instagram_feed['insta_limit'])) {
84
-
85
- $instagram_feeds[$id]['insta_limit'] = 12;
86
-
87
- if (isset($instagram_feed['insta_source']) && $instagram_feed['insta_source'] == 'username') {
88
- $instagram_feeds[$id]['insta_limit'] = absint($instagram_feed['insta_user-limit']);
89
- }
90
 
91
- if (isset($instagram_feed['insta_source']) && $instagram_feed['insta_source'] == 'tag') {
92
- $instagram_feeds[$id]['insta_limit'] = absint($instagram_feed['insta_tag-limit']);
93
- }
94
- }
95
 
96
- if (!isset($instagram_feed['insta_spacing'])) {
 
 
97
 
98
- $instagram_feeds[$id]['insta_spacing'] = 0;
 
 
99
 
100
- if (!empty($instagram_feed['insta_gal-spacing']) && $instagram_feed['insta_layout'] == 'gallery') {
101
- $instagram_feeds[$id]['insta_spacing'] = 10;
102
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
 
104
- if (!empty($instagram_feed['insta_car-spacing']) && $instagram_feed['insta_layout'] == 'carousel') {
105
- $instagram_feeds[$id]['insta_spacing'] = 10;
106
- }
107
- }
108
 
109
- if (!isset($instagram_feed['insta_hover'])) {
110
 
111
- $instagram_feeds[$id]['insta_hover'] = true;
 
 
112
 
113
- if (isset($instagram_feed['insta_gal-hover']) && $instagram_feed['insta_layout'] == 'gallery') {
114
- $instagram_feeds[$id]['insta_hover'] = $instagram_feed['insta_gal-hover'];
115
- }
 
116
 
117
- if (isset($instagram_feed['insta_car-hover']) && $instagram_feed['insta_layout'] == 'carousel') {
118
- $instagram_feeds[$id]['insta_hover'] = $instagram_feed['insta_car-hover'];
119
- }
120
- }
121
 
122
- if (!isset($instagram_feed['insta_popup'])) {
123
 
124
- $instagram_feeds[$id]['insta_popup'] = true;
 
 
125
 
126
- if (isset($instagram_feed['insta_gal-popup']) && $instagram_feed['insta_layout'] == 'gallery') {
127
- $instagram_feeds[$id]['insta_popup'] = $instagram_feed['insta_gal-popup'];
128
- }
 
129
 
130
- if (isset($instagram_feed['insta_car-popup']) && $instagram_feed['insta_layout'] == 'carousel') {
131
- $instagram_feeds[$id]['insta_popup'] = $instagram_feed['insta_car-popup'];
132
- }
133
- }
134
- }
 
 
 
 
 
 
 
135
 
136
- return $instagram_feeds;
137
- }
138
 
139
- // Backward compatibility v2.6.6 to 2.6.8
140
- // -----------------------------------------------------------------------
141
- function rename_insta_gallery_items_266($new_instagram_feeds = array()) {
142
 
143
- // if dosent exists return
144
- if (!$old_instagram_feeds = get_option('insta_gallery_items')) {
145
- return $new_instagram_feeds;
 
 
 
 
 
 
 
 
146
  }
147
- // replace keys
148
- foreach ($old_instagram_feeds as $id => $old_instagram_feed) {
149
-
150
- $new_instagram_feeds[$id]['id'] = $id;
151
- $new_instagram_feeds[$id]['order'] = $id;
152
-
153
- if (isset($old_instagram_feed['insta_source'])) {
154
- $new_instagram_feeds[$id]['type'] = $old_instagram_feed['insta_source'];
155
- }
156
- if (isset($old_instagram_feed['insta_tag'])) {
157
- $new_instagram_feeds[$id]['tag'] = $old_instagram_feed['insta_tag'];
158
- }
159
- if (isset($old_instagram_feed['insta_username'])) {
160
- $new_instagram_feeds[$id]['username'] = $old_instagram_feed['insta_username'];
161
- }
162
- if (isset($old_instagram_feed['insta_layout'])) {
163
- $new_instagram_feeds[$id]['layout'] = $old_instagram_feed['insta_layout'];
164
- }
165
- if (isset($old_instagram_feed['insta_box'])) {
166
- $new_instagram_feeds[$id]['box']['display'] = $old_instagram_feed['insta_box'];
167
- }
168
- if (isset($old_instagram_feed['insta_box-padding'])) {
169
- $new_instagram_feeds[$id]['box']['padding'] = $old_instagram_feed['insta_box-padding'];
170
- }
171
- if (isset($old_instagram_feed['insta_box-radius'])) {
172
- $new_instagram_feeds[$id]['box']['radius'] = $old_instagram_feed['insta_box-radius'];
173
- }
174
- if (isset($old_instagram_feed['insta_box-background'])) {
175
- $new_instagram_feeds[$id]['box']['background'] = $old_instagram_feed['insta_box-background'];
176
- }
177
- if (isset($old_instagram_feed['insta_box-profile'])) {
178
- $new_instagram_feeds[$id]['box']['profile'] = $old_instagram_feed['insta_box-profile'];
179
- }
180
- if (isset($old_instagram_feed['insta_box-desc'])) {
181
- $new_instagram_feeds[$id]['box']['desc'] = $old_instagram_feed['insta_box-desc'];
182
- }
183
- if (isset($old_instagram_feed['insta_highlight-tag'])) {
184
- $new_instagram_feeds[$id]['highlight']['tag'] = $old_instagram_feed['insta_highlight-tag'];
185
- }
186
- if (isset($old_instagram_feed['insta_highlight-id'])) {
187
- $new_instagram_feeds[$id]['highlight']['id'] = $old_instagram_feed['insta_highlight-id'];
188
- }
189
- if (isset($old_instagram_feed['insta_highlight-position'])) {
190
- $new_instagram_feeds[$id]['highlight']['position'] = $old_instagram_feed['insta_highlight-position'];
191
- }
192
- if (isset($old_instagram_feed['insta_car-position'])) {
193
- $new_instagram_feeds[$id]['carousel']['slidespv'] = $old_instagram_feed['insta_car-slidespv'];
194
- }
195
- if (isset($old_instagram_feed['insta_car-autoplay'])) {
196
- $new_instagram_feeds[$id]['carousel']['autoplay'] = $old_instagram_feed['insta_car-autoplay'];
197
- }
198
- if (isset($old_instagram_feed['insta_car-interval'])) {
199
- $new_instagram_feeds[$id]['carousel']['autoplay_interval'] = $old_instagram_feed['insta_car-interval'];
200
- }
201
- if (isset($old_instagram_feed['insta_car-navarrows'])) {
202
- $new_instagram_feeds[$id]['carousel']['navarrows'] = $old_instagram_feed['insta_car-navarrows'];
203
- }
204
- if (isset($old_instagram_feed['insta_car-navarrows-color'])) {
205
- $new_instagram_feeds[$id]['carousel']['navarrows_color'] = $old_instagram_feed['insta_car-navarrows-color'];
206
- }
207
- if (isset($old_instagram_feed['insta_car-pagination'])) {
208
- $new_instagram_feeds[$id]['carousel']['pagination'] = $old_instagram_feed['insta_car-pagination'];
209
- }
210
- if (isset($old_instagram_feed['insta_car-pagination-color'])) {
211
- $new_instagram_feeds[$id]['carousel']['pagination-color'] = $old_instagram_feed['insta_car-pagination-color'];
212
- }
213
- if (isset($old_instagram_feed['insta_gal-cols'])) {
214
- $new_instagram_feeds[$id]['carousel']['columns'] = $old_instagram_feed['insta_gal-cols'];
215
- }
216
- if (isset($old_instagram_feed['insta_limit'])) {
217
- $new_instagram_feeds[$id]['limit'] = $old_instagram_feed['insta_limit'];
218
- }
219
- if (isset($old_instagram_feed['insta_spacing'])) {
220
- $new_instagram_feeds[$id]['spacing'] = $old_instagram_feed['insta_spacing'];
221
- }
222
- if (isset($old_instagram_feed['insta_size'])) {
223
- $new_instagram_feeds[$id]['size'] = $old_instagram_feed['insta_size'];
224
- }
225
- if (isset($old_instagram_feed['insta_hover'])) {
226
- $new_instagram_feeds[$id]['mask']['display'] = $old_instagram_feed['insta_hover'];
227
- }
228
- if (isset($old_instagram_feed['insta_hover-color'])) {
229
- $new_instagram_feeds[$id]['mask']['background'] = $old_instagram_feed['insta_hover-color'];
230
- }
231
- if (isset($old_instagram_feed['insta_likes'])) {
232
- $new_instagram_feeds[$id]['mask']['likes'] = $old_instagram_feed['insta_likes'];
233
- }
234
- if (isset($old_instagram_feed['insta_comments'])) {
235
- $new_instagram_feeds[$id]['mask']['comments'] = $old_instagram_feed['insta_comments'];
236
- }
237
- if (isset($old_instagram_feed['insta_button'])) {
238
- $new_instagram_feeds[$id]['button']['display'] = $old_instagram_feed['insta_button'];
239
- }
240
- if (isset($old_instagram_feed['insta_button-text'])) {
241
- $new_instagram_feeds[$id]['button']['text'] = $old_instagram_feed['insta_button-text'];
242
- }
243
- if (isset($old_instagram_feed['insta_button-background'])) {
244
- $new_instagram_feeds[$id]['button']['background'] = $old_instagram_feed['insta_button-background'];
245
- }
246
- if (isset($old_instagram_feed['insta_button-background-hover'])) {
247
- $new_instagram_feeds[$id]['button']['background_hover'] = $old_instagram_feed['insta_button-background-hover'];
248
- }
249
- if (isset($old_instagram_feed['insta_popup'])) {
250
- $new_instagram_feeds[$id]['popup']['display'] = $old_instagram_feed['insta_popup'];
251
- }
252
- if (isset($old_instagram_feed['insta_popup'])) {
253
- $new_instagram_feeds[$id]['popup']['display'] = $old_instagram_feed['insta_popup'];
254
- }
255
- if (isset($old_instagram_feed['insta_popup-profile'])) {
256
- $new_instagram_feeds[$id]['popup']['profile'] = $old_instagram_feed['insta_popup-profile'];
257
- }
258
- if (isset($old_instagram_feed['insta_popup-caption'])) {
259
- $new_instagram_feeds[$id]['popup']['caption'] = $old_instagram_feed['insta_popup-caption'];
260
- }
261
- if (isset($old_instagram_feed['insta_popup-likes'])) {
262
- $new_instagram_feeds[$id]['popup']['likes'] = $old_instagram_feed['insta_popup-likes'];
263
- }
264
- if (isset($old_instagram_feed['insta_popup-align'])) {
265
- $new_instagram_feeds[$id]['popup']['align'] = $old_instagram_feed['insta_popup-align'];
266
- }
267
- if (isset($old_instagram_feed['insta_button_load'])) {
268
- $new_instagram_feeds[$id]['button_load']['display'] = $old_instagram_feed['insta_button_load'];
269
- }
270
- if (isset($old_instagram_feed['insta_button_load-text'])) {
271
- $new_instagram_feeds[$id]['button_load']['text'] = $old_instagram_feed['insta_button_load-text'];
272
- }
273
- if (isset($old_instagram_feed['insta_button_load-background'])) {
274
- $new_instagram_feeds[$id]['button_load']['background'] = $old_instagram_feed['insta_button_load-background'];
275
- }
276
- if (isset($old_instagram_feed['insta_button_load-background-hover'])) {
277
- $new_instagram_feeds[$id]['button_load']['background_hover'] = $old_instagram_feed['insta_button_load-background-hover'];
278
- }
279
- if (isset($old_instagram_feed['insta_card'])) {
280
- $new_instagram_feeds[$id]['card']['display'] = $old_instagram_feed['insta_card'];
281
- }
282
- if (isset($old_instagram_feed['insta_card-radius'])) {
283
- $new_instagram_feeds[$id]['card']['radius'] = $old_instagram_feed['insta_card-radius'];
284
- }
285
- if (isset($old_instagram_feed['insta_card-font-size'])) {
286
- $new_instagram_feeds[$id]['card']['font_size'] = $old_instagram_feed['insta_card-font-size'];
287
- }
288
- if (isset($old_instagram_feed['insta_card-background'])) {
289
- $new_instagram_feeds[$id]['card']['background'] = $old_instagram_feed['insta_card-background'];
290
- }
291
- if (isset($old_instagram_feed['insta_card-padding'])) {
292
- $new_instagram_feeds[$id]['card']['padding'] = $old_instagram_feed['insta_card-padding'];
293
- }
294
- if (isset($old_instagram_feed['insta_card-info'])) {
295
- $new_instagram_feeds[$id]['card']['info'] = $old_instagram_feed['insta_card-info'];
296
- }
297
- if (isset($old_instagram_feed['insta_card-length'])) {
298
- $new_instagram_feeds[$id]['card']['length'] = $old_instagram_feed['insta_card-length'];
299
- }
300
- if (isset($old_instagram_feed['insta_card-caption'])) {
301
- $new_instagram_feeds[$id]['card']['caption'] = $old_instagram_feed['insta_card-caption'];
302
- }
 
 
 
 
 
 
 
 
 
 
 
303
  }
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
-
337
- public static function instance() {
338
- if (!isset(self::$instance)) {
339
- self::$instance = new self();
340
- //self::$instance->defaults();
341
- self::$instance->init();
342
  }
343
- return self::$instance;
344
- }
345
 
346
  }
347
 
@@ -351,73 +351,73 @@ QLIGG_Compatibility::instance();
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
- }
5
 
6
  class QLIGG_Compatibility {
7
 
8
+ protected static $instance;
9
 
10
+ function premium_compatibility() {
11
 
12
+ global $qligg, $qligg_token;
13
 
14
+ include_once(QLIGG_PLUGIN_DIR . 'includes/models/Setting.php');
15
+ include_once(QLIGG_PLUGIN_DIR . 'includes/models/Token.php');
16
 
17
+ $token_model = new QLIGG_Token();
18
 
19
+ $qligg_token = $token_model->get_tokens();
20
 
21
+ $setting_model = new QLIGG_Setting();
22
 
23
+ $qligg = $setting_model->get_settings();
24
+ }
25
 
26
+ function rename_insta_gallery_token($token = array()) {
27
 
28
+ if (isset($token['access_token'])) {
29
 
30
+ $access_token = base64_decode($token['access_token']);
31
 
32
+ $access_token_id = explode('.', $access_token);
33
 
34
+ $token = array(
35
+ $access_token_id[0] => $access_token
36
+ );
37
+ }
38
+
39
+ return $token;
40
  }
41
 
42
+ function rename_insta_gallery_items_223($instagram_feeds = array()) {
 
43
 
44
+ $token_model = new QLIGG_Token();
45
+ $tokens = $token_model->get_tokens();
46
 
47
+ // Backward compatibility v2.2.3
48
+ // -----------------------------------------------------------------------
49
 
50
+ foreach ($instagram_feeds as $id => $instagram_feed) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
 
52
+ if (!isset($instagram_feed['insta_username']) && !empty($instagram_feed['insta_user'])) {
53
+ $instagram_feeds[$id]['insta_username'] = key($tokens);
54
+ }
 
55
 
56
+ if (!isset($instagram_feed['insta_source']) && !empty($instagram_feed['ig_select_from'])) {
57
+ $instagram_feeds[$id]['insta_source'] = $instagram_feed['ig_select_from'];
58
+ }
59
 
60
+ if (!isset($instagram_feed['insta_layout']) && !empty($instagram_feed['ig_display_type'])) {
61
+ $instagram_feeds[$id]['insta_layout'] = $instagram_feed['ig_display_type'];
62
+ }
63
 
64
+ if (empty($instagram_feed['insta_button-text'])) {
65
+ $instagram_feeds[$id]['insta_button-text'] = 'View on Instagram';
66
+ }
67
+ if (empty($instagram_feed['insta_thumb']) && !empty($instagram_feed['insta_thumb-size'])) {
68
+ $instagram_feeds[$id]['insta_size'] = $instagram_feed['insta_thumb-size'];
69
+ }
70
+ if (empty($instagram_feed['insta_button']) && !empty($instagram_feed['insta_instalink'])) {
71
+ $instagram_feeds[$id]['insta_button'] = $instagram_feed['insta_instalink'];
72
+ }
73
+ if (empty($instagram_feed['insta_button-text']) && !empty($instagram_feed['insta_instalink-text'])) {
74
+ $instagram_feeds[$id]['insta_button-text'] = $instagram_feed['insta_instalink-text'];
75
+ }
76
+ if (empty($instagram_feed['insta_button-background']) && !empty($instagram_feed['insta_instalink-bgcolor'])) {
77
+ $instagram_feeds[$id]['insta_button-background'] = $instagram_feed['insta_instalink-bgcolor'];
78
+ }
79
+ if (empty($instagram_feed['insta_button-background-hover']) && !empty($instagram_feed['insta_instalink-hvrcolor'])) {
80
+ $instagram_feeds[$id]['insta_button-background-hover'] = $instagram_feed['insta_instalink-hvrcolor'];
81
+ }
82
 
83
+ if (!isset($instagram_feed['insta_limit'])) {
 
 
 
84
 
85
+ $instagram_feeds[$id]['insta_limit'] = 12;
86
 
87
+ if (isset($instagram_feed['insta_source']) && $instagram_feed['insta_source'] == 'username') {
88
+ $instagram_feeds[$id]['insta_limit'] = absint($instagram_feed['insta_user-limit']);
89
+ }
90
 
91
+ if (isset($instagram_feed['insta_source']) && $instagram_feed['insta_source'] == 'tag') {
92
+ $instagram_feeds[$id]['insta_limit'] = absint($instagram_feed['insta_tag-limit']);
93
+ }
94
+ }
95
 
96
+ if (!isset($instagram_feed['insta_spacing'])) {
 
 
 
97
 
98
+ $instagram_feeds[$id]['insta_spacing'] = 0;
99
 
100
+ if (!empty($instagram_feed['insta_gal-spacing']) && $instagram_feed['insta_layout'] == 'gallery') {
101
+ $instagram_feeds[$id]['insta_spacing'] = 10;
102
+ }
103
 
104
+ if (!empty($instagram_feed['insta_car-spacing']) && $instagram_feed['insta_layout'] == 'carousel') {
105
+ $instagram_feeds[$id]['insta_spacing'] = 10;
106
+ }
107
+ }
108
 
109
+ if (!isset($instagram_feed['insta_hover'])) {
110
+
111
+ $instagram_feeds[$id]['insta_hover'] = true;
112
+
113
+ if (isset($instagram_feed['insta_gal-hover']) && $instagram_feed['insta_layout'] == 'gallery') {
114
+ $instagram_feeds[$id]['insta_hover'] = $instagram_feed['insta_gal-hover'];
115
+ }
116
+
117
+ if (isset($instagram_feed['insta_car-hover']) && $instagram_feed['insta_layout'] == 'carousel') {
118
+ $instagram_feeds[$id]['insta_hover'] = $instagram_feed['insta_car-hover'];
119
+ }
120
+ }
121
 
122
+ if (!isset($instagram_feed['insta_popup'])) {
 
123
 
124
+ $instagram_feeds[$id]['insta_popup'] = true;
 
 
125
 
126
+ if (isset($instagram_feed['insta_gal-popup']) && $instagram_feed['insta_layout'] == 'gallery') {
127
+ $instagram_feeds[$id]['insta_popup'] = $instagram_feed['insta_gal-popup'];
128
+ }
129
+
130
+ if (isset($instagram_feed['insta_car-popup']) && $instagram_feed['insta_layout'] == 'carousel') {
131
+ $instagram_feeds[$id]['insta_popup'] = $instagram_feed['insta_car-popup'];
132
+ }
133
+ }
134
+ }
135
+
136
+ return $instagram_feeds;
137
  }
138
+
139
+ // Backward compatibility v2.6.6 to 2.6.8
140
+ // -----------------------------------------------------------------------
141
+ function rename_insta_gallery_items_266($new_instagram_feeds = array()) {
142
+
143
+ // if dosent exists return
144
+ if (!$old_instagram_feeds = get_option('insta_gallery_items')) {
145
+ return $new_instagram_feeds;
146
+ }
147
+ // replace keys
148
+ foreach ($old_instagram_feeds as $id => $old_instagram_feed) {
149
+
150
+ $new_instagram_feeds[$id]['id'] = $id;
151
+ $new_instagram_feeds[$id]['order'] = $id;
152
+
153
+ if (isset($old_instagram_feed['insta_source'])) {
154
+ $new_instagram_feeds[$id]['type'] = $old_instagram_feed['insta_source'];
155
+ }
156
+ if (isset($old_instagram_feed['insta_tag'])) {
157
+ $new_instagram_feeds[$id]['tag'] = $old_instagram_feed['insta_tag'];
158
+ }
159
+ if (isset($old_instagram_feed['insta_username'])) {
160
+ $new_instagram_feeds[$id]['username'] = $old_instagram_feed['insta_username'];
161
+ }
162
+ if (isset($old_instagram_feed['insta_layout'])) {
163
+ $new_instagram_feeds[$id]['layout'] = $old_instagram_feed['insta_layout'];
164
+ }
165
+ if (isset($old_instagram_feed['insta_box'])) {
166
+ $new_instagram_feeds[$id]['box']['display'] = $old_instagram_feed['insta_box'];
167
+ }
168
+ if (isset($old_instagram_feed['insta_box-padding'])) {
169
+ $new_instagram_feeds[$id]['box']['padding'] = $old_instagram_feed['insta_box-padding'];
170
+ }
171
+ if (isset($old_instagram_feed['insta_box-radius'])) {
172
+ $new_instagram_feeds[$id]['box']['radius'] = $old_instagram_feed['insta_box-radius'];
173
+ }
174
+ if (isset($old_instagram_feed['insta_box-background'])) {
175
+ $new_instagram_feeds[$id]['box']['background'] = $old_instagram_feed['insta_box-background'];
176
+ }
177
+ if (isset($old_instagram_feed['insta_box-profile'])) {
178
+ $new_instagram_feeds[$id]['box']['profile'] = $old_instagram_feed['insta_box-profile'];
179
+ }
180
+ if (isset($old_instagram_feed['insta_box-desc'])) {
181
+ $new_instagram_feeds[$id]['box']['desc'] = $old_instagram_feed['insta_box-desc'];
182
+ }
183
+ if (isset($old_instagram_feed['insta_highlight-tag'])) {
184
+ $new_instagram_feeds[$id]['highlight']['tag'] = $old_instagram_feed['insta_highlight-tag'];
185
+ }
186
+ if (isset($old_instagram_feed['insta_highlight-id'])) {
187
+ $new_instagram_feeds[$id]['highlight']['id'] = $old_instagram_feed['insta_highlight-id'];
188
+ }
189
+ if (isset($old_instagram_feed['insta_highlight-position'])) {
190
+ $new_instagram_feeds[$id]['highlight']['position'] = $old_instagram_feed['insta_highlight-position'];
191
+ }
192
+ if (isset($old_instagram_feed['insta_car-position'])) {
193
+ $new_instagram_feeds[$id]['carousel']['slidespv'] = $old_instagram_feed['insta_car-slidespv'];
194
+ }
195
+ if (isset($old_instagram_feed['insta_car-autoplay'])) {
196
+ $new_instagram_feeds[$id]['carousel']['autoplay'] = $old_instagram_feed['insta_car-autoplay'];
197
+ }
198
+ if (isset($old_instagram_feed['insta_car-interval'])) {
199
+ $new_instagram_feeds[$id]['carousel']['autoplay_interval'] = $old_instagram_feed['insta_car-interval'];
200
+ }
201
+ if (isset($old_instagram_feed['insta_car-navarrows'])) {
202
+ $new_instagram_feeds[$id]['carousel']['navarrows'] = $old_instagram_feed['insta_car-navarrows'];
203
+ }
204
+ if (isset($old_instagram_feed['insta_car-navarrows-color'])) {
205
+ $new_instagram_feeds[$id]['carousel']['navarrows_color'] = $old_instagram_feed['insta_car-navarrows-color'];
206
+ }
207
+ if (isset($old_instagram_feed['insta_car-pagination'])) {
208
+ $new_instagram_feeds[$id]['carousel']['pagination'] = $old_instagram_feed['insta_car-pagination'];
209
+ }
210
+ if (isset($old_instagram_feed['insta_car-pagination-color'])) {
211
+ $new_instagram_feeds[$id]['carousel']['pagination-color'] = $old_instagram_feed['insta_car-pagination-color'];
212
+ }
213
+ if (isset($old_instagram_feed['insta_gal-cols'])) {
214
+ $new_instagram_feeds[$id]['carousel']['columns'] = $old_instagram_feed['insta_gal-cols'];
215
+ }
216
+ if (isset($old_instagram_feed['insta_limit'])) {
217
+ $new_instagram_feeds[$id]['limit'] = $old_instagram_feed['insta_limit'];
218
+ }
219
+ if (isset($old_instagram_feed['insta_spacing'])) {
220
+ $new_instagram_feeds[$id]['spacing'] = $old_instagram_feed['insta_spacing'];
221
+ }
222
+ if (isset($old_instagram_feed['insta_size'])) {
223
+ $new_instagram_feeds[$id]['size'] = $old_instagram_feed['insta_size'];
224
+ }
225
+ if (isset($old_instagram_feed['insta_hover'])) {
226
+ $new_instagram_feeds[$id]['mask']['display'] = $old_instagram_feed['insta_hover'];
227
+ }
228
+ if (isset($old_instagram_feed['insta_hover-color'])) {
229
+ $new_instagram_feeds[$id]['mask']['background'] = $old_instagram_feed['insta_hover-color'];
230
+ }
231
+ if (isset($old_instagram_feed['insta_likes'])) {
232
+ $new_instagram_feeds[$id]['mask']['likes'] = $old_instagram_feed['insta_likes'];
233
+ }
234
+ if (isset($old_instagram_feed['insta_comments'])) {
235
+ $new_instagram_feeds[$id]['mask']['comments'] = $old_instagram_feed['insta_comments'];
236
+ }
237
+ if (isset($old_instagram_feed['insta_button'])) {
238
+ $new_instagram_feeds[$id]['button']['display'] = $old_instagram_feed['insta_button'];
239
+ }
240
+ if (isset($old_instagram_feed['insta_button-text'])) {
241
+ $new_instagram_feeds[$id]['button']['text'] = $old_instagram_feed['insta_button-text'];
242
+ }
243
+ if (isset($old_instagram_feed['insta_button-background'])) {
244
+ $new_instagram_feeds[$id]['button']['background'] = $old_instagram_feed['insta_button-background'];
245
+ }
246
+ if (isset($old_instagram_feed['insta_button-background-hover'])) {
247
+ $new_instagram_feeds[$id]['button']['background_hover'] = $old_instagram_feed['insta_button-background-hover'];
248
+ }
249
+ if (isset($old_instagram_feed['insta_popup'])) {
250
+ $new_instagram_feeds[$id]['popup']['display'] = $old_instagram_feed['insta_popup'];
251
+ }
252
+ if (isset($old_instagram_feed['insta_popup'])) {
253
+ $new_instagram_feeds[$id]['popup']['display'] = $old_instagram_feed['insta_popup'];
254
+ }
255
+ if (isset($old_instagram_feed['insta_popup-profile'])) {
256
+ $new_instagram_feeds[$id]['popup']['profile'] = $old_instagram_feed['insta_popup-profile'];
257
+ }
258
+ if (isset($old_instagram_feed['insta_popup-caption'])) {
259
+ $new_instagram_feeds[$id]['popup']['caption'] = $old_instagram_feed['insta_popup-caption'];
260
+ }
261
+ if (isset($old_instagram_feed['insta_popup-likes'])) {
262
+ $new_instagram_feeds[$id]['popup']['likes'] = $old_instagram_feed['insta_popup-likes'];
263
+ }
264
+ if (isset($old_instagram_feed['insta_popup-align'])) {
265
+ $new_instagram_feeds[$id]['popup']['align'] = $old_instagram_feed['insta_popup-align'];
266
+ }
267
+ if (isset($old_instagram_feed['insta_button_load'])) {
268
+ $new_instagram_feeds[$id]['button_load']['display'] = $old_instagram_feed['insta_button_load'];
269
+ }
270
+ if (isset($old_instagram_feed['insta_button_load-text'])) {
271
+ $new_instagram_feeds[$id]['button_load']['text'] = $old_instagram_feed['insta_button_load-text'];
272
+ }
273
+ if (isset($old_instagram_feed['insta_button_load-background'])) {
274
+ $new_instagram_feeds[$id]['button_load']['background'] = $old_instagram_feed['insta_button_load-background'];
275
+ }
276
+ if (isset($old_instagram_feed['insta_button_load-background-hover'])) {
277
+ $new_instagram_feeds[$id]['button_load']['background_hover'] = $old_instagram_feed['insta_button_load-background-hover'];
278
+ }
279
+ if (isset($old_instagram_feed['insta_card'])) {
280
+ $new_instagram_feeds[$id]['card']['display'] = $old_instagram_feed['insta_card'];
281
+ }
282
+ if (isset($old_instagram_feed['insta_card-radius'])) {
283
+ $new_instagram_feeds[$id]['card']['radius'] = $old_instagram_feed['insta_card-radius'];
284
+ }
285
+ if (isset($old_instagram_feed['insta_card-font-size'])) {
286
+ $new_instagram_feeds[$id]['card']['font_size'] = $old_instagram_feed['insta_card-font-size'];
287
+ }
288
+ if (isset($old_instagram_feed['insta_card-background'])) {
289
+ $new_instagram_feeds[$id]['card']['background'] = $old_instagram_feed['insta_card-background'];
290
+ }
291
+ if (isset($old_instagram_feed['insta_card-padding'])) {
292
+ $new_instagram_feeds[$id]['card']['padding'] = $old_instagram_feed['insta_card-padding'];
293
+ }
294
+ if (isset($old_instagram_feed['insta_card-info'])) {
295
+ $new_instagram_feeds[$id]['card']['info'] = $old_instagram_feed['insta_card-info'];
296
+ }
297
+ if (isset($old_instagram_feed['insta_card-length'])) {
298
+ $new_instagram_feeds[$id]['card']['length'] = $old_instagram_feed['insta_card-length'];
299
+ }
300
+ if (isset($old_instagram_feed['insta_card-caption'])) {
301
+ $new_instagram_feeds[$id]['card']['caption'] = $old_instagram_feed['insta_card-caption'];
302
+ }
303
+ }
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
 
337
+ public static function instance() {
338
+ if (!isset(self::$instance)) {
339
+ self::$instance = new self();
340
+ //self::$instance->defaults();
341
+ self::$instance->init();
342
+ }
343
+ return self::$instance;
 
 
 
 
 
 
 
 
 
 
344
  }
 
 
345
 
346
  }
347
 
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,16 +1,22 @@
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)) {
15
  self::$instance = new self();
16
  self::$instance->init();
@@ -18,43 +24,51 @@ class QLIGG_Account_Controller extends QLIGG_Controller {
18
  return 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
 
@@ -62,37 +76,89 @@ class QLIGG_Account_Controller extends QLIGG_Controller {
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();
83
  }
84
 
85
- function add_js() {
 
86
 
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)) {
@@ -100,7 +166,6 @@ class QLIGG_Account_Controller extends QLIGG_Controller {
100
  wp_enqueue_style('qligg-admin');
101
  }
102
  }
103
-
104
  }
105
 
106
- QLIGG_Account_Controller ::instance();
1
  <?php
2
 
3
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Account.php');
4
+ include_once(QLIGG_PLUGIN_DIR . 'includes/models/Feed.php');
5
  include_once(QLIGG_PLUGIN_DIR . 'includes/controllers/QLIGG_Controller.php');
6
 
7
+ class QLIGG_Account_Controller extends QLIGG_Controller
8
+ {
9
 
10
  protected static $instance;
11
  protected static $slug = 'qligg_account';
12
 
13
+ // protected static $slug = QLIGG_DOMAIN . '_account';
14
+
15
+ public static function instance()
16
+ {
17
+
18
+ //print_r($_REQUEST);
19
 
 
20
  if (!isset(self::$instance)) {
21
  self::$instance = new self();
22
  self::$instance->init();
24
  return self::$instance;
25
  }
26
 
27
+ function init()
28
+ {
29
+ add_action('admin_init', array($this, 'add_account'));
30
  add_action('wp_ajax_qligg_delete_account', array($this, 'ajax_delete_account'));
31
  add_action('admin_enqueue_scripts', array($this, 'add_js'));
32
  add_action('admin_menu', array($this, 'add_menu'));
33
  }
34
 
35
+ function add_menu()
36
+ {
37
  add_submenu_page(QLIGG_DOMAIN, esc_html__('Accounts', 'insta-gallery'), esc_html__('Accounts', 'insta-gallery'), 'manage_options', self::$slug, array($this, 'add_panel'));
38
  }
39
 
40
+ function add_panel()
41
+ {
42
+ global $submenu, $qligg_instagram, $qligg_facebook;
43
  $account_model = new QLIGG_Account();
44
  $accounts = $account_model->get_accounts();
45
 
46
+ include(QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
47
+ include(QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/accounts.php');
48
  }
49
 
50
+ /*function ajax_add_account()
51
+ {
52
+
53
+ if (!empty($_REQUEST['account_data']) && current_user_can('manage_options') && check_ajax_referer('qligg_add_account', 'nonce', false)) {
54
+
55
+ $account_data = array();
56
 
57
+ parse_str(parse_url(urldecode($_REQUEST['account_data']), PHP_URL_QUERY), $account_data);
58
 
59
+ var_dump($account_data);
60
 
61
+ if (empty($account_data['id'])) {
62
  parent::error_ajax(esc_html__('Empty access account', 'insta-gallery'));
63
  }
64
 
65
+ $account_data = $account_data;
66
  $account_model = new QLIGG_Account();
67
  $accounts = $account_model->get_accounts();
68
 
69
  $account_model->add_account($account_data);
70
 
71
+ if (isset($accounts[$account_data['id']])) { // && $accounts[$account_data['id']] == $account_data) {
72
  parent::error_ajax(esc_html__('Account already connected. To connect a new account logout from Instagram in this browser.', 'insta-gallery'));
73
  }
74
 
76
  }
77
 
78
  parent::error_access_denied();
79
+ }*/
80
+
81
+ function add_account()
82
+ {
83
+
84
+ if (isset($_REQUEST['accounts'][0]['id'])) {
85
+
86
+ $account_model = new QLIGG_Account();
87
+
88
+ foreach ($_REQUEST['accounts'] as $account_data) {
89
+
90
+ if (
91
+ isset($account_data['id']) &&
92
+ isset($account_data['access_token']) &&
93
+ isset($account_data['token_type']) &&
94
+ isset($account_data['expires_in'])
95
+ ) {
96
+
97
+ delete_transient("insta_gallery_v2_user_profile_{$account_data['id']}");
98
+
99
+ $feed_model = new QLIGG_Feed();
100
+
101
+ $tk = "%%insta_gallery_v2_user_media_{$account_data['id']}_%%";
102
+
103
+ $feed_model->clear_cache($tk);
104
+
105
+ $id = sanitize_text_field($account_data['id']);
106
+ $access_token = sanitize_text_field($account_data['access_token']);
107
+ $token_type = sanitize_text_field($account_data['token_type']);
108
+ $expires_in = sanitize_text_field($account_data['expires_in']);
109
+
110
+ $account_model->add_account(array(
111
+ 'id' => $id,
112
+ 'access_token' => $access_token,
113
+ 'token_type' => $token_type,
114
+ 'expires_in' => $expires_in
115
+ ));
116
+ }
117
+ }
118
+
119
+ if (wp_safe_redirect(admin_url('admin.php?page=qligg_account'))) {
120
+ exit;
121
+ }
122
+ }
123
  }
124
 
125
+ function ajax_delete_account()
126
+ {
127
 
128
  if (!empty($_REQUEST['account_id']) && current_user_can('manage_options') && check_ajax_referer('qligg_delete_account', 'nonce', false)) {
129
 
130
  $account_model = new QLIGG_Account();
131
 
132
  $account_id = sanitize_text_field($_REQUEST['account_id']);
 
 
133
 
134
  $account_model->delete_account($account_id);
135
 
136
+ delete_transient("insta_gallery_v2_user_profile_{$account_id}");
137
+
138
+ $feed_model = new QLIGG_Feed();
139
+
140
+ $tk = "%%insta_gallery_v2_user_media_{$account_id}_%%";
141
+
142
+ $feed_model->clear_cache($tk);
143
+
144
  parent::success_ajax(esc_html__('Account removed successfully', 'insta-gallery'));
145
  }
146
 
147
  parent::error_access_denied();
148
  }
149
 
150
+ function add_js()
151
+ {
152
 
153
  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);
154
  wp_localize_script('qligg-admin-account', 'qligg_account', array(
155
+ 'nonce' => array(
156
+ 'qligg_add_account' => wp_create_nonce('qligg_add_account'),
157
+ 'qligg_delete_account' => wp_create_nonce('qligg_delete_account'),
158
+ ),
159
+ 'message' => array(
160
+ 'confirm_delete' => __('Do you want to delete the account?', 'insta-gallery')
161
+ )
162
  ));
163
 
164
  if (isset($_GET['page']) && ($_GET['page'] === self::$slug)) {
166
  wp_enqueue_style('qligg-admin');
167
  }
168
  }
 
169
  }
170
 
171
+ QLIGG_Account_Controller::instance();
includes/controllers/FeedController.php CHANGED
@@ -3,29 +3,34 @@
3
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Feed.php');
4
  include_once(QLIGG_PLUGIN_DIR . 'includes/controllers/QLIGG_Controller.php');
5
 
6
- class QLIGG_Feed_Controller extends QLIGG_Controller {
 
7
 
8
  protected static $instance;
9
  protected static $slug = QLIGG_DOMAIN . '_feeds';
10
 
11
- function add_menu() {
 
12
  add_submenu_page(QLIGG_DOMAIN, esc_html__('Feeds', 'insta-gallery'), esc_html__('Feeds', 'insta-gallery'), 'manage_options', self::$slug, array($this, 'add_panel'));
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');
24
  }
25
 
26
- function get_feed($feed_id) {
 
27
 
28
- function get_the_title1($id) {
 
29
  return ($id == 'all') ? esc_html__('All', 'insta-gallery') : get_the_title($id);
30
  }
31
 
@@ -34,7 +39,8 @@ class QLIGG_Feed_Controller extends QLIGG_Controller {
34
  return $feed;
35
  }
36
 
37
- function ajax_edit_feed() {
 
38
  if (current_user_can('manage_options') && check_ajax_referer('qligg_edit_feed', 'nonce', false)) {
39
 
40
  $feed_id = (isset($_REQUEST['feed_id'])) ? absint($_REQUEST['feed_id']) : -1;
@@ -50,7 +56,8 @@ class QLIGG_Feed_Controller extends QLIGG_Controller {
50
  parent::error_access_denied();
51
  }
52
 
53
- function ajax_save_feed() {
 
54
 
55
  if (isset($_REQUEST['feed']) && current_user_can('manage_options') && check_ajax_referer('qligg_save_feed', 'nonce', false)) {
56
 
@@ -72,7 +79,8 @@ class QLIGG_Feed_Controller extends QLIGG_Controller {
72
  return parent::error_access_denied();
73
  }
74
 
75
- function ajax_delete_feed() {
 
76
 
77
  if (isset($_REQUEST['feed_id']) && current_user_can('manage_options') && check_ajax_referer('qligg_delete_feed', 'nonce', false)) {
78
 
@@ -92,7 +100,8 @@ class QLIGG_Feed_Controller extends QLIGG_Controller {
92
  parent::error_access_denied();
93
  }
94
 
95
- function ajax_clear_cache() {
 
96
 
97
  global $wpdb;
98
 
@@ -110,11 +119,7 @@ class QLIGG_Feed_Controller extends QLIGG_Controller {
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))) {
114
- foreach ($tks as $key => $name) {
115
- delete_transient(str_replace('_transient_', '', $name));
116
- }
117
- }
118
 
119
  return parent::success_ajax(esc_html__('Feed cache cleared', 'insta-gallery'));
120
  }
@@ -122,7 +127,8 @@ class QLIGG_Feed_Controller extends QLIGG_Controller {
122
  parent::error_access_denied();
123
  }
124
 
125
- function init() {
 
126
  add_action('wp_ajax_qligg_edit_feed', array($this, 'ajax_edit_feed'));
127
  add_action('wp_ajax_qligg_save_feed', array($this, 'ajax_save_feed'));
128
  add_action('wp_ajax_qligg_delete_feed', array($this, 'ajax_delete_feed'));
@@ -131,33 +137,38 @@ class QLIGG_Feed_Controller extends QLIGG_Controller {
131
  add_action('admin_menu', array($this, 'add_menu'));
132
  }
133
 
134
- function add_js() {
 
135
  if (isset($_GET['page']) && ($_GET['page'] === self::$slug)) {
136
  $feed_model = new QLIGG_Feed();
 
 
137
  wp_enqueue_script('qligg-admin-feed', plugins_url('/assets/backend/js/qligg-admin-feed' . QLIGG::is_min() . '.js', QLIGG_PLUGIN_FILE), array('wp-util', 'jquery', 'backbone', 'jquery-serializejson', 'wp-color-picker-alpha', 'jquery-ui-sortable'), QLIGG_PLUGIN_VERSION, true);
138
  wp_localize_script('qligg-admin-feed', 'qligg_feed', array(
139
- 'nonce' => array(
140
- 'qligg_edit_feed' => wp_create_nonce('qligg_edit_feed'),
141
- 'qligg_save_feed' => wp_create_nonce('qligg_save_feed'),
142
- 'qligg_delete_feed' => wp_create_nonce('qligg_delete_feed'),
143
- 'qligg_clear_cache' => wp_create_nonce('qligg_clear_cache'),
144
- ),
145
- 'message' => array(
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
 
153
- public static function instance() {
 
154
  if (!isset(self::$instance)) {
155
  self::$instance = new self();
156
  self::$instance->init();
157
  }
158
  return self::$instance;
159
  }
160
-
161
  }
162
 
163
  QLIGG_Feed_Controller::instance();
3
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Feed.php');
4
  include_once(QLIGG_PLUGIN_DIR . 'includes/controllers/QLIGG_Controller.php');
5
 
6
+ class QLIGG_Feed_Controller extends QLIGG_Controller
7
+ {
8
 
9
  protected static $instance;
10
  protected static $slug = QLIGG_DOMAIN . '_feeds';
11
 
12
+ function add_menu()
13
+ {
14
  add_submenu_page(QLIGG_DOMAIN, esc_html__('Feeds', 'insta-gallery'), esc_html__('Feeds', 'insta-gallery'), 'manage_options', self::$slug, array($this, 'add_panel'));
15
  }
16
 
17
+ function add_panel()
18
+ {
19
+ global $submenu, $qligg_instagram;
20
  $feed_model = new QLIGG_Feed();
21
  $feeds = $feed_model->get_feeds();
22
  $account_model = new QLIGG_Account();
23
  $accounts = $account_model->get_accounts();
24
 
25
+ include(QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/parts/header.php');
26
+ include(QLIGG_PLUGIN_DIR . '/includes/view/backend/pages/feeds.php');
27
  }
28
 
29
+ function get_feed($feed_id)
30
+ {
31
 
32
+ function get_the_title1($id)
33
+ {
34
  return ($id == 'all') ? esc_html__('All', 'insta-gallery') : get_the_title($id);
35
  }
36
 
39
  return $feed;
40
  }
41
 
42
+ function ajax_edit_feed()
43
+ {
44
  if (current_user_can('manage_options') && check_ajax_referer('qligg_edit_feed', 'nonce', false)) {
45
 
46
  $feed_id = (isset($_REQUEST['feed_id'])) ? absint($_REQUEST['feed_id']) : -1;
56
  parent::error_access_denied();
57
  }
58
 
59
+ function ajax_save_feed()
60
+ {
61
 
62
  if (isset($_REQUEST['feed']) && current_user_can('manage_options') && check_ajax_referer('qligg_save_feed', 'nonce', false)) {
63
 
79
  return parent::error_access_denied();
80
  }
81
 
82
+ function ajax_delete_feed()
83
+ {
84
 
85
  if (isset($_REQUEST['feed_id']) && current_user_can('manage_options') && check_ajax_referer('qligg_delete_feed', 'nonce', false)) {
86
 
100
  parent::error_access_denied();
101
  }
102
 
103
+ function ajax_clear_cache()
104
+ {
105
 
106
  global $wpdb;
107
 
119
  $tk = "%%insta_gallery_v2_tag_media_{$feed['tag']}_%%";
120
  }
121
 
122
+ $feed_model->clear_cache($tk);
 
 
 
 
123
 
124
  return parent::success_ajax(esc_html__('Feed cache cleared', 'insta-gallery'));
125
  }
127
  parent::error_access_denied();
128
  }
129
 
130
+ function init()
131
+ {
132
  add_action('wp_ajax_qligg_edit_feed', array($this, 'ajax_edit_feed'));
133
  add_action('wp_ajax_qligg_save_feed', array($this, 'ajax_save_feed'));
134
  add_action('wp_ajax_qligg_delete_feed', array($this, 'ajax_delete_feed'));
137
  add_action('admin_menu', array($this, 'add_menu'));
138
  }
139
 
140
+ function add_js()
141
+ {
142
  if (isset($_GET['page']) && ($_GET['page'] === self::$slug)) {
143
  $feed_model = new QLIGG_Feed();
144
+ $account_model = new QLIGG_Account();
145
+ wp_enqueue_media();
146
  wp_enqueue_script('qligg-admin-feed', plugins_url('/assets/backend/js/qligg-admin-feed' . QLIGG::is_min() . '.js', QLIGG_PLUGIN_FILE), array('wp-util', 'jquery', 'backbone', 'jquery-serializejson', 'wp-color-picker-alpha', 'jquery-ui-sortable'), QLIGG_PLUGIN_VERSION, true);
147
  wp_localize_script('qligg-admin-feed', 'qligg_feed', array(
148
+ 'nonce' => array(
149
+ 'qligg_edit_feed' => wp_create_nonce('qligg_edit_feed'),
150
+ 'qligg_save_feed' => wp_create_nonce('qligg_save_feed'),
151
+ 'qligg_delete_feed' => wp_create_nonce('qligg_delete_feed'),
152
+ 'qligg_clear_cache' => wp_create_nonce('qligg_clear_cache'),
153
+ ),
154
+ 'message' => array(
155
+ 'confirm_delete' => __('Do you want to delete the feed?', 'insta-gallery'),
156
+ 'confirm_clear_cache' => __('Do you want to delete the feed?', 'insta-gallery')
157
+ ),
158
+ 'accounts' => $account_model->get_accounts(),
159
+ 'args' => $feed_model->get_args()
160
+ ));
161
  }
162
  }
163
 
164
+ public static function instance()
165
+ {
166
  if (!isset(self::$instance)) {
167
  self::$instance = new self();
168
  self::$instance->init();
169
  }
170
  return self::$instance;
171
  }
 
172
  }
173
 
174
  QLIGG_Feed_Controller::instance();
includes/frontend.php CHANGED
@@ -1,10 +1,10 @@
1
  <?php
2
- include_once(QLIGG_PLUGIN_DIR . 'includes/models/Feed.php');
3
  if (!defined('ABSPATH'))
4
  exit;
5
 
6
- if (!class_exists('QLIGG_Frontend')) {
7
 
 
8
 
9
  class QLIGG_Frontend
10
  {
@@ -47,7 +47,7 @@ if (!class_exists('QLIGG_Frontend')) {
47
  }
48
 
49
  if ($feed['type'] == 'tag') {
50
- return qligg_get_tag_items($feed['tag'], $feed['limit'], $next_max_id);
51
  }
52
  }
53
 
@@ -57,7 +57,7 @@ if (!class_exists('QLIGG_Frontend')) {
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,7 +99,7 @@ if (!class_exists('QLIGG_Frontend')) {
99
  }
100
 
101
  $messages = array(
102
- $qligg_api_v2->getMessage()
103
  );
104
 
105
  include($this->template_path('alert.php'));
@@ -124,9 +124,7 @@ if (!class_exists('QLIGG_Frontend')) {
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();
@@ -150,25 +148,22 @@ if (!class_exists('QLIGG_Frontend')) {
150
 
151
  if (isset($feed['type'])) {
152
 
153
- if ($feed['type'] == 'username') {
154
 
 
155
  $profile_info = qligg_get_user_profile($feed['username']);
156
- } else {
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
 
@@ -199,6 +194,7 @@ if (!class_exists('QLIGG_Frontend')) {
199
 
200
  $options = $instagram_feed = $feed;
201
 
 
202
  wp_enqueue_style('insta-gallery');
203
  wp_enqueue_script('insta-gallery');
204
 
@@ -283,6 +279,9 @@ if (!class_exists('QLIGG_Frontend')) {
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
 
1
  <?php
 
2
  if (!defined('ABSPATH'))
3
  exit;
4
 
5
+ include_once(QLIGG_PLUGIN_DIR . 'includes/models/Feed.php');
6
 
7
+ if (!class_exists('QLIGG_Frontend')) {
8
 
9
  class QLIGG_Frontend
10
  {
47
  }
48
 
49
  if ($feed['type'] == 'tag') {
50
+ return qligg_get_tag_items($feed['username'], $feed['tag'], $feed['limit'], $next_max_id);
51
  }
52
  }
53
 
57
  function ajax_load_item_images()
58
  {
59
 
60
+ global $qligg_instagram;
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_instagram->getMessage()
103
  );
104
 
105
  include($this->template_path('alert.php'));
124
  function do_shortcode($atts, $content = null)
125
  {
126
 
127
+ global $qligg_instagram;
 
 
128
 
129
  $feed_model = new QLIGG_Feed();
130
  $feeds = $feed_model->get_feeds();
148
 
149
  if (isset($feed['type'])) {
150
 
151
+ $profile_info = $feed['profile'];
152
 
153
+ if ($feed['type'] == 'username') {
154
  $profile_info = qligg_get_user_profile($feed['username']);
 
 
 
 
155
 
156
+ $feed['profile'] = array_merge($profile_info, $feed['profile']);
157
+ }
158
 
159
+ }
160
 
161
+ $profile_info['user'] = @$profile_info['username'];
162
+ $profile_info['name'] = @$profile_info['name'];
163
+ $profile_info['pic_url'] = @$profile_info['profile_picture_url'];
164
+ $profile_info['picture'] = @$profile_info['profile_picture_url'];
165
 
166
+ $feed['box']['desc'] = $feed['profile']['biography'];
 
 
167
 
168
  $feed['spacing'] = $feed['spacing'] / 2;
169
 
194
 
195
  $options = $instagram_feed = $feed;
196
 
197
+
198
  wp_enqueue_style('insta-gallery');
199
  wp_enqueue_script('insta-gallery');
200
 
279
  add_action('wp_ajax_nopriv_qligg_load_item_images', array($this, 'ajax_load_item_images'));
280
  add_action('wp_ajax_qligg_load_item_images', array($this, 'ajax_load_item_images'));
281
  add_action('wp_enqueue_scripts', array($this, 'add_js'));
282
+ //1326
283
+ add_action('admin_enqueue_scripts', array($this, 'add_js'));
284
+
285
  add_shortcode('insta-gallery', array($this, 'do_shortcode'));
286
  }
287
 
includes/helpers.php CHANGED
@@ -3,9 +3,10 @@
3
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Token.php');
4
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Setting.php');
5
 
6
- function qligg_sanitize_instagram_feed($feed) {
 
7
 
8
- global $qligg_api_v2;
9
 
10
  // Removing @, # and trimming input
11
  // ---------------------------------------------------------------------
@@ -15,7 +16,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_v2->instagram_url, '', $feed);
19
  $feed = str_replace('/explore/tags/', '', $feed);
20
  $feed = str_replace('/', '', $feed);
21
 
@@ -24,19 +25,21 @@ function qligg_sanitize_instagram_feed($feed) {
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)) {
@@ -62,25 +65,18 @@ function qligg_get_user_profile($account_id = null) {
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();
@@ -94,18 +90,18 @@ function qligg_get_user_profile($account_id = null) {
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)) {
@@ -118,13 +114,13 @@ function qligg_get_tag_profile($hashtag = null) {
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
 
@@ -139,31 +135,28 @@ function qligg_get_tag_profile($hashtag = null) {
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
 
@@ -172,7 +165,13 @@ function qligg_get_user_media($account_id = null, $limit = 12, $last_id = null,
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;
@@ -188,7 +187,7 @@ function qligg_get_user_media($account_id = null, $limit = 12, $last_id = null,
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;
@@ -212,22 +211,20 @@ function qligg_get_user_media($account_id = null, $limit = 12, $last_id = null,
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;
@@ -243,7 +240,7 @@ function qligg_get_tag_items($hashtag = null, $limit = 12, $last_id = null, $aft
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;
@@ -263,5 +260,5 @@ function qligg_get_tag_items($hashtag = null, $limit = 12, $last_id = null, $aft
263
 
264
  $after = $response['paging']['cursors']['after'];
265
 
266
- return array_merge($feeds, qligg_get_tag_items($hashtag, $limit, $last_id, $after));
267
  }
3
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Token.php');
4
  include_once(QLIGG_PLUGIN_DIR . 'includes/models/Setting.php');
5
 
6
+ function qligg_sanitize_instagram_feed($feed)
7
+ {
8
 
9
+ global $qligg_instagram;
10
 
11
  // Removing @, # and trimming input
12
  // ---------------------------------------------------------------------
16
  $feed = trim($feed);
17
  $feed = str_replace('@', '', $feed);
18
  $feed = str_replace('#', '', $feed);
19
+ $feed = str_replace($qligg_instagram->instagram_url, '', $feed);
20
  $feed = str_replace('/explore/tags/', '', $feed);
21
  $feed = str_replace('/', '', $feed);
22
 
25
 
26
  // Return user profile
27
  // -----------------------------------------------------------------------------
28
+ function qligg_get_user_profile($account_id = null)
29
+ {
30
 
31
+ global $qligg_instagram, $qligg_facebook, $qligg_api;
32
 
33
  $defaults = array(
34
+ 'id' => $account_id,
35
+ 'username' => '',
36
+ 'website' => '',
37
+ 'biography' => '',
38
+ 'name' => '',
39
+ 'followers_count' => 0,
40
+ 'media_count' => 0,
41
+ 'profile_picture_url' => 'http://2.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=320&d=mm&r=g',
42
+ 'link' => '',
43
  );
44
 
45
  if (empty($account_id)) {
65
  //detect token type old || new
66
  //validate token based on type
67
 
68
+ if ($account['token_type'] === 'BASIC') {
 
69
  $_profile_info = $qligg_api->get_user_profile($account['access_token']);
70
+ $_profile_info['name'] = __('This token expires soon!');
 
 
 
 
 
 
 
 
71
  }
72
 
73
+ if ($account['token_type'] === 'PERSONAL') {
74
+ $_profile_info = $qligg_instagram->getUserProfile($account['access_token']);
75
+ }
76
 
77
+ if ($account['token_type'] === 'BUSINESS') {
78
+ $_profile_info = $qligg_facebook->getUserProfile($account_id, $account['access_token']);
79
+ }
80
 
81
  $settings_model = new QLIGG_Setting();
82
  $settings = $settings_model->get_settings();
90
 
91
  // Return tag info
92
  // -----------------------------------------------------------------------------
93
+ function qligg_get_tag_profile($hashtag = null)
94
+ {
95
 
96
+ global $qligg_facebook;
97
 
98
  $defaults = array(
99
+ 'id' => '',
100
+ 'account_type' => 'TAG',
101
+ 'username' => $hashtag,
102
+ 'name' => $hashtag,
103
+ 'profile_picture_url' => 'http://2.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=150&d=mm&r=g',
104
+ 'link' => "{$qligg_facebook->instagram_url}/explore/tags/{$hashtag}"
 
105
  );
106
 
107
  if (empty($hashtag)) {
114
  return wp_parse_args($profile_info, $defaults);
115
  }
116
 
117
+ // if (!$hashtag_id = $qligg_facebook->getTagId($hashtag)) {
118
+ // return $defaults;
119
+ // }
120
 
121
  $_profile_info = array();
122
 
123
+ //$_profile_info['id'] = $hashtag_id;
124
 
125
  // business token to get profile pic
126
 
135
 
136
  // Get user feed
137
  // -----------------------------------------------------------------------------
138
+ function qligg_get_user_media($account_id = null, $limit = 12, $last_id = null, $after = null)
139
+ {
140
 
141
+ global $qligg_instagram, $qligg_facebook, $qligg_api;
142
 
143
  if (!$account_id) {
144
+ $qligg_instagram->setMessage(esc_html__('Please update Instagram User in the feed settings.', 'insta-gallery'));
145
  return;
146
  }
147
 
148
  $account_model = new QLIGG_Account();
149
 
 
 
150
  $account = $account_model->get_account($account_id);
151
 
 
 
152
  if (!isset($account['access_token'])) {
153
+ $qligg_instagram->setMessage(esc_html__('Please update Instagram Access Token in the account settings.', 'insta-gallery'));
154
  return;
155
  }
156
 
157
  // compatibility with 2.7.1
158
  // ---------------------------------------------------------------------------
159
+ if ($account['token_type'] === 'BASIC' && $qligg_api->validate_token($account['access_token'])) {
160
  return qligg_get_user_items_old($account_id, $limit, $last_id, $after);
161
  }
162
 
165
  // Get any existing copy of our transient data
166
  if (QLIGG_DEVELOPER || false === ($response = get_transient($tk))) {
167
 
168
+ if ($account['token_type'] === 'PERSONAL') {
169
+ $response = $qligg_instagram->getUserMedia($account['access_token'], $after);
170
+ }
171
+
172
+ if ($account['token_type'] === 'BUSINESS') {
173
+ $response = $qligg_facebook->getUserMedia($account_id, $account['access_token'], $after);
174
+ }
175
 
176
  if (!isset($response['data'])) {
177
  return;
187
  set_transient($tk, $response, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
188
  }
189
 
190
+ $feeds = $qligg_instagram->setupMediaItems($response['data'], $last_id);
191
 
192
  if (!$last_id) {
193
  return $feeds;
211
  }
212
 
213
  // Get tag items
214
+ // ----------------------------------------------------------------------------
215
+ //function qligg_get_user_media($account_id = null, $limit = 12, $last_id = null, $after = null) {
216
 
217
+ function qligg_get_tag_items($account_id = null, $hashtag = null, $limit = 12, $last_id = null, $after = null)
218
+ {
219
 
220
+ global $qligg_facebook;
 
 
 
221
 
222
  $tk = "insta_gallery_v2_tag_media_{$hashtag}_{$after}";
223
 
224
  // Get any existing copy of our transient data
225
  if (QLIGG_DEVELOPER || false === ($response = get_transient($tk))) {
226
 
227
+ $response = $qligg_facebook->getTagMedia($account_id, $hashtag, $after);
228
 
229
  if (!isset($response['data'])) {
230
  return;
240
  set_transient($tk, $response, absint($settings['insta_reset']) * HOUR_IN_SECONDS);
241
  }
242
 
243
+ $feeds = $qligg_facebook->setupMediaItems($response['data'], $last_id);
244
 
245
  if (!$last_id) {
246
  return $feeds;
260
 
261
  $after = $response['paging']['cursors']['after'];
262
 
263
+ return array_merge($feeds, qligg_get_tag_items($account_id, $hashtag, $limit, $last_id, $after));
264
  }
includes/models/Account.php CHANGED
@@ -2,26 +2,31 @@
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
 
@@ -30,7 +35,8 @@ class QLIGG_Account extends QLIGG_Model {
30
  }
31
  }
32
 
33
- function get_accounts() {
 
34
 
35
  $accounts = $this->get_all();
36
  //make sure each account has all values
@@ -42,30 +48,36 @@ class QLIGG_Account extends QLIGG_Model {
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) {
@@ -75,7 +87,8 @@ class QLIGG_Account extends QLIGG_Model {
75
  }
76
  }
77
 
78
- function clean_token($maybe_dirty) {
 
79
  if (substr_count($maybe_dirty, '.') < 3) {
80
  return str_replace('634hgdf83hjdj2', '', $maybe_dirty);
81
  }
@@ -87,8 +100,8 @@ class QLIGG_Account extends QLIGG_Model {
87
  return $cleaned;
88
  }
89
 
90
- function expiration_date($expires_in) {
 
91
  return strtotime(current_time('mysql')) + $expires_in - 1;
92
  }
93
-
94
  }
2
 
3
  include_once 'QLIGG_Model.php';
4
 
5
+ class QLIGG_Account extends QLIGG_Model
6
+ {
7
 
8
  protected $table = 'insta_gallery_accounts';
9
 
10
+ function get_args()
11
+ {
12
  return array(
13
+ 'id' => '',
14
+ 'account_type' => '',
15
+ 'username' => '',
16
+ 'profile_picture_url' => '',
17
+ 'access_token' => '',
18
+ 'token_type' => '',
19
+ 'expiration_date' => '',
20
  );
21
  }
22
 
23
+ function get_defaults()
24
+ {
25
+ return array();
26
  }
27
 
28
+ function get_account($id)
29
+ {
30
 
31
  $accounts = $this->get_accounts();
32
 
35
  }
36
  }
37
 
38
+ function get_accounts()
39
+ {
40
 
41
  $accounts = $this->get_all();
42
  //make sure each account has all values
48
  return $accounts;
49
  }
50
 
51
+ function update_account($account_data)
52
+ {
53
  return $this->save_account($account_data);
54
  }
55
 
56
+ function update_accounts($accounts, $order = 0)
57
+ {
58
  return $this->save_all($accounts);
59
  }
60
 
61
+ function add_account($account_data)
62
+ {
 
 
 
63
 
64
+ if ($account_data['id']) {
65
+ $account_data['access_token'] = $this->clean_token($account_data['access_token']);
66
+ $account_data['expiration_date'] = $this->expiration_date($account_data['expires_in']);
67
+ $account_data = array_intersect_key($account_data, $this->get_args());
68
+ return $this->save_account($account_data);
69
+ }
70
  }
71
 
72
+ function save_account($account_data = null)
73
+ {
74
  $accounts = $this->get_accounts();
75
  $accounts[$account_data['id']] = array_replace_recursive($this->get_args(), $account_data);
76
  return $this->save_all($accounts);
77
  }
78
 
79
+ function delete_account($id = null)
80
+ {
81
  $accounts = $this->get_all();
82
  if ($accounts) {
83
  if (count($accounts) > 0) {
87
  }
88
  }
89
 
90
+ function clean_token($maybe_dirty)
91
+ {
92
  if (substr_count($maybe_dirty, '.') < 3) {
93
  return str_replace('634hgdf83hjdj2', '', $maybe_dirty);
94
  }
100
  return $cleaned;
101
  }
102
 
103
+ function expiration_date($expires_in)
104
+ {
105
  return strtotime(current_time('mysql')) + $expires_in - 1;
106
  }
 
107
  }
includes/models/Feed.php CHANGED
@@ -12,8 +12,8 @@ class QLIGG_Feed extends QLIGG_Model
12
  return array(
13
  'id' => 1,
14
  'order' => 1,
15
- 'username' => '',
16
- 'type' => 'tag',
17
  'tag' => 'wordpress',
18
  'layout' => 'gallery',
19
  'limit' => 12,
@@ -27,9 +27,14 @@ class QLIGG_Feed extends QLIGG_Model
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,
@@ -164,4 +169,15 @@ class QLIGG_Feed extends QLIGG_Model
164
  }
165
  }
166
  }
 
 
 
 
 
 
 
 
 
 
 
167
  }
12
  return array(
13
  'id' => 1,
14
  'order' => 1,
15
+ 'username' => '', // rename to account_id
16
+ 'type' => 'username',
17
  'tag' => 'wordpress',
18
  'layout' => 'gallery',
19
  'limit' => 12,
27
  ),
28
  'profile' => array(
29
  'auto' => false, // only for business token
30
+ 'username' => '',
31
+ 'website' => '',
32
+ 'biography' => '',
33
+ 'name' => '',
34
+ 'followers_count' => 0,
35
+ 'media_count' => 0,
36
+ 'link' => '',
37
+ 'profile_picture_url' => 'http://2.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=150&d=mm&r=g',
38
  ),
39
  'box' => array(
40
  'display' => false,
169
  }
170
  }
171
  }
172
+
173
+ function clear_cache($tk)
174
+ {
175
+ global $wpdb;
176
+
177
+ if ($tks = $wpdb->get_row($wpdb->prepare("SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE %s", $tk))) {
178
+ foreach ($tks as $key => $name) {
179
+ delete_transient(str_replace('_transient_', '', $name));
180
+ }
181
+ }
182
+ }
183
  }
includes/models/QLIGG_Model.php CHANGED
@@ -5,47 +5,6 @@ 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
 
51
  if (!$this->table) {
@@ -53,6 +12,8 @@ class QLIGG_Model {
53
  die();
54
  }
55
 
 
 
56
  return update_option($this->table, $data);
57
  }
58
 
@@ -64,7 +25,6 @@ class QLIGG_Model {
64
  }
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
 
5
  private $cache = array();
6
  protected $table = null;
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  function save_all($data = null) {
9
 
10
  if (!$this->table) {
12
  die();
13
  }
14
 
15
+ $this->cache[$this->table] = $data;
16
+
17
  return update_option($this->table, $data);
18
  }
19
 
25
  }
26
 
27
  if (!isset($this->cache[$this->table])) {
 
28
  $this->cache[$this->table] = get_option($this->table, $this->get_defaults());
29
  }
30
 
includes/qligg.php CHANGED
@@ -1,10 +1,12 @@
1
  <?php
2
 
3
- class QLIGG {
 
4
 
5
  protected static $instance;
6
 
7
- public static function instance() {
 
8
  if (!isset(self::$instance)) {
9
  self::$instance = new self();
10
  self::$instance->api();
@@ -14,13 +16,15 @@ class QLIGG {
14
  return self::$instance;
15
  }
16
 
17
- function init() {
 
18
  add_action('widgets_init', array($this, 'register_widget'));
19
  do_action('qligg_init');
20
  load_plugin_textdomain('insta-gallery', false, QLIGG_PLUGIN_DIR . '/languages/');
21
  }
22
 
23
- function includes() {
 
24
  include_once(QLIGG_PLUGIN_DIR . 'includes/notices.php');
25
  include_once(QLIGG_PLUGIN_DIR . 'includes/helpers.php');
26
  include_once(QLIGG_PLUGIN_DIR . 'includes/widget.php');
@@ -29,15 +33,17 @@ class QLIGG {
29
  include_once(QLIGG_PLUGIN_DIR . 'includes/frontend.php');
30
  }
31
 
32
- function register_widget() {
 
33
  if (class_exists('QLIGG_Widget')) {
34
  register_widget('QLIGG_Widget');
35
  }
36
  }
37
 
38
- function api() {
 
39
 
40
- global $qligg_api, $qligg_api_v2;
41
 
42
  if (!class_exists('QLIGG_API')) {
43
 
@@ -46,25 +52,32 @@ class QLIGG {
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() {
 
58
  set_transient('qligg-first-rating', true, MONTH_IN_SECONDS);
59
  }
60
 
61
- public static function is_min() {
 
62
  if (!QLIGG_DEVELOPER && (!defined('SCRIPT_DEBUG') || !SCRIPT_DEBUG)) {
63
  return '.min';
64
  }
65
  }
66
-
67
  }
68
 
69
  QLIGG::instance();
70
-
1
  <?php
2
 
3
+ class QLIGG
4
+ {
5
 
6
  protected static $instance;
7
 
8
+ public static function instance()
9
+ {
10
  if (!isset(self::$instance)) {
11
  self::$instance = new self();
12
  self::$instance->api();
16
  return self::$instance;
17
  }
18
 
19
+ function init()
20
+ {
21
  add_action('widgets_init', array($this, 'register_widget'));
22
  do_action('qligg_init');
23
  load_plugin_textdomain('insta-gallery', false, QLIGG_PLUGIN_DIR . '/languages/');
24
  }
25
 
26
+ function includes()
27
+ {
28
  include_once(QLIGG_PLUGIN_DIR . 'includes/notices.php');
29
  include_once(QLIGG_PLUGIN_DIR . 'includes/helpers.php');
30
  include_once(QLIGG_PLUGIN_DIR . 'includes/widget.php');
33
  include_once(QLIGG_PLUGIN_DIR . 'includes/frontend.php');
34
  }
35
 
36
+ function register_widget()
37
+ {
38
  if (class_exists('QLIGG_Widget')) {
39
  register_widget('QLIGG_Widget');
40
  }
41
  }
42
 
43
+ function api()
44
+ {
45
 
46
+ global $qligg_api, $qligg_instagram, $qligg_facebook;
47
 
48
  if (!class_exists('QLIGG_API')) {
49
 
52
  $qligg_api = new QLIGG_API();
53
  }
54
 
55
+ if (!class_exists('QLIGG_API_Instagram')) {
56
 
57
+ include_once(QLIGG_PLUGIN_DIR . 'includes/apiInstagram.php');
58
 
59
+ $qligg_instagram = new QLIGG_API_Instagram();
60
+ }
61
+
62
+ if (!class_exists('QLIGG_API_Facebook')) {
63
+
64
+ include_once(QLIGG_PLUGIN_DIR . 'includes/apiFacebook.php');
65
+
66
+ $qligg_facebook = new QLIGG_API_Facebook();
67
  }
68
  }
69
 
70
+ public static function do_activation()
71
+ {
72
  set_transient('qligg-first-rating', true, MONTH_IN_SECONDS);
73
  }
74
 
75
+ public static function is_min()
76
+ {
77
  if (!QLIGG_DEVELOPER && (!defined('SCRIPT_DEBUG') || !SCRIPT_DEBUG)) {
78
  return '.min';
79
  }
80
  }
 
81
  }
82
 
83
  QLIGG::instance();
 
includes/view/backend/pages/accounts.php CHANGED
@@ -4,11 +4,15 @@
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>
11
- <a id="qligg-add-token" href="javascript:;"><?php esc_html_e('Button not working?', 'insta-gallery'); ?></a>
 
 
 
 
12
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature).', 'insta-gallery'); ?></small></span>
13
  </p>
14
 
@@ -17,12 +21,11 @@
17
  <thead>
18
  <tr>
19
  <th><?php esc_html_e('Image', 'insta-gallery'); ?></th>
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>
@@ -30,34 +33,32 @@
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>
4
  echo 'qligg-premium-field';
5
  }
6
  ?>">
7
+ <a id="qligg-generate-token" target="_self" href="<?php echo esc_url($qligg_instagram->getAccessTokenLink()); ?>" title="<?php esc_html_e('Add Personal Account', 'insta-gallery'); ?>">
8
+ <?php esc_html_e('Add Personal Account', 'insta-gallery'); ?>
9
  </a>
10
+ <a id="qligg-generate-token" target="_self" href="<?php echo esc_url($qligg_facebook->getAccessTokenLink()); ?>" title="<?php esc_html_e('Add Business Account', 'insta-gallery'); ?>">
11
+ <?php esc_html_e('Add Business Account', 'insta-gallery'); ?>
12
+ </a>
13
+ <!-- <span style="float: none; margin-top: 0;" class="spinner"></span> -->
14
+ <a style="margin: 0 30px" target="_blank" href="https://quadlayers.com/documentation/instagram-feed-gallery/api/business/?utm_source=qligg_admin"><?php esc_html_e('Create business account', 'insta-gallery'); ?></a>
15
+ <!-- <a id="qligg-add-token" href="javascript:;"><?php esc_html_e('Button not working?', 'insta-gallery'); ?></a> -->
16
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature).', 'insta-gallery'); ?></small></span>
17
  </p>
18
 
21
  <thead>
22
  <tr>
23
  <th><?php esc_html_e('Image', 'insta-gallery'); ?></th>
24
+ <th><?php esc_html_e('Userame', 'insta-gallery'); ?></th>
25
+ <th><?php esc_html_e('Account', 'insta-gallery'); ?></th>
26
+ <th><?php esc_html_e('Token', 'insta-gallery'); ?></th>
27
  <th><?php esc_html_e('Type', 'insta-gallery'); ?></th>
28
  <th><?php esc_html_e('Expires', 'insta-gallery'); ?></th>
 
29
  <th><?php esc_html_e('Action', 'insta-gallery'); ?></th>
30
  </tr>
31
  </thead>
33
  <?php
34
  foreach ($accounts as $account_id => $account) {
35
 
36
+ $profile = qligg_get_user_profile($account_id);
37
+
38
  ?>
39
+ <tr class="<?php echo esc_attr(strtolower($account['token_type'])); ?>" data-account_id="<?php echo esc_attr($account_id) ?>">
40
  <td width="1%">
41
+ <img class="qligg-avatar" src="<?php echo esc_url($profile['profile_picture_url']); ?>" />
 
 
 
 
 
 
42
  </td>
43
  <td>
44
+ <?php echo esc_html($profile['username']); ?>
45
  </td>
46
  <td>
47
+ <?php echo esc_html($account['id']); ?>
 
 
 
48
  </td>
49
  <td style="width: 300px;">
50
  <input type="hidden" name="account_id" value="<?php echo esc_attr($account_id); ?>">
51
  <input id="<?php echo esc_attr($account_id); ?>-access-token" type="text" value="<?php echo esc_attr($account['access_token']); ?>" readonly />
52
  <a href="javascript:;" data-qligg-copy-token="#<?php echo esc_attr($account_id); ?>-access-token" class="button button-primary">
53
+ <i class="dashicons dashicons-admin-page"></i>
54
  </a>
55
  </td>
56
+ <td>
57
+ <?php echo esc_html($account['token_type']); ?>
58
+ </td>
59
+ <td>
60
+ <?php echo esc_html(date('Y-m-d', (int) $account['expiration_date'])); ?>
61
+ </td>
62
  <td>
63
  <a href="javascript:;" data-qligg-delete-token="<?php echo esc_attr($account_id); ?>" class="button button-secondary">
64
  <i class="dashicons dashicons-trash"></i>
includes/view/backend/pages/feeds.php CHANGED
@@ -4,18 +4,17 @@
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>
9
  </span>-->
 
 
10
  </p>
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>
@@ -29,40 +28,31 @@
29
 
30
  if (!isset($feed['type']))
31
  continue;
32
- if ($feed['type'] == 'username') {
33
- $profile_info = qligg_get_user_profile($feed['username']);
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>
@@ -82,4 +72,15 @@
82
  </form>
83
  </div>
84
 
 
 
 
 
 
 
 
 
 
 
 
85
  <?php include_once('modals/template-scripts-feed.php'); ?>
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="saved"><?php esc_html_e('Saved successfully!'); ?></span>
8
  </span>-->
9
+ <span class="spinner"></span>
10
+ <a style="margin: 0 30px" target="_blank" href="https://quadlayers.com/documentation/instagram-feed-gallery/api/tag/?utm_source=qligg_admin"><?php esc_html_e('Create tag feed', 'insta-gallery'); ?></a>
11
  </p>
12
  <table id="qligg_feeds_table" class="form-table widefat striped">
13
  <thead>
14
  <tr>
15
  <th><?php esc_html_e('Image', 'insta-gallery'); ?></th>
16
+ <th><?php esc_html_e('Token', 'insta-gallery'); ?></th>
 
17
  <th><?php esc_html_e('Feed', 'insta-gallery'); ?></th>
 
18
  <th><?php esc_html_e('Layout', 'insta-gallery'); ?></th>
19
  <th><?php esc_html_e('Shortcode', 'insta-gallery'); ?></th>
20
  <th><?php esc_html_e('Action', 'insta-gallery'); ?></th>
28
 
29
  if (!isset($feed['type']))
30
  continue;
 
 
 
 
 
31
 
32
+ //$profile = qligg_get_user_profile($feed['username']);
33
 
34
+ //$profile = array_merge($profile, array_filter($feed['profile']));
35
+
36
+ $profile = $feed['profile'];
37
 
38
  ?>
39
+ <tr data-feed_id="<?php echo esc_attr($id) ?>" data-feed_position="<?php echo esc_attr($position) ?>">
 
 
 
 
 
 
40
  <td width="1%">
41
+ <img class="qligg-avatar" src="<?php echo esc_url($profile['profile_picture_url']); ?>" />
42
  </td>
43
  <td width="1%">
44
+ <?php echo esc_html($feed['username']); ?>
45
  </td>
46
  <td width="1%">
47
+ <?php echo esc_html($feed['type'] == 'tag' ? $feed['tag'] : $profile['username']); ?>
48
  </td>
49
  <td>
50
  <?php echo esc_html(ucfirst($feed['layout'])); ?>
51
  </td>
52
  <td style="width: 216px;">
53
  <input style="width:142px" id="<?php echo esc_attr($id); ?>-feed-shortcode" type="text" value='[insta-gallery id="<?php echo esc_attr($id); ?>"]' readonly />
54
+ <a href="javascript:;" data-qligg-copy-feed-shortcode="#<?php echo esc_attr($id); ?>-feed-shortcode" class="button button-primary">
55
+ <i class="dashicons dashicons-admin-page"></i>
56
  </a>
57
  </td>
58
  <td>
72
  </form>
73
  </div>
74
 
75
+ <!-- <div class="wrap about-wrap full-width-layout">
76
+ <?php
77
+ // if (count($feeds)) {
78
+
79
+ // $last = end($feeds);
80
+
81
+ // echo do_shortcode('[insta-gallery id="' . $last['id'] . '"]');
82
+ // }
83
+ ?>
84
+ </div> -->
85
+
86
  <?php include_once('modals/template-scripts-feed.php'); ?>
includes/view/backend/pages/modals/feed/main.php CHANGED
@@ -10,7 +10,7 @@
10
  <div class="edit-media-header">
11
  <# if ( data.id != undefined ) { #>
12
  <button type="button" class="media-modal-prev left dashicons" <# if ( data.order == 1 ) { #>disabled="disabled"<# } #>><span class="screen-reader-text"><?php esc_html_e('Edit previous media item'); ?></span></button>
13
- <button type="button" class="media-modal-next right dashicons" <# if ( data.order == <?php echo 0//esc_attr(count($feeds)); ?> ) { #>disabled="disabled"<# } #> ><span class="screen-reader-text"><?php esc_html_e('Edit next media item'); ?></span></button>
14
  <# } #>
15
  <button type="button" class="media-modal-close"><span class="media-modal-icon"><span class="screen-reader-text"><?php esc_html_e('Close dialog'); ?></span></span></button>
16
  </div>
10
  <div class="edit-media-header">
11
  <# if ( data.id != undefined ) { #>
12
  <button type="button" class="media-modal-prev left dashicons" <# if ( data.order == 1 ) { #>disabled="disabled"<# } #>><span class="screen-reader-text"><?php esc_html_e('Edit previous media item'); ?></span></button>
13
+ <button type="button" class="media-modal-next right dashicons" <# if ( data.order == <?php echo esc_attr(count($feeds)); ?> ) { #>disabled="disabled"<# } #> ><span class="screen-reader-text"><?php esc_html_e('Edit next media item'); ?></span></button>
14
  <# } #>
15
  <button type="button" class="media-modal-close"><span class="media-modal-icon"><span class="screen-reader-text"><?php esc_html_e('Close dialog'); ?></span></span></button>
16
  </div>
includes/view/backend/pages/modals/feed/panel-feed-box.php CHANGED
@@ -39,12 +39,12 @@
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>
46
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
47
- </p>
48
  </div>
49
 
50
  </div>
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>
46
  <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
47
+ </p> -->
48
  </div>
49
 
50
  </div>
includes/view/backend/pages/modals/feed/panel-feed-profile.php CHANGED
@@ -16,9 +16,9 @@
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>
@@ -36,15 +36,15 @@
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>
16
 
17
  <div class="settings">
18
  <div class="upload">
19
+ <img id="cavatar-img" class="qligg-avatar" data-src="{{data.profile.profile_picture_url}}" src="{{data.profile.profile_picture_url}}" width="150" height="150" />
20
  <div>
21
+ <input type="hidden" name="profile[profile_picture_url]" id="cavatar" value="{{data.profile.profile_picture_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>
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[name]" type="text" value="{{data.profile.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('Biography', 'insta-gallery'); ?></label>
47
+ <textarea name="profile[biography]" placeholder="<?php esc_html_e('Feed profile biography', 'insta-gallery'); ?>">{{data.profile.biography}}</textarea>
48
  </p>
49
  </div>
50
  </div>
includes/view/backend/pages/modals/feed/panel-feed.php CHANGED
@@ -6,117 +6,131 @@
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<# } #> />
64
  <label for="insta_layout-carousel"><?php esc_html_e('Carousel', 'insta-gallery'); ?></label>
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>
119
- </p>
120
- </div>
121
 
122
  </div>
6
  </p>
7
  </div>
8
 
 
 
 
 
 
 
 
 
 
 
9
  <div class="options_group <?php if (!count($accounts)) { ?>disabled-feature<?php } ?>">
10
 
11
+ <p class="form-field">
12
+ <label><?php esc_html_e('Account', 'insta-gallery'); ?></label>
13
  <select name="username" <# if ( data.username=='username' ) {#>required="required"<#}#>>
14
  <?php foreach ($accounts as $account_id => $account) : ?>
15
  <?php $profile_info = qligg_get_user_profile($account_id); ?>
16
  <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>
17
  <?php endforeach; ?>
18
  </select>
19
+ <span class="description"><small><?php esc_html_e('Please select Instagram account', 'insta-gallery'); ?></small></span>
20
  </p>
 
 
 
 
 
 
 
 
 
 
21
 
22
+
23
+
24
+ <# if (!data.username || !qligg_feed.accounts[data.username]){ #>
25
  <p class="form-field">
26
  <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;">
27
  <strong>
28
+ <?php printf(__('No Instagram account connected. Please connect your account <a href="%s">here</a>.', 'insta-gallery'), admin_url('admin.php?page=qligg_account')); ?>
29
  </strong>
30
  </span>
31
  </p>
32
+ <# } #>
33
+
34
+ <p class="form-field">
35
+ <label><?php esc_html_e('Feed', 'insta-gallery'); ?></label>
36
+ <input type="radio" class="media-modal-render-panels" name="type" value="tag" <# if(data.type=='tag' ) { #>checked="checked"<# } #> />
37
+ <label><?php esc_html_e('Tag', 'insta-gallery'); ?></label>
38
+ <input type="radio" class="media-modal-render-panels" name="type" value="username" <# if(data.type=='username' ) { #>checked="checked"<# } #> />
39
+ <label><?php esc_html_e('Username', 'insta-gallery'); ?></label>
40
+ </p>
41
+
42
+ </div>
43
+
44
+ <# if (data.type=='tag' ){ #>
45
+ <div class="options_group">
46
+ <# if (data.username && qligg_feed.accounts[data.username] && qligg_feed.accounts[data.username].token_type=='BUSINESS' ){ #>
47
+ <p class="form-field <# if ( data.type != 'tag') {#>hidden<#}#>">
48
+ <label><?php esc_html_e('Tag', 'insta-gallery'); ?></label>
49
+ <input name="tag" type="text" <# if ( data.type=='tag' ) {#>required="required"<#}#> placeholder="beautiful" value="{{data.tag}}" />
50
+ <span class="description">
51
+ <small>
52
+ <?php esc_html_e('Please enter Instagram tag', 'insta-gallery'); ?>
53
+ </small>
54
+ </span>
55
+ </p>
56
+ <# } else { #>
57
+ <p class="form-field">
58
+ <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;">
59
+ <strong>
60
+ <?php printf(__('Due to the restrictions of the new Instagram <a target="_blank" href="%s">API</a> it is necessary to connect a business account <a href="%s">here</a>.', 'insta-gallery'), 'https://quadlayers.com/documentation/instagram-feed-gallery/api/business/?utm_source=qligg_admin', admin_url('admin.php?page=qligg_account')); ?>
61
+ </strong>
62
+ </span>
63
+ </p>
64
+ <# } #>
65
  </div>
66
+ <# } #>
67
 
68
+ <div class="options_group">
69
+ <div class="form-field">
70
+ <ul class="list-images">
71
+ <li class="media-modal-image <# if ( data.layout == 'gallery') {#>active<#}#>">
72
+ <input type="radio" name="layout" value="gallery" <# if (data.layout=='gallery' ){ #>checked<# } #> />
73
+ <label for="insta_layout-gallery"><?php esc_html_e('Gallery', 'insta-gallery'); ?></label>
74
+ <img src="<?php echo plugins_url('/assets/backend/img/gallery.png', QLIGG_PLUGIN_FILE); ?>" />
75
+ </li>
76
+ <li class="media-modal-image <# if ( data.layout == 'carousel') {#>active<# } #>">
77
  <input type="radio" name="layout" value="carousel" <# if (data.layout== 'carousel'){ #>checked<# } #> />
78
  <label for="insta_layout-carousel"><?php esc_html_e('Carousel', 'insta-gallery'); ?></label>
79
  <img src="<?php echo plugins_url('/assets/backend/img/carousel.png', QLIGG_PLUGIN_FILE); ?>"/>
80
  </li>
81
  <li class="media-modal-image qligg-premium-field <# if ( data.layout == 'masonry') {#>active<#}#>">
82
+ <input type="radio" name="layout" value="masonry" <# if (data.layout=='masonry' ){ #>checked<# } #> />
83
+ <label for="insta_layout-masonry"><?php esc_html_e('Masonry', 'insta-gallery'); ?>
84
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
85
+ </label>
86
+ <img src="<?php echo plugins_url('/assets/backend/img/masonry.png', QLIGG_PLUGIN_FILE); ?>" />
87
+ </li>
88
+ <li class="media-modal-image qligg-premium-field <# if ( data.layout == 'highlight') {#>active<#}#>">
89
+ <input type="radio" id="insta_layout-highlight" name="layout" value="highlight" <# if (data.layout=='highlight' ){ #>checked<# } #> />
90
+ <label for="insta_layout-highlight"><?php esc_html_e('Highlight', 'insta-gallery'); ?>
91
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
92
+ </label>
93
+ <img src="<?php echo plugins_url('/assets/backend/img/highlight.png', QLIGG_PLUGIN_FILE); ?>" />
94
+ </li>
95
+ </ul>
96
+ </div>
97
+ </div>
98
 
99
+ <div class="options_group">
100
+ <p class="form-field">
101
+ <label><?php esc_html_e('Limit', 'insta-gallery'); ?></label>
102
+ <input name="limit" type="number" min="1" max="33" value="{{data.limit}}" />
103
+ <span class="description"><small><?php esc_html_e('Number of images to display', 'insta-gallery'); ?></small></span>
104
+ </p>
105
+ </div>
106
 
107
+ <div class="options_group <# if(!_.contains(['gallery', 'masonry', 'highlight'], data.layout)) { #>hidden<# } #>">
108
+ <p class="form-field">
109
+ <label><?php esc_html_e('Columns', 'insta-gallery'); ?></label>
110
+ <input name="columns" type="number" min="1" max="20" value="{{data.columns}}" />
111
+ <span class="description"><small><?php esc_html_e('Number of images in a row', 'insta-gallery'); ?></small></span>
112
+ </p>
113
+ </div>
114
 
115
+ <div class="options_group qligg-premium-field <# if(!_.contains(['highlight', 'masonry'], data.layout)) { #>hidden<# } #>">
116
+ <p class="form-field">
117
+ <label><?php esc_html_e('Highlight by tag', 'insta-gallery'); ?></label>
118
+ <textarea name="highlight[tag]" placeholder="tag1, tag2, tag3">{{data.highlight.tag}}</textarea>
119
+ <span class="description"><small><?php esc_html_e('Highlight feeds items with this tags', 'insta-gallery'); ?></small></span>
120
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
121
+ </p>
122
+ <p class="form-field">
123
+ <label><?php esc_html_e('Highlight by id', 'insta-gallery'); ?></label>
124
+ <textarea name="highlight[id]" placeholder="101010110101010">{{data.highlight.id}}</textarea>
125
+ <span class="description"><small><?php esc_html_e('Highlight feeds items with this ids', 'insta-gallery'); ?></small></span>
126
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
127
+ </p>
128
+ <p class="form-field">
129
+ <label><?php esc_html_e('Highlight by position', 'insta-gallery'); ?></label>
130
+ <textarea name="highlight[position]" placeholder="1, 5, 7">{{data.highlight.position}}</textarea>
131
+ <span class="description"><small><?php esc_html_e('Highlight feeds items in this positions', 'insta-gallery'); ?></small></span>
132
+ <span class="description hidden"><small><?php esc_html_e('(This is a premium feature)', 'insta-gallery'); ?></small></span>
133
+ </p>
134
+ </div>
135
 
136
  </div>
insta-gallery.php CHANGED
@@ -4,7 +4,7 @@
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
@@ -19,7 +19,7 @@ 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__);
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.9.1
8
  * Author: QuadLayers
9
  * Author URI: https://quadlayers.com
10
  * License: GPLv3
19
  define('QLIGG_PLUGIN_NAME', 'Social Feed Gallery');
20
  }
21
  if (!defined('QLIGG_PLUGIN_VERSION')) {
22
+ define('QLIGG_PLUGIN_VERSION', '2.9.1');
23
  }
24
  if (!defined('QLIGG_PLUGIN_FILE')) {
25
  define('QLIGG_PLUGIN_FILE', __FILE__);
readme.txt CHANGED
@@ -4,7 +4,7 @@ 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
 
@@ -105,6 +105,18 @@ There may be some other plugins(like: fancybox, elementor) which also uses image
105
 
106
  == Changelog ==
107
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  = 2.8.1 =
109
  * Fix. small CSS fixes
110
 
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.9.1
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
105
 
106
  == Changelog ==
107
 
108
+ = 2.9.1 =
109
+ * Fix. profile avatar
110
+
111
+ = 2.9.0 =
112
+ * Fix. Instagram API business
113
+
114
+ = 2.8.4 =
115
+ * Fix. Instagram tag feed
116
+
117
+ = 2.8.3=
118
+ * Fix. Instagram business account
119
+
120
  = 2.8.1 =
121
  * Fix. small CSS fixes
122
 
templates/parts/actions.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php if (!empty($feed['button']['display'])) : ?>
2
  <div class="insta-gallery-actions">
3
- <a href="<?php echo esc_url($profile_info['link']); ?>" target="blank" class="insta-gallery-button follow"><i class="qligg-icon-instagram-o"></i><?php echo esc_html($feed['button']['text']); ?></a>
4
  </div>
5
  <?php endif; ?>
1
  <?php if (!empty($feed['button']['display'])) : ?>
2
  <div class="insta-gallery-actions">
3
+ <a href="https://www.instagram.com/<?php echo esc_attr($profile_info['username']); ?>" target="blank" class="insta-gallery-button follow"><i class="qligg-icon-instagram-o"></i><?php echo esc_html($feed['button']['text']); ?></a>
4
  </div>
5
  <?php endif; ?>