Speed Booster Pack - Version 3.8.1

Version Description

  • Speed Booster Pack turns five! We're celebrating SBP's birthday (20th May) with a better (WAY better) admin interface. We changed places of some of the options in the General and Advanced tabs, and put a "be careful" warning on top of the Advanced, CDN and Google Analytics tabs. We also updated the CSS, and added a sidebar which has some speed test links that could turn into speed test widgets in the future!
  • New: Added a "Disable jQuery Migrate" option.
  • Fixed: Added a WooCommerce check for the "Disable cart fragments" option.
  • Updated: The POT file is recreated and will be updated on each feature update.
  • Removed: The "Load JS from Google Libraries" option.
  • Removed: The "Disable all above CSS options on mobile devices" option.
  • Removed: The "Disable XML-RPC" option.
  • Removed: The "Remove extra Font Awesome styles" option. This will be added later, but needs a rewrite.
  • Removed: Some very unnecessary CSS styling both in the plugin's main style.css file and a separate, jQuery UI-related file.
Download this release

Release Info

Developer optimocha
Plugin Icon 128x128 Speed Booster Pack
Version 3.8.1
Comparing to
See all releases

Code changes from version 3.8 to 3.8.1

css/style.css CHANGED
@@ -9,33 +9,38 @@ html {
9
  box-sizing: inherit;
10
  }
11
 
12
- .sb-pack-show {
13
- display: block;
 
 
 
14
  }
15
 
16
- .sb-pack-hide {
17
- display: none;
 
18
  }
19
 
20
- h3.sbp-emphasize {
21
- color: #fa5148;
 
 
22
  }
23
 
24
- img.sbp-sp {
25
- float: left;
26
- margin-right: 20px;
27
  }
28
 
29
- p.description-link {
30
- margin-top: -5px;
31
  }
32
 
33
- .wrap .sb-pack .welcome-panel .welcome-panel-column:first-child {
34
- display: block !important;
35
  }
36
 
37
- .wrap .sb-pack .welcome-panel h4 {
38
- margin: 1.33em 0 20px;
39
  }
40
 
