Version Description
- Fix. profile avatar
Download this release
Release Info
Developer | quadlayers |
Plugin | 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 +7 -6
- assets/backend/css/qligg-admin.css.map +1 -1
- assets/backend/css/qligg-admin.min.css +1 -1
- assets/backend/js/qligg-admin-account.js +27 -34
- assets/backend/js/qligg-admin-account.min.js +1 -1
- assets/backend/js/qligg-admin-feed.js +12 -10
- assets/backend/js/qligg-admin-feed.min.js +1 -1
- assets/frontend/css/qligg.css +13 -10
- assets/frontend/css/qligg.css.map +1 -1
- assets/frontend/css/qligg.min.css +1 -1
- assets/frontend/js/qligg.js +1 -3
- assets/frontend/js/qligg.min.js +1 -1
- includes/api.php +279 -274
- includes/apiFacebook.php +219 -0
- includes/{apiV2.php → apiInstagram.php} +10 -69
- includes/compatibility.php +343 -343
- includes/controllers/AccountController.php +94 -29
- includes/controllers/FeedController.php +43 -32
- includes/frontend.php +20 -21
- includes/helpers.php +59 -62
- includes/models/Account.php +38 -25
- includes/models/Feed.php +21 -5
- includes/models/QLIGG_Model.php +2 -42
- includes/qligg.php +27 -14
- includes/view/backend/pages/accounts.php +24 -23
- includes/view/backend/pages/feeds.php +24 -23
- includes/view/backend/pages/modals/feed/main.php +1 -1
- includes/view/backend/pages/modals/feed/panel-feed-box.php +2 -2
- includes/view/backend/pages/modals/feed/panel-feed-profile.php +5 -5
- includes/view/backend/pages/modals/feed/panel-feed.php +100 -86
- insta-gallery.php +2 -2
- readme.txt +13 -1
- templates/parts/actions.php +1 -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":"AAKI,oBAFF,GAEG;AAAD,kBAFF,GAEG;EACC,yBAAA;;AAEA,oBALJ,GAEG,MAGE,UAAU;AAAX,kBALJ,GAEG,MAGE,UAAU;EACT,yBAAA;;AATR,oBAcE;AAbF,kBAaE;AAdF,oBAeE;AAdF,kBAcE;EACE,
|
1 |
+
{"version":3,"sources":["../../less/qligg-admin.less"],"names":[],"mappings":"AAKI,oBAFF,GAEG;AAAD,kBAFF,GAEG;EACC,yBAAA;;AAEA,oBALJ,GAEG,MAGE,UAAU;AAAX,kBALJ,GAEG,MAGE,UAAU;EACT,yBAAA;;AATR,oBAcE;AAbF,kBAaE;AAdF,oBAeE;AAdF,kBAcE;EACE,uBAAA;EACA,mBAAA;EACA,mBAAA;EACA,WAAA;;AAnBJ,oBAsBE,GAAG,IAAG;AArBR,kBAqBE,GAAG,IAAG;EACJ,WAAA;EACA,YAAA;;AAxBJ,oBA2BE,QAAO;AA1BT,kBA0BE,QAAO;EACL,qBAAA;EACA,eAAA;EACA,YAAA;;AAQA,kBADF,MACG,YACC,qBACE;EACE,kBAAA;EACA,gBAAA;EACA,WAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,eAAA;EACA,YAAA;EACA,gBAAA;EACA,cAAA;EACA,oBAAA;EACA,eAAA;EACA,UAAA;;AAEA,kBAnBR,MACG,YACC,qBACE,OAgBG;EACC,qBAAA;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,gCAAA;EACA,kBAAA;EACA,cAAA;EACA,mCAAA;EACA,kCAAA;;AAGF,kBAjCR,MACG,YACC,qBACE,OA8BG,WAAW;EACV,SAAS,OAAT;;AAGF,kBArCR,MACG,YACC,qBACE,OAkCG,aAAa;EACZ,SAAS,OAAT;;AAGF,kBAzCR,MACG,YACC,qBACE,OAsCG;EACC,cAAA;EACA,eAAA;EACA,oBAAA;;AAIJ,kBAhDN,MACG,YACC,qBA8CG;EACC,SAAa,OAAb;EACA,sBAAA;EACA,kBAAA;EACA,cAAA;EACA,WAAA;EACA,cAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,YAAA;;AAQV;EAEE,gBAAA;EACA,iBAAA;EACA,YAAA;;AAJF,YAME;EACE,UAAA;EACA,kBAAA;;AARJ,YAWE,OAAM;AAXR,YAYE,MAAK,iBAAiB;EACpB,+BAAA;;AAbJ,YAgBE,OAEE;EACE,gBAAA;EACA,6BAAA;;AAEA,YANJ,OAEE,eAIG;EACC,aAAA;;AAMF,YAbJ,OAWE,IAEG;AAAD,YAbJ,OAYE,EACG;EACC,eAAA;EACA,mBAAA;EACA,iBAAA;;AAHF,YAbJ,OAWE,IAEG,WAKC;AALF,YAbJ,OAYE,EACG,WAKC;EACE,qBAAA;;AAEA,YArBR,OAWE,IAEG,WAKC,QAGG;AAAD,YArBR,OAYE,EACG,WAKC,QAGG;EAEC,YAAA;;AAKF,YA5BR,OAWE,IAEG,WAcC,qBACG,YAAY;AAAb,YA5BR,OAYE,EACG,WAcC,qBACG,YAAY;EACX,sBAAA;;AAGF,YAhCR,OAWE,IAEG,WAcC,qBAKG,YAAY;AAAb,YAhCR,OAYE,EACG,WAcC,qBAKG,YAAY;EAEX,yBAAA;;AAGF,YArCR,OAWE,IAEG,WAcC,qBAUG;AAAD,YArCR,OAYE,EACG,WAcC,qBAUG;EAEC,wBAAA;;AAvDZ,YAgBE,OAWE,IAiCE;AA5DN,YAgBE,OAYE,EAgCE;EACE,WAAA;;AAEA,YA/CN,OAWE,IAiCE,QAGG,IAAI,iBAAiB,IAAI;AAA1B,YA/CN,OAYE,EAgCE,QAGG,IAAI,iBAAiB,IAAI;EACxB,gBAAA;;AAMJ,YAtDJ,OAqDE,GACG;EACC,aAAA;EACA,UAAA;EACA,aAAA;;AAHF,YAtDJ,OAqDE,GACG,YAKC;EACE,qBAAA;EACA,kBAAA;EACA,gBAAA;EACA,sBAAA;EACA,WAAA;EACA,kBAAA;EACA,yBAAA;EACA,kBAAA;EACA,aAAA;EACA,sBAAA;EACA,eAAA;EACA,yCAAA;;AAEA,YAzER,OAqDE,GACG,YAKC,GAcG;EACC,SAAkB,EAAlB;EACA,kBAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,sBAAA;EACA,YAAA;;AAGF,YApFR,OAqDE,GACG,YAKC,GAyBG;EACC,eAAA;;AAMA,YA3FV,OAqDE,GACG,YAKC,GA6BG,OAGE;AAAD,YA3FV,OAqDE,GACG,YAKC,GA8BG,MAEE;EACC,UAAA;;AAJJ,YAxFR,OAqDE,GACG,YAKC,GA6BG,OAOC;AANF,YAzFR,OAqDE,GACG,YAKC,GA8BG,MAMC;EACE,cAAA;;AA1CR,YAtDJ,OAqDE,GACG,YAgDC;EACE,oBAAA;EACA,cAAA;EACA,kBAAA;EACA,gBAAA;EACA,UAAA;EACA,eAAA;EACA,4BAAA;EACA,kBAAA;EACA,iBAAA;EACA,cAAA;;AA1DJ,YAtDJ,OAqDE,GACG,YA6DC,MAAK;EACH,aAAA;;AAQR,YAAC;EACC,oBAAA;;AAEA,YAHD,WAGE;EACC,SAAkB,EAAlB;EACA,kBAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,yBAAA;EACA,YAAA;EACA,YAAA;;AAIJ,YAAC;EACC,gBAAA;EACA,iBAAA;;AAGF,YAAC;EACC,gBAAA;EACA,iBAAA;;AAFF,YAAC,iBAIC;EACE,aAAA;EACA,uBAAA;EACA,gBAAA;EACA,mBAAA;;AARJ,YAAC,iBAIC,MAME;EACE,WAAA;;AAXN,YAAC,iBAIC,MAUE;EACE,uBAAA;;AAfN,YAAC,iBAmBC;;;;;AAnBF,YAAC,iBAmBC,uBACE;EACE,WAAA;;AArBN,YAAC,iBAmBC,uBAKE;EACE,WAAA;;AAzBN,YAAC,iBAmBC,uBAYE;EACE,gBAAA;;AAhCN,YAAC,iBAoCC,MAAK;EACH,YAAA;;AArCJ,YAAC,iBAwCC;EACE,gBAAA;;AAzCJ,YAAC,iBA4CC;EACE,kBAAA;EACA,oBAAA;;AAEA,YAhDH,iBA4CC,kBAIG;EACC,SAAkB,EAAlB;EACA,sBAAA;EACA,kBAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,YAAA;EACA,gBAAA;EACA,oBAAA;;AA1DN,YAAC,iBA8DC;EACE,cAAA;EACA,eAAA;EACA,oBAAA;EACA,YAAA;;AAlEJ,YAAC,iBA8DC,gBAME;AApEJ,YAAC,iBA8DC,gBAOE;AArEJ,YAAC,iBA8DC,gBAQE;AAtEJ,YAAC,iBA8DC,gBASE;EACE,YAAA;;AAxEN,YAAC,iBA4EC,iBAAiB,MAAK;EACpB,kBAAA;EACA,mBAAA;;AA9EJ,YAAC,iBAiFC,GAAE;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,gBAAA;EACA,iBAAA;EACA,kBAAA;EACA,yBAAA;EACA,4BAAA;EACA,sBAAA;;AAEA,YA5FH,iBAiFC,GAAE,WAWC;EACC,SAAkB,EAAlB;EACA,cAAA;EACA,WAAA;EACA,cAAA;EACA,kBAAA;EACA,eAAA;EACA,OAAA;EACA,yBAAA;EACA,4BAAA;;AArGN,YAAC,iBAiFC,GAAE,WAuBA;EACE,SAAA;EACA,UAAA;EACA,cAAA;EACA,kBAAA;;AA5GN,YAAC,iBAiFC,GAAE,WAuBA,GAME;EACE,SAAA;EACA,aAAA;EACA,cAAA;EACA,gBAAA;EACA,qBAAA;EACA,4BAAA;EACA,6BAAA;;AArHR,YAAC,iBAiFC,GAAE,WAuBA,GAME,EASE;EACE,oBAAA;EACA,qBAAA;;AAGF,YA5HP,iBAiFC,GAAE,WAuBA,GAME,EAcG;EACC,SAAwB,OAAxB;EACA,sBAAA;EACA,WAAA;EACA,gBAAA;EACA,oBAAA;EACA,cAAA;EACA,mCAAA;EACA,oBAAA;EACA,qBAAA;;AAIJ,YAzIL,iBAiFC,GAAE,WAuBA,GAiCG,OACC;EACE,sBAAA;;AA3IV,YAAC,iBAiJC;AAjJF,YAAC,iBAkJC;EACE,YAAA;EACA,eAAA;;AApJJ,YAAC,iBAuJC;EACE,SAAA;EACA,YAAA;EACA,sBAAA;EACA,mBAAA;;AAKN,qBACE;EACE,WAAA;EACA,qBAAA;EACA,cAAA;;AAJJ,qBAOE;EACE,eAAA;EACA,aAAA;;AAEA,qBAJF,OAIG;EACC,qBAAA;;AAKN;EACE,eAAA;EACA,YAAA;EACA,iBAAA;EACA,yBAAA;EACA,+BAAA;EACA,qBAAA;EACA,kBAAA;EACA,gCAAA;EACA,gBAAA;EACA,qBAAA;EACA,mBAAA;;AAEA,qBAAC;AACD,qBAAC;EACC,wDAAA","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 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
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 |
-
|
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 |
-
|
81 |
-
|
82 |
-
|
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 |
-
|
157 |
-
|
158 |
|
159 |
$.ajax({
|
160 |
url: ajaxurl,
|
@@ -197,19 +197,21 @@
|
|
197 |
|
198 |
// Generate token
|
199 |
// ---------------------------------------------------------------------------
|
200 |
-
|
201 |
|
202 |
var $button = $('#qligg-generate-token'),
|
203 |
-
|
204 |
|
205 |
-
var urlVars = getUrlVars()
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
|
212 |
-
|
|
|
|
|
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('&', /&/g)
|
14 |
+
.replace(/>/g, ">")
|
15 |
+
.replace(/</g, "<")
|
16 |
+
.replace(/"/g, '"')
|
17 |
+
.replace(/'/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("&",/&/g).replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/'/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){
|
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("&",/&/g).replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/'/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 |
-
|
284 |
-
|
285 |
-
|
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("&",/&/g).replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/'/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
|
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("&",/&/g).replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/'/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":"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","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.
|
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="";
|
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 |
-
|
5 |
|
6 |
if (!class_exists('QLIGG_API')) {
|
7 |
|
8 |
-
|
|
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
|
15 |
-
|
|
|
16 |
|
17 |
-
|
18 |
-
|
19 |
|
20 |
-
|
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 |
-
|
61 |
-
|
62 |
-
|
63 |
|
64 |
-
|
65 |
-
'
|
66 |
-
|
|
|
|
|
|
|
67 |
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
-
|
71 |
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
|
76 |
-
|
77 |
-
|
78 |
-
return false;
|
79 |
-
}
|
80 |
|
81 |
-
|
82 |
-
|
|
|
|
|
83 |
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
|
88 |
-
|
89 |
-
'access_token' => $access_token
|
90 |
-
);
|
91 |
|
92 |
-
|
93 |
|
94 |
-
|
|
|
|
|
95 |
|
96 |
-
|
97 |
-
|
98 |
-
|
|
|
99 |
|
100 |
-
|
101 |
-
|
102 |
-
}
|
103 |
|
104 |
-
|
105 |
-
|
|
|
|
|
106 |
|
107 |
-
|
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 |
-
|
162 |
-
}
|
163 |
|
164 |
-
|
|
|
|
|
165 |
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
'count' => 33
|
170 |
-
);
|
171 |
|
172 |
-
|
|
|
173 |
|
174 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
|
176 |
-
|
177 |
-
|
178 |
-
}
|
179 |
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
|
|
184 |
|
185 |
-
|
186 |
-
return false;
|
187 |
-
}
|
188 |
|
189 |
-
|
190 |
-
}
|
191 |
|
192 |
-
|
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 |
-
|
250 |
-
|
|
|
|
|
251 |
|
252 |
-
|
|
|
|
|
253 |
|
254 |
-
|
|
|
255 |
|
256 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
257 |
|
258 |
-
$
|
259 |
-
|
260 |
-
'max_id' => "{$max_id}="
|
261 |
-
);
|
262 |
|
263 |
-
|
264 |
|
265 |
-
|
266 |
-
// ---------------------------------------------------------------------
|
267 |
|
268 |
-
|
269 |
-
|
270 |
-
|
|
|
271 |
|
272 |
-
|
273 |
-
}
|
274 |
|
275 |
-
|
276 |
-
|
277 |
|
278 |
-
|
|
|
|
|
279 |
|
280 |
-
|
|
|
281 |
|
282 |
-
|
283 |
-
$this->message = $response['meta']['error_message'];
|
284 |
-
return array(
|
285 |
-
'error' => 1,
|
286 |
-
'message' => $this->message
|
287 |
-
);
|
288 |
}
|
289 |
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
296 |
}
|
297 |
|
298 |
-
|
299 |
-
|
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 |
-
|
312 |
-
}
|
313 |
|
314 |
-
|
315 |
|
316 |
-
|
317 |
-
|
318 |
-
$response = $this->validate_response(wp_remote_get($url, array('timeout' => 29)));
|
319 |
-
|
320 |
-
return $response;
|
321 |
-
}
|
322 |
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
|
|
328 |
|
329 |
-
|
330 |
-
|
|
|
|
|
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('
|
7 |
|
8 |
-
class
|
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/
|
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(
|
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 |
-
|
9 |
|
10 |
-
|
11 |
|
12 |
-
|
13 |
|
14 |
-
|
15 |
-
|
16 |
|
17 |
-
|
18 |
|
19 |
-
|
20 |
|
21 |
-
|
22 |
|
23 |
-
|
24 |
-
|
25 |
|
26 |
-
|
27 |
|
28 |
-
|
29 |
|
30 |
-
|
31 |
|
32 |
-
|
33 |
|
34 |
-
|
35 |
-
|
36 |
-
|
|
|
|
|
|
|
37 |
}
|
38 |
|
39 |
-
|
40 |
-
}
|
41 |
|
42 |
-
|
|
|
43 |
|
44 |
-
|
45 |
-
|
46 |
|
47 |
-
|
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 |
-
|
92 |
-
|
93 |
-
|
94 |
-
}
|
95 |
|
96 |
-
|
|
|
|
|
97 |
|
98 |
-
|
|
|
|
|
99 |
|
100 |
-
|
101 |
-
|
102 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
|
104 |
-
|
105 |
-
$instagram_feeds[$id]['insta_spacing'] = 10;
|
106 |
-
}
|
107 |
-
}
|
108 |
|
109 |
-
|
110 |
|
111 |
-
|
|
|
|
|
112 |
|
113 |
-
|
114 |
-
|
115 |
-
|
|
|
116 |
|
117 |
-
|
118 |
-
$instagram_feeds[$id]['insta_hover'] = $instagram_feed['insta_car-hover'];
|
119 |
-
}
|
120 |
-
}
|
121 |
|
122 |
-
|
123 |
|
124 |
-
|
|
|
|
|
125 |
|
126 |
-
|
127 |
-
|
128 |
-
|
|
|
129 |
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
|
136 |
-
|
137 |
-
}
|
138 |
|
139 |
-
|
140 |
-
// -----------------------------------------------------------------------
|
141 |
-
function rename_insta_gallery_items_266($new_instagram_feeds = array()) {
|
142 |
|
143 |
-
|
144 |
-
|
145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
}
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
$
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
}
|
304 |
-
return $new_instagram_feeds;
|
305 |
-
}
|
306 |
|
307 |
-
|
308 |
-
|
309 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
|
311 |
-
|
312 |
-
if (!$old_accounts = get_option('insta_gallery_token')) {
|
313 |
-
return $new_accounts;
|
314 |
}
|
315 |
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
}
|
324 |
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
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 |
-
|
355 |
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
|
361 |
-
|
362 |
-
|
363 |
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
|
369 |
-
|
370 |
-
|
371 |
|
372 |
-
|
373 |
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
|
|
378 |
}
|
379 |
-
}
|
380 |
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
|
397 |
-
|
398 |
|
399 |
-
|
400 |
}
|
401 |
|
402 |
if (!class_exists('QLIGG_Settings')) {
|
403 |
|
404 |
-
|
405 |
|
406 |
-
|
407 |
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
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 |
-
|
|
|
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 |
-
|
|
|
34 |
$account_model = new QLIGG_Account();
|
35 |
$accounts = $account_model->get_accounts();
|
36 |
|
37 |
-
include
|
38 |
-
include
|
39 |
}
|
40 |
|
41 |
-
function ajax_add_account()
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
-
|
44 |
|
45 |
-
|
46 |
|
47 |
-
if (empty($
|
48 |
parent::error_ajax(esc_html__('Empty access account', 'insta-gallery'));
|
49 |
}
|
50 |
|
51 |
-
$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 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
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
|
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 |
-
|
|
|
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
|
23 |
-
include
|
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 |
-
|
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 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
|
|
|
|
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 |
-
|
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 $
|
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 |
-
$
|
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 |
-
|
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 |
-
|
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 |
-
|
|
|
162 |
|
163 |
-
|
164 |
|
165 |
-
$profile_info['user'] =
|
166 |
-
$profile_info['name'] =
|
167 |
-
$profile_info['
|
|
|
168 |
|
169 |
-
$feed['
|
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 $
|
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($
|
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 $
|
30 |
|
31 |
$defaults = array(
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
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['
|
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 |
-
|
|
|
|
|
80 |
|
81 |
-
$
|
82 |
-
|
83 |
-
|
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 $
|
100 |
|
101 |
$defaults = array(
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
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 = $
|
122 |
-
|
123 |
-
}
|
124 |
|
125 |
$_profile_info = array();
|
126 |
|
127 |
-
|
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 $
|
145 |
|
146 |
if (!$account_id) {
|
147 |
-
$
|
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 |
-
$
|
161 |
return;
|
162 |
}
|
163 |
|
164 |
// compatibility with 2.7.1
|
165 |
// ---------------------------------------------------------------------------
|
166 |
-
if ($account['
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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 = $
|
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
|
217 |
|
218 |
-
|
|
|
219 |
|
220 |
-
|
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 = $
|
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 = $
|
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 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
|
|
|
|
16 |
);
|
17 |
}
|
18 |
|
19 |
-
function get_defaults()
|
20 |
-
|
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 |
-
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
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' => '
|
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 |
-
'
|
31 |
-
'
|
32 |
-
'
|
|
|
|
|
|
|
|
|
|
|
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, $
|
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('
|
50 |
|
51 |
-
include_once(QLIGG_PLUGIN_DIR . 'includes/
|
52 |
|
53 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
8 |
-
<?php esc_html_e('Add
|
9 |
</a>
|
10 |
-
<
|
11 |
-
|
|
|
|
|
|
|
|
|
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('
|
21 |
-
<th><?php esc_html_e('
|
22 |
-
<th><?php esc_html_e('
|
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 |
-
$
|
|
|
34 |
?>
|
35 |
-
<tr class="<?php echo esc_attr(strtolower($
|
36 |
<td width="1%">
|
37 |
-
<img class="qligg-avatar" src="<?php echo esc_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($
|
47 |
</td>
|
48 |
<td>
|
49 |
-
<?php echo esc_html($account['
|
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-
|
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('
|
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 |
-
|
39 |
|
40 |
-
|
|
|
|
|
41 |
|
42 |
?>
|
43 |
-
<tr
|
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
|
52 |
</td>
|
53 |
<td width="1%">
|
54 |
-
<?php echo esc_html($
|
55 |
</td>
|
56 |
<td width="1%">
|
57 |
-
<?php echo esc_html($feed['
|
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-
|
65 |
-
<i class="dashicons dashicons-
|
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
|
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.
|
20 |
<div>
|
21 |
-
<input type="hidden" name="profile[
|
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">×</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[
|
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('
|
47 |
-
<textarea name="profile[
|
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">×</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
|
22 |
-
<label><?php esc_html_e('
|
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
|
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 |
-
|
43 |
-
|
|
|
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
|
48 |
</strong>
|
49 |
</span>
|
50 |
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
</div>
|
52 |
-
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
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 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
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 |
* 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.
|
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 |
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="
|
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; ?>
|