Instagram Feed - Version 2.1

Version Description

  • New: Added the ability to overwrite default templates in your theme. View this article for more information.
  • New: Added several PHP hooks for modifying feeds settings and functionality.
  • Fix: Using the "Load Initial Posts with AJAX" setting would cause images to not resize with the browser window.
  • Fix: Added back language files for translations.
  • Fix: Changing the image resolution setting would not change the image size.
  • Fix: Follow button would not show if there was no connected account.
  • Fix: Deleting any connected account will delete any connected accounts that have errors in the data that was saved for them.
Download this release

Release Info

Developer smashballoon
Plugin Icon 128x128 Instagram Feed
Version 2.1
Comparing to
See all releases

Code changes from version 2.0.2 to 2.1

README.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: smashballoon, craig-at-smash-balloon
3
  Tags: Instagram, Instagram feed, Instagram photos, Instagram widget, Instagram gallery
4
  Requires at least: 3.4
5
- Tested up to: 5.2
6
- Stable tag: 2.0.2
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -324,6 +324,15 @@ We understand that sometimes you need help, have issues or just have questions.
324
  * Plus more customization options added all the time!
325
 
326
  == Changelog ==
 
 
 
 
 
 
 
 
 
327
  = 2.0.2 =
328
  * Fix: HTML for header would still be visible in the source of the page when removing the header using showheader=false in the shortcode
329
  * Fix: CSS added to prevent layout issues when adding the feed to a "text" widget for certain themes
2
  Contributors: smashballoon, craig-at-smash-balloon
3
  Tags: Instagram, Instagram feed, Instagram photos, Instagram widget, Instagram gallery
4
  Requires at least: 3.4
5
+ Tested up to: 5.3
6
+ Stable tag: 2.1
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
324
  * Plus more customization options added all the time!
325
 
326
  == Changelog ==
327
+ = 2.1 =
328
+ * New: Added the ability to overwrite default templates in your theme. View [this article](https://smashballoon.com/guide-to-creating-custom-templates/) for more information.
329
+ * New: Added several PHP hooks for modifying feeds settings and functionality.
330
+ * Fix: Using the "Load Initial Posts with AJAX" setting would cause images to not resize with the browser window.
331
+ * Fix: Added back language files for translations.
332
+ * Fix: Changing the image resolution setting would not change the image size.
333
+ * Fix: Follow button would not show if there was no connected account.
334
+ * Fix: Deleting any connected account will delete any connected accounts that have errors in the data that was saved for them.
335
+
336
  = 2.0.2 =
337
  * Fix: HTML for header would still be visible in the source of the page when removing the header using showheader=false in the shortcode
338
  * Fix: CSS added to prevent layout issues when adding the feed to a "text" widget for certain themes
css/sb-instagram-2-1.css ADDED
@@ -0,0 +1,740 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**************/
2
+ /*** LAYOUT ***/
3
+ /**************/
4
+
5
+ /* Feed container */
6
+ #sb_instagram {
7
+ width: 100%;
8
+ margin: 0 auto;
9
+ padding: 0;
10
+ -webkit-box-sizing: border-box;
11
+ -moz-box-sizing: border-box;
12
+ box-sizing: border-box;
13
+ }
14
+ #sb_instagram:after{
15
+ content: "";
16
+ display: table;
17
+ clear: both;
18
+ }
19
+
20
+ /*********************/
21
+ /*** STYLE OPTIONS ***/
22
+ /*********************/
23
+ #sb_instagram.sbi_fixed_height{
24
+ overflow: hidden;
25
+ overflow-y: auto;
26
+ -webkit-box-sizing: border-box;
27
+ -moz-box-sizing: border-box;
28
+ box-sizing: border-box;
29
+ }
30
+ #sb_instagram #sbi_images{
31
+ width: 100%;
32
+ float: left;
33
+ line-height: 0;
34
+
35
+ -webkit-box-sizing: border-box;
36
+ -moz-box-sizing: border-box;
37
+ box-sizing: border-box;
38
+ }
39
+
40
+ /* Items */
41
+ #sb_instagram #sbi_images .sbi_item{
42
+ display: -moz-inline-stack;
43
+ display: inline-block;
44
+ float: left;
45
+ vertical-align: top;
46
+ zoom: 1;
47
+ *display: inline;
48
+
49
+ max-height: 1000px;
50
+ padding: inherit !important;
51
+ margin: 0 !important;
52
+ text-decoration: none;
53
+ opacity: 1;
54
+ overflow: hidden;
55
+
56
+ -webkit-box-sizing: border-box;
57
+ -moz-box-sizing: border-box;
58
+ box-sizing: border-box;
59
+
60
+ -webkit-transition: all 0.5s ease;
61
+ -moz-transition: all 0.5s ease;
62
+ -o-transition: all 0.5s ease;
63
+ -ms-transition: all 0.5s ease;
64
+ transition: all 0.5s ease;
65
+ }
66
+ /* Transition items in */
67
+ #sb_instagram #sbi_images .sbi_item.sbi_transition{
68
+ opacity: 0;
69
+ max-height: 0;
70
+ }
71
+
72
+ /* Cols */
73
+ #sb_instagram.sbi_col_1 #sbi_images .sbi_item{ width: 100%; }
74
+ #sb_instagram.sbi_col_2 #sbi_images .sbi_item{ width: 50%; }
75
+ #sb_instagram.sbi_col_3 #sbi_images .sbi_item{ width: 33.33%; }
76
+ #sb_instagram.sbi_col_4 #sbi_images .sbi_item{ width: 25%; }
77
+ #sb_instagram.sbi_col_5 #sbi_images .sbi_item{ width: 20%; }
78
+ #sb_instagram.sbi_col_6 #sbi_images .sbi_item{ width: 16.66%; }
79
+ #sb_instagram.sbi_col_7 #sbi_images .sbi_item{ width: 14.28%; }
80
+ #sb_instagram.sbi_col_8 #sbi_images .sbi_item{ width: 12.5%; }
81
+ #sb_instagram.sbi_col_9 #sbi_images .sbi_item{ width: 11.11%; }
82
+ #sb_instagram.sbi_col_10 #sbi_images .sbi_item{ width: 10%; }
83
+
84
+ /* Disable mobile layout */
85
+ #sb_instagram.sbi_col_1.sbi_disable_mobile #sbi_images .sbi_item{ width: 100%; }
86
+ #sb_instagram.sbi_col_2.sbi_disable_mobile #sbi_images .sbi_item{ width: 50%; }
87
+ #sb_instagram.sbi_col_3.sbi_disable_mobile #sbi_images .sbi_item{ width: 33.33%; }
88
+ #sb_instagram.sbi_col_4.sbi_disable_mobile #sbi_images .sbi_item{ width: 25%; }
89
+ #sb_instagram.sbi_col_5.sbi_disable_mobile #sbi_images .sbi_item{ width: 20%; }
90
+ #sb_instagram.sbi_col_6.sbi_disable_mobile #sbi_images .sbi_item{ width: 16.66%; }
91
+ #sb_instagram.sbi_col_7.sbi_disable_mobile #sbi_images .sbi_item{ width: 14.28%; }
92
+ #sb_instagram.sbi_col_8.sbi_disable_mobile #sbi_images .sbi_item{ width: 12.5%; }
93
+ #sb_instagram.sbi_col_9.sbi_disable_mobile #sbi_images .sbi_item{ width: 11.11%; }
94
+ #sb_instagram.sbi_col_10.sbi_disable_mobile #sbi_images .sbi_item{ width: 10%; }
95
+
96
+ /* Photos */
97
+ #sb_instagram .sbi_photo_wrap{
98
+ position: relative;
99
+ }
100
+ #sb_instagram .sbi_photo{
101
+ display: block;
102
+ text-decoration: none;
103
+ }
104
+ #sb_instagram .sbi_photo img{
105
+ width: 100%;
106
+ height: auto;
107
+ }
108
+ #sb_instagram .sbi_no_js img{
109
+ display: none;
110
+ }
111
+ #sb_instagram a,
112
+ #sb_instagram a:hover,
113
+ #sb_instagram a:focus,
114
+ #sb_instagram a:active{
115
+ outline: none;
116
+ }
117
+ #sb_instagram img{
118
+ display: block;
119
+ padding: 0 !important;
120
+ margin: 0 !important;
121
+ max-width: 100% !important;
122
+ opacity: 1 !important;
123
+ }
124
+ #sb_instagram .sbi_link{
125
+ display: none;
126
+ position: absolute;
127
+ bottom: 0;
128
+ right: 0;
129
+
130
+ width: 100%;
131
+ padding: 10px 0;
132
+ background: rgba(0,0,0,0.5);
133
+ text-align: center;
134
+ color: #fff;
135
+ font-size: 12px;
136
+ line-height: 1.1;
137
+ }
138
+ #sb_instagram .sbi_link a{
139
+ padding: 0 6px;
140
+ text-decoration: none;
141
+ color: #fff;
142
+ font-size: 12px;
143
+ line-height: 1.1;
144
+
145
+ display: -moz-inline-stack;
146
+ display: inline-block;
147
+ vertical-align: top;
148
+ zoom: 1;
149
+ *display: inline;
150
+ }
151
+ #sb_instagram .sbi_link .sbi_lightbox_link{
152
+ padding-bottom: 5px;
153
+ }
154
+ #sb_instagram .sbi_link a:hover,
155
+ #sb_instagram .sbi_link a:focus{
156
+ text-decoration: underline;
157
+ }
158
+ #sb_instagram .sbi_photo_wrap:hover .sbi_link,
159
+ #sb_instagram .sbi_photo_wrap:focus .sbi_link{
160
+ display: block;
161
+ }
162
+
163
+ /* Videos */
164
+ #sb_instagram svg:not(:root).svg-inline--fa {
165
+ height: 1em;
166
+ }
167
+
168
+ #sb_instagram .sbi_type_video .sbi_playbtn,
169
+ #sb_instagram .sbi_type_carousel .sbi_playbtn,
170
+ .sbi_type_carousel .fa-clone,
171
+ #sb_instagram .sbi_type_carousel .svg-inline--fa.fa-play,
172
+ #sb_instagram .sbi_type_video .svg-inline--fa.fa-play{
173
+ display: block !important;
174
+ position: absolute;
175
+ z-index: 1;
176
+
177
+ color: #fff;
178
+ color: rgba(255,255,255,0.9);
179
+ font-style: normal !important;
180
+ text-shadow: 0 0 8px rgba(0,0,0,0.8);
181
+ }
182
+ #sb_instagram .sbi_type_video .sbi_playbtn,
183
+ #sb_instagram .sbi_type_carousel .sbi_playbtn {
184
+ z-index: 2;
185
+ top: 50%;
186
+ left: 50%;
187
+ margin-top: -24px;
188
+ margin-left: -19px;
189
+ padding: 0;
190
+ font-size: 48px;
191
+ }
192
+ #sb_instagram .sbi_type_carousel .fa-clone{
193
+ right: 12px;
194
+ top: 12px;
195
+ font-size: 24px;
196
+ text-shadow: 0 0 8px rgba(0,0,0,0.3);
197
+ }
198
+ .sbi_type_carousel svg.fa-clone,
199
+ #sb_instagram .sbi_type_video .svg-inline--fa.fa-play,
200
+ #sb_instagram .sbi_type_carousel .svg-inline--fa.fa-play{
201
+ -webkit-filter: drop-shadow( 0px 0px 2px rgba(0,0,0,.4) );
202
+ filter: drop-shadow( 0px 0px 2px rgba(0,0,0,.4) );
203
+ }
204
+
205
+ /* Loader */
206
+ #sb_instagram .sbi_loader{
207
+ width: 20px;
208
+ height: 20px;
209
+
210
+ position: relative;
211
+ top: 50%;
212
+ left: 50%;
213
+ margin: -10px 0 0 -10px;
214
+ background-color: #000;
215
+ background-color: rgba(0,0,0,0.5);
216
+
217
+ border-radius: 100%;
218
+ -webkit-animation: sbi-sk-scaleout 1.0s infinite ease-in-out;
219
+ animation: sbi-sk-scaleout 1.0s infinite ease-in-out;
220
+ }
221
+ #sb_instagram br {
222
+ display: none;
223
+ }
224
+ #sbi_load p {
225
+ display: inline;
226
+ padding: 0;
227
+ margin: 0;
228
+ }
229
+ /* Loader in button */
230
+ #sb_instagram #sbi_load .sbi_loader{
231
+ position: absolute;
232
+ margin-top: -11px;
233
+ background-color: #fff;
234
+ opacity: 1;
235
+ }
236
+ @-webkit-keyframes sbi-sk-scaleout {
237
+ 0% { -webkit-transform: scale(0) }
238
+ 100% {
239
+ -webkit-transform: scale(1.0);
240
+ opacity: 0;
241
+ }
242
+ }
243
+ @keyframes sbi-sk-scaleout {
244
+ 0% {
245
+ -webkit-transform: scale(0);
246
+ -ms-transform: scale(0);
247
+ transform: scale(0);
248
+ } 100% {
249
+ -webkit-transform: scale(1.0);
250
+ -ms-transform: scale(1.0);
251
+ transform: scale(1.0);
252
+ opacity: 0;
253
+ }
254
+ }
255
+
256
+ #sb_instagram .fa-spin,
257
+ #sbi_lightbox .fa-spin{
258
+ -webkit-animation: fa-spin 2s infinite linear;
259
+ animation: fa-spin 2s infinite linear
260
+ }
261
+
262
+ #sb_instagram .fa-pulse,
263
+ #sbi_lightbox .fa-pulse{
264
+ -webkit-animation: fa-spin 1s infinite steps(8);
265
+ animation: fa-spin 1s infinite steps(8)
266
+ }
267
+
268
+ @-webkit-keyframes fa-spin {
269
+ 0% {
270
+ -webkit-transform: rotate(0deg);
271
+ transform: rotate(0deg)
272
+ }
273
+ 100% {
274
+ -webkit-transform: rotate(359deg);
275
+ transform: rotate(359deg)
276
+ }
277
+ }
278
+
279
+ @keyframes fa-spin {
280
+ 0% {
281
+ -webkit-transform: rotate(0deg);
282
+ transform: rotate(0deg)
283
+ }
284
+ 100% {
285
+ -webkit-transform: rotate(359deg);
286
+ transform: rotate(359deg)
287
+ }
288
+ }
289
+ /* Screen reader */
290
+ .sbi-screenreader{text-indent: -9999px !important;display: block !important;width: 0 !important;height: 0 !important;line-height: 0 !important;}
291
+
292
+ /* HEADER */
293
+ #sb_instagram .sb_instagram_header{
294
+ float: left;
295
+ clear: both;
296
+ margin: 0 0 15px 0;
297
+ padding: 0;
298
+ line-height: 1.2;
299
+ width: 100%;
300
+ }
301
+ #sb_instagram .sb_instagram_header a{
302
+ float: left;
303
+ display: block;
304
+ /*width: 100%;*/
305
+ min-width: 100%\9;
306
+ text-decoration: none;
307
+ transition: color 0.5s ease;
308
+ }
309
+ /** Medium Header */
310
+ /* Only use medium & large headers on devices above 480px */
311
+ @media all and (min-width: 480px){
312
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_img {
313
+ width: 80px;
314
+ height: 80px;
315
+ border-radius: 40px;
316
+ }
317
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_img img {
318
+ width: 80px;
319
+ height: 80px;
320
+ border-radius: 40px;
321
+ }
322
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text h3 {
323
+ font-size: 20px;
324
+ }
325
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text .sbi_bio_info,
326
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text .sbi_bio{
327
+ font-size: 14px;
328
+ }
329
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text h3,
330
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text .sbi_bio_info,
331
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text .sbi_bio{
332
+ margin-left: 95px !important;
333
+ line-height: 1.4
334
+ }
335
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text h3{
336
+ margin-right: -85px !important;
337
+ }
338
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text .sbi_bio_info{
339
+ margin-top: 4px !important;
340
+ }
341
+ #sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text.sbi_no_bio h3{
342
+ padding-top: 20px !important;
343
+ }
344
+ /** Large Header */
345
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_img {
346
+ width: 120px;
347
+ height: 120px;
348
+ border-radius: 60px;
349
+ }
350
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_img img {
351
+ width: 120px;
352
+ height: 120px;
353
+ border-radius: 60px;
354
+ }
355
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_text h3 {
356
+ font-size: 28px;
357
+ }
358
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_text .sbi_bio_info,
359
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_text .sbi_bio{
360
+ font-size: 16px;
361
+ }
362
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_text h3,
363
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_text .sbi_bio_info,
364
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_text .sbi_bio{
365
+ margin-left: 140px !important;
366
+ line-height: 1.5;
367
+ }
368
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_text h3{
369
+ margin-right: -120px !important;
370
+ }
371
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_text .sbi_bio_info{
372
+ margin-top: 12px !important;
373
+ }
374
+ #sb_instagram .sb_instagram_header.sbi_large .sbi_header_text.sbi_no_bio h3{
375
+ padding-top: 32px !important;
376
+ }
377
+ }
378
+
379
+ /* Header profile pic */
380
+ #sb_instagram .sb_instagram_header .sbi_header_img{
381
+ float: left;
382
+ position: relative;
383
+ width: 50px;
384
+ margin: 0 0 0 -100% !important;
385
+ overflow: hidden;
386
+
387
+ -moz-border-radius: 40px;
388
+ -webkit-border-radius: 40px;
389
+ border-radius: 40px;
390
+ }
391
+ #sb_instagram .sb_instagram_header .sbi_header_img img{
392
+ float: left;
393
+ margin: 0 !important;
394
+ padding: 0 !important;
395
+ border: none !important;
396
+
397
+ -moz-border-radius: 40px;
398
+ -webkit-border-radius: 40px;
399
+ border-radius: 40px;
400
+ }
401
+ /* Profile pic hover */
402
+ /* Profile pic hover */
403
+ #sb_instagram .sb_instagram_header .sbi_header_img_hover{
404
+ opacity: 0;
405
+ position: absolute;
406
+ width: 100%;
407
+ top: 0;
408
+ bottom: 0;
409
+ left: 0;
410
+ text-align: center;
411
+ color: #fff;
412
+ background: rgba(0,0,0,0.75);
413
+ }
414
+
415
+ #sb_instagram .sb_instagram_header .sbi_header_img_hover .sbi_new_logo{
416
+ position: absolute;
417
+ top: 50%;
418
+ left: 50%;
419
+ margin-top: -12px;
420
+ margin-left: -12px;
421
+ width: 24px;
422
+ height: 24px;
423
+ font-size: 24px;
424
+ }
425
+ #sb_instagram .sb_instagram_header .sbi_header_img_hover i {
426
+ overflow: hidden;
427
+ background: url('../img/small-logo.png') no-repeat 0 0;
428
+ }
429
+ #sb_instagram .sb_instagram_header .sbi_header_img_hover{
430
+ z-index: 2;
431
+ transition: opacity 0.4s ease-in-out;
432
+ }
433
+ #sb_instagram .sb_instagram_header .sbi_fade_in{
434
+ opacity: 1;
435
+ transition: opacity 0.2s ease-in-out;
436
+ }
437
+ #sb_instagram .sb_instagram_header .sbi_header_img_hover{
438
+ position: absolute;
439
+ width: 100%;
440
+ top: 0;
441
+ bottom: 0;
442
+ left: 0;
443
+ text-align: center;
444
+ color: #fff;
445
+ background: rgba(0,0,0,0.75);
446
+
447
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
448
+ filter: alpha(opacity=0);
449
+ -moz-opacity: 0;
450
+ -khtml-opacity: 0;
451
+ opacity: 0;
452
+ border-radius: 40px;
453
+ transition: opacity 0.2s;
454
+ }
455
+ /* Fade the Instagram icon in when hovering on the header */
456
+ #sb_instagram .sb_instagram_header a:hover .sbi_header_img_hover,
457
+ #sb_instagram .sb_instagram_header a:focus .sbi_header_img_hover{
458
+ opacity: 1;
459
+ }
460
+ /* Header text */
461
+ #sb_instagram .sb_instagram_header .sbi_header_text{
462
+ float: left;
463
+ width: 100%;
464
+ padding-top: 5px;
465
+ }
466
+ #sb_instagram .sb_instagram_header a{
467
+ text-decoration: none;
468
+ }
469
+ #sb_instagram .sb_instagram_header .sbi_header_text .sbi_bio,
470
+ #sb_instagram .sb_instagram_header .sbi_header_text h3{
471
+ float: left;
472
+ clear: both;
473
+ width: auto;
474
+ margin: 0 0 0 60px !important;
475
+ padding: 0 !important;
476
+ }
477
+ #sb_instagram .sb_instagram_header h3{
478
+ font-size: 16px;
479
+ line-height: 1.3;
480
+ }
481
+ #sb_instagram .sb_instagram_header p{
482
+ font-size: 13px;
483
+ line-height: 1.3;
484
+ margin: 0;
485
+ padding: 0;
486
+ }
487
+ #sb_instagram p:empty { display: none; }
488
+ #sb_instagram .sb_instagram_header .sbi_header_text img.emoji{
489
+ margin-right: 3px !important;
490
+ }
491
+
492
+ /* No bio */
493
+ #sb_instagram .sb_instagram_header .sbi_header_text.sbi_no_bio h3{
494
+ padding-top: 9px !important;
495
+ }
496
+ #sb_instagram .sb_instagram_header .sbi_header_text.sbi_no_bio .sbi_bio_info{
497
+ clear: both;
498
+ }
499
+
500
+
501
+ /* Buttons */
502
+ #sb_instagram #sbi_load{
503
+ float: left;
504
+ clear: both;
505
+ width: 100%;
506
+ text-align: center;
507
+ }
508
+ #sb_instagram #sbi_load .fa-spinner{
509
+ display: none;
510
+ position: absolute;
511
+ top: 50%;
512
+ left: 50%;
513
+ margin: -8px 0 0 -7px;
514
+ font-size: 15px;
515
+ }
516
+ #sb_instagram #sbi_load{
517
+ opacity: 1;
518
+ transition: all 0.5s ease-in;
519
+ }
520
+ #sb_instagram .sbi_load_btn .sbi_btn_text, #sb_instagram .sbi_load_btn .sbi_loader{
521
+ opacity: 1;
522
+ transition: all 0.1s ease-in;
523
+ }
524
+ #sb_instagram .sbi_hidden{
525
+ opacity: 0 !important;
526
+ }
527
+ #sb_instagram #sbi_load .sbi_load_btn,
528
+ #sb_instagram .sbi_follow_btn a{
529
+ display: -moz-inline-stack;
530
+ display: inline-block;
531
+ vertical-align: top;
532
+ zoom: 1;
533
+ *display: inline;
534
+
535
+ padding: 7px 14px;
536
+ margin: 5px auto 0 auto;
537
+ background: #333;
538
+ color: #eee;
539
+ border: none;
540
+ color: #fff;
541
+ text-decoration: none;
542
+ font-size: 13px;
543
+ line-height: 1.5;
544
+
545
+ -moz-border-radius: 4px;
546
+ -webkit-border-radius: 4px;
547
+ border-radius: 4px;
548
+
549
+ -webkit-box-sizing: border-box;
550
+ -moz-box-sizing: border-box;
551
+ box-sizing: border-box;
552
+ }
553
+ #sb_instagram #sbi_load .sbi_load_btn {
554
+ position: relative;
555
+ }
556
+ /* Follow button */
557
+ #sb_instagram .sbi_follow_btn{
558
+ display: -moz-inline-stack;
559
+ display: inline-block;
560
+ vertical-align: top;
561
+ zoom: 1;
562
+ *display: inline;
563
+ text-align: center;
564
+ }
565
+ #sb_instagram .sbi_follow_btn.sbi_top{
566
+ display: block;
567
+ margin-bottom: 5px;
568
+ }
569
+ #sb_instagram .sbi_follow_btn a{
570
+ background: #408bd1;
571
+ color: #fff;
572
+ }
573
+ #sb_instagram .sbi_follow_btn a,
574
+ #sb_instagram .sbi_follow_btn a,
575
+ #sb_instagram #sbi_load .sbi_load_btn{
576
+ transition: all 0.1s ease-in;
577
+ }
578
+ /* Hover state for default colors */
579
+ #sb_instagram #sbi_load .sbi_load_btn:hover{
580
+ outline: none;
581
+ box-shadow: inset 0 0 20px 20px rgba(255,255,255,0.25);
582
+ }
583
+ #sb_instagram .sbi_follow_btn a:hover,
584
+ #sb_instagram .sbi_follow_btn a:focus{
585
+ outline: none;
586
+ box-shadow: inset 0 0 10px 20px #359dff;
587
+ }
588
+ /* If a custom color is applied then just use opacity for the hover effect */
589
+ #sb_instagram .sbi_follow_btn.sbi_custom a:hover,
590
+ #sb_instagram .sbi_follow_btn.sbi_custom a:focus,
591
+ #sb_instagram #sbi_load .sbi_load_btn.sbi_custom:hover{
592
+ box-shadow: inset 0 0 20px 20px rgba(255,255,255,0.15);
593
+ }
594
+ /* Active state */
595
+ #sb_instagram .sbi_follow_btn a:active,
596
+ #sb_instagram #sbi_load .sbi_load_btn:active{
597
+ box-shadow: inset 0 0 10px 20px rgba(0,0,0,0.3);
598
+ }
599
+
600
+ #sb_instagram .sbi_follow_btn .fa,
601
+ #sb_instagram .sbi_follow_btn svg{
602
+ margin-bottom: -1px;
603
+ margin-right: 7px;
604
+ font-size: 15px;
605
+ }
606
+ #sb_instagram .sbi_follow_btn svg{
607
+ vertical-align: -.125em;
608
+ }
609
+ #sb_instagram #sbi_load .sbi_follow_btn{
610
+ margin-left: 5px;
611
+ }
612
+
613
+ /* Error messages */
614
+ #sb_instagram .sb_instagram_error{
615
+ width: 100%;
616
+ text-align: center;
617
+ line-height: 1.4;
618
+ }
619
+
620
+ /* Mod only error msgs */
621
+ #sbi_mod_error{
622
+ display: none;
623
+ border: 1px solid #ddd;
624
+ background: #eee;
625
+ color: #333;
626
+ margin: 10px 0 0;
627
+ padding: 10px 15px;
628
+ font-size: 13px;
629
+ text-align: center;
630
+ clear: both;
631
+
632
+ -moz-border-radius: 4px;
633
+ -webkit-border-radius: 4px;
634
+ border-radius: 4px;
635
+ }
636
+ #sbi_mod_error p{
637
+ padding: 5px 0 !important;
638
+ margin: 0 !important;
639
+ line-height: 1.3 !important;
640
+ }
641
+ #sbi_mod_error ol,
642
+ #sbi_mod_error ul{
643
+ padding: 5px 0 5px 20px !important;
644
+ margin: 0 !important;
645
+ }
646
+ #sbi_mod_error li{
647
+ padding: 1px 0 !important;
648
+ margin: 0 !important;
649
+ }
650
+ #sbi_mod_error span{
651
+ font-size: 12px;
652
+ }
653
+
654
+ /* Medium */
655
+ #sb_instagram.sbi_medium .sbi_playbtn,
656
+ #sb_instagram.sbi_medium .sbi_photo_wrap .svg-inline--fa.fa-play{
657
+ margin-top: -12px;
658
+ margin-left: -9px;
659
+ font-size: 23px;
660
+ }
661
+ #sb_instagram.sbi_medium .sbi_type_carousel .sbi_photo_wrap .fa-clone{
662
+ right: 8px;
663
+ top: 8px;
664
+ font-size: 18px;
665
+ }
666
+ /* Small */
667
+ #sb_instagram.sbi_small .sbi_playbtn,
668
+ #sb_instagram.sbi_small .sbi_photo_wrap .svg-inline--fa.fa-play{
669
+ margin-top: -9px;
670
+ margin-left: -7px;
671
+ font-size: 18px;
672
+ }
673
+ #sb_instagram.sbi_small .sbi_type_carousel .sbi_photo_wrap .fa-clone{
674
+ right: 5px;
675
+ top: 5px;
676
+ font-size: 12px;
677
+ }
678
+
679
+ /* Media queries */
680
+ @media all and (max-width: 640px){
681
+ /* Make 3-6 cols into 2 col */
682
+ #sb_instagram.sbi_col_3 #sbi_images .sbi_item,
683
+ #sb_instagram.sbi_col_4 #sbi_images .sbi_item,
684
+ #sb_instagram.sbi_col_5 #sbi_images .sbi_item,
685
+ #sb_instagram.sbi_col_6 #sbi_images .sbi_item{
686
+ width: 50%;
687
+ }
688
+ /* Make 7-10 cols into 4 col */
689
+ #sb_instagram.sbi_col_7 #sbi_images .sbi_item,
690
+ #sb_instagram.sbi_col_8 #sbi_images .sbi_item,
691
+ #sb_instagram.sbi_col_9 #sbi_images .sbi_item,
692
+ #sb_instagram.sbi_col_10 #sbi_images .sbi_item{
693
+ width: 25%;
694
+ }
695
+ /* On mobile make the min-width 100% */
696
+ #sb_instagram.sbi_width_resp{
697
+ width: 100% !important;
698
+ }
699
+ }
700
+ @media all and (max-width: 480px){
701
+ /* Make all cols into 1 col */
702
+ #sb_instagram.sbi_col_3 #sbi_images .sbi_item,
703
+ #sb_instagram.sbi_col_4 #sbi_images .sbi_item,
704
+ #sb_instagram.sbi_col_5 #sbi_images .sbi_item,
705
+ #sb_instagram.sbi_col_6 #sbi_images .sbi_item,
706
+ #sb_instagram.sbi_col_7 #sbi_images .sbi_item,
707
+ #sb_instagram.sbi_col_8 #sbi_images .sbi_item,
708
+ #sb_instagram.sbi_col_9 #sbi_images .sbi_item,
709
+ #sb_instagram.sbi_col_10 #sbi_images .sbi_item{
710
+ width: 100%;
711
+ }
712
+ }
713
+
714
+ /* NO JS */
715
+ #sb_instagram.sbi_no_js #sbi_images .sbi_item .sbi_photo_wrap{
716
+ box-sizing: border-box;
717
+ position: relative;
718
+ overflow: hidden;
719
+ }
720
+ #sb_instagram.sbi_no_js #sbi_images .sbi_item .sbi_photo_wrap:before {
721
+ content: "";
722
+ display: block;
723
+ padding-top: 100%;
724
+ z-index: -300;
725
+ }
726
+ #sb_instagram.sbi_no_js #sbi_images .sbi_item .sbi_photo {
727
+ position: absolute;
728
+ top: 0;
729
+ left: 0;
730
+ bottom: 0;
731
+ right: 0;
732
+ }
733
+ #sb_instagram.sbi_no_js #sbi_images .sbi_item.sbi_transition {
734
+ opacity: 1;
735
+ max-height: 640px;
736
+ }
737
+ #sb_instagram.sbi_no_js .sbi_photo img,
738
+ #sb_instagram.sbi_no_js .sbi_load_btn{
739
+ display: none;
740
+ }
css/sb-instagram-2-1.min.css ADDED
@@ -0,0 +1 @@
 
1
+ #sb_instagram{width:100%;margin:0 auto;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#sb_instagram:after{content:"";display:table;clear:both}#sb_instagram.sbi_fixed_height{overflow:hidden;overflow-y:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#sb_instagram #sbi_images{width:100%;float:left;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#sb_instagram #sbi_images .sbi_item{display:-moz-inline-stack;display:inline-block;float:left;vertical-align:top;zoom:1;*display:inline;max-height:1000px;padding:inherit!important;margin:0!important;text-decoration:none;opacity:1;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;-ms-transition:all 0.5s ease;transition:all 0.5s ease}#sb_instagram #sbi_images .sbi_item.sbi_transition{opacity:0;max-height:0}#sb_instagram.sbi_col_1 #sbi_images .sbi_item{width:100%}#sb_instagram.sbi_col_2 #sbi_images .sbi_item{width:50%}#sb_instagram.sbi_col_3 #sbi_images .sbi_item{width:33.33%}#sb_instagram.sbi_col_4 #sbi_images .sbi_item{width:25%}#sb_instagram.sbi_col_5 #sbi_images .sbi_item{width:20%}#sb_instagram.sbi_col_6 #sbi_images .sbi_item{width:16.66%}#sb_instagram.sbi_col_7 #sbi_images .sbi_item{width:14.28%}#sb_instagram.sbi_col_8 #sbi_images .sbi_item{width:12.5%}#sb_instagram.sbi_col_9 #sbi_images .sbi_item{width:11.11%}#sb_instagram.sbi_col_10 #sbi_images .sbi_item{width:10%}#sb_instagram.sbi_col_1.sbi_disable_mobile #sbi_images .sbi_item{width:100%}#sb_instagram.sbi_col_2.sbi_disable_mobile #sbi_images .sbi_item{width:50%}#sb_instagram.sbi_col_3.sbi_disable_mobile #sbi_images .sbi_item{width:33.33%}#sb_instagram.sbi_col_4.sbi_disable_mobile #sbi_images .sbi_item{width:25%}#sb_instagram.sbi_col_5.sbi_disable_mobile #sbi_images .sbi_item{width:20%}#sb_instagram.sbi_col_6.sbi_disable_mobile #sbi_images .sbi_item{width:16.66%}#sb_instagram.sbi_col_7.sbi_disable_mobile #sbi_images .sbi_item{width:14.28%}#sb_instagram.sbi_col_8.sbi_disable_mobile #sbi_images .sbi_item{width:12.5%}#sb_instagram.sbi_col_9.sbi_disable_mobile #sbi_images .sbi_item{width:11.11%}#sb_instagram.sbi_col_10.sbi_disable_mobile #sbi_images .sbi_item{width:10%}#sb_instagram .sbi_photo_wrap{position:relative}#sb_instagram .sbi_photo{display:block;text-decoration:none}#sb_instagram .sbi_photo img{width:100%;height:auto}#sb_instagram .sbi_no_js img{display:none}#sb_instagram a,#sb_instagram a:hover,#sb_instagram a:focus,#sb_instagram a:active{outline:none}#sb_instagram img{display:block;padding:0!important;margin:0!important;max-width:100%!important;opacity:1!important}#sb_instagram .sbi_link{display:none;position:absolute;bottom:0;right:0;width:100%;padding:10px 0;background:rgba(0,0,0,.5);text-align:center;color:#fff;font-size:12px;line-height:1.1}#sb_instagram .sbi_link a{padding:0 6px;text-decoration:none;color:#fff;font-size:12px;line-height:1.1;display:-moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline}#sb_instagram .sbi_link .sbi_lightbox_link{padding-bottom:5px}#sb_instagram .sbi_link a:hover,#sb_instagram .sbi_link a:focus{text-decoration:underline}#sb_instagram .sbi_photo_wrap:hover .sbi_link,#sb_instagram .sbi_photo_wrap:focus .sbi_link{display:block}#sb_instagram svg:not(:root).svg-inline--fa{height:1em}#sb_instagram .sbi_type_video .sbi_playbtn,#sb_instagram .sbi_type_carousel .sbi_playbtn,.sbi_type_carousel .fa-clone,#sb_instagram .sbi_type_carousel .svg-inline--fa.fa-play,#sb_instagram .sbi_type_video .svg-inline--fa.fa-play{display:block!important;position:absolute;z-index:1;color:#fff;color:rgba(255,255,255,.9);font-style:normal!important;text-shadow:0 0 8px rgba(0,0,0,.8)}#sb_instagram .sbi_type_video .sbi_playbtn,#sb_instagram .sbi_type_carousel .sbi_playbtn{z-index:2;top:50%;left:50%;margin-top:-24px;margin-left:-19px;padding:0;font-size:48px}#sb_instagram .sbi_type_carousel .fa-clone{right:12px;top:12px;font-size:24px;text-shadow:0 0 8px rgba(0,0,0,.3)}.sbi_type_carousel svg.fa-clone,#sb_instagram .sbi_type_video .svg-inline--fa.fa-play,#sb_instagram .sbi_type_carousel .svg-inline--fa.fa-play{-webkit-filter:drop-shadow(0 0 2px rgba(0,0,0,.4));filter:drop-shadow(0 0 2px rgba(0,0,0,.4))}#sb_instagram .sbi_loader{width:20px;height:20px;position:relative;top:50%;left:50%;margin:-10px 0 0 -10px;background-color:#000;background-color:rgba(0,0,0,.5);border-radius:100%;-webkit-animation:sbi-sk-scaleout 1.0s infinite ease-in-out;animation:sbi-sk-scaleout 1.0s infinite ease-in-out}#sb_instagram br{display:none}#sbi_load p{display:inline;padding:0;margin:0}#sb_instagram #sbi_load .sbi_loader{position:absolute;margin-top:-11px;background-color:#fff;opacity:1}@-webkit-keyframes sbi-sk-scaleout{0%{-webkit-transform:scale(0)}100%{-webkit-transform:scale(1);opacity:0}}@keyframes sbi-sk-scaleout{0%{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}100%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:0}}#sb_instagram .fa-spin,#sbi_lightbox .fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}#sb_instagram .fa-pulse,#sbi_lightbox .fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.sbi-screenreader{text-indent:-9999px!important;display:block!important;width:0!important;height:0!important;line-height:0!important}#sb_instagram .sb_instagram_header{float:left;clear:both;margin:0 0 15px 0;padding:0;line-height:1.2;width:100%}#sb_instagram .sb_instagram_header a{float:left;display:block;min-width:100%\9;text-decoration:none;transition:color 0.5s ease}@media all and (min-width:480px){#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_img{width:80px;height:80px;border-radius:40px}#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_img img{width:80px;height:80px;border-radius:40px}#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text h3{font-size:20px}#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text .sbi_bio_info,#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text .sbi_bio{font-size:14px}#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text h3,#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text .sbi_bio_info,#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text .sbi_bio{margin-left:95px!important;line-height:1.4}#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text h3{margin-right:-85px!important}#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text .sbi_bio_info{margin-top:4px!important}#sb_instagram .sb_instagram_header.sbi_medium .sbi_header_text.sbi_no_bio h3{padding-top:20px!important}#sb_instagram .sb_instagram_header.sbi_large .sbi_header_img{width:120px;height:120px;border-radius:60px}#sb_instagram .sb_instagram_header.sbi_large .sbi_header_img img{width:120px;height:120px;border-radius:60px}#sb_instagram .sb_instagram_header.sbi_large .sbi_header_text h3{font-size:28px}#sb_instagram .sb_instagram_header.sbi_large .sbi_header_text .sbi_bio_info,#sb_instagram .sb_instagram_header.sbi_large .sbi_header_text .sbi_bio{font-size:16px}#sb_instagram .sb_instagram_header.sbi_large .sbi_header_text h3,#sb_instagram .sb_instagram_header.sbi_large .sbi_header_text .sbi_bio_info,#sb_instagram .sb_instagram_header.sbi_large .sbi_header_text .sbi_bio{margin-left:140px!important;line-height:1.5}#sb_instagram .sb_instagram_header.sbi_large .sbi_header_text h3{margin-right:-120px!important}#sb_instagram .sb_instagram_header.sbi_large .sbi_header_text .sbi_bio_info{margin-top:12px!important}#sb_instagram .sb_instagram_header.sbi_large .sbi_header_text.sbi_no_bio h3{padding-top:32px!important}}#sb_instagram .sb_instagram_header .sbi_header_img{float:left;position:relative;width:50px;margin:0 0 0 -100%!important;overflow:hidden;-moz-border-radius:40px;-webkit-border-radius:40px;border-radius:40px}#sb_instagram .sb_instagram_header .sbi_header_img img{float:left;margin:0!important;padding:0!important;border:none!important;-moz-border-radius:40px;-webkit-border-radius:40px;border-radius:40px}#sb_instagram .sb_instagram_header .sbi_header_img_hover{opacity:0;position:absolute;width:100%;top:0;bottom:0;left:0;text-align:center;color:#fff;background:rgba(0,0,0,.75)}#sb_instagram .sb_instagram_header .sbi_header_img_hover .sbi_new_logo{position:absolute;top:50%;left:50%;margin-top:-12px;margin-left:-12px;width:24px;height:24px;font-size:24px}#sb_instagram .sb_instagram_header .sbi_header_img_hover i{overflow:hidden;background:url(../img/small-logo.png) no-repeat 0 0}#sb_instagram .sb_instagram_header .sbi_header_img_hover{z-index:2;transition:opacity 0.4s ease-in-out}#sb_instagram .sb_instagram_header .sbi_fade_in{opacity:1;transition:opacity 0.2s ease-in-out}#sb_instagram .sb_instagram_header .sbi_header_img_hover{position:absolute;width:100%;top:0;bottom:0;left:0;text-align:center;color:#fff;background:rgba(0,0,0,.75);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;opacity:0;border-radius:40px;transition:opacity 0.2s}#sb_instagram .sb_instagram_header a:hover .sbi_header_img_hover,#sb_instagram .sb_instagram_header a:focus .sbi_header_img_hover{opacity:1}#sb_instagram .sb_instagram_header .sbi_header_text{float:left;width:100%;padding-top:5px}#sb_instagram .sb_instagram_header a{text-decoration:none}#sb_instagram .sb_instagram_header .sbi_header_text .sbi_bio,#sb_instagram .sb_instagram_header .sbi_header_text h3{float:left;clear:both;width:auto;margin:0 0 0 60px!important;padding:0!important}#sb_instagram .sb_instagram_header h3{font-size:16px;line-height:1.3}#sb_instagram .sb_instagram_header p{font-size:13px;line-height:1.3;margin:0;padding:0}#sb_instagram p:empty{display:none}#sb_instagram .sb_instagram_header .sbi_header_text img.emoji{margin-right:3px!important}#sb_instagram .sb_instagram_header .sbi_header_text.sbi_no_bio h3{padding-top:9px!important}#sb_instagram .sb_instagram_header .sbi_header_text.sbi_no_bio .sbi_bio_info{clear:both}#sb_instagram #sbi_load{float:left;clear:both;width:100%;text-align:center}#sb_instagram #sbi_load .fa-spinner{display:none;position:absolute;top:50%;left:50%;margin:-8px 0 0 -7px;font-size:15px}#sb_instagram #sbi_load{opacity:1;transition:all 0.5s ease-in}#sb_instagram .sbi_load_btn .sbi_btn_text,#sb_instagram .sbi_load_btn .sbi_loader{opacity:1;transition:all 0.1s ease-in}#sb_instagram .sbi_hidden{opacity:0!important}#sb_instagram #sbi_load .sbi_load_btn,#sb_instagram .sbi_follow_btn a{display:-moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;padding:7px 14px;margin:5px auto 0 auto;background:#333;color:#eee;border:none;color:#fff;text-decoration:none;font-size:13px;line-height:1.5;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#sb_instagram #sbi_load .sbi_load_btn{position:relative}#sb_instagram .sbi_follow_btn{display:-moz-inline-stack;display:inline-block;vertical-align:top;zoom:1;*display:inline;text-align:center}#sb_instagram .sbi_follow_btn.sbi_top{display:block;margin-bottom:5px}#sb_instagram .sbi_follow_btn a{background:#408bd1;color:#fff}#sb_instagram .sbi_follow_btn a,#sb_instagram .sbi_follow_btn a,#sb_instagram #sbi_load .sbi_load_btn{transition:all 0.1s ease-in}#sb_instagram #sbi_load .sbi_load_btn:hover{outline:none;box-shadow:inset 0 0 20px 20px rgba(255,255,255,.25)}#sb_instagram .sbi_follow_btn a:hover,#sb_instagram .sbi_follow_btn a:focus{outline:none;box-shadow:inset 0 0 10px 20px #359dff}#sb_instagram .sbi_follow_btn.sbi_custom a:hover,#sb_instagram .sbi_follow_btn.sbi_custom a:focus,#sb_instagram #sbi_load .sbi_load_btn.sbi_custom:hover{box-shadow:inset 0 0 20px 20px rgba(255,255,255,.15)}#sb_instagram .sbi_follow_btn a:active,#sb_instagram #sbi_load .sbi_load_btn:active{box-shadow:inset 0 0 10px 20px rgba(0,0,0,.3)}#sb_instagram .sbi_follow_btn .fa,#sb_instagram .sbi_follow_btn svg{margin-bottom:-1px;margin-right:7px;font-size:15px}#sb_instagram .sbi_follow_btn svg{vertical-align:-.125em}#sb_instagram #sbi_load .sbi_follow_btn{margin-left:5px}#sb_instagram .sb_instagram_error{width:100%;text-align:center;line-height:1.4}#sbi_mod_error{display:none;border:1px solid #ddd;background:#eee;color:#333;margin:10px 0 0;padding:10px 15px;font-size:13px;text-align:center;clear:both;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}#sbi_mod_error p{padding:5px 0!important;margin:0!important;line-height:1.3!important}#sbi_mod_error ol,#sbi_mod_error ul{padding:5px 0 5px 20px!important;margin:0!important}#sbi_mod_error li{padding:1px 0!important;margin:0!important}#sbi_mod_error span{font-size:12px}#sb_instagram.sbi_medium .sbi_playbtn,#sb_instagram.sbi_medium .sbi_photo_wrap .svg-inline--fa.fa-play{margin-top:-12px;margin-left:-9px;font-size:23px}#sb_instagram.sbi_medium .sbi_type_carousel .sbi_photo_wrap .fa-clone{right:8px;top:8px;font-size:18px}#sb_instagram.sbi_small .sbi_playbtn,#sb_instagram.sbi_small .sbi_photo_wrap .svg-inline--fa.fa-play{margin-top:-9px;margin-left:-7px;font-size:18px}#sb_instagram.sbi_small .sbi_type_carousel .sbi_photo_wrap .fa-clone{right:5px;top:5px;font-size:12px}@media all and (max-width:640px){#sb_instagram.sbi_col_3 #sbi_images .sbi_item,#sb_instagram.sbi_col_4 #sbi_images .sbi_item,#sb_instagram.sbi_col_5 #sbi_images .sbi_item,#sb_instagram.sbi_col_6 #sbi_images .sbi_item{width:50%}#sb_instagram.sbi_col_7 #sbi_images .sbi_item,#sb_instagram.sbi_col_8 #sbi_images .sbi_item,#sb_instagram.sbi_col_9 #sbi_images .sbi_item,#sb_instagram.sbi_col_10 #sbi_images .sbi_item{width:25%}#sb_instagram.sbi_width_resp{width:100%!important}}@media all and (max-width:480px){#sb_instagram.sbi_col_3 #sbi_images .sbi_item,#sb_instagram.sbi_col_4 #sbi_images .sbi_item,#sb_instagram.sbi_col_5 #sbi_images .sbi_item,#sb_instagram.sbi_col_6 #sbi_images .sbi_item,#sb_instagram.sbi_col_7 #sbi_images .sbi_item,#sb_instagram.sbi_col_8 #sbi_images .sbi_item,#sb_instagram.sbi_col_9 #sbi_images .sbi_item,#sb_instagram.sbi_col_10 #sbi_images .sbi_item{width:100%}}#sb_instagram.sbi_no_js #sbi_images .sbi_item .sbi_photo_wrap{box-sizing:border-box;position:relative;overflow:hidden}#sb_instagram.sbi_no_js #sbi_images .sbi_item .sbi_photo_wrap:before{content:"";display:block;padding-top:100%;z-index:-300}#sb_instagram.sbi_no_js #sbi_images .sbi_item .sbi_photo{position:absolute;top:0;left:0;bottom:0;right:0}#sb_instagram.sbi_no_js #sbi_images .sbi_item.sbi_transition{opacity:1;max-height:640px}#sb_instagram.sbi_no_js .sbi_photo img,#sb_instagram.sbi_no_js .sbi_load_btn{display:none}
css/sb-instagram-admin.css CHANGED
@@ -402,8 +402,12 @@
402
  border: 1px solid #6AB074;
403
  color: #214F28;
404
  }
 
 
 
 
405
  .sbi_review_notice img{
406
- width: 84px;
407
  margin: 0 0 0 -100% !important;
408
 
409
  -moz-border-radius: 4px;
@@ -414,14 +418,18 @@
414
  float: left;
415
  clear: none;
416
  width: 100%;
417
- padding: 4px 0;
 
 
 
418
  }
419
  .sbi_review_notice p{
420
  float: left;
421
  clear: both;
422
  width: auto;
423
- margin: 0 0 0 100px !important;
424
- padding: 4px 40px 4px 0;
 
425
  }
426
  .sbi_review_notice a{
427
  display: inline-block;
@@ -433,11 +441,9 @@
433
  color: #0c7abf;
434
  }
435
  .sbi_review_notice .links{
436
- margin: 0 0 0 92px !important;
437
  padding: 4px 0 0 0;
438
- }
439
- .sbi_review_notice .links a:first-child{
440
- /*padding-left: 0;*/
441
  }
442
  .sbi_review_notice .sbi_notice_close,
443
  .sbi_review_notice .sbi_bfcm_sale_notice_close,
@@ -1235,7 +1241,7 @@
1235
  #sbi_admin .sbi_feed_type .sbi_lock{
1236
  height: 18px;
1237
  padding: 4px 10px 4px 13px;
1238
- top: 1px;
1239
  left: 98px;
1240
  color: #999;
1241
  }
@@ -1259,18 +1265,20 @@
1259
  }
1260
  #sbi_admin .sbi_pro_tooltip{
1261
  text-align: center;
 
1262
  display: none;
1263
  position: absolute;
 
 
 
1264
  background: #333;
1265
  color: #eee;
1266
  width: 90%;
1267
  padding: 8px 10px 10px 10px;
1268
  border-radius: 3px;
1269
- bottom: 45px;
1270
  line-height: 1.3;
1271
  font-size: 12px;
1272
- width: 174px;
1273
- bottom: 40px;
1274
  }
1275
  #sbi_admin .sbi_pro_tooltip .fa-caret-down {
1276
  position: absolute;
@@ -1368,9 +1376,26 @@
1368
  color: #fff;
1369
  }
1370
  .sbi_review_notice .sbi_other_notice{
1371
- font-size: 13px;
1372
- font-style: italic;
1373
- margin-top: 5px !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1374
  }
1375
 
1376
  /* Admin footer share icons */
402
  border: 1px solid #6AB074;
403
  color: #214F28;
404
  }
405
+ .sbi_bfcm_sale_notice,
406
+ .sbi_new_user_sale_notice{
407
+ max-width: 672px;
408
+ }
409
  .sbi_review_notice img{
410
+ width: 74px;
411
  margin: 0 0 0 -100% !important;
412
 
413
  -moz-border-radius: 4px;
418
  float: left;
419
  clear: none;
420
  width: 100%;
421
+ padding: 0;
422
+ }
423
+ .sbi_review_notice .sbi-links{
424
+ margin-top: 4px !important;
425
  }
426
  .sbi_review_notice p{
427
  float: left;
428
  clear: both;
429
  width: auto;
430
+ margin: 0 0 0 90px !important;
431
+ padding: 2px 40px 2px 0;
432
+ line-height: 1.4;
433
  }
434
  .sbi_review_notice a{
435
  display: inline-block;
441
  color: #0c7abf;
442
  }
443
  .sbi_review_notice .links{
444
+ margin: 0 0 0 82px !important;
445
  padding: 4px 0 0 0;
446
+ margin-top: 6px !important;
 
 
447
  }
448
  .sbi_review_notice .sbi_notice_close,
449
  .sbi_review_notice .sbi_bfcm_sale_notice_close,
1241
  #sbi_admin .sbi_feed_type .sbi_lock{
1242
  height: 18px;
1243
  padding: 4px 10px 4px 13px;
1244
+ top: 18px;
1245
  left: 98px;
1246
  color: #999;
1247
  }
1265
  }
1266
  #sbi_admin .sbi_pro_tooltip{
1267
  text-align: center;
1268
+ z-index:99;
1269
  display: none;
1270
  position: absolute;
1271
+ bottom: 22px;
1272
+ left: -8px;
1273
+
1274
  background: #333;
1275
  color: #eee;
1276
  width: 90%;
1277
  padding: 8px 10px 10px 10px;
1278
  border-radius: 3px;
 
1279
  line-height: 1.3;
1280
  font-size: 12px;
1281
+ width: 190px;
 
1282
  }
1283
  #sbi_admin .sbi_pro_tooltip .fa-caret-down {
1284
  position: absolute;
1376
  color: #fff;
1377
  }
1378
  .sbi_review_notice .sbi_other_notice{
1379
+ padding-top: 10px;
1380
+ font-style: italic;
1381
+ font-size: 12px;
1382
+ }
1383
+ .sbi_review_notice .sbi_other_notice a {
1384
+ padding: 0;
1385
+ }
1386
+
1387
+ .sbi_review_notice .sbi_offer_btn {
1388
+ padding: 4px 12px 6px 12px;
1389
+ background: green;
1390
+ color: #fff;
1391
+ border-radius: 4px;
1392
+ display: inline-block;
1393
+ text-decoration: none;
1394
+ margin-left: 0;
1395
+ }
1396
+ .sbi_review_notice .sbi_offer_btn:hover, .sbi_review_notice .sbi_offer_btn:focus {
1397
+ background: #049404;
1398
+ color: #fff;
1399
  }
1400
 
1401
  /* Admin footer share icons */
img/sbi-icon-offer.png CHANGED
Binary file
inc/admin/actions.php CHANGED
@@ -182,7 +182,8 @@ function sbi_connect_business_accounts() {
182
  'last_checked' => time(),
183
  'profile_picture' => $profile_picture,
184
  'name' => $name,
185
- 'type' => $type
 
186
  );
187
 
188
  if ( !$options['sb_instagram_disable_resize'] ) {
@@ -254,11 +255,13 @@ function sbi_test_token() {
254
  );
255
  }
256
 
 
 
257
  }
258
 
259
  if ( isset( $test_connection_data['error_message'] ) ) {
260
  echo $test_connection_data['error_message'];
261
- } elseif ( $test_connection_data !== false ) {
262
  $username = $test_connection_data['username'] ? $test_connection_data['username'] : $connected_accounts[ $new_user_id ]['username'];
263
  $user_id = $test_connection_data['id'] ? $test_connection_data['id'] : $connected_accounts[ $new_user_id ]['user_id'];
264
  $profile_picture = $test_connection_data['profile_picture'] ? $test_connection_data['profile_picture'] : $connected_accounts[ $new_user_id ]['profile_picture'];
@@ -268,7 +271,7 @@ function sbi_test_token() {
268
  'user_id' => $user_id,
269
  'username' => $username,
270
  'type' => $type,
271
- 'is_valid' => $test_connection_data['is_valid'],
272
  'last_checked' => $test_connection_data['last_checked'],
273
  'profile_picture' => $profile_picture
274
  );
@@ -281,6 +284,25 @@ function sbi_test_token() {
281
  $connected_accounts[ $new_user_id ]['local_avatar'] = false;
282
  }
283
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
284
  $options['connected_accounts'] = $connected_accounts;
285
 
286
  update_option( 'sb_instagram_settings', $options );
@@ -306,29 +328,31 @@ function sbi_delete_account() {
306
  $options = get_option( 'sb_instagram_settings', array() );
307
  $connected_accounts = isset( $options['connected_accounts'] ) ? $options['connected_accounts'] : array();
308
 
309
- if ( $account_id ) {
310
- wp_cache_delete ( 'alloptions', 'options' );
311
- $username = $connected_accounts[ $account_id ]['username'];
312
 
313
- $num_times_used = 0;
314
- foreach ( $connected_accounts as $connected_account ) {
315
 
316
- if ( $connected_account['username'] === $username ) {
317
- $num_times_used++;
318
- }
319
- }
320
 
321
- if ( $num_times_used < 2 ) {
322
- sbi_delete_local_avatar( $username );
323
- }
 
 
 
 
 
324
 
325
- unset( $connected_accounts[ $account_id ] );
 
 
326
 
327
- $options['connected_accounts'] = $connected_accounts;
328
 
329
- update_option( 'sb_instagram_settings', $options );
330
 
331
- }
332
 
333
  die();
334
  }
@@ -619,16 +643,7 @@ function sbi_notices_html() {
619
  $should_show_new_user_discount = false;
620
  $has_been_one_month_since_rating_dismissal = isset( $sbi_statuses_option['rating_notice_dismissed'] ) ? ((int)$sbi_statuses_option['rating_notice_dismissed'] + 30*24*60*60) < $current_time + 1: true;
621
 
622
- if ( isset( $sbi_statuses_option['first_install'] ) && $sbi_statuses_option['first_install'] === 'from_update' ) {
623
- global $current_user;
624
- $user_id = $current_user->ID;
625
- $ignore_new_user_sale_notice_meta = get_user_meta( $user_id, 'sbi_ignore_new_user_sale_notice' );
626
- $ignore_new_user_sale_notice_meta = isset( $ignore_new_user_sale_notice_meta[0] ) ? $ignore_new_user_sale_notice_meta[0] : '';
627
-
628
- if ( $ignore_new_user_sale_notice_meta !== 'always' ) {
629
- $should_show_new_user_discount = true;
630
- }
631
- } elseif ( $in_new_user_month_range && $has_been_one_month_since_rating_dismissal ) {
632
  global $current_user;
633
  $user_id = $current_user->ID;
634
  $ignore_new_user_sale_notice_meta = get_user_meta( $user_id, 'sbi_ignore_new_user_sale_notice' );
@@ -666,16 +681,14 @@ function sbi_notices_html() {
666
 
667
  var_dump( $sbi_statuses_option );
668
  }
669
-
670
- $should_show_bfcm_discount = false; // temporary to not show notices on update
671
- $should_show_new_user_discount = false; // temporary to not show notices on update
672
 
673
  if ( $should_show_rating_notice ) {
674
  $other_notice_html = '';
675
  $dismiss_url = add_query_arg( 'sbi_ignore_rating_notice_nag', '1' );
676
  $later_url = add_query_arg( 'sbi_ignore_rating_notice_nag', 'later' );
677
  if ( $should_show_bfcm_discount ) {
678
- $other_notice_html = '<p class="sbi_other_notice">' . __( 'PS. We currently have a Black Friday/Cyber Monday deal going on for <b>20% off</b> the Pro version of the plugin.', 'instagram-feed' ) . '<a href="https://smashballoon.com/instagram-feed/?utm_source=plugin-free&utm_campaign=sbi&discount='.$sbi_bfcm_discount_code.'" target="_blank" class="sbi_offer_btn">' . __( 'Get this deal!', 'instagram-feed' ) . '</a></p>';
679
 
680
  $dismiss_url = add_query_arg( array(
681
  'sbi_ignore_rating_notice_nag' => '1',
@@ -689,12 +702,14 @@ function sbi_notices_html() {
689
  );
690
  }
691
 
692
- echo"
693
  <div class='sbi_notice sbi_review_notice'>
694
  <img src='". SBI_PLUGIN_URL . 'img/sbi-icon.png' ."' alt='" . __( 'Instagram Feed', 'instagram-feed' ) . "'>
695
  <div class='sbi-notice-text'>
696
- <p>" . __( "It's great to see that you've been using the <strong>Smash Balloon Instagram Feed</strong> plugin for a while now. Hopefully you're happy with it!&nbsp; If so, would you consider leaving a positive review? It really helps to support the plugin and helps others to discover it too!", 'instagram-feed' ) . "</p>
697
- <p class='links'>
 
 
698
  <a class='sbi_notice_dismiss' href='https://wordpress.org/support/plugin/instagram-feed/reviews/' target='_blank'>" . __( 'Sure, I\'d love to!', 'instagram-feed' ) . "</a>
699
  &middot;
700
  <a class='sbi_notice_dismiss' href='" .esc_url( $dismiss_url ). "'>" . __( 'No thanks', 'instagram-feed' ) . "</a>
@@ -718,9 +733,9 @@ function sbi_notices_html() {
718
  <div class='sbi_notice sbi_review_notice sbi_new_user_sale_notice'>
719
  <img src='" . SBI_PLUGIN_URL . 'img/sbi-icon-offer.png' . "' alt='Instagram Feed'>
720
  <div class='sbi-notice-text'>
721
- <p>" . __( '<b style="font-weight: 700;">Thank you!</b> We appreciate you using the Smash Balloon Instagram Feed plugin and wanted to say thank you by offering you a limited time <b>20% discount</b> on the Pro version.', 'instagram-feed' ) . "</p>
722
- <p class='links'>
723
- <a class='sbi_notice_dismiss sbi_offer_btn' href='https://smashballoon.com/instagram-feed/?utm_source=plugin-free&utm_campaign=sbi&discount=instagramthankyou' target='_blank'>" . __( 'Yes please!', 'instagram-feed' ) . "</a>
724
  <a class='sbi_notice_dismiss' style='margin-left: 5px;' href='" . esc_url( add_query_arg( 'sbi_ignore_new_user_sale_notice', 'always' ) ) . "'>" . __( 'I\'m not interested', 'instagram-feed' ) . "</a>
725
 
726
  </p>
@@ -736,8 +751,8 @@ function sbi_notices_html() {
736
  <div class='sbi_notice sbi_review_notice sbi_bfcm_sale_notice'>
737
  <img src='". SBI_PLUGIN_URL . 'img/sbi-icon-offer.png' ."' alt='Instagram Feed'>
738
  <div class='sbi-notice-text'>
739
- <p>" . __( '<b style="font-weight: 700;">Black Friday/Cyber Monday Deal!</b> Thank you for using our free Instagram Feed plugin. For a limited time, we\'re offering <b>20% off</b> the Pro version for all of our users.', 'instagram-feed' ) . "</p>
740
- <p class='links'>
741
  <a class='sbi_notice_dismiss sbi_offer_btn' href='https://smashballoon.com/instagram-feed/?utm_source=plugin-free&utm_campaign=sbi&discount=".$sbi_bfcm_discount_code."' target='_blank'>" . __( 'Get this offer!', 'instagram-feed' ) . "</a>
742
  <a class='sbi_notice_dismiss' style='margin-left: 5px;' href='" .esc_url( add_query_arg( 'sbi_ignore_bfcm_sale_notice', date( 'Y', $current_time ) ) ). "'>" . __( 'I\'m not interested', 'instagram-feed' ) . "</a>
743
  </p>
182
  'last_checked' => time(),
183
  'profile_picture' => $profile_picture,
184
  'name' => $name,
185
+ 'type' => $type,
186
+ 'use_tagged' => '1'
187
  );
188
 
189
  if ( !$options['sb_instagram_disable_resize'] ) {
255
  );
256
  }
257
 
258
+ delete_transient( SBI_USE_BACKUP_PREFIX . 'sbi_' . $json['id'] );
259
+
260
  }
261
 
262
  if ( isset( $test_connection_data['error_message'] ) ) {
263
  echo $test_connection_data['error_message'];
264
+ } elseif ( $test_connection_data !== false && ! empty( $new_user_id ) ) {
265
  $username = $test_connection_data['username'] ? $test_connection_data['username'] : $connected_accounts[ $new_user_id ]['username'];
266
  $user_id = $test_connection_data['id'] ? $test_connection_data['id'] : $connected_accounts[ $new_user_id ]['user_id'];
267
  $profile_picture = $test_connection_data['profile_picture'] ? $test_connection_data['profile_picture'] : $connected_accounts[ $new_user_id ]['profile_picture'];
271
  'user_id' => $user_id,
272
  'username' => $username,
273
  'type' => $type,
274
+ 'is_valid' => true,
275
  'last_checked' => $test_connection_data['last_checked'],
276
  'profile_picture' => $profile_picture
277
  );
284
  $connected_accounts[ $new_user_id ]['local_avatar'] = false;
285
  }
286
 
287
+ if ( $type === 'business' ) {
288
+ $url = 'https://graph.facebook.com/'.$user_id.'/tags?user_id='.$user_id.'&fields=id&limit=1&access_token='.sbi_maybe_clean( $access_token );
289
+ $args = array(
290
+ 'timeout' => 60,
291
+ 'sslverify' => false
292
+ );
293
+ $response = wp_remote_get( $url, $args );
294
+
295
+ if ( ! is_wp_error( $response ) ) {
296
+ // certain ways of representing the html for double quotes causes errors so replaced here.
297
+ $response = json_decode( str_replace( '%22', '&rdquo;', $response['body'] ), true );
298
+ if ( isset( $response['data'] ) ) {
299
+ $connected_accounts[ $new_user_id ]['use_tagged'] = '1';
300
+ }
301
+ }
302
+ }
303
+
304
+ delete_transient( SBI_USE_BACKUP_PREFIX . 'sbi_' . $user_id );
305
+
306
  $options['connected_accounts'] = $connected_accounts;
307
 
308
  update_option( 'sb_instagram_settings', $options );
328
  $options = get_option( 'sb_instagram_settings', array() );
329
  $connected_accounts = isset( $options['connected_accounts'] ) ? $options['connected_accounts'] : array();
330
 
331
+ wp_cache_delete ( 'alloptions', 'options' );
332
+ $username = $connected_accounts[ $account_id ]['username'];
 
333
 
334
+ $num_times_used = 0;
 
335
 
336
+ $new_con_accounts = array();
337
+ foreach ( $connected_accounts as $connected_account ) {
 
 
338
 
339
+ if ( $connected_account['username'] === $username ) {
340
+ $num_times_used++;
341
+ }
342
+
343
+ if ( $connected_account['username'] !== '' && $account_id !== $connected_account['user_id'] && ! empty( $connected_account['user_id'] ) ) {
344
+ $new_con_accounts[ $connected_account['user_id'] ] = $connected_account;
345
+ }
346
+ }
347
 
348
+ if ( $num_times_used < 2 ) {
349
+ sbi_delete_local_avatar( $username );
350
+ }
351
 
352
+ $options['connected_accounts'] = $new_con_accounts;
353
 
354
+ update_option( 'sb_instagram_settings', $options );
355
 
 
356
 
357
  die();
358
  }
643
  $should_show_new_user_discount = false;
644
  $has_been_one_month_since_rating_dismissal = isset( $sbi_statuses_option['rating_notice_dismissed'] ) ? ((int)$sbi_statuses_option['rating_notice_dismissed'] + 30*24*60*60) < $current_time + 1: true;
645
 
646
+ if ( $in_new_user_month_range && $has_been_one_month_since_rating_dismissal ) {
 
 
 
 
 
 
 
 
 
647
  global $current_user;
648
  $user_id = $current_user->ID;
649
  $ignore_new_user_sale_notice_meta = get_user_meta( $user_id, 'sbi_ignore_new_user_sale_notice' );
681
 
682
  var_dump( $sbi_statuses_option );
683
  }
684
+
 
 
685
 
686
  if ( $should_show_rating_notice ) {
687
  $other_notice_html = '';
688
  $dismiss_url = add_query_arg( 'sbi_ignore_rating_notice_nag', '1' );
689
  $later_url = add_query_arg( 'sbi_ignore_rating_notice_nag', 'later' );
690
  if ( $should_show_bfcm_discount ) {
691
+ $other_notice_html = '<p class="sbi_other_notice">' . __( 'PS. We currently have a <a href="https://smashballoon.com/instagram-feed/?utm_source=plugin-free&utm_campaign=sbi&discount='.$sbi_bfcm_discount_code.'" target="_blank"><b style="font-weight: 700;">Black Friday deal</b></a> for 20% off the Pro version!', 'instagram-feed' ) . '</a></p>';
692
 
693
  $dismiss_url = add_query_arg( array(
694
  'sbi_ignore_rating_notice_nag' => '1',
702
  );
703
  }
704
 
705
+ echo "
706
  <div class='sbi_notice sbi_review_notice'>
707
  <img src='". SBI_PLUGIN_URL . 'img/sbi-icon.png' ."' alt='" . __( 'Instagram Feed', 'instagram-feed' ) . "'>
708
  <div class='sbi-notice-text'>
709
+ <p style='padding-top: 4px;'>" . __( "It's great to see that you've been using the <strong style='font-weight: 700;'>Instagram Feed</strong> plugin for a while now. Hopefully you're happy with it!&nbsp; If so, would you consider leaving a positive review? It really helps to support the plugin and helps others to discover it too!", 'instagram-feed' ) . "</p>
710
+ <p class='links'";
711
+ if( $should_show_bfcm_discount ) echo " style='margin-top: 0 !important;'";
712
+ echo ">
713
  <a class='sbi_notice_dismiss' href='https://wordpress.org/support/plugin/instagram-feed/reviews/' target='_blank'>" . __( 'Sure, I\'d love to!', 'instagram-feed' ) . "</a>
714
  &middot;
715
  <a class='sbi_notice_dismiss' href='" .esc_url( $dismiss_url ). "'>" . __( 'No thanks', 'instagram-feed' ) . "</a>
733
  <div class='sbi_notice sbi_review_notice sbi_new_user_sale_notice'>
734
  <img src='" . SBI_PLUGIN_URL . 'img/sbi-icon-offer.png' . "' alt='Instagram Feed'>
735
  <div class='sbi-notice-text'>
736
+ <p>" . __( '<b style="font-weight: 700;">Exclusive offer!</b> We don\'t run promotions very often, but for a limited time we\'re offering <b style="font-weight: 700;">20% off</b> our Pro version to all users of our free Instagram Feed plugin.', 'instagram-feed' ) . "</p>
737
+ <p class='sbi-links'>
738
+ <a class='sbi_notice_dismiss sbi_offer_btn' href='https://smashballoon.com/instagram-feed/?utm_source=plugin-free&utm_campaign=sbi&discount=instagramthankyou' target='_blank'><b>" . __( 'Get this offer', 'instagram-feed' ) . "</b></a>
739
  <a class='sbi_notice_dismiss' style='margin-left: 5px;' href='" . esc_url( add_query_arg( 'sbi_ignore_new_user_sale_notice', 'always' ) ) . "'>" . __( 'I\'m not interested', 'instagram-feed' ) . "</a>
740
 
741
  </p>
751
  <div class='sbi_notice sbi_review_notice sbi_bfcm_sale_notice'>
752
  <img src='". SBI_PLUGIN_URL . 'img/sbi-icon-offer.png' ."' alt='Instagram Feed'>
753
  <div class='sbi-notice-text'>
754
+ <p>" . __( '<b style="font-weight: 700;">Black Friday/Cyber Monday Deal!</b> Thank you for using our free Instagram Feed plugin. For a limited time, we\'re offering <b style="font-weight: 700;">20% off</b> the Pro version for all of our users.', 'instagram-feed' ) . "</p>
755
+ <p class='sbi-links'>
756
  <a class='sbi_notice_dismiss sbi_offer_btn' href='https://smashballoon.com/instagram-feed/?utm_source=plugin-free&utm_campaign=sbi&discount=".$sbi_bfcm_discount_code."' target='_blank'>" . __( 'Get this offer!', 'instagram-feed' ) . "</a>
757
  <a class='sbi_notice_dismiss' style='margin-left: 5px;' href='" .esc_url( add_query_arg( 'sbi_ignore_bfcm_sale_notice', date( 'Y', $current_time ) ) ). "'>" . __( 'I\'m not interested', 'instagram-feed' ) . "</a>
758
  </p>
inc/admin/main.php CHANGED
@@ -85,7 +85,8 @@ function sb_instagram_settings_page() {
85
  'enqueue_css_in_shortcode' => false,
86
  'sb_instagram_disable_mob_swipe' => false,
87
  'sbi_font_method' => 'svg',
88
- 'sb_instagram_disable_awesome' => false
 
89
  );
90
  //Save defaults in an array
91
  $options = wp_parse_args(get_option('sb_instagram_settings'), $sb_instagram_settings_defaults);
@@ -144,6 +145,8 @@ function sb_instagram_settings_page() {
144
  $sb_ajax_initial = $options[ 'sb_ajax_initial' ];
145
  $sbi_font_method = $options[ 'sbi_font_method' ];
146
  $sb_instagram_disable_awesome = $options[ 'sb_instagram_disable_awesome' ];
 
 
147
 
148
 
149
  //Check nonce before saving data
@@ -328,6 +331,9 @@ function sb_instagram_settings_page() {
328
  $options['sbi_font_method'] = $sbi_font_method;
329
  $options[ 'sb_instagram_disable_awesome' ] = $sb_instagram_disable_awesome;
330
 
 
 
 
331
  //clear expired tokens
332
  delete_option( 'sb_expired_tokens' );
333
 
@@ -413,7 +419,7 @@ function sb_instagram_settings_page() {
413
  <h3><?php _e( 'Configure', 'instagram-feed' ); ?></h3>
414
 
415
  <div id="sbi_config">
416
- <a data-new-api="https://www.facebook.com/dialog/oauth?client_id=254638078422287&redirect_uri=https://api.smashballoon.com/instagram-graph-api-redirect.php&scope=manage_pages,instagram_basic,instagram_manage_insights&state=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>"
417
  data-old-api="https://instagram.com/oauth/authorize/?client_id=3a81a9fa2a064751b8c31385b91cc25c&scope=basic&redirect_uri=https://smashballoon.com/instagram-feed/instagram-token-plugin/?return_uri=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>&response_type=token&state=<?php echo admin_url('admin.php?page-sb-instagram-feed'); ?>&hl=en"
418
  href="https://instagram.com/oauth/authorize/?client_id=3a81a9fa2a064751b8c31385b91cc25c&scope=basic&redirect_uri=https://smashballoon.com/instagram-feed/instagram-token-plugin/?return_uri=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>&response_type=token&state=<?php echo admin_url('admin.php?page-sb-instagram-feed'); ?>&hl=en" class="sbi_admin_btn"><i class="fa fa-user-plus" aria-hidden="true" style="font-size: 20px;"></i>&nbsp; <?php _e('Connect an Instagram Account', 'instagram-feed' ); ?></a>
419
 
@@ -702,7 +708,7 @@ function sb_instagram_settings_page() {
702
  </div>
703
  <div class="sbi_col sbi_two">
704
 
705
- <p class="sbi_pro_tooltip"><?php _e( 'Upgrade to the Pro version to display hashtag feeds', 'instagram-feed' ); ?><i class="fa fa-caret-down" aria-hidden="true"></i></p>
706
  <a href="https://smashballoon.com/instagram-feed/?utm_source=plugin-free&utm_campaign=sbi" target="_blank" class="sbi_lock"><i class="fa fa-rocket"></i><?php _e('Pro', 'instagram-feed'); ?></a>
707
 
708
  <input readonly type="text" size="25" style="height: 32px; top: -2px; position: relative; box-shadow: none;" />
@@ -712,6 +718,19 @@ function sb_instagram_settings_page() {
712
  </div>
713
  </div>
714
 
 
 
 
 
 
 
 
 
 
 
 
 
 
715
  <div class="sbi_row sbi_pro">
716
  <br>
717
  <a class="sbi_tooltip_link sbi_pro" href="JavaScript:void(0);" style="margin-left: 0;"><i class="fa fa-question-circle" aria-hidden="true" style="margin-right: 6px;"></i><?php _e('Combine multiple feed types into a single feed', 'instagram-feed'); ?></a>
@@ -1781,7 +1800,16 @@ function sb_instagram_settings_page() {
1781
  <p class="sbi_tooltip"><?php _e("This plugin uses SVGs for all icons in the feed. Use this setting to switch to font icons.", 'instagram-feed'); ?></p>
1782
  </td>
1783
  </tr>
1784
- </tbody>
 
 
 
 
 
 
 
 
 
1785
  </table>
1786
 
1787
  <?php submit_button(); ?>
85
  'enqueue_css_in_shortcode' => false,
86
  'sb_instagram_disable_mob_swipe' => false,
87
  'sbi_font_method' => 'svg',
88
+ 'sb_instagram_disable_awesome' => false,
89
+ 'custom_template' => false
90
  );
91
  //Save defaults in an array
92
  $options = wp_parse_args(get_option('sb_instagram_settings'), $sb_instagram_settings_defaults);
145
  $sb_ajax_initial = $options[ 'sb_ajax_initial' ];
146
  $sbi_font_method = $options[ 'sbi_font_method' ];
147
  $sb_instagram_disable_awesome = $options[ 'sb_instagram_disable_awesome' ];
148
+ $sb_instagram_custom_template = $options[ 'custom_template' ];
149
+
150
 
151
 
152
  //Check nonce before saving data
331
  $options['sbi_font_method'] = $sbi_font_method;
332
  $options[ 'sb_instagram_disable_awesome' ] = $sb_instagram_disable_awesome;
333
 
334
+ isset($_POST[ 'sb_instagram_custom_template' ]) ? $sb_instagram_custom_template = $_POST[ 'sb_instagram_custom_template' ] : $sb_instagram_custom_template = '';
335
+ $options['custom_template'] = $sb_instagram_custom_template;
336
+
337
  //clear expired tokens
338
  delete_option( 'sb_expired_tokens' );
339
 
419
  <h3><?php _e( 'Configure', 'instagram-feed' ); ?></h3>
420
 
421
  <div id="sbi_config">
422
+ <a data-new-api="https://www.facebook.com/dialog/oauth?client_id=254638078422287&redirect_uri=https://api.smashballoon.com/instagram-graph-api-redirect.php&scope=manage_pages,instagram_basic,instagram_manage_insights,instagram_manage_comments&state=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>"
423
  data-old-api="https://instagram.com/oauth/authorize/?client_id=3a81a9fa2a064751b8c31385b91cc25c&scope=basic&redirect_uri=https://smashballoon.com/instagram-feed/instagram-token-plugin/?return_uri=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>&response_type=token&state=<?php echo admin_url('admin.php?page-sb-instagram-feed'); ?>&hl=en"
424
  href="https://instagram.com/oauth/authorize/?client_id=3a81a9fa2a064751b8c31385b91cc25c&scope=basic&redirect_uri=https://smashballoon.com/instagram-feed/instagram-token-plugin/?return_uri=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>&response_type=token&state=<?php echo admin_url('admin.php?page-sb-instagram-feed'); ?>&hl=en" class="sbi_admin_btn"><i class="fa fa-user-plus" aria-hidden="true" style="font-size: 20px;"></i>&nbsp; <?php _e('Connect an Instagram Account', 'instagram-feed' ); ?></a>
425
 
708
  </div>
709
  <div class="sbi_col sbi_two">
710
 
711
+ <p class="sbi_pro_tooltip"><?php _e( 'Upgrade to the Pro version to display Hashtag and Tagged feeds', 'instagram-feed' ); ?><i class="fa fa-caret-down" aria-hidden="true"></i></p>
712
  <a href="https://smashballoon.com/instagram-feed/?utm_source=plugin-free&utm_campaign=sbi" target="_blank" class="sbi_lock"><i class="fa fa-rocket"></i><?php _e('Pro', 'instagram-feed'); ?></a>
713
 
714
  <input readonly type="text" size="25" style="height: 32px; top: -2px; position: relative; box-shadow: none;" />
718
  </div>
719
  </div>
720
 
721
+ <div class="sbi_pro sbi_row">
722
+ <div class="sbi_col sbi_one">
723
+ <input disabled type="radio" name="sb_instagram_type" id="sb_instagram_type_tagged" value="tagged" <?php if($sb_instagram_type == "tagged") echo "checked"; ?> />
724
+ <label class="sbi_radio_label" for="sb_instagram_type_tagged"><?php _e( 'Tagged:', 'instagram-feed' ); ?></label>
725
+ </div>
726
+ <div class="sbi_col sbi_two">
727
+ <input readonly type="text" size="25" style="height: 32px; top: -2px; position: relative; box-shadow: none;" />
728
+ &nbsp;<a class="sbi_tooltip_link sbi_pro" href="JavaScript:void(0);"><?php _e( 'What is this?', 'instagram-feed' ); ?></a>
729
+
730
+ <p class="sbi_tooltip"><?php _e( 'Display posts that your account has been tagged in.', 'instagram-feed' ); ?></p>
731
+ </div>
732
+ </div>
733
+
734
  <div class="sbi_row sbi_pro">
735
  <br>
736
  <a class="sbi_tooltip_link sbi_pro" href="JavaScript:void(0);" style="margin-left: 0;"><i class="fa fa-question-circle" aria-hidden="true" style="margin-right: 6px;"></i><?php _e('Combine multiple feed types into a single feed', 'instagram-feed'); ?></a>
1800
  <p class="sbi_tooltip"><?php _e("This plugin uses SVGs for all icons in the feed. Use this setting to switch to font icons.", 'instagram-feed'); ?></p>
1801
  </td>
1802
  </tr>
1803
+ <tr>
1804
+ <th class="bump-left"><label class="bump-left"><?php _e("Enable Custom Templates", 'instagram-feed'); ?></label></th>
1805
+ <td>
1806
+ <input name="sb_instagram_custom_template" type="checkbox" id="sb_instagram_custom_template" <?php if($sb_instagram_custom_template == true) echo "checked"; ?> />
1807
+ <label for="sb_instagram_custom_template"><?php _e('Yes', 'instagram-feed'); ?></label>
1808
+ <a class="sbi_tooltip_link" href="JavaScript:void(0);"><?php _e('What does this mean?', 'instagram-feed'); ?></a>
1809
+ <p class="sbi_tooltip"><?php _e("The default HTML for the feed can be replaced with custom templates added to your theme's folder. Enable this setting to use these templates. See <a href=\"https://smashballoon.com/guide-to-creating-custom-templates/\" target=\"_blank\">this guide</a>", 'instagram-feed'); ?></p>
1810
+ </td>
1811
+ </tr>
1812
+ </tbody>
1813
  </table>
1814
 
1815
  <?php submit_button(); ?>
inc/class-sb-instagram-feed.php CHANGED
@@ -177,13 +177,15 @@ class SB_Instagram_Feed
177
  * @since 2.0/5.0
178
  */
179
  public function should_use_backup() {
180
- return $this->should_use_backup;
181
  }
182
 
183
  /**
184
  * The header is only displayed when the setting is enabled and
185
  * an account has been connected
186
  *
 
 
187
  * @param array $settings settings specific to this feed
188
  * @param array $feed_types_and_terms organized settings related to feed data
189
  * (ex. 'user' => array( 'smashballoon', 'custominstagramfeed' )
@@ -349,12 +351,13 @@ class SB_Instagram_Feed
349
  $ids = $num_or_array_of_ids;
350
 
351
  $id_string = '"' . implode( '","', $ids ) . '"';
352
- $results = $wpdb->get_results( "
353
  SELECT p.media_id, p.instagram_id, p.aspect_ratio, p.sizes
354
  FROM $posts_table_name AS p
355
  INNER JOIN $feeds_posts_table_name AS f ON p.id = f.id
 
356
  AND p.instagram_id IN($id_string)
357
- AND p.images_done = 1", ARRAY_A );
358
 
359
  $return = array();
360
  if ( !empty( $results ) && is_array( $results ) ) {
@@ -489,6 +492,14 @@ class SB_Instagram_Feed
489
  $next_pages = $this->next_pages;
490
  global $sb_instagram_posts_manager;
491
 
 
 
 
 
 
 
 
 
492
  $num = apply_filters( 'sbi_num_in_request', $settings['minnum'], $settings );
493
 
494
  $params = array(
@@ -497,6 +508,7 @@ class SB_Instagram_Feed
497
 
498
  $one_successful_connection = false;
499
  $next_page_found = false;
 
500
 
501
  foreach ( $feed_types_and_terms as $type => $terms ) {
502
  if ( is_array( $terms ) && count( $terms ) > 5 ) {
@@ -615,6 +627,8 @@ class SB_Instagram_Feed
615
  }
616
  }
617
  } elseif ( $api_requests_delayed ) {
 
 
618
  $this->add_report( 'delaying API request for ' . $term . ' - ' . $type );
619
 
620
  $error = '<p><b>' . sprintf( __( 'Error: API requests are being delayed for this account.', 'instagram-feed' ), $connected_account_for_term['username'] ) . ' ' . __( 'New posts will not be retrieved.', 'instagram-feed' ) . '</b>';
@@ -626,7 +640,7 @@ class SB_Instagram_Feed
626
  }
627
  }
628
 
629
- if ( ! $one_successful_connection ) {
630
  $this->should_use_backup = true;
631
  }
632
  $posts = $this->merge_posts( $new_post_sets, $settings );
@@ -658,7 +672,7 @@ class SB_Instagram_Feed
658
  * @since 2.0/5.0
659
  */
660
  public function set_remote_header_data( $settings, $feed_types_and_terms, $connected_accounts_for_feed ) {
661
- $first_user = isset( $feed_types_and_terms['users'][0] ) ? $feed_types_and_terms['users'][0]['term'] : '';
662
  $this->header_data = false;
663
 
664
  if ( isset( $connected_accounts_for_feed[ $first_user ] ) ) {
@@ -727,20 +741,27 @@ class SB_Instagram_Feed
727
  * @since 2.0/5.1 duplicate posts removed, cache set trimmed to a maximum
728
  */
729
  public function set_cron_cache( $to_cache, $cache_time, $save_backup = true ) {
730
- $this->remove_duplicate_posts();
731
- $this->trim_posts_to_max();
 
 
 
732
 
733
- $to_cache['data'] = isset( $to_cache['data'] ) ? $to_cache['data'] : $this->post_data;
734
- $to_cache['pagination'] = isset( $to_cache['next_pages'] ) ? $to_cache['next_pages'] : $this->next_pages;
735
- $to_cache['atts'] = isset( $to_cache['atts'] ) ? $to_cache['atts'] : $this->transient_atts;
736
- $to_cache['last_requested'] = isset( $to_cache['last_requested'] ) ? $to_cache['last_requested'] : time();
737
- $to_cache['last_retrieve'] = isset( $to_cache['last_retrieve'] ) ? $to_cache['last_retrieve'] : $this->last_retrieve;
738
 
739
- set_transient( $this->regular_feed_transient_name, wp_json_encode( $to_cache ), $cache_time );
740
 
741
- if ( $save_backup ) {
742
- update_option( $this->backup_feed_transient_name, wp_json_encode( $to_cache ), false );
 
 
 
743
  }
 
744
  }
745
 
746
  /**
@@ -846,6 +867,10 @@ class SB_Instagram_Feed
846
  $first_username = false;
847
  if ( $first_user ) {
848
  $first_username = isset( $connected_accounts_for_feed[ $first_user ]['username'] ) ? $connected_accounts_for_feed[ $first_user ]['username'] : $first_user;
 
 
 
 
849
  }
850
  $use_pagination = $this->should_use_pagination( $settings, 0 );
851
 
@@ -932,21 +957,6 @@ class SB_Instagram_Feed
932
  return $html;
933
  }
934
 
935
- /**
936
- * Additional options/settings added to the main div
937
- * for the feed
938
- *
939
- * Overwritten in the Pro version
940
- *
941
- * @param $other_atts
942
- * @param $settings
943
- *
944
- * @return string
945
- */
946
- protected function add_other_atts( $other_atts, $settings ) {
947
- return '';
948
- }
949
-
950
  /**
951
  * Generates HTML for individual sbi_item elements
952
  *
@@ -1018,11 +1028,28 @@ class SB_Instagram_Feed
1018
  $encoded_options = wp_json_encode( $js_options );
1019
 
1020
  $js_option_html = '<script type="text/javascript">var sb_instagram_js_options = ' . $encoded_options . ';</script>';
1021
- $js_option_html .= "<script type='text/javascript' src='" . trailingslashit( SBI_PLUGIN_URL ) . 'js/sb-instagram-2-0-1.min.js?ver=' . SBIVER . "'></script>";
1022
 
1023
  return $js_option_html;
1024
  }
1025
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1026
  /**
1027
  * Adds recorded strings to an array
1028
  *
@@ -1043,6 +1070,21 @@ class SB_Instagram_Feed
1043
  return $this->report;
1044
  }
1045
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1046
  /**
1047
  * Used for filtering a single API request worth of posts
1048
  *
@@ -1219,6 +1261,7 @@ class SB_Instagram_Feed
1219
  * @return mixed|array
1220
  *
1221
  * @since 2.0/5.0
 
1222
  */
1223
  private function sort_posts( $post_set, $settings ) {
1224
  if ( empty( $post_set ) ) {
@@ -1227,22 +1270,32 @@ class SB_Instagram_Feed
1227
 
1228
  // sorting done with "merge_posts" to be more efficient
1229
  if ( $settings['sortby'] === 'alternate' ) {
1230
- return $post_set;
1231
- } elseif ( $settings['sortby'] !== 'random' ) {
1232
- // compares posted on dates of posts
1233
- usort($post_set, 'sbi_date_sort' );
1234
-
1235
- return $post_set;
1236
- } else {
1237
  /*
1238
- * randomly selects posts in a random order. Cache saves posts
1239
- * in this random order so paginating does not cause some posts to show up
1240
- * twice or not at all
1241
- */
1242
  usort($post_set, 'sbi_rand_sort' );
 
1243
 
1244
- return $post_set;
 
 
 
1245
  }
 
 
 
 
 
 
 
 
 
 
 
1246
  }
1247
 
1248
  /**
177
  * @since 2.0/5.0
178
  */
179
  public function should_use_backup() {
180
+ return $this->should_use_backup || empty( $this->post_data );
181
  }
182
 
183
  /**
184
  * The header is only displayed when the setting is enabled and
185
  * an account has been connected
186
  *
187
+ * Overwritten in the Pro version
188
+ *
189
  * @param array $settings settings specific to this feed
190
  * @param array $feed_types_and_terms organized settings related to feed data
191
  * (ex. 'user' => array( 'smashballoon', 'custominstagramfeed' )
351
  $ids = $num_or_array_of_ids;
352
 
353
  $id_string = '"' . implode( '","', $ids ) . '"';
354
+ $results = $wpdb->get_results( $wpdb->prepare( "
355
  SELECT p.media_id, p.instagram_id, p.aspect_ratio, p.sizes
356
  FROM $posts_table_name AS p
357
  INNER JOIN $feeds_posts_table_name AS f ON p.id = f.id
358
+ WHERE f.feed_id = %s
359
  AND p.instagram_id IN($id_string)
360
+ AND p.images_done = 1", $feed_id ), ARRAY_A );
361
 
362
  $return = array();
363
  if ( !empty( $results ) && is_array( $results ) ) {
492
  $next_pages = $this->next_pages;
493
  global $sb_instagram_posts_manager;
494
 
495
+ /**
496
+ * Number of posts to retrieve in each API call
497
+ *
498
+ * @param int Minimum number of posts needed in each API request
499
+ * @param array $settings Settings for this feed
500
+ *
501
+ * @since 2.0/5.0
502
+ */
503
  $num = apply_filters( 'sbi_num_in_request', $settings['minnum'], $settings );
504
 
505
  $params = array(
508
 
509
  $one_successful_connection = false;
510
  $next_page_found = false;
511
+ $one_api_request_delayed = false;
512
 
513
  foreach ( $feed_types_and_terms as $type => $terms ) {
514
  if ( is_array( $terms ) && count( $terms ) > 5 ) {
627
  }
628
  }
629
  } elseif ( $api_requests_delayed ) {
630
+ $one_api_request_delayed = true;
631
+
632
  $this->add_report( 'delaying API request for ' . $term . ' - ' . $type );
633
 
634
  $error = '<p><b>' . sprintf( __( 'Error: API requests are being delayed for this account.', 'instagram-feed' ), $connected_account_for_term['username'] ) . ' ' . __( 'New posts will not be retrieved.', 'instagram-feed' ) . '</b>';
640
  }
641
  }
642
 
643
+ if ( ! $one_successful_connection || ($one_api_request_delayed && empty( $new_post_sets )) ) {
644
  $this->should_use_backup = true;
645
  }
646
  $posts = $this->merge_posts( $new_post_sets, $settings );
672
  * @since 2.0/5.0
673
  */
674
  public function set_remote_header_data( $settings, $feed_types_and_terms, $connected_accounts_for_feed ) {
675
+ $first_user = $this->get_first_user( $feed_types_and_terms );
676
  $this->header_data = false;
677
 
678
  if ( isset( $connected_accounts_for_feed[ $first_user ] ) ) {
741
  * @since 2.0/5.1 duplicate posts removed, cache set trimmed to a maximum
742
  */
743
  public function set_cron_cache( $to_cache, $cache_time, $save_backup = true ) {
744
+ if ( ! empty( $this->post_data )
745
+ || ! empty( $this->next_pages )
746
+ || ! empty( $to_cache['data'] ) ) {
747
+ $this->remove_duplicate_posts();
748
+ $this->trim_posts_to_max();
749
 
750
+ $to_cache['data'] = isset( $to_cache['data'] ) ? $to_cache['data'] : $this->post_data;
751
+ $to_cache['pagination'] = isset( $to_cache['next_pages'] ) ? $to_cache['next_pages'] : $this->next_pages;
752
+ $to_cache['atts'] = isset( $to_cache['atts'] ) ? $to_cache['atts'] : $this->transient_atts;
753
+ $to_cache['last_requested'] = isset( $to_cache['last_requested'] ) ? $to_cache['last_requested'] : time();
754
+ $to_cache['last_retrieve'] = isset( $to_cache['last_retrieve'] ) ? $to_cache['last_retrieve'] : $this->last_retrieve;
755
 
756
+ set_transient( $this->regular_feed_transient_name, wp_json_encode( $to_cache ), $cache_time );
757
 
758
+ if ( $save_backup ) {
759
+ update_option( $this->backup_feed_transient_name, wp_json_encode( $to_cache ), false );
760
+ }
761
+ } else {
762
+ $this->add_report( 'no data not caching' );
763
  }
764
+
765
  }
766
 
767
  /**
867
  $first_username = false;
868
  if ( $first_user ) {
869
  $first_username = isset( $connected_accounts_for_feed[ $first_user ]['username'] ) ? $connected_accounts_for_feed[ $first_user ]['username'] : $first_user;
870
+ } elseif ( $header_data ) { // in case no connected account for feed
871
+ $first_username = SB_Instagram_Parse::get_username( $header_data );
872
+ } elseif ( isset( $feed_types_and_terms['users'] ) && isset( $this->post_data[0] ) ) { // in case no connected account and no header
873
+ $first_username = SB_Instagram_Parse::get_username( $this->post_data[0] );
874
  }
875
  $use_pagination = $this->should_use_pagination( $settings, 0 );
876
 
957
  return $html;
958
  }
959
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
960
  /**
961
  * Generates HTML for individual sbi_item elements
962
  *
1028
  $encoded_options = wp_json_encode( $js_options );
1029
 
1030
  $js_option_html = '<script type="text/javascript">var sb_instagram_js_options = ' . $encoded_options . ';</script>';
1031
+ $js_option_html .= "<script type='text/javascript' src='" . trailingslashit( SBI_PLUGIN_URL ) . 'js/sb-instagram.min.js?ver=' . SBIVER . "'></script>";
1032
 
1033
  return $js_option_html;
1034
  }
1035
 
1036
+ /**
1037
+ * Overwritten in the Pro version
1038
+ *
1039
+ * @param $feed_types_and_terms
1040
+ *
1041
+ * @return string
1042
+ *
1043
+ * @since 2.1/5.2
1044
+ */
1045
+ public function get_first_user( $feed_types_and_terms ) {
1046
+ if ( isset( $feed_types_and_terms['users'][0] ) ) {
1047
+ return $feed_types_and_terms['users'][0]['term'];
1048
+ } else {
1049
+ return '';
1050
+ }
1051
+ }
1052
+
1053
  /**
1054
  * Adds recorded strings to an array
1055
  *
1070
  return $this->report;
1071
  }
1072
 
1073
+ /**
1074
+ * Additional options/settings added to the main div
1075
+ * for the feed
1076
+ *
1077
+ * Overwritten in the Pro version
1078
+ *
1079
+ * @param $other_atts
1080
+ * @param $settings
1081
+ *
1082
+ * @return string
1083
+ */
1084
+ protected function add_other_atts( $other_atts, $settings ) {
1085
+ return '';
1086
+ }
1087
+
1088
  /**
1089
  * Used for filtering a single API request worth of posts
1090
  *
1261
  * @return mixed|array
1262
  *
1263
  * @since 2.0/5.0
1264
+ * @since 2.1/5.2 added filter hook for applying custom sorting
1265
  */
1266
  private function sort_posts( $post_set, $settings ) {
1267
  if ( empty( $post_set ) ) {
1270
 
1271
  // sorting done with "merge_posts" to be more efficient
1272
  if ( $settings['sortby'] === 'alternate' ) {
1273
+ $return_post_set = $post_set;
1274
+ } elseif ( $settings['sortby'] === 'random' ) {
 
 
 
 
 
1275
  /*
1276
+ * randomly selects posts in a random order. Cache saves posts
1277
+ * in this random order so paginating does not cause some posts to show up
1278
+ * twice or not at all
1279
+ */
1280
  usort($post_set, 'sbi_rand_sort' );
1281
+ $return_post_set = $post_set;
1282
 
1283
+ } else {
1284
+ // compares posted on dates of posts
1285
+ usort($post_set, 'sbi_date_sort' );
1286
+ $return_post_set = $post_set;
1287
  }
1288
+
1289
+ /**
1290
+ * Apply a custom sorting of posts
1291
+ *
1292
+ * @param array $return_post_set Ordered set of filtered posts
1293
+ * @param array $settings Settings for this feed
1294
+ *
1295
+ * @since 2.1/5.2
1296
+ */
1297
+
1298
+ return apply_filters( 'sbi_sorted_posts', $return_post_set, $settings );
1299
  }
1300
 
1301
  /**
inc/class-sb-instagram-settings.php CHANGED
@@ -103,16 +103,19 @@ class SB_Instagram_Settings {
103
  'user' => isset( $db['sb_instagram_user'] ) ? $db['sb_instagram_user'] : false,
104
  'feedid' => isset( $db['sb_instagram_feed_id'] ) ? $db['sb_instagram_feed_id'] : false,
105
  'resizeprocess' => isset( $db['sb_instagram_resizeprocess'] ) ? $db['sb_instagram_resizeprocess'] : 'background',
106
- ), $atts );
107
 
 
 
 
 
 
 
108
  $this->settings['minnum'] = max( (int)$this->settings['num'], (int)$this->settings['nummobile'] );
109
  $this->settings['showbio'] = $this->settings['showbio'] === 'true' || $this->settings['showbio'] === 'on' || $this->settings['showbio'] === true;
110
  if ( isset( $atts['showbio'] ) && $atts['showbio'] === 'false' ) {
111
  $this->settings['showbio'] = false;
112
  }
113
- if ( isset( $atts['showheader'] ) && $atts['showheader'] === 'false' ) {
114
- $this->settings['showheader'] = false;
115
- }
116
  $this->settings['disable_resize'] = isset( $db['sb_instagram_disable_resize'] ) && ($db['sb_instagram_disable_resize'] === 'on');
117
  $this->settings['favor_local'] = isset( $db['sb_instagram_favor_local'] ) && ($db['sb_instagram_favor_local'] === 'on');
118
  $this->settings['backup_cache_enabled'] = ! isset( $db['sb_instagram_backup'] ) || ($db['sb_instagram_backup'] === 'on');
@@ -132,6 +135,8 @@ class SB_Instagram_Settings {
132
  $this->settings['sbi_cache_cron_interval'] = 60*60*12;
133
  }
134
 
 
 
135
 
136
  global $sb_instagram_posts_manager;
137
 
@@ -153,6 +158,8 @@ class SB_Instagram_Settings {
153
  * The plugin will output settings on the frontend for debugging purposes.
154
  * Safe settings to display are added here.
155
  *
 
 
156
  * @return array
157
  *
158
  * @since 2.0/5.0
@@ -200,7 +207,9 @@ class SB_Instagram_Settings {
200
  'disable_js_image_loading',
201
  'enqueue_js_in_head',
202
  'sbi_font_method',
203
- 'sb_instagram_disable_awesome'
 
 
204
  );
205
 
206
  return $public;
@@ -467,13 +476,14 @@ class SB_Instagram_Settings {
467
  return SBI_CRON_UPDATE_CACHE_TIME;
468
  } else {
469
  //If the caching time doesn't exist in the database then set it to be 1 hour
470
- $cache_time = isset( $settings['sb_instagram_cache_time'] ) ? (int)$this->settings['sb_instagram_cache_time'] : 1;
471
- $cache_time_unit = isset( $settings['sb_instagram_cache_time_unit'] ) ? $this->settings['sb_instagram_cache_time_unit'] : 'hours';
472
 
473
  //Calculate the cache time in seconds
474
  if ( $cache_time_unit == 'minutes' ) $cache_time_unit = 60;
475
  if ( $cache_time_unit == 'hours' ) $cache_time_unit = 60*60;
476
  if ( $cache_time_unit == 'days' ) $cache_time_unit = 60*60*24;
 
477
  return $cache_time * $cache_time_unit;
478
  }
479
  }
103
  'user' => isset( $db['sb_instagram_user'] ) ? $db['sb_instagram_user'] : false,
104
  'feedid' => isset( $db['sb_instagram_feed_id'] ) ? $db['sb_instagram_feed_id'] : false,
105
  'resizeprocess' => isset( $db['sb_instagram_resizeprocess'] ) ? $db['sb_instagram_resizeprocess'] : 'background',
106
+ 'customtemplates' => isset( $db['custom_template'] ) ? $db['custom_template'] : '',
107
 
108
+ ), $atts );
109
+
110
+ $this->settings['customtemplates'] = $this->settings['customtemplates'] === 'true' || $this->settings['customtemplates'] === 'on';
111
+ if ( isset( $_GET['sbi_debug'] ) ) {
112
+ $this->settings['customtemplates'] = false;
113
+ }
114
  $this->settings['minnum'] = max( (int)$this->settings['num'], (int)$this->settings['nummobile'] );
115
  $this->settings['showbio'] = $this->settings['showbio'] === 'true' || $this->settings['showbio'] === 'on' || $this->settings['showbio'] === true;
116
  if ( isset( $atts['showbio'] ) && $atts['showbio'] === 'false' ) {
117
  $this->settings['showbio'] = false;
118
  }
 
 
 
119
  $this->settings['disable_resize'] = isset( $db['sb_instagram_disable_resize'] ) && ($db['sb_instagram_disable_resize'] === 'on');
120
  $this->settings['favor_local'] = isset( $db['sb_instagram_favor_local'] ) && ($db['sb_instagram_favor_local'] === 'on');
121
  $this->settings['backup_cache_enabled'] = ! isset( $db['sb_instagram_backup'] ) || ($db['sb_instagram_backup'] === 'on');
135
  $this->settings['sbi_cache_cron_interval'] = 60*60*12;
136
  }
137
 
138
+ $this->settings['sb_instagram_cache_time'] = isset( $this->db['sb_instagram_cache_time'] ) ? $this->db['sb_instagram_cache_time'] : 1;
139
+ $this->settings['sb_instagram_cache_time_unit'] = isset( $this->db['sb_instagram_cache_time_unit'] ) ? $this->db['sb_instagram_cache_time_unit'] : 'hours';
140
 
141
  global $sb_instagram_posts_manager;
142
 
158
  * The plugin will output settings on the frontend for debugging purposes.
159
  * Safe settings to display are added here.
160
  *
161
+ * Overwritten in the Pro version.
162
+ *
163
  * @return array
164
  *
165
  * @since 2.0/5.0
207
  'disable_js_image_loading',
208
  'enqueue_js_in_head',
209
  'sbi_font_method',
210
+ 'sb_instagram_disable_awesome',
211
+ 'sb_ajax_initial',
212
+ 'use_custom'
213
  );
214
 
215
  return $public;
476
  return SBI_CRON_UPDATE_CACHE_TIME;
477
  } else {
478
  //If the caching time doesn't exist in the database then set it to be 1 hour
479
+ $cache_time = isset( $this->settings['sb_instagram_cache_time'] ) ? (int)$this->settings['sb_instagram_cache_time'] : 1;
480
+ $cache_time_unit = isset( $this->settings['sb_instagram_cache_time_unit'] ) ? $this->settings['sb_instagram_cache_time_unit'] : 'hours';
481
 
482
  //Calculate the cache time in seconds
483
  if ( $cache_time_unit == 'minutes' ) $cache_time_unit = 60;
484
  if ( $cache_time_unit == 'hours' ) $cache_time_unit = 60*60;
485
  if ( $cache_time_unit == 'days' ) $cache_time_unit = 60*60*24;
486
+
487
  return $cache_time * $cache_time_unit;
488
  }
489
  }
inc/if-functions.php CHANGED
@@ -552,20 +552,54 @@ function sbi_get_database_settings() {
552
 
553
  /**
554
  * May include support for templates in theme folders in the future
 
 
555
  */
556
  function sbi_get_feed_template_part( $part, $settings = array() ) {
557
- $file = '';
558
- if ( $part === 'header' ) {
559
- $file = trailingslashit( SBI_PLUGIN_DIR ) . 'templates/header.php';
560
- } elseif ( $part === 'item' ) {
561
- $file = trailingslashit( SBI_PLUGIN_DIR ) . 'templates/item.php';
562
- } elseif ( $part === 'footer' ) {
563
- $file = trailingslashit( SBI_PLUGIN_DIR ) . 'templates/footer.php';
564
- } elseif ( $part === 'feed' ) {
565
- $file = trailingslashit( SBI_PLUGIN_DIR ) . 'templates/feed.php';
566
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
567
 
568
- return $file;
569
  }
570
 
571
  /**
@@ -762,7 +796,7 @@ function sb_instagram_scripts_enqueue() {
762
  //Options to pass to JS file
763
  $sb_instagram_settings = get_option( 'sb_instagram_settings' );
764
 
765
- $js_file = 'js/sb-instagram-2-0-1.min.js';
766
  if ( isset( $_GET['sbi_debug'] ) ) {
767
  $js_file = 'js/sb-instagram.js';
768
  }
@@ -774,9 +808,9 @@ function sb_instagram_scripts_enqueue() {
774
  }
775
 
776
  if ( isset( $sb_instagram_settings['enqueue_css_in_shortcode'] ) && $sb_instagram_settings['enqueue_css_in_shortcode'] ) {
777
- wp_register_style( 'sb_instagram_styles', trailingslashit( SBI_PLUGIN_URL ) . 'css/sb-instagram-2-0-2.min.css', array(), SBIVER );
778
  } else {
779
- wp_enqueue_style( 'sb_instagram_styles', trailingslashit( SBI_PLUGIN_URL ) . 'css/sb-instagram-2-0-2.min.css', array(), SBIVER );
780
  }
781
 
782
  $font_method = isset( $sb_instagram_settings['sbi_font_method'] ) ? $sb_instagram_settings['sbi_font_method'] : 'svg';
552
 
553
  /**
554
  * May include support for templates in theme folders in the future
555
+ *
556
+ * @since 2.1 custom templates supported
557
  */
558
  function sbi_get_feed_template_part( $part, $settings = array() ) {
559
+ $file = '';
560
+
561
+ $using_custom_templates_in_theme = apply_filters( 'sbi_use_theme_templates', $settings['customtemplates'] );
562
+ $generic_path = trailingslashit( SBI_PLUGIN_DIR ) . 'templates/';
563
+
564
+ if ( $using_custom_templates_in_theme ) {
565
+ $custom_header_template = locate_template( 'sbi/header.php', false, false );
566
+ $custom_item_template = locate_template( 'sbi/item.php', false, false );
567
+ $custom_footer_template = locate_template( 'sbi/footer.php', false, false );
568
+ $custom_feed_template = locate_template( 'sbi/feed.php', false, false );
569
+ } else {
570
+ $custom_header_template = false;
571
+ $custom_item_template = false;
572
+ $custom_footer_template = false;
573
+ $custom_feed_template = false;
574
+ }
575
+
576
+ if ( $part === 'header' ) {
577
+ if ( $custom_header_template ) {
578
+ $file = $custom_header_template;
579
+ } else {
580
+ $file = $generic_path . 'header.php';
581
+ }
582
+ } elseif ( $part === 'item' ) {
583
+ if ( $custom_item_template ) {
584
+ $file = $custom_item_template;
585
+ } else {
586
+ $file = $generic_path . 'item.php';
587
+ }
588
+ } elseif ( $part === 'footer' ) {
589
+ if ( $custom_footer_template ) {
590
+ $file = $custom_footer_template;
591
+ } else {
592
+ $file = $generic_path . 'footer.php';
593
+ }
594
+ } elseif ( $part === 'feed' ) {
595
+ if ( $custom_feed_template ) {
596
+ $file = $custom_feed_template;
597
+ } else {
598
+ $file = $generic_path . 'feed.php';
599
+ }
600
+ }
601
 
602
+ return $file;
603
  }
604
 
605
  /**
796
  //Options to pass to JS file
797
  $sb_instagram_settings = get_option( 'sb_instagram_settings' );
798
 
799
+ $js_file = 'js/sb-instagram-2-1.min.js';
800
  if ( isset( $_GET['sbi_debug'] ) ) {
801
  $js_file = 'js/sb-instagram.js';
802
  }
808
  }
809
 
810
  if ( isset( $sb_instagram_settings['enqueue_css_in_shortcode'] ) && $sb_instagram_settings['enqueue_css_in_shortcode'] ) {
811
+ wp_register_style( 'sb_instagram_styles', trailingslashit( SBI_PLUGIN_URL ) . 'css/sb-instagram-2-1.min.css', array(), SBIVER );
812
  } else {
813
+ wp_enqueue_style( 'sb_instagram_styles', trailingslashit( SBI_PLUGIN_URL ) . 'css/sb-instagram-2-1.min.css', array(), SBIVER );
814
  }
815
 
816
  $font_method = isset( $sb_instagram_settings['sbi_font_method'] ) ? $sb_instagram_settings['sbi_font_method'] : 'svg';
instagram-feed.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Smash Balloon Instagram Feed
4
  Plugin URI: https://smashballoon.com/instagram-feed
5
  Description: Display beautifully clean, customizable, and responsive Instagram feeds.
6
- Version: 2.0.2
7
  Author: Smash Balloon
8
  Author URI: https://smashballoon.com/
9
  License: GPLv2 or later
@@ -23,11 +23,11 @@ along with this program; if not, write to the Free Software
23
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24
  */
25
  if ( ! defined( 'SBIVER' ) ) {
26
- define( 'SBIVER', '2.0.2' );
27
  }
28
  // Db version.
29
  if ( ! defined( 'SBI_DBVERSION' ) ) {
30
- define( 'SBI_DBVERSION', '1.2' );
31
  }
32
 
33
  // Upload folder name for local image files for posts
@@ -429,6 +429,16 @@ if ( function_exists( 'sb_instagram_feed_init' ) ) {
429
  update_option( 'sbi_db_version', SBI_DBVERSION );
430
  }
431
 
 
 
 
 
 
 
 
 
 
 
432
  }
433
 
434
  add_action( 'wp_loaded', 'sbi_check_for_db_updates' );
3
  Plugin Name: Smash Balloon Instagram Feed
4
  Plugin URI: https://smashballoon.com/instagram-feed
5
  Description: Display beautifully clean, customizable, and responsive Instagram feeds.
6
+ Version: 2.1
7
  Author: Smash Balloon
8
  Author URI: https://smashballoon.com/
9
  License: GPLv2 or later
23
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24
  */
25
  if ( ! defined( 'SBIVER' ) ) {
26
+ define( 'SBIVER', '2.1' );
27
  }
28
  // Db version.
29
  if ( ! defined( 'SBI_DBVERSION' ) ) {
30
+ define( 'SBI_DBVERSION', '1.3' );
31
  }
32
 
33
  // Upload folder name for local image files for posts
429
  update_option( 'sbi_db_version', SBI_DBVERSION );
430
  }
431
 
432
+ if ( (float) $db_ver < 1.3 ) {
433
+ $sbi_statuses_option = get_option( 'sbi_statuses', array() );
434
+ if ( $sbi_statuses_option['first_install'] === 'from_update' ) {
435
+ $sbi_statuses_option['first_install'] = time() - 60*60*24*23;
436
+ update_option( 'sbi_statuses', $sbi_statuses_option, false );
437
+ }
438
+
439
+ update_option( 'sbi_db_version', SBI_DBVERSION );
440
+ }
441
+
442
  }
443
 
444
  add_action( 'wp_loaded', 'sbi_check_for_db_updates' );
js/sb-instagram-2-1.js ADDED
@@ -0,0 +1,866 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var sbi_js_exists = (typeof sbi_js_exists !== 'undefined') ? true : false;
2
+ if(!sbi_js_exists) {
3
+ (function($){
4
+
5
+ function sbiAddImgLiquid() {
6
+ /*! imgLiquid v0.9.944 / 03-05-2013 https://github.com/karacas/imgLiquid */
7
+ var sbi_imgLiquid = sbi_imgLiquid || {VER: "0.9.944"};
8
+ sbi_imgLiquid.bgs_Available = !1, sbi_imgLiquid.bgs_CheckRunned = !1, function (i) {
9
+ function t() {
10
+ if (!sbi_imgLiquid.bgs_CheckRunned) {
11
+ sbi_imgLiquid.bgs_CheckRunned = !0;
12
+ var t = i('<span style="background-size:cover" />');
13
+ i("body").append(t), !function () {
14
+ var i = t[0];
15
+ if (i && window.getComputedStyle) {
16
+ var e = window.getComputedStyle(i, null);
17
+ e && e.backgroundSize && (sbi_imgLiquid.bgs_Available = "cover" === e.backgroundSize)
18
+ }
19
+ }(), t.remove()
20
+ }
21
+ }
22
+
23
+ i.fn.extend({
24
+ sbi_imgLiquid: function (e) {
25
+ this.defaults = {
26
+ fill: !0,
27
+ verticalAlign: "center",
28
+ horizontalAlign: "center",
29
+ useBackgroundSize: !0,
30
+ useDataHtmlAttr: !0,
31
+ responsive: !0,
32
+ delay: 0,
33
+ fadeInTime: 0,
34
+ removeBoxBackground: !0,
35
+ hardPixels: !0,
36
+ responsiveCheckTime: 500,
37
+ timecheckvisibility: 500,
38
+ onStart: null,
39
+ onFinish: null,
40
+ onItemStart: null,
41
+ onItemFinish: null,
42
+ onItemError: null
43
+ }, t();
44
+ var a = this;
45
+ return this.options = e, this.settings = i.extend({}, this.defaults, this.options), this.settings.onStart && this.settings.onStart(), this.each(function (t) {
46
+ function e() {
47
+ -1 === u.css("background-image").indexOf(encodeURI(c.attr("src"))) && u.css({"background-image": 'url("' + encodeURI(c.attr("src")) + '")'}), u.css({
48
+ "background-size": g.fill ? "cover" : "contain",
49
+ "background-position": (g.horizontalAlign + " " + g.verticalAlign).toLowerCase(),
50
+ "background-repeat": "no-repeat"
51
+ }), i("a:first", u).css({
52
+ display: "block",
53
+ width: "100%",
54
+ height: "100%"
55
+ }), i("img", u).css({display: "none"}), g.onItemFinish && g.onItemFinish(t, u, c), u.addClass("sbi_imgLiquid_bgSize"), u.addClass("sbi_imgLiquid_ready"), l()
56
+ }
57
+
58
+ function o() {
59
+ function e() {
60
+ c.data("sbi_imgLiquid_error") || c.data("sbi_imgLiquid_loaded") || c.data("sbi_imgLiquid_oldProcessed") || (u.is(":visible") && c[0].complete && c[0].width > 0 && c[0].height > 0 ? (c.data("sbi_imgLiquid_loaded", !0), setTimeout(r, t * g.delay)) : setTimeout(e, g.timecheckvisibility))
61
+ }
62
+
63
+ if (c.data("oldSrc") && c.data("oldSrc") !== c.attr("src")) {
64
+ var a = c.clone().removeAttr("style");
65
+ return a.data("sbi_imgLiquid_settings", c.data("sbi_imgLiquid_settings")), c.parent().prepend(a), c.remove(), c = a, c[0].width = 0, void setTimeout(o, 10)
66
+ }
67
+ return c.data("sbi_imgLiquid_oldProcessed") ? void r() : (c.data("sbi_imgLiquid_oldProcessed", !1), c.data("oldSrc", c.attr("src")), i("img:not(:first)", u).css("display", "none"), u.css({overflow: "hidden"}), c.fadeTo(0, 0).removeAttr("width").removeAttr("height").css({
68
+ visibility: "visible",
69
+ "max-width": "none",
70
+ "max-height": "none",
71
+ width: "auto",
72
+ height: "auto",
73
+ display: "block"
74
+ }), c.on("error", n), c[0].onerror = n, e(), void d())
75
+ }
76
+
77
+ function d() {
78
+ (g.responsive || c.data("sbi_imgLiquid_oldProcessed")) && c.data("sbi_imgLiquid_settings") && (g = c.data("sbi_imgLiquid_settings"), u.actualSize = u.get(0).offsetWidth + u.get(0).offsetHeight / 1e4, u.sizeOld && u.actualSize !== u.sizeOld && r(), u.sizeOld = u.actualSize, setTimeout(d, g.responsiveCheckTime))
79
+ }
80
+
81
+ function n() {
82
+ c.data("sbi_imgLiquid_error", !0), u.addClass("sbi_imgLiquid_error"), g.onItemError && g.onItemError(t, u, c), l()
83
+ }
84
+
85
+ function s() {
86
+ var i = {};
87
+ if (a.settings.useDataHtmlAttr) {
88
+ var t = u.attr("data-sbi_imgLiquid-fill"),
89
+ e = u.attr("data-sbi_imgLiquid-horizontalAlign"),
90
+ o = u.attr("data-sbi_imgLiquid-verticalAlign");
91
+ ("true" === t || "false" === t) && (i.fill = Boolean("true" === t)), void 0 === e || "left" !== e && "center" !== e && "right" !== e && -1 === e.indexOf("%") || (i.horizontalAlign = e), void 0 === o || "top" !== o && "bottom" !== o && "center" !== o && -1 === o.indexOf("%") || (i.verticalAlign = o)
92
+ }
93
+ return sbi_imgLiquid.isIE && a.settings.ieFadeInDisabled && (i.fadeInTime = 0), i
94
+ }
95
+
96
+ function r() {
97
+ var i, e, a, o, d, n, s, r, m = 0, h = 0, f = u.width(), v = u.height();
98
+ void 0 === c.data("owidth") && c.data("owidth", c[0].width), void 0 === c.data("oheight") && c.data("oheight", c[0].height), g.fill === f / v >= c.data("owidth") / c.data("oheight") ? (i = "100%", e = "auto", a = Math.floor(f), o = Math.floor(f * (c.data("oheight") / c.data("owidth")))) : (i = "auto", e = "100%", a = Math.floor(v * (c.data("owidth") / c.data("oheight"))), o = Math.floor(v)), d = g.horizontalAlign.toLowerCase(), s = f - a, "left" === d && (h = 0), "center" === d && (h = .5 * s), "right" === d && (h = s), -1 !== d.indexOf("%") && (d = parseInt(d.replace("%", ""), 10), d > 0 && (h = s * d * .01)), n = g.verticalAlign.toLowerCase(), r = v - o, "left" === n && (m = 0), "center" === n && (m = .5 * r), "bottom" === n && (m = r), -1 !== n.indexOf("%") && (n = parseInt(n.replace("%", ""), 10), n > 0 && (m = r * n * .01)), g.hardPixels && (i = a, e = o), c.css({
99
+ width: i,
100
+ height: e,
101
+ "margin-left": Math.floor(h),
102
+ "margin-top": Math.floor(m)
103
+ }), c.data("sbi_imgLiquid_oldProcessed") || (c.fadeTo(g.fadeInTime, 1), c.data("sbi_imgLiquid_oldProcessed", !0), g.removeBoxBackground && u.css("background-image", "none"), u.addClass("sbi_imgLiquid_nobgSize"), u.addClass("sbi_imgLiquid_ready")), g.onItemFinish && g.onItemFinish(t, u, c), l()
104
+ }
105
+
106
+ function l() {
107
+ t === a.length - 1 && a.settings.onFinish && a.settings.onFinish()
108
+ }
109
+
110
+ var g = a.settings, u = i(this), c = i("img:first", u);
111
+ return c.length ? (c.data("sbi_imgLiquid_settings") ? (u.removeClass("sbi_imgLiquid_error").removeClass("sbi_imgLiquid_ready"), g = i.extend({}, c.data("sbi_imgLiquid_settings"), a.options)) : g = i.extend({}, a.settings, s()), c.data("sbi_imgLiquid_settings", g), g.onItemStart && g.onItemStart(t, u, c), void (sbi_imgLiquid.bgs_Available && g.useBackgroundSize ? e() : o())) : void n()
112
+ })
113
+ }
114
+ })
115
+ }(jQuery);
116
+
117
+ // Use imagefill to set the images as backgrounds so they can be square
118
+ !function () {
119
+ var css = sbi_imgLiquid.injectCss,
120
+ head = document.getElementsByTagName('head')[0],
121
+ style = document.createElement('style');
122
+ style.type = 'text/css';
123
+ if (style.styleSheet) {
124
+ style.styleSheet.cssText = css;
125
+ } else {
126
+ style.appendChild(document.createTextNode(css));
127
+ }
128
+ head.appendChild(style);
129
+ }();
130
+ }
131
+
132
+ function sbiAddVisibilityListener() {
133
+ /* Detect when element becomes visible. Used for when the feed is initially hidden, in a tab for example. https://github.com/shaunbowe/jquery.visibilityChanged */
134
+ !function (i) {
135
+ var n = {
136
+ callback: function () {
137
+ }, runOnLoad: !0, frequency: 100, sbiPreviousVisibility: null
138
+ }, c = {};
139
+ c.sbiCheckVisibility = function (i, n) {
140
+ if (jQuery.contains(document, i[0])) {
141
+ var e = n.sbiPreviousVisibility, t = i.is(":visible");
142
+ n.sbiPreviousVisibility = t, null == e ? n.runOnLoad && n.callback(i, t) : e !== t && n.callback(i, t), setTimeout(function () {
143
+ c.sbiCheckVisibility(i, n)
144
+ }, n.frequency)
145
+ }
146
+ }, i.fn.sbiVisibilityChanged = function (e) {
147
+ var t = i.extend({}, n, e);
148
+ return this.each(function () {
149
+ c.sbiCheckVisibility(i(this), t)
150
+ })
151
+ }
152
+ }(jQuery);
153
+ }
154
+
155
+ function Sbi() {
156
+ this.feeds = {};
157
+ this.options = sb_instagram_js_options;
158
+ }
159
+
160
+ Sbi.prototype = {
161
+ createPage: function (createFeeds, createFeedsArgs) {
162
+ if (typeof window.sbiajaxurl === 'undefined' || window.sbiajaxurl.indexOf(window.location.hostname) === -1) {
163
+ window.sbiajaxurl = window.location.hostname + '/wp-admin/admin-ajax.php';
164
+ }
165
+
166
+ $('.sbi_no_js_error_message').remove();
167
+ $('.sbi_no_js').removeClass('sbi_no_js');
168
+ createFeeds(createFeedsArgs);
169
+ },
170
+ createFeeds: function (args) {
171
+ args.whenFeedsCreated(
172
+ $('.sbi').each(function (index) {
173
+ $(this).attr('data-sbi-index', index + 1);
174
+ var $self = $(this),
175
+ flags = typeof $self.attr('data-sbi-flags') !== 'undefined' ? $self.attr('data-sbi-flags').split(',') : [],
176
+ general = typeof $self.attr('data-options') !== 'undefined' ? JSON.parse($self.attr('data-options')) : {};
177
+ if (flags.indexOf('testAjax') > -1) {
178
+ window.sbi.triggeredTest = true;
179
+ var submitData = {
180
+ 'action' : 'sbi_on_ajax_test_trigger'
181
+ },
182
+ onSuccess = function(data) {
183
+ console.log('did test');
184
+ };
185
+ sbiAjax(submitData,onSuccess)
186
+ }
187
+ var feedOptions = {
188
+ cols : $self.attr('data-cols'),
189
+ colsmobile : $self.attr('data-colsmobile') !== 'same' ? $self.attr('data-colsmobile') : $self.attr('data-cols'),
190
+ num : $self.attr('data-num'),
191
+ imgRes : $self.attr('data-res'),
192
+ feedID : $self.attr('data-feedid'),
193
+ shortCodeAtts : $self.attr('data-shortcode-atts'),
194
+ resizingEnabled : (flags.indexOf('resizeDisable') === -1),
195
+ imageLoadEnabled : (flags.indexOf('imageLoadDisable') === -1),
196
+ debugEnabled : (flags.indexOf('debug') > -1),
197
+ favorLocal : (flags.indexOf('favorLocal') > -1),
198
+ ajaxPostLoad : (flags.indexOf('ajaxPostLoad') > -1),
199
+ autoMinRes : 1,
200
+ general : general
201
+ };
202
+
203
+ window.sbi.feeds[index] = sbiGetNewFeed(this, index, feedOptions);
204
+ window.sbi.feeds[index].setResizedImages();
205
+ window.sbi.feeds[index].init();
206
+
207
+ var evt = jQuery.Event('sbiafterfeedcreate');
208
+ evt.feed = window.sbi.feeds[index];
209
+ jQuery(window).trigger(evt);
210
+
211
+ })
212
+ );
213
+ },
214
+ afterFeedsCreated: function () {
215
+ // enable header hover action
216
+ $('.sb_instagram_header').each(function () {
217
+ var $thisHeader = $(this);
218
+ $thisHeader.find('.sbi_header_link').hover(function () {
219
+ $thisHeader.find('.sbi_header_img_hover').addClass('sbi_fade_in');
220
+ }, function () {
221
+ $thisHeader.find('.sbi_header_img_hover').removeClass('sbi_fade_in');
222
+ });
223
+ });
224
+
225
+ },
226
+ encodeHTML: function(raw) {
227
+ // make sure passed variable is defined
228
+ if (typeof raw === 'undefined') {
229
+ return '';
230
+ }
231
+ // replace greater than and less than symbols with html entity to disallow html in comments
232
+ var encoded = raw.replace(/(>)/g,'&gt;'),
233
+ encoded = encoded.replace(/(<)/g,'&lt;');
234
+ encoded = encoded.replace(/(&lt;br\/&gt;)/g,'<br>');
235
+ encoded = encoded.replace(/(&lt;br&gt;)/g,'<br>');
236
+
237
+ return encoded;
238
+ },
239
+ urlDetect: function(text) {
240
+ var urlRegex = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g;
241
+ return text.match(urlRegex);
242
+ }
243
+ };
244
+
245
+ function SbiFeed(el, index, settings) {
246
+ this.el = el;
247
+ this.index = index;
248
+ this.settings = settings;
249
+ this.minImageWidth = 0;
250
+ this.imageResolution = 150;
251
+ this.resizedImages = {};
252
+ this.needsResizing = [];
253
+ this.outOfPages = false;
254
+ this.isInitialized = false;
255
+ }
256
+
257
+ SbiFeed.prototype = {
258
+ init: function() {
259
+ var feed = this;
260
+ if (this.settings.ajaxPostLoad) {
261
+ this.getNewPostSet();
262
+ } else {
263
+ this.afterInitialImagesLoaded();
264
+ //Only check the width once the resize event is over
265
+ }
266
+ var sbi_delay = (function () {
267
+ var sbi_timer = 0;
268
+ return function (sbi_callback, sbi_ms) {
269
+ clearTimeout(sbi_timer);
270
+ sbi_timer = setTimeout(sbi_callback, sbi_ms);
271
+ };
272
+ })();
273
+ jQuery(window).resize(function () {
274
+ sbi_delay(function () {
275
+ feed.afterResize();
276
+ }, 500);
277
+ });
278
+
279
+ },
280
+ initLayout: function() {
281
+
282
+ },
283
+ afterInitialImagesLoaded: function() {
284
+ this.initLayout();
285
+ this.loadMoreButtonInit();
286
+ this.hideExtraImagesForWidth();
287
+ this.beforeNewImagesRevealed();
288
+ this.revealNewImages();
289
+ this.afterNewImagesRevealed();
290
+ },
291
+ afterResize: function() {
292
+ this.setImageHeight();
293
+ this.setImageResolution();
294
+ this.maybeRaiseImageResolution();
295
+ this.setImageSizeClass();
296
+ },
297
+ afterLoadMoreClicked: function($button) {
298
+ $button.find('.sbi_loader').removeClass('sbi_hidden');
299
+ $button.find('.sbi_btn_text').addClass('sbi_hidden');
300
+ $button.closest('.sbi').find('.sbi_num_diff_hide').addClass('sbi_transition').removeClass('sbi_num_diff_hide');
301
+ },
302
+ afterNewImagesLoaded: function() {
303
+ var $self = $(this.el),
304
+ feed = this;
305
+ this.beforeNewImagesRevealed();
306
+ this.revealNewImages();
307
+ this.afterNewImagesRevealed();
308
+ setTimeout(function () {
309
+ //Hide the loader in the load more button
310
+ $self.find('.sbi_loader').addClass('sbi_hidden');
311
+ $self.find('.sbi_btn_text').removeClass('sbi_hidden');
312
+ }, 500);
313
+ },
314
+ beforeNewImagesRevealed: function() {
315
+ this.setImageHeight();
316
+ this.maybeRaiseImageResolution(true);
317
+ this.setImageSizeClass();
318
+ },
319
+ revealNewImages: function() {
320
+ var $self = $(this.el),
321
+ feed = this;
322
+
323
+ // Call Custom JS if it exists
324
+ if (typeof sbi_custom_js == 'function') setTimeout(function(){ sbi_custom_js(); }, 100);
325
+
326
+ this.applyImageLiquid();
327
+ $self.find('.sbi_item').each(function (index) {
328
+ var $self = jQuery(this);
329
+
330
+ //Photo links
331
+ //If lightbox is disabled
332
+ $self.find('.sbi_photo').hover(function () {
333
+ jQuery(this).fadeTo(200, 0.85);
334
+ }, function () {
335
+ jQuery(this).stop().fadeTo(500, 1);
336
+ });
337
+
338
+ }); //End .sbi_item each
339
+
340
+ //Remove the new class after 500ms, once the sorting is done
341
+ setTimeout(function () {
342
+ jQuery('#sbi_images .sbi_item.sbi_new').removeClass('sbi_new');
343
+ //Loop through items and remove class to reveal them
344
+ var time = 10;
345
+ $self.find('.sbi_transition').each(function() {
346
+ var $sbi_item_transition_el = jQuery(this);
347
+
348
+ setTimeout( function(){
349
+ $sbi_item_transition_el.removeClass('sbi_transition');
350
+ }, time);
351
+ time += 10;
352
+ });
353
+ }, 500);
354
+ },
355
+ afterNewImagesRevealed: function() {
356
+ this.listenForVisibilityChange();
357
+ this.sendNeedsResizingToServer();
358
+
359
+ var evt = $.Event('sbiafterimagesloaded');
360
+ evt.el = $(this.el);
361
+ $(window).trigger(evt);
362
+ },
363
+ setResizedImages: function () {
364
+ if ($(this.el).find('.sbi_resized_image_data').length
365
+ && typeof $(this.el).find('.sbi_resized_image_data').attr('data-resized') !== 'undefined'
366
+ && $(this.el).find('.sbi_resized_image_data').attr('data-resized').indexOf('{"') === 0) {
367
+ this.resizedImages = JSON.parse($(this.el).find('.sbi_resized_image_data').attr('data-resized'));
368
+ $(this.el).find('.sbi_resized_image_data').remove();
369
+ }
370
+ },
371
+ sendNeedsResizingToServer: function() {
372
+ var feed = this;
373
+ if (feed.needsResizing.length > 0 && feed.settings.resizingEnabled) {
374
+ var itemOffset = $(this.el).find('.sbi_item').length;
375
+
376
+ var submitData = {
377
+ action: 'sbi_resized_images_submit',
378
+ needs_resizing: feed.needsResizing,
379
+ offset: itemOffset,
380
+ feed_id: feed.settings.feedID,
381
+ atts: feed.settings.shortCodeAtts,
382
+ };
383
+ var onSuccess = function(data) {
384
+ if (data.trim().indexOf('{') === 0) {
385
+ var response = JSON.parse(data);
386
+ if (feed.settings.debugEnabled) {
387
+ console.log(response);
388
+ }
389
+ }
390
+ };
391
+ sbiAjax(submitData,onSuccess);
392
+ }
393
+ },
394
+ loadMoreButtonInit: function () {
395
+ var $self = $(this.el),
396
+ feed = this;
397
+ $self.find('#sbi_load .sbi_load_btn').off().on('click', function () {
398
+
399
+ feed.afterLoadMoreClicked(jQuery(this));
400
+ feed.getNewPostSet();
401
+
402
+ }); //End click event
403
+ },
404
+ getNewPostSet: function () {
405
+ var $self = $(this.el),
406
+ feed = this;
407
+ var itemOffset = $self.find('.sbi_item').length,
408
+ submitData = {
409
+ action: 'sbi_load_more_clicked',
410
+ offset: itemOffset,
411
+ feed_id: feed.settings.feedID,
412
+ atts: feed.settings.shortCodeAtts,
413
+ current_resolution: feed.imageResolution
414
+ };
415
+ var onSuccess = function (data) {
416
+ if (data.trim().indexOf('{') === 0) {
417
+ var response = JSON.parse(data);
418
+ if (feed.settings.debugEnabled) {
419
+ console.log(response);
420
+ }
421
+ feed.appendNewPosts(response.html);
422
+ feed.addResizedImages(response.resizedImages);
423
+ if (feed.settings.ajaxPostLoad) {
424
+ feed.settings.ajaxPostLoad = false;
425
+ feed.afterInitialImagesLoaded();
426
+ } else {
427
+ feed.afterNewImagesLoaded();
428
+ }
429
+
430
+ if (!response.feedStatus.shouldPaginate) {
431
+ feed.outOfPages = true;
432
+ $self.find('.sbi_load_btn').hide();
433
+ } else {
434
+ feed.outOfPages = false;
435
+ }
436
+ }
437
+
438
+ };
439
+ sbiAjax(submitData, onSuccess);
440
+ },
441
+ appendNewPosts: function (newPostsHtml) {
442
+ var $self = $(this.el),
443
+ feed = this;
444
+ if ($self.find('#sbi_images .sbi_item').length) {
445
+ $self.find('#sbi_images .sbi_item').last().after(newPostsHtml);
446
+ } else {
447
+ $self.find('#sbi_images').append(newPostsHtml);
448
+ }
449
+ },
450
+ addResizedImages: function (resizedImagesToAdd) {
451
+ for (var imageID in resizedImagesToAdd) {
452
+ this.resizedImages[imageID] = resizedImagesToAdd[imageID];
453
+ }
454
+ },
455
+ setImageHeight: function() {
456
+ var $self = $(this.el);
457
+
458
+ var sbi_photo_width = $self.find('.sbi_photo').eq(0).innerWidth();
459
+
460
+ //Figure out number of columns for either desktop or mobile
461
+ var sbi_num_cols = this.getColumnCount();
462
+
463
+ //Figure out what the width should be using the number of cols
464
+ //Figure out what the width should be using the number of cols
465
+ var imagesPadding = $self.find('#sbi_images').innerWidth() - $self.find('#sbi_images').width(),
466
+ imagepadding = imagesPadding / 2;
467
+ sbi_photo_width_manual = ( $self.find('#sbi_images').width() / sbi_num_cols ) - imagesPadding;
468
+ //If the width is less than it should be then set it manually
469
+ //if( sbi_photo_width <= (sbi_photo_width_manual) ) sbi_photo_width = sbi_photo_width_manual;
470
+
471
+ $self.find('.sbi_photo').css('height', sbi_photo_width);
472
+
473
+ //Set the position of the carousel arrows
474
+ if ($self.find('.sbi-owl-nav').length) {
475
+ setTimeout(function(){
476
+ //If there's 2 rows then adjust position
477
+ var sbi_ratio = 2;
478
+ if( $self.find('.sbi_owl2row-item').length ) sbi_ratio = 1;
479
+
480
+ var sbi_arrows_top = ($self.find('.sbi_photo').eq(0).innerWidth()/sbi_ratio);
481
+ sbi_arrows_top += parseInt(imagepadding)*(2+(2-sbi_ratio));
482
+ $self.find('.sbi-owl-nav div').css('top', sbi_arrows_top);
483
+ }, 100);
484
+ }
485
+
486
+ },
487
+ maybeRaiseSingleImageResolution: function ($item, index, forceChange) {
488
+ var feed = this,
489
+ imgSrcSet = feed.getImageUrls($item),
490
+ currentUrl = $item.find('.sbi_photo img').attr('src'),
491
+ currentRes = 150,
492
+ imagEl = $item.find('img').get(0),
493
+ aspectRatio = currentUrl === window.sbi.options.placeholder ? 1 : imagEl.naturalWidth/imagEl.naturalHeight,
494
+ forceChange = typeof forceChange !== 'undefined' ? forceChange : false;
495
+
496
+ $.each(imgSrcSet, function (index, value) {
497
+ if (value === currentUrl) {
498
+ currentRes = parseInt(index);
499
+ // If the image has already been changed to an existing real source, don't force the change
500
+ forceChange = false;
501
+ }
502
+ });
503
+ //Image res
504
+ var newRes = 640;
505
+ switch (feed.settings.imgRes) {
506
+ case 'thumb':
507
+ newRes = 150;
508
+ break;
509
+ case 'medium':
510
+ newRes = 320;
511
+ break;
512
+ case 'full':
513
+ newRes = 640;
514
+ break;
515
+ default:
516
+ var minImageWidth = Math.max(feed.settings.autoMinRes,$item.find('.sbi_photo').innerWidth()),
517
+ thisImageReplace = feed.getBestResolutionForAuto(minImageWidth, aspectRatio, $item);
518
+ switch (thisImageReplace) {
519
+ case 320:
520
+ newRes = 320;
521
+ break;
522
+ case 150:
523
+ newRes = 150;
524
+ break;
525
+ }
526
+ break;
527
+ }
528
+
529
+ if (newRes > currentRes || currentUrl === window.sbi.options.placeholder || forceChange) {
530
+ if (feed.settings.debugEnabled) {
531
+ var reason = currentUrl === window.sbi.options.placeholder ? 'was placeholder' : 'too small';
532
+ console.log('rais res for ' + currentUrl, reason);
533
+ }
534
+ var newUrl = imgSrcSet[newRes].split("?ig_cache_key")[0];
535
+ $item.find('.sbi_photo img').attr('src', newUrl);
536
+ $item.find('.sbi_photo').css('background-image', 'url("' + newUrl + '")');
537
+
538
+ var checked = false;
539
+ $item.find('.sbi_photo img').on('load', function () {
540
+
541
+ var $this_image = $(this);
542
+ var newAspectRatio = ($this_image.get(0).naturalWidth / $this_image.get(0).naturalHeight);
543
+
544
+ if ($this_image.get(0).naturalWidth !== 1000 && newAspectRatio > aspectRatio && !checked) {
545
+ if (feed.settings.debugEnabled) {
546
+ console.log('rais res again for aspect ratio change ' + currentUrl);
547
+ }
548
+ checked = true;
549
+ minImageWidth = $item.find('.sbi_photo').innerWidth();
550
+ thisImageReplace = feed.getBestResolutionForAuto(minImageWidth, newAspectRatio, $item);
551
+ newRes = 640;
552
+
553
+ switch (thisImageReplace) {
554
+ case 320:
555
+ newRes = 320;
556
+ break;
557
+ case 150:
558
+ newRes = 150;
559
+ break;
560
+ }
561
+
562
+ if (newRes > currentRes) {
563
+ newUrl = imgSrcSet[newRes].split("?ig_cache_key")[0];
564
+ $this_image.attr('src', newUrl);
565
+ $this_image.closest('.sbi_photo').css('background-image', 'url("' + newUrl + '")');
566
+ }
567
+ if (feed.layout === 'masonry' || feed.layout === 'highlight') {
568
+ $(feed.el).find('#sbi_images').smashotope(feed.isotopeArgs);
569
+ setTimeout(function() {
570
+ $(feed.el).find('#sbi_images').smashotope(feed.isotopeArgs);
571
+ },500)
572
+ }
573
+ } else {
574
+ if (feed.settings.debugEnabled) {
575
+ var reason = checked ? 'already checked' : 'no aspect ratio change';
576
+ console.log('not raising res for replacement ' + currentUrl, reason);
577
+ }
578
+ }
579
+ });
580
+
581
+ }
582
+
583
+ $item.find('img').on('error', function () {
584
+ if (!$(this).hasClass('sbi_img_error')) {
585
+ $(this).addClass('sbi_img_error');
586
+ var sourceFromAPI = ($(this).attr('src').indexOf('media?size=') > -1 || $(this).attr('src').indexOf('cdninstagram') > -1 || $(this).attr('src').indexOf('fbcdn') > -1)
587
+
588
+ if (!sourceFromAPI) {
589
+ if (typeof $(this).closest('.sbi_photo').attr('data-full-res') !== 'undefined') {
590
+ $(this).attr('src', $(this).closest('.sbi_photo').attr('data-full-res'));
591
+ $(this).closest('.sbi_photo').css('background-image', 'url(' + $(this).closest('.sbi_photo').attr('data-full-res') + ')');
592
+ } else if ($(this).closest('.sbi_photo').attr('href') !== 'undefined') {
593
+ $(this).attr('src', $(this).closest('.sbi_photo').attr('href') + 'media?size=l');
594
+ $(this).closest('.sbi_photo').css('background-image', 'url(' + $(this).closest('.sbi_photo').attr('href') + 'media?size=l)');
595
+ }
596
+ } else {
597
+ feed.settings.favorLocal = true;
598
+ var srcSet = feed.getImageUrls($(this).closest('.sbi_item'));
599
+ if (typeof srcSet[640] !== 'undefined') {
600
+ $(this).attr('src', srcSet[640]);
601
+ $(this).closest('.sbi_photo').css('background-image', 'url(' + srcSet[640] + ')');
602
+ }
603
+ }
604
+ setTimeout(function() {
605
+ feed.afterResize();
606
+ }, 1500)
607
+ } else {
608
+ console.log('unfixed error ' + $(this).attr('src'));
609
+ }
610
+ });
611
+ },
612
+ maybeRaiseImageResolution: function (justNew) {
613
+ var feed = this,
614
+ itemsSelector = typeof justNew !== 'undefined' && justNew === true ? '.sbi_item.sbi_new' : '.sbi_item',
615
+ forceChange = !feed.isInitialized ? true : false;
616
+ $(feed.el).find(itemsSelector).each(function (index) {
617
+ if (!$(this).hasClass('sbi_num_diff_hide')
618
+ && $(this).find('.sbi_photo').length
619
+ && typeof $(this).find('.sbi_photo').attr('data-img-src-set') !== 'undefined') {
620
+ feed.maybeRaiseSingleImageResolution($(this),index,forceChange);
621
+ }
622
+ }); //End .sbi_item each
623
+ feed.isInitialized = true;
624
+ },
625
+ getBestResolutionForAuto: function(colWidth, aspectRatio, $item) {
626
+ if (isNaN(aspectRatio) || aspectRatio < 1) {
627
+ aspectRatio = 1;
628
+ }
629
+ var bestWidth = colWidth * aspectRatio,
630
+ bestWidthRounded = Math.ceil(bestWidth / 10) * 10,
631
+ customSizes = [150, 320, 640];
632
+
633
+ if ($item.hasClass('sbi_highlighted')) {
634
+ bestWidthRounded = bestWidthRounded *2;
635
+ }
636
+
637
+ if (customSizes.indexOf(parseInt(bestWidthRounded)) === -1) {
638
+ var done = false;
639
+ $.each(customSizes, function (index, item) {
640
+ if (item > parseInt(bestWidthRounded) && !done) {
641
+ bestWidthRounded = item;
642
+
643
+ done = true;
644
+ }
645
+ });
646
+ }
647
+
648
+ return bestWidthRounded;
649
+ },
650
+ hideExtraImagesForWidth: function() {
651
+ if (this.layout === 'carousel') {
652
+ return;
653
+ }
654
+ var $self = $(this.el),
655
+ num = typeof $self.attr('data-num') !== 'undefined' && $self.attr('data-num') !== '' ? parseInt($self.attr('data-num')) : 1,
656
+ nummobile = typeof $self.attr('data-nummobile') !== 'undefined' && $self.attr('data-nummobile') !== '' ? parseInt($self.attr('data-nummobile')) : num;
657
+
658
+ if ($(window).width() < 480) {
659
+ if (nummobile < $self.find('.sbi_item').length) {
660
+ $self.find('.sbi_item').slice(nummobile - $self.find('.sbi_item').length).addClass('sbi_num_diff_hide');
661
+ }
662
+ } else {
663
+ if (num < $self.find('.sbi_item').length) {
664
+ $self.find('.sbi_item').slice(num - $self.find('.sbi_item').length).addClass('sbi_num_diff_hide');
665
+ }
666
+ }
667
+ },
668
+ setImageSizeClass: function () {
669
+ var $self = $(this.el);
670
+ $self.removeClass('sbi_small sbi_medium');
671
+ var feedWidth = $self.innerWidth(),
672
+ photoPadding = parseInt(($self.find('#sbi_images').outerWidth() - $self.find('#sbi_images').width())) / 2,
673
+ cols = this.getColumnCount(),
674
+ feedWidthSansPadding = feedWidth - (photoPadding * (cols+2)),
675
+ colWidth = (feedWidthSansPadding / cols);
676
+ if (colWidth > 120 && colWidth < 240) {
677
+ $self.addClass('sbi_medium');
678
+ } else if (colWidth <= 120) {
679
+ $self.addClass('sbi_small');
680
+ }
681
+ },
682
+ setMinImageWidth: function () {
683
+ if ($(this.el).find('.sbi_item .sbi_photo').first().length) {
684
+ this.minImageWidth = $(this.el).find('.sbi_item .sbi_photo').first().innerWidth();
685
+ } else {
686
+ this.minImageWidth = 150;
687
+ }
688
+ },
689
+ setImageResolution: function () {
690
+ if (this.settings.imgRes === 'auto') {
691
+ this.imageResolution = 'auto';
692
+ } else {
693
+ switch (this.settings.imgRes) {
694
+ case 'thumb':
695
+ this.imageResolution = 150;
696
+ break;
697
+ case 'medium':
698
+ this.imageResolution = 320;
699
+ break;
700
+ default:
701
+ this.imageResolution = 640;
702
+ }
703
+ }
704
+ },
705
+ getImageUrls: function ($item) {
706
+ var srcSet = JSON.parse($item.find('.sbi_photo').attr('data-img-src-set').replace(/\\\//g, '/')),
707
+ id = $item.attr('id').replace('sbi_', '');
708
+ if (typeof this.resizedImages[id] !== 'undefined'
709
+ && this.resizedImages[id] !== 'video'
710
+ && this.resizedImages[id] !== 'pending'
711
+ && this.resizedImages[id].id !== 'error'
712
+ && this.resizedImages[id].id !== 'video'
713
+ && this.resizedImages[id].id !== 'pending') {
714
+ if (typeof this.resizedImages[id]['sizes'] !== 'undefined') {
715
+ var foundSizes = [];
716
+ if (typeof this.resizedImages[id]['sizes']['full'] !== 'undefined') {
717
+ foundSizes.push(640);
718
+ srcSet[640] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg';
719
+ $item.find('.sbi_link_area').attr( 'href', sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg' );
720
+ $item.find('.sbi_photo').attr( 'data-full-res', sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg' );
721
+ }
722
+ if (typeof this.resizedImages[id]['sizes']['low'] !== 'undefined') {
723
+ foundSizes.push(320);
724
+ srcSet[320] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg';
725
+ if (this.settings.favorLocal && typeof this.resizedImages[id]['sizes']['full'] === 'undefined') {
726
+ $item.find('.sbi_link_area').attr( 'href', sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg' );
727
+ $item.find('.sbi_photo').attr( 'data-full-res', sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg' );
728
+ }
729
+ }
730
+ if (typeof this.resizedImages[id]['sizes']['thumb'] !== 'undefined') {
731
+ foundSizes.push(150);
732
+ srcSet[150] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'thumb.jpg';
733
+ }
734
+ if (this.settings.favorLocal) {
735
+ if (foundSizes.indexOf(640) === -1) {
736
+ if (foundSizes.indexOf(320) > -1) {
737
+ srcSet[640] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg';
738
+ }
739
+ }
740
+ if (foundSizes.indexOf(320) === -1) {
741
+ if (foundSizes.indexOf(640) > -1) {
742
+ srcSet[320] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg';
743
+ } else if (foundSizes.indexOf(150) > -1) {
744
+ srcSet[320] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'thumb.jpg';
745
+ }
746
+ }
747
+ if (foundSizes.indexOf(150) === -1) {
748
+ if (foundSizes.indexOf(320) > -1) {
749
+ srcSet[150] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg';
750
+ } else if (foundSizes.indexOf(640) > -1) {
751
+ srcSet[150] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg';
752
+ }
753
+ }
754
+ }
755
+ }
756
+ } else if (typeof this.resizedImages[id] === 'undefined'
757
+ || this.resizedImages[id] !== 'pending') {
758
+ this.addToNeedsResizing(id);
759
+ }
760
+
761
+ return srcSet;
762
+ },
763
+ getAvatarUrl: function (username,favorType) {
764
+ if (username === '') {
765
+ return '';
766
+ }
767
+
768
+ var availableAvatars = this.settings.general.avatars,
769
+ favorType = typeof favorType !== 'undefined' ? favorType : 'local';
770
+
771
+ if (favorType === 'local') {
772
+ if (typeof availableAvatars['LCL'+username] !== 'undefined' && parseInt(availableAvatars['LCL'+username]) === 1) {
773
+ return sb_instagram_js_options.resized_url + username + '.jpg';
774
+ } else if (typeof availableAvatars[username] !== 'undefined') {
775
+ return availableAvatars[username];
776
+ } else {
777
+ return '';
778
+ }
779
+ } else {
780
+ if (typeof availableAvatars[username] !== 'undefined') {
781
+ return availableAvatars[username];
782
+ } else if (typeof availableAvatars['LCL'+username] !== 'undefined' && parseInt(availableAvatars['LCL'+username]) === 1) {
783
+ return sb_instagram_js_options.resized_url + username + '.jpg';
784
+ } else {
785
+ return '';
786
+ }
787
+ }
788
+ },
789
+ addToNeedsResizing: function (id) {
790
+ if (this.needsResizing.indexOf(id) === -1) {
791
+ this.needsResizing.push(id);
792
+ }
793
+ },
794
+ applyImageLiquid: function () {
795
+ var $self = $(this.el),
796
+ feed = this;
797
+ sbiAddImgLiquid();
798
+ if (typeof $self.find(".sbi_photo").sbi_imgLiquid == 'function') {
799
+ $self.find(".sbi_photo").sbi_imgLiquid({fill: true});
800
+ }
801
+ },
802
+ listenForVisibilityChange: function() {
803
+ var feed = this;
804
+ sbiAddVisibilityListener();
805
+ if (typeof $(this.el).filter(':hidden').sbiVisibilityChanged == 'function') {
806
+ //If the feed is initially hidden (in a tab for example) then check for when it becomes visible and set then set the height
807
+ $(this.el).filter(':hidden').sbiVisibilityChanged({
808
+ callback: function (element, visible) {
809
+ feed.afterResize();
810
+ },
811
+ runOnLoad: false
812
+ });
813
+ }
814
+ },
815
+ getColumnCount: function() {
816
+ var $self = $(this.el),
817
+ cols = this.settings.cols,
818
+ colsmobile = this.settings.colsmobile,
819
+ returnCols = cols;
820
+
821
+ sbiWindowWidth = window.innerWidth;
822
+
823
+ if ($self.hasClass('sbi_mob_col_auto')) {
824
+ if (sbiWindowWidth < 640 && (parseInt(cols) > 2 && parseInt(cols) < 7)) returnCols = 2;
825
+ if (sbiWindowWidth < 640 && (parseInt(cols) > 6 && parseInt(cols) < 11)) returnCols = 4;
826
+ if (sbiWindowWidth <= 480 && parseInt(cols) > 2) returnCols = 1;
827
+ } else if (sbiWindowWidth <= 480) {
828
+ returnCols = colsmobile;
829
+ }
830
+
831
+ return parseInt(returnCols);
832
+ }
833
+ };
834
+
835
+ window.sbi_init = function() {
836
+ window.sbi = new Sbi();
837
+ window.sbi.createPage( window.sbi.createFeeds, {whenFeedsCreated: window.sbi.afterFeedsCreated});
838
+ };
839
+
840
+ function sbiGetNewFeed(feed,index,feedOptions) {
841
+ return new SbiFeed(feed,index,feedOptions);
842
+ }
843
+
844
+ function sbiAjax(submitData,onSuccess) {
845
+ $.ajax({
846
+ url: sbiajaxurl,
847
+ type: 'post',
848
+ data: submitData,
849
+ success: onSuccess
850
+ });
851
+ }
852
+
853
+ })(jQuery);
854
+
855
+ jQuery(document).ready(function($) {
856
+ if (typeof window.sb_instagram_js_options.resized_url !== 'undefined' && window.sb_instagram_js_options.resized_url.indexOf(location.protocol) === -1) {
857
+ if (location.protocol === 'http:') {
858
+ window.sb_instagram_js_options.resized_url = window.sb_instagram_js_options.resized_url.replace('http:','https:');
859
+ } else {
860
+ window.sb_instagram_js_options.resized_url = window.sb_instagram_js_options.resized_url.replace('https:','http:');
861
+ }
862
+ }
863
+ sbi_init();
864
+ });
865
+
866
+ } // if sbi_js_exists
js/sb-instagram-2-1.min.js ADDED
@@ -0,0 +1 @@
 
1
+ var sbi_js_exists=void 0!==sbi_js_exists;sbi_js_exists||(!function(i){function e(){var i,e,t,s=s||{VER:"0.9.944"};s.bgs_Available=!1,s.bgs_CheckRunned=!1,function(i){i.fn.extend({sbi_imgLiquid:function(e){this.defaults={fill:!0,verticalAlign:"center",horizontalAlign:"center",useBackgroundSize:!0,useDataHtmlAttr:!0,responsive:!0,delay:0,fadeInTime:0,removeBoxBackground:!0,hardPixels:!0,responsiveCheckTime:500,timecheckvisibility:500,onStart:null,onFinish:null,onItemStart:null,onItemFinish:null,onItemError:null},function(){if(!s.bgs_CheckRunned){s.bgs_CheckRunned=!0;var e=i('<span style="background-size:cover" />');i("body").append(e),function(){var i=e[0];if(i&&window.getComputedStyle){var t=window.getComputedStyle(i,null);t&&t.backgroundSize&&(s.bgs_Available="cover"===t.backgroundSize)}}(),e.remove()}}();var t=this;return this.options=e,this.settings=i.extend({},this.defaults,this.options),this.settings.onStart&&this.settings.onStart(),this.each(function(e){function a(){(r.responsive||h.data("sbi_imgLiquid_oldProcessed"))&&h.data("sbi_imgLiquid_settings")&&(r=h.data("sbi_imgLiquid_settings"),l.actualSize=l.get(0).offsetWidth+l.get(0).offsetHeight/1e4,l.sizeOld&&l.actualSize!==l.sizeOld&&o(),l.sizeOld=l.actualSize,setTimeout(a,r.responsiveCheckTime))}function n(){h.data("sbi_imgLiquid_error",!0),l.addClass("sbi_imgLiquid_error"),r.onItemError&&r.onItemError(e,l,h),d()}function o(){var i,t,s,a,n,o,g,u,f=0,m=0,_=l.width(),c=l.height();void 0===h.data("owidth")&&h.data("owidth",h[0].width),void 0===h.data("oheight")&&h.data("oheight",h[0].height),r.fill===_/c>=h.data("owidth")/h.data("oheight")?(i="100%",t="auto",s=Math.floor(_),a=Math.floor(_*(h.data("oheight")/h.data("owidth")))):(i="auto",t="100%",s=Math.floor(c*(h.data("owidth")/h.data("oheight"))),a=Math.floor(c)),g=_-s,"left"===(n=r.horizontalAlign.toLowerCase())&&(m=0),"center"===n&&(m=.5*g),"right"===n&&(m=g),-1!==n.indexOf("%")&&((n=parseInt(n.replace("%",""),10))>0&&(m=g*n*.01)),u=c-a,"left"===(o=r.verticalAlign.toLowerCase())&&(f=0),"center"===o&&(f=.5*u),"bottom"===o&&(f=u),-1!==o.indexOf("%")&&((o=parseInt(o.replace("%",""),10))>0&&(f=u*o*.01)),r.hardPixels&&(i=s,t=a),h.css({width:i,height:t,"margin-left":Math.floor(m),"margin-top":Math.floor(f)}),h.data("sbi_imgLiquid_oldProcessed")||(h.fadeTo(r.fadeInTime,1),h.data("sbi_imgLiquid_oldProcessed",!0),r.removeBoxBackground&&l.css("background-image","none"),l.addClass("sbi_imgLiquid_nobgSize"),l.addClass("sbi_imgLiquid_ready")),r.onItemFinish&&r.onItemFinish(e,l,h),d()}function d(){e===t.length-1&&t.settings.onFinish&&t.settings.onFinish()}var r=t.settings,l=i(this),h=i("img:first",l);return h.length?(h.data("sbi_imgLiquid_settings")?(l.removeClass("sbi_imgLiquid_error").removeClass("sbi_imgLiquid_ready"),r=i.extend({},h.data("sbi_imgLiquid_settings"),t.options)):r=i.extend({},t.settings,function(){var i={};if(t.settings.useDataHtmlAttr){var e=l.attr("data-sbi_imgLiquid-fill"),a=l.attr("data-sbi_imgLiquid-horizontalAlign"),n=l.attr("data-sbi_imgLiquid-verticalAlign");("true"===e||"false"===e)&&(i.fill=Boolean("true"===e)),void 0===a||"left"!==a&&"center"!==a&&"right"!==a&&-1===a.indexOf("%")||(i.horizontalAlign=a),void 0===n||"top"!==n&&"bottom"!==n&&"center"!==n&&-1===n.indexOf("%")||(i.verticalAlign=n)}return s.isIE&&t.settings.ieFadeInDisabled&&(i.fadeInTime=0),i}()),h.data("sbi_imgLiquid_settings",r),r.onItemStart&&r.onItemStart(e,l,h),void(s.bgs_Available&&r.useBackgroundSize?(-1===l.css("background-image").indexOf(encodeURI(h.attr("src")))&&l.css({"background-image":'url("'+encodeURI(h.attr("src"))+'")'}),l.css({"background-size":r.fill?"cover":"contain","background-position":(r.horizontalAlign+" "+r.verticalAlign).toLowerCase(),"background-repeat":"no-repeat"}),i("a:first",l).css({display:"block",width:"100%",height:"100%"}),i("img",l).css({display:"none"}),r.onItemFinish&&r.onItemFinish(e,l,h),l.addClass("sbi_imgLiquid_bgSize"),l.addClass("sbi_imgLiquid_ready"),d()):function t(){if(h.data("oldSrc")&&h.data("oldSrc")!==h.attr("src")){var s=h.clone().removeAttr("style");return s.data("sbi_imgLiquid_settings",h.data("sbi_imgLiquid_settings")),h.parent().prepend(s),h.remove(),(h=s)[0].width=0,void setTimeout(t,10)}return h.data("sbi_imgLiquid_oldProcessed")?void o():(h.data("sbi_imgLiquid_oldProcessed",!1),h.data("oldSrc",h.attr("src")),i("img:not(:first)",l).css("display","none"),l.css({overflow:"hidden"}),h.fadeTo(0,0).removeAttr("width").removeAttr("height").css({visibility:"visible","max-width":"none","max-height":"none",width:"auto",height:"auto",display:"block"}),h.on("error",n),h[0].onerror=n,function i(){h.data("sbi_imgLiquid_error")||h.data("sbi_imgLiquid_loaded")||h.data("sbi_imgLiquid_oldProcessed")||(l.is(":visible")&&h[0].complete&&h[0].width>0&&h[0].height>0?(h.data("sbi_imgLiquid_loaded",!0),setTimeout(o,e*r.delay)):setTimeout(i,r.timecheckvisibility))}(),void a())}())):void n()})}})}(jQuery),i=s.injectCss,e=document.getElementsByTagName("head")[0],(t=document.createElement("style")).type="text/css",t.styleSheet?t.styleSheet.cssText=i:t.appendChild(document.createTextNode(i)),e.appendChild(t)}function t(){this.feeds={},this.options=sb_instagram_js_options}function s(i,e,t){this.el=i,this.index=e,this.settings=t,this.minImageWidth=0,this.imageResolution=150,this.resizedImages={},this.needsResizing=[],this.outOfPages=!1,this.isInitialized=!1}function a(e,t){i.ajax({url:sbiajaxurl,type:"post",data:e,success:t})}t.prototype={createPage:function(e,t){void 0!==window.sbiajaxurl&&-1!==window.sbiajaxurl.indexOf(window.location.hostname)||(window.sbiajaxurl=window.location.hostname+"/wp-admin/admin-ajax.php"),i(".sbi_no_js_error_message").remove(),i(".sbi_no_js").removeClass("sbi_no_js"),e(t)},createFeeds:function(e){e.whenFeedsCreated(i(".sbi").each(function(e){i(this).attr("data-sbi-index",e+1);var t=i(this),n=void 0!==t.attr("data-sbi-flags")?t.attr("data-sbi-flags").split(","):[],o=void 0!==t.attr("data-options")?JSON.parse(t.attr("data-options")):{};if(n.indexOf("testAjax")>-1){window.sbi.triggeredTest=!0;a({action:"sbi_on_ajax_test_trigger"},function(i){console.log("did test")})}var d={cols:t.attr("data-cols"),colsmobile:"same"!==t.attr("data-colsmobile")?t.attr("data-colsmobile"):t.attr("data-cols"),num:t.attr("data-num"),imgRes:t.attr("data-res"),feedID:t.attr("data-feedid"),shortCodeAtts:t.attr("data-shortcode-atts"),resizingEnabled:-1===n.indexOf("resizeDisable"),imageLoadEnabled:-1===n.indexOf("imageLoadDisable"),debugEnabled:n.indexOf("debug")>-1,favorLocal:n.indexOf("favorLocal")>-1,ajaxPostLoad:n.indexOf("ajaxPostLoad")>-1,autoMinRes:1,general:o};window.sbi.feeds[e]=function(i,e,t){return new s(i,e,t)}(this,e,d),window.sbi.feeds[e].setResizedImages(),window.sbi.feeds[e].init();var r=jQuery.Event("sbiafterfeedcreate");r.feed=window.sbi.feeds[e],jQuery(window).trigger(r)}))},afterFeedsCreated:function(){i(".sb_instagram_header").each(function(){var e=i(this);e.find(".sbi_header_link").hover(function(){e.find(".sbi_header_img_hover").addClass("sbi_fade_in")},function(){e.find(".sbi_header_img_hover").removeClass("sbi_fade_in")})})},encodeHTML:function(i){return void 0===i?"":i.replace(/(>)/g,"&gt;").replace(/(<)/g,"&lt;").replace(/(&lt;br\/&gt;)/g,"<br>").replace(/(&lt;br&gt;)/g,"<br>")},urlDetect:function(i){return i.match(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)/g)}},s.prototype={init:function(){var i=this;this.settings.ajaxPostLoad?this.getNewPostSet():this.afterInitialImagesLoaded();var e,t=(e=0,function(i,t){clearTimeout(e),e=setTimeout(i,t)});jQuery(window).resize(function(){t(function(){i.afterResize()},500)})},initLayout:function(){},afterInitialImagesLoaded:function(){this.initLayout(),this.loadMoreButtonInit(),this.hideExtraImagesForWidth(),this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed()},afterResize:function(){this.setImageHeight(),this.setImageResolution(),this.maybeRaiseImageResolution(),this.setImageSizeClass()},afterLoadMoreClicked:function(i){i.find(".sbi_loader").removeClass("sbi_hidden"),i.find(".sbi_btn_text").addClass("sbi_hidden"),i.closest(".sbi").find(".sbi_num_diff_hide").addClass("sbi_transition").removeClass("sbi_num_diff_hide")},afterNewImagesLoaded:function(){var e=i(this.el);this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed(),setTimeout(function(){e.find(".sbi_loader").addClass("sbi_hidden"),e.find(".sbi_btn_text").removeClass("sbi_hidden")},500)},beforeNewImagesRevealed:function(){this.setImageHeight(),this.maybeRaiseImageResolution(!0),this.setImageSizeClass()},revealNewImages:function(){var e=i(this.el);"function"==typeof sbi_custom_js&&setTimeout(function(){sbi_custom_js()},100),this.applyImageLiquid(),e.find(".sbi_item").each(function(i){jQuery(this).find(".sbi_photo").hover(function(){jQuery(this).fadeTo(200,.85)},function(){jQuery(this).stop().fadeTo(500,1)})}),setTimeout(function(){jQuery("#sbi_images .sbi_item.sbi_new").removeClass("sbi_new");var i=10;e.find(".sbi_transition").each(function(){var e=jQuery(this);setTimeout(function(){e.removeClass("sbi_transition")},i),i+=10})},500)},afterNewImagesRevealed:function(){this.listenForVisibilityChange(),this.sendNeedsResizingToServer();var e=i.Event("sbiafterimagesloaded");e.el=i(this.el),i(window).trigger(e)},setResizedImages:function(){i(this.el).find(".sbi_resized_image_data").length&&void 0!==i(this.el).find(".sbi_resized_image_data").attr("data-resized")&&0===i(this.el).find(".sbi_resized_image_data").attr("data-resized").indexOf('{"')&&(this.resizedImages=JSON.parse(i(this.el).find(".sbi_resized_image_data").attr("data-resized")),i(this.el).find(".sbi_resized_image_data").remove())},sendNeedsResizingToServer:function(){var e=this;if(e.needsResizing.length>0&&e.settings.resizingEnabled){var t=i(this.el).find(".sbi_item").length;a({action:"sbi_resized_images_submit",needs_resizing:e.needsResizing,offset:t,feed_id:e.settings.feedID,atts:e.settings.shortCodeAtts},function(i){if(0===i.trim().indexOf("{")){var t=JSON.parse(i);e.settings.debugEnabled&&console.log(t)}})}},loadMoreButtonInit:function(){var e=i(this.el),t=this;e.find("#sbi_load .sbi_load_btn").off().on("click",function(){t.afterLoadMoreClicked(jQuery(this)),t.getNewPostSet()})},getNewPostSet:function(){var e=i(this.el),t=this;a({action:"sbi_load_more_clicked",offset:e.find(".sbi_item").length,feed_id:t.settings.feedID,atts:t.settings.shortCodeAtts,current_resolution:t.imageResolution},function(i){if(0===i.trim().indexOf("{")){var s=JSON.parse(i);t.settings.debugEnabled&&console.log(s),t.appendNewPosts(s.html),t.addResizedImages(s.resizedImages),t.settings.ajaxPostLoad?(t.settings.ajaxPostLoad=!1,t.afterInitialImagesLoaded()):t.afterNewImagesLoaded(),s.feedStatus.shouldPaginate?t.outOfPages=!1:(t.outOfPages=!0,e.find(".sbi_load_btn").hide())}})},appendNewPosts:function(e){var t=i(this.el);t.find("#sbi_images .sbi_item").length?t.find("#sbi_images .sbi_item").last().after(e):t.find("#sbi_images").append(e)},addResizedImages:function(i){for(var e in i)this.resizedImages[e]=i[e]},setImageHeight:function(){var e=i(this.el),t=e.find(".sbi_photo").eq(0).innerWidth(),s=this.getColumnCount(),a=e.find("#sbi_images").innerWidth()-e.find("#sbi_images").width(),n=a/2;sbi_photo_width_manual=e.find("#sbi_images").width()/s-a,e.find(".sbi_photo").css("height",t),e.find(".sbi-owl-nav").length&&setTimeout(function(){var i=2;e.find(".sbi_owl2row-item").length&&(i=1);var t=e.find(".sbi_photo").eq(0).innerWidth()/i;t+=parseInt(n)*(2-i+2),e.find(".sbi-owl-nav div").css("top",t)},100)},maybeRaiseSingleImageResolution:function(e,t,s){var a=this,n=a.getImageUrls(e),o=e.find(".sbi_photo img").attr("src"),d=150,r=e.find("img").get(0),l=o===window.sbi.options.placeholder?1:r.naturalWidth/r.naturalHeight;s=void 0!==s&&s;i.each(n,function(i,e){e===o&&(d=parseInt(i),s=!1)});var h=640;switch(a.settings.imgRes){case"thumb":h=150;break;case"medium":h=320;break;case"full":h=640;break;default:var g=Math.max(a.settings.autoMinRes,e.find(".sbi_photo").innerWidth()),u=a.getBestResolutionForAuto(g,l,e);switch(u){case 320:h=320;break;case 150:h=150}}if(h>d||o===window.sbi.options.placeholder||s){if(a.settings.debugEnabled){var f=o===window.sbi.options.placeholder?"was placeholder":"too small";console.log("rais res for "+o,f)}var m=n[h].split("?ig_cache_key")[0];e.find(".sbi_photo img").attr("src",m),e.find(".sbi_photo").css("background-image",'url("'+m+'")');var _=!1;e.find(".sbi_photo img").on("load",function(){var t=i(this),s=t.get(0).naturalWidth/t.get(0).naturalHeight;if(1e3!==t.get(0).naturalWidth&&s>l&&!_){switch(a.settings.debugEnabled&&console.log("rais res again for aspect ratio change "+o),_=!0,g=e.find(".sbi_photo").innerWidth(),u=a.getBestResolutionForAuto(g,s,e),h=640,u){case 320:h=320;break;case 150:h=150}h>d&&(m=n[h].split("?ig_cache_key")[0],t.attr("src",m),t.closest(".sbi_photo").css("background-image",'url("'+m+'")')),"masonry"!==a.layout&&"highlight"!==a.layout||(i(a.el).find("#sbi_images").smashotope(a.isotopeArgs),setTimeout(function(){i(a.el).find("#sbi_images").smashotope(a.isotopeArgs)},500))}else if(a.settings.debugEnabled){var r=_?"already checked":"no aspect ratio change";console.log("not raising res for replacement "+o,r)}})}e.find("img").on("error",function(){if(i(this).hasClass("sbi_img_error"))console.log("unfixed error "+i(this).attr("src"));else{if(i(this).addClass("sbi_img_error"),i(this).attr("src").indexOf("media?size=")>-1||i(this).attr("src").indexOf("cdninstagram")>-1||i(this).attr("src").indexOf("fbcdn")>-1){a.settings.favorLocal=!0;var e=a.getImageUrls(i(this).closest(".sbi_item"));void 0!==e[640]&&(i(this).attr("src",e[640]),i(this).closest(".sbi_photo").css("background-image","url("+e[640]+")"))}else void 0!==i(this).closest(".sbi_photo").attr("data-full-res")?(i(this).attr("src",i(this).closest(".sbi_photo").attr("data-full-res")),i(this).closest(".sbi_photo").css("background-image","url("+i(this).closest(".sbi_photo").attr("data-full-res")+")")):"undefined"!==i(this).closest(".sbi_photo").attr("href")&&(i(this).attr("src",i(this).closest(".sbi_photo").attr("href")+"media?size=l"),i(this).closest(".sbi_photo").css("background-image","url("+i(this).closest(".sbi_photo").attr("href")+"media?size=l)"));setTimeout(function(){a.afterResize()},1500)}})},maybeRaiseImageResolution:function(e){var t=this,s=void 0!==e&&!0===e?".sbi_item.sbi_new":".sbi_item",a=!t.isInitialized;i(t.el).find(s).each(function(e){!i(this).hasClass("sbi_num_diff_hide")&&i(this).find(".sbi_photo").length&&void 0!==i(this).find(".sbi_photo").attr("data-img-src-set")&&t.maybeRaiseSingleImageResolution(i(this),e,a)}),t.isInitialized=!0},getBestResolutionForAuto:function(e,t,s){(isNaN(t)||t<1)&&(t=1);var a=e*t,n=10*Math.ceil(a/10),o=[150,320,640];if(s.hasClass("sbi_highlighted")&&(n*=2),-1===o.indexOf(parseInt(n))){var d=!1;i.each(o,function(i,e){e>parseInt(n)&&!d&&(n=e,d=!0)})}return n},hideExtraImagesForWidth:function(){if("carousel"!==this.layout){var e=i(this.el),t=void 0!==e.attr("data-num")&&""!==e.attr("data-num")?parseInt(e.attr("data-num")):1,s=void 0!==e.attr("data-nummobile")&&""!==e.attr("data-nummobile")?parseInt(e.attr("data-nummobile")):t;i(window).width()<480?s<e.find(".sbi_item").length&&e.find(".sbi_item").slice(s-e.find(".sbi_item").length).addClass("sbi_num_diff_hide"):t<e.find(".sbi_item").length&&e.find(".sbi_item").slice(t-e.find(".sbi_item").length).addClass("sbi_num_diff_hide")}},setImageSizeClass:function(){var e=i(this.el);e.removeClass("sbi_small sbi_medium");var t=e.innerWidth(),s=parseInt(e.find("#sbi_images").outerWidth()-e.find("#sbi_images").width())/2,a=this.getColumnCount(),n=(t-s*(a+2))/a;n>120&&n<240?e.addClass("sbi_medium"):n<=120&&e.addClass("sbi_small")},setMinImageWidth:function(){i(this.el).find(".sbi_item .sbi_photo").first().length?this.minImageWidth=i(this.el).find(".sbi_item .sbi_photo").first().innerWidth():this.minImageWidth=150},setImageResolution:function(){if("auto"===this.settings.imgRes)this.imageResolution="auto";else switch(this.settings.imgRes){case"thumb":this.imageResolution=150;break;case"medium":this.imageResolution=320;break;default:this.imageResolution=640}},getImageUrls:function(i){var e=JSON.parse(i.find(".sbi_photo").attr("data-img-src-set").replace(/\\\//g,"/")),t=i.attr("id").replace("sbi_","");if(void 0!==this.resizedImages[t]&&"video"!==this.resizedImages[t]&&"pending"!==this.resizedImages[t]&&"error"!==this.resizedImages[t].id&&"video"!==this.resizedImages[t].id&&"pending"!==this.resizedImages[t].id){if(void 0!==this.resizedImages[t].sizes){var s=[];void 0!==this.resizedImages[t].sizes.full&&(s.push(640),e[640]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"full.jpg",i.find(".sbi_link_area").attr("href",sb_instagram_js_options.resized_url+this.resizedImages[t].id+"full.jpg"),i.find(".sbi_photo").attr("data-full-res",sb_instagram_js_options.resized_url+this.resizedImages[t].id+"full.jpg")),void 0!==this.resizedImages[t].sizes.low&&(s.push(320),e[320]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"low.jpg",this.settings.favorLocal&&void 0===this.resizedImages[t].sizes.full&&(i.find(".sbi_link_area").attr("href",sb_instagram_js_options.resized_url+this.resizedImages[t].id+"low.jpg"),i.find(".sbi_photo").attr("data-full-res",sb_instagram_js_options.resized_url+this.resizedImages[t].id+"low.jpg"))),void 0!==this.resizedImages[t].sizes.thumb&&(s.push(150),e[150]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"thumb.jpg"),this.settings.favorLocal&&(-1===s.indexOf(640)&&s.indexOf(320)>-1&&(e[640]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"low.jpg"),-1===s.indexOf(320)&&(s.indexOf(640)>-1?e[320]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"full.jpg":s.indexOf(150)>-1&&(e[320]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"thumb.jpg")),-1===s.indexOf(150)&&(s.indexOf(320)>-1?e[150]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"low.jpg":s.indexOf(640)>-1&&(e[150]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"full.jpg")))}}else void 0!==this.resizedImages[t]&&"pending"===this.resizedImages[t]||this.addToNeedsResizing(t);return e},getAvatarUrl:function(i,e){if(""===i)return"";var t=this.settings.general.avatars;return"local"===(e=void 0!==e?e:"local")?void 0!==t["LCL"+i]&&1===parseInt(t["LCL"+i])?sb_instagram_js_options.resized_url+i+".jpg":void 0!==t[i]?t[i]:"":void 0!==t[i]?t[i]:void 0!==t["LCL"+i]&&1===parseInt(t["LCL"+i])?sb_instagram_js_options.resized_url+i+".jpg":""},addToNeedsResizing:function(i){-1===this.needsResizing.indexOf(i)&&this.needsResizing.push(i)},applyImageLiquid:function(){var t=i(this.el);e(),"function"==typeof t.find(".sbi_photo").sbi_imgLiquid&&t.find(".sbi_photo").sbi_imgLiquid({fill:!0})},listenForVisibilityChange:function(){var e,t,s,a=this;e=jQuery,t={callback:function(){},runOnLoad:!0,frequency:100,sbiPreviousVisibility:null},s={sbiCheckVisibility:function(i,e){if(jQuery.contains(document,i[0])){var t=e.sbiPreviousVisibility,a=i.is(":visible");e.sbiPreviousVisibility=a,null==t?e.runOnLoad&&e.callback(i,a):t!==a&&e.callback(i,a),setTimeout(function(){s.sbiCheckVisibility(i,e)},e.frequency)}}},e.fn.sbiVisibilityChanged=function(i){var a=e.extend({},t,i);return this.each(function(){s.sbiCheckVisibility(e(this),a)})},"function"==typeof i(this.el).filter(":hidden").sbiVisibilityChanged&&i(this.el).filter(":hidden").sbiVisibilityChanged({callback:function(i,e){a.afterResize()},runOnLoad:!1})},getColumnCount:function(){var e=i(this.el),t=this.settings.cols,s=this.settings.colsmobile,a=t;return sbiWindowWidth=window.innerWidth,e.hasClass("sbi_mob_col_auto")?(sbiWindowWidth<640&&parseInt(t)>2&&parseInt(t)<7&&(a=2),sbiWindowWidth<640&&parseInt(t)>6&&parseInt(t)<11&&(a=4),sbiWindowWidth<=480&&parseInt(t)>2&&(a=1)):sbiWindowWidth<=480&&(a=s),parseInt(a)}},window.sbi_init=function(){window.sbi=new t,window.sbi.createPage(window.sbi.createFeeds,{whenFeedsCreated:window.sbi.afterFeedsCreated})}}(jQuery),jQuery(document).ready(function(i){void 0!==window.sb_instagram_js_options.resized_url&&-1===window.sb_instagram_js_options.resized_url.indexOf(location.protocol)&&("http:"===location.protocol?window.sb_instagram_js_options.resized_url=window.sb_instagram_js_options.resized_url.replace("http:","https:"):window.sb_instagram_js_options.resized_url=window.sb_instagram_js_options.resized_url.replace("https:","http:")),sbi_init()}));
js/sb-instagram.js CHANGED
@@ -262,19 +262,19 @@ if(!sbi_js_exists) {
262
  } else {
263
  this.afterInitialImagesLoaded();
264
  //Only check the width once the resize event is over
265
- var sbi_delay = (function () {
266
- var sbi_timer = 0;
267
- return function (sbi_callback, sbi_ms) {
268
- clearTimeout(sbi_timer);
269
- sbi_timer = setTimeout(sbi_callback, sbi_ms);
270
- };
271
- })();
272
- jQuery(window).resize(function () {
273
- sbi_delay(function () {
274
- feed.afterResize();
275
- }, 500);
276
- });
277
  }
 
 
 
 
 
 
 
 
 
 
 
 
278
 
279
  },
280
  initLayout: function() {
@@ -500,7 +500,6 @@ if(!sbi_js_exists) {
500
  forceChange = false;
501
  }
502
  });
503
-
504
  //Image res
505
  var newRes = 640;
506
  switch (feed.settings.imgRes) {
@@ -550,6 +549,7 @@ if(!sbi_js_exists) {
550
  minImageWidth = $item.find('.sbi_photo').innerWidth();
551
  thisImageReplace = feed.getBestResolutionForAuto(minImageWidth, newAspectRatio, $item);
552
  newRes = 640;
 
553
  switch (thisImageReplace) {
554
  case 320:
555
  newRes = 320;
@@ -760,6 +760,32 @@ if(!sbi_js_exists) {
760
 
761
  return srcSet;
762
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
763
  addToNeedsResizing: function (id) {
764
  if (this.needsResizing.indexOf(id) === -1) {
765
  this.needsResizing.push(id);
262
  } else {
263
  this.afterInitialImagesLoaded();
264
  //Only check the width once the resize event is over
 
 
 
 
 
 
 
 
 
 
 
 
265
  }
266
+ var sbi_delay = (function () {
267
+ var sbi_timer = 0;
268
+ return function (sbi_callback, sbi_ms) {
269
+ clearTimeout(sbi_timer);
270
+ sbi_timer = setTimeout(sbi_callback, sbi_ms);
271
+ };
272
+ })();
273
+ jQuery(window).resize(function () {
274
+ sbi_delay(function () {
275
+ feed.afterResize();
276
+ }, 500);
277
+ });
278
 
279
  },
280
  initLayout: function() {
500
  forceChange = false;
501
  }
502
  });
 
503
  //Image res
504
  var newRes = 640;
505
  switch (feed.settings.imgRes) {
549
  minImageWidth = $item.find('.sbi_photo').innerWidth();
550
  thisImageReplace = feed.getBestResolutionForAuto(minImageWidth, newAspectRatio, $item);
551
  newRes = 640;
552
+
553
  switch (thisImageReplace) {
554
  case 320:
555
  newRes = 320;
760
 
761
  return srcSet;
762
  },
763
+ getAvatarUrl: function (username,favorType) {
764
+ if (username === '') {
765
+ return '';
766
+ }
767
+
768
+ var availableAvatars = this.settings.general.avatars,
769
+ favorType = typeof favorType !== 'undefined' ? favorType : 'local';
770
+
771
+ if (favorType === 'local') {
772
+ if (typeof availableAvatars['LCL'+username] !== 'undefined' && parseInt(availableAvatars['LCL'+username]) === 1) {
773
+ return sb_instagram_js_options.resized_url + username + '.jpg';
774
+ } else if (typeof availableAvatars[username] !== 'undefined') {
775
+ return availableAvatars[username];
776
+ } else {
777
+ return '';
778
+ }
779
+ } else {
780
+ if (typeof availableAvatars[username] !== 'undefined') {
781
+ return availableAvatars[username];
782
+ } else if (typeof availableAvatars['LCL'+username] !== 'undefined' && parseInt(availableAvatars['LCL'+username]) === 1) {
783
+ return sb_instagram_js_options.resized_url + username + '.jpg';
784
+ } else {
785
+ return '';
786
+ }
787
+ }
788
+ },
789
  addToNeedsResizing: function (id) {
790
  if (this.needsResizing.indexOf(id) === -1) {
791
  this.needsResizing.push(id);
js/sb-instagram.min.js CHANGED
@@ -1 +1,866 @@
1
- var sbi_js_exists=void 0!==sbi_js_exists;sbi_js_exists||(!function(i){function e(){var i,e,t,s=s||{VER:"0.9.944"};s.bgs_Available=!1,s.bgs_CheckRunned=!1,function(i){i.fn.extend({sbi_imgLiquid:function(e){this.defaults={fill:!0,verticalAlign:"center",horizontalAlign:"center",useBackgroundSize:!0,useDataHtmlAttr:!0,responsive:!0,delay:0,fadeInTime:0,removeBoxBackground:!0,hardPixels:!0,responsiveCheckTime:500,timecheckvisibility:500,onStart:null,onFinish:null,onItemStart:null,onItemFinish:null,onItemError:null},function(){if(!s.bgs_CheckRunned){s.bgs_CheckRunned=!0;var e=i('<span style="background-size:cover" />');i("body").append(e),function(){var i=e[0];if(i&&window.getComputedStyle){var t=window.getComputedStyle(i,null);t&&t.backgroundSize&&(s.bgs_Available="cover"===t.backgroundSize)}}(),e.remove()}}();var t=this;return this.options=e,this.settings=i.extend({},this.defaults,this.options),this.settings.onStart&&this.settings.onStart(),this.each(function(e){function a(){(r.responsive||h.data("sbi_imgLiquid_oldProcessed"))&&h.data("sbi_imgLiquid_settings")&&(r=h.data("sbi_imgLiquid_settings"),l.actualSize=l.get(0).offsetWidth+l.get(0).offsetHeight/1e4,l.sizeOld&&l.actualSize!==l.sizeOld&&o(),l.sizeOld=l.actualSize,setTimeout(a,r.responsiveCheckTime))}function n(){h.data("sbi_imgLiquid_error",!0),l.addClass("sbi_imgLiquid_error"),r.onItemError&&r.onItemError(e,l,h),d()}function o(){var i,t,s,a,n,o,g,u,f=0,m=0,c=l.width(),_=l.height();void 0===h.data("owidth")&&h.data("owidth",h[0].width),void 0===h.data("oheight")&&h.data("oheight",h[0].height),r.fill===c/_>=h.data("owidth")/h.data("oheight")?(i="100%",t="auto",s=Math.floor(c),a=Math.floor(c*(h.data("oheight")/h.data("owidth")))):(i="auto",t="100%",s=Math.floor(_*(h.data("owidth")/h.data("oheight"))),a=Math.floor(_)),g=c-s,"left"===(n=r.horizontalAlign.toLowerCase())&&(m=0),"center"===n&&(m=.5*g),"right"===n&&(m=g),-1!==n.indexOf("%")&&((n=parseInt(n.replace("%",""),10))>0&&(m=g*n*.01)),u=_-a,"left"===(o=r.verticalAlign.toLowerCase())&&(f=0),"center"===o&&(f=.5*u),"bottom"===o&&(f=u),-1!==o.indexOf("%")&&((o=parseInt(o.replace("%",""),10))>0&&(f=u*o*.01)),r.hardPixels&&(i=s,t=a),h.css({width:i,height:t,"margin-left":Math.floor(m),"margin-top":Math.floor(f)}),h.data("sbi_imgLiquid_oldProcessed")||(h.fadeTo(r.fadeInTime,1),h.data("sbi_imgLiquid_oldProcessed",!0),r.removeBoxBackground&&l.css("background-image","none"),l.addClass("sbi_imgLiquid_nobgSize"),l.addClass("sbi_imgLiquid_ready")),r.onItemFinish&&r.onItemFinish(e,l,h),d()}function d(){e===t.length-1&&t.settings.onFinish&&t.settings.onFinish()}var r=t.settings,l=i(this),h=i("img:first",l);return h.length?(h.data("sbi_imgLiquid_settings")?(l.removeClass("sbi_imgLiquid_error").removeClass("sbi_imgLiquid_ready"),r=i.extend({},h.data("sbi_imgLiquid_settings"),t.options)):r=i.extend({},t.settings,function(){var i={};if(t.settings.useDataHtmlAttr){var e=l.attr("data-sbi_imgLiquid-fill"),a=l.attr("data-sbi_imgLiquid-horizontalAlign"),n=l.attr("data-sbi_imgLiquid-verticalAlign");("true"===e||"false"===e)&&(i.fill=Boolean("true"===e)),void 0===a||"left"!==a&&"center"!==a&&"right"!==a&&-1===a.indexOf("%")||(i.horizontalAlign=a),void 0===n||"top"!==n&&"bottom"!==n&&"center"!==n&&-1===n.indexOf("%")||(i.verticalAlign=n)}return s.isIE&&t.settings.ieFadeInDisabled&&(i.fadeInTime=0),i}()),h.data("sbi_imgLiquid_settings",r),r.onItemStart&&r.onItemStart(e,l,h),void(s.bgs_Available&&r.useBackgroundSize?(-1===l.css("background-image").indexOf(encodeURI(h.attr("src")))&&l.css({"background-image":'url("'+encodeURI(h.attr("src"))+'")'}),l.css({"background-size":r.fill?"cover":"contain","background-position":(r.horizontalAlign+" "+r.verticalAlign).toLowerCase(),"background-repeat":"no-repeat"}),i("a:first",l).css({display:"block",width:"100%",height:"100%"}),i("img",l).css({display:"none"}),r.onItemFinish&&r.onItemFinish(e,l,h),l.addClass("sbi_imgLiquid_bgSize"),l.addClass("sbi_imgLiquid_ready"),d()):function t(){if(h.data("oldSrc")&&h.data("oldSrc")!==h.attr("src")){var s=h.clone().removeAttr("style");return s.data("sbi_imgLiquid_settings",h.data("sbi_imgLiquid_settings")),h.parent().prepend(s),h.remove(),(h=s)[0].width=0,void setTimeout(t,10)}return h.data("sbi_imgLiquid_oldProcessed")?void o():(h.data("sbi_imgLiquid_oldProcessed",!1),h.data("oldSrc",h.attr("src")),i("img:not(:first)",l).css("display","none"),l.css({overflow:"hidden"}),h.fadeTo(0,0).removeAttr("width").removeAttr("height").css({visibility:"visible","max-width":"none","max-height":"none",width:"auto",height:"auto",display:"block"}),h.on("error",n),h[0].onerror=n,function i(){h.data("sbi_imgLiquid_error")||h.data("sbi_imgLiquid_loaded")||h.data("sbi_imgLiquid_oldProcessed")||(l.is(":visible")&&h[0].complete&&h[0].width>0&&h[0].height>0?(h.data("sbi_imgLiquid_loaded",!0),setTimeout(o,e*r.delay)):setTimeout(i,r.timecheckvisibility))}(),void a())}())):void n()})}})}(jQuery),i=s.injectCss,e=document.getElementsByTagName("head")[0],(t=document.createElement("style")).type="text/css",t.styleSheet?t.styleSheet.cssText=i:t.appendChild(document.createTextNode(i)),e.appendChild(t)}function t(){this.feeds={},this.options=sb_instagram_js_options}function s(i,e,t){this.el=i,this.index=e,this.settings=t,this.minImageWidth=0,this.imageResolution=150,this.resizedImages={},this.needsResizing=[],this.outOfPages=!1,this.isInitialized=!1}function a(e,t){i.ajax({url:sbiajaxurl,type:"post",data:e,success:t})}t.prototype={createPage:function(e,t){void 0!==window.sbiajaxurl&&-1!==window.sbiajaxurl.indexOf(window.location.hostname)||(window.sbiajaxurl=window.location.hostname+"/wp-admin/admin-ajax.php"),i(".sbi_no_js_error_message").remove(),i(".sbi_no_js").removeClass("sbi_no_js"),e(t)},createFeeds:function(e){e.whenFeedsCreated(i(".sbi").each(function(e){i(this).attr("data-sbi-index",e+1);var t=i(this),n=void 0!==t.attr("data-sbi-flags")?t.attr("data-sbi-flags").split(","):[],o=void 0!==t.attr("data-options")?JSON.parse(t.attr("data-options")):{};if(n.indexOf("testAjax")>-1){window.sbi.triggeredTest=!0;a({action:"sbi_on_ajax_test_trigger"},function(i){console.log("did test")})}var d={cols:t.attr("data-cols"),colsmobile:"same"!==t.attr("data-colsmobile")?t.attr("data-colsmobile"):t.attr("data-cols"),num:t.attr("data-num"),imgRes:t.attr("data-res"),feedID:t.attr("data-feedid"),shortCodeAtts:t.attr("data-shortcode-atts"),resizingEnabled:-1===n.indexOf("resizeDisable"),imageLoadEnabled:-1===n.indexOf("imageLoadDisable"),debugEnabled:n.indexOf("debug")>-1,favorLocal:n.indexOf("favorLocal")>-1,ajaxPostLoad:n.indexOf("ajaxPostLoad")>-1,autoMinRes:1,general:o};window.sbi.feeds[e]=function(i,e,t){return new s(i,e,t)}(this,e,d),window.sbi.feeds[e].setResizedImages(),window.sbi.feeds[e].init();var r=jQuery.Event("sbiafterfeedcreate");r.feed=window.sbi.feeds[e],jQuery(window).trigger(r)}))},afterFeedsCreated:function(){i(".sb_instagram_header").each(function(){var e=i(this);e.find(".sbi_header_link").hover(function(){e.find(".sbi_header_img_hover").addClass("sbi_fade_in")},function(){e.find(".sbi_header_img_hover").removeClass("sbi_fade_in")})})},encodeHTML:function(i){return void 0===i?"":i.replace(/(>)/g,"&gt;").replace(/(<)/g,"&lt;").replace(/(&lt;br\/&gt;)/g,"<br>").replace(/(&lt;br&gt;)/g,"<br>")},urlDetect:function(i){return i.match(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)/g)}},s.prototype={init:function(){var i,e=this;if(this.settings.ajaxPostLoad)this.getNewPostSet();else{this.afterInitialImagesLoaded();var t=(i=0,function(e,t){clearTimeout(i),i=setTimeout(e,t)});jQuery(window).resize(function(){t(function(){e.afterResize()},500)})}},initLayout:function(){},afterInitialImagesLoaded:function(){this.initLayout(),this.loadMoreButtonInit(),this.hideExtraImagesForWidth(),this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed()},afterResize:function(){this.setImageHeight(),this.setImageResolution(),this.maybeRaiseImageResolution(),this.setImageSizeClass()},afterLoadMoreClicked:function(i){i.find(".sbi_loader").removeClass("sbi_hidden"),i.find(".sbi_btn_text").addClass("sbi_hidden"),i.closest(".sbi").find(".sbi_num_diff_hide").addClass("sbi_transition").removeClass("sbi_num_diff_hide")},afterNewImagesLoaded:function(){var e=i(this.el);this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed(),setTimeout(function(){e.find(".sbi_loader").addClass("sbi_hidden"),e.find(".sbi_btn_text").removeClass("sbi_hidden")},500)},beforeNewImagesRevealed:function(){this.setImageHeight(),this.maybeRaiseImageResolution(!0),this.setImageSizeClass()},revealNewImages:function(){var e=i(this.el);"function"==typeof sbi_custom_js&&setTimeout(function(){sbi_custom_js()},100),this.applyImageLiquid(),e.find(".sbi_item").each(function(i){jQuery(this).find(".sbi_photo").hover(function(){jQuery(this).fadeTo(200,.85)},function(){jQuery(this).stop().fadeTo(500,1)})}),setTimeout(function(){jQuery("#sbi_images .sbi_item.sbi_new").removeClass("sbi_new");var i=10;e.find(".sbi_transition").each(function(){var e=jQuery(this);setTimeout(function(){e.removeClass("sbi_transition")},i),i+=10})},500)},afterNewImagesRevealed:function(){this.listenForVisibilityChange(),this.sendNeedsResizingToServer();var e=i.Event("sbiafterimagesloaded");e.el=i(this.el),i(window).trigger(e)},setResizedImages:function(){i(this.el).find(".sbi_resized_image_data").length&&void 0!==i(this.el).find(".sbi_resized_image_data").attr("data-resized")&&0===i(this.el).find(".sbi_resized_image_data").attr("data-resized").indexOf('{"')&&(this.resizedImages=JSON.parse(i(this.el).find(".sbi_resized_image_data").attr("data-resized")),i(this.el).find(".sbi_resized_image_data").remove())},sendNeedsResizingToServer:function(){var e=this;if(e.needsResizing.length>0&&e.settings.resizingEnabled){var t=i(this.el).find(".sbi_item").length;a({action:"sbi_resized_images_submit",needs_resizing:e.needsResizing,offset:t,feed_id:e.settings.feedID,atts:e.settings.shortCodeAtts},function(i){if(0===i.trim().indexOf("{")){var t=JSON.parse(i);e.settings.debugEnabled&&console.log(t)}})}},loadMoreButtonInit:function(){var e=i(this.el),t=this;e.find("#sbi_load .sbi_load_btn").off().on("click",function(){t.afterLoadMoreClicked(jQuery(this)),t.getNewPostSet()})},getNewPostSet:function(){var e=i(this.el),t=this;a({action:"sbi_load_more_clicked",offset:e.find(".sbi_item").length,feed_id:t.settings.feedID,atts:t.settings.shortCodeAtts,current_resolution:t.imageResolution},function(i){if(0===i.trim().indexOf("{")){var s=JSON.parse(i);t.settings.debugEnabled&&console.log(s),t.appendNewPosts(s.html),t.addResizedImages(s.resizedImages),t.settings.ajaxPostLoad?(t.settings.ajaxPostLoad=!1,t.afterInitialImagesLoaded()):t.afterNewImagesLoaded(),s.feedStatus.shouldPaginate?t.outOfPages=!1:(t.outOfPages=!0,e.find(".sbi_load_btn").hide())}})},appendNewPosts:function(e){var t=i(this.el);t.find("#sbi_images .sbi_item").length?t.find("#sbi_images .sbi_item").last().after(e):t.find("#sbi_images").append(e)},addResizedImages:function(i){for(var e in i)this.resizedImages[e]=i[e]},setImageHeight:function(){var e=i(this.el),t=e.find(".sbi_photo").eq(0).innerWidth(),s=this.getColumnCount(),a=e.find("#sbi_images").innerWidth()-e.find("#sbi_images").width(),n=a/2;sbi_photo_width_manual=e.find("#sbi_images").width()/s-a,e.find(".sbi_photo").css("height",t),e.find(".sbi-owl-nav").length&&setTimeout(function(){var i=2;e.find(".sbi_owl2row-item").length&&(i=1);var t=e.find(".sbi_photo").eq(0).innerWidth()/i;t+=parseInt(n)*(2-i+2),e.find(".sbi-owl-nav div").css("top",t)},100)},maybeRaiseSingleImageResolution:function(e,t,s){var a=this,n=a.getImageUrls(e),o=e.find(".sbi_photo img").attr("src"),d=150,r=e.find("img").get(0),l=o===window.sbi.options.placeholder?1:r.naturalWidth/r.naturalHeight;s=void 0!==s&&s;i.each(n,function(i,e){e===o&&(d=parseInt(i),s=!1)});var h=640;switch(a.settings.imgRes){case"thumb":h=150;break;case"medium":h=320;break;case"full":h=640;break;default:var g=Math.max(a.settings.autoMinRes,e.find(".sbi_photo").innerWidth()),u=a.getBestResolutionForAuto(g,l,e);switch(u){case 320:h=320;break;case 150:h=150}}if(h>d||o===window.sbi.options.placeholder||s){if(a.settings.debugEnabled){var f=o===window.sbi.options.placeholder?"was placeholder":"too small";console.log("rais res for "+o,f)}var m=n[h].split("?ig_cache_key")[0];e.find(".sbi_photo img").attr("src",m),e.find(".sbi_photo").css("background-image",'url("'+m+'")');var c=!1;e.find(".sbi_photo img").on("load",function(){var t=i(this),s=t.get(0).naturalWidth/t.get(0).naturalHeight;if(1e3!==t.get(0).naturalWidth&&s>l&&!c){switch(a.settings.debugEnabled&&console.log("rais res again for aspect ratio change "+o),c=!0,g=e.find(".sbi_photo").innerWidth(),u=a.getBestResolutionForAuto(g,s,e),h=640,u){case 320:h=320;break;case 150:h=150}h>d&&(m=n[h].split("?ig_cache_key")[0],t.attr("src",m),t.closest(".sbi_photo").css("background-image",'url("'+m+'")')),"masonry"!==a.layout&&"highlight"!==a.layout||(i(a.el).find("#sbi_images").smashotope(a.isotopeArgs),setTimeout(function(){i(a.el).find("#sbi_images").smashotope(a.isotopeArgs)},500))}else if(a.settings.debugEnabled){var r=c?"already checked":"no aspect ratio change";console.log("not raising res for replacement "+o,r)}})}e.find("img").on("error",function(){if(i(this).hasClass("sbi_img_error"))console.log("unfixed error "+i(this).attr("src"));else{if(i(this).addClass("sbi_img_error"),i(this).attr("src").indexOf("media?size=")>-1||i(this).attr("src").indexOf("cdninstagram")>-1||i(this).attr("src").indexOf("fbcdn")>-1){a.settings.favorLocal=!0;var e=a.getImageUrls(i(this).closest(".sbi_item"));void 0!==e[640]&&(i(this).attr("src",e[640]),i(this).closest(".sbi_photo").css("background-image","url("+e[640]+")"))}else void 0!==i(this).closest(".sbi_photo").attr("data-full-res")?(i(this).attr("src",i(this).closest(".sbi_photo").attr("data-full-res")),i(this).closest(".sbi_photo").css("background-image","url("+i(this).closest(".sbi_photo").attr("data-full-res")+")")):"undefined"!==i(this).closest(".sbi_photo").attr("href")&&(i(this).attr("src",i(this).closest(".sbi_photo").attr("href")+"media?size=l"),i(this).closest(".sbi_photo").css("background-image","url("+i(this).closest(".sbi_photo").attr("href")+"media?size=l)"));setTimeout(function(){a.afterResize()},1500)}})},maybeRaiseImageResolution:function(e){var t=this,s=void 0!==e&&!0===e?".sbi_item.sbi_new":".sbi_item",a=!t.isInitialized;i(t.el).find(s).each(function(e){!i(this).hasClass("sbi_num_diff_hide")&&i(this).find(".sbi_photo").length&&void 0!==i(this).find(".sbi_photo").attr("data-img-src-set")&&t.maybeRaiseSingleImageResolution(i(this),e,a)}),t.isInitialized=!0},getBestResolutionForAuto:function(e,t,s){(isNaN(t)||t<1)&&(t=1);var a=e*t,n=10*Math.ceil(a/10),o=[150,320,640];if(s.hasClass("sbi_highlighted")&&(n*=2),-1===o.indexOf(parseInt(n))){var d=!1;i.each(o,function(i,e){e>parseInt(n)&&!d&&(n=e,d=!0)})}return n},hideExtraImagesForWidth:function(){if("carousel"!==this.layout){var e=i(this.el),t=void 0!==e.attr("data-num")&&""!==e.attr("data-num")?parseInt(e.attr("data-num")):1,s=void 0!==e.attr("data-nummobile")&&""!==e.attr("data-nummobile")?parseInt(e.attr("data-nummobile")):t;i(window).width()<480?s<e.find(".sbi_item").length&&e.find(".sbi_item").slice(s-e.find(".sbi_item").length).addClass("sbi_num_diff_hide"):t<e.find(".sbi_item").length&&e.find(".sbi_item").slice(t-e.find(".sbi_item").length).addClass("sbi_num_diff_hide")}},setImageSizeClass:function(){var e=i(this.el);e.removeClass("sbi_small sbi_medium");var t=e.innerWidth(),s=parseInt(e.find("#sbi_images").outerWidth()-e.find("#sbi_images").width())/2,a=this.getColumnCount(),n=(t-s*(a+2))/a;n>120&&n<240?e.addClass("sbi_medium"):n<=120&&e.addClass("sbi_small")},setMinImageWidth:function(){i(this.el).find(".sbi_item .sbi_photo").first().length?this.minImageWidth=i(this.el).find(".sbi_item .sbi_photo").first().innerWidth():this.minImageWidth=150},setImageResolution:function(){if("auto"===this.settings.imgRes)this.imageResolution="auto";else switch(this.settings.imgRes){case"thumb":this.imageResolution=150;break;case"medium":this.imageResolution=320;break;default:this.imageResolution=640}},getImageUrls:function(i){var e=JSON.parse(i.find(".sbi_photo").attr("data-img-src-set").replace(/\\\//g,"/")),t=i.attr("id").replace("sbi_","");if(void 0!==this.resizedImages[t]&&"video"!==this.resizedImages[t]&&"pending"!==this.resizedImages[t]&&"error"!==this.resizedImages[t].id&&"video"!==this.resizedImages[t].id&&"pending"!==this.resizedImages[t].id){if(void 0!==this.resizedImages[t].sizes){var s=[];void 0!==this.resizedImages[t].sizes.full&&(s.push(640),e[640]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"full.jpg",i.find(".sbi_link_area").attr("href",sb_instagram_js_options.resized_url+this.resizedImages[t].id+"full.jpg"),i.find(".sbi_photo").attr("data-full-res",sb_instagram_js_options.resized_url+this.resizedImages[t].id+"full.jpg")),void 0!==this.resizedImages[t].sizes.low&&(s.push(320),e[320]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"low.jpg",this.settings.favorLocal&&void 0===this.resizedImages[t].sizes.full&&(i.find(".sbi_link_area").attr("href",sb_instagram_js_options.resized_url+this.resizedImages[t].id+"low.jpg"),i.find(".sbi_photo").attr("data-full-res",sb_instagram_js_options.resized_url+this.resizedImages[t].id+"low.jpg"))),void 0!==this.resizedImages[t].sizes.thumb&&(s.push(150),e[150]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"thumb.jpg"),this.settings.favorLocal&&(-1===s.indexOf(640)&&s.indexOf(320)>-1&&(e[640]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"low.jpg"),-1===s.indexOf(320)&&(s.indexOf(640)>-1?e[320]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"full.jpg":s.indexOf(150)>-1&&(e[320]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"thumb.jpg")),-1===s.indexOf(150)&&(s.indexOf(320)>-1?e[150]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"low.jpg":s.indexOf(640)>-1&&(e[150]=sb_instagram_js_options.resized_url+this.resizedImages[t].id+"full.jpg")))}}else void 0!==this.resizedImages[t]&&"pending"===this.resizedImages[t]||this.addToNeedsResizing(t);return e},addToNeedsResizing:function(i){-1===this.needsResizing.indexOf(i)&&this.needsResizing.push(i)},applyImageLiquid:function(){var t=i(this.el);e(),"function"==typeof t.find(".sbi_photo").sbi_imgLiquid&&t.find(".sbi_photo").sbi_imgLiquid({fill:!0})},listenForVisibilityChange:function(){var e,t,s,a=this;e=jQuery,t={callback:function(){},runOnLoad:!0,frequency:100,sbiPreviousVisibility:null},s={sbiCheckVisibility:function(i,e){if(jQuery.contains(document,i[0])){var t=e.sbiPreviousVisibility,a=i.is(":visible");e.sbiPreviousVisibility=a,null==t?e.runOnLoad&&e.callback(i,a):t!==a&&e.callback(i,a),setTimeout(function(){s.sbiCheckVisibility(i,e)},e.frequency)}}},e.fn.sbiVisibilityChanged=function(i){var a=e.extend({},t,i);return this.each(function(){s.sbiCheckVisibility(e(this),a)})},"function"==typeof i(this.el).filter(":hidden").sbiVisibilityChanged&&i(this.el).filter(":hidden").sbiVisibilityChanged({callback:function(i,e){a.afterResize()},runOnLoad:!1})},getColumnCount:function(){var e=i(this.el),t=this.settings.cols,s=this.settings.colsmobile,a=t;return sbiWindowWidth=window.innerWidth,e.hasClass("sbi_mob_col_auto")?(sbiWindowWidth<640&&parseInt(t)>2&&parseInt(t)<7&&(a=2),sbiWindowWidth<640&&parseInt(t)>6&&parseInt(t)<11&&(a=4),sbiWindowWidth<=480&&parseInt(t)>2&&(a=1)):sbiWindowWidth<=480&&(a=s),parseInt(a)}},window.sbi_init=function(){window.sbi=new t,window.sbi.createPage(window.sbi.createFeeds,{whenFeedsCreated:window.sbi.afterFeedsCreated})}}(jQuery),jQuery(document).ready(function(i){void 0!==window.sb_instagram_js_options.resized_url&&-1===window.sb_instagram_js_options.resized_url.indexOf(location.protocol)&&("http:"===location.protocol?window.sb_instagram_js_options.resized_url=window.sb_instagram_js_options.resized_url.replace("http:","https:"):window.sb_instagram_js_options.resized_url=window.sb_instagram_js_options.resized_url.replace("https:","http:")),sbi_init()}));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var sbi_js_exists = (typeof sbi_js_exists !== 'undefined') ? true : false;
2
+ if(!sbi_js_exists) {
3
+ (function($){
4
+
5
+ function sbiAddImgLiquid() {
6
+ /*! imgLiquid v0.9.944 / 03-05-2013 https://github.com/karacas/imgLiquid */
7
+ var sbi_imgLiquid = sbi_imgLiquid || {VER: "0.9.944"};
8
+ sbi_imgLiquid.bgs_Available = !1, sbi_imgLiquid.bgs_CheckRunned = !1, function (i) {
9
+ function t() {
10
+ if (!sbi_imgLiquid.bgs_CheckRunned) {
11
+ sbi_imgLiquid.bgs_CheckRunned = !0;
12
+ var t = i('<span style="background-size:cover" />');
13
+ i("body").append(t), !function () {
14
+ var i = t[0];
15
+ if (i && window.getComputedStyle) {
16
+ var e = window.getComputedStyle(i, null);
17
+ e && e.backgroundSize && (sbi_imgLiquid.bgs_Available = "cover" === e.backgroundSize)
18
+ }
19
+ }(), t.remove()
20
+ }
21
+ }
22
+
23
+ i.fn.extend({
24
+ sbi_imgLiquid: function (e) {
25
+ this.defaults = {
26
+ fill: !0,
27
+ verticalAlign: "center",
28
+ horizontalAlign: "center",
29
+ useBackgroundSize: !0,
30
+ useDataHtmlAttr: !0,
31
+ responsive: !0,
32
+ delay: 0,
33
+ fadeInTime: 0,
34
+ removeBoxBackground: !0,
35
+ hardPixels: !0,
36
+ responsiveCheckTime: 500,
37
+ timecheckvisibility: 500,
38
+ onStart: null,
39
+ onFinish: null,
40
+ onItemStart: null,
41
+ onItemFinish: null,
42
+ onItemError: null
43
+ }, t();
44
+ var a = this;
45
+ return this.options = e, this.settings = i.extend({}, this.defaults, this.options), this.settings.onStart && this.settings.onStart(), this.each(function (t) {
46
+ function e() {
47
+ -1 === u.css("background-image").indexOf(encodeURI(c.attr("src"))) && u.css({"background-image": 'url("' + encodeURI(c.attr("src")) + '")'}), u.css({
48
+ "background-size": g.fill ? "cover" : "contain",
49
+ "background-position": (g.horizontalAlign + " " + g.verticalAlign).toLowerCase(),
50
+ "background-repeat": "no-repeat"
51
+ }), i("a:first", u).css({
52
+ display: "block",
53
+ width: "100%",
54
+ height: "100%"
55
+ }), i("img", u).css({display: "none"}), g.onItemFinish && g.onItemFinish(t, u, c), u.addClass("sbi_imgLiquid_bgSize"), u.addClass("sbi_imgLiquid_ready"), l()
56
+ }
57
+
58
+ function o() {
59
+ function e() {
60
+ c.data("sbi_imgLiquid_error") || c.data("sbi_imgLiquid_loaded") || c.data("sbi_imgLiquid_oldProcessed") || (u.is(":visible") && c[0].complete && c[0].width > 0 && c[0].height > 0 ? (c.data("sbi_imgLiquid_loaded", !0), setTimeout(r, t * g.delay)) : setTimeout(e, g.timecheckvisibility))
61
+ }
62
+
63
+ if (c.data("oldSrc") && c.data("oldSrc") !== c.attr("src")) {
64
+ var a = c.clone().removeAttr("style");
65
+ return a.data("sbi_imgLiquid_settings", c.data("sbi_imgLiquid_settings")), c.parent().prepend(a), c.remove(), c = a, c[0].width = 0, void setTimeout(o, 10)
66
+ }
67
+ return c.data("sbi_imgLiquid_oldProcessed") ? void r() : (c.data("sbi_imgLiquid_oldProcessed", !1), c.data("oldSrc", c.attr("src")), i("img:not(:first)", u).css("display", "none"), u.css({overflow: "hidden"}), c.fadeTo(0, 0).removeAttr("width").removeAttr("height").css({
68
+ visibility: "visible",
69
+ "max-width": "none",
70
+ "max-height": "none",
71
+ width: "auto",
72
+ height: "auto",
73
+ display: "block"
74
+ }), c.on("error", n), c[0].onerror = n, e(), void d())
75
+ }
76
+
77
+ function d() {
78
+ (g.responsive || c.data("sbi_imgLiquid_oldProcessed")) && c.data("sbi_imgLiquid_settings") && (g = c.data("sbi_imgLiquid_settings"), u.actualSize = u.get(0).offsetWidth + u.get(0).offsetHeight / 1e4, u.sizeOld && u.actualSize !== u.sizeOld && r(), u.sizeOld = u.actualSize, setTimeout(d, g.responsiveCheckTime))
79
+ }
80
+
81
+ function n() {
82
+ c.data("sbi_imgLiquid_error", !0), u.addClass("sbi_imgLiquid_error"), g.onItemError && g.onItemError(t, u, c), l()
83
+ }
84
+
85
+ function s() {
86
+ var i = {};
87
+ if (a.settings.useDataHtmlAttr) {
88
+ var t = u.attr("data-sbi_imgLiquid-fill"),
89
+ e = u.attr("data-sbi_imgLiquid-horizontalAlign"),
90
+ o = u.attr("data-sbi_imgLiquid-verticalAlign");
91
+ ("true" === t || "false" === t) && (i.fill = Boolean("true" === t)), void 0 === e || "left" !== e && "center" !== e && "right" !== e && -1 === e.indexOf("%") || (i.horizontalAlign = e), void 0 === o || "top" !== o && "bottom" !== o && "center" !== o && -1 === o.indexOf("%") || (i.verticalAlign = o)
92
+ }
93
+ return sbi_imgLiquid.isIE && a.settings.ieFadeInDisabled && (i.fadeInTime = 0), i
94
+ }
95
+
96
+ function r() {
97
+ var i, e, a, o, d, n, s, r, m = 0, h = 0, f = u.width(), v = u.height();
98
+ void 0 === c.data("owidth") && c.data("owidth", c[0].width), void 0 === c.data("oheight") && c.data("oheight", c[0].height), g.fill === f / v >= c.data("owidth") / c.data("oheight") ? (i = "100%", e = "auto", a = Math.floor(f), o = Math.floor(f * (c.data("oheight") / c.data("owidth")))) : (i = "auto", e = "100%", a = Math.floor(v * (c.data("owidth") / c.data("oheight"))), o = Math.floor(v)), d = g.horizontalAlign.toLowerCase(), s = f - a, "left" === d && (h = 0), "center" === d && (h = .5 * s), "right" === d && (h = s), -1 !== d.indexOf("%") && (d = parseInt(d.replace("%", ""), 10), d > 0 && (h = s * d * .01)), n = g.verticalAlign.toLowerCase(), r = v - o, "left" === n && (m = 0), "center" === n && (m = .5 * r), "bottom" === n && (m = r), -1 !== n.indexOf("%") && (n = parseInt(n.replace("%", ""), 10), n > 0 && (m = r * n * .01)), g.hardPixels && (i = a, e = o), c.css({
99
+ width: i,
100
+ height: e,
101
+ "margin-left": Math.floor(h),
102
+ "margin-top": Math.floor(m)
103
+ }), c.data("sbi_imgLiquid_oldProcessed") || (c.fadeTo(g.fadeInTime, 1), c.data("sbi_imgLiquid_oldProcessed", !0), g.removeBoxBackground && u.css("background-image", "none"), u.addClass("sbi_imgLiquid_nobgSize"), u.addClass("sbi_imgLiquid_ready")), g.onItemFinish && g.onItemFinish(t, u, c), l()
104
+ }
105
+
106
+ function l() {
107
+ t === a.length - 1 && a.settings.onFinish && a.settings.onFinish()
108
+ }
109
+
110
+ var g = a.settings, u = i(this), c = i("img:first", u);
111
+ return c.length ? (c.data("sbi_imgLiquid_settings") ? (u.removeClass("sbi_imgLiquid_error").removeClass("sbi_imgLiquid_ready"), g = i.extend({}, c.data("sbi_imgLiquid_settings"), a.options)) : g = i.extend({}, a.settings, s()), c.data("sbi_imgLiquid_settings", g), g.onItemStart && g.onItemStart(t, u, c), void (sbi_imgLiquid.bgs_Available && g.useBackgroundSize ? e() : o())) : void n()
112
+ })
113
+ }
114
+ })
115
+ }(jQuery);
116
+
117
+ // Use imagefill to set the images as backgrounds so they can be square
118
+ !function () {
119
+ var css = sbi_imgLiquid.injectCss,
120
+ head = document.getElementsByTagName('head')[0],
121
+ style = document.createElement('style');
122
+ style.type = 'text/css';
123
+ if (style.styleSheet) {
124
+ style.styleSheet.cssText = css;
125
+ } else {
126
+ style.appendChild(document.createTextNode(css));
127
+ }
128
+ head.appendChild(style);
129
+ }();
130
+ }
131
+
132
+ function sbiAddVisibilityListener() {
133
+ /* Detect when element becomes visible. Used for when the feed is initially hidden, in a tab for example. https://github.com/shaunbowe/jquery.visibilityChanged */
134
+ !function (i) {
135
+ var n = {
136
+ callback: function () {
137
+ }, runOnLoad: !0, frequency: 100, sbiPreviousVisibility: null
138
+ }, c = {};
139
+ c.sbiCheckVisibility = function (i, n) {
140
+ if (jQuery.contains(document, i[0])) {
141
+ var e = n.sbiPreviousVisibility, t = i.is(":visible");
142
+ n.sbiPreviousVisibility = t, null == e ? n.runOnLoad && n.callback(i, t) : e !== t && n.callback(i, t), setTimeout(function () {
143
+ c.sbiCheckVisibility(i, n)
144
+ }, n.frequency)
145
+ }
146
+ }, i.fn.sbiVisibilityChanged = function (e) {
147
+ var t = i.extend({}, n, e);
148
+ return this.each(function () {
149
+ c.sbiCheckVisibility(i(this), t)
150
+ })
151
+ }
152
+ }(jQuery);
153
+ }
154
+
155
+ function Sbi() {
156
+ this.feeds = {};
157
+ this.options = sb_instagram_js_options;
158
+ }
159
+
160
+ Sbi.prototype = {
161
+ createPage: function (createFeeds, createFeedsArgs) {
162
+ if (typeof window.sbiajaxurl === 'undefined' || window.sbiajaxurl.indexOf(window.location.hostname) === -1) {
163
+ window.sbiajaxurl = window.location.hostname + '/wp-admin/admin-ajax.php';
164
+ }
165
+
166
+ $('.sbi_no_js_error_message').remove();
167
+ $('.sbi_no_js').removeClass('sbi_no_js');
168
+ createFeeds(createFeedsArgs);
169
+ },
170
+ createFeeds: function (args) {
171
+ args.whenFeedsCreated(
172
+ $('.sbi').each(function (index) {
173
+ $(this).attr('data-sbi-index', index + 1);
174
+ var $self = $(this),
175
+ flags = typeof $self.attr('data-sbi-flags') !== 'undefined' ? $self.attr('data-sbi-flags').split(',') : [],
176
+ general = typeof $self.attr('data-options') !== 'undefined' ? JSON.parse($self.attr('data-options')) : {};
177
+ if (flags.indexOf('testAjax') > -1) {
178
+ window.sbi.triggeredTest = true;
179
+ var submitData = {
180
+ 'action' : 'sbi_on_ajax_test_trigger'
181
+ },
182
+ onSuccess = function(data) {
183
+ console.log('did test');
184
+ };
185
+ sbiAjax(submitData,onSuccess)
186
+ }
187
+ var feedOptions = {
188
+ cols : $self.attr('data-cols'),
189
+ colsmobile : $self.attr('data-colsmobile') !== 'same' ? $self.attr('data-colsmobile') : $self.attr('data-cols'),
190
+ num : $self.attr('data-num'),
191
+ imgRes : $self.attr('data-res'),
192
+ feedID : $self.attr('data-feedid'),
193
+ shortCodeAtts : $self.attr('data-shortcode-atts'),
194
+ resizingEnabled : (flags.indexOf('resizeDisable') === -1),
195
+ imageLoadEnabled : (flags.indexOf('imageLoadDisable') === -1),
196
+ debugEnabled : (flags.indexOf('debug') > -1),
197
+ favorLocal : (flags.indexOf('favorLocal') > -1),
198
+ ajaxPostLoad : (flags.indexOf('ajaxPostLoad') > -1),
199
+ autoMinRes : 1,
200
+ general : general
201
+ };
202
+
203
+ window.sbi.feeds[index] = sbiGetNewFeed(this, index, feedOptions);
204
+ window.sbi.feeds[index].setResizedImages();
205
+ window.sbi.feeds[index].init();
206
+
207
+ var evt = jQuery.Event('sbiafterfeedcreate');
208
+ evt.feed = window.sbi.feeds[index];
209
+ jQuery(window).trigger(evt);
210
+
211
+ })
212
+ );
213
+ },
214
+ afterFeedsCreated: function () {
215
+ // enable header hover action
216
+ $('.sb_instagram_header').each(function () {
217
+ var $thisHeader = $(this);
218
+ $thisHeader.find('.sbi_header_link').hover(function () {
219
+ $thisHeader.find('.sbi_header_img_hover').addClass('sbi_fade_in');
220
+ }, function () {
221
+ $thisHeader.find('.sbi_header_img_hover').removeClass('sbi_fade_in');
222
+ });
223
+ });
224
+
225
+ },
226
+ encodeHTML: function(raw) {
227
+ // make sure passed variable is defined
228
+ if (typeof raw === 'undefined') {
229
+ return '';
230
+ }
231
+ // replace greater than and less than symbols with html entity to disallow html in comments
232
+ var encoded = raw.replace(/(>)/g,'&gt;'),
233
+ encoded = encoded.replace(/(<)/g,'&lt;');
234
+ encoded = encoded.replace(/(&lt;br\/&gt;)/g,'<br>');
235
+ encoded = encoded.replace(/(&lt;br&gt;)/g,'<br>');
236
+
237
+ return encoded;
238
+ },
239
+ urlDetect: function(text) {
240
+ var urlRegex = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g;
241
+ return text.match(urlRegex);
242
+ }
243
+ };
244
+
245
+ function SbiFeed(el, index, settings) {
246
+ this.el = el;
247
+ this.index = index;
248
+ this.settings = settings;
249
+ this.minImageWidth = 0;
250
+ this.imageResolution = 150;
251
+ this.resizedImages = {};
252
+ this.needsResizing = [];
253
+ this.outOfPages = false;
254
+ this.isInitialized = false;
255
+ }
256
+
257
+ SbiFeed.prototype = {
258
+ init: function() {
259
+ var feed = this;
260
+ if (this.settings.ajaxPostLoad) {
261
+ this.getNewPostSet();
262
+ } else {
263
+ this.afterInitialImagesLoaded();
264
+ //Only check the width once the resize event is over
265
+ }
266
+ var sbi_delay = (function () {
267
+ var sbi_timer = 0;
268
+ return function (sbi_callback, sbi_ms) {
269
+ clearTimeout(sbi_timer);
270
+ sbi_timer = setTimeout(sbi_callback, sbi_ms);
271
+ };
272
+ })();
273
+ jQuery(window).resize(function () {
274
+ sbi_delay(function () {
275
+ feed.afterResize();
276
+ }, 500);
277
+ });
278
+
279
+ },
280
+ initLayout: function() {
281
+
282
+ },
283
+ afterInitialImagesLoaded: function() {
284
+ this.initLayout();
285
+ this.loadMoreButtonInit();
286
+ this.hideExtraImagesForWidth();
287
+ this.beforeNewImagesRevealed();
288
+ this.revealNewImages();
289
+ this.afterNewImagesRevealed();
290
+ },
291
+ afterResize: function() {
292
+ this.setImageHeight();
293
+ this.setImageResolution();
294
+ this.maybeRaiseImageResolution();
295
+ this.setImageSizeClass();
296
+ },
297
+ afterLoadMoreClicked: function($button) {
298
+ $button.find('.sbi_loader').removeClass('sbi_hidden');
299
+ $button.find('.sbi_btn_text').addClass('sbi_hidden');
300
+ $button.closest('.sbi').find('.sbi_num_diff_hide').addClass('sbi_transition').removeClass('sbi_num_diff_hide');
301
+ },
302
+ afterNewImagesLoaded: function() {
303
+ var $self = $(this.el),
304
+ feed = this;
305
+ this.beforeNewImagesRevealed();
306
+ this.revealNewImages();
307
+ this.afterNewImagesRevealed();
308
+ setTimeout(function () {
309
+ //Hide the loader in the load more button
310
+ $self.find('.sbi_loader').addClass('sbi_hidden');
311
+ $self.find('.sbi_btn_text').removeClass('sbi_hidden');
312
+ }, 500);
313
+ },
314
+ beforeNewImagesRevealed: function() {
315
+ this.setImageHeight();
316
+ this.maybeRaiseImageResolution(true);
317
+ this.setImageSizeClass();
318
+ },
319
+ revealNewImages: function() {
320
+ var $self = $(this.el),
321
+ feed = this;
322
+
323
+ // Call Custom JS if it exists
324
+ if (typeof sbi_custom_js == 'function') setTimeout(function(){ sbi_custom_js(); }, 100);
325
+
326
+ this.applyImageLiquid();
327
+ $self.find('.sbi_item').each(function (index) {
328
+ var $self = jQuery(this);
329
+
330
+ //Photo links
331
+ //If lightbox is disabled
332
+ $self.find('.sbi_photo').hover(function () {
333
+ jQuery(this).fadeTo(200, 0.85);
334
+ }, function () {
335
+ jQuery(this).stop().fadeTo(500, 1);
336
+ });
337
+
338
+ }); //End .sbi_item each
339
+
340
+ //Remove the new class after 500ms, once the sorting is done
341
+ setTimeout(function () {
342
+ jQuery('#sbi_images .sbi_item.sbi_new').removeClass('sbi_new');
343
+ //Loop through items and remove class to reveal them
344
+ var time = 10;
345
+ $self.find('.sbi_transition').each(function() {
346
+ var $sbi_item_transition_el = jQuery(this);
347
+
348
+ setTimeout( function(){
349
+ $sbi_item_transition_el.removeClass('sbi_transition');
350
+ }, time);
351
+ time += 10;
352
+ });
353
+ }, 500);
354
+ },
355
+ afterNewImagesRevealed: function() {
356
+ this.listenForVisibilityChange();
357
+ this.sendNeedsResizingToServer();
358
+
359
+ var evt = $.Event('sbiafterimagesloaded');
360
+ evt.el = $(this.el);
361
+ $(window).trigger(evt);
362
+ },
363
+ setResizedImages: function () {
364
+ if ($(this.el).find('.sbi_resized_image_data').length
365
+ && typeof $(this.el).find('.sbi_resized_image_data').attr('data-resized') !== 'undefined'
366
+ && $(this.el).find('.sbi_resized_image_data').attr('data-resized').indexOf('{"') === 0) {
367
+ this.resizedImages = JSON.parse($(this.el).find('.sbi_resized_image_data').attr('data-resized'));
368
+ $(this.el).find('.sbi_resized_image_data').remove();
369
+ }
370
+ },
371
+ sendNeedsResizingToServer: function() {
372
+ var feed = this;
373
+ if (feed.needsResizing.length > 0 && feed.settings.resizingEnabled) {
374
+ var itemOffset = $(this.el).find('.sbi_item').length;
375
+
376
+ var submitData = {
377
+ action: 'sbi_resized_images_submit',
378
+ needs_resizing: feed.needsResizing,
379
+ offset: itemOffset,
380
+ feed_id: feed.settings.feedID,
381
+ atts: feed.settings.shortCodeAtts,
382
+ };
383
+ var onSuccess = function(data) {
384
+ if (data.trim().indexOf('{') === 0) {
385
+ var response = JSON.parse(data);
386
+ if (feed.settings.debugEnabled) {
387
+ console.log(response);
388
+ }
389
+ }
390
+ };
391
+ sbiAjax(submitData,onSuccess);
392
+ }
393
+ },
394
+ loadMoreButtonInit: function () {
395
+ var $self = $(this.el),
396
+ feed = this;
397
+ $self.find('#sbi_load .sbi_load_btn').off().on('click', function () {
398
+
399
+ feed.afterLoadMoreClicked(jQuery(this));
400
+ feed.getNewPostSet();
401
+
402
+ }); //End click event
403
+ },
404
+ getNewPostSet: function () {
405
+ var $self = $(this.el),
406
+ feed = this;
407
+ var itemOffset = $self.find('.sbi_item').length,
408
+ submitData = {
409
+ action: 'sbi_load_more_clicked',
410
+ offset: itemOffset,
411
+ feed_id: feed.settings.feedID,
412
+ atts: feed.settings.shortCodeAtts,
413
+ current_resolution: feed.imageResolution
414
+ };
415
+ var onSuccess = function (data) {
416
+ if (data.trim().indexOf('{') === 0) {
417
+ var response = JSON.parse(data);
418
+ if (feed.settings.debugEnabled) {
419
+ console.log(response);
420
+ }
421
+ feed.appendNewPosts(response.html);
422
+ feed.addResizedImages(response.resizedImages);
423
+ if (feed.settings.ajaxPostLoad) {
424
+ feed.settings.ajaxPostLoad = false;
425
+ feed.afterInitialImagesLoaded();
426
+ } else {
427
+ feed.afterNewImagesLoaded();
428
+ }
429
+
430
+ if (!response.feedStatus.shouldPaginate) {
431
+ feed.outOfPages = true;
432
+ $self.find('.sbi_load_btn').hide();
433
+ } else {
434
+ feed.outOfPages = false;
435
+ }
436
+ }
437
+
438
+ };
439
+ sbiAjax(submitData, onSuccess);
440
+ },
441
+ appendNewPosts: function (newPostsHtml) {
442
+ var $self = $(this.el),
443
+ feed = this;
444
+ if ($self.find('#sbi_images .sbi_item').length) {
445
+ $self.find('#sbi_images .sbi_item').last().after(newPostsHtml);
446
+ } else {
447
+ $self.find('#sbi_images').append(newPostsHtml);
448
+ }
449
+ },
450
+ addResizedImages: function (resizedImagesToAdd) {
451
+ for (var imageID in resizedImagesToAdd) {
452
+ this.resizedImages[imageID] = resizedImagesToAdd[imageID];
453
+ }
454
+ },
455
+ setImageHeight: function() {
456
+ var $self = $(this.el);
457
+
458
+ var sbi_photo_width = $self.find('.sbi_photo').eq(0).innerWidth();
459
+
460
+ //Figure out number of columns for either desktop or mobile
461
+ var sbi_num_cols = this.getColumnCount();
462
+
463
+ //Figure out what the width should be using the number of cols
464
+ //Figure out what the width should be using the number of cols
465
+ var imagesPadding = $self.find('#sbi_images').innerWidth() - $self.find('#sbi_images').width(),
466
+ imagepadding = imagesPadding / 2;
467
+ sbi_photo_width_manual = ( $self.find('#sbi_images').width() / sbi_num_cols ) - imagesPadding;
468
+ //If the width is less than it should be then set it manually
469
+ //if( sbi_photo_width <= (sbi_photo_width_manual) ) sbi_photo_width = sbi_photo_width_manual;
470
+
471
+ $self.find('.sbi_photo').css('height', sbi_photo_width);
472
+
473
+ //Set the position of the carousel arrows
474
+ if ($self.find('.sbi-owl-nav').length) {
475
+ setTimeout(function(){
476
+ //If there's 2 rows then adjust position
477
+ var sbi_ratio = 2;
478
+ if( $self.find('.sbi_owl2row-item').length ) sbi_ratio = 1;
479
+
480
+ var sbi_arrows_top = ($self.find('.sbi_photo').eq(0).innerWidth()/sbi_ratio);
481
+ sbi_arrows_top += parseInt(imagepadding)*(2+(2-sbi_ratio));
482
+ $self.find('.sbi-owl-nav div').css('top', sbi_arrows_top);
483
+ }, 100);
484
+ }
485
+
486
+ },
487
+ maybeRaiseSingleImageResolution: function ($item, index, forceChange) {
488
+ var feed = this,
489
+ imgSrcSet = feed.getImageUrls($item),
490
+ currentUrl = $item.find('.sbi_photo img').attr('src'),
491
+ currentRes = 150,
492
+ imagEl = $item.find('img').get(0),
493
+ aspectRatio = currentUrl === window.sbi.options.placeholder ? 1 : imagEl.naturalWidth/imagEl.naturalHeight,
494
+ forceChange = typeof forceChange !== 'undefined' ? forceChange : false;
495
+
496
+ $.each(imgSrcSet, function (index, value) {
497
+ if (value === currentUrl) {
498
+ currentRes = parseInt(index);
499
+ // If the image has already been changed to an existing real source, don't force the change
500
+ forceChange = false;
501
+ }
502
+ });
503
+ //Image res
504
+ var newRes = 640;
505
+ switch (feed.settings.imgRes) {
506
+ case 'thumb':
507
+ newRes = 150;
508
+ break;
509
+ case 'medium':
510
+ newRes = 320;
511
+ break;
512
+ case 'full':
513
+ newRes = 640;
514
+ break;
515
+ default:
516
+ var minImageWidth = Math.max(feed.settings.autoMinRes,$item.find('.sbi_photo').innerWidth()),
517
+ thisImageReplace = feed.getBestResolutionForAuto(minImageWidth, aspectRatio, $item);
518
+ switch (thisImageReplace) {
519
+ case 320:
520
+ newRes = 320;
521
+ break;
522
+ case 150:
523
+ newRes = 150;
524
+ break;
525
+ }
526
+ break;
527
+ }
528
+
529
+ if (newRes > currentRes || currentUrl === window.sbi.options.placeholder || forceChange) {
530
+ if (feed.settings.debugEnabled) {
531
+ var reason = currentUrl === window.sbi.options.placeholder ? 'was placeholder' : 'too small';
532
+ console.log('rais res for ' + currentUrl, reason);
533
+ }
534
+ var newUrl = imgSrcSet[newRes].split("?ig_cache_key")[0];
535
+ $item.find('.sbi_photo img').attr('src', newUrl);
536
+ $item.find('.sbi_photo').css('background-image', 'url("' + newUrl + '")');
537
+
538
+ var checked = false;
539
+ $item.find('.sbi_photo img').on('load', function () {
540
+
541
+ var $this_image = $(this);
542
+ var newAspectRatio = ($this_image.get(0).naturalWidth / $this_image.get(0).naturalHeight);
543
+
544
+ if ($this_image.get(0).naturalWidth !== 1000 && newAspectRatio > aspectRatio && !checked) {
545
+ if (feed.settings.debugEnabled) {
546
+ console.log('rais res again for aspect ratio change ' + currentUrl);
547
+ }
548
+ checked = true;
549
+ minImageWidth = $item.find('.sbi_photo').innerWidth();
550
+ thisImageReplace = feed.getBestResolutionForAuto(minImageWidth, newAspectRatio, $item);
551
+ newRes = 640;
552
+
553
+ switch (thisImageReplace) {
554
+ case 320:
555
+ newRes = 320;
556
+ break;
557
+ case 150:
558
+ newRes = 150;
559
+ break;
560
+ }
561
+
562
+ if (newRes > currentRes) {
563
+ newUrl = imgSrcSet[newRes].split("?ig_cache_key")[0];
564
+ $this_image.attr('src', newUrl);
565
+ $this_image.closest('.sbi_photo').css('background-image', 'url("' + newUrl + '")');
566
+ }
567
+ if (feed.layout === 'masonry' || feed.layout === 'highlight') {
568
+ $(feed.el).find('#sbi_images').smashotope(feed.isotopeArgs);
569
+ setTimeout(function() {
570
+ $(feed.el).find('#sbi_images').smashotope(feed.isotopeArgs);
571
+ },500)
572
+ }
573
+ } else {
574
+ if (feed.settings.debugEnabled) {
575
+ var reason = checked ? 'already checked' : 'no aspect ratio change';
576
+ console.log('not raising res for replacement ' + currentUrl, reason);
577
+ }
578
+ }
579
+ });
580
+
581
+ }
582
+
583
+ $item.find('img').on('error', function () {
584
+ if (!$(this).hasClass('sbi_img_error')) {
585
+ $(this).addClass('sbi_img_error');
586
+ var sourceFromAPI = ($(this).attr('src').indexOf('media?size=') > -1 || $(this).attr('src').indexOf('cdninstagram') > -1 || $(this).attr('src').indexOf('fbcdn') > -1)
587
+
588
+ if (!sourceFromAPI) {
589
+ if (typeof $(this).closest('.sbi_photo').attr('data-full-res') !== 'undefined') {
590
+ $(this).attr('src', $(this).closest('.sbi_photo').attr('data-full-res'));
591
+ $(this).closest('.sbi_photo').css('background-image', 'url(' + $(this).closest('.sbi_photo').attr('data-full-res') + ')');
592
+ } else if ($(this).closest('.sbi_photo').attr('href') !== 'undefined') {
593
+ $(this).attr('src', $(this).closest('.sbi_photo').attr('href') + 'media?size=l');
594
+ $(this).closest('.sbi_photo').css('background-image', 'url(' + $(this).closest('.sbi_photo').attr('href') + 'media?size=l)');
595
+ }
596
+ } else {
597
+ feed.settings.favorLocal = true;
598
+ var srcSet = feed.getImageUrls($(this).closest('.sbi_item'));
599
+ if (typeof srcSet[640] !== 'undefined') {
600
+ $(this).attr('src', srcSet[640]);
601
+ $(this).closest('.sbi_photo').css('background-image', 'url(' + srcSet[640] + ')');
602
+ }
603
+ }
604
+ setTimeout(function() {
605
+ feed.afterResize();
606
+ }, 1500)
607
+ } else {
608
+ console.log('unfixed error ' + $(this).attr('src'));
609
+ }
610
+ });
611
+ },
612
+ maybeRaiseImageResolution: function (justNew) {
613
+ var feed = this,
614
+ itemsSelector = typeof justNew !== 'undefined' && justNew === true ? '.sbi_item.sbi_new' : '.sbi_item',
615
+ forceChange = !feed.isInitialized ? true : false;
616
+ $(feed.el).find(itemsSelector).each(function (index) {
617
+ if (!$(this).hasClass('sbi_num_diff_hide')
618
+ && $(this).find('.sbi_photo').length
619
+ && typeof $(this).find('.sbi_photo').attr('data-img-src-set') !== 'undefined') {
620
+ feed.maybeRaiseSingleImageResolution($(this),index,forceChange);
621
+ }
622
+ }); //End .sbi_item each
623
+ feed.isInitialized = true;
624
+ },
625
+ getBestResolutionForAuto: function(colWidth, aspectRatio, $item) {
626
+ if (isNaN(aspectRatio) || aspectRatio < 1) {
627
+ aspectRatio = 1;
628
+ }
629
+ var bestWidth = colWidth * aspectRatio,
630
+ bestWidthRounded = Math.ceil(bestWidth / 10) * 10,
631
+ customSizes = [150, 320, 640];
632
+
633
+ if ($item.hasClass('sbi_highlighted')) {
634
+ bestWidthRounded = bestWidthRounded *2;
635
+ }
636
+
637
+ if (customSizes.indexOf(parseInt(bestWidthRounded)) === -1) {
638
+ var done = false;
639
+ $.each(customSizes, function (index, item) {
640
+ if (item > parseInt(bestWidthRounded) && !done) {
641
+ bestWidthRounded = item;
642
+
643
+ done = true;
644
+ }
645
+ });
646
+ }
647
+
648
+ return bestWidthRounded;
649
+ },
650
+ hideExtraImagesForWidth: function() {
651
+ if (this.layout === 'carousel') {
652
+ return;
653
+ }
654
+ var $self = $(this.el),
655
+ num = typeof $self.attr('data-num') !== 'undefined' && $self.attr('data-num') !== '' ? parseInt($self.attr('data-num')) : 1,
656
+ nummobile = typeof $self.attr('data-nummobile') !== 'undefined' && $self.attr('data-nummobile') !== '' ? parseInt($self.attr('data-nummobile')) : num;
657
+
658
+ if ($(window).width() < 480) {
659
+ if (nummobile < $self.find('.sbi_item').length) {
660
+ $self.find('.sbi_item').slice(nummobile - $self.find('.sbi_item').length).addClass('sbi_num_diff_hide');
661
+ }
662
+ } else {
663
+ if (num < $self.find('.sbi_item').length) {
664
+ $self.find('.sbi_item').slice(num - $self.find('.sbi_item').length).addClass('sbi_num_diff_hide');
665
+ }
666
+ }
667
+ },
668
+ setImageSizeClass: function () {
669
+ var $self = $(this.el);
670
+ $self.removeClass('sbi_small sbi_medium');
671
+ var feedWidth = $self.innerWidth(),
672
+ photoPadding = parseInt(($self.find('#sbi_images').outerWidth() - $self.find('#sbi_images').width())) / 2,
673
+ cols = this.getColumnCount(),
674
+ feedWidthSansPadding = feedWidth - (photoPadding * (cols+2)),
675
+ colWidth = (feedWidthSansPadding / cols);
676
+ if (colWidth > 120 && colWidth < 240) {
677
+ $self.addClass('sbi_medium');
678
+ } else if (colWidth <= 120) {
679
+ $self.addClass('sbi_small');
680
+ }
681
+ },
682
+ setMinImageWidth: function () {
683
+ if ($(this.el).find('.sbi_item .sbi_photo').first().length) {
684
+ this.minImageWidth = $(this.el).find('.sbi_item .sbi_photo').first().innerWidth();
685
+ } else {
686
+ this.minImageWidth = 150;
687
+ }
688
+ },
689
+ setImageResolution: function () {
690
+ if (this.settings.imgRes === 'auto') {
691
+ this.imageResolution = 'auto';
692
+ } else {
693
+ switch (this.settings.imgRes) {
694
+ case 'thumb':
695
+ this.imageResolution = 150;
696
+ break;
697
+ case 'medium':
698
+ this.imageResolution = 320;
699
+ break;
700
+ default:
701
+ this.imageResolution = 640;
702
+ }
703
+ }
704
+ },
705
+ getImageUrls: function ($item) {
706
+ var srcSet = JSON.parse($item.find('.sbi_photo').attr('data-img-src-set').replace(/\\\//g, '/')),
707
+ id = $item.attr('id').replace('sbi_', '');
708
+ if (typeof this.resizedImages[id] !== 'undefined'
709
+ && this.resizedImages[id] !== 'video'
710
+ && this.resizedImages[id] !== 'pending'
711
+ && this.resizedImages[id].id !== 'error'
712
+ && this.resizedImages[id].id !== 'video'
713
+ && this.resizedImages[id].id !== 'pending') {
714
+ if (typeof this.resizedImages[id]['sizes'] !== 'undefined') {
715
+ var foundSizes = [];
716
+ if (typeof this.resizedImages[id]['sizes']['full'] !== 'undefined') {
717
+ foundSizes.push(640);
718
+ srcSet[640] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg';
719
+ $item.find('.sbi_link_area').attr( 'href', sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg' );
720
+ $item.find('.sbi_photo').attr( 'data-full-res', sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg' );
721
+ }
722
+ if (typeof this.resizedImages[id]['sizes']['low'] !== 'undefined') {
723
+ foundSizes.push(320);
724
+ srcSet[320] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg';
725
+ if (this.settings.favorLocal && typeof this.resizedImages[id]['sizes']['full'] === 'undefined') {
726
+ $item.find('.sbi_link_area').attr( 'href', sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg' );
727
+ $item.find('.sbi_photo').attr( 'data-full-res', sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg' );
728
+ }
729
+ }
730
+ if (typeof this.resizedImages[id]['sizes']['thumb'] !== 'undefined') {
731
+ foundSizes.push(150);
732
+ srcSet[150] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'thumb.jpg';
733
+ }
734
+ if (this.settings.favorLocal) {
735
+ if (foundSizes.indexOf(640) === -1) {
736
+ if (foundSizes.indexOf(320) > -1) {
737
+ srcSet[640] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg';
738
+ }
739
+ }
740
+ if (foundSizes.indexOf(320) === -1) {
741
+ if (foundSizes.indexOf(640) > -1) {
742
+ srcSet[320] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg';
743
+ } else if (foundSizes.indexOf(150) > -1) {
744
+ srcSet[320] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'thumb.jpg';
745
+ }
746
+ }
747
+ if (foundSizes.indexOf(150) === -1) {
748
+ if (foundSizes.indexOf(320) > -1) {
749
+ srcSet[150] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'low.jpg';
750
+ } else if (foundSizes.indexOf(640) > -1) {
751
+ srcSet[150] = sb_instagram_js_options.resized_url + this.resizedImages[id].id + 'full.jpg';
752
+ }
753
+ }
754
+ }
755
+ }
756
+ } else if (typeof this.resizedImages[id] === 'undefined'
757
+ || this.resizedImages[id] !== 'pending') {
758
+ this.addToNeedsResizing(id);
759
+ }
760
+
761
+ return srcSet;
762
+ },
763
+ getAvatarUrl: function (username,favorType) {
764
+ if (username === '') {
765
+ return '';
766
+ }
767
+
768
+ var availableAvatars = this.settings.general.avatars,
769
+ favorType = typeof favorType !== 'undefined' ? favorType : 'local';
770
+
771
+ if (favorType === 'local') {
772
+ if (typeof availableAvatars['LCL'+username] !== 'undefined' && parseInt(availableAvatars['LCL'+username]) === 1) {
773
+ return sb_instagram_js_options.resized_url + username + '.jpg';
774
+ } else if (typeof availableAvatars[username] !== 'undefined') {
775
+ return availableAvatars[username];
776
+ } else {
777
+ return '';
778
+ }
779
+ } else {
780
+ if (typeof availableAvatars[username] !== 'undefined') {
781
+ return availableAvatars[username];
782
+ } else if (typeof availableAvatars['LCL'+username] !== 'undefined' && parseInt(availableAvatars['LCL'+username]) === 1) {
783
+ return sb_instagram_js_options.resized_url + username + '.jpg';
784
+ } else {
785
+ return '';
786
+ }
787
+ }
788
+ },
789
+ addToNeedsResizing: function (id) {
790
+ if (this.needsResizing.indexOf(id) === -1) {
791
+ this.needsResizing.push(id);
792
+ }
793
+ },
794
+ applyImageLiquid: function () {
795
+ var $self = $(this.el),
796
+ feed = this;
797
+ sbiAddImgLiquid();
798
+ if (typeof $self.find(".sbi_photo").sbi_imgLiquid == 'function') {
799
+ $self.find(".sbi_photo").sbi_imgLiquid({fill: true});
800
+ }
801
+ },
802
+ listenForVisibilityChange: function() {
803
+ var feed = this;
804
+ sbiAddVisibilityListener();
805
+ if (typeof $(this.el).filter(':hidden').sbiVisibilityChanged == 'function') {
806
+ //If the feed is initially hidden (in a tab for example) then check for when it becomes visible and set then set the height
807
+ $(this.el).filter(':hidden').sbiVisibilityChanged({
808
+ callback: function (element, visible) {
809
+ feed.afterResize();
810
+ },
811
+ runOnLoad: false
812
+ });
813
+ }
814
+ },
815
+ getColumnCount: function() {
816
+ var $self = $(this.el),
817
+ cols = this.settings.cols,
818
+ colsmobile = this.settings.colsmobile,
819
+ returnCols = cols;
820
+
821
+ sbiWindowWidth = window.innerWidth;
822
+
823
+ if ($self.hasClass('sbi_mob_col_auto')) {
824
+ if (sbiWindowWidth < 640 && (parseInt(cols) > 2 && parseInt(cols) < 7)) returnCols = 2;
825
+ if (sbiWindowWidth < 640 && (parseInt(cols) > 6 && parseInt(cols) < 11)) returnCols = 4;
826
+ if (sbiWindowWidth <= 480 && parseInt(cols) > 2) returnCols = 1;
827
+ } else if (sbiWindowWidth <= 480) {
828
+ returnCols = colsmobile;
829
+ }
830
+
831
+ return parseInt(returnCols);
832
+ }
833
+ };
834
+
835
+ window.sbi_init = function() {
836
+ window.sbi = new Sbi();
837
+ window.sbi.createPage( window.sbi.createFeeds, {whenFeedsCreated: window.sbi.afterFeedsCreated});
838
+ };
839
+
840
+ function sbiGetNewFeed(feed,index,feedOptions) {
841
+ return new SbiFeed(feed,index,feedOptions);
842
+ }
843
+
844
+ function sbiAjax(submitData,onSuccess) {
845
+ $.ajax({
846
+ url: sbiajaxurl,
847
+ type: 'post',
848
+ data: submitData,
849
+ success: onSuccess
850
+ });
851
+ }
852
+
853
+ })(jQuery);
854
+
855
+ jQuery(document).ready(function($) {
856
+ if (typeof window.sb_instagram_js_options.resized_url !== 'undefined' && window.sb_instagram_js_options.resized_url.indexOf(location.protocol) === -1) {
857
+ if (location.protocol === 'http:') {
858
+ window.sb_instagram_js_options.resized_url = window.sb_instagram_js_options.resized_url.replace('http:','https:');
859
+ } else {
860
+ window.sb_instagram_js_options.resized_url = window.sb_instagram_js_options.resized_url.replace('https:','http:');
861
+ }
862
+ }
863
+ sbi_init();
864
+ });
865
+
866
+ } // if sbi_js_exists
languages/instagram-feed.pot CHANGED
@@ -1,7 +1,8 @@
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: \n"
4
- "POT-Creation-Date: 2017-11-27 11:57-0600\n"
5
  "PO-Revision-Date: 2017-11-27 11:57-0600\n"
6
  "Last-Translator: \n"
7
  "Language-Team: \n"
@@ -9,248 +10,502 @@ msgstr ""
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.0.3\n"
13
  "X-Poedit-Basepath: ..\n"
14
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
  "X-Poedit-KeywordsList: __;_e;esc_attr_e\n"
16
  "X-Poedit-SearchPath-0: .\n"
17
 
18
- #: instagram-feed-admin.php:6 instagram-feed-admin.php:7
19
- #: instagram-feed-admin.php:231
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  msgid "Instagram Feed"
21
  msgstr ""
22
 
23
- #: instagram-feed-admin.php:14 instagram-feed-admin.php:15
24
- #: instagram-feed-admin.php:1616
25
- msgid "Settings"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  msgstr ""
27
 
28
- #: instagram-feed-admin.php:51
29
  msgid "Load More..."
30
  msgstr ""
31
 
32
- #: instagram-feed-admin.php:60
33
  msgid "Follow on Instagram"
34
  msgstr ""
35
 
36
- #: instagram-feed-admin.php:222
37
  msgid "Settings saved."
38
  msgstr ""
39
 
40
- #: instagram-feed-admin.php:240
41
  msgid "1. Configure"
42
  msgstr ""
43
 
44
- #: instagram-feed-admin.php:241
45
  msgid "2. Customize"
46
  msgstr ""
47
 
48
- #: instagram-feed-admin.php:242
49
  msgid "3. Display Your Feed"
50
  msgstr ""
51
 
52
- #: instagram-feed-admin.php:243
53
  msgid "Support"
54
  msgstr ""
55
 
56
- #: instagram-feed-admin.php:251
57
  msgid "Configure"
58
  msgstr ""
59
 
60
- #: instagram-feed-admin.php:254 instagram-feed-admin.php:255
61
- msgid "Log in and get my Access Token and User ID"
62
  msgstr ""
63
 
64
- #: instagram-feed-admin.php:256
65
  msgid "Button not working?"
66
  msgstr ""
67
 
68
- #: instagram-feed-admin.php:260
69
- msgid "Access Token"
70
  msgstr ""
71
 
72
- #: instagram-feed-admin.php:263 instagram-feed-admin.php:278
73
- #: instagram-feed-admin.php:290 instagram-feed-admin.php:298
74
- #: instagram-feed-admin.php:306 instagram-feed-admin.php:314
75
- #: instagram-feed-admin.php:621 instagram-feed-admin.php:748
76
- #: instagram-feed-admin.php:849 instagram-feed-admin.php:858
77
- #: instagram-feed-admin.php:965 instagram-feed-admin.php:982
78
- #: instagram-feed-admin.php:1019 instagram-feed-admin.php:1031
79
- msgid "What is this?"
80
  msgstr ""
81
 
82
- #: instagram-feed-admin.php:264
83
  msgid ""
84
- "In order to display your photos you need an Access Token from Instagram. To "
85
- "get yours, simply click the button above and log into Instagram. You can "
86
- "also use the button on <a href='https://smashballoon.com/instagram-feed/"
87
- "token/' target='_blank'>this page</a>."
88
  msgstr ""
89
 
90
- #: instagram-feed-admin.php:269
91
- msgid "Show Photos From:"
 
 
92
  msgstr ""
93
 
94
- #: instagram-feed-admin.php:276
95
- msgid "User ID(s):"
96
  msgstr ""
97
 
98
- #: instagram-feed-admin.php:279
99
- msgid ""
100
- "These are the IDs of the Instagram accounts you want to display photos from. "
101
- "To get your ID simply click on the button above and log into Instagram.<br /"
102
- "><br />You can also display photos from other peoples Instagram accounts. To "
103
- "find their User ID you can use <a href='https://smashballoon.com/instagram-"
104
- "feed/find-instagram-user-id/' target='_blank'>this tool</a>. You can "
105
- "separate multiple IDs using commas."
 
 
 
 
 
 
106
  msgstr ""
107
 
108
- #: instagram-feed-admin.php:283
 
 
 
 
109
  msgid ""
110
- "<p>Please be sure to enter your numeric <b>User ID</b> and not your "
111
- "Username. You can find your User ID by clicking the blue Instagram Login "
112
- "button above, or by entering your username into <a href='https://"
113
- "smashballoon.com/instagram-feed/find-instagram-user-id/' "
114
- "target='_blank'>this tool</a>.</p>"
115
  msgstr ""
116
 
117
- #: instagram-feed-admin.php:288
118
- msgid "Hashtag:"
 
119
  msgstr ""
120
 
121
- #: instagram-feed-admin.php:291
122
- msgid "Display posts from a specific hashtag instead of from a user"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  msgstr ""
124
 
125
- #: instagram-feed-admin.php:296
126
- msgid "Liked:"
127
  msgstr ""
128
 
129
- #: instagram-feed-admin.php:299
130
- msgid "Display posts that your user account has liked."
131
  msgstr ""
132
 
133
- #: instagram-feed-admin.php:304
134
- msgid "Single:"
 
 
 
 
 
 
 
 
135
  msgstr ""
136
 
137
- #: instagram-feed-admin.php:307
138
- msgid "Display a feed comprised of specific single posts."
139
  msgstr ""
140
 
141
- #: instagram-feed-admin.php:312
142
- msgid "Location:"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  msgstr ""
144
 
145
- #: instagram-feed-admin.php:315
146
- msgid "Display posts from an Instagram location ID or location coordinates."
147
  msgstr ""
148
 
149
- #: instagram-feed-admin.php:318
150
- msgid "Separate multiple IDs using commas"
151
  msgstr ""
152
 
153
- #: instagram-feed-admin.php:324
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
  msgid "Preserve settings when plugin is removed"
155
  msgstr ""
156
 
157
- #: instagram-feed-admin.php:327 instagram-feed-admin.php:337
158
- #: instagram-feed-admin.php:1074
159
  msgid "Yes"
160
  msgstr ""
161
 
162
- #: instagram-feed-admin.php:328 instagram-feed-admin.php:338
163
- #: instagram-feed-admin.php:388 instagram-feed-admin.php:462
 
 
 
164
  msgid "What does this mean?"
165
  msgstr ""
166
 
167
- #: instagram-feed-admin.php:329
168
  msgid ""
169
  "When removing the plugin your settings are automatically erased. Checking "
170
  "this box will prevent any settings from being deleted. This means that you "
171
  "can uninstall and reinstall the plugin without losing your settings."
172
  msgstr ""
173
 
174
- #: instagram-feed-admin.php:334
175
- msgid "Are you using an Ajax powered theme?"
176
  msgstr ""
177
 
178
- #: instagram-feed-admin.php:339
 
 
 
 
179
  msgid ""
180
- "When navigating your site, if your theme uses Ajax to load content into your "
181
- "pages (meaning your page doesn't refresh) then check this setting. If you're "
182
- "not sure then please check with the theme author."
183
  msgstr ""
184
 
185
- #: instagram-feed-admin.php:348
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  msgid ""
187
  "Next Step: <a href=\"?page=sb-instagram-feed&tab=customize\">Customize your "
188
  "Feed</a>"
189
  msgstr ""
190
 
191
- #: instagram-feed-admin.php:350 instagram-feed-admin.php:1086
192
- #: instagram-feed-admin.php:1374
193
  msgid ""
194
  "Need help setting up the plugin? Check out our <a href=\"https://"
195
- "smashballoon.com/instagram-feed/free/\" target=\"_blank\">setup directions</"
196
- "a>"
197
  msgstr ""
198
 
199
- #: instagram-feed-admin.php:360
200
  msgid "Quick links:"
201
  msgstr ""
202
 
203
- #: instagram-feed-admin.php:361 instagram-feed-admin.php:373
204
  msgid "General"
205
  msgstr ""
206
 
207
- #: instagram-feed-admin.php:362 instagram-feed-admin.php:415
208
  msgid "Layout"
209
  msgstr ""
210
 
211
- #: instagram-feed-admin.php:363 instagram-feed-admin.php:472
212
  msgid "Photos"
213
  msgstr ""
214
 
215
- #: instagram-feed-admin.php:364 instagram-feed-admin.php:656
216
  msgid "Header"
217
  msgstr ""
218
 
219
- #: instagram-feed-admin.php:365 instagram-feed-admin.php:869
220
  msgid "'Load More' Button"
221
  msgstr ""
222
 
223
- #: instagram-feed-admin.php:366 instagram-feed-admin.php:906
224
  msgid "'Follow' Button"
225
  msgstr ""
226
 
227
- #: instagram-feed-admin.php:367
228
  msgid "Custom CSS"
229
  msgstr ""
230
 
231
- #: instagram-feed-admin.php:368
232
  msgid "Custom JavaScript"
233
  msgstr ""
234
 
235
- #: instagram-feed-admin.php:378
236
  msgid "Width of Feed"
237
  msgstr ""
238
 
239
- #: instagram-feed-admin.php:383 instagram-feed-admin.php:399
240
- #: instagram-feed-admin.php:452
241
  msgid "px"
242
  msgstr ""
243
 
244
- #: instagram-feed-admin.php:384 instagram-feed-admin.php:400
245
- #: instagram-feed-admin.php:453
246
  msgid "%"
247
  msgstr ""
248
 
249
- #: instagram-feed-admin.php:387
250
  msgid "Set to be 100% width on mobile?"
251
  msgstr ""
252
 
253
- #: instagram-feed-admin.php:389
254
  #, php-format
255
  msgid ""
256
  "If you set a width on the feed then this will be used on mobile as well as "
@@ -258,460 +513,575 @@ msgid ""
258
  "that it is responsive."
259
  msgstr ""
260
 
261
- #: instagram-feed-admin.php:394
262
  msgid "Height of Feed"
263
  msgstr ""
264
 
265
- #: instagram-feed-admin.php:405
266
  msgid "Background Color"
267
  msgstr ""
268
 
269
- #: instagram-feed-admin.php:420
270
- msgid "Number of Photos"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
271
  msgstr ""
272
 
273
- #: instagram-feed-admin.php:424
274
- msgid "Number of photos to show initially. Maximum of 33."
275
  msgstr ""
276
 
277
- #: instagram-feed-admin.php:425
278
- msgid "Using multiple IDs or hashtags?"
279
  msgstr ""
280
 
281
- #: instagram-feed-admin.php:426
282
  msgid ""
283
- "If you're displaying photos from multiple User IDs or hashtags then this is "
284
- "the number of photos which will be displayed from each."
 
 
 
 
 
 
 
 
 
 
 
 
285
  msgstr ""
286
 
287
- #: instagram-feed-admin.php:430
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  msgid "Number of Columns"
289
  msgstr ""
290
 
291
- #: instagram-feed-admin.php:434
292
  msgid "1"
293
  msgstr ""
294
 
295
- #: instagram-feed-admin.php:435
296
  msgid "2"
297
  msgstr ""
298
 
299
- #: instagram-feed-admin.php:436
300
  msgid "3"
301
  msgstr ""
302
 
303
- #: instagram-feed-admin.php:437
304
  msgid "4"
305
  msgstr ""
306
 
307
- #: instagram-feed-admin.php:438
308
  msgid "5"
309
  msgstr ""
310
 
311
- #: instagram-feed-admin.php:439
312
  msgid "6"
313
  msgstr ""
314
 
315
- #: instagram-feed-admin.php:440
316
  msgid "7"
317
  msgstr ""
318
 
319
- #: instagram-feed-admin.php:441
320
  msgid "8"
321
  msgstr ""
322
 
323
- #: instagram-feed-admin.php:442
324
  msgid "9"
325
  msgstr ""
326
 
327
- #: instagram-feed-admin.php:443
328
  msgid "10"
329
  msgstr ""
330
 
331
- #: instagram-feed-admin.php:448
332
  msgid "Padding around Images"
333
  msgstr ""
334
 
335
- #: instagram-feed-admin.php:458
336
  msgid "Disable mobile layout"
337
  msgstr ""
338
 
339
- #: instagram-feed-admin.php:463
340
  msgid ""
341
  "By default on mobile devices the layout automatically changes to use fewer "
342
  "columns. Checking this setting disables the mobile layout."
343
  msgstr ""
344
 
345
- #: instagram-feed-admin.php:477
346
  msgid "Sort Photos By"
347
  msgstr ""
348
 
349
- #: instagram-feed-admin.php:481
350
  msgid "Newest to oldest"
351
  msgstr ""
352
 
353
- #: instagram-feed-admin.php:482
354
  msgid "Random"
355
  msgstr ""
356
 
357
- #: instagram-feed-admin.php:487
358
  msgid "Image Resolution"
359
  msgstr ""
360
 
361
- #: instagram-feed-admin.php:492
362
  msgid "Auto-detect (recommended)"
363
  msgstr ""
364
 
365
- #: instagram-feed-admin.php:493
366
  msgid "Thumbnail (150x150)"
367
  msgstr ""
368
 
369
- #: instagram-feed-admin.php:494
370
  msgid "Medium (306x306)"
371
  msgstr ""
372
 
373
- #: instagram-feed-admin.php:495
374
  msgid "Full size (640x640)"
375
  msgstr ""
376
 
377
- #: instagram-feed-admin.php:498
378
  msgid "What does Auto-detect mean?"
379
  msgstr ""
380
 
381
- #: instagram-feed-admin.php:499
382
  msgid ""
383
  "Auto-detect means that the plugin automatically sets the image resolution "
384
  "based on the size of your feed."
385
  msgstr ""
386
 
387
- #: instagram-feed-admin.php:510 instagram-feed-admin.php:689
 
 
 
 
 
 
388
  msgid "Upgrade to Pro to enable these settings"
389
  msgstr ""
390
 
391
- #: instagram-feed-admin.php:515
392
  msgid "Media Type to Display"
393
  msgstr ""
394
 
395
- #: instagram-feed-admin.php:518
396
  msgid "All"
397
  msgstr ""
398
 
399
- #: instagram-feed-admin.php:519
400
  msgid "Photos only"
401
  msgstr ""
402
 
403
- #: instagram-feed-admin.php:520
404
  msgid "Videos only"
405
  msgstr ""
406
 
407
- #: instagram-feed-admin.php:526
408
  msgid "Enable Pop-up Lightbox"
409
  msgstr ""
410
 
411
- #: instagram-feed-admin.php:533
412
  msgid "Link Posts to URL in Caption (Shoppable feed)"
413
  msgstr ""
414
 
415
- #: instagram-feed-admin.php:536
416
  msgid "What will this do?"
417
  msgstr ""
418
 
419
- #: instagram-feed-admin.php:537
420
  msgid ""
421
  "Checking this box will change the link for each post to any url included in "
422
  "the caption for that Instagram post. The lightbox will be disabled. Visit <a "
423
- "href='https://smashballoon.com/make-a-shoppable-feed'>this link</a> to learn "
424
- "how this works."
425
  msgstr ""
426
 
427
- #: instagram-feed-admin.php:546
428
  msgid "Photo Hover Style"
429
  msgstr ""
430
 
431
- #: instagram-feed-admin.php:557
 
 
 
 
432
  msgid "Hover Background Color"
433
  msgstr ""
434
 
435
- #: instagram-feed-admin.php:563
436
  msgid "Hover Text Color"
437
  msgstr ""
438
 
439
- #: instagram-feed-admin.php:569
440
  msgid "Information to display"
441
  msgstr ""
442
 
443
- #: instagram-feed-admin.php:573
444
  msgid "Username"
445
  msgstr ""
446
 
447
- #: instagram-feed-admin.php:577
448
  msgid "Expand Icon"
449
  msgstr ""
450
 
451
- #: instagram-feed-admin.php:581
452
  msgid "Date"
453
  msgstr ""
454
 
455
- #: instagram-feed-admin.php:585
456
  msgid "Instagram Icon/Link"
457
  msgstr ""
458
 
459
- #: instagram-feed-admin.php:589
460
  msgid "Location"
461
  msgstr ""
462
 
463
- #: instagram-feed-admin.php:593 instagram-feed-admin.php:729
464
  msgid "Caption"
465
  msgstr ""
466
 
467
- #: instagram-feed-admin.php:597
468
  msgid "Like/Comment Icons"
469
  msgstr ""
470
 
471
- #: instagram-feed-admin.php:608
472
- msgid "Carousel"
473
  msgstr ""
474
 
475
- #: instagram-feed-admin.php:618
476
  msgid "Enable Carousel"
477
  msgstr ""
478
 
479
- #: instagram-feed-admin.php:622
480
  msgid "Enable this setting to create a carousel slider out of your photos."
481
  msgstr ""
482
 
483
- #: instagram-feed-admin.php:626
484
- msgid "Show Navigation Arrows"
485
  msgstr ""
486
 
487
- #: instagram-feed-admin.php:632
488
- msgid "Show Pagination"
489
  msgstr ""
490
 
491
- #: instagram-feed-admin.php:638
492
- msgid "Enable Autoplay"
493
  msgstr ""
494
 
495
- #: instagram-feed-admin.php:644
496
- msgid "Interval Time"
497
  msgstr ""
498
 
499
- #: instagram-feed-admin.php:646
500
- msgid "miliseconds"
501
  msgstr ""
502
 
503
- #: instagram-feed-admin.php:660
504
- msgid "Show the Header"
505
  msgstr ""
506
 
507
- #: instagram-feed-admin.php:667
508
  msgid "Show Bio Text"
509
  msgstr ""
510
 
511
- #: instagram-feed-admin.php:672
512
- msgid "This only applies for User IDs with bios"
513
  msgstr ""
514
 
515
- #: instagram-feed-admin.php:676
516
  msgid "Header Text Color"
517
  msgstr ""
518
 
519
- #: instagram-feed-admin.php:694
520
  msgid "Header Style"
521
  msgstr ""
522
 
523
- #: instagram-feed-admin.php:697
524
- msgid "Circle"
525
  msgstr ""
526
 
527
- #: instagram-feed-admin.php:698
528
  msgid "Boxed"
529
  msgstr ""
530
 
531
- #: instagram-feed-admin.php:703
532
- msgid "Primary Color"
533
- msgstr ""
534
-
535
- #: instagram-feed-admin.php:707
536
- msgid "Secondary Color"
537
  msgstr ""
538
 
539
- #: instagram-feed-admin.php:715
540
  msgid "Show Number of Followers"
541
  msgstr ""
542
 
543
- #: instagram-feed-admin.php:718
544
  msgid "This only applies when displaying photos from a User ID"
545
  msgstr ""
546
 
547
- #: instagram-feed-admin.php:739
 
 
 
 
548
  msgid "Show Caption"
549
  msgstr ""
550
 
551
- #: instagram-feed-admin.php:745
552
  msgid "Maximum Text Length"
553
  msgstr ""
554
 
555
- #: instagram-feed-admin.php:749
556
  msgid ""
557
  "The number of characters of text to display in the caption. An elipsis link "
558
  "will be added to allow the user to reveal more text if desired."
559
  msgstr ""
560
 
561
- #: instagram-feed-admin.php:753
562
  msgid "Text Color"
563
  msgstr ""
564
 
565
- #: instagram-feed-admin.php:759
566
  msgid "Text Size"
567
  msgstr ""
568
 
569
- #: instagram-feed-admin.php:762 instagram-feed-admin.php:810
570
  msgid "Inherit from theme"
571
  msgstr ""
572
 
573
- #: instagram-feed-admin.php:763 instagram-feed-admin.php:811
574
- msgid "10px"
575
- msgstr ""
576
-
577
- #: instagram-feed-admin.php:764 instagram-feed-admin.php:812
578
- msgid "11px"
579
- msgstr ""
580
-
581
- #: instagram-feed-admin.php:765 instagram-feed-admin.php:813
582
- msgid "12px"
583
- msgstr ""
584
-
585
- #: instagram-feed-admin.php:766 instagram-feed-admin.php:814
586
- msgid "13px"
587
- msgstr ""
588
-
589
- #: instagram-feed-admin.php:767 instagram-feed-admin.php:815
590
- msgid "14px"
591
- msgstr ""
592
-
593
- #: instagram-feed-admin.php:768 instagram-feed-admin.php:816
594
- msgid "16px"
595
- msgstr ""
596
-
597
- #: instagram-feed-admin.php:769 instagram-feed-admin.php:817
598
- msgid "18px"
599
- msgstr ""
600
-
601
- #: instagram-feed-admin.php:770 instagram-feed-admin.php:818
602
- msgid "20px"
603
- msgstr ""
604
-
605
- #: instagram-feed-admin.php:771 instagram-feed-admin.php:819
606
- msgid "24px"
607
- msgstr ""
608
-
609
- #: instagram-feed-admin.php:772 instagram-feed-admin.php:820
610
- msgid "28px"
611
- msgstr ""
612
-
613
- #: instagram-feed-admin.php:773 instagram-feed-admin.php:821
614
- msgid "32px"
615
- msgstr ""
616
-
617
- #: instagram-feed-admin.php:774 instagram-feed-admin.php:822
618
- msgid "36px"
619
- msgstr ""
620
-
621
- #: instagram-feed-admin.php:775 instagram-feed-admin.php:823
622
- msgid "40px"
623
  msgstr ""
624
 
625
- #: instagram-feed-admin.php:785
626
- msgid "Likes &amp; Comments"
627
  msgstr ""
628
 
629
- #: instagram-feed-admin.php:795
630
  msgid "Show Icons"
631
  msgstr ""
632
 
633
- #: instagram-feed-admin.php:801
634
  msgid "Icon Color"
635
  msgstr ""
636
 
637
- #: instagram-feed-admin.php:807
638
  msgid "Icon Size"
639
  msgstr ""
640
 
641
- #: instagram-feed-admin.php:833
642
  msgid "Lightbox Comments"
643
  msgstr ""
644
 
645
- #: instagram-feed-admin.php:845
646
- msgid "Show Comments in Lightbox"
647
  msgstr ""
648
 
649
- #: instagram-feed-admin.php:848
650
- msgid "Clear Comment Cache"
651
  msgstr ""
652
 
653
- #: instagram-feed-admin.php:850
654
  msgid "This will remove the cached comments saved in the database"
655
  msgstr ""
656
 
657
- #: instagram-feed-admin.php:854
658
  msgid "Number of Comments"
659
  msgstr ""
660
 
661
- #: instagram-feed-admin.php:857
662
  msgid "Max number of latest comments."
663
  msgstr ""
664
 
665
- #: instagram-feed-admin.php:859
666
  msgid ""
667
  "This is the maximum number of comments that will be shown in the lightbox. "
668
  "If there are more comments available than the number set, only the latest "
669
  "comments will be shown"
670
  msgstr ""
671
 
672
- #: instagram-feed-admin.php:873
673
  msgid "Show the 'Load More' button"
674
  msgstr ""
675
 
676
- #: instagram-feed-admin.php:880 instagram-feed-admin.php:918
677
  msgid "Button Background Color"
678
  msgstr ""
679
 
680
- #: instagram-feed-admin.php:887 instagram-feed-admin.php:925
681
  msgid "Button Text Color"
682
  msgstr ""
683
 
684
- #: instagram-feed-admin.php:894 instagram-feed-admin.php:932
685
  msgid "Button Text"
686
  msgstr ""
687
 
688
- #: instagram-feed-admin.php:910
689
  msgid "Show the Follow button"
690
  msgstr ""
691
 
692
- #: instagram-feed-admin.php:942
693
  msgid "Post Filtering"
694
  msgstr ""
695
 
696
- #: instagram-feed-admin.php:954
 
 
 
 
697
  msgid "Remove photos containing these words or hashtags"
698
  msgstr ""
699
 
700
- #: instagram-feed-admin.php:964 instagram-feed-admin.php:981
 
 
 
 
 
 
 
 
 
 
 
 
701
  msgid "Separate words/hashtags using commas"
702
  msgstr ""
703
 
704
- #: instagram-feed-admin.php:966
705
  msgid ""
706
  "You can use this setting to remove photos which contain certain words or "
707
  "hashtags in the caption. Separate multiple words or hashtags using commas."
708
  msgstr ""
709
 
710
- #: instagram-feed-admin.php:971
711
  msgid "Show photos containing these words or hashtags"
712
  msgstr ""
713
 
714
- #: instagram-feed-admin.php:983
715
  msgid ""
716
  "You can use this setting to only show photos which contain certain words or "
717
  "hashtags in the caption. For example, adding <code>sheep, cow, dog</code> "
@@ -719,457 +1089,850 @@ msgid ""
719
  "Separate multiple words or hashtags using commas."
720
  msgstr ""
721
 
722
- #: instagram-feed-admin.php:992
723
  msgid "Moderation"
724
  msgstr ""
725
 
726
- #: instagram-feed-admin.php:1003
 
 
 
 
727
  msgid "Moderation Type"
728
  msgstr ""
729
 
730
- #: instagram-feed-admin.php:1008
 
 
 
 
 
 
 
 
731
  msgid ""
732
  "<b>Visual Moderation Mode</b><br />This adds a button to each feed that will "
733
  "allow you to hide posts, block users, and create white lists from the front "
734
  "end using a visual interface. Visit <a href='https://smashballoon.com/guide-"
735
- "to-moderation-mode/' target='_blank'>this page</a> for details"
 
736
  msgstr ""
737
 
738
- #: instagram-feed-admin.php:1014
739
  msgid "Only show posts by these users"
740
  msgstr ""
741
 
742
- #: instagram-feed-admin.php:1017
743
  msgid "Separate usernames using commas"
744
  msgstr ""
745
 
746
- #: instagram-feed-admin.php:1020
747
  msgid ""
748
  "You can use this setting to show photos only from certain users in your "
749
  "feed. Just enter the usernames here which you want to show. Separate "
750
  "multiple usernames using commas."
751
  msgstr ""
752
 
753
- #: instagram-feed-admin.php:1024
754
  msgid "White lists"
755
  msgstr ""
756
 
757
- #: instagram-feed-admin.php:1027
758
  msgid "No white lists currently created"
759
  msgstr ""
760
 
761
- #: instagram-feed-admin.php:1030
762
  msgid "Clear White Lists"
763
  msgstr ""
764
 
765
- #: instagram-feed-admin.php:1032
766
  msgid "This will remove all of the white lists from the database"
767
  msgstr ""
768
 
769
- #: instagram-feed-admin.php:1043
770
  msgid "Misc"
771
  msgstr ""
772
 
773
- #: instagram-feed-admin.php:1049
774
  msgid ""
775
  "<strong style=\"font-size: 15px;\">Custom CSS</strong><br />Enter your own "
776
  "custom CSS in the box below"
777
  msgstr ""
778
 
779
- #: instagram-feed-admin.php:1059
780
  msgid ""
781
  "<strong style=\"font-size: 15px;\">Custom JavaScript</strong><br />Enter "
782
  "your own custom JavaScript/jQuery in the box below"
783
  msgstr ""
784
 
785
- #: instagram-feed-admin.php:1072
786
- msgid "Disable Font Awesome"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
787
  msgstr ""
788
 
789
- #: instagram-feed-admin.php:1084
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
790
  msgid ""
791
  "Next Step: <a href=\"?page=sb-instagram-feed&tab=display\">Display your "
792
  "Feed</a>"
793
  msgstr ""
794
 
795
- #: instagram-feed-admin.php:1095
796
  msgid "Display your Feed"
797
  msgstr ""
798
 
799
- #: instagram-feed-admin.php:1096
800
  msgid ""
801
  "Copy and paste the following shortcode directly into the page, post or "
802
  "widget where you'd like the feed to show up:"
803
  msgstr ""
804
 
805
- #: instagram-feed-admin.php:1097
806
- msgid "To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac)."
807
- msgstr ""
808
-
809
- #: instagram-feed-admin.php:1099
810
  msgid "Multiple Feeds"
811
  msgstr ""
812
 
813
- #: instagram-feed-admin.php:1100
814
  msgid ""
815
  "If you'd like to display multiple feeds then you can set different settings "
816
  "directly in the shortcode like so:"
817
  msgstr ""
818
 
819
- #: instagram-feed-admin.php:1102
820
  msgid ""
821
  "You can display as many different feeds as you like, on either the same page "
822
  "or on different pages, by just using the shortcode options below. For "
823
  "example:"
824
  msgstr ""
825
 
826
- #: instagram-feed-admin.php:1107
827
  msgid "See the table below for a full list of available shortcode options:"
828
  msgstr ""
829
 
830
- #: instagram-feed-admin.php:1109
831
  msgid "Pro version only"
832
  msgstr ""
833
 
834
- #: instagram-feed-admin.php:1114
835
  msgid "Shortcode option"
836
  msgstr ""
837
 
838
- #: instagram-feed-admin.php:1115
839
  msgid "Description"
840
  msgstr ""
841
 
842
- #: instagram-feed-admin.php:1116
843
  msgid "Example"
844
  msgstr ""
845
 
846
- #: instagram-feed-admin.php:1119
847
  msgid "Configure Options"
848
  msgstr ""
849
 
850
- #: instagram-feed-admin.php:1122
851
  msgid ""
852
  "Display photos from a User ID (user)<br />Display posts from a Hashtag "
853
- "(hashtag)<br />Display posts from a Location (location)<br />Display posts "
854
- "from Coordinates (coordinates)"
855
  msgstr ""
856
 
857
- #: instagram-feed-admin.php:1127
858
- msgid "An Instagram User ID. Separate multiple IDs by commas."
 
 
859
  msgstr ""
860
 
861
- #: instagram-feed-admin.php:1132
862
  msgid "Any hashtag. Separate multiple IDs by commas."
863
  msgstr ""
864
 
865
- #: instagram-feed-admin.php:1137
866
- msgid "The ID of the location. Separate multiple IDs by commas."
867
- msgstr ""
868
-
869
- #: instagram-feed-admin.php:1142
870
- msgid ""
871
- "The coordinates to display photos from. Separate multiple sets of "
872
- "coordinates by commas.<br />The format is (latitude,longitude,distance)."
873
- msgstr ""
874
-
875
- #: instagram-feed-admin.php:1146
876
  msgid "Customize Options"
877
  msgstr ""
878
 
879
- #: instagram-feed-admin.php:1149
880
  msgid "The width of your feed. Any number."
881
  msgstr ""
882
 
883
- #: instagram-feed-admin.php:1154
884
  msgid "The unit of the width. 'px' or '%'"
885
  msgstr ""
886
 
887
- #: instagram-feed-admin.php:1159
888
  msgid "The height of your feed. Any number."
889
  msgstr ""
890
 
891
- #: instagram-feed-admin.php:1164
892
  msgid "The unit of the height. 'px' or '%'"
893
  msgstr ""
894
 
895
- #: instagram-feed-admin.php:1169
896
  msgid "The background color of the feed. Any hex color code."
897
  msgstr ""
898
 
899
- #: instagram-feed-admin.php:1174
900
  msgid "Add a CSS class to the feed container"
901
  msgstr ""
902
 
903
- #: instagram-feed-admin.php:1178
904
- msgid "Photos Options"
905
  msgstr ""
906
 
907
- #: instagram-feed-admin.php:1181
908
- msgid "Sort the posts by Newest to Oldest (none) or Random (random)"
 
 
909
  msgstr ""
910
 
911
- #: instagram-feed-admin.php:1186
912
  msgid "The number of photos to display initially. Maximum is 33."
913
  msgstr ""
914
 
915
- #: instagram-feed-admin.php:1191
 
 
 
 
 
 
916
  msgid "The number of columns in your feed. 1 - 10."
917
  msgstr ""
918
 
919
- #: instagram-feed-admin.php:1196
920
- msgid "The resolution/size of the photos. 'auto', full', 'medium' or 'thumb'."
 
 
921
  msgstr ""
922
 
923
- #: instagram-feed-admin.php:1201
924
  msgid "The spacing around your photos"
925
  msgstr ""
926
 
927
- #: instagram-feed-admin.php:1206
928
  msgid "The unit of the padding. 'px' or '%'"
929
  msgstr ""
930
 
931
- #: instagram-feed-admin.php:1211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
932
  msgid "Whether to disable the photo Lightbox. It is enabled by default."
933
  msgstr ""
934
 
935
- #: instagram-feed-admin.php:1216
936
- msgid "Disable the mobile layout. 'true' or 'false'."
937
  msgstr ""
938
 
939
- #: instagram-feed-admin.php:1222
940
- msgid "The background color when hovering over a photo. Any hex color code."
 
 
941
  msgstr ""
942
 
943
- #: instagram-feed-admin.php:1227
944
- msgid "The text/icon color when hovering over a photo. Any hex color code."
945
  msgstr ""
946
 
947
- #: instagram-feed-admin.php:1232
948
- msgid "Carousel Options"
949
  msgstr ""
950
 
951
- #: instagram-feed-admin.php:1235
952
- msgid "Display this feed as a carousel"
953
  msgstr ""
954
 
955
- #: instagram-feed-admin.php:1240
956
- msgid "Display directional arrows on the carousel"
957
  msgstr ""
958
 
959
- #: instagram-feed-admin.php:1245
960
- msgid "Display pagination links below the carousel"
961
  msgstr ""
962
 
963
- #: instagram-feed-admin.php:1250
964
- msgid "Make the carousel autoplay"
965
  msgstr ""
966
 
967
- #: instagram-feed-admin.php:1255
968
- msgid "The interval time between slides for autoplay. Time in miliseconds."
 
 
969
  msgstr ""
970
 
971
- #: instagram-feed-admin.php:1259
972
  msgid "Header Options"
973
  msgstr ""
974
 
975
- #: instagram-feed-admin.php:1262
976
- msgid "Whether to show the feed Header. 'true' or 'false'."
 
 
 
 
977
  msgstr ""
978
 
979
- #: instagram-feed-admin.php:1267
980
- msgid "Display the bio in the header. 'true' or 'false'."
981
  msgstr ""
982
 
983
- #: instagram-feed-admin.php:1272
984
  msgid "The color of the Header text. Any hex color code."
985
  msgstr ""
986
 
987
- #: instagram-feed-admin.php:1276
988
  msgid "'Load More' Button Options"
989
  msgstr ""
990
 
991
- #: instagram-feed-admin.php:1279
992
- msgid "Whether to show the 'Load More' button. 'true' or 'false'."
993
  msgstr ""
994
 
995
- #: instagram-feed-admin.php:1284 instagram-feed-admin.php:1306
996
  msgid "The background color of the button. Any hex color code."
997
  msgstr ""
998
 
999
- #: instagram-feed-admin.php:1289 instagram-feed-admin.php:1311
1000
  msgid "The text color of the button. Any hex color code."
1001
  msgstr ""
1002
 
1003
- #: instagram-feed-admin.php:1294 instagram-feed-admin.php:1316
1004
  msgid "The text used for the button."
1005
  msgstr ""
1006
 
1007
- #: instagram-feed-admin.php:1298
1008
  msgid "'Follow on Instagram' Button Options"
1009
  msgstr ""
1010
 
1011
- #: instagram-feed-admin.php:1301
1012
- msgid "Whether to show the 'Follow on Instagram' button. 'true' or 'false'."
1013
  msgstr ""
1014
 
1015
- #: instagram-feed-admin.php:1320
1016
  msgid "Caption Options"
1017
  msgstr ""
1018
 
1019
- #: instagram-feed-admin.php:1323
1020
- msgid "Whether to show the photo caption. 'true' or 'false'."
1021
  msgstr ""
1022
 
1023
- #: instagram-feed-admin.php:1328
1024
  msgid "The number of characters of the caption to display"
1025
  msgstr ""
1026
 
1027
- #: instagram-feed-admin.php:1333
1028
  msgid "The text color of the caption. Any hex color code."
1029
  msgstr ""
1030
 
1031
- #: instagram-feed-admin.php:1338
1032
  msgid "The size of the caption text. Any number."
1033
  msgstr ""
1034
 
1035
- #: instagram-feed-admin.php:1342
1036
  msgid "Likes &amp; Comments Options"
1037
  msgstr ""
1038
 
1039
- #: instagram-feed-admin.php:1345
1040
- msgid "Whether to show the Likes &amp; Comments. 'true' or 'false'."
1041
  msgstr ""
1042
 
1043
- #: instagram-feed-admin.php:1350
1044
  msgid "The color of the Likes &amp; Comments. Any hex color code."
1045
  msgstr ""
1046
 
1047
- #: instagram-feed-admin.php:1355
1048
  msgid "The size of the Likes &amp; Comments. Any number."
1049
  msgstr ""
1050
 
1051
- #: instagram-feed-admin.php:1359
1052
  msgid "Post Filtering Options"
1053
  msgstr ""
1054
 
1055
- #: instagram-feed-admin.php:1362
1056
  msgid "Remove posts which contain certain words or hashtags in the caption."
1057
  msgstr ""
1058
 
1059
- #: instagram-feed-admin.php:1367
1060
  msgid ""
1061
  "Only display posts which contain certain words or hashtags in the caption."
1062
  msgstr ""
1063
 
1064
- #: instagram-feed-admin.php:1389
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1065
  msgid "Setup Directions"
1066
  msgstr ""
1067
 
1068
- #: instagram-feed-admin.php:1390
1069
  msgid "A step-by-step guide on how to setup and use the plugin."
1070
  msgstr ""
1071
 
1072
- #: instagram-feed-admin.php:1396
1073
  msgid "Watch a Video"
1074
  msgstr ""
1075
 
1076
- #: instagram-feed-admin.php:1397
1077
  msgid ""
1078
  "Watch a short video demonstrating how to set up, customize and use the "
1079
  "plugin.<br /><b>Please note</b> that the video shows the set up and use of "
1080
- "the <b><a href='https://smashballoon.com/instagram-feed/' "
1081
- "target='_blank'>PRO version</a></b> of the plugin, but the process is the "
1082
- "same for this free version. The only difference is some of the features "
1083
- "available."
1084
  msgstr ""
1085
 
1086
- #: instagram-feed-admin.php:1407
1087
  msgid "FAQs and Docs"
1088
  msgstr ""
1089
 
1090
- #: instagram-feed-admin.php:1408
1091
  msgid ""
1092
  "View our expansive library of FAQs and documentation to help solve your "
1093
  "problem as quickly as possible."
1094
  msgstr ""
1095
 
1096
- #: instagram-feed-admin.php:1415
1097
- msgid ""
1098
- "<a href=\"https://smashballoon.com/instagram-feed/find-instagram-user-id/\" "
1099
- "target=\"_blank\">How to find an Instagram User ID</a>"
1100
  msgstr ""
1101
 
1102
- #: instagram-feed-admin.php:1416
1103
  msgid ""
1104
- "<a href=\"https://smashballoon.com/my-instagram-access-token-keep-expiring/"
1105
- "\" target=\"_blank\">My Access Token Keeps Expiring</a>"
1106
  msgstr ""
1107
 
1108
- #: instagram-feed-admin.php:1417
1109
  msgid ""
1110
- "<a href=\"https://smashballoon.com/my-photos-wont-load/\" target=\"_blank"
1111
- "\">My Instagram Feed Won't Load</a>"
 
1112
  msgstr ""
1113
 
1114
- #: instagram-feed-admin.php:1425
 
 
 
 
 
 
 
 
1115
  msgid ""
1116
- "<a href=\"https://smashballoon.com/instagram-feed/free\" target=\"_blank"
1117
- "\">Installation and Configuration</a>"
1118
  msgstr ""
1119
 
1120
- #: instagram-feed-admin.php:1426
1121
  msgid ""
1122
- "<a href=\"https://smashballoon.com/display-multiple-instagram-feeds/\" "
1123
- "target=\"_blank\">Displaying multiple feeds</a>"
 
1124
  msgstr ""
1125
 
1126
- #: instagram-feed-admin.php:1427
1127
  msgid ""
1128
- "<a href=\"https://smashballoon.com/instagram-feed-faq/customization/\" "
1129
- "target=\"_blank\">Customizing your Feed</a>"
 
1130
  msgstr ""
1131
 
1132
- #: instagram-feed-admin.php:1434
1133
  msgid "Request Support"
1134
  msgstr ""
1135
 
1136
- #: instagram-feed-admin.php:1435
1137
  msgid ""
1138
  "Still need help? Submit a ticket and one of our support experts will get "
1139
  "back to you as soon as possible.<br /><b>Important:</b> Please include your "
1140
  "<b>System Info</b> below with all support requests."
1141
  msgstr ""
1142
 
1143
- #: instagram-feed-admin.php:1441
1144
  msgid ""
1145
  "System Info &nbsp; <i style=\"color: #666; font-size: 11px; font-weight: "
1146
  "normal;\">Click the text below to select all</i>"
1147
  msgstr ""
1148
 
1149
- #: instagram-feed-admin.php:1535
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1150
  msgid "Instagram Feed Pro"
1151
  msgstr ""
1152
 
1153
- #: instagram-feed-admin.php:1538
1154
- msgid "Check out our other free plugins:"
 
 
 
1155
  msgstr ""
1156
 
1157
- #: instagram-feed-admin.php:1541
1158
  msgid "Like the plugin? Help spread the word!"
1159
  msgstr ""
1160
 
1161
- #: instagram-feed-admin.php:1660
 
 
 
 
 
 
 
 
 
 
 
 
 
1162
  msgid ""
1163
- "\n"
1164
- " <div class='sbi_notice sbi_review_notice'>\n"
1165
- " <img src='"
 
 
1166
  msgstr ""
1167
 
1168
- #: instagram-feed.php:183
1169
- msgid "Please enter a User ID on the Instagram Feed plugin Settings page."
1170
  msgstr ""
1171
 
1172
- #: instagram-feed.php:187
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1173
  msgid ""
1174
- "Please enter an Access Token on the Instagram Feed plugin Settings page."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1175
  msgstr ""
1
+ #, fuzzy
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: \n"
5
+ "POT-Creation-Date: 2019-10-15 06:53-0500\n"
6
  "PO-Revision-Date: 2017-11-27 11:57-0600\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Generator: Poedit 2.2.4\n"
14
  "X-Poedit-Basepath: ..\n"
15
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
16
  "X-Poedit-KeywordsList: __;_e;esc_attr_e\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
+ #: inc/admin/actions.php:54 inc/admin/main.php:21 inc/admin/main.php:22
20
+ msgid "Settings"
21
+ msgstr ""
22
+
23
+ #: inc/admin/actions.php:135 inc/class-sb-instagram-post.php:243
24
+ msgid "Error saving edited image."
25
+ msgstr ""
26
+
27
+ #: inc/admin/actions.php:144 inc/class-sb-instagram-post.php:252
28
+ msgid "Error editing image."
29
+ msgstr ""
30
+
31
+ #: inc/admin/actions.php:514
32
+ msgid "Note for support"
33
+ msgstr ""
34
+
35
+ #: inc/admin/actions.php:540
36
+ msgid ""
37
+ "Unable to use admin-ajax.php when displaying feeds. Some features of the "
38
+ "plugin will be unavailable."
39
+ msgstr ""
40
+
41
+ #: inc/admin/actions.php:540 inc/class-sb-instagram-feed.php:924
42
+ msgid "this page"
43
+ msgstr ""
44
+
45
+ #: inc/admin/actions.php:678
46
+ #, php-format
47
+ msgid ""
48
+ "PS. We currently have a Black Friday/Cyber Monday deal going on for "
49
+ "<b>20% off</b> the Pro version of the plugin."
50
+ msgstr ""
51
+
52
+ #: inc/admin/actions.php:678
53
+ msgid "Get this deal!"
54
+ msgstr ""
55
+
56
+ #: inc/admin/actions.php:694 inc/admin/main.php:13 inc/admin/main.php:14
57
+ #: inc/admin/main.php:399
58
  msgid "Instagram Feed"
59
  msgstr ""
60
 
61
+ #: inc/admin/actions.php:696
62
+ msgid ""
63
+ "It's great to see that you've been using the <strong>Smash Balloon Instagram "
64
+ "Feed</strong> plugin for a while now. Hopefully you're happy with it!&nbsp; "
65
+ "If so, would you consider leaving a positive review? It really helps to "
66
+ "support the plugin and helps others to discover it too!"
67
+ msgstr ""
68
+
69
+ #: inc/admin/actions.php:698
70
+ msgid "Sure, I'd love to!"
71
+ msgstr ""
72
+
73
+ #: inc/admin/actions.php:700
74
+ msgid "No thanks"
75
+ msgstr ""
76
+
77
+ #: inc/admin/actions.php:702
78
+ msgid "I've already given a review"
79
+ msgstr ""
80
+
81
+ #: inc/admin/actions.php:704
82
+ msgid "Ask Me Later"
83
+ msgstr ""
84
+
85
+ #: inc/admin/actions.php:721
86
+ #, php-format
87
+ msgid ""
88
+ "<b style=\"font-weight: 700;\">Thank you!</b> We appreciate you using the "
89
+ "Smash Balloon Instagram Feed plugin and wanted to say thank you by offering "
90
+ "you a limited time <b>20% discount</b> on the Pro version."
91
+ msgstr ""
92
+
93
+ #: inc/admin/actions.php:723
94
+ msgid "Yes please!"
95
+ msgstr ""
96
+
97
+ #: inc/admin/actions.php:724 inc/admin/actions.php:742
98
+ msgid "I'm not interested"
99
+ msgstr ""
100
+
101
+ #: inc/admin/actions.php:739
102
+ #, php-format
103
+ msgid ""
104
+ "<b style=\"font-weight: 700;\">Black Friday/Cyber Monday Deal!</b> Thank you "
105
+ "for using our free Instagram Feed plugin. For a limited time, we're offering "
106
+ "<b>20% off</b> the Pro version for all of our users."
107
+ msgstr ""
108
+
109
+ #: inc/admin/actions.php:741
110
+ msgid "Get this offer!"
111
  msgstr ""
112
 
113
+ #: inc/admin/main.php:63 inc/if-functions.php:526
114
  msgid "Load More..."
115
  msgstr ""
116
 
117
+ #: inc/admin/main.php:73 inc/if-functions.php:536
118
  msgid "Follow on Instagram"
119
  msgstr ""
120
 
121
+ #: inc/admin/main.php:390
122
  msgid "Settings saved."
123
  msgstr ""
124
 
125
+ #: inc/admin/main.php:408
126
  msgid "1. Configure"
127
  msgstr ""
128
 
129
+ #: inc/admin/main.php:409
130
  msgid "2. Customize"
131
  msgstr ""
132
 
133
+ #: inc/admin/main.php:410
134
  msgid "3. Display Your Feed"
135
  msgstr ""
136
 
137
+ #: inc/admin/main.php:411
138
  msgid "Support"
139
  msgstr ""
140
 
141
+ #: inc/admin/main.php:419
142
  msgid "Configure"
143
  msgstr ""
144
 
145
+ #: inc/admin/main.php:424 inc/admin/main.php:426
146
+ msgid "Connect an Instagram Account"
147
  msgstr ""
148
 
149
+ #: inc/admin/main.php:428
150
  msgid "Button not working?"
151
  msgstr ""
152
 
153
+ #: inc/admin/main.php:447
154
+ msgid "Instagram Accounts"
155
  msgstr ""
156
 
157
+ #: inc/admin/main.php:447
158
+ msgid "Use the button above to connect an Instagram account"
 
 
 
 
 
 
159
  msgstr ""
160
 
161
+ #: inc/admin/main.php:450
162
  msgid ""
163
+ "No Instagram accounts connected. Click the button above to connect an "
164
+ "account."
 
 
165
  msgstr ""
166
 
167
+ #: inc/admin/main.php:470
168
+ msgid ""
169
+ "The Access Token for this account is expired or invalid. Click the button "
170
+ "above to attempt to renew it."
171
  msgstr ""
172
 
173
+ #: inc/admin/main.php:475
174
+ msgid "Remove"
175
  msgstr ""
176
 
177
+ #: inc/admin/main.php:485
178
+ msgid "Add to Primary Feed"
179
+ msgstr ""
180
+
181
+ #: inc/admin/main.php:487
182
+ msgid "Remove from Primary Feed"
183
+ msgstr ""
184
+
185
+ #: inc/admin/main.php:489
186
+ msgid "Add to another Feed"
187
+ msgstr ""
188
+
189
+ #: inc/admin/main.php:490
190
+ msgid "Show Access Token"
191
  msgstr ""
192
 
193
+ #: inc/admin/main.php:496
194
+ msgid "Copy and paste this shortcode into your page or widget area"
195
+ msgstr ""
196
+
197
+ #: inc/admin/main.php:504
198
  msgid ""
199
+ "To add multiple users in the same feed, simply separate them using commas"
 
 
 
 
200
  msgstr ""
201
 
202
+ #: inc/admin/main.php:511
203
+ #, php-format
204
+ msgid "Click on the %s tab to learn more about shortcodes"
205
  msgstr ""
206
 
207
+ #: inc/admin/main.php:511
208
+ msgid "Display Your Feed"
209
+ msgstr ""
210
+
211
+ #: inc/admin/main.php:515
212
+ msgid "Access Token"
213
+ msgstr ""
214
+
215
+ #: inc/admin/main.php:515 inc/admin/main.php:1819
216
+ msgid "To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac)."
217
+ msgstr ""
218
+
219
+ #: inc/admin/main.php:524
220
+ msgid "Manually Connect an Account"
221
+ msgstr ""
222
+
223
+ #: inc/admin/main.php:526
224
+ msgid "Business Profile"
225
  msgstr ""
226
 
227
+ #: inc/admin/main.php:528
228
+ msgid "Please enter the User ID for this Business Profile:"
229
  msgstr ""
230
 
231
+ #: inc/admin/main.php:531
232
+ msgid "Connect This Account"
233
  msgstr ""
234
 
235
+ #: inc/admin/main.php:668
236
+ msgid "Show Photos From:"
237
+ msgstr ""
238
+
239
+ #: inc/admin/main.php:675
240
+ msgid "User Account:"
241
+ msgstr ""
242
+
243
+ #: inc/admin/main.php:695
244
+ msgid "Connect a user account above"
245
  msgstr ""
246
 
247
+ #: inc/admin/main.php:698
248
+ msgid "How to display User feeds"
249
  msgstr ""
250
 
251
+ #: inc/admin/main.php:699
252
+ msgid ""
253
+ "<p><b>Displaying Posts from Your User Account</b><br />Simply connect an "
254
+ "account using the button above.</p><p style='padding-top:8px;'><b>Displaying "
255
+ "Posts from Other Instagram Accounts</b><br />Due to recent changes in the "
256
+ "Instagram API it is no longer possible to display photos from other "
257
+ "Instagram accounts which you do not have access to. You can only display the "
258
+ "user feed of an account which you connect above. You can connect as many "
259
+ "account as you like by logging in using the button above, or manually copy/"
260
+ "pasting an Access Token by selecting the 'Manually Connect an Account' "
261
+ "option.</p><p style='padding-top:10px;'><b>Multiple Acounts</b><br />It is "
262
+ "only possible to display feeds from Instagram accounts which you own. In "
263
+ "order to display feeds from multiple accounts, first connect them above and "
264
+ "then use the buttons to add the account either to your primary feed or to "
265
+ "another feed on your site.</p>"
266
+ msgstr ""
267
+
268
+ #: inc/admin/main.php:707
269
+ msgid "Hashtag:"
270
  msgstr ""
271
 
272
+ #: inc/admin/main.php:711
273
+ msgid "Upgrade to the Pro version to display hashtag feeds"
274
  msgstr ""
275
 
276
+ #: inc/admin/main.php:712 inc/admin/main.php:931
277
+ msgid "Pro"
278
  msgstr ""
279
 
280
+ #: inc/admin/main.php:715 inc/admin/main.php:1019 inc/admin/main.php:1032
281
+ #: inc/admin/main.php:1240 inc/admin/main.php:1367 inc/admin/main.php:1468
282
+ #: inc/admin/main.php:1477 inc/admin/main.php:1584 inc/admin/main.php:1601
283
+ #: inc/admin/main.php:1638 inc/admin/main.php:1650
284
+ msgid "What is this?"
285
+ msgstr ""
286
+
287
+ #: inc/admin/main.php:717
288
+ msgid "Display posts from a specific hashtag instead of from a user"
289
+ msgstr ""
290
+
291
+ #: inc/admin/main.php:723
292
+ msgid "Combine multiple feed types into a single feed"
293
+ msgstr ""
294
+
295
+ #: inc/admin/main.php:725
296
+ msgid ""
297
+ "Please note: this is only available in the <a href=\"https://smashballoon."
298
+ "com/instagram-feed/?utm_source=plugin-free&utm_campaign=sbi\" target=\"_blank"
299
+ "\">Pro version</a>"
300
+ msgstr ""
301
+
302
+ #: inc/admin/main.php:726
303
+ #, php-format
304
+ msgid ""
305
+ "To display multiple feed types in a single feed, use %s in your shortcode "
306
+ "and then add each user name or hashtag of each feed into the shortcode, like "
307
+ "so: %s. This will combine a user feed and a hashtag feed into the same feed."
308
+ msgstr ""
309
+
310
+ #: inc/admin/main.php:734
311
  msgid "Preserve settings when plugin is removed"
312
  msgstr ""
313
 
314
+ #: inc/admin/main.php:737 inc/admin/main.php:1695 inc/admin/main.php:1761
315
+ #: inc/admin/main.php:1776 inc/admin/main.php:1794
316
  msgid "Yes"
317
  msgstr ""
318
 
319
+ #: inc/admin/main.php:738 inc/admin/main.php:765 inc/admin/main.php:874
320
+ #: inc/admin/main.php:1081 inc/admin/main.php:1696 inc/admin/main.php:1710
321
+ #: inc/admin/main.php:1719 inc/admin/main.php:1728 inc/admin/main.php:1738
322
+ #: inc/admin/main.php:1749 inc/admin/main.php:1765 inc/admin/main.php:1786
323
+ #: inc/admin/main.php:1795
324
  msgid "What does this mean?"
325
  msgstr ""
326
 
327
+ #: inc/admin/main.php:739
328
  msgid ""
329
  "When removing the plugin your settings are automatically erased. Checking "
330
  "this box will prevent any settings from being deleted. This means that you "
331
  "can uninstall and reinstall the plugin without losing your settings."
332
  msgstr ""
333
 
334
+ #: inc/admin/main.php:745
335
+ msgid "Check for new posts"
336
  msgstr ""
337
 
338
+ #: inc/admin/main.php:750
339
+ msgid "When the page loads"
340
+ msgstr ""
341
+
342
+ #: inc/admin/main.php:752
343
  msgid ""
344
+ "Your Instagram post data is temporarily cached by the plugin in your "
345
+ "WordPress database. There are two ways that you can set the plugin to check "
346
+ "for new data"
347
  msgstr ""
348
 
349
+ #: inc/admin/main.php:753
350
+ msgid ""
351
+ "<b>1. When the page loads</b><br>Selecting this option means that when the "
352
+ "cache expires then the plugin will check Facebook for new posts the next "
353
+ "time that the feed is loaded. You can choose how long this data should be "
354
+ "cached for. If you set the time to 60 minutes then the plugin will clear the "
355
+ "cached data after that length of time, and the next time the page is viewed "
356
+ "it will check for new data. <b>Tip:</b> If you're experiencing an issue with "
357
+ "the plugin not updating automatically then try enabling the setting labeled "
358
+ "<b>'Force cache to clear on interval'</b> which is located on the "
359
+ "'Customize' tab."
360
+ msgstr ""
361
+
362
+ #: inc/admin/main.php:755
363
+ msgid ""
364
+ "<b>2. In the background</b><br>Selecting this option means that the plugin "
365
+ "will check for new data in the background so that the feed is updated behind "
366
+ "the scenes. You can select at what time and how often the plugin should "
367
+ "check for new data using the settings below. <b>Please note</b> that the "
368
+ "plugin will initially check for data from Instagram when the page first "
369
+ "loads, but then after that will check in the background on the schedule "
370
+ "selected - unless the cache is cleared.</p>"
371
+ msgstr ""
372
+
373
+ #: inc/admin/main.php:758
374
+ msgid "Every"
375
+ msgstr ""
376
+
377
+ #: inc/admin/main.php:761
378
+ msgid "Minutes"
379
+ msgstr ""
380
+
381
+ #: inc/admin/main.php:762
382
+ msgid "Hours"
383
+ msgstr ""
384
+
385
+ #: inc/admin/main.php:763
386
+ msgid "Days"
387
+ msgstr ""
388
+
389
+ #: inc/admin/main.php:766
390
+ msgid ""
391
+ "Your Instagram posts are temporarily cached by the plugin in your WordPress "
392
+ "database. You can choose how long the posts should be cached for. If you set "
393
+ "the time to 1 hour then the plugin will clear the cache after that length of "
394
+ "time and check Instagram for posts again."
395
+ msgstr ""
396
+
397
+ #: inc/admin/main.php:771
398
+ msgid "In the background"
399
+ msgstr ""
400
+
401
+ #: inc/admin/main.php:776 instagram-feed.php:123
402
+ msgid "Every 30 minutes"
403
+ msgstr ""
404
+
405
+ #: inc/admin/main.php:777
406
+ msgid "Every hour"
407
+ msgstr ""
408
+
409
+ #: inc/admin/main.php:778
410
+ msgid "Every 12 hours"
411
+ msgstr ""
412
+
413
+ #: inc/admin/main.php:779
414
+ msgid "Every 24 hours"
415
+ msgstr ""
416
+
417
+ #: inc/admin/main.php:783
418
+ msgid "at"
419
+ msgstr ""
420
+
421
+ #: inc/admin/main.php:814
422
+ msgid "every 30 minutes"
423
+ msgstr ""
424
+
425
+ #: inc/admin/main.php:815
426
+ msgid "every 12 hours"
427
+ msgstr ""
428
+
429
+ #: inc/admin/main.php:817
430
+ msgid "Next check"
431
+ msgstr ""
432
+
433
+ #: inc/admin/main.php:817
434
+ msgid ""
435
+ "Note: Saving the settings on this page will clear the cache and reset this "
436
+ "schedule"
437
+ msgstr ""
438
+
439
+ #: inc/admin/main.php:819
440
+ msgid "Nothing currently scheduled"
441
+ msgstr ""
442
+
443
+ #: inc/admin/main.php:834
444
  msgid ""
445
  "Next Step: <a href=\"?page=sb-instagram-feed&tab=customize\">Customize your "
446
  "Feed</a>"
447
  msgstr ""
448
 
449
+ #: inc/admin/main.php:836 inc/admin/main.php:1808 inc/admin/main.php:2178
 
450
  msgid ""
451
  "Need help setting up the plugin? Check out our <a href=\"https://"
452
+ "smashballoon.com/instagram-feed/free/?utm_source=plugin-free&utm_campaign=sbi"
453
+ "\" target=\"_blank\">setup directions</a>"
454
  msgstr ""
455
 
456
+ #: inc/admin/main.php:846
457
  msgid "Quick links:"
458
  msgstr ""
459
 
460
+ #: inc/admin/main.php:847 inc/admin/main.php:859
461
  msgid "General"
462
  msgstr ""
463
 
464
+ #: inc/admin/main.php:848 inc/admin/main.php:901
465
  msgid "Layout"
466
  msgstr ""
467
 
468
+ #: inc/admin/main.php:849 inc/admin/main.php:1091
469
  msgid "Photos"
470
  msgstr ""
471
 
472
+ #: inc/admin/main.php:850 inc/admin/main.php:1275
473
  msgid "Header"
474
  msgstr ""
475
 
476
+ #: inc/admin/main.php:851 inc/admin/main.php:1488
477
  msgid "'Load More' Button"
478
  msgstr ""
479
 
480
+ #: inc/admin/main.php:852 inc/admin/main.php:1525
481
  msgid "'Follow' Button"
482
  msgstr ""
483
 
484
+ #: inc/admin/main.php:853
485
  msgid "Custom CSS"
486
  msgstr ""
487
 
488
+ #: inc/admin/main.php:854
489
  msgid "Custom JavaScript"
490
  msgstr ""
491
 
492
+ #: inc/admin/main.php:864
493
  msgid "Width of Feed"
494
  msgstr ""
495
 
496
+ #: inc/admin/main.php:869 inc/admin/main.php:885 inc/admin/main.php:1071
 
497
  msgid "px"
498
  msgstr ""
499
 
500
+ #: inc/admin/main.php:870 inc/admin/main.php:886 inc/admin/main.php:1072
 
501
  msgid "%"
502
  msgstr ""
503
 
504
+ #: inc/admin/main.php:873
505
  msgid "Set to be 100% width on mobile?"
506
  msgstr ""
507
 
508
+ #: inc/admin/main.php:875
509
  #, php-format
510
  msgid ""
511
  "If you set a width on the feed then this will be used on mobile as well as "
513
  "that it is responsive."
514
  msgstr ""
515
 
516
+ #: inc/admin/main.php:880
517
  msgid "Height of Feed"
518
  msgstr ""
519
 
520
+ #: inc/admin/main.php:891
521
  msgid "Background Color"
522
  msgstr ""
523
 
524
+ #: inc/admin/main.php:908
525
+ msgid "Grid"
526
+ msgstr ""
527
+
528
+ #: inc/admin/main.php:909 inc/admin/main.php:1227
529
+ msgid "Carousel"
530
+ msgstr ""
531
+
532
+ #: inc/admin/main.php:910
533
+ msgid "Masonry"
534
+ msgstr ""
535
+
536
+ #: inc/admin/main.php:911
537
+ msgid "Highlight"
538
+ msgstr ""
539
+
540
+ #: inc/admin/main.php:921
541
+ msgid "Click for shortcode option"
542
+ msgstr ""
543
+
544
+ #: inc/admin/main.php:921
545
+ msgid "Layout Type"
546
+ msgstr ""
547
+
548
+ #: inc/admin/main.php:921
549
+ msgid "Select a layout to see associated<br />options"
550
+ msgstr ""
551
+
552
+ #: inc/admin/main.php:930
553
+ msgid "Upgrade to the Pro version to unlock these layouts"
554
+ msgstr ""
555
+
556
+ #: inc/admin/main.php:937
557
+ msgid "A uniform grid of square-cropped images."
558
+ msgstr ""
559
+
560
+ #: inc/admin/main.php:940
561
+ msgid ""
562
+ "Images in their original aspect ratios with no vertical space between posts."
563
  msgstr ""
564
 
565
+ #: inc/admin/main.php:944
566
+ msgid "Posts are displayed in a slideshow carousel."
567
  msgstr ""
568
 
569
+ #: inc/admin/main.php:948
570
+ msgid "Number of Rows"
571
  msgstr ""
572
 
573
+ #: inc/admin/main.php:951
574
  msgid ""
575
+ "Use the \"Number of Columns\" setting below this section to set how many "
576
+ "posts are visible in the carousel at a given time."
577
+ msgstr ""
578
+
579
+ #: inc/admin/main.php:959
580
+ msgid "Loop Type"
581
+ msgstr ""
582
+
583
+ #: inc/admin/main.php:964
584
+ msgid "Rewind"
585
+ msgstr ""
586
+
587
+ #: inc/admin/main.php:965
588
+ msgid "Infinity"
589
  msgstr ""
590
 
591
+ #: inc/admin/main.php:970 inc/admin/main.php:1245
592
+ msgid "Show Navigation Arrows"
593
+ msgstr ""
594
+
595
+ #: inc/admin/main.php:975 inc/admin/main.php:1251
596
+ msgid "Show Pagination"
597
+ msgstr ""
598
+
599
+ #: inc/admin/main.php:980 inc/admin/main.php:1257
600
+ msgid "Enable Autoplay"
601
+ msgstr ""
602
+
603
+ #: inc/admin/main.php:984 inc/admin/main.php:1263
604
+ msgid "Interval Time"
605
+ msgstr ""
606
+
607
+ #: inc/admin/main.php:987
608
+ msgid "miliseconds"
609
+ msgstr ""
610
+
611
+ #: inc/admin/main.php:993
612
+ msgid ""
613
+ "Masonry style, square-cropped, image only (no captions or likes/comments "
614
+ "below image). \"Highlighted\" posts are twice as large."
615
+ msgstr ""
616
+
617
+ #: inc/admin/main.php:996
618
+ msgid "Highlighting Type"
619
+ msgstr ""
620
+
621
+ #: inc/admin/main.php:1000 inc/admin/main.php:1012
622
+ msgid "Pattern"
623
+ msgstr ""
624
+
625
+ #: inc/admin/main.php:1001
626
+ msgid "Post ID"
627
+ msgstr ""
628
+
629
+ #: inc/admin/main.php:1002
630
+ msgid "Hashtag"
631
+ msgstr ""
632
+
633
+ #: inc/admin/main.php:1015
634
+ msgid "Highlight every"
635
+ msgstr ""
636
+
637
+ #: inc/admin/main.php:1015
638
+ msgid "posts"
639
+ msgstr ""
640
+
641
+ #: inc/admin/main.php:1018
642
+ msgid "Highlight Posts with these Hashtags"
643
+ msgstr ""
644
+
645
+ #: inc/admin/main.php:1021
646
+ msgid "Separate multiple hashtags using commas"
647
+ msgstr ""
648
+
649
+ #: inc/admin/main.php:1024
650
+ msgid ""
651
+ "You can use this setting to highlight posts by a hashtag. Use a specified "
652
+ "hashtag in your posts and they will be automatically highlighted in your "
653
+ "feed."
654
+ msgstr ""
655
+
656
+ #: inc/admin/main.php:1027
657
+ msgid "Highlight Posts by ID"
658
+ msgstr ""
659
+
660
+ #: inc/admin/main.php:1030
661
+ msgid "Separate IDs using commas"
662
+ msgstr ""
663
+
664
+ #: inc/admin/main.php:1033
665
+ msgid ""
666
+ "You can use this setting to highlight posts by their ID. Enable and use "
667
+ "\"moderation mode\", check the box to show post IDs underneath posts, then "
668
+ "copy and paste IDs into this text box."
669
+ msgstr ""
670
+
671
+ #: inc/admin/main.php:1041
672
+ msgid "Number of Photos"
673
+ msgstr ""
674
+
675
+ #: inc/admin/main.php:1045
676
+ msgid "Number of photos to show initially."
677
+ msgstr ""
678
+
679
+ #: inc/admin/main.php:1049
680
  msgid "Number of Columns"
681
  msgstr ""
682
 
683
+ #: inc/admin/main.php:1053
684
  msgid "1"
685
  msgstr ""
686
 
687
+ #: inc/admin/main.php:1054
688
  msgid "2"
689
  msgstr ""
690
 
691
+ #: inc/admin/main.php:1055
692
  msgid "3"
693
  msgstr ""
694
 
695
+ #: inc/admin/main.php:1056
696
  msgid "4"
697
  msgstr ""
698
 
699
+ #: inc/admin/main.php:1057
700
  msgid "5"
701
  msgstr ""
702
 
703
+ #: inc/admin/main.php:1058
704
  msgid "6"
705
  msgstr ""
706
 
707
+ #: inc/admin/main.php:1059
708
  msgid "7"
709
  msgstr ""
710
 
711
+ #: inc/admin/main.php:1060
712
  msgid "8"
713
  msgstr ""
714
 
715
+ #: inc/admin/main.php:1061
716
  msgid "9"
717
  msgstr ""
718
 
719
+ #: inc/admin/main.php:1062
720
  msgid "10"
721
  msgstr ""
722
 
723
+ #: inc/admin/main.php:1067
724
  msgid "Padding around Images"
725
  msgstr ""
726
 
727
+ #: inc/admin/main.php:1077
728
  msgid "Disable mobile layout"
729
  msgstr ""
730
 
731
+ #: inc/admin/main.php:1082
732
  msgid ""
733
  "By default on mobile devices the layout automatically changes to use fewer "
734
  "columns. Checking this setting disables the mobile layout."
735
  msgstr ""
736
 
737
+ #: inc/admin/main.php:1096
738
  msgid "Sort Photos By"
739
  msgstr ""
740
 
741
+ #: inc/admin/main.php:1100
742
  msgid "Newest to oldest"
743
  msgstr ""
744
 
745
+ #: inc/admin/main.php:1101
746
  msgid "Random"
747
  msgstr ""
748
 
749
+ #: inc/admin/main.php:1106
750
  msgid "Image Resolution"
751
  msgstr ""
752
 
753
+ #: inc/admin/main.php:1111
754
  msgid "Auto-detect (recommended)"
755
  msgstr ""
756
 
757
+ #: inc/admin/main.php:1112
758
  msgid "Thumbnail (150x150)"
759
  msgstr ""
760
 
761
+ #: inc/admin/main.php:1113
762
  msgid "Medium (306x306)"
763
  msgstr ""
764
 
765
+ #: inc/admin/main.php:1114
766
  msgid "Full size (640x640)"
767
  msgstr ""
768
 
769
+ #: inc/admin/main.php:1117
770
  msgid "What does Auto-detect mean?"
771
  msgstr ""
772
 
773
+ #: inc/admin/main.php:1118
774
  msgid ""
775
  "Auto-detect means that the plugin automatically sets the image resolution "
776
  "based on the size of your feed."
777
  msgstr ""
778
 
779
+ #: inc/admin/main.php:1125 inc/admin/main.php:1169 inc/admin/main.php:1230
780
+ #: inc/admin/main.php:1315 inc/admin/main.php:1351 inc/admin/main.php:1407
781
+ #: inc/admin/main.php:1456 inc/admin/main.php:1565 inc/admin/main.php:1615
782
+ msgid "Show Pro Options"
783
+ msgstr ""
784
+
785
+ #: inc/admin/main.php:1129 inc/admin/main.php:1319
786
  msgid "Upgrade to Pro to enable these settings"
787
  msgstr ""
788
 
789
+ #: inc/admin/main.php:1134
790
  msgid "Media Type to Display"
791
  msgstr ""
792
 
793
+ #: inc/admin/main.php:1137
794
  msgid "All"
795
  msgstr ""
796
 
797
+ #: inc/admin/main.php:1138
798
  msgid "Photos only"
799
  msgstr ""
800
 
801
+ #: inc/admin/main.php:1139
802
  msgid "Videos only"
803
  msgstr ""
804
 
805
+ #: inc/admin/main.php:1145
806
  msgid "Enable Pop-up Lightbox"
807
  msgstr ""
808
 
809
+ #: inc/admin/main.php:1152
810
  msgid "Link Posts to URL in Caption (Shoppable feed)"
811
  msgstr ""
812
 
813
+ #: inc/admin/main.php:1155
814
  msgid "What will this do?"
815
  msgstr ""
816
 
817
+ #: inc/admin/main.php:1156
818
  msgid ""
819
  "Checking this box will change the link for each post to any url included in "
820
  "the caption for that Instagram post. The lightbox will be disabled. Visit <a "
821
+ "href='https://smashballoon.com/make-a-shoppable-feed?utm_source=plugin-"
822
+ "free&utm_campaign=sbi'>this link</a> to learn how this works."
823
  msgstr ""
824
 
825
+ #: inc/admin/main.php:1165
826
  msgid "Photo Hover Style"
827
  msgstr ""
828
 
829
+ #: inc/admin/main.php:1168
830
+ msgid "Upgrade to Pro to enable Photo Hover styles"
831
+ msgstr ""
832
+
833
+ #: inc/admin/main.php:1176
834
  msgid "Hover Background Color"
835
  msgstr ""
836
 
837
+ #: inc/admin/main.php:1182
838
  msgid "Hover Text Color"
839
  msgstr ""
840
 
841
+ #: inc/admin/main.php:1188
842
  msgid "Information to display"
843
  msgstr ""
844
 
845
+ #: inc/admin/main.php:1192
846
  msgid "Username"
847
  msgstr ""
848
 
849
+ #: inc/admin/main.php:1196
850
  msgid "Expand Icon"
851
  msgstr ""
852
 
853
+ #: inc/admin/main.php:1200
854
  msgid "Date"
855
  msgstr ""
856
 
857
+ #: inc/admin/main.php:1204
858
  msgid "Instagram Icon/Link"
859
  msgstr ""
860
 
861
+ #: inc/admin/main.php:1208
862
  msgid "Location"
863
  msgstr ""
864
 
865
+ #: inc/admin/main.php:1212 inc/admin/main.php:1348
866
  msgid "Caption"
867
  msgstr ""
868
 
869
+ #: inc/admin/main.php:1216
870
  msgid "Like/Comment Icons"
871
  msgstr ""
872
 
873
+ #: inc/admin/main.php:1229
874
+ msgid "Upgrade to Pro to enable Carousels"
875
  msgstr ""
876
 
877
+ #: inc/admin/main.php:1237
878
  msgid "Enable Carousel"
879
  msgstr ""
880
 
881
+ #: inc/admin/main.php:1241
882
  msgid "Enable this setting to create a carousel slider out of your photos."
883
  msgstr ""
884
 
885
+ #: inc/admin/main.php:1265
886
+ msgid "milliseconds"
887
  msgstr ""
888
 
889
+ #: inc/admin/main.php:1279
890
+ msgid "Show Feed Header"
891
  msgstr ""
892
 
893
+ #: inc/admin/main.php:1286
894
+ msgid "Header Size"
895
  msgstr ""
896
 
897
+ #: inc/admin/main.php:1290
898
+ msgid "Small"
899
  msgstr ""
900
 
901
+ #: inc/admin/main.php:1291
902
+ msgid "Medium"
903
  msgstr ""
904
 
905
+ #: inc/admin/main.php:1292
906
+ msgid "Large"
907
  msgstr ""
908
 
909
+ #: inc/admin/main.php:1297
910
  msgid "Show Bio Text"
911
  msgstr ""
912
 
913
+ #: inc/admin/main.php:1302
914
+ msgid "Only applies for Instagram accounts with bios"
915
  msgstr ""
916
 
917
+ #: inc/admin/main.php:1306
918
  msgid "Header Text Color"
919
  msgstr ""
920
 
921
+ #: inc/admin/main.php:1324
922
  msgid "Header Style"
923
  msgstr ""
924
 
925
+ #: inc/admin/main.php:1327
926
+ msgid "Standard"
927
  msgstr ""
928
 
929
+ #: inc/admin/main.php:1328
930
  msgid "Boxed"
931
  msgstr ""
932
 
933
+ #: inc/admin/main.php:1329
934
+ msgid "Centered"
 
 
 
 
935
  msgstr ""
936
 
937
+ #: inc/admin/main.php:1334
938
  msgid "Show Number of Followers"
939
  msgstr ""
940
 
941
+ #: inc/admin/main.php:1337
942
  msgid "This only applies when displaying photos from a User ID"
943
  msgstr ""
944
 
945
+ #: inc/admin/main.php:1350
946
+ msgid "Upgrade to Pro to enable Photo Captions"
947
+ msgstr ""
948
+
949
+ #: inc/admin/main.php:1358
950
  msgid "Show Caption"
951
  msgstr ""
952
 
953
+ #: inc/admin/main.php:1364
954
  msgid "Maximum Text Length"
955
  msgstr ""
956
 
957
+ #: inc/admin/main.php:1368
958
  msgid ""
959
  "The number of characters of text to display in the caption. An elipsis link "
960
  "will be added to allow the user to reveal more text if desired."
961
  msgstr ""
962
 
963
+ #: inc/admin/main.php:1372
964
  msgid "Text Color"
965
  msgstr ""
966
 
967
+ #: inc/admin/main.php:1378
968
  msgid "Text Size"
969
  msgstr ""
970
 
971
+ #: inc/admin/main.php:1381 inc/admin/main.php:1429
972
  msgid "Inherit from theme"
973
  msgstr ""
974
 
975
+ #: inc/admin/main.php:1404
976
+ msgid "Likes &amp; Comments"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
977
  msgstr ""
978
 
979
+ #: inc/admin/main.php:1406
980
+ msgid "Upgrade to Pro to enable Likes &amp; Comments"
981
  msgstr ""
982
 
983
+ #: inc/admin/main.php:1414
984
  msgid "Show Icons"
985
  msgstr ""
986
 
987
+ #: inc/admin/main.php:1420
988
  msgid "Icon Color"
989
  msgstr ""
990
 
991
+ #: inc/admin/main.php:1426
992
  msgid "Icon Size"
993
  msgstr ""
994
 
995
+ #: inc/admin/main.php:1452
996
  msgid "Lightbox Comments"
997
  msgstr ""
998
 
999
+ #: inc/admin/main.php:1455
1000
+ msgid "Upgrade to Pro to enable Comments"
1001
  msgstr ""
1002
 
1003
+ #: inc/admin/main.php:1464
1004
+ msgid "Show Comments in Lightbox"
1005
  msgstr ""
1006
 
1007
+ #: inc/admin/main.php:1469
1008
  msgid "This will remove the cached comments saved in the database"
1009
  msgstr ""
1010
 
1011
+ #: inc/admin/main.php:1473
1012
  msgid "Number of Comments"
1013
  msgstr ""
1014
 
1015
+ #: inc/admin/main.php:1476
1016
  msgid "Max number of latest comments."
1017
  msgstr ""
1018
 
1019
+ #: inc/admin/main.php:1478
1020
  msgid ""
1021
  "This is the maximum number of comments that will be shown in the lightbox. "
1022
  "If there are more comments available than the number set, only the latest "
1023
  "comments will be shown"
1024
  msgstr ""
1025
 
1026
+ #: inc/admin/main.php:1492
1027
  msgid "Show the 'Load More' button"
1028
  msgstr ""
1029
 
1030
+ #: inc/admin/main.php:1499 inc/admin/main.php:1537
1031
  msgid "Button Background Color"
1032
  msgstr ""
1033
 
1034
+ #: inc/admin/main.php:1506 inc/admin/main.php:1544
1035
  msgid "Button Text Color"
1036
  msgstr ""
1037
 
1038
+ #: inc/admin/main.php:1513 inc/admin/main.php:1551
1039
  msgid "Button Text"
1040
  msgstr ""
1041
 
1042
+ #: inc/admin/main.php:1529
1043
  msgid "Show the Follow button"
1044
  msgstr ""
1045
 
1046
+ #: inc/admin/main.php:1561
1047
  msgid "Post Filtering"
1048
  msgstr ""
1049
 
1050
+ #: inc/admin/main.php:1564
1051
+ msgid "Upgrade to Pro to enable Post Filtering options"
1052
+ msgstr ""
1053
+
1054
+ #: inc/admin/main.php:1573
1055
  msgid "Remove photos containing these words or hashtags"
1056
  msgstr ""
1057
 
1058
+ #: inc/admin/main.php:1576 inc/admin/main.php:1593
1059
+ msgid "Apply to:"
1060
+ msgstr ""
1061
+
1062
+ #: inc/admin/main.php:1577 inc/admin/main.php:1594
1063
+ msgid "All feeds"
1064
+ msgstr ""
1065
+
1066
+ #: inc/admin/main.php:1578 inc/admin/main.php:1595
1067
+ msgid "One feed"
1068
+ msgstr ""
1069
+
1070
+ #: inc/admin/main.php:1583 inc/admin/main.php:1600
1071
  msgid "Separate words/hashtags using commas"
1072
  msgstr ""
1073
 
1074
+ #: inc/admin/main.php:1585
1075
  msgid ""
1076
  "You can use this setting to remove photos which contain certain words or "
1077
  "hashtags in the caption. Separate multiple words or hashtags using commas."
1078
  msgstr ""
1079
 
1080
+ #: inc/admin/main.php:1590
1081
  msgid "Show photos containing these words or hashtags"
1082
  msgstr ""
1083
 
1084
+ #: inc/admin/main.php:1602
1085
  msgid ""
1086
  "You can use this setting to only show photos which contain certain words or "
1087
  "hashtags in the caption. For example, adding <code>sheep, cow, dog</code> "
1089
  "Separate multiple words or hashtags using commas."
1090
  msgstr ""
1091
 
1092
+ #: inc/admin/main.php:1611
1093
  msgid "Moderation"
1094
  msgstr ""
1095
 
1096
+ #: inc/admin/main.php:1614
1097
+ msgid "Upgrade to Pro to enable Moderation options"
1098
+ msgstr ""
1099
+
1100
+ #: inc/admin/main.php:1622
1101
  msgid "Moderation Type"
1102
  msgstr ""
1103
 
1104
+ #: inc/admin/main.php:1624
1105
+ msgid "Visual"
1106
+ msgstr ""
1107
+
1108
+ #: inc/admin/main.php:1625
1109
+ msgid "Manual"
1110
+ msgstr ""
1111
+
1112
+ #: inc/admin/main.php:1627
1113
  msgid ""
1114
  "<b>Visual Moderation Mode</b><br />This adds a button to each feed that will "
1115
  "allow you to hide posts, block users, and create white lists from the front "
1116
  "end using a visual interface. Visit <a href='https://smashballoon.com/guide-"
1117
+ "to-moderation-mode/?utm_source=plugin-free&utm_campaign=sbi' "
1118
+ "target='_blank'>this page</a> for details"
1119
  msgstr ""
1120
 
1121
+ #: inc/admin/main.php:1633
1122
  msgid "Only show posts by these users"
1123
  msgstr ""
1124
 
1125
+ #: inc/admin/main.php:1636
1126
  msgid "Separate usernames using commas"
1127
  msgstr ""
1128
 
1129
+ #: inc/admin/main.php:1639
1130
  msgid ""
1131
  "You can use this setting to show photos only from certain users in your "
1132
  "feed. Just enter the usernames here which you want to show. Separate "
1133
  "multiple usernames using commas."
1134
  msgstr ""
1135
 
1136
+ #: inc/admin/main.php:1643
1137
  msgid "White lists"
1138
  msgstr ""
1139
 
1140
+ #: inc/admin/main.php:1646
1141
  msgid "No white lists currently created"
1142
  msgstr ""
1143
 
1144
+ #: inc/admin/main.php:1649
1145
  msgid "Clear White Lists"
1146
  msgstr ""
1147
 
1148
+ #: inc/admin/main.php:1651
1149
  msgid "This will remove all of the white lists from the database"
1150
  msgstr ""
1151
 
1152
+ #: inc/admin/main.php:1662
1153
  msgid "Misc"
1154
  msgstr ""
1155
 
1156
+ #: inc/admin/main.php:1668
1157
  msgid ""
1158
  "<strong style=\"font-size: 15px;\">Custom CSS</strong><br />Enter your own "
1159
  "custom CSS in the box below"
1160
  msgstr ""
1161
 
1162
+ #: inc/admin/main.php:1678
1163
  msgid ""
1164
  "<strong style=\"font-size: 15px;\">Custom JavaScript</strong><br />Enter "
1165
  "your own custom JavaScript/jQuery in the box below"
1166
  msgstr ""
1167
 
1168
+ #: inc/admin/main.php:1692
1169
+ msgid "Are you using an Ajax powered theme?"
1170
+ msgstr ""
1171
+
1172
+ #: inc/admin/main.php:1697
1173
+ msgid ""
1174
+ "When navigating your site, if your theme uses Ajax to load content into your "
1175
+ "pages (meaning your page doesn't refresh) then check this setting. If you're "
1176
+ "not sure then please check with the theme author."
1177
+ msgstr ""
1178
+
1179
+ #: inc/admin/main.php:1702
1180
+ msgid "Image Resizing"
1181
+ msgstr ""
1182
+
1183
+ #: inc/admin/main.php:1705
1184
+ msgid "Disable Local Image Storing and Resizing"
1185
+ msgstr ""
1186
+
1187
+ #: inc/admin/main.php:1707
1188
+ msgid "Favor Local Images"
1189
+ msgstr ""
1190
+
1191
+ #: inc/admin/main.php:1709
1192
+ msgid "Reset Resized Images"
1193
+ msgstr ""
1194
+
1195
+ #: inc/admin/main.php:1711
1196
+ msgid ""
1197
+ "The plugin creates and stores resized versions of images in order to serve a "
1198
+ "more optimized resolution size in the feed. Click this button to clear all "
1199
+ "data related to resized images. Enable the setting to favor local images to "
1200
+ "always use a local, resized image if one is available."
1201
+ msgstr ""
1202
+
1203
+ #: inc/admin/main.php:1716
1204
+ msgid "Enqueue JS file in head"
1205
  msgstr ""
1206
 
1207
+ #: inc/admin/main.php:1720
1208
+ msgid ""
1209
+ "Check this box if you'd like to enqueue the JavaScript file for the plugin "
1210
+ "in the head instead of the footer."
1211
+ msgstr ""
1212
+
1213
+ #: inc/admin/main.php:1725
1214
+ msgid "Disable JS Image Loading"
1215
+ msgstr ""
1216
+
1217
+ #: inc/admin/main.php:1729
1218
+ msgid "Check this box to have images loaded server side instead of with JS."
1219
+ msgstr ""
1220
+
1221
+ #: inc/admin/main.php:1734
1222
+ msgid "Enable Backup Caching"
1223
+ msgstr ""
1224
+
1225
+ #: inc/admin/main.php:1737
1226
+ msgid "Clear Backup Cache"
1227
+ msgstr ""
1228
+
1229
+ #: inc/admin/main.php:1739
1230
+ msgid ""
1231
+ "Every feed will save a duplicate version of itself in the database to be "
1232
+ "used if the normal cache is not available."
1233
+ msgstr ""
1234
+
1235
+ #: inc/admin/main.php:1745
1236
+ msgid "Load initial posts with AJAX"
1237
+ msgstr ""
1238
+
1239
+ #: inc/admin/main.php:1750
1240
+ msgid ""
1241
+ "Initial posts will be loaded using AJAX instead of added to the page "
1242
+ "directly. If you use page caching, this will allow the feed to update "
1243
+ "according to the \"Check for new posts every\" setting on the \"Configure\" "
1244
+ "tab."
1245
+ msgstr ""
1246
+
1247
+ #: inc/admin/main.php:1756
1248
+ msgid "Force cache to clear on interval"
1249
+ msgstr ""
1250
+
1251
+ #: inc/admin/main.php:1762
1252
+ msgid "No"
1253
+ msgstr ""
1254
+
1255
+ #: inc/admin/main.php:1766
1256
+ msgid ""
1257
+ "If you're experiencing an issue with the plugin not auto-updating then you "
1258
+ "can set this to 'Yes' to run a scheduled event behind the scenes which "
1259
+ "forces the plugin cache to clear on a regular basis and retrieve new data "
1260
+ "from Instagram."
1261
+ msgstr ""
1262
+
1263
+ #: inc/admin/main.php:1774
1264
+ msgid "Disable Icon Font"
1265
+ msgstr ""
1266
+
1267
+ #: inc/admin/main.php:1780
1268
+ msgid "Icon Method"
1269
+ msgstr ""
1270
+
1271
+ #: inc/admin/main.php:1784
1272
+ msgid "Font File"
1273
+ msgstr ""
1274
+
1275
+ #: inc/admin/main.php:1787
1276
+ msgid ""
1277
+ "This plugin uses SVGs for all icons in the feed. Use this setting to switch "
1278
+ "to font icons."
1279
+ msgstr ""
1280
+
1281
+ #: inc/admin/main.php:1791
1282
+ msgid "Enable Custom Templates"
1283
+ msgstr ""
1284
+
1285
+ #: inc/admin/main.php:1796
1286
+ msgid ""
1287
+ "The default html for the feed can be replaced with custom templates added to "
1288
+ "your theme's folder. Enable this setting to use these templates."
1289
+ msgstr ""
1290
+
1291
+ #: inc/admin/main.php:1806
1292
  msgid ""
1293
  "Next Step: <a href=\"?page=sb-instagram-feed&tab=display\">Display your "
1294
  "Feed</a>"
1295
  msgstr ""
1296
 
1297
+ #: inc/admin/main.php:1817
1298
  msgid "Display your Feed"
1299
  msgstr ""
1300
 
1301
+ #: inc/admin/main.php:1818
1302
  msgid ""
1303
  "Copy and paste the following shortcode directly into the page, post or "
1304
  "widget where you'd like the feed to show up:"
1305
  msgstr ""
1306
 
1307
+ #: inc/admin/main.php:1821
 
 
 
 
1308
  msgid "Multiple Feeds"
1309
  msgstr ""
1310
 
1311
+ #: inc/admin/main.php:1822
1312
  msgid ""
1313
  "If you'd like to display multiple feeds then you can set different settings "
1314
  "directly in the shortcode like so:"
1315
  msgstr ""
1316
 
1317
+ #: inc/admin/main.php:1824
1318
  msgid ""
1319
  "You can display as many different feeds as you like, on either the same page "
1320
  "or on different pages, by just using the shortcode options below. For "
1321
  "example:"
1322
  msgstr ""
1323
 
1324
+ #: inc/admin/main.php:1829
1325
  msgid "See the table below for a full list of available shortcode options:"
1326
  msgstr ""
1327
 
1328
+ #: inc/admin/main.php:1831
1329
  msgid "Pro version only"
1330
  msgstr ""
1331
 
1332
+ #: inc/admin/main.php:1836
1333
  msgid "Shortcode option"
1334
  msgstr ""
1335
 
1336
+ #: inc/admin/main.php:1837
1337
  msgid "Description"
1338
  msgstr ""
1339
 
1340
+ #: inc/admin/main.php:1838
1341
  msgid "Example"
1342
  msgstr ""
1343
 
1344
+ #: inc/admin/main.php:1841
1345
  msgid "Configure Options"
1346
  msgstr ""
1347
 
1348
+ #: inc/admin/main.php:1844
1349
  msgid ""
1350
  "Display photos from a User ID (user)<br />Display posts from a Hashtag "
1351
+ "(hashtag)"
 
1352
  msgstr ""
1353
 
1354
+ #: inc/admin/main.php:1849
1355
+ msgid ""
1356
+ "Your Instagram User Name. This must be from a connected account on the "
1357
+ "\"Configure\" tab."
1358
  msgstr ""
1359
 
1360
+ #: inc/admin/main.php:1854
1361
  msgid "Any hashtag. Separate multiple IDs by commas."
1362
  msgstr ""
1363
 
1364
+ #: inc/admin/main.php:1858
 
 
 
 
 
 
 
 
 
 
1365
  msgid "Customize Options"
1366
  msgstr ""
1367
 
1368
+ #: inc/admin/main.php:1861
1369
  msgid "The width of your feed. Any number."
1370
  msgstr ""
1371
 
1372
+ #: inc/admin/main.php:1866
1373
  msgid "The unit of the width. 'px' or '%'"
1374
  msgstr ""
1375
 
1376
+ #: inc/admin/main.php:1871
1377
  msgid "The height of your feed. Any number."
1378
  msgstr ""
1379
 
1380
+ #: inc/admin/main.php:1876
1381
  msgid "The unit of the height. 'px' or '%'"
1382
  msgstr ""
1383
 
1384
+ #: inc/admin/main.php:1881
1385
  msgid "The background color of the feed. Any hex color code."
1386
  msgstr ""
1387
 
1388
+ #: inc/admin/main.php:1886
1389
  msgid "Add a CSS class to the feed container"
1390
  msgstr ""
1391
 
1392
+ #: inc/admin/main.php:1890
1393
+ msgid "Layout Options"
1394
  msgstr ""
1395
 
1396
+ #: inc/admin/main.php:1893
1397
+ msgid ""
1398
+ "How posts are arranged visually in the feed. There are four layouts: Grid, "
1399
+ "Carousel Slider, Masonry Grid, or Highlight Grid. Options:"
1400
  msgstr ""
1401
 
1402
+ #: inc/admin/main.php:1898
1403
  msgid "The number of photos to display initially. Maximum is 33."
1404
  msgstr ""
1405
 
1406
+ #: inc/admin/main.php:1903
1407
+ msgid ""
1408
+ "The number of photos to display initially for mobile screens (smaller than "
1409
+ "480 pixels)."
1410
+ msgstr ""
1411
+
1412
+ #: inc/admin/main.php:1908
1413
  msgid "The number of columns in your feed. 1 - 10."
1414
  msgstr ""
1415
 
1416
+ #: inc/admin/main.php:1913
1417
+ msgid ""
1418
+ "The number of columns in your feed for mobile screens (smaller than 480 "
1419
+ "pixels)."
1420
  msgstr ""
1421
 
1422
+ #: inc/admin/main.php:1918
1423
  msgid "The spacing around your photos"
1424
  msgstr ""
1425
 
1426
+ #: inc/admin/main.php:1923
1427
  msgid "The unit of the padding. 'px' or '%'"
1428
  msgstr ""
1429
 
1430
+ #: inc/admin/main.php:1927
1431
+ msgid "Carousel Options"
1432
+ msgstr ""
1433
+
1434
+ #: inc/admin/main.php:1930
1435
+ msgid "Choose 1 or 2 rows of posts in the carousel"
1436
+ msgstr ""
1437
+
1438
+ #: inc/admin/main.php:1935
1439
+ msgid "Infinitely loop through posts or rewind"
1440
+ msgstr ""
1441
+
1442
+ #: inc/admin/main.php:1940
1443
+ msgid "Display directional arrows on the carousel"
1444
+ msgstr ""
1445
+
1446
+ #: inc/admin/main.php:1945
1447
+ msgid "Display pagination links below the carousel"
1448
+ msgstr ""
1449
+
1450
+ #: inc/admin/main.php:1950
1451
+ msgid "Make the carousel autoplay"
1452
+ msgstr ""
1453
+
1454
+ #: inc/admin/main.php:1955
1455
+ msgid "The interval time between slides for autoplay. Time in miliseconds."
1456
+ msgstr ""
1457
+
1458
+ #: inc/admin/main.php:1959
1459
+ msgid "Highlight Options"
1460
+ msgstr ""
1461
+
1462
+ #: inc/admin/main.php:1962
1463
+ msgid ""
1464
+ "Choose from 3 different ways of highlighting posts including by pattern, "
1465
+ "hashtag, post id or. Options:"
1466
+ msgstr ""
1467
+
1468
+ #: inc/admin/main.php:1967
1469
+ msgid "How often a post is highlighted."
1470
+ msgstr ""
1471
+
1472
+ #: inc/admin/main.php:1972
1473
+ msgid "When to start the highlight pattern."
1474
+ msgstr ""
1475
+
1476
+ #: inc/admin/main.php:1977
1477
+ msgid "Highlight posts with these hashtags."
1478
+ msgstr ""
1479
+
1480
+ #: inc/admin/main.php:1985
1481
+ msgid "Photos Options"
1482
+ msgstr ""
1483
+
1484
+ #: inc/admin/main.php:1988
1485
+ msgid "Sort the posts by Newest to Oldest (none) or Random (random)"
1486
+ msgstr ""
1487
+
1488
+ #: inc/admin/main.php:1993
1489
+ msgid ""
1490
+ "The resolution/size of the photos including full, medium, thumbnail, and "
1491
+ "auto (based on size of image on page). Options:"
1492
+ msgstr ""
1493
+
1494
+ #: inc/admin/main.php:1998
1495
+ msgid "Display all media, only photos, or only videos"
1496
+ msgstr ""
1497
+
1498
+ #: inc/admin/main.php:2003
1499
  msgid "Whether to disable the photo Lightbox. It is enabled by default."
1500
  msgstr ""
1501
 
1502
+ #: inc/admin/main.php:2008
1503
+ msgid "Disable the mobile layout. Options:"
1504
  msgstr ""
1505
 
1506
+ #: inc/admin/main.php:2013
1507
+ msgid ""
1508
+ "Whether to use urls in captions for the photo's link instead of linking to "
1509
+ "instagram.com."
1510
  msgstr ""
1511
 
1512
+ #: inc/admin/main.php:2017
1513
+ msgid "Lightbox Comments Options"
1514
  msgstr ""
1515
 
1516
+ #: inc/admin/main.php:2020
1517
+ msgid "Whether to show comments in the lightbox for this feed."
1518
  msgstr ""
1519
 
1520
+ #: inc/admin/main.php:2025
1521
+ msgid "Number of comments to show starting from the most recent."
1522
  msgstr ""
1523
 
1524
+ #: inc/admin/main.php:2029
1525
+ msgid "Photos Hover Style Options"
1526
  msgstr ""
1527
 
1528
+ #: inc/admin/main.php:2032
1529
+ msgid "The background color when hovering over a photo. Any hex color code."
1530
  msgstr ""
1531
 
1532
+ #: inc/admin/main.php:2037
1533
+ msgid "The text/icon color when hovering over a photo. Any hex color code."
1534
  msgstr ""
1535
 
1536
+ #: inc/admin/main.php:2042
1537
+ msgid ""
1538
+ "The info to display when hovering over the photo such as the user name, post "
1539
+ "date, Instagram icon, location, caption, and like counts. Options:"
1540
  msgstr ""
1541
 
1542
+ #: inc/admin/main.php:2046
1543
  msgid "Header Options"
1544
  msgstr ""
1545
 
1546
+ #: inc/admin/main.php:2049
1547
+ msgid "Whether to show the feed Header. Options:"
1548
+ msgstr ""
1549
+
1550
+ #: inc/admin/main.php:2054
1551
+ msgid "Display the bio in the header. Options:"
1552
  msgstr ""
1553
 
1554
+ #: inc/admin/main.php:2059
1555
+ msgid "Size of the header including small, medium and large. Options:"
1556
  msgstr ""
1557
 
1558
+ #: inc/admin/main.php:2064
1559
  msgid "The color of the Header text. Any hex color code."
1560
  msgstr ""
1561
 
1562
+ #: inc/admin/main.php:2068
1563
  msgid "'Load More' Button Options"
1564
  msgstr ""
1565
 
1566
+ #: inc/admin/main.php:2071
1567
+ msgid "Whether to show the 'Load More' button. Options:"
1568
  msgstr ""
1569
 
1570
+ #: inc/admin/main.php:2076 inc/admin/main.php:2098
1571
  msgid "The background color of the button. Any hex color code."
1572
  msgstr ""
1573
 
1574
+ #: inc/admin/main.php:2081 inc/admin/main.php:2103
1575
  msgid "The text color of the button. Any hex color code."
1576
  msgstr ""
1577
 
1578
+ #: inc/admin/main.php:2086 inc/admin/main.php:2108
1579
  msgid "The text used for the button."
1580
  msgstr ""
1581
 
1582
+ #: inc/admin/main.php:2090
1583
  msgid "'Follow on Instagram' Button Options"
1584
  msgstr ""
1585
 
1586
+ #: inc/admin/main.php:2093
1587
+ msgid "Whether to show the 'Follow on Instagram' button. Options:"
1588
  msgstr ""
1589
 
1590
+ #: inc/admin/main.php:2112
1591
  msgid "Caption Options"
1592
  msgstr ""
1593
 
1594
+ #: inc/admin/main.php:2115
1595
+ msgid "Whether to show the photo caption. Options:"
1596
  msgstr ""
1597
 
1598
+ #: inc/admin/main.php:2120
1599
  msgid "The number of characters of the caption to display"
1600
  msgstr ""
1601
 
1602
+ #: inc/admin/main.php:2125
1603
  msgid "The text color of the caption. Any hex color code."
1604
  msgstr ""
1605
 
1606
+ #: inc/admin/main.php:2130
1607
  msgid "The size of the caption text. Any number."
1608
  msgstr ""
1609
 
1610
+ #: inc/admin/main.php:2134
1611
  msgid "Likes &amp; Comments Options"
1612
  msgstr ""
1613
 
1614
+ #: inc/admin/main.php:2137
1615
+ msgid "Whether to show the Likes &amp; Comments. Options:"
1616
  msgstr ""
1617
 
1618
+ #: inc/admin/main.php:2142
1619
  msgid "The color of the Likes &amp; Comments. Any hex color code."
1620
  msgstr ""
1621
 
1622
+ #: inc/admin/main.php:2147
1623
  msgid "The size of the Likes &amp; Comments. Any number."
1624
  msgstr ""
1625
 
1626
+ #: inc/admin/main.php:2151
1627
  msgid "Post Filtering Options"
1628
  msgstr ""
1629
 
1630
+ #: inc/admin/main.php:2154
1631
  msgid "Remove posts which contain certain words or hashtags in the caption."
1632
  msgstr ""
1633
 
1634
+ #: inc/admin/main.php:2159
1635
  msgid ""
1636
  "Only display posts which contain certain words or hashtags in the caption."
1637
  msgstr ""
1638
 
1639
+ #: inc/admin/main.php:2163
1640
+ msgid "Auto Load More on Scroll"
1641
+ msgstr ""
1642
+
1643
+ #: inc/admin/main.php:2166
1644
+ msgid "Load more posts automatically as the user scrolls down the page."
1645
+ msgstr ""
1646
+
1647
+ #: inc/admin/main.php:2171
1648
+ msgid ""
1649
+ "Distance before the end of feed or page that triggers the loading of more "
1650
+ "posts."
1651
+ msgstr ""
1652
+
1653
+ #: inc/admin/main.php:2188
1654
+ msgid "Need help?"
1655
+ msgstr ""
1656
+
1657
+ #: inc/admin/main.php:2193
1658
  msgid "Setup Directions"
1659
  msgstr ""
1660
 
1661
+ #: inc/admin/main.php:2194
1662
  msgid "A step-by-step guide on how to setup and use the plugin."
1663
  msgstr ""
1664
 
1665
+ #: inc/admin/main.php:2200
1666
  msgid "Watch a Video"
1667
  msgstr ""
1668
 
1669
+ #: inc/admin/main.php:2201
1670
  msgid ""
1671
  "Watch a short video demonstrating how to set up, customize and use the "
1672
  "plugin.<br /><b>Please note</b> that the video shows the set up and use of "
1673
+ "the <b><a href='https://smashballoon.com/instagram-feed/?utm_source=plugin-"
1674
+ "free&utm_campaign=sbi' target='_blank'>Pro version</a></b> of the plugin, "
1675
+ "but the process is the same for this free version. The only difference is "
1676
+ "some of the features available."
1677
  msgstr ""
1678
 
1679
+ #: inc/admin/main.php:2211
1680
  msgid "FAQs and Docs"
1681
  msgstr ""
1682
 
1683
+ #: inc/admin/main.php:2212
1684
  msgid ""
1685
  "View our expansive library of FAQs and documentation to help solve your "
1686
  "problem as quickly as possible."
1687
  msgstr ""
1688
 
1689
+ #: inc/admin/main.php:2218
1690
+ msgid "FAQs"
 
 
1691
  msgstr ""
1692
 
1693
+ #: inc/admin/main.php:2219
1694
  msgid ""
1695
+ "<a href=\"https://smashballoon.com/my-photos-wont-load/?utm_source=plugin-"
1696
+ "free&utm_campaign=sbi\" target=\"_blank\">My Instagram Feed Won't Load</a>"
1697
  msgstr ""
1698
 
1699
+ #: inc/admin/main.php:2220
1700
  msgid ""
1701
+ "<a href=\"https://smashballoon.com/my-instagram-access-token-keep-expiring/?"
1702
+ "utm_source=plugin-free&utm_campaign=sbi\" target=\"_blank\">My Access Token "
1703
+ "Keeps Expiring</a>"
1704
  msgstr ""
1705
 
1706
+ #: inc/admin/main.php:2221
1707
+ msgid "See All"
1708
+ msgstr ""
1709
+
1710
+ #: inc/admin/main.php:2225
1711
+ msgid "Documentation"
1712
+ msgstr ""
1713
+
1714
+ #: inc/admin/main.php:2226
1715
  msgid ""
1716
+ "<a href=\"https://smashballoon.com/instagram-feed/free?utm_source=plugin-"
1717
+ "free&utm_campaign=sbi\" target=\"_blank\">Installation and Configuration</a>"
1718
  msgstr ""
1719
 
1720
+ #: inc/admin/main.php:2227
1721
  msgid ""
1722
+ "<a href=\"https://smashballoon.com/display-multiple-instagram-feeds/?"
1723
+ "utm_source=plugin-free&utm_campaign=sbi\" target=\"_blank\">Displaying "
1724
+ "multiple feeds</a>"
1725
  msgstr ""
1726
 
1727
+ #: inc/admin/main.php:2228
1728
  msgid ""
1729
+ "<a href=\"https://smashballoon.com/instagram-feed-faq/customization/?"
1730
+ "utm_source=plugin-free&utm_campaign=sbi\" target=\"_blank\">Customizing your "
1731
+ "Feed</a>"
1732
  msgstr ""
1733
 
1734
+ #: inc/admin/main.php:2235
1735
  msgid "Request Support"
1736
  msgstr ""
1737
 
1738
+ #: inc/admin/main.php:2236
1739
  msgid ""
1740
  "Still need help? Submit a ticket and one of our support experts will get "
1741
  "back to you as soon as possible.<br /><b>Important:</b> Please include your "
1742
  "<b>System Info</b> below with all support requests."
1743
  msgstr ""
1744
 
1745
+ #: inc/admin/main.php:2242
1746
  msgid ""
1747
  "System Info &nbsp; <i style=\"color: #666; font-size: 11px; font-weight: "
1748
  "normal;\">Click the text below to select all</i>"
1749
  msgstr ""
1750
 
1751
+ #: inc/admin/main.php:2499
1752
+ msgid "Reset Error Log"
1753
+ msgstr ""
1754
+
1755
+ #: inc/admin/main.php:2507
1756
+ msgid "Display your feed"
1757
+ msgstr ""
1758
+
1759
+ #: inc/admin/main.php:2508
1760
+ msgid ""
1761
+ "Copy and paste this shortcode directly into the page, post or widget where "
1762
+ "you'd like to display the feed:"
1763
+ msgstr ""
1764
+
1765
+ #: inc/admin/main.php:2509
1766
+ msgid ""
1767
+ "Find out how to display <a href=\"?page=sb-instagram-feed&amp;tab=display"
1768
+ "\">multiple feeds</a>."
1769
+ msgstr ""
1770
+
1771
+ #: inc/admin/main.php:2513
1772
  msgid "Instagram Feed Pro"
1773
  msgstr ""
1774
 
1775
+ #: inc/admin/main.php:2516
1776
+ msgid ""
1777
+ "Check out our other free plugins: <a href=\"https://wordpress.org/plugins/"
1778
+ "custom-facebook-feed/\" target=\"_blank\">Facebook</a> and <a href=\"https://"
1779
+ "wordpress.org/plugins/custom-twitter-feeds/\" target=\"_blank\">Twitter</a>."
1780
  msgstr ""
1781
 
1782
+ #: inc/admin/main.php:2519
1783
  msgid "Like the plugin? Help spread the word!"
1784
  msgstr ""
1785
 
1786
+ #: inc/class-sb-instagram-api-connect.php:202
1787
+ #: inc/class-sb-instagram-api-connect.php:278
1788
+ #, php-format
1789
+ msgid "Error: Access Token for %s is not valid or has expired."
1790
+ msgstr ""
1791
+
1792
+ #: inc/class-sb-instagram-api-connect.php:202
1793
+ #: inc/class-sb-instagram-api-connect.php:278
1794
+ #: inc/class-sb-instagram-settings.php:380
1795
+ #: inc/class-sb-instagram-settings.php:430
1796
+ msgid "Feed will not update."
1797
+ msgstr ""
1798
+
1799
+ #: inc/class-sb-instagram-api-connect.php:203
1800
  msgid ""
1801
+ "There's an issue with the Instagram Access Token that you are using. Please "
1802
+ "obtain a new Access Token on the plugin's Settings page.<br />If you "
1803
+ "continue to have an issue with your Access Token then please see <a href="
1804
+ "\"https://smashballoon.com/my-instagram-access-token-keep-expiring/\" target="
1805
+ "\"_blank\" rel=\"noopener\">this FAQ</a> for more information."
1806
  msgstr ""
1807
 
1808
+ #: inc/class-sb-instagram-api-connect.php:246
1809
+ msgid "Error: Hashtag limit of 30 unique hashtags per week has been reached."
1810
  msgstr ""
1811
 
1812
+ #: inc/class-sb-instagram-api-connect.php:246
1813
+ #, php-format
1814
+ msgid "Feed may not display until %s."
1815
+ msgstr ""
1816
+
1817
+ #: inc/class-sb-instagram-api-connect.php:247
1818
+ msgid ""
1819
+ "If you need to display more than 30 hashtag feeds on your site, consider "
1820
+ "connecting an additional business account from a separate Instagram and "
1821
+ "Facebook account."
1822
+ msgstr ""
1823
+
1824
+ #: inc/class-sb-instagram-api-connect.php:253
1825
+ msgid "Error: Hashtag does not exist."
1826
+ msgstr ""
1827
+
1828
+ #: inc/class-sb-instagram-api-connect.php:254
1829
+ msgid "Please make a post that uses this hashtag to display this feed."
1830
+ msgstr ""
1831
+
1832
+ #: inc/class-sb-instagram-api-connect.php:279
1833
  msgid ""
1834
+ "There's an issue with the Instagram Access Token that you are using. Please "
1835
+ "obtain a new Access Token on the plugin's Settings page."
1836
+ msgstr ""
1837
+
1838
+ #: inc/class-sb-instagram-api-connect.php:313
1839
+ #, php-format
1840
+ msgid "Error connecting to %s."
1841
+ msgstr ""
1842
+
1843
+ #: inc/class-sb-instagram-feed.php:623
1844
+ msgid "Error: API requests are being delayed for this account."
1845
+ msgstr ""
1846
+
1847
+ #: inc/class-sb-instagram-feed.php:623
1848
+ #: inc/class-sb-instagram-posts-manager.php:381
1849
+ msgid "New posts will not be retrieved."
1850
+ msgstr ""
1851
+
1852
+ #: inc/class-sb-instagram-feed.php:624
1853
+ msgid ""
1854
+ "There may be an issue with the Instagram Access Token that you are using. "
1855
+ "Your server might also be unable to connect to Instagram at this time."
1856
+ msgstr ""
1857
+
1858
+ #: inc/class-sb-instagram-feed.php:847
1859
+ msgid "Error: No posts found."
1860
+ msgstr ""
1861
+
1862
+ #: inc/class-sb-instagram-feed.php:848
1863
+ msgid "Make sure this account has posts available on instagram.com."
1864
+ msgstr ""
1865
+
1866
+ #: inc/class-sb-instagram-feed.php:923
1867
+ msgid ""
1868
+ "Error: admin-ajax.php test was not successful. Some features may not be "
1869
+ "available."
1870
+ msgstr ""
1871
+
1872
+ #: inc/class-sb-instagram-feed.php:979
1873
+ msgid "No posts found."
1874
+ msgstr ""
1875
+
1876
+ #: inc/class-sb-instagram-post.php:391
1877
+ msgid "Error updating post."
1878
+ msgstr ""
1879
+
1880
+ #: inc/class-sb-instagram-post.php:450
1881
+ msgid "Error inserting post."
1882
+ msgstr ""
1883
+
1884
+ #: inc/class-sb-instagram-posts-manager.php:292 instagram-feed.php:176
1885
+ #: instagram-feed.php:198
1886
+ msgid "There was an error creating the folder for storing resized images."
1887
+ msgstr ""
1888
+
1889
+ #: inc/class-sb-instagram-posts-manager.php:381
1890
+ msgid "Error: API requests are being delayed."
1891
+ msgstr ""
1892
+
1893
+ #: inc/class-sb-instagram-posts-manager.php:382
1894
+ msgid ""
1895
+ "There may be an issue with the Instagram access token that you are using. "
1896
+ "Your server might also be unable to connect to Instagram at this time."
1897
+ msgstr ""
1898
+
1899
+ #: inc/class-sb-instagram-settings.php:380
1900
+ #, php-format
1901
+ msgid "Error: There is no connected account for the user %s."
1902
+ msgstr ""
1903
+
1904
+ #: inc/class-sb-instagram-settings.php:430
1905
+ #, php-format
1906
+ msgid "Error: There is no connected account for the user %s"
1907
+ msgstr ""
1908
+
1909
+ #: inc/if-functions.php:43 inc/if-functions.php:394
1910
+ msgid "This error message is only visible to WordPress admins"
1911
+ msgstr ""
1912
+
1913
+ #: inc/if-functions.php:44
1914
+ msgid "Error: No connected account."
1915
+ msgstr ""
1916
+
1917
+ #: inc/if-functions.php:45
1918
+ msgid "Please go to the Instagram Feed settings page to connect an account."
1919
+ msgstr ""
1920
+
1921
+ #: inc/if-functions.php:340
1922
+ msgid "Please connect an account on the Instagram Feed plugin Settings page."
1923
+ msgstr ""
1924
+
1925
+ #: instagram-feed.php:303 instagram-feed.php:327
1926
+ msgid ""
1927
+ "There was an error when trying to create the database tables used for "
1928
+ "resizing images."
1929
+ msgstr ""
1930
+
1931
+ #: templates/item.php:25
1932
+ msgid "Image for post"
1933
+ msgstr ""
1934
+
1935
+ #: templates/item.php:31
1936
+ #, php-format
1937
+ msgid "Instagram post %s"
1938
  msgstr ""
templates/feed.php CHANGED
@@ -3,7 +3,7 @@
3
  * Custom Feeds for Instagram Main Template
4
  * Creates the wrapping HTML and adds settings as attributes
5
  *
6
- * @version 2.0 Custom Feeds for Instagram Free by Smash Balloon
7
  *
8
  */
9
  // Don't load directly
@@ -39,6 +39,15 @@ if ( $settings['showheader'] && ! empty( $posts ) && $settings['headeroutside']
39
 
40
  <?php if ( ! empty( $posts ) ) { include sbi_get_feed_template_part( 'footer', $settings ); } ?>
41
 
42
- <?php do_action( 'sbi_before_feed_end', $this, $feed_id ); ?>
43
-
 
 
 
 
 
 
 
 
 
44
  </div>
3
  * Custom Feeds for Instagram Main Template
4
  * Creates the wrapping HTML and adds settings as attributes
5
  *
6
+ * @version 2.1 Instagram Feed by Smash Balloon
7
  *
8
  */
9
  // Don't load directly
39
 
40
  <?php if ( ! empty( $posts ) ) { include sbi_get_feed_template_part( 'footer', $settings ); } ?>
41
 
42
+ <?php
43
+ /**
44
+ * Things to add before the closing "div" tag for the main feed element. Several
45
+ * features rely on this hook such as local images and some error messages
46
+ *
47
+ * @param object SB_Instagram_Feed
48
+ * @param string $feed_id
49
+ *
50
+ * @since 2.1/5.2
51
+ */
52
+ do_action( 'sbi_before_feed_end', $this, $feed_id ); ?>
53
  </div>
templates/footer.php CHANGED
@@ -3,7 +3,7 @@
3
  * Custom Feeds for Instagram Footer Template
4
  * Adds pagination and html for errors and resized images
5
  *
6
- * @version 2.0 Custom Feeds for Instagram Free by Smash Balloon
7
  *
8
  */
9
 
3
  * Custom Feeds for Instagram Footer Template
4
  * Adds pagination and html for errors and resized images
5
  *
6
+ * @version 2.1 Instagram Feed by Smash Balloon
7
  *
8
  */
9
 
templates/header.php CHANGED
@@ -3,7 +3,7 @@
3
  * Custom Feeds for Instagram Header Template
4
  * Adds account information and an avatar to the top of the feed
5
  *
6
- * @version 2.0 Custom Feeds for Instagram Free by Smash Balloon
7
  *
8
  */
9
 
3
  * Custom Feeds for Instagram Header Template
4
  * Adds account information and an avatar to the top of the feed
5
  *
6
+ * @version 2.1 Instagram Feed by Smash Balloon
7
  *
8
  */
9
 
templates/item.php CHANGED
@@ -3,7 +3,7 @@
3
  * Custom Feeds for Instagram Item Template
4
  * Adds an image, link, and other data for each post in the feed
5
  *
6
- * @version 2.0 Custom Feeds for Instagram Free by Smash Balloon
7
  *
8
  */
9
 
3
  * Custom Feeds for Instagram Item Template
4
  * Adds an image, link, and other data for each post in the feed
5
  *
6
+ * @version 2.1 Instagram Feed by Smash Balloon
7
  *
8
  */
9