41
  .wrap .sb-pack .sbp-inline-wrap {
@@ -44,15 +49,12 @@ p.description-link {
44
  vertical-align: top;
45
  }
46
 
47
- .wrap .sb-pack .sbp-more-width {
48
- width: 300px;
49
- }
50
-
51
  .wrap .sb-pack .sbp-all-enqueued {
52
  background-color: #fcfcfc;
53
  padding: 5px 0px 10px;
54
  border: 1px solid #ddd;
55
  width: auto;
 
56
  }
57
 
58
  .wrap .sb-pack .sbp-width {
@@ -78,83 +80,16 @@ p.description-link {
78
  max-width: 73%;
79
  }
80
 
81
- .wrap .sb-pack .sbp-title-div {
82
- height: 50px;
83
- clear: both;
84
- }
85
-
86
- .wrap .sb-pack .sbp-amount {
87
- background-color: transparent;
88
- border: medium none;
89
- box-shadow: none;
90
- }
91
-
92
- .wrap .sb-pack .sbp-slider {
93
- width: 40%;
94
- }
95
-
96
  .wrap .sb-pack p {
97
  color: #464646;
98
  }
99
 
100
- .wrap .sb-pack p.sp-link {
101
- text-align: center;
102
- margin-bottom: 20px;
103
- }
104
-
105
- .wrap .sb-pack .td-margin {
106
- margin: 1.5em 0 1.5em;
107
- }
108
-
109
  .wrap .sb-pack .sbp-div-head {
110
  border-bottom: 1px solid #e1e1e1;
111
  margin: 0 0 5px;
112
  padding: 0 0 5px;
113
  }
114
 
115
- .wrap .sb-pack .td-border {
116
- border-bottom: 1px solid #e1e1e1;
117
- margin: 10px 0;
118
- }
119
-
120
- .wrap .sb-pack .td-border-last {
121
- border-bottom: 1px solid #e1e1e1;
122
- margin: 1.5em 0;
123
- }
124
-
125
- .wrap .sb-pack .sbp-radio-content {
126
- display: block;
127
- }
128
-
129
- .wrap .sb-pack .sbp-radio-content label {
130
- display: block !important;
131
- }
132
-
133
- .wrap .sb-pack .sbp-box hr {
134
- margin-left: 70px;
135
- }
136
-
137
- .wrap .sb-pack .sbp-1 {
138
- padding-top: 10px;
139
- }
140
-
141
- .wrap .sb-pack .sbp-2 {
142
- padding-bottom: 15px;
143
- }
144
-
145
- .wrap .sb-pack .sbp-3 {
146
- padding-top: 5px;
147
- }
148
-
149
- .wrap .sb-pack .sbp-title-div .sbp-title {
150
- font-weight: 300;
151
- line-height: 26px;
152
- padding-top: 16px;
153
- padding-right: 15px;
154
- display: block;
155
- float: left;
156
- }
157
-
158
  .wrap .sb-pack .sbp-box {
159
  background: #fff;
160
  border: 1px solid #e5e5e5;
@@ -165,111 +100,20 @@ p.description-link {
165
  text-align: center;
166
  }
167
 
168
- .wrap .sb-pack .sbp-box p {
169
- margin: 5px 0 5px 70px;
170
- color: #777;
171
- }
172
-
173
- .wrap .sb-pack .sbp-infos {
174
- display: block;
175
- margin: 0 auto;
176
- padding-left: 70px;
177
- font-weight: 700;
178
- color: #777;
179
- }
180
-
181
- .wrap .sb-pack .sbp-infos span {
182
- color: #777;
183
- font-weight: 400;
184
- }
185
-
186
- .wrap .sb-pack .sbp-infos-title {
187
- font-weight: 700;
188
- color: #777;
189
- }
190
-
191
- .wrap .sb-pack .sbp-box-legend, .wrap .sb-pack .sbp-box-version {
192
- position: absolute;
193
- left: 0;
194
- top: 0;
195
- height: 100%;
196
- }
197
-
198
- .wrap .sb-pack .sbp-box-version {
199
- background: none repeat scroll 0% 0% #80828f;
200
- padding: 20px 15px;
201
- }
202
-
203
- .wrap .sb-pack .sbp-box-legend {
204
- background: none repeat scroll 0% 0% #fcc500;
205
- padding: 15px 15px;
206
- }
207
-
208
- .wrap .sb-pack .sbp-box-legend:hover {
209
- background-color: #f39c12;
210
- }
211
-
212
- .wrap .sb-pack .sbp-box-version:hover {
213
- background-color: #6c6e79;
214
- }
215
-
216
- .wrap .sb-pack .sbp-icon-help, .wrap .sb-pack .sbp-icon-version {
217
- color: #fff;
218
- }
219
-
220
- .wrap .sb-pack .sbp-icon:before {
221
- content: "\f185";
222
- display: inline-block;
223
- -webkit-font-smoothing: antialiased;
224
- font: normal 36px/0.6 'dashicons';
225
- vertical-align: sub;
226
- color: #fa5148;
227
- padding-right: 5px;
228
- }
229
-
230
- .wrap .sb-pack .sbp-icon-information:before {
231
- content: "\f348";
232
- display: inline-block;
233
- -webkit-font-smoothing: antialiased;
234
- font: normal 28px/1 'dashicons';
235
- vertical-align: middle;
236
- color: #c9d6e2;
237
- padding-right: 5px;
238
- }
239
-
240
- .wrap .sb-pack .sbp-icon-version:before {
241
- content: "\f348";
242
- display: inline-block;
243
- -webkit-font-smoothing: antialiased;
244
- font: normal 30px/1 'dashicons';
245
- vertical-align: top;
246
- }
247
-
248
- .wrap .sb-pack .sbp-icon-help:before {
249
- content: "\f123";
250
- display: inline-block;
251
- -webkit-font-smoothing: antialiased;
252
- font: normal 30px/1 'dashicons';
253
- vertical-align: top;
254
- }
255
-
256
  /* sbp-tooltips */
257
  /**
258
  * Tooltip Styles
259
  */
260
 
261
  /* Base styles for the element that has a tooltip */
262
- [data-tooltip],
263
- .tooltip {
264
  position: relative;
265
  cursor: pointer;
266
  }
267
 
268
  /* Base styles for the entire tooltip */
269
  [data-tooltip]:before,
270
- [data-tooltip]:after,
271
- .tooltip:before,
272
- .tooltip:after {
273
  position: absolute;
274
  visibility: hidden;
275
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
@@ -294,11 +138,7 @@ p.description-link {
294
  [data-tooltip]:hover:before,
295
  [data-tooltip]:hover:after,
296
  [data-tooltip]:focus:before,
297
- [data-tooltip]:focus:after,
298
- .tooltip:hover:before,
299
- .tooltip:hover:after,
300
- .tooltip:focus:before,
301
- .tooltip:focus:after {
302
  visibility: visible;
303
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
304
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
@@ -306,7 +146,6 @@ p.description-link {
306
  }
307
 
308
  /* Base styles for the tooltip's directional arrow */
309
- .tooltip:before,
310
  [data-tooltip]:before {
311
  z-index: 1001;
312
  border: 6px solid transparent;
@@ -315,7 +154,6 @@ p.description-link {
315
  }
316
 
317
  /* Base styles for the tooltip's content area */
318
- .tooltip:after,
319
  [data-tooltip]:after {
320
  z-index: 1000;
321
  padding: 8px;
@@ -331,18 +169,12 @@ p.description-link {
331
 
332
  /* Top (default) */
333
  [data-tooltip]:before,
334
- [data-tooltip]:after,
335
- .tooltip:before,
336
- .tooltip:after,
337
- .tooltip-top:before,
338
- .tooltip-top:after {
339
  bottom: 100%;
340
  left: 50%;
341
  }
342
 
343
- [data-tooltip]:before,
344
- .tooltip:before,
345
- .tooltip-top:before {
346
  margin-left: -6px;
347
  margin-bottom: -12px;
348
  border-top-color: #000;
@@ -350,79 +182,22 @@ p.description-link {
350
  }
351
 
352
  /* Horizontally align top/bottom tooltips */
353
- [data-tooltip]:after,
354
- .tooltip:after,
355
- .tooltip-top:after {
356
  margin-left: -80px;
357
  }
358
 
359
  [data-tooltip]:hover:before,
360
  [data-tooltip]:hover:after,
361
  [data-tooltip]:focus:before,
362
- [data-tooltip]:focus:after,
363
- .tooltip:hover:before,
364
- .tooltip:hover:after,
365
- .tooltip:focus:before,
366
- .tooltip:focus:after,
367
- .tooltip-top:hover:before,
368
- .tooltip-top:hover:after,
369
- .tooltip-top:focus:before,
370
- .tooltip-top:focus:after {
371
  -webkit-transform: translateY(-12px);
372
  -moz-transform: translateY(-12px);
373
  transform: translateY(-12px);
374
  }
375
 
376
  /* Left */
377
- .tooltip-left:before,
378
- .tooltip-left:after {
379
- right: 100%;
380
- bottom: 50%;
381
- left: auto;
382
- }
383
-
384
- .tooltip-left:before {
385
- margin-left: 0;
386
- margin-right: -12px;
387
- margin-bottom: 0;
388
- border-top-color: transparent;
389
- border-left-color: #000;
390
- border-left-color: hsla(0, 0%, 20%, 0.9);
391
- }
392
-
393
- .tooltip-left:hover:before,
394
- .tooltip-left:hover:after,
395
- .tooltip-left:focus:before,
396
- .tooltip-left:focus:after {
397
- -webkit-transform: translateX(-12px);
398
- -moz-transform: translateX(-12px);
399
- transform: translateX(-12px);
400
- }
401
 
402
  /* Bottom */
403
- .tooltip-bottom:before,
404
- .tooltip-bottom:after {
405
- top: 100%;
406
- bottom: auto;
407
- left: 50%;
408
- }
409
-
410
- .tooltip-bottom:before {
411
- margin-top: -12px;
412
- margin-bottom: 0;
413
- border-top-color: transparent;
414
- border-bottom-color: #000;
415
- border-bottom-color: hsla(0, 0%, 20%, 0.9);
416
- }
417
-
418
- .tooltip-bottom:hover:before,
419
- .tooltip-bottom:hover:after,
420
- .tooltip-bottom:focus:before,
421
- .tooltip-bottom:focus:after {
422
- -webkit-transform: translateY(12px);
423
- -moz-transform: translateY(12px);
424
- transform: translateY(12px);
425
- }
426
 
427
  /* Right */
428
  .tooltip-right:before,
@@ -449,13 +224,11 @@ p.description-link {
449
  }
450
 
451
  /* Move directional arrows down a bit for left/right tooltips */
452
- .tooltip-left:before,
453
  .tooltip-right:before {
454
  top: 3px;
455
  }
456
 
457
  /* Vertically center tooltip content for left/right tooltips */
458
- .tooltip-left:after,
459
  .tooltip-right:after {
460
  margin-left: 0;
461
  margin-bottom: -16px;
@@ -485,19 +258,16 @@ p.description-link {
485
  margin-bottom:15px;
486
  }
487
 
 
 
 
 
488
  .sb-pack .onoffswitch-wrapper span.chekbox-title {
489
  vertical-align: middle;
490
  display:inline-block;
491
  min-width: 350px;
492
  }
493
 
494
- .sb-pack .onoffswitch_label {
495
- display: inline-block;
496
- vertical-align: top;
497
- margin-right: 21px;
498
- margin-top: -1px;
499
- }
500
-
501
  .sb-pack .onoffswitch {
502
  position: relative;
503
  width: 52px;
@@ -577,8 +347,6 @@ p.description-link {
577
  display: none;
578
  }
579
 
580
- /*.epsilon-toggle__input[type=checkbox]:checked + .epsilon-toggle__items {*/
581
-
582
  .epsilon-toggle__input[type=checkbox]:checked + .epsilon-toggle__items .epsilon-toggle__track {
583
  background-color: #11a0d2;
584
  border: 9px solid transparent;
@@ -603,7 +371,7 @@ p.description-link {
603
  vertical-align: middle;
604
  }
605
 
606
- +/* Box */
607
  .sbp-box {
608
  margin-top: 15px;
609
  text-align: center;
@@ -659,7 +427,7 @@ p.description-link {
659
  position: relative;
660
  display: inline-block;
661
  width: 100%;
662
- padding: 1% 2%;
663
  margin: 10px 0 0;
664
  line-height:1.5;
665
  border: 1px solid #e4e0e0;
@@ -667,3 +435,38 @@ p.description-link {
667
  color: #0f81aa;
668
  box-shadow: 3px 4px 6px -6px #c3bcbc;
669
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  box-sizing: inherit;
10
  }
11
 
12
+ .clearfix:after {content:"";display:table;clear:both;}
13
+
14
+ .wrap .admin-page-title {
15
+ margin:0 0 10px 10px;
16
+ line-height:1;
17
  }
18
 
19
+ .wrap .sb-pack .col-main {
20
+ float:left;
21
+ width:70%;
22
  }
23
 
24
+ .wrap .sb-pack .col-side {
25
+ float:left;
26
+ width:25%;
27
+ margin-left:1%;
28
  }
29
 
30
+ .wrap .sb-pack input[type=text], .wrap .sb-pack textarea {
31
+ font-family:monospace;
 
32
  }
33
 
34
+ .wrap .sb-pack input[type=text] {
35
+ width:20rem;
36
  }
37
 
38
+ .wrap .sb-pack input[type=submit] {
39
+ font-family:inherit;
40
  }
41
 
42
+ .wrap .sb-pack .about-wrap {
43
+ margin:10px;
44
  }
45
 
46
  .wrap .sb-pack .sbp-inline-wrap {
49
  vertical-align: top;
50
  }
51
 
 
 
 
 
52
  .wrap .sb-pack .sbp-all-enqueued {
53
  background-color: #fcfcfc;
54
  padding: 5px 0px 10px;
55
  border: 1px solid #ddd;
56
  width: auto;
57
+ font-family:monospace;
58
  }
59
 
60
  .wrap .sb-pack .sbp-width {
80
  max-width: 73%;
81
  }
82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  .wrap .sb-pack p {
84
  color: #464646;
85
  }
86
 
 
 
 
 
 
 
 
 
 
87
  .wrap .sb-pack .sbp-div-head {
88
  border-bottom: 1px solid #e1e1e1;
89
  margin: 0 0 5px;
90
  padding: 0 0 5px;
91
  }
92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  .wrap .sb-pack .sbp-box {
94
  background: #fff;
95
  border: 1px solid #e5e5e5;
100
  text-align: center;
101
  }
102
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  /* sbp-tooltips */
104
  /**
105
  * Tooltip Styles
106
  */
107
 
108
  /* Base styles for the element that has a tooltip */
109
+ [data-tooltip] {
 
110
  position: relative;
111
  cursor: pointer;
112
  }
113
 
114
  /* Base styles for the entire tooltip */
115
  [data-tooltip]:before,
116
+ [data-tooltip]:after {
 
 
117
  position: absolute;
118
  visibility: hidden;
119
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
138
  [data-tooltip]:hover:before,
139
  [data-tooltip]:hover:after,
140
  [data-tooltip]:focus:before,
141
+ [data-tooltip]:focus:after {
 
 
 
 
142
  visibility: visible;
143
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
144
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
146
  }
147
 
148
  /* Base styles for the tooltip's directional arrow */
 
149
  [data-tooltip]:before {
150
  z-index: 1001;
151
  border: 6px solid transparent;
154
  }
155
 
156
  /* Base styles for the tooltip's content area */
 
157
  [data-tooltip]:after {
158
  z-index: 1000;
159
  padding: 8px;
169
 
170
  /* Top (default) */
171
  [data-tooltip]:before,
172
+ [data-tooltip]:after {
 
 
 
 
173
  bottom: 100%;
174
  left: 50%;
175
  }
176
 
177
+ [data-tooltip]:before {
 
 
178
  margin-left: -6px;
179
  margin-bottom: -12px;
180
  border-top-color: #000;
182
  }
183
 
184
  /* Horizontally align top/bottom tooltips */
185
+ [data-tooltip]:after {
 
 
186
  margin-left: -80px;
187
  }
188
 
189
  [data-tooltip]:hover:before,
190
  [data-tooltip]:hover:after,
191
  [data-tooltip]:focus:before,
192
+ [data-tooltip]:focus:after {
 
 
 
 
 
 
 
 
193
  -webkit-transform: translateY(-12px);
194
  -moz-transform: translateY(-12px);
195
  transform: translateY(-12px);
196
  }
197
 
198
  /* Left */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
 
200
  /* Bottom */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
 
202
  /* Right */
203
  .tooltip-right:before,
224
  }
225
 
226
  /* Move directional arrows down a bit for left/right tooltips */
 
227
  .tooltip-right:before {
228
  top: 3px;
229
  }
230
 
231
  /* Vertically center tooltip content for left/right tooltips */
 
232
  .tooltip-right:after {
233
  margin-left: 0;
234
  margin-bottom: -16px;
258
  margin-bottom:15px;
259
  }
260
 
261
+ .sb-pack .onoffswitch-wrapper:last-child {
262
+ margin-bottom:0;
263
+ }
264
+
265
  .sb-pack .onoffswitch-wrapper span.chekbox-title {
266
  vertical-align: middle;
267
  display:inline-block;
268
  min-width: 350px;
269
  }
270
 
 
 
 
 
 
 
 
271
  .sb-pack .onoffswitch {
272
  position: relative;
273
  width: 52px;
347
  display: none;
348
  }
349
 
 
 
350
  .epsilon-toggle__input[type=checkbox]:checked + .epsilon-toggle__items .epsilon-toggle__track {
351
  background-color: #11a0d2;
352
  border: 9px solid transparent;
371
  vertical-align: middle;
372
  }
373
 
374
+ /* Box */
375
  .sbp-box {
376
  margin-top: 15px;
377
  text-align: center;
427
  position: relative;
428
  display: inline-block;
429
  width: 100%;
430
+ padding:1rem;
431
  margin: 10px 0 0;
432
  line-height:1.5;
433
  border: 1px solid #e4e0e0;
435
  color: #0f81aa;
436
  box-shadow: 3px 4px 6px -6px #c3bcbc;
437
  }
438
+
439
+ .sbp-static-notice.bg-red {
440
+ background-color: #EF5350;
441
+ color: #ffffff;
442
+ }
443
+
444
+ .nav-tab, .nav-tab .dashicons {line-height:1;}
445
+ .nav-tab .dashicons {vertical-align:text-top;}
446
+ .nav-tab .dashicons-admin-generic {color:#4CAF50;}
447
+ .nav-tab .dashicons-admin-settings {color:#b71c1c;}
448
+ .nav-tab .dashicons-admin-site-alt {color:#607D8B;}
449
+ .nav-tab .dashicons-chart-area {color:#FF9800;}
450
+ .nav-tab .dashicons-dashboard {color:#2196F3;}
451
+
452
+ .sb-pack .postbox {margin:1rem 0;}
453
+ .sb-pack .postbox .hndle {font-size:1rem;line-height:2;padding:.5rem 1rem;margin:0;}
454
+ .sb-pack .postbox .inside {padding:1rem;margin:0;}
455
+ .sb-pack .postbox .inside p {margin:0 0 1rem;}
456
+ .sb-pack .postbox .inside p:last-child {margin:0;}
457
+
458
+ .feature-box .inside .feature-box-image {width:7rem;height:auto;display:block;}
459
+ .feature-box .inside .feature-box-left {float:left;margin-right:1rem;}
460
+ .feature-box .inside .feature-box-right {float:left;width:calc(100% - 9rem);}
461
+ .feature-box .inside .feature-box-title {padding:0;line-height:1;margin:0 0 1rem;}
462
+ .feature-box .inside .feature-box-description {font-size:120%;line-height:1.5;}
463
+ .feature-box .inside .feature-box-button {}
464
+
465
+ @media only screen and (max-width:960px) {
466
+ .wrap .sb-pack .col-main, .wrap .sb-pack .col-side {
467
+ width:100%;
468
+ margin-left:0;
469
+ margin-right:0;
470
+ float:none;
471
+ }
472
+ }
css/vendors/jquery-ui/images/ui-icons_444444_256x240.png DELETED
Binary file
css/vendors/jquery-ui/images/ui-icons_555555_256x240.png DELETED
Binary file
css/vendors/jquery-ui/images/ui-icons_777620_256x240.png DELETED
Binary file
css/vendors/jquery-ui/images/ui-icons_777777_256x240.png DELETED
Binary file
css/vendors/jquery-ui/images/ui-icons_cc0000_256x240.png DELETED
Binary file
css/vendors/jquery-ui/images/ui-icons_ffffff_256x240.png DELETED
Binary file
css/vendors/jquery-ui/jquery-ui.min.css DELETED
@@ -1,7 +0,0 @@
1
- /*! jQuery UI - v1.12.1 - 2016-09-14
2
- * http://jqueryui.com
3
- * Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
4
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6
5
- * Copyright jQuery Foundation and other contributors; Licensed MIT */
6
-
7
- .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("jquery-ui/images/ui-icons_444444_256x240.png")} .ui-widget-header .ui-icon{background-image:url("jquery-ui/images/ui-icons_444444_256x240.png")} .ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("jquery-ui/images/ui-icons_555555_256x240.png")} .ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("jquery-ui/images/ui-icons_ffffff_256x240.png")} .ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("jquery-ui/images/ui-icons_777620_256x240.png")} .ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("jquery-ui/images/ui-icons_cc0000_256x240.png")} .ui-button .ui-icon{background-image:url("jquery-ui/images/ui-icons_777777_256x240.png")} .ui-icon-blank{background-position:16px 16px} .ui-icon-caret-1-n{background-position:0 0} .ui-icon-caret-1-ne{background-position:-16px 0} .ui-icon-caret-1-e{background-position:-32px 0} .ui-icon-caret-1-se{background-position:-48px 0} .ui-icon-caret-1-s{background-position:-65px 0} .ui-icon-caret-1-sw{background-position:-80px 0} .ui-icon-caret-1-w{background-position:-96px 0} .ui-icon-caret-1-nw{background-position:-112px 0} .ui-icon-caret-2-n-s{background-position:-128px 0} .ui-icon-caret-2-e-w{background-position:-144px 0} .ui-icon-triangle-1-n{background-position:0 -16px} .ui-icon-triangle-1-ne{background-position:-16px -16px} .ui-icon-triangle-1-e{background-position:-32px -16px} .ui-icon-triangle-1-se{background-position:-48px -16px} .ui-icon-triangle-1-s{background-position:-65px -16px} .ui-icon-triangle-1-sw{background-position:-80px -16px} .ui-icon-triangle-1-w{background-position:-96px -16px} .ui-icon-triangle-1-nw{background-position:-112px -16px} .ui-icon-triangle-2-n-s{background-position:-128px -16px} .ui-icon-triangle-2-e-w{background-position:-144px -16px} .ui-icon-arrow-1-n{background-position:0 -32px} .ui-icon-arrow-1-ne{background-position:-16px -32px} .ui-icon-arrow-1-e{background-position:-32px -32px} .ui-icon-arrow-1-se{background-position:-48px -32px} .ui-icon-arrow-1-s{background-position:-65px -32px} .ui-icon-arrow-1-sw{background-position:-80px -32px} .ui-icon-arrow-1-w{background-position:-96px -32px} .ui-icon-arrow-1-nw{background-position:-112px -32px} .ui-icon-arrow-2-n-s{background-position:-128px -32px} .ui-icon-arrow-2-ne-sw{background-position:-144px -32px} .ui-icon-arrow-2-e-w{background-position:-160px -32px} .ui-icon-arrow-2-se-nw{background-position:-176px -32px} .ui-icon-arrowstop-1-n{background-position:-192px -32px} .ui-icon-arrowstop-1-e{background-position:-208px -32px} .ui-icon-arrowstop-1-s{background-position:-224px -32px} .ui-icon-arrowstop-1-w{background-position:-240px -32px} .ui-icon-arrowthick-1-n{background-position:1px -48px} .ui-icon-arrowthick-1-ne{background-position:-16px -48px} .ui-icon-arrowthick-1-e{background-position:-32px -48px} .ui-icon-arrowthick-1-se{background-position:-48px -48px} .ui-icon-arrowthick-1-s{background-position:-64px -48px} .ui-icon-arrowthick-1-sw{background-position:-80px -48px} .ui-icon-arrowthick-1-w{background-position:-96px -48px} .ui-icon-arrowthick-1-nw{background-position:-112px -48px} .ui-icon-arrowthick-2-n-s{background-position:-128px -48px} .ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px} .ui-icon-arrowthick-2-e-w{background-position:-160px -48px} .ui-icon-arrowthick-2-se-nw{background-position:-176px -48px} .ui-icon-arrowthickstop-1-n{background-position:-192px -48px} .ui-icon-arrowthickstop-1-e{background-position:-208px -48px} .ui-icon-arrowthickstop-1-s{background-position:-224px -48px} .ui-icon-arrowthickstop-1-w{background-position:-240px -48px} .ui-icon-arrowreturnthick-1-w{background-position:0 -64px} .ui-icon-arrowreturnthick-1-n{background-position:-16px -64px} .ui-icon-arrowreturnthick-1-e{background-position:-32px -64px} .ui-icon-arrowreturnthick-1-s{background-position:-48px -64px} .ui-icon-arrowreturn-1-w{background-position:-64px -64px} .ui-icon-arrowreturn-1-n{background-position:-80px -64px} .ui-icon-arrowreturn-1-e{background-position:-96px -64px} .ui-icon-arrowreturn-1-s{background-position:-112px -64px} .ui-icon-arrowrefresh-1-w{background-position:-128px -64px} .ui-icon-arrowrefresh-1-n{background-position:-144px -64px} .ui-icon-arrowrefresh-1-e{background-position:-160px -64px} .ui-icon-arrowrefresh-1-s{background-position:-176px -64px} .ui-icon-arrow-4{background-position:0 -80px} .ui-icon-arrow-4-diag{background-position:-16px -80px} .ui-icon-extlink{background-position:-32px -80px} .ui-icon-newwin{background-position:-48px -80px} .ui-icon-refresh{background-position:-64px -80px} .ui-icon-shuffle{background-position:-80px -80px} .ui-icon-transfer-e-w{background-position:-96px -80px} .ui-icon-transferthick-e-w{background-position:-112px -80px} .ui-icon-folder-collapsed{background-position:0 -96px} .ui-icon-folder-open{background-position:-16px -96px} .ui-icon-document{background-position:-32px -96px} .ui-icon-document-b{background-position:-48px -96px} .ui-icon-note{background-position:-64px -96px} .ui-icon-mail-closed{background-position:-80px -96px} .ui-icon-mail-open{background-position:-96px -96px} .ui-icon-suitcase{background-position:-112px -96px} .ui-icon-comment{background-position:-128px -96px} .ui-icon-person{background-position:-144px -96px} .ui-icon-print{background-position:-160px -96px} .ui-icon-trash{background-position:-176px -96px} .ui-icon-locked{background-position:-192px -96px} .ui-icon-unlocked{background-position:-208px -96px} .ui-icon-bookmark{background-position:-224px -96px} .ui-icon-tag{background-position:-240px -96px} .ui-icon-home{background-position:0 -112px} .ui-icon-flag{background-position:-16px -112px} .ui-icon-calendar{background-position:-32px -112px} .ui-icon-cart{background-position:-48px -112px} .ui-icon-pencil{background-position:-64px -112px} .ui-icon-clock{background-position:-80px -112px} .ui-icon-disk{background-position:-96px -112px} .ui-icon-calculator{background-position:-112px -112px} .ui-icon-zoomin{background-position:-128px -112px} .ui-icon-zoomout{background-position:-144px -112px} .ui-icon-search{background-position:-160px -112px} .ui-icon-wrench{background-position:-176px -112px} .ui-icon-gear{background-position:-192px -112px} .ui-icon-heart{background-position:-208px -112px} .ui-icon-star{background-position:-224px -112px} .ui-icon-link{background-position:-240px -112px} .ui-icon-cancel{background-position:0 -128px} .ui-icon-plus{background-position:-16px -128px} .ui-icon-plusthick{background-position:-32px -128px} .ui-icon-minus{background-position:-48px -128px} .ui-icon-minusthick{background-position:-64px -128px} .ui-icon-close{background-position:-80px -128px} .ui-icon-closethick{background-position:-96px -128px} .ui-icon-key{background-position:-112px -128px} .ui-icon-lightbulb{background-position:-128px -128px} .ui-icon-scissors{background-position:-144px -128px} .ui-icon-clipboard{background-position:-160px -128px} .ui-icon-copy{background-position:-176px -128px} .ui-icon-contact{background-position:-192px -128px} .ui-icon-image{background-position:-208px -128px} .ui-icon-video{background-position:-224px -128px} .ui-icon-script{background-position:-240px -128px} .ui-icon-alert{background-position:0 -144px} .ui-icon-info{background-position:-16px -144px} .ui-icon-notice{background-position:-32px -144px} .ui-icon-help{background-position:-48px -144px} .ui-icon-check{background-position:-64px -144px} .ui-icon-bullet{background-position:-80px -144px} .ui-icon-radio-on{background-position:-96px -144px} .ui-icon-radio-off{background-position:-112px -144px} .ui-icon-pin-w{background-position:-128px -144px} .ui-icon-pin-s{background-position:-144px -144px} .ui-icon-play{background-position:0 -160px} .ui-icon-pause{background-position:-16px -160px} .ui-icon-seek-next{background-position:-32px -160px} .ui-icon-seek-prev{background-position:-48px -160px} .ui-icon-seek-end{background-position:-64px -160px} .ui-icon-seek-start{background-position:-80px -160px} .ui-icon-seek-first{background-position:-80px -160px} .ui-icon-stop{background-position:-96px -160px} .ui-icon-eject{background-position:-112px -160px} .ui-icon-volume-off{background-position:-128px -160px} .ui-icon-volume-on{background-position:-144px -160px} .ui-icon-power{background-position:0 -176px} .ui-icon-signal-diag{background-position:-16px -176px} .ui-icon-signal{background-position:-32px -176px} .ui-icon-battery-0{background-position:-48px -176px} .ui-icon-battery-1{background-position:-64px -176px} .ui-icon-battery-2{background-position:-80px -176px} .ui-icon-battery-3{background-position:-96px -176px} .ui-icon-circle-plus{background-position:0 -192px} .ui-icon-circle-minus{background-position:-16px -192px} .ui-icon-circle-close{background-position:-32px -192px} .ui-icon-circle-triangle-e{background-position:-48px -192px} .ui-icon-circle-triangle-s{background-position:-64px -192px} .ui-icon-circle-triangle-w{background-position:-80px -192px} .ui-icon-circle-triangle-n{background-position:-96px -192px} .ui-icon-circle-arrow-e{background-position:-112px -192px} .ui-icon-circle-arrow-s{background-position:-128px -192px} .ui-icon-circle-arrow-w{background-position:-144px -192px} .ui-icon-circle-arrow-n{background-position:-160px -192px} .ui-icon-circle-zoomin{background-position:-176px -192px} .ui-icon-circle-zoomout{background-position:-192px -192px} .ui-icon-circle-check{background-position:-208px -192px} .ui-icon-circlesmall-plus{background-position:0 -208px} .ui-icon-circlesmall-minus{background-position:-16px -208px} .ui-icon-circlesmall-close{background-position:-32px -208px} .ui-icon-squaresmall-plus{background-position:-48px -208px} .ui-icon-squaresmall-minus{background-position:-64px -208px} .ui-icon-squaresmall-close{background-position:-80px -208px} .ui-icon-grip-dotted-vertical{background-position:0 -224px} .ui-icon-grip-dotted-horizontal{background-position:-16px -224px} .ui-icon-grip-solid-vertical{background-position:-32px -224px} .ui-icon-grip-solid-horizontal{background-position:-48px -224px} .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px} .ui-icon-grip-diagonal-se{background-position:-80px -224px} .ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px} .ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px} .ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px} .ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px} .ui-widget-overlay{background:#aaa;opacity:.003;filter:Alpha(Opacity=.3)} .ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666}
 
 
 
 
 
 
 
inc/core.php CHANGED
@@ -12,11 +12,10 @@ if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
12
 
13
  global $sbp_options;
14
 
15
- add_action( 'wp_enqueue_scripts', array( $this, 'sbp_no_more_fontawesome' ), 9999 );
16
  add_action( 'wp_enqueue_scripts', array( $this, 'sbp_move_scripts_to_footer' ) );
17
  if ( ! is_admin() and isset( $sbp_options['jquery_to_footer'] ) ) {
18
  add_action( 'wp_head', array( $this, 'sbp_scripts_to_head' ) );
19
- }
20
 
21
  add_action( 'after_setup_theme', array( $this, 'sbp_junk_header_tags' ) );
22
  add_action( 'init', array( $this, 'sbp_init' ) );
@@ -55,13 +54,6 @@ if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
55
 
56
  $this->sbp_css_optimizer(); // CSS Optimizer functions
57
 
58
-
59
- // Use Google Libraries
60
- if ( ! is_admin() and isset( $sbp_options['use_google_libs'] ) ) {
61
- $this->sbp_use_google_libraries();
62
- }
63
-
64
-
65
  // Minifier
66
  if ( ! is_admin() and isset( $sbp_options['minify_html_js'] ) ) {
67
  $this->sbp_minifier();
@@ -86,21 +78,11 @@ if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
86
  add_action( 'init', array( $this, 'sbp_disable_emojis' ) );
87
  }
88
 
89
- /**
90
- * @since 3.7
91
- */
92
- // Disable XML-RPC
93
- if ( isset( $sbp_options['disable_xmlrpc'] ) ) {
94
- add_filter( 'xmlrpc_enabled', '__return_false' );
95
- add_filter( 'wp_headers', array( $this, 'sbp_remove_x_pingback' ) );
96
- add_filter( 'pings_open', '__return_false', 9999 );
97
- }
98
-
99
  /**
100
  * @since 3.8
101
  */
102
  // Disable Cart Fragments
103
- if( isset( $sbp_options[ 'disable_cart_fragments' ] ) ) {
104
  add_action( 'wp_enqueue_scripts', array( $this, 'sbp_disable_cart_fragments' ), 999 );
105
  }
106
 
@@ -151,8 +133,31 @@ if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
151
  define( 'AUTOSAVE_INTERVAL', $sbp_options['autosave_interval'] );
152
  }
153
 
 
 
 
 
 
 
 
154
  } // END public public function __construct
155
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  /*--------------------------------------------------------------------------------------------------------
157
  Disable Dash icons
158
  ---------------------------------------------------------------------------------------------------------*/
@@ -230,10 +235,6 @@ if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
230
 
231
  global $sbp_options;
232
 
233
- if ( wp_is_mobile() and isset ( $sbp_options['sbp_is_mobile'] ) ) { // disable all CSS options on mobile devices
234
- return;
235
- }
236
-
237
  if ( ! is_admin() and isset( $sbp_options['sbp_css_async'] ) ) {
238
  add_action( 'wp_print_styles', array( $this, 'sbp_print_styles' ), SBP_FOOTER );
239
  add_action( 'wp_footer', array( $this, 'sbp_print_delayed_styles' ), SBP_FOOTER + 1 );
@@ -525,21 +526,6 @@ if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
525
 
526
  }
527
 
528
- /*--------------------------------------------------------------------------------------------------------
529
- Use Google Libraries
530
- ---------------------------------------------------------------------------------------------------------*/
531
-
532
- function sbp_use_google_libraries() {
533
-
534
- require_once( SPEED_BOOSTER_PACK_PATH . 'inc/use-google-libraries.php' );
535
-
536
- if ( class_exists( 'SBP_GoogleLibraries' ) ) {
537
- SBP_GoogleLibraries::configure_plugin();
538
-
539
- }
540
-
541
- } // End function sbp_use_google_libraries()
542
-
543
 
544
  /*--------------------------------------------------------------------------------------------------------
545
  Minify HTML and Javascripts
@@ -651,16 +637,6 @@ if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
651
  return $urls;
652
  }
653
 
654
- /*--------------------------------------------------------------------------------------------------------
655
- Disable XML-RPC
656
- ---------------------------------------------------------------------------------------------------------*/
657
-
658
- function sbp_remove_x_pingback( $headers ) {
659
- unset( $headers['X-Pingback'] );
660
-
661
- return $headers;
662
- }
663
-
664
  /*--------------------------------------------------------------------------------------------------------
665
  Disable Self Pingbacks
666
  ---------------------------------------------------------------------------------------------------------*/
@@ -694,15 +670,15 @@ if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
694
  var v = document.cookie.match("(^|;) ?" + name + "=([^;]*)(;|$)");
695
  return v ? v[2] : null;
696
  }
697
-
698
  function sbp_check_wc_cart_script() {
699
  var cart_src = "' . $load_cart_fragments_path . '";
700
  var script_id = "sbp_loaded_wc_cart_fragments";
701
-
702
  if( document.getElementById(script_id) !== null ) {
703
  return false;
704
  }
705
-
706
  if( sbp_getCookie("woocommerce_cart_hash") ) {
707
  var script = document.createElement("script");
708
  script.id = script_id;
@@ -711,7 +687,7 @@ if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
711
  document.head.appendChild(script);
712
  }
713
  }
714
-
715
  sbp_check_wc_cart_script();
716
  document.addEventListener("click", function(){setTimeout(sbp_check_wc_cart_script,1000);});
717
  '
@@ -730,32 +706,6 @@ if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
730
  );
731
  }
732
 
733
-
734
- /*--------------------------------------------------------------------------------------------------------
735
- Dequeue extra Font Awesome stylesheet
736
- ---------------------------------------------------------------------------------------------------------*/
737
-
738
- function sbp_no_more_fontawesome() {
739
- global $wp_styles;
740
- global $sbp_options;
741
-
742
- // we'll use preg_match to find only the following patterns as exact matches, to prevent other plugin stylesheets that contain font-awesome expression to be also dequeued
743
- $patterns = array(
744
- 'font-awesome.css',
745
- 'font-awesome.min.css',
746
- );
747
- // multiple patterns hook
748
- $regex = '/(' . implode( '|', $patterns ) . ')/i';
749
- foreach ( $wp_styles->registered as $registered ) {
750
- if ( ! is_admin() and preg_match( $regex, $registered->src ) and isset( $sbp_options['font_awesome'] ) ) {
751
- wp_dequeue_style( $registered->handle );
752
- // FA was dequeued, so here we need to enqueue it again from CDN
753
- wp_enqueue_style( 'font-awesome', '//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css' );
754
- } // END if( preg_match...
755
- } // END foreach
756
- } // End function dfa_no_more_fontawesome
757
-
758
-
759
  /*--------------------------------------------------------------------------------------------------------
760
  Remove junk header tags
761
  ---------------------------------------------------------------------------------------------------------*/
12
 
13
  global $sbp_options;
14
 
 
15
  add_action( 'wp_enqueue_scripts', array( $this, 'sbp_move_scripts_to_footer' ) );
16
  if ( ! is_admin() and isset( $sbp_options['jquery_to_footer'] ) ) {
17
  add_action( 'wp_head', array( $this, 'sbp_scripts_to_head' ) );
18
+ }
19
 
20
  add_action( 'after_setup_theme', array( $this, 'sbp_junk_header_tags' ) );
21
  add_action( 'init', array( $this, 'sbp_init' ) );
54
 
55
  $this->sbp_css_optimizer(); // CSS Optimizer functions
56
 
 
 
 
 
 
 
 
57
  // Minifier
58
  if ( ! is_admin() and isset( $sbp_options['minify_html_js'] ) ) {
59
  $this->sbp_minifier();
78
  add_action( 'init', array( $this, 'sbp_disable_emojis' ) );
79
  }
80
 
 
 
 
 
 
 
 
 
 
 
81
  /**
82
  * @since 3.8
83
  */
84
  // Disable Cart Fragments
85
+ if( isset( $sbp_options[ 'disable_cart_fragments' ] ) && class_exists( 'woocommerce' ) ) {
86
  add_action( 'wp_enqueue_scripts', array( $this, 'sbp_disable_cart_fragments' ), 999 );
87
  }
88
 
133
  define( 'AUTOSAVE_INTERVAL', $sbp_options['autosave_interval'] );
134
  }
135
 
136
+ /**
137
+ * @since 3.8.1
138
+ */
139
+ if( ! empty( $sbp_options[ 'remove_jquery_migrate' ] ) ) {
140
+ add_action( 'wp_default_scripts', array( $this, 'sbp_remove_jquery_migrate' ) );
141
+ }
142
+
143
  } // END public public function __construct
144
 
145
+ /**
146
+ * @since 3.8.1
147
+ */
148
+ /*--------------------------------------------------------------------------------------------------------
149
+ Remove JQuery Migrate
150
+ ---------------------------------------------------------------------------------------------------------*/
151
+ function sbp_remove_jquery_migrate( $scripts ) {
152
+ if ( ! is_admin() && isset( $scripts->registered[ 'jquery' ] ) ) {
153
+ $jquery_script = $scripts->registered[ 'jquery' ];
154
+
155
+ if ( $jquery_script->deps ) { // Check whether the script has any dependencies
156
+ $jquery_script->deps = array_diff( $jquery_script->deps, array( 'jquery-migrate' ) );
157
+ }
158
+ }
159
+ }
160
+
161
  /*--------------------------------------------------------------------------------------------------------
162
  Disable Dash icons
163
  ---------------------------------------------------------------------------------------------------------*/
235
 
236
  global $sbp_options;
237
 
 
 
 
 
238
  if ( ! is_admin() and isset( $sbp_options['sbp_css_async'] ) ) {
239
  add_action( 'wp_print_styles', array( $this, 'sbp_print_styles' ), SBP_FOOTER );
240
  add_action( 'wp_footer', array( $this, 'sbp_print_delayed_styles' ), SBP_FOOTER + 1 );
526
 
527
  }
528
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
529
 
530
  /*--------------------------------------------------------------------------------------------------------
531
  Minify HTML and Javascripts
637
  return $urls;
638
  }
639
 
 
 
 
 
 
 
 
 
 
 
640
  /*--------------------------------------------------------------------------------------------------------
641
  Disable Self Pingbacks
642
  ---------------------------------------------------------------------------------------------------------*/
670
  var v = document.cookie.match("(^|;) ?" + name + "=([^;]*)(;|$)");
671
  return v ? v[2] : null;
672
  }
673
+
674
  function sbp_check_wc_cart_script() {
675
  var cart_src = "' . $load_cart_fragments_path . '";
676
  var script_id = "sbp_loaded_wc_cart_fragments";
677
+
678
  if( document.getElementById(script_id) !== null ) {
679
  return false;
680
  }
681
+
682
  if( sbp_getCookie("woocommerce_cart_hash") ) {
683
  var script = document.createElement("script");
684
  script.id = script_id;
687
  document.head.appendChild(script);
688
  }
689
  }
690
+
691
  sbp_check_wc_cart_script();
692
  document.addEventListener("click", function(){setTimeout(sbp_check_wc_cart_script,1000);});
693
  '
706
  );
707
  }
708
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
709
  /*--------------------------------------------------------------------------------------------------------
710
  Remove junk header tags
711
  ---------------------------------------------------------------------------------------------------------*/
inc/template/options.php CHANGED
@@ -17,706 +17,676 @@ if ( is_array( $option_arr ) && in_array( 'defer-from-footer', $option_arr ) ) {
17
 
18
  ?>
19
 
20
- <div class="wrap about-wrap">
21
- <div class="sb-pack">
22
-
23
- <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
24
-
25
- <div class="about-text">
26
-
27
- <?php
28
- /* Translators: Welcome Screen Description. */
29
- echo esc_html__( 'Speed Booster Pack is a lightweight, frequently updated, easy to use and well supported plugin which helps you speed up your website. People abandon pages that take more than a few seconds to load, which means slow pages lose you visitors (and money). You don’t want that to happen, do you?', 'speed-booster-pack' );
30
- ?>
31
- </div>
32
- <div class="wp-badge sbp-welcome-logo"></div>
33
-
34
- <h2 class="nav-tab-wrapper wp-clearfix">
35
- <a class="nav-tab" href="#general-options"><?php esc_html_e( 'General', 'speed-booster-pack' ); ?></a>
36
- <a class="nav-tab" href="#advanced-options"><?php esc_html_e( 'Advanced', 'speed-booster-pack' ); ?></a>
37
- <a class="nav-tab" href="#cdn-options"><?php esc_html_e( 'CDN', 'speed-booster-pack' ); ?></a>
38
- <a class="nav-tab" href="#google-analytics"><?php esc_html_e( 'Google Analytics', 'speed-booster-pack' ); ?></a>
39
- <a class="nav-tab" href="#optimize-more"><?php esc_html_e( 'Optimize More', 'speed-booster-pack' ); ?></a>
40
- </h2>
41
-
42
- <div class="sbp-static-notice">
43
- <?php _e( '<a href="https://optimocha.com/?ref=sbp" target="_blank" style="text-decoration:none">If you’re ready to <em>invest</em> in speeding up your website, <strong>click here</strong> to reach out to us for our professional, tailored speed optimization services!</a>', 'speed-booster-pack' )?>
44
- </div>
45
-
46
- <form method="post" action="options.php">
47
-
48
- <?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
49
- <?php wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?>
50
- <?php settings_fields( 'speed_booster_settings_group' ); ?>
51
-
52
- <?php
53
-
54
- $sbp_options_array = array(
55
- //general options panel
56
- 'general-options' => array(
57
- //General section
58
- 'sections' => array(
59
- array(
60
- 'type' => 'section',
61
- 'label' => __( 'General', 'speed-booster-pack' ),
62
- 'items' => array(
63
- 'jquery_to_footer' => array(
64
- 'type' => 'checkbox',
65
- 'label' => __( 'Move scripts to footer', 'speed-booster-pack' ),
66
- 'tooltip' => __( 'This option move all scripts to the footer while keeping stylesheets in the header to improve page loading speed and get a higher score on the major speed testing sites such as GTmetrix or other website speed testing tools', 'speed-booster-pack' ),
67
- 'options_group' => 'sbp_settings',
68
- ),
69
- 'use_google_libs' => array(
70
- 'type' => 'checkbox',
71
- 'label' => __( 'Load JS from Google Libraries', 'speed-booster-pack' ),
72
- 'tooltip' => __( 'Loading WordPress javascript files from Google’s Libraries rather than serving it from your WordPress install directly, will reduce latency, increase parallelism and improve caching.', 'speed-booster-pack' ),
73
- 'options_group' => 'sbp_settings',
74
- ),
75
- 'minify_html_js' => array(
76
- 'type' => 'checkbox',
77
- 'label' => __( 'Minify HTML', 'speed-booster-pack' ),
78
- 'tooltip' => __( 'Activate this option only if you don’t want to use other minify plugins or other speed optimization plugin that has minify option included. If something goes wrong, simply uncheck this option and save the settings.', 'speed-booster-pack' ),
79
- 'options_group' => 'sbp_settings',
80
- ),
81
- 'enable_instant_page' => array(
82
- 'type' => 'checkbox',
83
- 'label' => __( 'Enable instant.page (BETA)', 'speed-booster-pack' ),
84
- 'tooltip' => __( 'Check this option if you want to use the instant.page link preloader. This is a new and experimental feature; use with caution. If something goes wrong, simply uncheck this option and save the settings.', 'speed-booster-pack' ),
85
- 'options_group' => 'sbp_settings',
86
- ),
87
- 'disable_cart_fragments' => array(
88
- 'type' => 'checkbox',
89
- 'label' => __( 'Disable cart fragments (BETA)', 'speed-booster-pack' ),
90
- 'tooltip' => __( 'Check this option to disable WooCommerce&#39;s &quot;cart fragments&quot; script, which overrides all caching function to update cart totals on each page load in your theme header. This is a new and experimental feature; use with caution. If something goes wrong, simply uncheck this option and save the settings.', 'speed-booster-pack' ),
91
- 'options_group' => 'sbp_settings',
92
- ),
93
- 'defer_parsing' => array(
94
- 'type' => 'checkbox',
95
- 'label' => __( 'Defer parsing of JS files', 'speed-booster-pack' ),
96
- 'tooltip' => __( '!!!Note: This will be disabled IF Move Scripts to Footer is enabled. By deferring parsing of unneeded JavaScript until it needs to be executed, you can reduce the initial load time of your page. Please note that this option will not defer the main WordPress jQuery script if Load JS from Google Libraries option is not checked.', 'speed-booster-pack' ),
97
- 'options_group' => 'sbp_settings',
98
- ),
99
- 'query_strings' => array(
100
- 'type' => 'checkbox',
101
- 'label' => __( 'Remove query strings', 'speed-booster-pack' ),
102
- 'tooltip' => __( 'Since most proxies do not cache resources with a ? in their URL, this option allows you to remove any query strings (version numbers) from static resources like CSS & JS files, thus improving your speed scores in services like GTmetrix, PageSpeed, YSlow and Pingdoom.', 'speed-booster-pack' ),
103
- 'options_group' => 'sbp_settings',
104
- ),
105
- 'font_awesome' => array(
106
- 'type' => 'checkbox',
107
- 'label' => __( 'Remove extra Font Awesome styles', 'speed-booster-pack' ),
108
- 'tooltip' => __( 'Use this option only if your theme uses Font Awesome, to prevent other plugins that uses Font Awesome, to add their stylesheets to your theme. In other words, this option removes extra Font Awesome stylesheets added to your theme by certain plugins.', 'speed-booster-pack' ),
109
- 'options_group' => 'sbp_settings',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  ),
111
  ),
112
  ),
113
- //more settings section
114
- array(
115
- 'type' => 'section',
116
- 'label' => __( 'More settings', 'speed-booster-pack' ),
117
- 'items' => array(
118
- 'remove_emojis' => array(
119
- 'type' => 'checkbox',
120
- 'label' => __( 'Remove WordPress Emoji scripts', 'speed-booster-pack' ),
121
- 'tooltip' => __( 'Emojis are fun and all, but if you are aren’t using them they actually load a JavaScript file (wp-emoji-release.min.js) on every page of your website. For a lot of businesses, this is not needed and simply adds load time to your site. So we recommend disabling this.', 'speed-booster-pack' ),
122
- 'options_group' => 'sbp_settings',
123
- ),
124
- 'remove_wsl' => array(
125
- 'type' => 'checkbox',
126
- 'label' => __( 'Remove WordPress Shortlink', 'speed-booster-pack' ),
127
- 'tooltip' => __( 'WordPress URL shortening is sometimes useful, but it automatically adds an ugly code in your header, so you can remove it.', 'speed-booster-pack' ),
128
- 'options_group' => 'sbp_settings',
129
- ),
130
- 'remove_adjacent' => array(
131
- 'type' => 'checkbox',
132
- 'label' => __( 'Remove Adjacent Posts Links', 'speed-booster-pack' ),
133
- 'tooltip' => __( 'WordPress incorrectly implements this feature that supposedly should fix a pagination issues but it messes up, so there is no reason to keep these around. However, some browsers may use Adjacent Posts Links to navigate your site, although you can remove it if you run a well designed theme.', 'speed-booster-pack' ),
134
- 'options_group' => 'sbp_settings',
135
- ),
136
- 'wml_link' => array(
137
- 'type' => 'checkbox',
138
- 'label' => __( 'Remove Windows Live Writer Manifest', 'speed-booster-pack' ),
139
- 'tooltip' => __( 'Windows Live Writer (WLW) is a Microsoft application for composing and managing blog posts offline and publish them later. If you are not using Windows Live Writer application, you can remove it from the WP head.', 'speed-booster-pack' ),
140
- 'options_group' => 'sbp_settings',
141
- ),
142
- 'wp_generator' => array(
143
- 'type' => 'checkbox',
144
- 'label' => __( 'Remove WordPress Version', 'speed-booster-pack' ),
145
- 'tooltip' => __( 'Windows Live Writer (WLW) is a Microsoft application for composing and managing blog posts offline and publish them later. If you are not using Windows Live Writer application, you can remove it from the WP head.', 'speed-booster-pack' ),
146
- 'options_group' => 'sbp_settings',
147
- ),
148
- 'remove_all_feeds' => array(
149
- 'type' => 'checkbox',
150
- 'label' => __( 'Remove all RSS feed links', 'speed-booster-pack' ),
151
- 'tooltip' => __( 'This option will remove all RSS feed links to cleanup your WordPress header. It is also useful on Unicorn – The W3C Markup Validation Service to get rid out the “feed does not validate” error.', 'speed-booster-pack' ),
152
- 'options_group' => 'sbp_settings',
153
- ),
154
- 'disable_xmlrpc' => array(
155
- 'type' => 'checkbox',
156
- 'label' => __( 'Disable XML-RPC', 'speed-booster-pack' ),
157
- 'tooltip' => __( 'XML-RPC was added in WordPress 3.5 and allows for remote connections, and unless you are using your mobile device to post to WordPress it does more bad than good. In fact, it can open your site up to a bunch of security risks. There are a few plugins that utilize this such as JetPack, but we don’t recommend using JetPack for performance reasons.', 'speed-booster-pack' ),
158
- 'options_group' => 'sbp_settings',
159
- ),
160
- 'disable_self_pingbacks' => array(
161
- 'type' => 'checkbox',
162
- 'label' => __( 'Disable Self Pingbacks', 'speed-booster-pack' ),
163
- 'tooltip' => __( 'A pingback is a special type of comment that’s created when you link to another blog post, as long as the other blog is set to accept pingbacks.', 'speed-booster-pack' ),
164
- 'options_group' => 'sbp_settings',
165
- ),
166
- 'disable_dashicons' => array(
167
- 'type' => 'checkbox',
168
- 'label' => __( 'Remove Dashicons', 'speed-booster-pack' ),
169
- 'tooltip' => __( 'Remove Dashicons from front end.', 'speed-booster-pack' ),
170
- 'options_group' => 'sbp_settings',
171
- ),
172
- 'disable_google_maps' => array(
173
- 'type' => 'checkbox',
174
- 'label' => __( 'Remove Google Maps', 'speed-booster-pack' ),
175
- 'tooltip' => __( 'Remove Google Maps from front end. ', 'speed-booster-pack' ),
176
- 'options_group' => 'sbp_settings',
177
- ),
178
- 'disable_heartbeat' => array(
179
- 'type' => 'checkbox',
180
- 'label' => __( 'Disable Heartbeat', 'speed-booster-pack' ),
181
- 'tooltip' => __( 'Disable heartbeat everywhere ( used for autosaving and revision tracking ).', 'speed-booster-pack' ),
182
- 'options_group' => 'sbp_settings',
183
- ),
184
- 'heartbeat_frequency' => array(
185
- 'type' => 'select',
186
- 'label' => __( 'Heartbeat frequency', 'speed-booster-pack' ),
187
- 'tooltip' => __( 'Controls how often the WordPress Heartbeat API is allowed to run. ', 'speed-booster-pack' ),
188
- 'options' => array(
189
- '15' => '15',
190
- '30' => '30',
191
- '45' => '45',
192
- '60' => '60',
193
- ),
194
- 'options_group' => 'sbp_settings',
195
- ),
196
- 'limit_post_revisions' => array(
197
- 'type' => 'select',
198
- 'label' => __( 'Limit Post Revisions', 'speed-booster-pack' ),
199
- 'tooltip' => __( 'Controls how many revisions WordPress will save ', 'speed-booster-pack' ),
200
- 'options' => array(
201
- '1' => '1',
202
- '2' => '2',
203
- '3' => '3',
204
- '4' => '4',
205
- '5' => '5',
206
- '10' => '10',
207
- '15' => '15',
208
- '20' => '20',
209
- '25' => '25',
210
- '30' => '30',
211
- 'false' => 'Disable',
212
- ),
213
- 'options_group' => 'sbp_settings',
214
- ),
215
- 'autosave_interval' => array(
216
- 'type' => 'select',
217
- 'label' => __( 'Autosave interval', 'speed-booster-pack' ),
218
- 'tooltip' => __( 'Controls how WordPress will autosave posts and pages while editing.', 'speed-booster-pack' ),
219
- 'options' => array(
220
- '1' => __( '1 minute', 'speed-booster-pack' ),
221
- '2' => __( '2 minutes', 'speed-booster-pack' ),
222
- '3' => __( '3 minutes', 'speed-booster-pack' ),
223
- '4' => __( '4 minutes', 'speed-booster-pack' ),
224
- '5' => __( '5 minutes', 'speed-booster-pack' ),
225
- ),
226
- 'options_group' => 'sbp_settings',
227
- ),
228
- 'remove_rest_api_links' => array(
229
- 'type' => 'checkbox',
230
- 'label' => __( 'Remove REST API Links', 'speed-booster-pack' ),
231
- 'tooltip' => __( 'The WordPress REST API provides API endpoints for WordPress data types that allow developers to interact with sites remotely by sending and receiving JSON (JavaScript Object Notation) objects.', 'speed-booster-pack' ),
232
- 'options_group' => 'sbp_settings',
233
- ),
234
  ),
235
- ),
236
- //need even more speed section
237
- array(
238
- 'type' => 'section',
239
- 'label' => __( 'Need even more speed?', 'speed-booster-pack' ),
240
- 'items' => array(
241
- 'sbp_css_async' => array(
242
- 'type' => 'checkbox',
243
- 'label' => __( 'Inline all CSS', 'speed-booster-pack' ),
244
- 'tooltip' => __( 'Checking this option will inline the contents of all your stylesheets. This helps with the annoying render blocking error Google Page Speed Insights displays.', 'speed-booster-pack' ),
245
- 'options_group' => 'sbp_settings',
246
- ),
247
- 'sbp_css_minify' => array(
248
- 'type' => 'checkbox',
249
- 'label' => __( 'Minify all (previously) inlined CSS', 'speed-booster-pack' ),
250
- 'tooltip' => __( 'Minifying all inlined CSS styles will optimize the CSS delivery and will eliminate the annoying message on Google Page Speed regarding to render-blocking css.', 'speed-booster-pack' ),
251
- 'options_group' => 'sbp_settings',
252
- ),
253
- 'sbp_footer_css' => array(
254
- 'type' => 'checkbox',
255
- 'label' => __( 'Move all inlined CSS into the footer', 'speed-booster-pack' ),
256
- 'tooltip' => __( 'Inserting all CSS styles inline to the footer is a sensitive option that will eliminate render-blocking CSS warning in Google Page Speed test. If there is something broken after activation, you need to disable this option. Please note that before enabling this sensitive option, it is strongly recommended that you also enable the “ Move scripts to the footer” option.', 'speed-booster-pack' ),
257
- 'options_group' => 'sbp_settings',
258
- ),
259
- 'sbp_is_mobile' => array(
260
- 'type' => 'checkbox',
261
- 'label' => __( 'Disable all above CSS options on mobile devices', 'speed-booster-pack' ),
262
- 'tooltip' => __( 'Disable all above CSS options on mobile devices: this option was added to avoid some appearance issues on mobile devices.', 'speed-booster-pack' ),
263
- 'options_group' => 'sbp_settings',
264
- ),
265
  ),
266
- ),
267
- //other options section
268
- array(
269
- 'type' => 'section',
270
- 'items' => array(
271
- 'sbp_css_exceptions' => array(
272
- 'type' => 'textarea',
273
- 'label' => __( 'Exclude styles from being inlined and/or minified option: ', 'speed-booster-pack' ),
274
- 'description' => __( 'Enter one by line, the handles of CSS files or the final part of the style URL.', 'speed-booster-pack' ),
275
- ),
276
- //CSS handle guidance
277
- 'guidance_options_css' => array(
278
- 'type' => 'guidance',
279
- 'label' => __( 'As a guidance, here is a list of CSS handles of each enqueued style detected by our plugin:', 'speed-booster-pack' ),
 
 
 
 
 
 
 
 
280
  ),
281
  ),
282
- ),
283
- ),
284
- ),
285
- //advanced options panel
286
- 'advanced-options' => array(
287
- //Exclude scripts fro being moved to the footer
288
- 'sections' => array(
289
- array(
290
- 'type' => 'section',
291
- 'label' => __( 'Exclude scripts from being moved to the footer', 'speed-booster-pack' ),
292
- 'description' => __( 'Enter one JS handle per text field. Read more <a href="https://optimocha.com/speed-booster-pack-documentation/#exclude-scripts-from-being-moved-to-the-footer-50">detailed instructions</a> on this option on plugin documentation.', 'speed-booster-pack' ),
293
- 'items' => array(
294
- 'sbp_js_footer_exceptions1' => array(
295
- 'type' => 'text',
296
- ),
297
- 'sbp_js_footer_exceptions2' => array(
298
- 'type' => 'text',
299
- ),
300
- 'sbp_js_footer_exceptions3' => array(
301
- 'type' => 'text',
302
- ),
303
- 'sbp_js_footer_exceptions4' => array(
304
- 'type' => 'text',
305
- ),
306
- //guidance
307
- 'guidance_options_js' => array(
308
- 'type' => 'guidance',
309
- 'label' => __( 'As a guidance, here is a list of script handles and script paths of each enqueued script detected by our plugin:', 'speed-booster-pack' ),
310
  ),
311
  ),
312
- ),
313
- //Exclude scripts from being deferred
314
- array(
315
- 'type' => 'section',
316
- 'label' => __( 'Exclude scripts from being deferred', 'speed-booster-pack' ),
317
- 'items' => array(
318
- 'sbp_defer_exceptions1' => array(
319
- 'type' => 'text',
320
- ),
321
- 'sbp_defer_exceptions2' => array(
322
- 'type' => 'text',
323
- ),
324
- 'sbp_defer_exceptions3' => array(
325
- 'type' => 'text',
326
- ),
327
- 'sbp_defer_exceptions4' => array(
328
- 'type' => 'text',
 
 
 
 
 
 
329
  ),
330
- 'info' => array(
331
- 'type' => 'guidance',
332
- 'description_only' => true,
333
- 'description' => __( 'Enter one by text field, the handle part of the JS files that you want to be excluded from defer parsing option. For example: <code>jquery-core</code> If you want to exclude more than 4 scripts, you can use the following filter: <code>sbp_exclude_defer_scripts</code> which takes an array of script handles as params. If you don\'t know how to handle this, feel free to post on our support forums.', 'speed-booster-pack' ),
 
 
 
 
 
 
 
 
 
 
 
 
334
  ),
335
  ),
336
  ),
337
  ),
338
- ),
339
- 'cdn-options' => array(
340
- 'sections' => array(
341
- array(
342
- 'type' => 'section',
343
- 'label' => __( 'CDN', 'speed-booster-pack' ),
344
- 'description' => __( 'CDN options that allow you to rewrite your site URLs with your CDN URLs.', 'speed-booster-pack' ),
345
- 'items' => array(
346
- 'sbp_enable_cdn' => array(
347
- 'type' => 'checkbox',
348
- 'label' => __( 'Enable CDN Rewrite', 'speed-booster-pack' ),
349
- 'tooltip' => __( 'Enables rewriting of your site URLs with your CDN URLs', 'speed-booster-pack' ),
350
- 'options_group' => 'sbp_settings',
351
- ),
352
- 'sbp_cdn_url' => array(
353
- 'type' => 'text',
354
- 'label' => __( 'CDN URL', 'speed-booster-pack' ),
355
- 'tooltip' => __( 'Enter your CDN URL without the trailing slash. Example: https://cdn.example.com', 'speed-booster-pack' ),
356
- 'options_group' => 'sbp_settings',
357
- ),
358
- 'sbp_cdn_included_directories' => array(
359
- 'type' => 'text',
360
- 'label' => __( 'Included Directories', 'speed-booster-pack' ),
361
- 'tooltip' => __( 'Enter any directories you would like to be included in CDN rewriting, separated by commas (,). Default: wp-content,wp-includes', 'speed-booster-pack' ),
362
- 'options_group' => 'sbp_settings',
363
- 'default' => 'wp-content,wp-includes',
364
- ),
365
- 'sbp_cdn_exclusions' => array(
366
- 'type' => 'text',
367
- 'label' => __( 'CDN Exclusions', 'speed-booster-pack' ),
368
- 'tooltip' => __( 'Enter any directories or file extensions you would like to be excluded from CDN rewriting, separated by commas (,). Default: .php', 'speed-booster-pack' ),
369
- 'options_group' => 'sbp_settings',
370
- 'default' => '.php',
371
  ),
372
  ),
373
  ),
374
  ),
375
- ),
376
- 'google-analytics' => array(
377
- 'sections' => array(
378
- array(
379
- 'type' => 'section',
380
- 'label' => __( 'Google Analytics', 'speed-booster-pack' ),
381
- 'description' => __( 'Optimization options for Google Analytics.', 'speed-booster-pack' ),
382
- 'items' => array(
383
- 'sbp_enable_local_analytics' => array(
384
- 'type' => 'checkbox',
385
- 'label' => __( 'Enable Local Analytics', 'speed-booster-pack' ),
386
- 'tooltip' => __( 'Enable syncing of the Google Analytics script to your own server.', 'speed-booster-pack' ),
387
- 'options_group' => 'sbp_settings',
388
- ),
389
- 'sbp_ga_tracking_id' => array(
390
- 'type' => 'text',
391
- 'label' => __( 'Tracking ID', 'speed-booster-pack' ),
392
- 'tooltip' => __( 'Enter your Google Analytics tracking ID', 'speed-booster-pack' ),
393
- 'options_group' => 'sbp_settings',
394
- ),
395
- 'sbp_tracking_position' => array(
396
- 'type' => 'select',
397
- 'label' => __( 'Tracking code position', 'speed-booster-pack' ),
398
- 'tooltip' => __( 'Load your GA script in the header or footer of the site. Default - header', 'speed-booster-pack' ),
399
- 'options_group' => 'sbp_settings',
400
- 'options' => array(
401
- 'header' => 'Header (default)',
402
- 'footer' => 'Footer',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
403
  ),
404
- ),
405
- 'sbp_disable_display_features' => array(
406
- 'type' => 'checkbox',
407
- 'label' => __( 'Disable Display Features', 'speed-booster-pack' ),
408
- 'tooltip' => __( 'Disable marketing and advertising which generates a 2nd HTTP request', 'speed-booster-pack' ),
409
- 'options_group' => 'sbp_settings',
410
- ),
411
- 'sbp_anonymize_ip' => array(
412
- 'type' => 'checkbox',
413
- 'label' => __( 'Anonymize IP', 'speed-booster-pack' ),
414
- 'tooltip' => __( 'Shorten visitor IP to comply with privacy restrictions in some countries.', 'speed-booster-pack' ),
415
- 'options_group' => 'sbp_settings',
416
- ),
417
- 'sbp_track_loggedin_admins' => array(
418
- 'type' => 'checkbox',
419
- 'label' => __( 'Track Admins', 'speed-booster-pack' ),
420
- 'tooltip' => __( 'Include logged in WordPress admins in your GA report.', 'speed-booster-pack' ),
421
- 'options_group' => 'sbp_settings',
422
- ),
423
- 'sbp_bounce_rate' => array(
424
- 'type' => 'text',
425
- 'label' => __( 'Adjust Bounce Rate', 'speed-booster-pack' ),
426
- 'tooltip' => __( 'Set a timeout limit in seconds to better evaluate the quality of your traffic (1 - 100)', 'speed-booster-pack' ),
427
- 'options_group' => 'sbp_settings',
428
- ),
429
- 'sbp_monsterinsights' => array(
430
- 'type' => 'checkbox',
431
- 'label' => __( 'MonsterInsights Integration', 'speed-booster-pack' ),
432
- 'tooltip' => __( 'Allows MonsterInsights to manage your Google Analytics while still using the locally hosted analytics.js generated by Speed Booster Pack', 'speed-booster-pack' ),
433
- 'options_group' => 'sbp_settings',
434
  ),
435
  ),
436
  ),
437
  ),
438
- ),
439
- );
440
 
441
- //Start the tabs
442
- foreach ( $sbp_options_array as $k => $values ) { ?>
443
- <!-- Tab sections -->
444
- <div id="<?php echo $k; ?>" class="sb-pack-tab">
 
 
445
 
446
- <?php
447
- if ( $k == 'advanced-options' ) {
448
- ?>
449
- <!-- Advanced Options sections -->
450
- <h3><?php _e('Advanced', 'speed-booster-pack'); ?></h3>
451
- <div id="poststuff">
452
-
453
- <?php
454
- } else {
455
- ?>
456
- <!-- Sections For General Options -->
457
- <div class="sb-pack">
458
  <?php
459
- if ( isset( $values['label'] ) ) {
460
- ?>
 
 
 
 
 
 
461
  <h3><?php echo $values['label']; ?></h3>
462
- <?php
463
- }
464
  }
465
- //Start the sections
466
- foreach ( $values['sections'] as $section => $section_value ) {
467
- if ( 'advanced-options' != $k ) {
468
- ?>
469
- <h3><?php echo ( isset( $section_value['label'] ) ) ? $section_value['label'] : ""; ?></h3><?php
470
- } else {
471
- ?>
472
- <div class="meta-box-sortables ui-sortable" id="normal-sortables">
473
- <div class="postbox" id="<?php echo $section; ?>">
474
- <button type="button" class="handlediv" aria-expanded="true">
475
- <span class="screen-reader-text"><?php echo ( isset( $section_value['label'] ) ) ? $section_value['label'] : ""; ?></span>
476
- <span class="toggle-indicator" aria-hidden="true"></span>
477
- </button>
478
- <h3 class="hndle ui-sortable-handle" style="cursor: pointer;">
479
- <span><?php echo ( isset( $section_value['label'] ) ) ? $section_value['label'] : ""; ?></span>
480
- </h3>
481
- <div class="inside">
482
- <?php
483
- }
484
- //Start the options
485
- foreach ( $section_value['items'] as $item => $item_value ) {
486
-
487
- if ( 'checkbox' == $item_value['type'] ) { ?>
488
- <div class="onoffswitch-wrapper">
489
- <?php if ( isset( $item_value['tooltip'] ) ) { ?>
490
- <span class="tooltip-right"
491
- data-tooltip="<?php echo $item_value['tooltip']; ?>">
492
- <i class="dashicons dashicons-editor-help"></i>
493
- </span>
494
- <?php } ?>
495
- <span class="chekbox-title"><?php echo ( isset( $item_value['label'] ) ) ? $item_value['label'] : ''; ?></span>
496
-
497
- <div class="onoffswitch">
498
- <div class="epsilon-toggle">
499
- <input class="epsilon-toggle__input" type="checkbox" id="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>" name="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>" value="1" <?php checked( 1, isset( $sbp_options[ $item ] ) ); ?> >
500
- <div class="epsilon-toggle__items">
501
- <span class="epsilon-toggle__track"></span>
502
- <span class="epsilon-toggle__thumb"></span>
503
- <svg class="epsilon-toggle__off" width="6" height="6" aria-hidden="true" role="img" focusable="false" viewBox="0 0 6 6">
504
- <path d="M3 1.5c.8 0 1.5.7 1.5 1.5S3.8 4.5 3 4.5 1.5 3.8 1.5 3 2.2 1.5 3 1.5M3 0C1.3 0 0 1.3 0 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z"></path>
505
- </svg>
506
- <svg class="epsilon-toggle__on" width="2" height="6" aria-hidden="true" role="img" focusable="false" viewBox="0 0 2 6">
507
- <path d="M0 0h2v6H0z"></path>
508
- </svg>
509
- </div>
510
  </div>
511
- <label for="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>"></label>
512
  </div>
 
513
  </div>
514
- <?php }
515
- if ( 'select' == $item_value['type'] ) { ?>
516
- <p>
517
- <?php if ( isset( $item_value['tooltip'] ) ) { ?>
518
- <span class="tooltip-right"
519
- data-tooltip="<?php echo $item_value['tooltip']; ?>">
520
- <i class="dashicons dashicons-editor-help"></i>
521
- </span>
522
- <?php } ?>
523
- <label for="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>" class="<?php echo ( isset( $item_value['label'] ) ) ? 'label-text' : ''; ?>"><?php echo ( isset( $item_value['label'] ) ) ? $item_value['label'] : ''; ?></label>
524
- <select id="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>"
525
- name="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>">
526
- <?php
527
- foreach ( $item_value['options'] as $option_k => $op_v ) {
528
- ?>
529
- <option value="<?php echo $option_k; ?>" <?php selected( $option_k, $sbp_options[ $item ], true ); ?> ><?php echo $op_v; ?></option>
530
- <?php
531
- }
532
- ?>
533
- </select>
534
- </p>
535
- <?php }
536
-
537
- if ( 'text' == $item_value['type'] ) { ?>
538
- <p>
539
  <?php
540
- $default_value = ( isset( $item_value['default'] ) ) ? $item_value['default'] : "";
541
- if ( isset( $item_value['options_group'] ) ) {
542
- $op_text = ( isset( $sbp_options[ $item ] ) && "" != $sbp_options[ $item ] ) ? $sbp_options[ $item ] : $default_value;
543
- } else {
544
- $op_text = ( get_option( $item ) ) ? get_option( $item ) : $default_value;
545
  }
546
-
547
  ?>
548
- <?php if ( isset( $item_value['tooltip'] ) ) { ?>
549
- <span class="tooltip-right"
550
- data-tooltip="<?php echo $item_value['tooltip']; ?>">
551
- <i class="dashicons dashicons-editor-help"></i>
552
- </span>
553
- <?php } ?>
554
- <label for="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>" class="<?php echo ( isset( $item_value['label'] ) ) ? 'label-text' : ''; ?>"><?php echo ( isset( $item_value['label'] ) ) ? $item_value['label'] : ''; ?></label>
555
-
556
- <input id="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>"
557
- name="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>" type="text" value="<?php echo esc_attr( $op_text ); ?>" />
558
- </p>
559
- <?php }
560
 
561
- if ( 'textarea' == $item_value['type'] ) { ?>
562
- <div class="td-border-last"></div>
563
- <h4><?php echo ( isset( $item_value['label'] ) ) ? $item_value['label'] : ''; ?></h4>
564
- <p>
565
- <textarea cols="50" rows="3" name="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>"
566
- id="<?php echo $item; ?>"
567
- value="<?php echo esc_attr( $css_exceptions ); ?>"><?php echo wp_kses_post( $css_exceptions ); ?></textarea>
568
- </p>
569
- <p class="description">
570
- <?php echo isset( $item_value['description'] ) ? $item_value['description'] : ''; ?>
571
- </p>
572
- <?php }
573
 
574
- if ( 'guidance' == $item_value['type'] ) {
575
- //guidance for General options
576
- if ( $item == 'guidance_options_css' ) {
577
- ?>
578
- <div class="td-border-last"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
579
 
580
- <p>
581
- <h4><?php $item_value['label']; ?></h4>
582
- </p>
 
583
 
584
- <div class="sbp-all-enqueued">
 
 
585
 
586
- <div class="sbp-div-head">
587
- <div class="sbp-title-scripts"><?php _e( 'CSS Handle', 'speed-booster-pack' ); ?></div>
588
- </div>
589
 
590
- <div class="sbp-inline-wrap">
591
- <div class="sbp-columns1 sbp-width">
592
- <?php print_r( get_option( 'all_theme_styles_handle' ) ); ?>
593
- </div>
594
- </div>
595
  </div>
596
- <?php
597
- }
598
- if ( 'guidance_options_js' == $item ) {
599
- ?>
600
- <div class="td-border-last"></div>
601
- <h4><?php echo $item_value['label']; ?></h4>
602
- <div class="sbp-all-enqueued">
603
- <div class="sbp-div-head">
604
- <div class="sbp-title-scripts"><?php _e( 'Script Handle', 'speed-booster-pack' ); ?></div>
605
- <div class="sbp-title-scripts"><?php _e( 'Script Path', 'speed-booster-pack' ); ?></div>
606
  </div>
607
- <div class="sbp-inline-wrap">
 
 
 
 
 
 
 
 
 
 
 
 
608
 
609
- <div class="sbp-columns1 sbp-width">
610
- <?php
611
- $all_script_handles = get_option( 'all_theme_scripts_handle' );
612
 
613
- $all_script_handles = explode( '<br />', $all_script_handles );
614
 
615
- foreach ( $all_script_handles as $key => $value ) {
616
- if ( ! empty( $value ) ) {
617
- echo '<p>' . esc_html( $value ) . '</p>';
618
- }
619
  }
620
- ?>
621
- </div>
622
-
623
- <div class="sbp-columns2 sbp-width">
624
- <?php
625
- $all_scripts_src = get_option( 'all_theme_scripts_src' );
626
 
627
- $all_scripts_src = explode( '<br />', $all_scripts_src );
 
 
628
 
629
- foreach ( $all_scripts_src as $key => $value ) {
630
- if ( ! empty( $value ) ) {
631
- $value = parse_url( $value );
632
- echo '<p>' . esc_html( str_replace( '/wp-content', '', $value['path'] ) ) . '</p>';
633
- }
634
 
 
 
 
 
635
  }
636
- ?>
637
- </div>
 
638
  </div>
639
  </div>
640
- <?php
641
- }
642
- if ( isset( $item_value['description_only'] ) && $item_value['description_only'] ) {
643
- ?>
 
644
  <p class="description"><?php echo $item_value['description']; ?></p>
645
- <?php
646
- }
647
-
648
  }
649
 
650
  }
651
- if ( 'advanced-options' == $k ) {
652
- ?> </div>
653
- </div>
654
- </div>
655
- <?php }
656
  }
 
657
  ?>
658
- </div><!-- Advanced Options sections || Sections For General Options -->
659
- </div> <!-- Tab sections -->
660
- <?php } ?>
661
-
662
- <div id="optimize-more" class="sb-pack-tab">
663
- <div class="feature-section three-col">
664
-
665
- <div class="col sbp-box">
666
- <img src="<?php echo SPEED_BOOSTER_PACK_URL ?>inc/images/optimocha.png" alt="Optimocha Speed Optimization Service" />
667
- <div class="sbp-box__name"><?php esc_html_e( 'Optimocha', 'speed-booster-pack' ); ?></div>
668
- <div class="sbp-box__description">
669
- <?php esc_html_e( 'A tailored speed optimization service for WordPress websites. Also the developer and the maintainer of Speed Booster Pack. ', 'speed-booster-pack' ); ?>
670
- </div>
671
-
672
- <div class="sbp-box__action-bar">
673
- <span class="sbp-box__action-button">
674
- <a class="button button-primary" href="<?php echo esc_url( 'https://optimocha.com/?ref=sbp' ); ?>" target="_blank"><?php esc_html_e( 'Speed Up Your Website', 'speed-booster-pack' ); ?></a>
675
- </span>
676
- </div>
677
- </div>
678
-
679
-
680
- <div class="col sbp-box">
681
- <img src="<?php echo SPEED_BOOSTER_PACK_URL ?>inc/images/shortpixel.png" alt="ShortPixel Image Optimizer" />
682
- <div class="sbp-box__name"><?php esc_html_e( 'ShortPixel Image Optimizer', 'speed-booster-pack' ); ?></div>
683
-
684
- <div class="sbp-box__description">
685
- <?php esc_html_e( 'Optimized images help your site load faster, especially in the new WebP format. Get ShortPixel to gain more speed!', 'speed-booster-pack' ); ?>
686
  </div>
687
 
688
- <div class="sbp-box__action-bar">
689
- <span class="sbp-box__action-button">
690
- <a class="button" href="<?php echo esc_url( 'https://optimocha.com/go/shortpixel' ); ?>" target="_blank"><?php esc_html_e( 'Optimize Your Images', 'speed-booster-pack' ); ?></a>
691
- </span>
 
 
 
 
 
692
  </div>
693
- </div>
694
-
695
-
696
- <div class="col sbp-box">
697
- <img src="<?php echo SPEED_BOOSTER_PACK_URL ?>inc/images/wp-engine.png" alt="WP Engine Hosting" />
698
- <div class="sbp-box__name"><?php esc_html_e( 'WP Engine', 'speed-booster-pack' ); ?></div>
699
 
700
- <div class="sbp-box__description">
701
- <?php esc_html_e( 'One of the best WordPress hosting companies out there. Get 2 (or more!) months for free with an annual payment.', 'speed-booster-pack' ); ?>
 
 
 
 
 
 
 
702
  </div>
703
 
704
- <div class="sbp-box__action-bar">
705
- <span class="sbp-box__action-button">
706
- <a class="button" href="<?php echo esc_url( 'https://optimocha.com/go/wpengine' ); ?>" target="_blank"><?php esc_html_e( 'Get Better Hosting', 'speed-booster-pack' ); ?></a>
707
- </span>
708
- </div>
709
- </div>
710
 
 
 
711
  </div>
712
- </div><!--#optimize-more-->
713
 
714
- <div>
715
- <hr />
716
- <?php submit_button( '', 'button button-primary button-hero' ); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
717
  </div>
 
718
 
719
- </form>
720
 
721
  </div><!--/.sb-pack-->
722
  </div> <!-- end wrap div -->
17
 
18
  ?>
19
 
20
+ <div class="wrap">
21
+
22
+ <div class="sb-pack clearfix">
23
+
24
+ <div class="col-main">
25
+
26
+ <h1 class="admin-page-title"><?php echo esc_html( get_admin_page_title() ); ?></h1>
27
+
28
+ <h2 class="nav-tab-wrapper wp-clearfix">
29
+ <a class="nav-tab" href="#general-options"><span class="dashicons dashicons-admin-generic"></span> <?php _e( 'General', 'speed-booster-pack' ); ?></a>
30
+ <a class="nav-tab" href="#advanced-options"><span class="dashicons dashicons-admin-settings"></span> <?php _e( 'Advanced', 'speed-booster-pack' ); ?></a>
31
+ <a class="nav-tab" href="#cdn-options"><span class="dashicons dashicons-admin-site-alt"></span> <?php _e( 'CDN', 'speed-booster-pack' ); ?></a>
32
+ <a class="nav-tab" href="#google-analytics"><span class="dashicons dashicons-chart-area"></span> <?php _e( 'Google Analytics', 'speed-booster-pack' ); ?></a>
33
+ <a class="nav-tab" href="#optimize-more"><span class="dashicons dashicons-dashboard"></span> <?php _e( 'Optimize More', 'speed-booster-pack' ); ?></a>
34
+ </h2>
35
+
36
+ <form method="post" action="options.php">
37
+
38
+ <?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
39
+ <?php wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?>
40
+ <?php settings_fields( 'speed_booster_settings_group' ); ?>
41
+
42
+ <?php
43
+
44
+ $sbp_options_array = array(
45
+ //general options panel
46
+ 'general-options' => array(
47
+ //General section
48
+ 'sections' => array(
49
+ array(
50
+ 'type' => 'section',
51
+ 'label' => 'Safe Optimizations',
52
+ 'items' => array(
53
+ 'query_strings' => array(
54
+ 'type' => 'checkbox',
55
+ 'label' => __( 'Remove query strings', 'speed-booster-pack' ),
56
+ 'tooltip' => __( 'Since most proxies do not cache resources with a ? in their URL, this option allows you to remove any query strings (version numbers) from static resources like CSS & JS files, thus improving your speed scores in services like GTmetrix, PageSpeed, YSlow and Pingdoom.', 'speed-booster-pack' ),
57
+ 'options_group' => 'sbp_settings',
58
+ ),
59
+ 'remove_emojis' => array(
60
+ 'type' => 'checkbox',
61
+ 'label' => __( 'Remove WordPress Emoji scripts', 'speed-booster-pack' ),
62
+ 'tooltip' => __( 'Emojis are fun and all, but if you are aren’t using them they actually load a JavaScript file (wp-emoji-release.min.js) on every page of your website. For a lot of businesses, this is not needed and simply adds load time to your site. So we recommend disabling this.', 'speed-booster-pack' ),
63
+ 'options_group' => 'sbp_settings',
64
+ ),
65
+ 'remove_wsl' => array(
66
+ 'type' => 'checkbox',
67
+ 'label' => __( 'Remove WordPress Shortlink', 'speed-booster-pack' ),
68
+ 'tooltip' => __( 'WordPress URL shortening is sometimes useful, but it automatically adds an ugly code in your header, so you can remove it.', 'speed-booster-pack' ),
69
+ 'options_group' => 'sbp_settings',
70
+ ),
71
+ 'remove_adjacent' => array(
72
+ 'type' => 'checkbox',
73
+ 'label' => __( 'Remove Adjacent Posts Links', 'speed-booster-pack' ),
74
+ 'tooltip' => __( 'WordPress incorrectly implements this feature that supposedly should fix a pagination issues but it messes up, so there is no reason to keep these around. However, some browsers may use Adjacent Posts Links to navigate your site, although you can remove it if you run a well designed theme.', 'speed-booster-pack' ),
75
+ 'options_group' => 'sbp_settings',
76
+ ),
77
+ 'wml_link' => array(
78
+ 'type' => 'checkbox',
79
+ 'label' => __( 'Remove Windows Live Writer Manifest', 'speed-booster-pack' ),
80
+ 'tooltip' => __( 'Windows Live Writer (WLW) is a Microsoft application for composing and managing blog posts offline and publish them later. If you are not using Windows Live Writer application, you can remove it from the WP head.', 'speed-booster-pack' ),
81
+ 'options_group' => 'sbp_settings',
82
+ ),
83
+ 'wp_generator' => array(
84
+ 'type' => 'checkbox',
85
+ 'label' => __( 'Remove WordPress Version', 'speed-booster-pack' ),
86
+ 'tooltip' => __( 'Windows Live Writer (WLW) is a Microsoft application for composing and managing blog posts offline and publish them later. If you are not using Windows Live Writer application, you can remove it from the WP head.', 'speed-booster-pack' ),
87
+ 'options_group' => 'sbp_settings',
88
+ ),
89
+ 'disable_self_pingbacks' => array(
90
+ 'type' => 'checkbox',
91
+ 'label' => __( 'Disable Self Pingbacks', 'speed-booster-pack' ),
92
+ 'tooltip' => __( 'A pingback is a special type of comment that’s created when you link to another blog post, as long as the other blog is set to accept pingbacks.', 'speed-booster-pack' ),
93
+ 'options_group' => 'sbp_settings',
94
+ ),
95
+ 'remove_jquery_migrate' => array(
96
+ 'type' => 'checkbox',
97
+ 'label' => __( 'Remove jQuery Migrate', 'speed-booster-pack' ),
98
+ 'tooltip' => __( 'Remove the jquery-migrate.js script that helps older jQuery plugins to be compatible with new jQuery versions. You safely turn this setting on if your jQuery plugins are all new.', 'speed-booster-pack' ),
99
+ 'options_group' => 'sbp_settings',
100
+ ),
101
+ 'disable_dashicons' => array(
102
+ 'type' => 'checkbox',
103
+ 'label' => __( 'Remove Dashicons', 'speed-booster-pack' ),
104
+ 'tooltip' => __( 'Remove Dashicons from front end.', 'speed-booster-pack' ),
105
+ 'options_group' => 'sbp_settings',
106
+ ),
107
+ 'disable_heartbeat' => array(
108
+ 'type' => 'checkbox',
109
+ 'label' => __( 'Disable Heartbeat', 'speed-booster-pack' ),
110
+ 'tooltip' => __( 'Disable heartbeat everywhere ( used for autosaving and revision tracking ).', 'speed-booster-pack' ),
111
+ 'options_group' => 'sbp_settings',
112
+ ),
113
+ 'heartbeat_frequency' => array(
114
+ 'type' => 'select',
115
+ 'label' => __( 'Heartbeat frequency', 'speed-booster-pack' ),
116
+ 'tooltip' => __( 'Controls how often the WordPress Heartbeat API is allowed to run. ', 'speed-booster-pack' ),
117
+ 'options' => array(
118
+ '15' => '15',
119
+ '30' => '30',
120
+ '45' => '45',
121
+ '60' => '60',
122
+ ),
123
+ 'options_group' => 'sbp_settings',
124
+ ),
125
+ 'limit_post_revisions' => array(
126
+ 'type' => 'select',
127
+ 'label' => __( 'Limit Post Revisions', 'speed-booster-pack' ),
128
+ 'tooltip' => __( 'Controls how many revisions WordPress will save ', 'speed-booster-pack' ),
129
+ 'options' => array(
130
+ '1' => '1',
131
+ '2' => '2',
132
+ '3' => '3',
133
+ '4' => '4',
134
+ '5' => '5',
135
+ '10' => '10',
136
+ '15' => '15',
137
+ '20' => '20',
138
+ '25' => '25',
139
+ '30' => '30',
140
+ 'false' => 'Disable',
141
+ ),
142
+ 'options_group' => 'sbp_settings',
143
+ ),
144
+ 'autosave_interval' => array(
145
+ 'type' => 'select',
146
+ 'label' => __( 'Autosave interval', 'speed-booster-pack' ),
147
+ 'tooltip' => __( 'Controls how WordPress will autosave posts and pages while editing.', 'speed-booster-pack' ),
148
+ 'options' => array(
149
+ '1' => __( '1 minute', 'speed-booster-pack' ),
150
+ '2' => __( '2 minutes', 'speed-booster-pack' ),
151
+ '3' => __( '3 minutes', 'speed-booster-pack' ),
152
+ '4' => __( '4 minutes', 'speed-booster-pack' ),
153
+ '5' => __( '5 minutes', 'speed-booster-pack' ),
154
+ ),
155
+ 'options_group' => 'sbp_settings',
156
+ ),
157
  ),
158
  ),
159
  ),
160
+ ),
161
+ //advanced options panel
162
+ 'advanced-options' => array(
163
+ //Exclude scripts for being moved to the footer
164
+ 'sections' => array(
165
+ array(
166
+ 'type' => 'section',
167
+ 'label' => __( 'Advanced Optimizations', 'speed-booster-pack' ),
168
+ 'items' => array(
169
+ 'enable_instant_page' => array(
170
+ 'type' => 'checkbox',
171
+ 'label' => __( 'Enable instant.page (BETA)', 'speed-booster-pack' ),
172
+ 'tooltip' => __( 'Check this option if you want to use the instant.page link preloader. This is a new and experimental feature; use with caution. If something goes wrong, simply uncheck this option and save the settings.', 'speed-booster-pack' ),
173
+ 'options_group' => 'sbp_settings',
174
+ ),
175
+ 'disable_cart_fragments' => array(
176
+ 'type' => 'checkbox',
177
+ 'label' => __( 'Disable cart fragments (BETA)', 'speed-booster-pack' ),
178
+ 'tooltip' => __( 'Check this option to disable WooCommerce&#39;s &quot;cart fragments&quot; script, which overrides all caching function to update cart totals on each page load in your theme header. This is a new and experimental feature; use with caution. If something goes wrong, simply uncheck this option and save the settings.', 'speed-booster-pack' ),
179
+ 'options_group' => 'sbp_settings',
180
+ ),
181
+ 'disable_google_maps' => array(
182
+ 'type' => 'checkbox',
183
+ 'label' => __( 'Remove Google Maps', 'speed-booster-pack' ),
184
+ 'tooltip' => __( 'Remove Google Maps from front end. ', 'speed-booster-pack' ),
185
+ 'options_group' => 'sbp_settings',
186
+ ),
187
+ 'remove_rest_api_links' => array(
188
+ 'type' => 'checkbox',
189
+ 'label' => __( 'Remove REST API Links', 'speed-booster-pack' ),
190
+ 'tooltip' => __( 'The WordPress REST API provides API endpoints for WordPress data types that allow developers to interact with sites remotely by sending and receiving JSON (JavaScript Object Notation) objects.', 'speed-booster-pack' ),
191
+ 'options_group' => 'sbp_settings',
192
+ ),
193
+ 'remove_all_feeds' => array(
194
+ 'type' => 'checkbox',
195
+ 'label' => __( 'Remove all RSS feed links', 'speed-booster-pack' ),
196
+ 'tooltip' => __( 'This option will remove all RSS feed links to cleanup your WordPress header. It is also useful on Unicorn – The W3C Markup Validation Service to get rid out the “feed does not validate” error.', 'speed-booster-pack' ),
197
+ 'options_group' => 'sbp_settings',
198
+ ),
199
+ 'minify_html_js' => array(
200
+ 'type' => 'checkbox',
201
+ 'label' => __( 'Minify HTML', 'speed-booster-pack' ),
202
+ 'tooltip' => __( 'Activate this option only if you don’t want to use other minify plugins or other speed optimization plugin that has minify option included. If something goes wrong, simply uncheck this option and save the settings.', 'speed-booster-pack' ),
203
+ 'options_group' => 'sbp_settings',
204
+ ),
205
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
206
  ),
207
+ array(
208
+ 'type' => 'section',
209
+ 'label' => __( 'JavaScript Optimization', 'speed-booster-pack' ),
210
+ 'items' => array(
211
+ 'jquery_to_footer' => array(
212
+ 'type' => 'checkbox',
213
+ 'label' => __( 'Move scripts to footer', 'speed-booster-pack' ),
214
+ 'tooltip' => __( 'This option move all scripts to the footer while keeping stylesheets in the header to improve page loading speed and get a higher score on the major speed testing sites such as GTmetrix or other website speed testing tools', 'speed-booster-pack' ),
215
+ 'options_group' => 'sbp_settings',
216
+ ),
217
+ 'defer_parsing' => array(
218
+ 'type' => 'checkbox',
219
+ 'label' => __( 'Defer parsing of JS files', 'speed-booster-pack' ),
220
+ 'tooltip' => __( '!!!Note: This will be disabled IF Move Scripts to Footer is enabled. By deferring parsing of unneeded JavaScript until it needs to be executed, you can reduce the initial load time of your page.', 'speed-booster-pack' ),
221
+ 'options_group' => 'sbp_settings',
222
+ ),
223
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  ),
225
+ array(
226
+ 'type' => 'section',
227
+ 'label' => __( 'Exclude scripts from being moved to the footer', 'speed-booster-pack' ),
228
+ 'description' => __( 'Enter one JS handle per text field. Read more <a href="https://optimocha.com/speed-booster-pack-documentation/#exclude-scripts-from-being-moved-to-the-footer-50">detailed instructions</a> on this option on plugin documentation.', 'speed-booster-pack' ),
229
+ 'items' => array(
230
+ 'sbp_js_footer_exceptions1' => array(
231
+ 'type' => 'text',
232
+ ),
233
+ 'sbp_js_footer_exceptions2' => array(
234
+ 'type' => 'text',
235
+ ),
236
+ 'sbp_js_footer_exceptions3' => array(
237
+ 'type' => 'text',
238
+ ),
239
+ 'sbp_js_footer_exceptions4' => array(
240
+ 'type' => 'text',
241
+ ),
242
+ //guidance
243
+ 'guidance_options_js' => array(
244
+ 'type' => 'guidance',
245
+ 'label' => __( 'As a guidance, here is a list of script handles and script paths of each enqueued script detected by our plugin:', 'speed-booster-pack' ),
246
+ ),
247
  ),
248
  ),
249
+ //Exclude scripts from being deferred
250
+ array(
251
+ 'type' => 'section',
252
+ 'label' => __( 'Exclude scripts from being deferred', 'speed-booster-pack' ),
253
+ 'items' => array(
254
+ 'sbp_defer_exceptions1' => array(
255
+ 'type' => 'text',
256
+ ),
257
+ 'sbp_defer_exceptions2' => array(
258
+ 'type' => 'text',
259
+ ),
260
+ 'sbp_defer_exceptions3' => array(
261
+ 'type' => 'text',
262
+ ),
263
+ 'sbp_defer_exceptions4' => array(
264
+ 'type' => 'text',
265
+ ),
266
+ 'info' => array(
267
+ 'type' => 'guidance',
268
+ 'description_only' => true,
269
+ 'description' => __( 'Enter one by text field, the handle part of the JS files that you want to be excluded from defer parsing option. For example: <code>jquery-core</code> If you want to exclude more than 4 scripts, you can use the following filter: <code>sbp_exclude_defer_scripts</code> which takes an array of script handles as params. If you don\'t know how to handle this, feel free to post on our support forums.', 'speed-booster-pack' ),
270
+ ),
 
 
 
 
 
 
271
  ),
272
  ),
273
+ //need even more speed section
274
+ array(
275
+ 'type' => 'section',
276
+ 'label' => __( 'CSS Optimization', 'speed-booster-pack' ),
277
+ 'items' => array(
278
+ 'sbp_css_async' => array(
279
+ 'type' => 'checkbox',
280
+ 'label' => __( 'Inline all CSS', 'speed-booster-pack' ),
281
+ 'tooltip' => __( 'Checking this option will inline the contents of all your stylesheets. This helps with the annoying render blocking error Google Page Speed Insights displays.', 'speed-booster-pack' ),
282
+ 'options_group' => 'sbp_settings',
283
+ ),
284
+ 'sbp_css_minify' => array(
285
+ 'type' => 'checkbox',
286
+ 'label' => __( 'Minify all (previously) inlined CSS', 'speed-booster-pack' ),
287
+ 'tooltip' => __( 'Minifying all inlined CSS styles will optimize the CSS delivery and will eliminate the annoying message on Google Page Speed regarding to render-blocking css.', 'speed-booster-pack' ),
288
+ 'options_group' => 'sbp_settings',
289
+ ),
290
+ 'sbp_footer_css' => array(
291
+ 'type' => 'checkbox',
292
+ 'label' => __( 'Move all inlined CSS into the footer', 'speed-booster-pack' ),
293
+ 'tooltip' => __( 'Inserting all CSS styles inline to the footer is a sensitive option that will eliminate render-blocking CSS warning in Google Page Speed test. If there is something broken after activation, you need to disable this option. Please note that before enabling this sensitive option, it is strongly recommended that you also enable the “ Move scripts to the footer” option.', 'speed-booster-pack' ),
294
+ 'options_group' => 'sbp_settings',
295
+ ),
296
  ),
297
+ ),
298
+ //other options section
299
+ array(
300
+ 'type' => 'section',
301
+ 'label' => __( 'Exclude CSS', 'speed-booster-pack' ),
302
+ 'items' => array(
303
+ 'sbp_css_exceptions' => array(
304
+ 'type' => 'textarea',
305
+ 'label' => __( 'Exclude styles from being inlined and/or minified option: ', 'speed-booster-pack' ),
306
+ 'description' => __( 'Enter one by line, the handles of CSS files or the final part of the style URL.', 'speed-booster-pack' ),
307
+ ),
308
+ //CSS handle guidance
309
+ 'guidance_options_css' => array(
310
+ 'type' => 'guidance',
311
+ 'label' => __( 'As a guidance, here is a list of CSS handles of each enqueued style detected by our plugin:', 'speed-booster-pack' ),
312
+ ),
313
  ),
314
  ),
315
  ),
316
  ),
317
+ 'cdn-options' => array(
318
+ 'sections' => array(
319
+ array(
320
+ 'type' => 'section',
321
+ 'label' => __( 'CDN', 'speed-booster-pack' ),
322
+ 'description' => __( 'CDN options that allow you to rewrite your site URLs with your CDN URLs.', 'speed-booster-pack' ),
323
+ 'items' => array(
324
+ 'sbp_enable_cdn' => array(
325
+ 'type' => 'checkbox',
326
+ 'label' => __( 'Enable CDN Rewrite', 'speed-booster-pack' ),
327
+ 'tooltip' => __( 'Enables rewriting of your site URLs with your CDN URLs', 'speed-booster-pack' ),
328
+ 'options_group' => 'sbp_settings',
329
+ ),
330
+ 'sbp_cdn_url' => array(
331
+ 'type' => 'text',
332
+ 'label' => __( 'CDN URL', 'speed-booster-pack' ),
333
+ 'tooltip' => __( 'Enter your CDN URL without the trailing slash. Example: https://cdn.example.com', 'speed-booster-pack' ),
334
+ 'options_group' => 'sbp_settings',
335
+ ),
336
+ 'sbp_cdn_included_directories' => array(
337
+ 'type' => 'text',
338
+ 'label' => __( 'Included Directories', 'speed-booster-pack' ),
339
+ 'tooltip' => __( 'Enter any directories you would like to be included in CDN rewriting, separated by commas (,). Default: wp-content,wp-includes', 'speed-booster-pack' ),
340
+ 'options_group' => 'sbp_settings',
341
+ 'default' => 'wp-content,wp-includes',
342
+ ),
343
+ 'sbp_cdn_exclusions' => array(
344
+ 'type' => 'text',
345
+ 'label' => __( 'CDN Exclusions', 'speed-booster-pack' ),
346
+ 'tooltip' => __( 'Enter any directories or file extensions you would like to be excluded from CDN rewriting, separated by commas (,). Default: .php', 'speed-booster-pack' ),
347
+ 'options_group' => 'sbp_settings',
348
+ 'default' => '.php',
349
+ ),
350
  ),
351
  ),
352
  ),
353
  ),
354
+ 'google-analytics' => array(
355
+ 'sections' => array(
356
+ array(
357
+ 'type' => 'section',
358
+ 'label' => __( 'Google Analytics', 'speed-booster-pack' ),
359
+ 'description' => __( 'Optimization options for Google Analytics.', 'speed-booster-pack' ),
360
+ 'items' => array(
361
+ 'sbp_enable_local_analytics' => array(
362
+ 'type' => 'checkbox',
363
+ 'label' => __( 'Enable Local Analytics', 'speed-booster-pack' ),
364
+ 'tooltip' => __( 'Enable syncing of the Google Analytics script to your own server.', 'speed-booster-pack' ),
365
+ 'options_group' => 'sbp_settings',
366
+ ),
367
+ 'sbp_ga_tracking_id' => array(
368
+ 'type' => 'text',
369
+ 'label' => __( 'Tracking ID', 'speed-booster-pack' ),
370
+ 'tooltip' => __( 'Enter your Google Analytics tracking ID', 'speed-booster-pack' ),
371
+ 'options_group' => 'sbp_settings',
372
+ ),
373
+ 'sbp_tracking_position' => array(
374
+ 'type' => 'select',
375
+ 'label' => __( 'Tracking code position', 'speed-booster-pack' ),
376
+ 'tooltip' => __( 'Load your GA script in the header or footer of the site. Default - header', 'speed-booster-pack' ),
377
+ 'options_group' => 'sbp_settings',
378
+ 'options' => array(
379
+ 'header' => 'Header (default)',
380
+ 'footer' => 'Footer',
381
+ ),
382
+ ),
383
+ 'sbp_disable_display_features' => array(
384
+ 'type' => 'checkbox',
385
+ 'label' => __( 'Disable Display Features', 'speed-booster-pack' ),
386
+ 'tooltip' => __( 'Disable marketing and advertising which generates a 2nd HTTP request', 'speed-booster-pack' ),
387
+ 'options_group' => 'sbp_settings',
388
+ ),
389
+ 'sbp_anonymize_ip' => array(
390
+ 'type' => 'checkbox',
391
+ 'label' => __( 'Anonymize IP', 'speed-booster-pack' ),
392
+ 'tooltip' => __( 'Shorten visitor IP to comply with privacy restrictions in some countries.', 'speed-booster-pack' ),
393
+ 'options_group' => 'sbp_settings',
394
+ ),
395
+ 'sbp_track_loggedin_admins' => array(
396
+ 'type' => 'checkbox',
397
+ 'label' => __( 'Track Admins', 'speed-booster-pack' ),
398
+ 'tooltip' => __( 'Include logged in WordPress admins in your GA report.', 'speed-booster-pack' ),
399
+ 'options_group' => 'sbp_settings',
400
+ ),
401
+ 'sbp_bounce_rate' => array(
402
+ 'type' => 'text',
403
+ 'label' => __( 'Adjust Bounce Rate', 'speed-booster-pack' ),
404
+ 'tooltip' => __( 'Set a timeout limit in seconds to better evaluate the quality of your traffic (1 - 100)', 'speed-booster-pack' ),
405
+ 'options_group' => 'sbp_settings',
406
+ ),
407
+ 'sbp_monsterinsights' => array(
408
+ 'type' => 'checkbox',
409
+ 'label' => __( 'MonsterInsights Integration', 'speed-booster-pack' ),
410
+ 'tooltip' => __( 'Allows MonsterInsights to manage your Google Analytics while still using the locally hosted analytics.js generated by Speed Booster Pack', 'speed-booster-pack' ),
411
+ 'options_group' => 'sbp_settings',
412
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
413
  ),
414
  ),
415
  ),
416
  ),
417
+ );
 
418
 
419
+ $sbp_alert_box = '<div class="sbp-static-notice bg-red"><span class="dashicons dashicons-warning"></span> ' . __( 'Activating these settings might cause conflicts with other plugins or your theme, resulting in broken styles or scripts. Use with caution!', 'speed-booster-pack' ) . '</div>';
420
+
421
+ //Start the tabs
422
+ foreach ( $sbp_options_array as $k => $values ) { ?>
423
+ <!-- Tab sections -->
424
+ <div id="<?php echo $k; ?>" class="sb-pack-tab">
425
 
 
 
 
 
 
 
 
 
 
 
 
 
426
  <?php
427
+
428
+ if( $k == 'advanced-options' || $k == 'google-analytics' || $k == 'cdn-options' ) {
429
+ echo $sbp_alert_box;
430
+ }
431
+
432
+ ?>
433
+
434
+ <?php if ( isset( $values['label'] ) ) { ?>
435
  <h3><?php echo $values['label']; ?></h3>
436
+ <?php
 
437
  }
438
+
439
+
440
+ //Start the sections
441
+ foreach ( $values['sections'] as $section => $section_value ) {
442
+
443
+ ?>
444
+ <div class="postbox" id="<?php echo $section; ?>">
445
+ <h3 class="hndle ui-sortable-handle" style="cursor: pointer;"><?php echo ( isset( $section_value['label'] ) ) ? $section_value['label'] : ""; ?></h3>
446
+ <div class="inside">
447
+ <?php
448
+
449
+ //Start the options
450
+ foreach ( $section_value['items'] as $item => $item_value ) {
451
+
452
+ if ( 'checkbox' == $item_value['type'] ) { ?>
453
+ <div class="onoffswitch-wrapper">
454
+ <?php if ( isset( $item_value['tooltip'] ) ) { ?>
455
+ <span class="tooltip-right"
456
+ data-tooltip="<?php echo $item_value['tooltip']; ?>">
457
+ <i class="dashicons dashicons-editor-help"></i>
458
+ </span>
459
+ <?php } ?>
460
+ <span class="chekbox-title"><?php echo ( isset( $item_value['label'] ) ) ? $item_value['label'] : ''; ?></span>
461
+
462
+ <div class="onoffswitch">
463
+ <div class="epsilon-toggle">
464
+ <input class="epsilon-toggle__input" type="checkbox" id="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>" name="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>" value="1" <?php checked( 1, isset( $sbp_options[ $item ] ) ); ?> >
465
+ <div class="epsilon-toggle__items">
466
+ <span class="epsilon-toggle__track"></span>
467
+ <span class="epsilon-toggle__thumb"></span>
468
+ <svg class="epsilon-toggle__off" width="6" height="6" aria-hidden="true" role="img" focusable="false" viewBox="0 0 6 6">
469
+ <path d="M3 1.5c.8 0 1.5.7 1.5 1.5S3.8 4.5 3 4.5 1.5 3.8 1.5 3 2.2 1.5 3 1.5M3 0C1.3 0 0 1.3 0 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z"></path>
470
+ </svg>
471
+ <svg class="epsilon-toggle__on" width="2" height="6" aria-hidden="true" role="img" focusable="false" viewBox="0 0 2 6">
472
+ <path d="M0 0h2v6H0z"></path>
473
+ </svg>
 
 
 
 
 
 
 
 
 
474
  </div>
 
475
  </div>
476
+ <label for="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>"></label>
477
  </div>
478
+ </div>
479
+ <?php }
480
+ if ( 'select' == $item_value['type'] ) { ?>
481
+ <p>
482
+ <?php if ( isset( $item_value['tooltip'] ) ) { ?>
483
+ <span class="tooltip-right"
484
+ data-tooltip="<?php echo $item_value['tooltip']; ?>">
485
+ <i class="dashicons dashicons-editor-help"></i>
486
+ </span>
487
+ <?php } ?>
488
+ <label for="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>" class="<?php echo ( isset( $item_value['label'] ) ) ? 'label-text' : ''; ?>"><?php echo ( isset( $item_value['label'] ) ) ? $item_value['label'] : ''; ?></label>
489
+ <select id="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>"
490
+ name="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>">
 
 
 
 
 
 
 
 
 
 
 
 
491
  <?php
492
+ foreach ( $item_value['options'] as $option_k => $op_v ) {
493
+ ?>
494
+ <option value="<?php echo $option_k; ?>" <?php selected( $option_k, $sbp_options[ $item ], true ); ?> ><?php echo $op_v; ?></option>
495
+ <?php
 
496
  }
 
497
  ?>
498
+ </select>
499
+ </p>
500
+ <?php }
 
 
 
 
 
 
 
 
 
501
 
502
+ if ( 'text' == $item_value['type'] ) { ?>
503
+ <p>
504
+ <?php
505
+ $default_value = ( isset( $item_value['default'] ) ) ? $item_value['default'] : "";
506
+ if ( isset( $item_value['options_group'] ) ) {
507
+ $op_text = ( isset( $sbp_options[ $item ] ) && "" != $sbp_options[ $item ] ) ? $sbp_options[ $item ] : $default_value;
508
+ } else {
509
+ $op_text = ( get_option( $item ) ) ? get_option( $item ) : $default_value;
510
+ }
 
 
 
511
 
512
+ ?>
513
+ <?php if ( isset( $item_value['tooltip'] ) ) { ?>
514
+ <span class="tooltip-right"
515
+ data-tooltip="<?php echo $item_value['tooltip']; ?>">
516
+ <i class="dashicons dashicons-editor-help"></i>
517
+ </span>
518
+ <?php } ?>
519
+ <label for="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>" class="<?php echo ( isset( $item_value['label'] ) ) ? 'label-text' : ''; ?>"><?php echo ( isset( $item_value['label'] ) ) ? $item_value['label'] : ''; ?></label>
520
+
521
+ <input id="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>"
522
+ name="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>" type="text" value="<?php echo esc_attr( $op_text ); ?>" />
523
+ </p>
524
+ <?php }
525
+
526
+ if ( 'textarea' == $item_value['type'] ) { ?>
527
+ <h4><?php echo ( isset( $item_value['label'] ) ) ? $item_value['label'] : ''; ?></h4>
528
+ <p>
529
+ <textarea cols="50" rows="3" name="<?php echo ( isset( $item_value['options_group'] ) ) ? $item_value['options_group'] . '[' . $item . ']' : $item; ?>"
530
+ id="<?php echo $item; ?>"
531
+ value="<?php echo esc_attr( $css_exceptions ); ?>"><?php echo wp_kses_post( $css_exceptions ); ?></textarea>
532
+ </p>
533
+ <p class="description">
534
+ <?php echo isset( $item_value['description'] ) ? $item_value['description'] : ''; ?>
535
+ </p>
536
+ <?php }
537
 
538
+ if ( 'guidance' == $item_value['type'] ) {
539
+ //guidance for General options
540
+ if ( $item == 'guidance_options_css' ) {
541
+ ?>
542
 
543
+ <p>
544
+ <h4><?php $item_value['label']; ?></h4>
545
+ </p>
546
 
547
+ <div class="sbp-all-enqueued">
 
 
548
 
549
+ <div class="sbp-div-head">
550
+ <div class="sbp-title-scripts"><?php _e( 'CSS Handle', 'speed-booster-pack' ); ?></div>
 
 
 
551
  </div>
552
+
553
+ <div class="sbp-inline-wrap">
554
+ <div class="sbp-columns1 sbp-width">
555
+ <?php print_r( get_option( 'all_theme_styles_handle' ) ); ?>
 
 
 
 
 
 
556
  </div>
557
+ </div>
558
+ </div>
559
+ <?php
560
+ }
561
+ if ( 'guidance_options_js' == $item ) {
562
+ ?>
563
+ <h4><?php echo $item_value['label']; ?></h4>
564
+ <div class="sbp-all-enqueued">
565
+ <div class="sbp-div-head">
566
+ <div class="sbp-title-scripts"><?php _e( 'Script Handle', 'speed-booster-pack' ); ?></div>
567
+ <div class="sbp-title-scripts"><?php _e( 'Script Path', 'speed-booster-pack' ); ?></div>
568
+ </div>
569
+ <div class="sbp-inline-wrap">
570
 
571
+ <div class="sbp-columns1 sbp-width">
572
+ <?php
573
+ $all_script_handles = get_option( 'all_theme_scripts_handle' );
574
 
575
+ $all_script_handles = explode( '<br />', $all_script_handles );
576
 
577
+ foreach ( $all_script_handles as $key => $value ) {
578
+ if ( ! empty( $value ) ) {
579
+ echo '<p>' . esc_html( $value ) . '</p>';
 
580
  }
581
+ }
582
+ ?>
583
+ </div>
 
 
 
584
 
585
+ <div class="sbp-columns2 sbp-width">
586
+ <?php
587
+ $all_scripts_src = get_option( 'all_theme_scripts_src' );
588
 
589
+ $all_scripts_src = explode( '<br />', $all_scripts_src );
 
 
 
 
590
 
591
+ foreach ( $all_scripts_src as $key => $value ) {
592
+ if ( ! empty( $value ) ) {
593
+ $value = parse_url( $value );
594
+ echo '<p>' . esc_html( str_replace( '/wp-content', '', $value['path'] ) ) . '</p>';
595
  }
596
+
597
+ }
598
+ ?>
599
  </div>
600
  </div>
601
+ </div>
602
+ <?php
603
+ }
604
+ if ( isset( $item_value['description_only'] ) && $item_value['description_only'] ) {
605
+ ?>
606
  <p class="description"><?php echo $item_value['description']; ?></p>
607
+ <?php
 
 
608
  }
609
 
610
  }
611
+
 
 
 
 
612
  }
613
+
614
  ?>
615
+ </div>
616
+ </div>
617
+ <?php
618
+
619
+ }
620
+ ?>
621
+ </div> <!-- Tab sections -->
622
+ <?php } ?>
623
+
624
+ <div id="optimize-more" class="sb-pack-tab">
625
+
626
+ <div class="feature-box postbox">
627
+ <div class="inside clearfix">
628
+ <img class="feature-box-left feature-box-image" src="<?php echo SPEED_BOOSTER_PACK_URL ?>inc/images/optimocha.png" alt="Optimocha" />
629
+ <div class="feature-box-right">
630
+ <h2 class="feature-box-title"><?php _e( 'Speed up your website with Optimocha', 'speed-booster-pack' )?></h2>
631
+ <p class="feature-box-description"><?php _e( 'Optimocha is a tailored speed optimization service where you can get your website optimized by a speed optimization expert. With a one-time "investment", your website will be taken care of real people. <strong>A significant speed improvement is guaranteed</strong>, so can be sure that your investment will return to you with a faster website!', 'speed-booster-pack' ); ?></p>
632
+ <p class="feature-box-description"><?php _e( 'Or, if you\'d like to have someone maintain your website speed, keep everything up-to-date and ensure your website is secure all the time; you can purchase Optimocha\'s monthly optimization &amp; maintenance packages. <strong>Annual payments have more and more benefits</strong>, be sure to check them out!', 'speed-booster-pack' ); ?></p>
633
+ <p class="feature-box-button"><a href="https://optimocha.com/?ref=sbp" target="_blank" class="button button-primary button-large"><?php _e( "Speed Up Your Website!", 'speed-booster-pack'); ?></a></p>
634
+ </div>
635
+ </div>
 
 
 
 
 
 
 
636
  </div>
637
 
638
+ <div class="feature-box postbox">
639
+ <div class="inside clearfix">
640
+ <img class="feature-box-left feature-box-image" src="<?php echo SPEED_BOOSTER_PACK_URL ?>inc/images/shortpixel.png" alt="ShortPixel" />
641
+ <div class="feature-box-right">
642
+ <h2 class="feature-box-title"><?php _e( 'Optimize your images with ShortPixel', 'speed-booster-pack' )?></h2>
643
+ <p class="feature-box-description"><?php _e( 'Image optimization is essential for all websites - especially for sites with lots of images! ShortPixel Image Optimizer is probably the best image optimization plugin you can use in the WordPress ecosystem. By clicking the link below, <strong>you will get 50% more image optimization credits for the same price</strong>! The image optimization credits are good for unlimited websites and do not expire, so you can use your API key in all your websites, anytime you want.', 'speed-booster-pack' ); ?></p>
644
+ <p class="feature-box-button"><a href="https://optimocha.com/go/shortpixel" target="_blank" class="button button-primary button-large"><?php _e( "Optimize Your Images!", 'speed-booster-pack' ); ?></a></p>
645
+ </div>
646
+ </div>
647
  </div>
 
 
 
 
 
 
648
 
649
+ <div class="feature-box postbox">
650
+ <div class="inside clearfix">
651
+ <img class="feature-box-left feature-box-image" src="<?php echo SPEED_BOOSTER_PACK_URL ?>inc/images/wp-engine.png" alt="WP Engine" />
652
+ <div class="feature-box-right">
653
+ <h2 class="feature-box-title"><?php _e( 'Get better hosting at WP Engine', 'speed-booster-pack' )?></h2>
654
+ <p class="feature-box-description"><?php _e( 'Choosing a good web hosting company make such a big difference, but often overlooked. It\'s understandable that people like to try cheap hosting packages in very large hosting companies, but if you\'re looking for a WordPress-centric hosting company with servers specially optimized for WordPress websites, be sure to check out WP Engine. Clicking the link below, <strong>you can get up to three months for free on annual payments!</strong>', 'speed-booster-pack' ); ?></p>
655
+ <p class="feature-box-button"><a href="https://optimocha.com/go/wpengine" target="_blank" class="button button-primary button-large"><?php _e( "Get Better Hosting!", 'speed-booster-pack' ); ?></a></p>
656
+ </div>
657
+ </div>
658
  </div>
659
 
660
+ </div><!--#optimize-more-->
 
 
 
 
 
661
 
662
+ <div>
663
+ <?php submit_button( 'Save Changes', 'primary large', 'submit', false ); ?>
664
  </div>
 
665
 
666
+ </form>
667
+
668
+ </div><!--/.col-main-->
669
+
670
+ <div class="col-side">
671
+
672
+ <div class="postbox">
673
+ <h3 class="hndle">Invest in More Speed!</h3>
674
+ <div class="inside">
675
+ <p><?php _e( 'People abandon pages that take more than a few seconds to load, which means slow pages lose you visitors (and money). You don’t want that to happen, do you?', 'speed-booster-pack' )?></p>
676
+ <p><?php _e( 'If you’re ready to <em>invest</em> in speeding up your website, click below for our professional, tailored speed optimization services!', 'speed-booster-pack' ); ?></a></p>
677
+ <p><a href="https://optimocha.com/?ref=sbp" target="_blank" class="button button-primary button-large"><?php _e( "Speed Up Your Website!", 'speed-booster-pack' ); ?></a></p>
678
+ </div>
679
+ </div>
680
+
681
+ <div class="postbox">
682
+ <h3 class="hndle">Test Your Website</h3>
683
+ <div class="inside">
684
+ <p><?php _e( 'It\'s always a good idea to keep testing your website so you can track your website\'s speed. Click the buttons below to see how well your website performs in various speed test tools!', 'speed-booster-pack' )?></p>
685
+ <p><a href="https://gtmetrix.com/?url=<?php echo home_url('/'); ?>" target="_blank" class="button button-secondary"><?php _e( "Test on GTmetrix", 'speed-booster-pack' ); ?></a>&nbsp;<a href="https://developers.google.com/speed/pagespeed/insights/?url=<?php echo home_url('/'); ?>" target="_blank" class="button button-secondary"><?php _e( "Test on Google PageSpeed", 'speed-booster-pack' ); ?></a></p>
686
  </div>
687
+ </div>
688
 
689
+ </div>
690
 
691
  </div><!--/.sb-pack-->
692
  </div> <!-- end wrap div -->
inc/use-google-libraries.php DELETED
@@ -1,504 +0,0 @@
1
- <?php
2
-
3
- if ( ! class_exists( 'JCP_UseGoogleLibraries' ) ) {
4
-
5
- class JCP_UseGoogleLibraries {
6
-
7
- protected static $instance;
8
- protected static $plugin_file = __FILE__;
9
- protected static $version = '1.6.2.3';
10
- protected static $noconflict_inject = "<script type='text/javascript'>try{jQuery.noConflict();}catch(e){};</script>\n";
11
-
12
- public static function get_instance() {
13
- if ( ! isset( self::$instance ) ) {
14
- self::$instance = new JCP_UseGoogleLibraries();
15
- }
16
- return self::$instance;
17
- }
18
-
19
- /**
20
- * Registry of script replacement rules
21
- *
22
- * Entries are formatted as follows:
23
- * <code>
24
- * 'script-handle' => array(
25
- * 'google-lib-path',
26
- * 'google-file-name',
27
- * 'google-combined-into')
28
- * </code>
29
- *
30
- * - 'script-handle' -- the handle used by WordPress script
31
- * registration
32
- * - 'google-lib-path' -- path to location on Google CDN( empty
33
- * string if script has been combined).
34
- * - 'google-file-name' -- file name (minus .js) on Google CDN (empty
35
- * string if script has been combined).
36
- * - 'google-combined-into' -- If not empty string, then the given
37
- * handle has been combined into a file loaded by this handle.
38
- *
39
- * @var array
40
- */
41
- protected $google_scripts;
42
-
43
- /**
44
- * Used internally to ensure jQuery.noconflict is executed as close to
45
- * how core WordPress would.
46
- *
47
- * @var bool
48
- */
49
- protected $noconflict_next;
50
-
51
- /**
52
- * script id used for actual jquery script
53
- *
54
- * @var string
55
- *
56
- * @since 5.2
57
- */
58
- protected $jquery_tag;
59
-
60
- /**
61
- * True if using a version of WordPress that allows
62
- * `wp_register_script` to take protocol-relative URLs,
63
- * otherwise False
64
- *
65
- * @since 1.5.2
66
- *
67
- * @var bool
68
- */
69
- protected $protocol_relative_supported;
70
-
71
- /**
72
- * transient name used when caching
73
- *
74
- * @var string
75
- */
76
- protected static $cache_id = 'JCP_UseGoogleLibraries_cache';
77
-
78
- /**
79
- * transient expiration
80
- *
81
- * @var int
82
- */
83
- protected static $cache_len = 90000; // 25 hours
84
-
85
- /**
86
- * Message displayed and logged when a WP_Scripts has been created
87
- * before it's time
88
- *
89
- * @var str
90
- */
91
- protected static $script_before_init_notice =
92
- 'Another plugin has registered or enqueued a script before the "init" action. Attempting to work around it.';
93
-
94
- /**
95
- * Registry of scripts available from Google Libraries. Any extra
96
- * scripts listed here not provided by WordPress or another plugin
97
- * will not be registered. This list is just used to chancge where
98
- * things load from.
99
- *
100
- * Entries are in the format:
101
- * <code>
102
- * 'script-handle' => array(
103
- * 'google-lib-path',
104
- * 'google-file-name',
105
- * 'google-combined-into'
106
- * )
107
- * </code>
108
- *
109
- * @var array
110
- */
111
- protected static $default_google_scripts = array(
112
- /* jQuery */
113
- 'jquery' => array( 'jquery', 'jquery.min', '' ),
114
-
115
- /* jQuery UI */
116
- 'jquery-ui-core' => array( 'jqueryui', 'jquery-ui.min', '' ),
117
- 'jquery-ui-accordion' => array( '', '', 'jquery-ui-core' ),
118
- 'jquery-ui-autocomplete' => array( '', '', 'jquery-ui-core' ), /* jQueri UI 1.8 */
119
- 'jquery-ui-button' => array( '', '', 'jquery-ui-core' ), /* jQuery UI 1.8 */
120
- 'jquery-ui-datepicker' => array( '', '', 'jquery-ui-core' ),
121
- 'jquery-ui-dialog' => array( '', '', 'jquery-ui-core' ),
122
- 'jquery-ui-draggable' => array( '', '', 'jquery-ui-core' ),
123
- 'jquery-ui-droppable' => array( '', '', 'jquery-ui-core' ),
124
- 'jquery-ui-menu' => array( '', '', 'jquery-ui-core' ),
125
- 'jquery-ui-mouse' => array( '', '', 'jquery-ui-core' ), /* jQuery UI 1.8 */
126
- 'jquery-ui-position' => array( '', '', 'jquery-ui-core' ), /* jQuery UI 1.8 */
127
- 'jquery-ui-progressbar' => array( '', '', 'jquery-ui-core' ),
128
- 'jquery-ui-resizable' => array( '', '', 'jquery-ui-core' ),
129
- 'jquery-ui-selectable' => array( '', '', 'jquery-ui-core' ),
130
- 'jquery-ui-selectmenu' => array( '', '', 'jquery-ui-core' ),/* jQuery UI 1.11 */
131
- 'jquery-ui-slider' => array( '', '', 'jquery-ui-core' ),
132
- 'jquery-ui-sortable' => array( '', '', 'jquery-ui-core' ),
133
- 'jquery-ui-spinner' => array( '', '', 'jquery-ui-core' ), /* jQuery UI 1.11 */
134
- 'jquery-ui-tabs' => array( '', '', 'jquery-ui-core' ),
135
- 'jquery-ui-tooltip' => array( '', '', 'jquery-ui-core' ), /* jQuery UI 1.11 */
136
- 'jquery-ui-widget' => array( '', '', 'jquery-ui-core' ), /* jQuery UI 1.8 */
137
-
138
- /* jQuery Effects */
139
- 'jquery-effects-core' => array( '', '', 'jquery-ui-core' ),
140
- 'jquery-effects-blind' => array( '', '', 'jquery-ui-core' ),
141
- 'jquery-effects-bounce' => array( '', '', 'jquery-ui-core' ),
142
- 'jquery-effects-clip' => array( '', '', 'jquery-ui-core' ),
143
- 'jquery-effects-drop' => array( '', '', 'jquery-ui-core' ),
144
- 'jquery-effects-explode' => array( '', '', 'jquery-ui-core' ),
145
- 'jquery-effects-fade' => array( '', '', 'jquery-ui-core' ), /* jQuery UI 1.8 */
146
- 'jquery-effects-fold' => array( '', '', 'jquery-ui-core' ),
147
- 'jquery-effects-highlight' => array( '', '', 'jquery-ui-core' ),
148
- 'jquery-effects-puff' => array( '', '', 'jquery-ui-core' ), /* jQuery UI 1.11 */
149
- 'jquery-effects-pulsate' => array( '', '', 'jquery-ui-core' ),
150
- 'jquery-effects-scale' => array( '', '', 'jquery-ui-core' ),
151
- 'jquery-effects-shake' => array( '', '', 'jquery-ui-core' ),
152
- 'jquery-effects-size' => array( '', '', 'jquery-ui-core' ), /* jQuery UI 1.11 */
153
- 'jquery-effects-slide' => array( '', '', 'jquery-ui-core' ),
154
- 'jquery-effects-transfer' => array( '', '', 'jquery-ui-core' ),
155
-
156
- /* prototype */
157
- 'prototype' => array( 'prototype', 'prototype', '' ),
158
-
159
- /* scriptaculous */
160
- 'scriptaculous-root' => array( 'scriptaculous', 'scriptaculous', '' ),
161
- 'scriptaculous-builder' => array( '', '', 'scriptaculous-root' ),
162
- 'scriptaculous-effects' => array( '', '', 'scriptaculous-root' ),
163
- 'scriptaculous-dragdrop' => array( '', '', 'scriptaculous-root' ),
164
- 'scriptaculous-controls' => array( '', '', 'scriptaculous-root' ),
165
- 'scriptaculous-slider' => array( '', '', 'scriptaculous-root' ),
166
- 'scriptaculous-sound' => array( '', '', 'scriptaculous-root' ),
167
-
168
- /* moo tools */
169
- 'mootools' => array( 'mootools', 'mootools-yui-compressed', '' ),
170
-
171
- /* Dojo */
172
- 'dojo' => array( 'dojo', 'dojo.xd', '' ),
173
-
174
- /* swfobject */
175
- 'swfobject' => array( 'swfobject', 'swfobject', '' ),
176
-
177
- /* YUI */
178
- 'yui' => array( 'yui', 'build/yuiloader/yuiloader-min', '' ),
179
-
180
- /* Ext Core */
181
- 'ext-core' => array( 'ext-core', 'ext-core', '' )
182
-
183
- );
184
-
185
- /**
186
- * PHP 5 Constructor
187
- */
188
- function __construct() {
189
- $this->jquery_tag = 'jquery';
190
- $this->google_scripts = self::$default_google_scripts;
191
-
192
- $this->noconflict_next = false;
193
- // protocol-relative URLS accepted by `wp_register_scripts`
194
- // starting with version 3.5
195
- $this->protocol_relative_supported = version_compare(
196
- get_bloginfo( 'version' ), '3.5', '>='
197
- );
198
- }
199
-
200
- static function configure_plugin() {
201
-
202
- add_action(
203
- 'wp_default_scripts',
204
- array(
205
- 'JCP_UseGoogleLibraries',
206
- 'replace_default_scripts_action',
207
- ),
208
- 1000
209
- );
210
- add_filter(
211
- 'script_loader_src',
212
- array( 'JCP_UseGoogleLibraries', 'remove_ver_query_filter' ),
213
- 1000
214
- );
215
- add_filter(
216
- 'init',
217
- array( 'JCP_UseGoogleLibraries', 'setup_filter' )
218
- );
219
-
220
- // There's a chance some plugin has called wp_enqueue_script
221
- // outside of any hooks, which means that this plugin's
222
- // 'wp_default_scripts' hook will never get a chance to fire.
223
- // This tries to work around that.
224
- global $wp_scripts;
225
- if ( is_a( $wp_scripts, 'WP_Scripts' ) ) {
226
- self::debug( self::$script_before_init_notice );
227
- $ugl = self::get_instance();
228
- $ugl->replace_default_scripts( $wp_scripts );
229
- }
230
- }
231
-
232
- /**
233
- * Get markup to show error message in admin when $WP_Script
234
- * created before it's time
235
- *
236
- * @returns string markup for notice display
237
- */
238
- static function script_before_init_admin_notice() {
239
- echo '<div class="error fade"><p>Use Google Libraries: ' .
240
- self::$script_before_init_notice . '</p></div>';
241
- }
242
-
243
- static function setup_filter() {
244
- $ugl = self::get_instance();
245
- $ugl->setup();
246
- }
247
-
248
- /**
249
- * Log message if `WP_DEBUG` enabled.
250
- *
251
- * @since 1.5
252
- *
253
- * @param mixed $message string to log, or object to log via `print_r`
254
- */
255
- static function debug( $message ) {
256
- if ( WP_DEBUG !== false ) {
257
- if ( is_array( $message ) || is_object( $message ) ) {
258
- $message = var_export( $message, true );
259
- }
260
- error_log( 'Use Google Libraries: ' . $message );
261
- }
262
- }
263
-
264
- /**
265
- * Disables script concatination, which breaks when dependencies are not
266
- * all loaded locally.
267
- */
268
- function setup() {
269
- global $concatenate_scripts;
270
- $concatenate_scripts = false;
271
-
272
- }
273
-
274
- static function replace_default_scripts_action( &$scripts ) {
275
- $ugl = self::get_instance();
276
- $ugl->replace_default_scripts( $scripts );
277
- }
278
-
279
- /**
280
- * Sometimes WordPress registes `jquery.js` as `'jquery-core'`, while
281
- * '`jquery`' is some other script with a dependency on
282
- * `'jquery-core'`. If '`jquery-core`' in present in `$scripts`
283
- * this is assumed to be the case and update the registration for
284
- * '`jquery-core`' instead.
285
- *
286
- * @since 1.6
287
- *
288
- * @param object $scripts
289
- */
290
- protected function newscripts_fix_jquery_core( &$scripts ) {
291
- // jquery may really be loaded under jquery-core
292
- // if so, we'll adjust google_scripts here
293
- if ( $scripts->query( 'jquery-core' ) && array_key_exists( 'jquery', $this->google_scripts ) ) {
294
- $this->google_scripts['jquery-core'] = $this->google_scripts['jquery'];
295
- unset( $this->google_scripts['jquery'] );
296
- $this->jquery_tag = 'jquery-core';
297
- }
298
- }
299
-
300
- protected function newscripts_build_url( $name, $lib, $ver, $js, $orig_url ) {
301
-
302
- // if $lib is empty, then this script does not need to be
303
- // exlicitly loaded when using googleapis.com, but we need to keep
304
- // it around for dependencies
305
- if ( $lib != '' ) {
306
- // build new URL
307
- $url = "//ajax.googleapis.com/ajax/libs/$lib/$ver/$js.js";
308
- $proto_url = "http:$url";
309
- $head = wp_remote_head( $proto_url );
310
- if ( wp_remote_retrieve_response_code( $head ) !== 200 ) {
311
- self::debug( "Google servers do not seem to be hosting requested version of $name (version $ver). Using version provided by WordPress." );
312
- return $orig_url;
313
- }
314
- if ( ! $this->protocol_relative_supported ) {
315
- return $proto_url;
316
- }
317
- return $url;
318
- } else {
319
- return '';
320
- }
321
- }
322
-
323
- /**
324
- * Collects replacement script registration data.
325
- *
326
- * Processes standard WordPress script registrations against list of
327
- * scripts hosted on Google's CDN. Will exclude any scripts that
328
- * contain '-' in the version number (used by WordPress devs to signify
329
- * a non-standard version). Also, the new url will be queried to ensure
330
- * it's valid (via `wp_remote_head`).
331
- *
332
- * @since 1.5
333
- *
334
- * @param object $scripts WP_Scripts object
335
- * @return array updated script registration data
336
- */
337
- function build_newscripts( &$scripts ) {
338
- $newscripts = array();
339
- $combine_ok = array();
340
-
341
- $this->newscripts_fix_jquery_core( $scripts );
342
-
343
- foreach ( $this->google_scripts as $name => $values ) {
344
- if ( $script = $scripts->query( $name ) ) {
345
- $lib = $values[0];
346
- $js = $values[1];
347
- $combined = $values[2];
348
- // default to requested ver
349
- $ver = $script->ver;
350
-
351
- if ( strpos( $ver, '-' ) !== false ) {
352
- self::debug( "WordPress appears to be requesting a non-standard version of $name (version $ver). Using version provided by WordPress to ensure compatability." );
353
- continue;
354
- }
355
-
356
- // TODO: replace with more flexible option
357
- // quick and dirty work around for scriptaculous 1.8.0
358
- if ( $name == 'scriptaculous-root' && $ver == '1.8.0' ) {
359
- $ver = '1.8';
360
- }
361
-
362
- if ( $combined !== '' ) {
363
- if ( ! in_array( $combined, $combine_ok ) ) {
364
- self::debug( "Google servers not hosting combined library for $name (version $ver). Using version provided by WordPress to ensure compatability." );
365
- continue;
366
- }
367
- if ( ! in_array( $combined, $script->deps ) ) {
368
- // if this script has been combined into another script
369
- // ensure this handle depends on the combined handle
370
- $script->deps[] = $combined;
371
- }
372
- }
373
-
374
- $script->src = $this->newscripts_build_url(
375
- $name, $lib, $ver, $js, $script->src
376
- );
377
-
378
- $newscripts[] = $script;
379
- $combine_ok[] = $name;
380
- }
381
- }
382
- return $newscripts;
383
-
384
- }
385
-
386
-
387
- /**
388
- * Get new script registration data.
389
- *
390
- * Attempts to load script registration data from the transient cache.
391
- * If not in cache, or if cached data is from a different version of
392
- * either WordPress or this plug-in, then it will be rebuilt. Also
393
- * handles forcing URLS to use SSL if site is currently loaded over
394
- * SSL.
395
- *
396
- * @since 1.5
397
- *
398
- * @param object $scripts WP_Scripts object
399
- * @return array updated script registration data
400
- */
401
- function get_newscripts( &$scripts ) {
402
- $wp_ver = get_bloginfo( 'version' );
403
- if ( false === ( $cache = get_transient( self::$cache_id ) ) ) {
404
- $cache = array();
405
- }
406
- if ( ( ! isset( $cache['ugl_ver'] ) ) || ( $cache['ugl_ver'] !== self::$version ) ||
407
- ( ! isset( $cache['wp_ver'] ) ) || ( $cache['wp_ver'] !== $wp_ver ) ||
408
- ( ! isset( $cache['newscripts'] ) ) ) {
409
- $newscripts = $this->build_newscripts( $scripts );
410
- $cache = array(
411
- 'ugl_ver' => self::$version,
412
- 'wp_ver' => $wp_ver,
413
- 'newscripts' => $newscripts,
414
- );
415
- set_transient( self::$cache_id, $cache, self::$cache_len );
416
- } else {
417
- $newscripts = $cache['newscripts'];
418
- }
419
- // need to handle ssl after cache load, because it may swap
420
- // back and forth depending on the site config/usage
421
- if ( ( ! $this->protocol_relative_supported ) && ( is_ssl() ) ) {
422
- foreach ( $newscripts as $script ) {
423
- $script->src = preg_replace( '/^http:/', 'https:', $script->src );
424
- }
425
- }
426
- return $newscripts;
427
- }
428
-
429
- /**
430
- * Replace as many of the WordPress default script registrations as
431
- * possible with ones from Google
432
- *
433
- * @param object $scripts WP_Scripts object.
434
- */
435
- function replace_default_scripts( &$scripts ) {
436
- $newscripts = $this->get_newscripts( $scripts );
437
- foreach ( $newscripts as $script ) {
438
- $olddata = $this->wp_dependency_get_data( $scripts, $script->handle );
439
- $scripts->remove( $script->handle );
440
- // re-register with original ver
441
- $scripts->add( $script->handle, $script->src, $script->deps, $script->ver );
442
- if ( $olddata ) {
443
- foreach ( $olddata as $data_name => $data ) {
444
- $scripts->add_data( $script->handle, $data_name, $data );
445
- }
446
- }
447
- }
448
- }
449
-
450
-
451
- function wp_dependency_get_data( $dep_obj, $handle, $data_name = false ) {
452
-
453
- if ( ! method_exists( $dep_obj, 'add_data' ) ) {
454
- return false;
455
- }
456
-
457
- if ( ! isset( $dep_obj->registered[ $handle ] ) ) {
458
- return false;
459
- }
460
-
461
- if ( ! $data_name ) {
462
- return $dep_obj->registered[ $handle ]->extra;
463
- }
464
-
465
- if ( ! method_exists( $dep_obj, 'get_data' ) ) {
466
- return $dep_obj->registered[ $handle ]->extra[ $data_name ];
467
- }
468
-
469
- return $dep_obj->get_data( $handle, $data_name );
470
- }
471
-
472
-
473
- /**
474
- * Remove 'ver' from query string for scripts loaded from Google's
475
- * CDN
476
- *
477
- * @param string $src src attribute of script tag
478
- * @return string Updated src attribute
479
- */
480
- function remove_ver_query( $src ) {
481
- if ( $this->noconflict_next ) {
482
- $this->noconflict_next = false;
483
- echo self::$noconflict_inject; // xss ok
484
- }
485
- if ( preg_match( '/ajax\.googleapis\.com\//', $src ) ) {
486
- $src = remove_query_arg( 'ver', $src );
487
- if ( strpos( $src, $this->google_scripts[ $this->jquery_tag ][1] . '.js' ) ) {
488
- $this->noconflict_next = true;
489
- }
490
- }
491
- return $src;
492
- }
493
-
494
- static function remove_ver_query_filter( $src ) {
495
- $ugl = self::get_instance();
496
- return $ugl->remove_ver_query( $src );
497
- }
498
- }
499
- }
500
-
501
- //instantiate the class
502
- if ( class_exists( 'JCP_UseGoogleLibraries' ) ) {
503
- JCP_UseGoogleLibraries::configure_plugin();
504
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lang/speed-booster-pack.pot CHANGED
@@ -1,32 +1,28 @@
1
  #, fuzzy
2
  msgid ""
3
  msgstr ""
4
- "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: Speed Booster Pack\n"
6
- "POT-Creation-Date: 2019-01-04 15:59+0200\n"
7
- "PO-Revision-Date: 2019-01-04 15:59+0200\n"
8
- "Last-Translator: \n"
9
- "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.0.2\n"
 
14
  "X-Poedit-Basepath: ..\n"
15
- "X-Poedit-Flags-xgettext: --add-comments=translators:\n"
16
- "X-Poedit-WPHeader: speed-booster-pack.php\n"
17
- "X-Poedit-SourceCharset: UTF-8\n"
18
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
19
- "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
20
- "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
21
  "X-Poedit-SearchPath-0: .\n"
22
- "X-Poedit-SearchPathExcluded-0: *.js\n"
23
 
24
  #: inc/class-sb-pack-review.php:22
25
  #, php-format
26
  msgid ""
27
- "Hey, I noticed you have installed our plugin for %s day(s) - that's awesome! "
28
- "Could you please do me a BIG favor and give it a 5-star rating on WordPress? "
29
- "Just to help us spread the word and boost our motivation."
30
  msgstr ""
31
 
32
  #: inc/class-sb-pack-review.php:23
@@ -53,105 +49,31 @@ msgstr ""
53
  msgid "You do not have sufficient permissions to access this page."
54
  msgstr ""
55
 
56
- #: inc/template/notice.php:3
57
- msgid "Welcome to Speed Booster Pack"
58
- msgstr ""
59
-
60
- #: inc/template/notice.php:4
61
- #, php-format
62
- msgid ""
63
- "Welcome! Thank you for installing Speed Booster Pack! Check out the %sPlugin "
64
- "settings%s for new features that can make your site load faster."
65
- msgstr ""
66
-
67
- #: inc/template/notice.php:6
68
- msgid "Get started with Speed Booster Pack"
69
- msgstr ""
70
-
71
- #: inc/template/notice.php:9
72
- msgid "Dismiss this notice."
73
- msgstr ""
74
-
75
- #: inc/template/options.php:28
76
- msgid ""
77
- "Speed Booster Pack is a lightweight, frequently updated, easy to use and "
78
- "well supported plugin which allows you to improve your website’s loading "
79
- "speed. Visitors usually close a website if it doesn’t load in a few seconds "
80
- "and the slower a site loads the greater the chances are that the visitors "
81
- "will leave. And you don’t want that to happen, do you?"
82
- msgstr ""
83
-
84
- #: inc/template/options.php:34 inc/template/options.php:56
85
  msgid "General"
86
  msgstr ""
87
 
88
- #: inc/template/options.php:35 inc/template/options.php:433
89
  msgid "Advanced"
90
  msgstr ""
91
 
92
- #: inc/template/options.php:36 inc/template/options.php:326
93
  msgid "CDN"
94
  msgstr ""
95
 
96
- #: inc/template/options.php:37 inc/template/options.php:363
97
  msgid "Google Analytics"
98
  msgstr ""
99
 
100
- #: inc/template/options.php:38
101
  msgid "Optimize More"
102
  msgstr ""
103
 
104
- #: inc/template/options.php:60
105
- msgid "Move scripts to footer"
106
- msgstr ""
107
-
108
- #: inc/template/options.php:61
109
- msgid ""
110
- "This option move all scripts to the footer while keeping stylesheets in the "
111
- "header to improve page loading speed and get a higher score on the major "
112
- "speed testing sites such as GTmetrix or other website speed testing tools"
113
- msgstr ""
114
-
115
- #: inc/template/options.php:66
116
- msgid "Load JS from Google Libraries"
117
- msgstr ""
118
-
119
- #: inc/template/options.php:67
120
- msgid ""
121
- "Loading WordPress javascript files from Google’s Libraries rather than "
122
- "serving it from your WordPress install directly, will reduce latency, "
123
- "increase parallelism and improve caching."
124
- msgstr ""
125
-
126
- #: inc/template/options.php:72
127
- msgid "Minify HTML"
128
- msgstr ""
129
-
130
- #: inc/template/options.php:73
131
- msgid ""
132
- "Activate this option only if you don’t want to use other minify plugins or "
133
- "other speed optimization plugin that has minify option included. If "
134
- "something goes wrong, simply uncheck this option and save the settings."
135
- msgstr ""
136
-
137
- #: inc/template/options.php:78
138
- msgid "Defer parsing of javascript files"
139
- msgstr ""
140
-
141
- #: inc/template/options.php:79
142
- msgid ""
143
- "!!!Note: This will be disabled IF Move Scripts to Footer is enabled. By "
144
- "deferring parsing of unneeded JavaScript until it needs to be executed, you "
145
- "can reduce the initial load time of your page. Please note that this option "
146
- "will not defer the main WordPress jQuery script if Load JS from Google "
147
- "Libraries option is not checked."
148
- msgstr ""
149
-
150
- #: inc/template/options.php:84
151
  msgid "Remove query strings"
152
  msgstr ""
153
 
154
- #: inc/template/options.php:85
155
  msgid ""
156
  "Since most proxies do not cache resources with a ? in their URL, this option "
157
  "allows you to remove any query strings (version numbers) from static "
@@ -159,27 +81,11 @@ msgid ""
159
  "like GTmetrix, PageSpeed, YSlow and Pingdoom."
160
  msgstr ""
161
 
162
- #: inc/template/options.php:90
163
- msgid "Removes extra Font Awesome styles"
164
- msgstr ""
165
-
166
- #: inc/template/options.php:91
167
- msgid ""
168
- "Use this option only if your theme uses Font Awesome, to prevent other "
169
- "plugins that uses Font Awesome, to add their stylesheets to your theme. In "
170
- "other words, this option removes extra Font Awesome stylesheets added to "
171
- "your theme by certain plugins."
172
- msgstr ""
173
-
174
- #: inc/template/options.php:99
175
- msgid "More settings"
176
- msgstr ""
177
-
178
- #: inc/template/options.php:103
179
  msgid "Remove WordPress Emoji scripts"
180
  msgstr ""
181
 
182
- #: inc/template/options.php:104
183
  msgid ""
184
  "Emojis are fun and all, but if you are aren’t using them they actually load "
185
  "a JavaScript file (wp-emoji-release.min.js) on every page of your website. "
@@ -187,21 +93,21 @@ msgid ""
187
  "your site. So we recommend disabling this."
188
  msgstr ""
189
 
190
- #: inc/template/options.php:109
191
  msgid "Remove WordPress Shortlink"
192
  msgstr ""
193
 
194
- #: inc/template/options.php:110
195
  msgid ""
196
  "WordPress URL shortening is sometimes useful, but it automatically adds an "
197
  "ugly code in your header, so you can remove it."
198
  msgstr ""
199
 
200
- #: inc/template/options.php:115
201
  msgid "Remove Adjacent Posts Links"
202
  msgstr ""
203
 
204
- #: inc/template/options.php:116
205
  msgid ""
206
  "WordPress incorrectly implements this feature that supposedly should fix a "
207
  "pagination issues but it messes up, so there is no reason to keep these "
@@ -209,225 +115,223 @@ msgid ""
209
  "site, although you can remove it if you run a well designed theme."
210
  msgstr ""
211
 
212
- #: inc/template/options.php:121
213
- msgid "Remove Windows Manifest"
214
  msgstr ""
215
 
216
- #: inc/template/options.php:122 inc/template/options.php:128
217
  msgid ""
218
  "Windows Live Writer (WLW) is a Microsoft application for composing and "
219
  "managing blog posts offline and publish them later. If you are not using "
220
  "Windows Live Writer application, you can remove it from the WP head."
221
  msgstr ""
222
 
223
- #: inc/template/options.php:127
224
- msgid "Remove the WordPress Version"
225
- msgstr ""
226
-
227
- #: inc/template/options.php:133
228
- msgid "Remove all rss feed links"
229
- msgstr ""
230
-
231
- #: inc/template/options.php:134
232
- msgid ""
233
- "This option wil remove all rss feed links to cleanup your WordPress header. "
234
- "It is also useful on Unicorn – The W3C Markup Validation Service to get rid "
235
- "out the “feed does not validate” error."
236
- msgstr ""
237
-
238
- #: inc/template/options.php:139
239
- msgid "Disable XML-RPC"
240
- msgstr ""
241
-
242
- #: inc/template/options.php:140
243
- msgid ""
244
- "XML-RPC was added in WordPress 3.5 and allows for remote connections, and "
245
- "unless you are using your mobile device to post to WordPress it does more "
246
- "bad than good. In fact, it can open your site up to a bunch of security "
247
- "risks. There are a few plugins that utilize this such as JetPack, but we "
248
- "don’t recommend using JetPack for performance reasons."
249
  msgstr ""
250
 
251
- #: inc/template/options.php:145
252
  msgid "Disable Self Pingbacks"
253
  msgstr ""
254
 
255
- #: inc/template/options.php:146
256
  msgid ""
257
  "A pingback is a special type of comment that’s created when you link to "
258
  "another blog post, as long as the other blog is set to accept pingbacks."
259
  msgstr ""
260
 
261
- #: inc/template/options.php:151
262
- msgid "Disable Dashicons"
263
  msgstr ""
264
 
265
- #: inc/template/options.php:152
266
- msgid "Disable dashicons from front end."
 
 
 
267
  msgstr ""
268
 
269
- #: inc/template/options.php:157
270
- msgid "Disable Google Maps"
271
  msgstr ""
272
 
273
- #: inc/template/options.php:158
274
- msgid "Disable Google Maps from front end. "
275
  msgstr ""
276
 
277
- #: inc/template/options.php:163
278
  msgid "Disable Heartbeat"
279
  msgstr ""
280
 
281
- #: inc/template/options.php:164
282
  msgid ""
283
  "Disable heartbeat everywhere ( used for autosaving and revision tracking )."
284
  msgstr ""
285
 
286
- #: inc/template/options.php:169
287
  msgid "Heartbeat frequency"
288
  msgstr ""
289
 
290
- #: inc/template/options.php:170
291
- msgid "Controls how often the Wordpress Heartbeat API is allowed to run. "
292
  msgstr ""
293
 
294
- #: inc/template/options.php:181
295
- msgid "Limit Post Revision"
296
  msgstr ""
297
 
298
- #: inc/template/options.php:182
299
- msgid "Controls how many Revisions Wordpress will save "
300
  msgstr ""
301
 
302
- #: inc/template/options.php:200
303
  msgid "Autosave interval"
304
  msgstr ""
305
 
306
- #: inc/template/options.php:201
307
- msgid "Controls how wordpress will autosave posts and pages while editing."
308
  msgstr ""
309
 
310
- #: inc/template/options.php:203
311
- msgid "1 minute ( default )"
312
  msgstr ""
313
 
314
- #: inc/template/options.php:204
315
  msgid "2 minutes"
316
  msgstr ""
317
 
318
- #: inc/template/options.php:205
319
  msgid "3 minutes"
320
  msgstr ""
321
 
322
- #: inc/template/options.php:206
323
  msgid "4 minutes"
324
  msgstr ""
325
 
326
- #: inc/template/options.php:207
327
  msgid "5 minutes"
328
  msgstr ""
329
 
330
- #: inc/template/options.php:213
331
- msgid "Remove REST API Links"
332
  msgstr ""
333
 
334
- #: inc/template/options.php:214
335
- msgid ""
336
- "The WordPress REST API provides API endpoints for WordPress data types that "
337
- "allow developers to interact with sites remotely by sending and receiving "
338
- "JSON (JavaScript Object Notation) objects."
339
  msgstr ""
340
 
341
- #: inc/template/options.php:222
342
- msgid "Need even more speed?"
 
 
 
343
  msgstr ""
344
 
345
- #: inc/template/options.php:226
346
- msgid "Inline all CSS styles"
347
  msgstr ""
348
 
349
- #: inc/template/options.php:227
350
  msgid ""
351
- "Checking this option will inline the contents of all your stylesheets. This "
352
- "helps with the annoying render blocking error Google Page Speed Insights "
353
- "displays."
 
 
 
 
 
 
354
  msgstr ""
355
 
356
- #: inc/template/options.php:232
357
- msgid "Minify all (previously) inlined CSS styles"
 
 
 
 
358
  msgstr ""
359
 
360
- #: inc/template/options.php:233
361
  msgid ""
362
- "Minifying all inlined CSS styles will optimize the CSS delivery and will "
363
- "eliminate the annoying message on Google Page Speed regarding to render-"
364
- "blocking css."
365
  msgstr ""
366
 
367
- #: inc/template/options.php:238
368
- msgid "Move all inlined CSS into the footer"
369
  msgstr ""
370
 
371
- #: inc/template/options.php:239
372
  msgid ""
373
- "Inserting all CSS styles inline to the footer is a sensitive option that "
374
- "will eliminate render-blocking CSS warning in Google Page Speed test. If "
375
- "there is something broken after activation, you need to disable this option. "
376
- "Please note that before enabling this sensitive option, it is strongly "
377
- "recommended that you also enable the “ Move scripts to the footer” option."
378
  msgstr ""
379
 
380
- #: inc/template/options.php:244
381
- msgid "Disable all above CSS options on mobile devices"
382
  msgstr ""
383
 
384
- #: inc/template/options.php:245
385
  msgid ""
386
- "Disable all above CSS options on mobile devices: this option was added to "
387
- "avoid some appearance issues on mobile devices."
 
388
  msgstr ""
389
 
390
- #: inc/template/options.php:256
391
- msgid "Exclude styles from being inlined and/or minified option: "
 
 
 
 
392
  msgstr ""
393
 
394
- #: inc/template/options.php:257
395
  msgid ""
396
- "Enter one by line, the handles of css files or the final part of the style "
397
- "URL."
 
 
 
 
 
398
  msgstr ""
399
 
400
- #: inc/template/options.php:262
401
  msgid ""
402
- "As a guidance, here is a list of css handles of each enqueued style detected "
403
- "by our plugin:"
 
404
  msgstr ""
405
 
406
- #: inc/template/options.php:274
407
  msgid "Exclude scripts from being moved to the footer"
408
  msgstr ""
409
 
410
- #: inc/template/options.php:275
411
  msgid ""
412
- "Enter one js handle per text field. Read more <a href=\"https://docs."
413
- "machothemes.com/article/119-plugin-options-explained#exclude-scripts-from-"
414
- "being-moved-to-the-footer-50\">detailed instructions</a> on this option on "
415
- "plugin documentation."
416
  msgstr ""
417
 
418
- #: inc/template/options.php:292
419
  msgid ""
420
  "As a guidance, here is a list of script handles and script paths of each "
421
  "enqueued script detected by our plugin:"
422
  msgstr ""
423
 
424
- #: inc/template/options.php:299
425
  msgid "Exclude scripts from being deferred"
426
  msgstr ""
427
 
428
- #: inc/template/options.php:316
429
  msgid ""
430
- "Enter one by text field, the handle part of the js files that you want to be "
431
  "excluded from defer parsing option. For example: <code>jquery-core</code> If "
432
  "you want to exclude more than 4 scripts, you can use the following filter: "
433
  "<code>sbp_exclude_defer_scripts</code> which takes an array of script "
@@ -435,207 +339,287 @@ msgid ""
435
  "on our support forums."
436
  msgstr ""
437
 
438
- #: inc/template/options.php:327
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
439
  msgid ""
440
  "CDN options that allow you to rewrite your site URLs with your CDN URLs."
441
  msgstr ""
442
 
443
- #: inc/template/options.php:331
444
  msgid "Enable CDN Rewrite"
445
  msgstr ""
446
 
447
- #: inc/template/options.php:332
448
  msgid "Enables rewriting of your site URLs with your CDN URLs"
449
  msgstr ""
450
 
451
- #: inc/template/options.php:337
452
  msgid "CDN URL"
453
  msgstr ""
454
 
455
- #: inc/template/options.php:338
456
  msgid ""
457
- "Enter your CDN URL without the trailing backslash. Example: https://cdn."
458
- "example.com"
459
  msgstr ""
460
 
461
- #: inc/template/options.php:343
462
  msgid "Included Directories"
463
  msgstr ""
464
 
465
- #: inc/template/options.php:344
466
  msgid ""
467
  "Enter any directories you would like to be included in CDN rewriting, "
468
  "separated by commas (,). Default: wp-content,wp-includes"
469
  msgstr ""
470
 
471
- #: inc/template/options.php:350
472
  msgid "CDN Exclusions"
473
  msgstr ""
474
 
475
- #: inc/template/options.php:351
476
  msgid ""
477
  "Enter any directories or file extensions you would like to be excluded from "
478
  "CDN rewriting, separated by commas (,). Default: .php"
479
  msgstr ""
480
 
481
- #: inc/template/options.php:364
482
  msgid "Optimization options for Google Analytics."
483
  msgstr ""
484
 
485
- #: inc/template/options.php:368
486
  msgid "Enable Local Analytics"
487
  msgstr ""
488
 
489
- #: inc/template/options.php:369
490
- msgid "Enable syncing og the Google Analytics script to your own server."
491
  msgstr ""
492
 
493
- #: inc/template/options.php:374
494
  msgid "Tracking ID"
495
  msgstr ""
496
 
497
- #: inc/template/options.php:375
498
  msgid "Enter your Google Analytics tracking ID"
499
  msgstr ""
500
 
501
- #: inc/template/options.php:380
502
  msgid "Tracking code position"
503
  msgstr ""
504
 
505
- #: inc/template/options.php:381
506
  msgid ""
507
- "Load your analytics script in the header or footer of the site. Default - "
508
- "header"
509
  msgstr ""
510
 
511
- #: inc/template/options.php:390
512
  msgid "Disable Display Features"
513
  msgstr ""
514
 
515
- #: inc/template/options.php:391
516
  msgid "Disable marketing and advertising which generates a 2nd HTTP request"
517
  msgstr ""
518
 
519
- #: inc/template/options.php:396
520
  msgid "Anonymize IP"
521
  msgstr ""
522
 
523
- #: inc/template/options.php:397
524
  msgid ""
525
  "Shorten visitor IP to comply with privacy restrictions in some countries."
526
  msgstr ""
527
 
528
- #: inc/template/options.php:402
529
- msgid "Track Logged In Admins"
530
  msgstr ""
531
 
532
- #: inc/template/options.php:403
533
- msgid "Include logged in Wordpress admins in your GA report."
534
  msgstr ""
535
 
536
- #: inc/template/options.php:408
537
- msgid "Adjusted Bounce Rate"
538
  msgstr ""
539
 
540
- #: inc/template/options.php:409
541
  msgid ""
542
  "Set a timeout limit in seconds to better evaluate the quality of your "
543
- "traffic ( 1 - 100 )"
 
 
 
 
544
  msgstr ""
545
 
546
- #: inc/template/options.php:414
547
- msgid "User MonsterInsights"
 
 
548
  msgstr ""
549
 
550
- #: inc/template/options.php:415
551
  msgid ""
552
- "Allows MonsterInsights to manage your Google Analaytics while still using "
553
- "the locally hosted analytics.js generated by Speed Booster Pack"
554
  msgstr ""
555
 
556
- #: inc/template/options.php:570
557
  msgid "CSS Handle"
558
  msgstr ""
559
 
560
- #: inc/template/options.php:587
561
  msgid "Script Handle"
562
  msgstr ""
563
 
564
- #: inc/template/options.php:588
565
  msgid "Script Path"
566
  msgstr ""
567
 
568
- #: inc/template/options.php:650
569
- msgid "ShortPixel Image Optimizer"
570
  msgstr ""
571
 
572
- #: inc/template/options.php:653
573
  msgid ""
574
- "Increase your website’s SEO ranking, number of visitors and ultimately your "
575
- "sales by optimizing any image. "
576
- msgstr ""
577
-
578
- #: inc/template/options.php:658
579
- msgid "Test your site for free"
580
- msgstr ""
581
-
582
- #: inc/template/options.php:665
583
- msgid "Optimole"
584
  msgstr ""
585
 
586
- #: inc/template/options.php:667
587
  msgid ""
588
- "Image optimization & resizing. Image acceleration through CDN. On-the-fly "
589
- "image handling. "
 
 
 
590
  msgstr ""
591
 
592
- #: inc/template/options.php:672
593
- msgid "Check it out for free"
594
  msgstr ""
595
 
596
- #: inc/template/options.php:680
597
- msgid "Hostinger"
598
  msgstr ""
599
 
600
- #: inc/template/options.php:683
601
  msgid ""
602
- "They are offering the best cheap WordPress hosting on the market right now "
603
- "at 1.45$ / month"
 
 
 
 
 
604
  msgstr ""
605
 
606
- #: inc/template/options.php:688
607
- msgid "Get a faster host now"
608
  msgstr ""
609
 
610
- #: widgets/dashboard-widget.php:4 widgets/dashboard-widget.php:44
611
- msgid "Speed Booster Pack Overview"
612
  msgstr ""
613
 
614
- #. Author URI of the plugin/theme
615
- #: widgets/dashboard-widget.php:42
616
- msgid "https://www.machothemes.com/"
 
 
 
 
 
617
  msgstr ""
618
 
619
- #: widgets/dashboard-widget.php:43
620
- msgid "https://www.machothemes.com/blog/feed/"
621
  msgstr ""
622
 
623
- #. Plugin Name of the plugin/theme
624
- msgid "Speed Booster Pack"
 
 
 
625
  msgstr ""
626
 
627
- #. Plugin URI of the plugin/theme
628
- msgid "http://wordpress.org/plugins/speed-booster-pack/"
 
 
629
  msgstr ""
630
 
631
- #. Description of the plugin/theme
632
  msgid ""
633
- "Speed Booster Pack allows you to improve your page loading speed and get a "
634
- "higher score on the major speed testing services such as <a href=\"http://"
635
- "gtmetrix.com/\">GTmetrix</a>, <a href=\"http://developers.google.com/speed/"
636
- "pagespeed/insights/\">Google PageSpeed</a> or other speed testing tools."
 
 
 
637
  msgstr ""
638
 
639
- #. Author of the plugin/theme
640
- msgid "Macho Themes"
641
  msgstr ""
1
  #, fuzzy
2
  msgid ""
3
  msgstr ""
 
4
  "Project-Id-Version: Speed Booster Pack\n"
5
+ "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2019-05-20 22:44+0300\n"
7
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
+ "Language-Team: Optimocha\n"
10
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
11
  "MIME-Version: 1.0\n"
12
  "Content-Type: text/plain; charset=UTF-8\n"
13
  "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Generator: Poedit 2.2.3\n"
15
+ "X-Poedit-KeywordsList: __;_e\n"
16
  "X-Poedit-Basepath: ..\n"
 
 
 
 
 
 
17
  "X-Poedit-SearchPath-0: .\n"
18
+ "X-Poedit-SearchPathExcluded-0: inc/js\n"
19
 
20
  #: inc/class-sb-pack-review.php:22
21
  #, php-format
22
  msgid ""
23
+ "Hey, I noticed you're using Speed Booster Pack for %s day(s) - that's "
24
+ "awesome! Could you please do me a BIG favor and give it a fair rating and a "
25
+ "review on WordPress?"
26
  msgstr ""
27
 
28
  #: inc/class-sb-pack-review.php:23
49
  msgid "You do not have sufficient permissions to access this page."
50
  msgstr ""
51
 
52
+ #: inc/template/options.php:29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  msgid "General"
54
  msgstr ""
55
 
56
+ #: inc/template/options.php:30
57
  msgid "Advanced"
58
  msgstr ""
59
 
60
+ #: inc/template/options.php:31 inc/template/options.php:321
61
  msgid "CDN"
62
  msgstr ""
63
 
64
+ #: inc/template/options.php:32 inc/template/options.php:358
65
  msgid "Google Analytics"
66
  msgstr ""
67
 
68
+ #: inc/template/options.php:33
69
  msgid "Optimize More"
70
  msgstr ""
71
 
72
+ #: inc/template/options.php:55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  msgid "Remove query strings"
74
  msgstr ""
75
 
76
+ #: inc/template/options.php:56
77
  msgid ""
78
  "Since most proxies do not cache resources with a ? in their URL, this option "
79
  "allows you to remove any query strings (version numbers) from static "
81
  "like GTmetrix, PageSpeed, YSlow and Pingdoom."
82
  msgstr ""
83
 
84
+ #: inc/template/options.php:61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  msgid "Remove WordPress Emoji scripts"
86
  msgstr ""
87
 
88
+ #: inc/template/options.php:62
89
  msgid ""
90
  "Emojis are fun and all, but if you are aren’t using them they actually load "
91
  "a JavaScript file (wp-emoji-release.min.js) on every page of your website. "
93
  "your site. So we recommend disabling this."
94
  msgstr ""
95
 
96
+ #: inc/template/options.php:67
97
  msgid "Remove WordPress Shortlink"
98
  msgstr ""
99
 
100
+ #: inc/template/options.php:68
101
  msgid ""
102
  "WordPress URL shortening is sometimes useful, but it automatically adds an "
103
  "ugly code in your header, so you can remove it."
104
  msgstr ""
105
 
106
+ #: inc/template/options.php:73
107
  msgid "Remove Adjacent Posts Links"
108
  msgstr ""
109
 
110
+ #: inc/template/options.php:74
111
  msgid ""
112
  "WordPress incorrectly implements this feature that supposedly should fix a "
113
  "pagination issues but it messes up, so there is no reason to keep these "
115
  "site, although you can remove it if you run a well designed theme."
116
  msgstr ""
117
 
118
+ #: inc/template/options.php:79
119
+ msgid "Remove Windows Live Writer Manifest"
120
  msgstr ""
121
 
122
+ #: inc/template/options.php:80 inc/template/options.php:86
123
  msgid ""
124
  "Windows Live Writer (WLW) is a Microsoft application for composing and "
125
  "managing blog posts offline and publish them later. If you are not using "
126
  "Windows Live Writer application, you can remove it from the WP head."
127
  msgstr ""
128
 
129
+ #: inc/template/options.php:85
130
+ msgid "Remove WordPress Version"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  msgstr ""
132
 
133
+ #: inc/template/options.php:91
134
  msgid "Disable Self Pingbacks"
135
  msgstr ""
136
 
137
+ #: inc/template/options.php:92
138
  msgid ""
139
  "A pingback is a special type of comment that’s created when you link to "
140
  "another blog post, as long as the other blog is set to accept pingbacks."
141
  msgstr ""
142
 
143
+ #: inc/template/options.php:97
144
+ msgid "Remove jQuery Migrate"
145
  msgstr ""
146
 
147
+ #: inc/template/options.php:98
148
+ msgid ""
149
+ "Remove the jquery-migrate.js script that helps older jQuery plugins to be "
150
+ "compatible with new jQuery versions. You safely turn this setting on if your "
151
+ "jQuery plugins are all new."
152
  msgstr ""
153
 
154
+ #: inc/template/options.php:103
155
+ msgid "Remove Dashicons"
156
  msgstr ""
157
 
158
+ #: inc/template/options.php:104
159
+ msgid "Remove Dashicons from front end."
160
  msgstr ""
161
 
162
+ #: inc/template/options.php:109
163
  msgid "Disable Heartbeat"
164
  msgstr ""
165
 
166
+ #: inc/template/options.php:110
167
  msgid ""
168
  "Disable heartbeat everywhere ( used for autosaving and revision tracking )."
169
  msgstr ""
170
 
171
+ #: inc/template/options.php:115
172
  msgid "Heartbeat frequency"
173
  msgstr ""
174
 
175
+ #: inc/template/options.php:116
176
+ msgid "Controls how often the WordPress Heartbeat API is allowed to run. "
177
  msgstr ""
178
 
179
+ #: inc/template/options.php:127
180
+ msgid "Limit Post Revisions"
181
  msgstr ""
182
 
183
+ #: inc/template/options.php:128
184
+ msgid "Controls how many revisions WordPress will save "
185
  msgstr ""
186
 
187
+ #: inc/template/options.php:146
188
  msgid "Autosave interval"
189
  msgstr ""
190
 
191
+ #: inc/template/options.php:147
192
+ msgid "Controls how WordPress will autosave posts and pages while editing."
193
  msgstr ""
194
 
195
+ #: inc/template/options.php:149
196
+ msgid "1 minute"
197
  msgstr ""
198
 
199
+ #: inc/template/options.php:150
200
  msgid "2 minutes"
201
  msgstr ""
202
 
203
+ #: inc/template/options.php:151
204
  msgid "3 minutes"
205
  msgstr ""
206
 
207
+ #: inc/template/options.php:152
208
  msgid "4 minutes"
209
  msgstr ""
210
 
211
+ #: inc/template/options.php:153
212
  msgid "5 minutes"
213
  msgstr ""
214
 
215
+ #: inc/template/options.php:167
216
+ msgid "Advanced Optimizations"
217
  msgstr ""
218
 
219
+ #: inc/template/options.php:171
220
+ msgid "Enable instant.page (BETA)"
 
 
 
221
  msgstr ""
222
 
223
+ #: inc/template/options.php:172
224
+ msgid ""
225
+ "Check this option if you want to use the instant.page link preloader. This "
226
+ "is a new and experimental feature; use with caution. If something goes "
227
+ "wrong, simply uncheck this option and save the settings."
228
  msgstr ""
229
 
230
+ #: inc/template/options.php:177
231
+ msgid "Disable cart fragments (BETA)"
232
  msgstr ""
233
 
234
+ #: inc/template/options.php:178
235
  msgid ""
236
+ "Check this option to disable WooCommerce&#39;s &quot;cart fragments&quot; "
237
+ "script, which overrides all caching function to update cart totals on each "
238
+ "page load in your theme header. This is a new and experimental feature; use "
239
+ "with caution. If something goes wrong, simply uncheck this option and save "
240
+ "the settings."
241
+ msgstr ""
242
+
243
+ #: inc/template/options.php:183
244
+ msgid "Remove Google Maps"
245
  msgstr ""
246
 
247
+ #: inc/template/options.php:184
248
+ msgid "Remove Google Maps from front end. "
249
+ msgstr ""
250
+
251
+ #: inc/template/options.php:189
252
+ msgid "Remove REST API Links"
253
  msgstr ""
254
 
255
+ #: inc/template/options.php:190
256
  msgid ""
257
+ "The WordPress REST API provides API endpoints for WordPress data types that "
258
+ "allow developers to interact with sites remotely by sending and receiving "
259
+ "JSON (JavaScript Object Notation) objects."
260
  msgstr ""
261
 
262
+ #: inc/template/options.php:195
263
+ msgid "Remove all RSS feed links"
264
  msgstr ""
265
 
266
+ #: inc/template/options.php:196
267
  msgid ""
268
+ "This option will remove all RSS feed links to cleanup your WordPress header. "
269
+ "It is also useful on Unicorn The W3C Markup Validation Service to get rid "
270
+ "out the “feed does not validate” error."
 
 
271
  msgstr ""
272
 
273
+ #: inc/template/options.php:201
274
+ msgid "Minify HTML"
275
  msgstr ""
276
 
277
+ #: inc/template/options.php:202
278
  msgid ""
279
+ "Activate this option only if you don’t want to use other minify plugins or "
280
+ "other speed optimization plugin that has minify option included. If "
281
+ "something goes wrong, simply uncheck this option and save the settings."
282
  msgstr ""
283
 
284
+ #: inc/template/options.php:209
285
+ msgid "JavaScript Optimization"
286
+ msgstr ""
287
+
288
+ #: inc/template/options.php:213
289
+ msgid "Move scripts to footer"
290
  msgstr ""
291
 
292
+ #: inc/template/options.php:214
293
  msgid ""
294
+ "This option move all scripts to the footer while keeping stylesheets in the "
295
+ "header to improve page loading speed and get a higher score on the major "
296
+ "speed testing sites such as GTmetrix or other website speed testing tools"
297
+ msgstr ""
298
+
299
+ #: inc/template/options.php:219
300
+ msgid "Defer parsing of JS files"
301
  msgstr ""
302
 
303
+ #: inc/template/options.php:220
304
  msgid ""
305
+ "!!!Note: This will be disabled IF Move Scripts to Footer is enabled. By "
306
+ "deferring parsing of unneeded JavaScript until it needs to be executed, you "
307
+ "can reduce the initial load time of your page."
308
  msgstr ""
309
 
310
+ #: inc/template/options.php:227
311
  msgid "Exclude scripts from being moved to the footer"
312
  msgstr ""
313
 
314
+ #: inc/template/options.php:228
315
  msgid ""
316
+ "Enter one JS handle per text field. Read more <a href=\"https://optimocha."
317
+ "com/speed-booster-pack-documentation/#exclude-scripts-from-being-moved-to-"
318
+ "the-footer-50\">detailed instructions</a> on this option on plugin "
319
+ "documentation."
320
  msgstr ""
321
 
322
+ #: inc/template/options.php:245
323
  msgid ""
324
  "As a guidance, here is a list of script handles and script paths of each "
325
  "enqueued script detected by our plugin:"
326
  msgstr ""
327
 
328
+ #: inc/template/options.php:252
329
  msgid "Exclude scripts from being deferred"
330
  msgstr ""
331
 
332
+ #: inc/template/options.php:269
333
  msgid ""
334
+ "Enter one by text field, the handle part of the JS files that you want to be "
335
  "excluded from defer parsing option. For example: <code>jquery-core</code> If "
336
  "you want to exclude more than 4 scripts, you can use the following filter: "
337
  "<code>sbp_exclude_defer_scripts</code> which takes an array of script "
339
  "on our support forums."
340
  msgstr ""
341
 
342
+ #: inc/template/options.php:276
343
+ msgid "CSS Optimization"
344
+ msgstr ""
345
+
346
+ #: inc/template/options.php:280
347
+ msgid "Inline all CSS"
348
+ msgstr ""
349
+
350
+ #: inc/template/options.php:281
351
+ msgid ""
352
+ "Checking this option will inline the contents of all your stylesheets. This "
353
+ "helps with the annoying render blocking error Google Page Speed Insights "
354
+ "displays."
355
+ msgstr ""
356
+
357
+ #: inc/template/options.php:286
358
+ msgid "Minify all (previously) inlined CSS"
359
+ msgstr ""
360
+
361
+ #: inc/template/options.php:287
362
+ msgid ""
363
+ "Minifying all inlined CSS styles will optimize the CSS delivery and will "
364
+ "eliminate the annoying message on Google Page Speed regarding to render-"
365
+ "blocking css."
366
+ msgstr ""
367
+
368
+ #: inc/template/options.php:292
369
+ msgid "Move all inlined CSS into the footer"
370
+ msgstr ""
371
+
372
+ #: inc/template/options.php:293
373
+ msgid ""
374
+ "Inserting all CSS styles inline to the footer is a sensitive option that "
375
+ "will eliminate render-blocking CSS warning in Google Page Speed test. If "
376
+ "there is something broken after activation, you need to disable this option. "
377
+ "Please note that before enabling this sensitive option, it is strongly "
378
+ "recommended that you also enable the “ Move scripts to the footer” option."
379
+ msgstr ""
380
+
381
+ #: inc/template/options.php:301
382
+ msgid "Exclude CSS"
383
+ msgstr ""
384
+
385
+ #: inc/template/options.php:305
386
+ msgid "Exclude styles from being inlined and/or minified option: "
387
+ msgstr ""
388
+
389
+ #: inc/template/options.php:306
390
+ msgid ""
391
+ "Enter one by line, the handles of CSS files or the final part of the style "
392
+ "URL."
393
+ msgstr ""
394
+
395
+ #: inc/template/options.php:311
396
+ msgid ""
397
+ "As a guidance, here is a list of CSS handles of each enqueued style detected "
398
+ "by our plugin:"
399
+ msgstr ""
400
+
401
+ #: inc/template/options.php:322
402
  msgid ""
403
  "CDN options that allow you to rewrite your site URLs with your CDN URLs."
404
  msgstr ""
405
 
406
+ #: inc/template/options.php:326
407
  msgid "Enable CDN Rewrite"
408
  msgstr ""
409
 
410
+ #: inc/template/options.php:327
411
  msgid "Enables rewriting of your site URLs with your CDN URLs"
412
  msgstr ""
413
 
414
+ #: inc/template/options.php:332
415
  msgid "CDN URL"
416
  msgstr ""
417
 
418
+ #: inc/template/options.php:333
419
  msgid ""
420
+ "Enter your CDN URL without the trailing slash. Example: https://cdn.example."
421
+ "com"
422
  msgstr ""
423
 
424
+ #: inc/template/options.php:338
425
  msgid "Included Directories"
426
  msgstr ""
427
 
428
+ #: inc/template/options.php:339
429
  msgid ""
430
  "Enter any directories you would like to be included in CDN rewriting, "
431
  "separated by commas (,). Default: wp-content,wp-includes"
432
  msgstr ""
433
 
434
+ #: inc/template/options.php:345
435
  msgid "CDN Exclusions"
436
  msgstr ""
437
 
438
+ #: inc/template/options.php:346
439
  msgid ""
440
  "Enter any directories or file extensions you would like to be excluded from "
441
  "CDN rewriting, separated by commas (,). Default: .php"
442
  msgstr ""
443
 
444
+ #: inc/template/options.php:359
445
  msgid "Optimization options for Google Analytics."
446
  msgstr ""
447
 
448
+ #: inc/template/options.php:363
449
  msgid "Enable Local Analytics"
450
  msgstr ""
451
 
452
+ #: inc/template/options.php:364
453
+ msgid "Enable syncing of the Google Analytics script to your own server."
454
  msgstr ""
455
 
456
+ #: inc/template/options.php:369
457
  msgid "Tracking ID"
458
  msgstr ""
459
 
460
+ #: inc/template/options.php:370
461
  msgid "Enter your Google Analytics tracking ID"
462
  msgstr ""
463
 
464
+ #: inc/template/options.php:375
465
  msgid "Tracking code position"
466
  msgstr ""
467
 
468
+ #: inc/template/options.php:376
469
  msgid ""
470
+ "Load your GA script in the header or footer of the site. Default - header"
 
471
  msgstr ""
472
 
473
+ #: inc/template/options.php:385
474
  msgid "Disable Display Features"
475
  msgstr ""
476
 
477
+ #: inc/template/options.php:386
478
  msgid "Disable marketing and advertising which generates a 2nd HTTP request"
479
  msgstr ""
480
 
481
+ #: inc/template/options.php:391
482
  msgid "Anonymize IP"
483
  msgstr ""
484
 
485
+ #: inc/template/options.php:392
486
  msgid ""
487
  "Shorten visitor IP to comply with privacy restrictions in some countries."
488
  msgstr ""
489
 
490
+ #: inc/template/options.php:397
491
+ msgid "Track Admins"
492
  msgstr ""
493
 
494
+ #: inc/template/options.php:398
495
+ msgid "Include logged in WordPress admins in your GA report."
496
  msgstr ""
497
 
498
+ #: inc/template/options.php:403
499
+ msgid "Adjust Bounce Rate"
500
  msgstr ""
501
 
502
+ #: inc/template/options.php:404
503
  msgid ""
504
  "Set a timeout limit in seconds to better evaluate the quality of your "
505
+ "traffic (1 - 100)"
506
+ msgstr ""
507
+
508
+ #: inc/template/options.php:409
509
+ msgid "MonsterInsights Integration"
510
  msgstr ""
511
 
512
+ #: inc/template/options.php:410
513
+ msgid ""
514
+ "Allows MonsterInsights to manage your Google Analytics while still using the "
515
+ "locally hosted analytics.js generated by Speed Booster Pack"
516
  msgstr ""
517
 
518
+ #: inc/template/options.php:419
519
  msgid ""
520
+ "Activating these settings might cause conflicts with other plugins or your "
521
+ "theme, resulting in broken styles or scripts. Use with caution!"
522
  msgstr ""
523
 
524
+ #: inc/template/options.php:550
525
  msgid "CSS Handle"
526
  msgstr ""
527
 
528
+ #: inc/template/options.php:566
529
  msgid "Script Handle"
530
  msgstr ""
531
 
532
+ #: inc/template/options.php:567
533
  msgid "Script Path"
534
  msgstr ""
535
 
536
+ #: inc/template/options.php:630
537
+ msgid "Speed up your website with Optimocha"
538
  msgstr ""
539
 
540
+ #: inc/template/options.php:631
541
  msgid ""
542
+ "Optimocha is a tailored speed optimization service where you can get your "
543
+ "website optimized by a speed optimization expert. With a one-time "
544
+ "\"investment\", your website will be taken care of real people. <strong>A "
545
+ "significant speed improvement is guaranteed</strong>, so can be sure that "
546
+ "your investment will return to you with a faster website!"
 
 
 
 
 
547
  msgstr ""
548
 
549
+ #: inc/template/options.php:632
550
  msgid ""
551
+ "Or, if you'd like to have someone maintain your website speed, keep "
552
+ "everything up-to-date and ensure your website is secure all the time; you "
553
+ "can purchase Optimocha's monthly optimization &amp; maintenance packages. "
554
+ "<strong>Annual payments have more and more benefits</strong>, be sure to "
555
+ "check them out!"
556
  msgstr ""
557
 
558
+ #: inc/template/options.php:633 inc/template/options.php:677
559
+ msgid "Speed Up Your Website!"
560
  msgstr ""
561
 
562
+ #: inc/template/options.php:642
563
+ msgid "Optimize your images with ShortPixel"
564
  msgstr ""
565
 
566
+ #: inc/template/options.php:643
567
  msgid ""
568
+ "Image optimization is essential for all websites - especially for sites with "
569
+ "lots of images! ShortPixel Image Optimizer is probably the best image "
570
+ "optimization plugin you can use in the WordPress ecosystem. By clicking the "
571
+ "link below, <strong>you will get 50% more image optimization credits for the "
572
+ "same price</strong>! The image optimization credits are good for unlimited "
573
+ "websites and do not expire, so you can use your API key in all your "
574
+ "websites, anytime you want."
575
  msgstr ""
576
 
577
+ #: inc/template/options.php:644
578
+ msgid "Optimize Your Images!"
579
  msgstr ""
580
 
581
+ #: inc/template/options.php:653
582
+ msgid "Get better hosting at WP Engine"
583
  msgstr ""
584
 
585
+ #: inc/template/options.php:654
586
+ msgid ""
587
+ "Choosing a good web hosting company make such a big difference, but often "
588
+ "overlooked. It's understandable that people like to try cheap hosting "
589
+ "packages in very large hosting companies, but if you're looking for a "
590
+ "WordPress-centric hosting company with servers specially optimized for "
591
+ "WordPress websites, be sure to check out WP Engine. Clicking the link below, "
592
+ "<strong>you can get up to three months for free on annual payments!</strong>"
593
  msgstr ""
594
 
595
+ #: inc/template/options.php:655
596
+ msgid "Get Better Hosting!"
597
  msgstr ""
598
 
599
+ #: inc/template/options.php:675
600
+ msgid ""
601
+ "People abandon pages that take more than a few seconds to load, which means "
602
+ "slow pages lose you visitors (and money). You don’t want that to happen, do "
603
+ "you?"
604
  msgstr ""
605
 
606
+ #: inc/template/options.php:676
607
+ msgid ""
608
+ "If you’re ready to <em>invest</em> in speeding up your website, click below "
609
+ "for our professional, tailored speed optimization services!"
610
  msgstr ""
611
 
612
+ #: inc/template/options.php:684
613
  msgid ""
614
+ "It's always a good idea to keep testing your website so you can track your "
615
+ "website's speed. Click the buttons below to see how well your website "
616
+ "performs in various speed test tools!"
617
+ msgstr ""
618
+
619
+ #: inc/template/options.php:685
620
+ msgid "Test on GTmetrix"
621
  msgstr ""
622
 
623
+ #: inc/template/options.php:685
624
+ msgid "Test on Google PageSpeed"
625
  msgstr ""
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: speed, optimization, performance, scripts to the footer, google libraries,
4
  Requires at least: 4.6
5
  Tested up to: 5.2
6
  Requires PHP: 5.6
7
- Stable tag: 3.8
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -30,10 +30,8 @@ Speed Booster Pack is a plugin that can help you speed up your website by tweaki
30
  * **Move scripts to the footer** to improve page loading speed.
31
  * **Minify and inline all CSS and move them to footer** to optimize CSS delivery.
32
  * **Minify HTML and JavaScript** to increase your page speed.
33
- * **Load JS files from Google libraries** rather than serving them from your WordPress install directly, to reduce latency, increase parallelism and improve browser caching.
34
  * **Defer parsing of JavaScript files** to reduce the initial load time of your page.
35
  * **Remove query strings from static resources** to improve your speed scores.
36
- * **Remove extra Font Awesome stylesheets** added to your theme by certain plugins, if *Font Awesome* is already used in your theme.
37
  * **Remove junk header tags** to clean up your WordPress head code.
38
  * **Exclude scripts** from being moved to the footer or defered.
39
  * **Remove RSD Link** if you are not using a Weblog Client or some 3rd party sites/programs that use the XML-RPC request formats.
@@ -55,6 +53,17 @@ Speed Booster Pack is a plugin that can help you speed up your website by tweaki
55
 
56
  == Changelog ==
57
 
 
 
 
 
 
 
 
 
 
 
 
58
  = 3.8 =
59
  * Fixed most of the typos
60
  * Added option: "Disable cart fragments"
@@ -234,26 +243,4 @@ Speed Booster Pack is a plugin that can help you speed up your website by tweaki
234
  * Modified Readme file
235
 
236
  = 1.0 =
237
- * Initial release
238
-
239
- == Page Load Stats ==
240
-
241
- Page Load Stats is a brief statistic displayed in the plugin options page. It displays your homepage loading speed (in seconds) and number of processed queries.
242
-
243
- **Page loading time** – the progress bar color will be:
244
-
245
- * *green* if the page load takes less than a second
246
- * *orange* when loading the page takes between 1 and 2 seconds
247
- * *red* if the page loading takes longer than 2 seconds
248
-
249
- **Number of executed queries** – the progress bar color will be:
250
-
251
- * *green* if there were less than 100 queries
252
- * *orange* if there were between 100 and 200 queries
253
- * *red* if the page required more than 200 queries
254
-
255
- == Credits ==
256
-
257
- * Thanks to [Jason Penney](http://jasonpenney.net/) for Google Libraries feature.
258
- * CSS option was implemented from Async JS and CSS plugin and updated to our plugin.
259
- * Credits for Lazy Load feature belongs to [pluginkollektiv](https://github.com/pluginkollektiv/crazy-lazy)
4
  Requires at least: 4.6
5
  Tested up to: 5.2
6
  Requires PHP: 5.6
7
+ Stable tag: 3.8.1
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
30
  * **Move scripts to the footer** to improve page loading speed.
31
  * **Minify and inline all CSS and move them to footer** to optimize CSS delivery.
32
  * **Minify HTML and JavaScript** to increase your page speed.
 
33
  * **Defer parsing of JavaScript files** to reduce the initial load time of your page.
34
  * **Remove query strings from static resources** to improve your speed scores.
 
35
  * **Remove junk header tags** to clean up your WordPress head code.
36
  * **Exclude scripts** from being moved to the footer or defered.
37
  * **Remove RSD Link** if you are not using a Weblog Client or some 3rd party sites/programs that use the XML-RPC request formats.
53
 
54
  == Changelog ==
55
 
56
+ = 3.8.1 =
57
+ * **Speed Booster Pack turns five!** We're celebrating SBP's birthday (20th May) with a better (WAY better) admin interface. We changed places of some of the options in the General and Advanced tabs, and put a "be careful" warning on top of the Advanced, CDN and Google Analytics tabs. We also updated the CSS, and added a sidebar which has some speed test links that could turn into speed test widgets in the future!
58
+ * **New:** Added a "Disable jQuery Migrate" option.
59
+ * **Fixed:** Added a WooCommerce check for the "Disable cart fragments" option.
60
+ * **Updated:** The POT file is recreated and will be updated on each feature update.
61
+ * **Removed:** The "Load JS from Google Libraries" option.
62
+ * **Removed:** The "Disable all above CSS options on mobile devices" option.
63
+ * **Removed:** The "Disable XML-RPC" option.
64
+ * **Removed:** The "Remove extra Font Awesome styles" option. This will be added later, but needs a rewrite.
65
+ * **Removed:** Some very unnecessary CSS styling both in the plugin's main style.css file and a separate, jQuery UI-related file.
66
+
67
  = 3.8 =
68
  * Fixed most of the typos
69
  * Added option: "Disable cart fragments"
243
  * Modified Readme file
244
 
245
  = 1.0 =
246
+ * Initial release
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
speed-booster-pack.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin URI: http://wordpress.org/plugins/speed-booster-pack/
5
  * Description: Speed Booster Pack helps you improve your page loading speed and get higher scores on speed test services like GTmetrix, Google PageSpeed or WebPageTest.
6
  * Author: Optimocha
7
- * Version: 3.8
8
  * Author URI: https://optimocha.com
9
  * License: GPLv3 or later
10
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -42,7 +42,7 @@
42
 
43
  define( 'SPEED_BOOSTER_PACK_PATH', plugin_dir_path( __FILE__ ) );
44
  define( 'SPEED_BOOSTER_PACK_URL', plugin_dir_url( __FILE__ ) );
45
- define( 'SPEED_BOOSTER_PACK_VERSION', '3.8' );
46
  // Defining css position
47
  define( 'SBP_FOOTER', 10 );
48
  // Defining css last position
@@ -174,8 +174,8 @@ if ( ! class_exists( 'Speed_Booster_Pack' ) ) {
174
  if ( $hook != $sbp_settings_page ) {
175
  return;
176
  }
177
- wp_enqueue_style( 'sbp-styles', plugin_dir_url( __FILE__ ) . 'css/style.css' );
178
- wp_enqueue_style( 'jquery-ui', plugin_dir_url( __FILE__ ) . 'css/vendors/jquery-ui/jquery-ui.min.css' );
179
 
180
  } // End function sbp_enqueue_styles
181
 
4
  * Plugin URI: http://wordpress.org/plugins/speed-booster-pack/
5
  * Description: Speed Booster Pack helps you improve your page loading speed and get higher scores on speed test services like GTmetrix, Google PageSpeed or WebPageTest.
6
  * Author: Optimocha
7
+ * Version: 3.8.1
8
  * Author URI: https://optimocha.com
9
  * License: GPLv3 or later
10
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
42
 
43
  define( 'SPEED_BOOSTER_PACK_PATH', plugin_dir_path( __FILE__ ) );
44
  define( 'SPEED_BOOSTER_PACK_URL', plugin_dir_url( __FILE__ ) );
45
+ define( 'SPEED_BOOSTER_PACK_VERSION', '3.8.1' );
46
  // Defining css position
47
  define( 'SBP_FOOTER', 10 );
48
  // Defining css last position
174
  if ( $hook != $sbp_settings_page ) {
175
  return;
176
  }
177
+ wp_enqueue_style( 'sbp-styles', plugin_dir_url( __FILE__ ) . 'css/style.css', null, SPEED_BOOSTER_PACK_VERSION );//SPEED_BOOSTER_PACK_VERSION );
178
+ //wp_enqueue_style( 'jquery-ui', plugin_dir_url( __FILE__ ) . 'css/vendors/jquery-ui/jquery-ui.min.css' );
179
 
180
  } // End function sbp_enqueue_styles
181