Version Description
- minor backend tweaks
Download this release
Release Info
Developer | machothemes |
Plugin | Speed Booster Pack |
Version | 3.7.3 |
Comparing to | |
See all releases |
Code changes from version 3.6.1 to 3.7.3
- css/dynamic-css.php +0 -111
- css/jquery-ui.min.css +0 -7
- css/sbp_style.min.css +0 -1
- css/style.css +926 -0
- css/style.dev.css +0 -622
- css/vendors/jquery-ui/images/ui-icons_444444_256x240.png +0 -0
- css/vendors/jquery-ui/images/ui-icons_555555_256x240.png +0 -0
- css/vendors/jquery-ui/images/ui-icons_777620_256x240.png +0 -0
- css/vendors/jquery-ui/images/ui-icons_777777_256x240.png +0 -0
- css/vendors/jquery-ui/images/ui-icons_cc0000_256x240.png +0 -0
- css/vendors/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
- css/vendors/jquery-ui/jquery-ui.min.css +7 -0
- feedback/class-epsilon-feedback.php +271 -0
- feedback/class-epsilon-plugin-request.php +225 -0
- inc/core.php +610 -537
- inc/crazy-lazy.class.php +172 -172
- inc/crazy-lazy.php +37 -37
- inc/css-optimizer.php +227 -203
- inc/images/icon-128x128.jpg +0 -0
- inc/images/icon-16x16.png +0 -0
- inc/images/sp.png +0 -0
- inc/js/admin-scripts.js +100 -0
- inc/js/jquery.unveil.js +71 -71
- inc/js/jquery.unveil.min.js +11 -11
- inc/js/lazyload.js +90 -90
- inc/js/lazyload.min.js +7 -7
- inc/js/plugin-install.js +55 -0
- inc/js/post-tabs-edit.js +0 -9
- inc/js/sbp-hide.js +0 -16
- inc/js/sbp-slide.js +0 -13
- inc/sbp-minifier.php +120 -119
- inc/settings.php +290 -324
- inc/template/notice.php +17 -17
- inc/template/options.php +579 -444
- inc/use-google-libraries.php +504 -492
- lang/es_ES.mo +0 -0
- lang/es_ES.po +0 -372
- lang/ro_RO.mo +0 -0
- lang/ro_RO.po +0 -374
- lang/sb-pack.mo +0 -0
- lang/sb-pack.po +0 -339
- lang/sb-pack.pot +0 -339
- readme.txt +246 -206
- speed-booster-pack.php +281 -291
- widgets/dashboard-widget.php +70 -0
css/dynamic-css.php
DELETED
@@ -1,111 +0,0 @@
|
|
1 |
-
<style type="text/css">
|
2 |
-
|
3 |
-
/*progress-bar-time*/
|
4 |
-
|
5 |
-
@-webkit-keyframes progress-bar-time {
|
6 |
-
from { }
|
7 |
-
to { width: 5<?php echo $page_time; ?>% }
|
8 |
-
}
|
9 |
-
|
10 |
-
@-moz-keyframes progress-bar-time {
|
11 |
-
from { }
|
12 |
-
to { width: 5<?php echo $page_time; ?>% }
|
13 |
-
}
|
14 |
-
|
15 |
-
@-ms-keyframes progress-bar-time {
|
16 |
-
from { }
|
17 |
-
to { width: 5<?php echo $page_time; ?>% }
|
18 |
-
}
|
19 |
-
|
20 |
-
@-o-keyframes progress-bar-time {
|
21 |
-
from { }
|
22 |
-
to { width: 5<?php echo $page_time; ?>% }
|
23 |
-
}
|
24 |
-
|
25 |
-
@keyframes progress-bar-time {
|
26 |
-
from { }
|
27 |
-
to { width: 5<?php echo $page_time; ?>% }
|
28 |
-
}
|
29 |
-
|
30 |
-
/*progress-bar-queries*/
|
31 |
-
|
32 |
-
@-webkit-keyframes progress-bar-queries {
|
33 |
-
from { }
|
34 |
-
to { width: <?php echo $page_queries; ?>% }
|
35 |
-
}
|
36 |
-
|
37 |
-
@-moz-keyframes progress-bar-queries {
|
38 |
-
from { }
|
39 |
-
to { width: <?php echo $page_queries; ?>% }
|
40 |
-
}
|
41 |
-
|
42 |
-
@-ms-keyframes progress-bar-queries {
|
43 |
-
from { }
|
44 |
-
to { width: <?php echo $page_queries; ?>% }
|
45 |
-
}
|
46 |
-
|
47 |
-
@-o-keyframes progress-bar-queries {
|
48 |
-
from { }
|
49 |
-
to { width: <?php echo $page_queries; ?>% }
|
50 |
-
}
|
51 |
-
|
52 |
-
@keyframes progress-bar-queries {
|
53 |
-
from { }
|
54 |
-
to { width: <?php echo $page_queries; ?>% }
|
55 |
-
}
|
56 |
-
|
57 |
-
<?php
|
58 |
-
|
59 |
-
if ( $page_time >=1.00 and $page_time <=2.00 ) { ?>
|
60 |
-
|
61 |
-
.wrap .sbp-progress.time > span {
|
62 |
-
background-color: #f1a165;
|
63 |
-
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #f1a165),color-stop(1, #f36d0a));
|
64 |
-
background-image: -webkit-linear-gradient(top, #f1a165, #f36d0a);
|
65 |
-
background-image: -moz-linear-gradient(top, #f1a165, #f36d0a);
|
66 |
-
background-image: -ms-linear-gradient(top, #f1a165, #f36d0a);
|
67 |
-
background-image: -o-linear-gradient(top, #f1a165, #f36d0a);
|
68 |
-
}
|
69 |
-
|
70 |
-
<?php }
|
71 |
-
|
72 |
-
if ( $page_time >=2.00 ) { ?>
|
73 |
-
.wrap .sbp-progress.time > span {
|
74 |
-
background-color: #FB8A88;
|
75 |
-
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #FB8A88),color-stop(1, #FF4136));
|
76 |
-
background-image: -webkit-linear-gradient(top, #FB8A88, #FF4136);
|
77 |
-
background-image: -moz-linear-gradient(top, #FB8A88, #FF4136);
|
78 |
-
background-image: -ms-linear-gradient(top, #FB8A88, #FF4136);
|
79 |
-
background-image: -o-linear-gradient(top, #f1a165, #f36d0a);
|
80 |
-
}
|
81 |
-
|
82 |
-
<?php }
|
83 |
-
|
84 |
-
if ( $page_queries >=100 and $page_queries <=200 ) { ?>
|
85 |
-
|
86 |
-
.wrap .sbp-progress.queries > span {
|
87 |
-
background-color: #f1a165;
|
88 |
-
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #f1a165),color-stop(1, #f36d0a));
|
89 |
-
background-image: -webkit-linear-gradient(top, #f1a165, #f36d0a);
|
90 |
-
background-image: -moz-linear-gradient(top, #f1a165, #f36d0a);
|
91 |
-
background-image: -ms-linear-gradient(top, #f1a165, #f36d0a);
|
92 |
-
background-image: -o-linear-gradient(top, #f1a165, #f36d0a);
|
93 |
-
}
|
94 |
-
|
95 |
-
<?php }
|
96 |
-
|
97 |
-
if ( $page_queries >=200 ) { ?>
|
98 |
-
.wrap .sbp-progress.queries > span {
|
99 |
-
background-color: #FB8A88;
|
100 |
-
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #FB8A88),color-stop(1, #FF4136));
|
101 |
-
background-image: -webkit-linear-gradient(top, #FB8A88, #FF4136);
|
102 |
-
background-image: -moz-linear-gradient(top, #FB8A88, #FF4136);
|
103 |
-
background-image: -ms-linear-gradient(top, #FB8A88, #FF4136);
|
104 |
-
background-image: -o-linear-gradient(top, #f1a165, #f36d0a);
|
105 |
-
}
|
106 |
-
|
107 |
-
<?php }
|
108 |
-
|
109 |
-
?>
|
110 |
-
|
111 |
-
</style>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/jquery-ui.min.css
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
/*! jQuery UI - v1.11.0 - 2014-06-26
|
2 |
-
* http://jqueryui.com
|
3 |
-
* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.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/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
|
5 |
-
* Copyright 2014 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-clearfix{min-height:0}.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}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.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;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.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-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.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:49%}.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-dialog{overflow:hidden;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-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.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{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-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("images/animated-overlay.gif");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image: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-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-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;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:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.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;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;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{border:1px solid #fbcb09;background:#fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#c77405}.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{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.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("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_228ef1_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffd27a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-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:-64px -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:-64px -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:0 -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:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x;opacity:.2;filter:Alpha(Opacity=20);border-radius:5px}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/sbp_style.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
.postbox,.wrap .sb-pack .sbp-box{position:relative;overflow:hidden}.wrap .sb-pack .welcome-panel .welcome-panel-column:first-child{display:block!important}.wrap .sb-pack .welcome-panel h4{margin:1.33em 0 20px}.wrap .sb-pack .sbp-inline-wrap{display:inline-block;margin-right:10px;vertical-align:top}.wrap .sb-pack .sbp-more-width{width:300px}.wrap .sb-pack input[type=text]{line-height:1.3}.wrap .sb-pack .sbp-all-enqueued{background-color:#FCFCFC;padding:5px 0 10px;border:1px solid #ddd;width:auto}.wrap .sb-pack .sbp-title-scripts,.wrap .sb-pack .sbp-width{min-width:200px;width:auto;padding:0 20px}.wrap .sb-pack .sbp-title-scripts{display:inline-block;font-weight:700}.wrap .sb-pack #poststuff h2{font-size:32px;padding:9px 15px 20px 0;font-weight:700;line-height:1.3}.wrap .sb-pack #poststuff .main-sbp-title h3{font-size:24px;padding:8px 0 20px;font-weight:700;color:#FA5148}.wrap .sb-pack .handlediv{color:#80828F;padding: 10px 0 0;cursor:pointer}.wrap .sb-pack .meta-box-sortables .postbox .handlediv:before{right:20px;font:400 30px/1.2 dashicons;padding:8px 0;content:"\f343"}.wrap .sb-pack .meta-box-sortables .postbox.closed .handlediv:before{content:"\f347"}.wrap .sb-pack .postbox .inside{padding:0 20px 20px}.wrap .sb-pack #poststuff .inside{margin:26px 0 0}.wrap .sb-pack #poststuff h3{font-size:24px;padding:8px 20px;font-weight:700;display:inline-block}.wrap .sb-pack .sbp-columns1{display:inline-block}.wrap .sb-pack .sbp-columns2{display:inline-block;max-width:73%}.wrap .sb-pack .sbp-title-div{height:50px;clear:both}.wrap .sb-pack .sbp-amount{background-color:transparent;border:none;box-shadow:none;font-size:16px}.wrap .sb-pack .sbp-slider{width:40%}.wrap .sb-pack p{color:#464646;line-height:1.6}.wrap .sb-pack .debug-info{margin-top:19px;border:1px solid #1A9E51;padding:17px 10px;background-color:#2DCB73;color:#FFF;font-size:16px;line-height:1.6;text-shadow:1px 1px #1A9E51}.wrap .sb-pack .td-margin{margin:1.5em 0}.wrap .sb-pack .sbp-div-head{border-bottom:1px solid #E1E1E1;margin:0 0 5px;padding:0 0 5px}.wrap .sb-pack .td-border{border-bottom:1px solid #E1E1E1;margin:10px 0}.wrap .sb-pack .td-border-last{border-bottom:1px solid #E1E1E1;margin:1.5em 0}.wrap .sb-pack .sbp-radio-content{display:block}.wrap .sb-pack .sbp-radio-content label{display:block!important}.wrap .sb-pack .sbp-box hr{margin-left:70px}.wrap .sb-pack .sbp-1{padding-top:10px}.wrap .sb-pack .sbp-2{padding-bottom:15px}.wrap .sb-pack .sbp-3{padding-top:5px}.wrap .sb-pack .sbp-title-div .sbp-title{font-size:23px;font-weight:300;line-height:26px;padding-top:16px;padding-right:15px;display:block;float:left}.wrap .sb-pack .sbp-box{background:#fff;border:1px solid #E5E5E5;box-shadow:0 1px 1px rgba(0,0,0,.04);padding:15px;margin-bottom:15px}.wrap .sb-pack .ui-widget-content,.wrap .sb-pack label:before{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.wrap .sb-pack .sbp-box p{margin:5px 0 5px 70px;color:#777}.wrap .sb-pack .sbp-infos{display:block;margin:0 auto;padding-left:70px;font-weight:700;color:#777}.wrap .sb-pack .sbp-infos span{color:#777;font-weight:400}.wrap .sb-pack .sbp-infos-title{font-weight:700;color:#777}.wrap .sb-pack .sbp-box-legend,.wrap .sb-pack .sbp-box-version{position:absolute;left:0;top:0;height:100%}.wrap .sb-pack .sbp-box-version{background:#80828F;padding:20px 15px}.wrap .sb-pack .sbp-box-legend{background:#FCC500;padding:15px}.wrap .sb-pack .sbp-box-legend:hover{background-color:#F39C12}.wrap .sb-pack .sbp-box-version:hover{background-color:#6C6E79}.wrap .sb-pack .sbp-icon-help,.wrap .sb-pack .sbp-icon-version{color:#FFF;font-size:25px}.wrap .sb-pack .sbp-icon:before{content:"\f185";display:inline-block;-webkit-font-smoothing:antialiased;font:400 36px/.6 dashicons;vertical-align:sub;color:#FA5148;padding-right:5px}.wrap .sb-pack .sbp-icon-information:before{content:"\f348";display:inline-block;-webkit-font-smoothing:antialiased;font:400 28px/1 dashicons;vertical-align:middle;color:#C9D6E2;padding-right:5px}.wrap .sb-pack label{display:inline-block;cursor:pointer;position:relative;padding-left:35px;font-size:16px}.wrap .sb-pack label:before{content:"\2717";font-size:16px;-webkit-font-smoothing:antialiased;text-align:center;color:#fff;display:inline-block;width:26px;height:26px;margin-right:10px;position:absolute;left:0;background:#C9D6E2;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);border:1px solid #B2BFCA}.wrap .sb-pack input[type=checkbox],.wrap .sb-pack input[type=radio]{display:none}.wrap .sb-pack input[type=checkbox]:checked+label:before{content:"\2714";background:#2DCB73;text-shadow:1px 1px 1px #148D44;border:1px solid #1A9E51;font-size:16px;-webkit-font-smoothing:antialiased;color:#fff;text-align:center}.wrap .sb-pack .sbp-icon-version:before{content:"\f348";display:inline-block;-webkit-font-smoothing:antialiased;font:400 30px/1 dashicons;vertical-align:top}.wrap .sb-pack .sbp-icon-help:before{content:"\f123";display:inline-block;-webkit-font-smoothing:antialiased;font:400 30px/1 dashicons;vertical-align:top}.wrap .sb-pack .sbp-stats{font-size:16px;line-height:1.5}.wrap .sb-pack .ui-widget-content .ui-state-default,.wrap .sb-pack .ui-widget-header .ui-state-default,.wrap .sb-pack.ui-state-default{border:1px solid #1A9E51;background-color:#2DCB73;font-weight:400;color:#555;outline:0;cursor:pointer}.wrap .sb-pack .ui-corner-all,.wrap .sb-pack .ui-corner-bl,.wrap .sb-pack .ui-corner-bottom,.wrap .sb-pack .ui-corner-left{border-bottom-left-radius:0}.wrap .sb-pack .ui-state-default:before,.wrap .sb-pack .ui-widget-content .ui-state-default:before,.wrap .sb-pack .ui-widget-header .ui-state-default:before{content:"\2630";display:inline-block;-webkit-font-smoothing:antialiased;color:#fff;font-weight:700;text-shadow:0 1px #1A9E51;line-height:1.8em}.wrap .sb-pack .ui-state-default a,.wrap .sb-pack .ui-state-default a:link,.wrap .sb-pack .ui-state-default a:visited{color:#fff;text-decoration:none}.wrap .sb-pack .ui-state-focus,.wrap .sb-pack .ui-state-hover,.wrap .sb-pack .ui-widget-content .ui-state-focus,.wrap .sb-pack .ui-widget-content .ui-state-hover,.wrap .sb-pack .ui-widget-header .ui-state-focus,.wrap .sb-pack .ui-widget-header .ui-state-hover{background:#3CE281}.wrap .sb-pack .ui-corner-all,.wrap .sb-pack .ui-corner-left,.wrap .sb-pack .ui-corner-tl,.wrap .sb-pack .ui-corner-top{border-top-left-radius:0}.wrap .sb-pack .ui-corner-all,.wrap .sb-pack .ui-corner-right,.wrap .sb-pack .ui-corner-top,.wrap .sb-pack .ui-corner-tr{border-top-right-radius:0}.wrap .sb-pack .ui-corner-all,.wrap .sb-pack .ui-corner-bottom,.wrap .sb-pack .ui-corner-br,.wrap .sb-pack .ui-corner-right{border-bottom-right-radius:0}.wrap .sb-pack .ui-slider-horizontal{height:1.3em}.wrap .sb-pack .ui-slider .ui-slider-handle{width:1.8em;height:1.8em;cursor:pointer;text-align:center}.wrap .sb-pack .ui-widget-content{box-shadow:inset 0 1px 2px rgba(0,0,0,.1);border:1px solid #B2BFCA;background:#F1F2F7;color:#222}.wrap .sb-pack .sbp-progress.queries,.wrap .sb-pack .sbp-progress.time{height:30px;width:77%;display:inline-block;position:relative;background-color:#F1F2F7;overflow:hidden;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.wrap .sbp-progress.queries>span,.wrap .sbp-progress.time>span{background-color:#7EDBA5;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#7EDBA5),color-stop(1,#2DCB73));background-image:-webkit-linear-gradient(top,#7EDBA5,#2DCB73);background-image:-moz-linear-gradient(top,#7EDBA5,#2DCB73);background-image:-ms-linear-gradient(top,#7EDBA5,#2DCB73);background-image:-o-linear-gradient(top,#7EDBA5,#f36d0a);color:#fff;width:0;max-width:98%;float:left;display:block;height:100%;position:relative;overflow:hidden}.wrap .sb-pack .sbp-progress.time>span{-webkit-animation:progress-bar-time 2s 1 forwards;-moz-animation:progress-bar-time 2s 1 forwards;-ms-animation:progress-bar-time 2s 1 forwards;-o-animation:progress-bar-time 2s 1 forwards;animation:progress-bar-time 2s 1 forwards}.wrap .sb-pack .sbp-progress.queries>span{-webkit-animation:progress-bar-queries 2s 1 forwards;-moz-animation:progress-bar-queries 2s 1 forwards;-ms-animation:progress-bar-queries 2s 1 forwards;-o-animation:progress-bar-queries 2s 1 forwards;animation:progress-bar-queries 2s 1 forwards}.wrap .sb-pack .sbp-values{float:right;padding:0 5px;background-color:#1AB4EF;color:#fff;width:18%;height:30px;line-height:30px;text-align:center;text-shadow:0 -2px #1AB4EF}.wrap .sb-pack .sbp-numbers{-webkit-animation:opacity 2s;-moz-animation:opacity 2s;-ms-animation:opacity 2s;-o-animation:opacity 2s;animation:opacity 2s;transition-delay:2s;-moz-transition-delay:2s;-webkit-transition-delay:2s;-o-transition-delay:2s;font-size:16px}@keyframes opacity{from{opacity:0}to{opacity:1}}@-moz-keyframes opacity{from{opacity:0}to{opacity:1}}@-webkit-keyframes opacity{from{opacity:0}to{opacity:1}}@-ms-keyframes opacity{from{opacity:0}to{opacity:1}} @-o-keyframes opacity{from{opacity:0}to{opacity:1}} @media screen and (max-width:783px){.wrap .sb-pack input.regular-text{width:14em}}@media screen and (min-width:784px){.wrap .sb-pack input.regular-text{width:45em}}
|
|
css/style.css
ADDED
@@ -0,0 +1,926 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* `border-box`... ALL THE THINGS! */
|
2 |
+
html {
|
3 |
+
box-sizing: border-box;
|
4 |
+
}
|
5 |
+
|
6 |
+
*,
|
7 |
+
*:before,
|
8 |
+
*:after {
|
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 {
|
42 |
+
display: inline-block;
|
43 |
+
margin-right: 10px;
|
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 {
|
59 |
+
min-width: 200px;
|
60 |
+
width: auto;
|
61 |
+
padding: 0 20px;
|
62 |
+
}
|
63 |
+
|
64 |
+
.wrap .sb-pack .sbp-title-scripts {
|
65 |
+
min-width: 200px;
|
66 |
+
width: auto;
|
67 |
+
display: inline-block;
|
68 |
+
font-weight: 700;
|
69 |
+
padding: 0 20px;
|
70 |
+
}
|
71 |
+
|
72 |
+
.wrap .sb-pack .sbp-columns1 {
|
73 |
+
display: inline-block;
|
74 |
+
}
|
75 |
+
|
76 |
+
.wrap .sb-pack .sbp-columns2 {
|
77 |
+
display: inline-block;
|
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;
|
161 |
+
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
|
162 |
+
padding: 15px;
|
163 |
+
margin-bottom: 15px;
|
164 |
+
position: relative;
|
165 |
+
overflow: hidden;
|
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 |
+
/* Jquery UI slider
|
257 |
+
-------------------------------------------------------------- */
|
258 |
+
|
259 |
+
.wrap .sb-pack.ui-state-default,
|
260 |
+
.wrap .sb-pack .ui-widget-content .ui-state-default,
|
261 |
+
.wrap .sb-pack .ui-widget-header .ui-state-default {
|
262 |
+
border: 1px solid #1a9e51;
|
263 |
+
background-color: #2dcb73;
|
264 |
+
font-weight: 400;
|
265 |
+
color: #555;
|
266 |
+
outline: 0 none;
|
267 |
+
cursor: pointer;
|
268 |
+
}
|
269 |
+
|
270 |
+
.wrap .sb-pack .ui-state-default:before,
|
271 |
+
.wrap .sb-pack .ui-widget-content .ui-state-default:before,
|
272 |
+
.wrap .sb-pack .ui-widget-header .ui-state-default:before {
|
273 |
+
content: "\2630";
|
274 |
+
display: inline-block;
|
275 |
+
-webkit-font-smoothing: antialiased;
|
276 |
+
color: #fff;
|
277 |
+
font-weight: 700;
|
278 |
+
text-shadow: 0 1px #1a9e51;
|
279 |
+
line-height: 1.8em;
|
280 |
+
}
|
281 |
+
|
282 |
+
.wrap .sb-pack .ui-state-default a,
|
283 |
+
.wrap .sb-pack .ui-state-default a:link,
|
284 |
+
.wrap .sb-pack .ui-state-default a:visited {
|
285 |
+
color: #fff;
|
286 |
+
text-decoration: none;
|
287 |
+
}
|
288 |
+
|
289 |
+
.wrap .sb-pack .ui-state-focus,
|
290 |
+
.wrap .sb-pack .ui-state-hover,
|
291 |
+
.wrap .sb-pack .ui-widget-content .ui-state-focus,
|
292 |
+
.wrap .sb-pack .ui-widget-content .ui-state-hover,
|
293 |
+
.wrap .sb-pack .ui-widget-header .ui-state-focus,
|
294 |
+
.wrap .sb-pack .ui-widget-header .ui-state-hover {
|
295 |
+
background: #3ce281;
|
296 |
+
}
|
297 |
+
|
298 |
+
.wrap .sb-pack .ui-corner-all,
|
299 |
+
.wrap .sb-pack .ui-corner-top,
|
300 |
+
.wrap .sb-pack .ui-corner-left,
|
301 |
+
.wrap .sb-pack .ui-corner-tl {
|
302 |
+
border-top-left-radius: 0;
|
303 |
+
}
|
304 |
+
|
305 |
+
.wrap .sb-pack .ui-corner-all,
|
306 |
+
.wrap .sb-pack .ui-corner-top,
|
307 |
+
.wrap .sb-pack .ui-corner-right,
|
308 |
+
.wrap .sb-pack .ui-corner-tr {
|
309 |
+
border-top-right-radius: 0;
|
310 |
+
}
|
311 |
+
|
312 |
+
.wrap .sb-pack .ui-corner-bottom,
|
313 |
+
.wrap .sb-pack .ui-corner-left,
|
314 |
+
.wrap .sb-pack .ui-corner-bl {
|
315 |
+
border-bottom-left-radius: 0;
|
316 |
+
}
|
317 |
+
|
318 |
+
.wrap .sb-pack .ui-corner-all,
|
319 |
+
.wrap .sb-pack .ui-corner-bottom,
|
320 |
+
.wrap .sb-pack .ui-corner-right,
|
321 |
+
.wrap .sb-pack .ui-corner-br {
|
322 |
+
border-bottom-right-radius: 0;
|
323 |
+
}
|
324 |
+
|
325 |
+
.wrap .sb-pack .ui-corner-all,
|
326 |
+
.wrap .sb-pack .ui-corner-bottom,
|
327 |
+
.wrap .sb-pack .ui-corner-left,
|
328 |
+
.wrap .sb-pack .ui-corner-bl {
|
329 |
+
border-bottom-left-radius: 0;
|
330 |
+
}
|
331 |
+
|
332 |
+
.wrap .sb-pack .ui-slider-horizontal {
|
333 |
+
height: 1.3em;
|
334 |
+
}
|
335 |
+
|
336 |
+
.wrap .sb-pack .ui-slider .ui-slider-handle {
|
337 |
+
width: 1.8em;
|
338 |
+
height: 1.8em;
|
339 |
+
cursor: pointer;
|
340 |
+
text-align: center;
|
341 |
+
}
|
342 |
+
|
343 |
+
.wrap .sb-pack .ui-widget-content {
|
344 |
+
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
|
345 |
+
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
|
346 |
+
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
|
347 |
+
border: 1px solid #b2bfca;
|
348 |
+
background: #f1f2f7;
|
349 |
+
color: #222
|
350 |
+
}
|
351 |
+
|
352 |
+
/* Progress Bars
|
353 |
+
-------------------------------------------------------------- */
|
354 |
+
.wrap .sb-pack .sbp-progress.time,
|
355 |
+
.wrap .sb-pack .sbp-progress.queries {
|
356 |
+
height: 30px;
|
357 |
+
width: 77%;
|
358 |
+
display: inline-block;
|
359 |
+
position: relative;
|
360 |
+
background-color: #f1f2f7;
|
361 |
+
overflow: hidden;
|
362 |
+
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
363 |
+
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
364 |
+
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
365 |
+
}
|
366 |
+
|
367 |
+
.wrap .sbp-progress.time > span,
|
368 |
+
.wrap .sbp-progress.queries > span {
|
369 |
+
background-color: #7edba5;
|
370 |
+
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #7edba5), color-stop(1, #2dcb73));
|
371 |
+
background-image: -webkit-linear-gradient(top, #7edba5, #2dcb73);
|
372 |
+
background-image: -moz-linear-gradient(top, #7edba5, #2dcb73);
|
373 |
+
background-image: -ms-linear-gradient(top, #7edba5, #2dcb73);
|
374 |
+
background-image: -o-linear-gradient(top, #7edba5, #f36d0a);
|
375 |
+
color: #fff;
|
376 |
+
width: 0%;
|
377 |
+
max-width: 98%;
|
378 |
+
float: left;
|
379 |
+
display: block;
|
380 |
+
height: 100%;
|
381 |
+
position: relative;
|
382 |
+
overflow: hidden;
|
383 |
+
}
|
384 |
+
|
385 |
+
.wrap .sb-pack .sbp-progress.time > span {
|
386 |
+
-webkit-animation: progress-bar-time 2s 1 forwards;
|
387 |
+
-moz-animation: progress-bar-time 2s 1 forwards;
|
388 |
+
-ms-animation: progress-bar-time 2s 1 forwards;
|
389 |
+
-o-animation: progress-bar-time 2s 1 forwards;
|
390 |
+
animation: progress-bar-time 2s 1 forwards;
|
391 |
+
}
|
392 |
+
|
393 |
+
.wrap .sb-pack .sbp-progress.queries > span {
|
394 |
+
-webkit-animation: progress-bar-queries 2s 1 forwards;
|
395 |
+
-moz-animation: progress-bar-queries 2s 1 forwards;
|
396 |
+
-ms-animation: progress-bar-queries 2s 1 forwards;
|
397 |
+
-o-animation: progress-bar-queries 2s 1 forwards;
|
398 |
+
animation: progress-bar-queries 2s 1 forwards;
|
399 |
+
}
|
400 |
+
|
401 |
+
.wrap .sb-pack .sbp-values {
|
402 |
+
float: right;
|
403 |
+
padding: 0 5px;
|
404 |
+
background-color: #1ab4ef;
|
405 |
+
color: #fff;
|
406 |
+
width: 18%;
|
407 |
+
height: 30px;
|
408 |
+
line-height: 30px;
|
409 |
+
text-align: center;
|
410 |
+
text-shadow: 0px -2px #1ab4ef;
|
411 |
+
}
|
412 |
+
|
413 |
+
.wrap .sb-pack .sbp-numbers {
|
414 |
+
-webkit-animation: opacity 2s; /* Safari and Chrome */
|
415 |
+
-moz-animation: opacity 2s; /* Firefox */
|
416 |
+
-ms-animation: opacity 2s; /* Internet Explorer */
|
417 |
+
-o-animation: opacity 2s; /* Opera */
|
418 |
+
animation: opacity 2s;
|
419 |
+
transition-delay: 2s;
|
420 |
+
-moz-transition-delay: 2s; /* Firefox 4 */
|
421 |
+
-webkit-transition-delay: 2s; /* Safari and Chrome */
|
422 |
+
-o-transition-delay: 2s; /* Opera */
|
423 |
+
}
|
424 |
+
|
425 |
+
@keyframes opacity {
|
426 |
+
from { opacity: 0; }
|
427 |
+
to { opacity: 1; }
|
428 |
+
}
|
429 |
+
|
430 |
+
/* Firefox */
|
431 |
+
@-moz-keyframes opacity {
|
432 |
+
from { opacity: 0; }
|
433 |
+
to { opacity: 1; }
|
434 |
+
}
|
435 |
+
|
436 |
+
/* Safari and Chrome */
|
437 |
+
@-webkit-keyframes opacity {
|
438 |
+
from { opacity: 0; }
|
439 |
+
to { opacity: 1; }
|
440 |
+
}
|
441 |
+
|
442 |
+
/* Internet Explorer */
|
443 |
+
@-ms-keyframes opacity {
|
444 |
+
from { opacity: 0; }
|
445 |
+
to { opacity: 1; }
|
446 |
+
}
|
447 |
+
|
448 |
+
|
449 |
+
|
450 |
+
/* Opera */
|
451 |
+
@-o-keyframes opacity {
|
452 |
+
from { opacity: 0; }
|
453 |
+
to { opacity: 1; }
|
454 |
+
}
|
455 |
+
|
456 |
+
|
457 |
+
|
458 |
+
@media screen and (max-width: 783px) {
|
459 |
+
.wrap .sb-pack input.regular-text {
|
460 |
+
width: 14em;
|
461 |
+
}
|
462 |
+
}
|
463 |
+
|
464 |
+
@media screen and (min-width: 784px) {
|
465 |
+
.wrap .sb-pack input.regular-text {
|
466 |
+
width: 45em;
|
467 |
+
}
|
468 |
+
}
|
469 |
+
|
470 |
+
/* Feedback Box */
|
471 |
+
.feedback-box {
|
472 |
+
border: 1px dashed #555;
|
473 |
+
background: #fff;
|
474 |
+
width: 100%;
|
475 |
+
padding: 40px;
|
476 |
+
text-align: center;
|
477 |
+
margin-top: 15px;
|
478 |
+
box-sizing: border-box;
|
479 |
+
}
|
480 |
+
|
481 |
+
.feedback-box .button.button-feedback {
|
482 |
+
padding: 10px 40px;
|
483 |
+
height: initial;
|
484 |
+
}
|
485 |
+
|
486 |
+
#sbp-current-image img {
|
487 |
+
max-width: 130px;
|
488 |
+
height: auto;
|
489 |
+
}
|
490 |
+
|
491 |
+
.feedback-box h3 {
|
492 |
+
font-weight: 700;
|
493 |
+
}
|
494 |
+
|
495 |
+
.feedback-box h3 > img {
|
496 |
+
width: 30px;
|
497 |
+
}
|
498 |
+
|
499 |
+
.feedback-box > p {
|
500 |
+
max-width: 720px;
|
501 |
+
margin: 0 auto;
|
502 |
+
}
|
503 |
+
|
504 |
+
/* sbp-tooltips */
|
505 |
+
/**
|
506 |
+
* Tooltip Styles
|
507 |
+
*/
|
508 |
+
|
509 |
+
/* Base styles for the element that has a tooltip */
|
510 |
+
[data-tooltip],
|
511 |
+
.tooltip {
|
512 |
+
position: relative;
|
513 |
+
cursor: pointer;
|
514 |
+
}
|
515 |
+
|
516 |
+
/* Base styles for the entire tooltip */
|
517 |
+
[data-tooltip]:before,
|
518 |
+
[data-tooltip]:after,
|
519 |
+
.tooltip:before,
|
520 |
+
.tooltip:after {
|
521 |
+
position: absolute;
|
522 |
+
visibility: hidden;
|
523 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
524 |
+
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
|
525 |
+
opacity: 0;
|
526 |
+
-webkit-transition: opacity 0.2s ease-in-out,
|
527 |
+
visibility 0.2s ease-in-out,
|
528 |
+
-webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
529 |
+
-moz-transition: opacity 0.2s ease-in-out,
|
530 |
+
visibility 0.2s ease-in-out,
|
531 |
+
-moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
532 |
+
transition: opacity 0.2s ease-in-out,
|
533 |
+
visibility 0.2s ease-in-out,
|
534 |
+
transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
|
535 |
+
-webkit-transform: translate3d(0, 0, 0);
|
536 |
+
-moz-transform: translate3d(0, 0, 0);
|
537 |
+
transform: translate3d(0, 0, 0);
|
538 |
+
pointer-events: none;
|
539 |
+
}
|
540 |
+
|
541 |
+
/* Show the entire tooltip on hover and focus */
|
542 |
+
[data-tooltip]:hover:before,
|
543 |
+
[data-tooltip]:hover:after,
|
544 |
+
[data-tooltip]:focus:before,
|
545 |
+
[data-tooltip]:focus:after,
|
546 |
+
.tooltip:hover:before,
|
547 |
+
.tooltip:hover:after,
|
548 |
+
.tooltip:focus:before,
|
549 |
+
.tooltip:focus:after {
|
550 |
+
visibility: visible;
|
551 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
552 |
+
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
|
553 |
+
opacity: 1;
|
554 |
+
}
|
555 |
+
|
556 |
+
/* Base styles for the tooltip's directional arrow */
|
557 |
+
.tooltip:before,
|
558 |
+
[data-tooltip]:before {
|
559 |
+
z-index: 1001;
|
560 |
+
border: 6px solid transparent;
|
561 |
+
background: transparent;
|
562 |
+
content: "";
|
563 |
+
}
|
564 |
+
|
565 |
+
/* Base styles for the tooltip's content area */
|
566 |
+
.tooltip:after,
|
567 |
+
[data-tooltip]:after {
|
568 |
+
z-index: 1000;
|
569 |
+
padding: 8px;
|
570 |
+
width: 360px;
|
571 |
+
background-color: #000;
|
572 |
+
background-color: hsla(0, 0%, 20%, 1);
|
573 |
+
color: #fff;
|
574 |
+
content: attr(data-tooltip);
|
575 |
+
line-height: 1.75;
|
576 |
+
}
|
577 |
+
|
578 |
+
/* Directions */
|
579 |
+
|
580 |
+
/* Top (default) */
|
581 |
+
[data-tooltip]:before,
|
582 |
+
[data-tooltip]:after,
|
583 |
+
.tooltip:before,
|
584 |
+
.tooltip:after,
|
585 |
+
.tooltip-top:before,
|
586 |
+
.tooltip-top:after {
|
587 |
+
bottom: 100%;
|
588 |
+
left: 50%;
|
589 |
+
}
|
590 |
+
|
591 |
+
[data-tooltip]:before,
|
592 |
+
.tooltip:before,
|
593 |
+
.tooltip-top:before {
|
594 |
+
margin-left: -6px;
|
595 |
+
margin-bottom: -12px;
|
596 |
+
border-top-color: #000;
|
597 |
+
border-top-color: hsla(0, 0%, 20%, 0.9);
|
598 |
+
}
|
599 |
+
|
600 |
+
/* Horizontally align top/bottom tooltips */
|
601 |
+
[data-tooltip]:after,
|
602 |
+
.tooltip:after,
|
603 |
+
.tooltip-top:after {
|
604 |
+
margin-left: -80px;
|
605 |
+
}
|
606 |
+
|
607 |
+
[data-tooltip]:hover:before,
|
608 |
+
[data-tooltip]:hover:after,
|
609 |
+
[data-tooltip]:focus:before,
|
610 |
+
[data-tooltip]:focus:after,
|
611 |
+
.tooltip:hover:before,
|
612 |
+
.tooltip:hover:after,
|
613 |
+
.tooltip:focus:before,
|
614 |
+
.tooltip:focus:after,
|
615 |
+
.tooltip-top:hover:before,
|
616 |
+
.tooltip-top:hover:after,
|
617 |
+
.tooltip-top:focus:before,
|
618 |
+
.tooltip-top:focus:after {
|
619 |
+
-webkit-transform: translateY(-12px);
|
620 |
+
-moz-transform: translateY(-12px);
|
621 |
+
transform: translateY(-12px);
|
622 |
+
}
|
623 |
+
|
624 |
+
/* Left */
|
625 |
+
.tooltip-left:before,
|
626 |
+
.tooltip-left:after {
|
627 |
+
right: 100%;
|
628 |
+
bottom: 50%;
|
629 |
+
left: auto;
|
630 |
+
}
|
631 |
+
|
632 |
+
.tooltip-left:before {
|
633 |
+
margin-left: 0;
|
634 |
+
margin-right: -12px;
|
635 |
+
margin-bottom: 0;
|
636 |
+
border-top-color: transparent;
|
637 |
+
border-left-color: #000;
|
638 |
+
border-left-color: hsla(0, 0%, 20%, 0.9);
|
639 |
+
}
|
640 |
+
|
641 |
+
.tooltip-left:hover:before,
|
642 |
+
.tooltip-left:hover:after,
|
643 |
+
.tooltip-left:focus:before,
|
644 |
+
.tooltip-left:focus:after {
|
645 |
+
-webkit-transform: translateX(-12px);
|
646 |
+
-moz-transform: translateX(-12px);
|
647 |
+
transform: translateX(-12px);
|
648 |
+
}
|
649 |
+
|
650 |
+
/* Bottom */
|
651 |
+
.tooltip-bottom:before,
|
652 |
+
.tooltip-bottom:after {
|
653 |
+
top: 100%;
|
654 |
+
bottom: auto;
|
655 |
+
left: 50%;
|
656 |
+
}
|
657 |
+
|
658 |
+
.tooltip-bottom:before {
|
659 |
+
margin-top: -12px;
|
660 |
+
margin-bottom: 0;
|
661 |
+
border-top-color: transparent;
|
662 |
+
border-bottom-color: #000;
|
663 |
+
border-bottom-color: hsla(0, 0%, 20%, 0.9);
|
664 |
+
}
|
665 |
+
|
666 |
+
.tooltip-bottom:hover:before,
|
667 |
+
.tooltip-bottom:hover:after,
|
668 |
+
.tooltip-bottom:focus:before,
|
669 |
+
.tooltip-bottom:focus:after {
|
670 |
+
-webkit-transform: translateY(12px);
|
671 |
+
-moz-transform: translateY(12px);
|
672 |
+
transform: translateY(12px);
|
673 |
+
}
|
674 |
+
|
675 |
+
/* Right */
|
676 |
+
.tooltip-right:before,
|
677 |
+
.tooltip-right:after {
|
678 |
+
bottom: 50%;
|
679 |
+
left: 100%;
|
680 |
+
}
|
681 |
+
|
682 |
+
.tooltip-right:before {
|
683 |
+
margin-bottom: 0;
|
684 |
+
margin-left: -12px;
|
685 |
+
border-top-color: transparent;
|
686 |
+
border-right-color: #000;
|
687 |
+
border-right-color: hsla(0, 0%, 20%, 0.9);
|
688 |
+
}
|
689 |
+
|
690 |
+
.tooltip-right:hover:before,
|
691 |
+
.tooltip-right:hover:after,
|
692 |
+
.tooltip-right:focus:before,
|
693 |
+
.tooltip-right:focus:after {
|
694 |
+
-webkit-transform: translateX(12px);
|
695 |
+
-moz-transform: translateX(12px);
|
696 |
+
transform: translateX(12px);
|
697 |
+
}
|
698 |
+
|
699 |
+
/* Move directional arrows down a bit for left/right tooltips */
|
700 |
+
.tooltip-left:before,
|
701 |
+
.tooltip-right:before {
|
702 |
+
top: 3px;
|
703 |
+
}
|
704 |
+
|
705 |
+
/* Vertically center tooltip content for left/right tooltips */
|
706 |
+
.tooltip-left:after,
|
707 |
+
.tooltip-right:after {
|
708 |
+
margin-left: 0;
|
709 |
+
margin-bottom: -16px;
|
710 |
+
}
|
711 |
+
|
712 |
+
/* ShortPixel Banner Styling */
|
713 |
+
.sbp-recommended-plugins {
|
714 |
+
border: 1px solid #e5e5e5;
|
715 |
+
box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
|
716 |
+
margin-top: 1em;
|
717 |
+
}
|
718 |
+
|
719 |
+
.sbp-recommended-plugins h3 {
|
720 |
+
margin: 0 0 15px 0;
|
721 |
+
}
|
722 |
+
|
723 |
+
.sbp-recommended-plugins .sbp-recommended-plugin {
|
724 |
+
background-color: #fff;
|
725 |
+
display: flex;
|
726 |
+
align-items: center;
|
727 |
+
padding: 2em 1em;
|
728 |
+
}
|
729 |
+
|
730 |
+
.sbp-recommended-plugins .sbp-recommended-plugin:nth-child( even ) {
|
731 |
+
background-color: #fcfcfc;
|
732 |
+
border-top: 1px solid #e5e5e5;
|
733 |
+
border-bottom: 1px solid #e5e5e5;
|
734 |
+
}
|
735 |
+
|
736 |
+
.sbp-recommended-plugins .sbp-recommended-plugin .plugin-image {
|
737 |
+
width: 128px;
|
738 |
+
}
|
739 |
+
|
740 |
+
.sbp-recommended-plugins .sbp-recommended-plugin .plugin-information {
|
741 |
+
padding-left: 30px;
|
742 |
+
box-sizing: border-box;
|
743 |
+
width: calc(100% - 128px);
|
744 |
+
}
|
745 |
+
|
746 |
+
.sbp-recommended-plugins .sbp-recommended-plugin .plugin-information .plugin-name,
|
747 |
+
.sbp-recommended-plugins .sbp-recommended-plugin .plugin-information .plugin-description {
|
748 |
+
margin: 0;
|
749 |
+
}
|
750 |
+
|
751 |
+
.sbp-recommended-plugins .sbp-recommended-plugin .plugin-information .plugin-description {
|
752 |
+
margin-bottom: 10px;
|
753 |
+
}
|
754 |
+
|
755 |
+
.sbp-recommended-plugins .sbp-recommended-plugin .sbp-plugin-button.sbp-updating:before {
|
756 |
+
font: normal 20px/1 dashicons;
|
757 |
+
display: inline-block;
|
758 |
+
content: "\f463";
|
759 |
+
-webkit-animation: rotation 2s infinite linear;
|
760 |
+
animation: rotation 2s infinite linear;
|
761 |
+
margin: 3px 5px 0 -2px;
|
762 |
+
vertical-align: top;
|
763 |
+
}
|
764 |
+
|
765 |
+
/* Welcome Logo*/
|
766 |
+
.wp-badge.sbp-welcome-logo {
|
767 |
+
background-color: #fff;
|
768 |
+
background-image: url(../inc/images/icon-128x128.jpg);
|
769 |
+
background-position: center center;
|
770 |
+
background-size: 70%;
|
771 |
+
background-repeat: no-repeat;
|
772 |
+
padding-top: 160px;
|
773 |
+
}
|
774 |
+
|
775 |
+
/* Support Page */
|
776 |
+
.center-support {text-align: center;}
|
777 |
+
|
778 |
+
/* Fast as a rabbit, slow as a snail box */
|
779 |
+
.sbp-fast-as-a-rabbit {
|
780 |
+
background-color: #fff;
|
781 |
+
width: 100%;
|
782 |
+
border-radius: 5px;
|
783 |
+
position: relative;
|
784 |
+
margin: 15px auto;
|
785 |
+
}
|
786 |
+
|
787 |
+
.sbp-fast-as-a-rabbit > div {
|
788 |
+
display: inline-block;
|
789 |
+
border-right: 1px solid #f3f3f3;
|
790 |
+
padding: 10px 20px;
|
791 |
+
text-align: center;
|
792 |
+
vertical-align: middle;
|
793 |
+
}
|
794 |
+
|
795 |
+
.sbp-fast-as-a-rabbit > div > i {margin-right: 8px;}
|
796 |
+
|
797 |
+
.sbp-fast-as-a-rabbit > div > span { font-weight: bold;}
|
798 |
+
|
799 |
+
/*
|
800 |
+
.sbp-fast-as-a-rabbit > div:last-of-type .button {border-radius: 5px;}
|
801 |
+
|
802 |
+
.sbp-fast-as-a-rabbit > div:last-of-type .button-secondary { color: #9a9a9a;}
|
803 |
+
|
804 |
+
.sbp-fast-as-a-rabbit > div:last-of-type .button-primary {padding-left: 20px; padding-right: 20px;}
|
805 |
+
|
806 |
+
.sbp-fast-as-a-rabbit > div:last-of-type .dashicons {
|
807 |
+
vertical-align: middle;
|
808 |
+
height: 24px;
|
809 |
+
}
|
810 |
+
|
811 |
+
.sbp-fast-as-a-rabbit > div:last-of-type {
|
812 |
+
text-align: right;
|
813 |
+
position: absolute;
|
814 |
+
right: 0;
|
815 |
+
top: 50%;
|
816 |
+
margin-top: -26px;
|
817 |
+
}
|
818 |
+
|
819 |
+
*/
|
820 |
+
|
821 |
+
.sbp-fast-as-a-rabbit > div:nth-of-type(4),
|
822 |
+
.sbp-fast-as-a-rabbit > div:nth-of-type(5) {
|
823 |
+
border-right: 0;
|
824 |
+
}
|
825 |
+
|
826 |
+
/* Progress bars */
|
827 |
+
.sbp-fast-as-a-rabbit progress {
|
828 |
+
margin-left: 8px;
|
829 |
+
}
|
830 |
+
|
831 |
+
.sbp-progress-bar {
|
832 |
+
padding: 5px;
|
833 |
+
}
|
834 |
+
|
835 |
+
.sbp-progress-bar progress {
|
836 |
+
background-color: #f3f3f3;
|
837 |
+
border: 1px solid #ececec;
|
838 |
+
border-radius: 9px;
|
839 |
+
margin-right: 8px;
|
840 |
+
}
|
841 |
+
|
842 |
+
.sbp-progress-bar progress::-webkit-progress-bar {
|
843 |
+
background-color: #f3f3f3;
|
844 |
+
border-radius: 9px;
|
845 |
+
}
|
846 |
+
|
847 |
+
.sbp-progress-bar progress::-webkit-progress-value {
|
848 |
+
background: green;
|
849 |
+
border-radius: 9px;
|
850 |
+
}
|
851 |
+
|
852 |
+
.sbp-progress-bar progress::-moz-progress-bar {
|
853 |
+
background: green;
|
854 |
+
border-radius: 9px;
|
855 |
+
}
|
856 |
+
|
857 |
+
.sbp-progress-bar progress.sbp-progress-red::-webkit-progress-value {background: red;}
|
858 |
+
|
859 |
+
.sbp-progress-bar progress.sbp-progress-red::-moz-progress-bar {background: red;}
|
860 |
+
|
861 |
+
.sbp-progress-bar .progress-value {
|
862 |
+
padding: 0px 5px;
|
863 |
+
line-height: 20px;
|
864 |
+
margin-left: 5px;
|
865 |
+
font-size: .8em;
|
866 |
+
color: #555;
|
867 |
+
height: 18px;
|
868 |
+
}
|
869 |
+
|
870 |
+
/* Box */
|
871 |
+
.sbp-box {
|
872 |
+
height: 330px;
|
873 |
+
margin-top: 15px;
|
874 |
+
text-align: center;
|
875 |
+
background: #FFF;
|
876 |
+
position: relative;
|
877 |
+
border: 1px solid rgba(0, 0, 0, .1);
|
878 |
+
float: left;
|
879 |
+
}
|
880 |
+
|
881 |
+
.sbp-box img {
|
882 |
+
width: 125px;
|
883 |
+
height: 125px;
|
884 |
+
margin: 0 auto;
|
885 |
+
margin-bottom: 15px;
|
886 |
+
display: block;
|
887 |
+
border: none;
|
888 |
+
}
|
889 |
+
|
890 |
+
.sbp-box__name {
|
891 |
+
margin-bottom: 10px;
|
892 |
+
padding: 0 26px;
|
893 |
+
font-weight: 600;
|
894 |
+
}
|
895 |
+
|
896 |
+
.sbp-box__description {
|
897 |
+
font-size: 0.9em;
|
898 |
+
}
|
899 |
+
|
900 |
+
.sbp-box__action-bar {
|
901 |
+
position: absolute;
|
902 |
+
bottom: 0;
|
903 |
+
left: 0;
|
904 |
+
right: 0;
|
905 |
+
font-size: 15px;
|
906 |
+
margin: 0;
|
907 |
+
padding: 15px;
|
908 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, .1);
|
909 |
+
box-shadow: inset 0 1px 0 rgba(0, 0, 0, .1);
|
910 |
+
white-space: nowrap;
|
911 |
+
text-overflow: ellipsis;
|
912 |
+
background: rgba(255, 255, 255, .65);
|
913 |
+
text-align: left;
|
914 |
+
}
|
915 |
+
|
916 |
+
.sbp-box__action-button {
|
917 |
+
position: absolute;
|
918 |
+
bottom: 0px;
|
919 |
+
right: 0px;
|
920 |
+
padding: 9px 10px 10px;
|
921 |
+
background: #f6f6f6;
|
922 |
+
border-top: 1px solid rgba(0, 0, 0, .1);
|
923 |
+
text-align: center;
|
924 |
+
width: 100%;
|
925 |
+
}
|
926 |
+
|
css/style.dev.css
DELETED
@@ -1,622 +0,0 @@
|
|
1 |
-
h3.sbp-emphasize {
|
2 |
-
color: #FA5148;
|
3 |
-
}
|
4 |
-
img.sbp-sp {
|
5 |
-
float: left;
|
6 |
-
margin-right: 20px;
|
7 |
-
}
|
8 |
-
p.description-link {
|
9 |
-
margin-top: -5px;
|
10 |
-
}
|
11 |
-
|
12 |
-
.wrap .sb-pack .welcome-panel .welcome-panel-column:first-child {
|
13 |
-
display: block !important;
|
14 |
-
}
|
15 |
-
|
16 |
-
.wrap .sb-pack .welcome-panel h4 {
|
17 |
-
margin: 1.33em 0 20px;
|
18 |
-
}
|
19 |
-
|
20 |
-
.wrap .sb-pack .sbp-inline-wrap {
|
21 |
-
display: inline-block;
|
22 |
-
margin-right: 10px;
|
23 |
-
vertical-align: top;
|
24 |
-
}
|
25 |
-
|
26 |
-
.wrap .sb-pack .sbp-more-width {
|
27 |
-
width: 300px;
|
28 |
-
}
|
29 |
-
|
30 |
-
.wrap .sb-pack input[type="text"] {
|
31 |
-
line-height: 1.3;
|
32 |
-
}
|
33 |
-
|
34 |
-
.wrap .sb-pack .sbp-all-enqueued {
|
35 |
-
background-color: #FCFCFC;
|
36 |
-
padding: 5px 0px 10px;
|
37 |
-
border: 1px solid #ddd;
|
38 |
-
width: auto;
|
39 |
-
}
|
40 |
-
|
41 |
-
.wrap .sb-pack .sbp-width {
|
42 |
-
min-width: 200px;
|
43 |
-
width: auto;
|
44 |
-
padding: 0 20px;
|
45 |
-
}
|
46 |
-
|
47 |
-
.wrap .sb-pack .sbp-title-scripts {
|
48 |
-
min-width: 200px;
|
49 |
-
width: auto;
|
50 |
-
display: inline-block;
|
51 |
-
font-weight: 700;
|
52 |
-
padding: 0 20px;
|
53 |
-
}
|
54 |
-
|
55 |
-
.wrap .sb-pack #poststuff h2 {
|
56 |
-
font-size: 32px;
|
57 |
-
padding: 9px 15px 20px 0px;
|
58 |
-
font-weight: 700;
|
59 |
-
line-height: 1.3;
|
60 |
-
}
|
61 |
-
|
62 |
-
.wrap .sb-pack #poststuff .main-sbp-title h3 {
|
63 |
-
font-size: 24px;
|
64 |
-
padding: 8px 0 20px;
|
65 |
-
font-weight: 700;
|
66 |
-
color: #FA5148;
|
67 |
-
}
|
68 |
-
|
69 |
-
.wrap .sb-pack .handlediv {
|
70 |
-
color: #80828F;
|
71 |
-
padding: 10px 0 0;
|
72 |
-
cursor: pointer;
|
73 |
-
}
|
74 |
-
|
75 |
-
.wrap .sb-pack .meta-box-sortables .postbox .handlediv:before {
|
76 |
-
right: 20px;
|
77 |
-
font: 400 30px/1.2 'dashicons';
|
78 |
-
padding: 8px 0;
|
79 |
-
}
|
80 |
-
|
81 |
-
.wrap .sb-pack .meta-box-sortables .postbox .handlediv:before {
|
82 |
-
content: "\f343";
|
83 |
-
}
|
84 |
-
|
85 |
-
.wrap .sb-pack .meta-box-sortables .postbox.closed .handlediv:before {
|
86 |
-
content: "\f347";
|
87 |
-
}
|
88 |
-
|
89 |
-
.wrap .sb-pack .postbox .inside {
|
90 |
-
padding: 0 20px 20px;
|
91 |
-
}
|
92 |
-
|
93 |
-
.postbox {
|
94 |
-
position: relative;
|
95 |
-
overflow: hidden;
|
96 |
-
}
|
97 |
-
.wrap .sb-pack #poststuff .inside {
|
98 |
-
margin: 26px 0 0;
|
99 |
-
}
|
100 |
-
|
101 |
-
.wrap .sb-pack #poststuff h3{
|
102 |
-
font-size: 24px;
|
103 |
-
padding: 8px 20px;
|
104 |
-
font-weight: 700;
|
105 |
-
display: inline-block;
|
106 |
-
}
|
107 |
-
|
108 |
-
.wrap .sb-pack .sbp-columns1 {
|
109 |
-
display: inline-block;
|
110 |
-
}
|
111 |
-
|
112 |
-
.wrap .sb-pack .sbp-columns2 {
|
113 |
-
display: inline-block;
|
114 |
-
max-width: 73%;
|
115 |
-
}
|
116 |
-
|
117 |
-
.wrap .sb-pack .sbp-title-div {
|
118 |
-
height: 50px;
|
119 |
-
clear: both;
|
120 |
-
}
|
121 |
-
|
122 |
-
.wrap .sb-pack .sbp-amount {
|
123 |
-
background-color: transparent;
|
124 |
-
border: medium none;
|
125 |
-
box-shadow: none;
|
126 |
-
font-size: 16px;
|
127 |
-
}
|
128 |
-
|
129 |
-
.wrap .sb-pack .sbp-slider {
|
130 |
-
width: 40%;
|
131 |
-
}
|
132 |
-
|
133 |
-
.wrap .sb-pack p {
|
134 |
-
color: #464646;
|
135 |
-
line-height: 1.6;
|
136 |
-
}
|
137 |
-
.wrap .sb-pack p.sp-link {
|
138 |
-
text-align: center;
|
139 |
-
font-size: 1.2em;
|
140 |
-
margin-bottom: 20px;
|
141 |
-
}
|
142 |
-
|
143 |
-
.wrap .sb-pack .debug-info {
|
144 |
-
margin-top: 19px;
|
145 |
-
border: 1px solid #1A9E51;
|
146 |
-
padding: 17px 10px;
|
147 |
-
background-color: #2DCB73;
|
148 |
-
color: #FFF;
|
149 |
-
font-size: 16px;
|
150 |
-
line-height: 1.6;
|
151 |
-
text-shadow: 1px 1px #1A9E51;
|
152 |
-
}
|
153 |
-
|
154 |
-
.wrap .sb-pack .td-margin {
|
155 |
-
margin: 1.5em 0 1.5em;
|
156 |
-
}
|
157 |
-
|
158 |
-
.wrap .sb-pack .sbp-div-head {
|
159 |
-
border-bottom: 1px solid #E1E1E1;
|
160 |
-
margin:0 0 5px;
|
161 |
-
padding: 0 0 5px;
|
162 |
-
}
|
163 |
-
|
164 |
-
.wrap .sb-pack .td-border {
|
165 |
-
border-bottom: 1px solid #E1E1E1;
|
166 |
-
margin: 10px 0;
|
167 |
-
}
|
168 |
-
|
169 |
-
.wrap .sb-pack .td-border-last {
|
170 |
-
border-bottom: 1px solid #E1E1E1;
|
171 |
-
margin: 1.5em 0;
|
172 |
-
}
|
173 |
-
|
174 |
-
.wrap .sb-pack .sbp-radio-content {
|
175 |
-
display: block;
|
176 |
-
}
|
177 |
-
|
178 |
-
.wrap .sb-pack .sbp-radio-content label {
|
179 |
-
display: block !important;
|
180 |
-
}
|
181 |
-
|
182 |
-
.wrap .sb-pack .sbp-box hr {
|
183 |
-
margin-left: 70px;
|
184 |
-
}
|
185 |
-
|
186 |
-
.wrap .sb-pack .sbp-1 {
|
187 |
-
padding-top: 10px;
|
188 |
-
}
|
189 |
-
|
190 |
-
.wrap .sb-pack .sbp-2 {
|
191 |
-
padding-bottom: 15px;
|
192 |
-
}
|
193 |
-
|
194 |
-
.wrap .sb-pack .sbp-3 {
|
195 |
-
padding-top: 5px;
|
196 |
-
}
|
197 |
-
|
198 |
-
.wrap .sb-pack .sbp-title-div .sbp-title {
|
199 |
-
font-size: 23px;
|
200 |
-
font-weight: 300;
|
201 |
-
line-height: 26px;
|
202 |
-
padding-top: 16px;
|
203 |
-
padding-right: 15px;
|
204 |
-
display: block;
|
205 |
-
float: left;
|
206 |
-
}
|
207 |
-
|
208 |
-
.wrap .sb-pack .sbp-box {
|
209 |
-
background:#fff;
|
210 |
-
border: 1px solid #E5E5E5;
|
211 |
-
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
|
212 |
-
padding: 15px;
|
213 |
-
margin-bottom: 15px;
|
214 |
-
position: relative;
|
215 |
-
overflow: hidden;
|
216 |
-
}
|
217 |
-
|
218 |
-
.wrap .sb-pack .sbp-box p {
|
219 |
-
margin: 5px 0 5px 70px;
|
220 |
-
color: #777;
|
221 |
-
}
|
222 |
-
|
223 |
-
.wrap .sb-pack .sbp-infos {
|
224 |
-
display: block;
|
225 |
-
margin: 0 auto;
|
226 |
-
padding-left: 70px;
|
227 |
-
font-weight: 700;
|
228 |
-
color:#777;
|
229 |
-
}
|
230 |
-
|
231 |
-
.wrap .sb-pack .sbp-infos span {
|
232 |
-
color: #777;
|
233 |
-
font-weight: 400;
|
234 |
-
}
|
235 |
-
|
236 |
-
.wrap .sb-pack .sbp-infos-title {
|
237 |
-
font-weight: 700;
|
238 |
-
color: #777;
|
239 |
-
}
|
240 |
-
|
241 |
-
.wrap .sb-pack .sbp-box-legend, .wrap .sb-pack .sbp-box-version {
|
242 |
-
position: absolute;
|
243 |
-
left: 0;
|
244 |
-
top: 0;
|
245 |
-
height: 100%;
|
246 |
-
}
|
247 |
-
|
248 |
-
.wrap .sb-pack .sbp-box-version {
|
249 |
-
background: none repeat scroll 0% 0% #80828F;
|
250 |
-
padding: 20px 15px;
|
251 |
-
}
|
252 |
-
|
253 |
-
.wrap .sb-pack .sbp-box-legend {
|
254 |
-
background: none repeat scroll 0% 0% #FCC500;
|
255 |
-
padding: 15px 15px;
|
256 |
-
}
|
257 |
-
|
258 |
-
.wrap .sb-pack .sbp-box-legend:hover {
|
259 |
-
background-color: #F39C12;
|
260 |
-
}
|
261 |
-
|
262 |
-
.wrap .sb-pack .sbp-box-version:hover {
|
263 |
-
background-color: #6C6E79;
|
264 |
-
}
|
265 |
-
|
266 |
-
.wrap .sb-pack .sbp-icon-help, .wrap .sb-pack .sbp-icon-version {
|
267 |
-
color:#FFF;
|
268 |
-
font-size:25px;
|
269 |
-
}
|
270 |
-
|
271 |
-
.wrap .sb-pack .sbp-icon:before {
|
272 |
-
content: "\f185";
|
273 |
-
display: inline-block;
|
274 |
-
-webkit-font-smoothing: antialiased;
|
275 |
-
font: normal 36px/0.6 'dashicons';
|
276 |
-
vertical-align: sub;
|
277 |
-
color: #FA5148;
|
278 |
-
padding-right: 5px;
|
279 |
-
}
|
280 |
-
|
281 |
-
.wrap .sb-pack .sbp-icon-information:before {
|
282 |
-
content: "\f348";
|
283 |
-
display: inline-block;
|
284 |
-
-webkit-font-smoothing: antialiased;
|
285 |
-
font: normal 28px/1 'dashicons';
|
286 |
-
vertical-align: middle;
|
287 |
-
color: #C9D6E2;
|
288 |
-
padding-right: 5px;
|
289 |
-
}
|
290 |
-
|
291 |
-
.wrap .sb-pack label {
|
292 |
-
display: inline-block;
|
293 |
-
cursor: pointer;
|
294 |
-
position: relative;
|
295 |
-
padding-left: 35px;
|
296 |
-
font-size: 16px;
|
297 |
-
|
298 |
-
}
|
299 |
-
|
300 |
-
/*.wrap .sb-pack #sbp-css-content {
|
301 |
-
display: none;
|
302 |
-
}*/
|
303 |
-
|
304 |
-
.wrap .sb-pack label:before {
|
305 |
-
content: "\2717";
|
306 |
-
font-size: 16px;
|
307 |
-
-webkit-font-smoothing: antialiased;
|
308 |
-
text-align: center;
|
309 |
-
color: #fff;
|
310 |
-
display: inline-block;
|
311 |
-
width: 26px;
|
312 |
-
height: 26px;
|
313 |
-
margin-right: 10px;
|
314 |
-
position: absolute;
|
315 |
-
left: 0;
|
316 |
-
background: #C9D6E2;
|
317 |
-
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
318 |
-
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
319 |
-
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
320 |
-
border: 1px solid #B2BFCA;
|
321 |
-
}
|
322 |
-
|
323 |
-
.wrap .sb-pack input[type=checkbox],
|
324 |
-
.wrap .sb-pack input[type=radio] {
|
325 |
-
display: none;
|
326 |
-
}
|
327 |
-
|
328 |
-
/*.wrap .sb-pack .sbp-radio-content label:before {
|
329 |
-
content: "\2630";
|
330 |
-
font-size: 16px;
|
331 |
-
-webkit-font-smoothing: antialiased;
|
332 |
-
text-align: center;
|
333 |
-
color: #fff;
|
334 |
-
font-weight: 700;
|
335 |
-
display: inline-block;
|
336 |
-
width: 24px;
|
337 |
-
height: 24px;
|
338 |
-
line-height: 1.4;
|
339 |
-
margin-right: 10px;
|
340 |
-
position: absolute;
|
341 |
-
left: 0;
|
342 |
-
background: #C9D6E2;
|
343 |
-
border: 1px solid #9CA8B3;
|
344 |
-
}
|
345 |
-
|
346 |
-
.wrap .sb-pack input[type=radio]:checked + label:before {
|
347 |
-
content: "\2630";
|
348 |
-
background: none repeat scroll 0% 0% #2DCB73;
|
349 |
-
text-align: center;
|
350 |
-
font-weight: 700;
|
351 |
-
color: #fff;
|
352 |
-
border: 1px solid #1A9E51;
|
353 |
-
} */
|
354 |
-
|
355 |
-
.wrap .sb-pack input[type=checkbox]:checked + label:before {
|
356 |
-
content: "\2714";
|
357 |
-
background: #2DCB73;
|
358 |
-
text-shadow: 1px 1px 1px #148D44;
|
359 |
-
border: 1px solid #1A9E51;
|
360 |
-
font-size: 16px;
|
361 |
-
-webkit-font-smoothing: antialiased;
|
362 |
-
color: #fff;
|
363 |
-
text-align: center;
|
364 |
-
}
|
365 |
-
|
366 |
-
.wrap .sb-pack .sbp-icon-version:before {
|
367 |
-
content: "\f348";
|
368 |
-
display: inline-block;
|
369 |
-
-webkit-font-smoothing: antialiased;
|
370 |
-
font: normal 30px/1 'dashicons';
|
371 |
-
vertical-align: top;
|
372 |
-
}
|
373 |
-
|
374 |
-
.wrap .sb-pack .sbp-icon-help:before {
|
375 |
-
content: "\f123";
|
376 |
-
display: inline-block;
|
377 |
-
-webkit-font-smoothing: antialiased;
|
378 |
-
font: normal 30px/1 'dashicons';
|
379 |
-
vertical-align: top;
|
380 |
-
}
|
381 |
-
|
382 |
-
.wrap .sb-pack .sbp-stats {
|
383 |
-
font-size: 16px;
|
384 |
-
line-height: 1.5;
|
385 |
-
}
|
386 |
-
|
387 |
-
/* Jquery UI slider
|
388 |
-
-------------------------------------------------------------- */
|
389 |
-
|
390 |
-
.wrap .sb-pack.ui-state-default,
|
391 |
-
.wrap .sb-pack .ui-widget-content .ui-state-default,
|
392 |
-
.wrap .sb-pack .ui-widget-header .ui-state-default {
|
393 |
-
border:1px solid #1A9E51;
|
394 |
-
background-color:#2DCB73;
|
395 |
-
font-weight:400;
|
396 |
-
color:#555;
|
397 |
-
outline:0 none;
|
398 |
-
cursor:pointer;
|
399 |
-
}
|
400 |
-
.wrap .sb-pack .ui-state-default:before,
|
401 |
-
.wrap .sb-pack .ui-widget-content .ui-state-default:before,
|
402 |
-
.wrap .sb-pack .ui-widget-header .ui-state-default:before {
|
403 |
-
content:"\2630";
|
404 |
-
display:inline-block;
|
405 |
-
-webkit-font-smoothing:antialiased;
|
406 |
-
color:#fff;
|
407 |
-
font-weight:700;
|
408 |
-
text-shadow:0 1px #1A9E51;
|
409 |
-
line-height: 1.8em;
|
410 |
-
}
|
411 |
-
|
412 |
-
.wrap .sb-pack .ui-state-default a,
|
413 |
-
.wrap .sb-pack .ui-state-default a:link,
|
414 |
-
.wrap .sb-pack .ui-state-default a:visited {
|
415 |
-
color:#fff;
|
416 |
-
text-decoration:none;
|
417 |
-
}
|
418 |
-
|
419 |
-
.wrap .sb-pack .ui-state-focus,
|
420 |
-
.wrap .sb-pack .ui-state-hover,
|
421 |
-
.wrap .sb-pack .ui-widget-content .ui-state-focus,
|
422 |
-
.wrap .sb-pack .ui-widget-content .ui-state-hover,
|
423 |
-
.wrap .sb-pack .ui-widget-header .ui-state-focus,
|
424 |
-
.wrap .sb-pack .ui-widget-header .ui-state-hover {
|
425 |
-
background:#3CE281;
|
426 |
-
}
|
427 |
-
|
428 |
-
.wrap .sb-pack .ui-corner-all,
|
429 |
-
.wrap .sb-pack .ui-corner-top,
|
430 |
-
.wrap .sb-pack .ui-corner-left,
|
431 |
-
.wrap .sb-pack .ui-corner-tl {
|
432 |
-
border-top-left-radius: 0;
|
433 |
-
}
|
434 |
-
.wrap .sb-pack .ui-corner-all,
|
435 |
-
.wrap .sb-pack .ui-corner-top,
|
436 |
-
.wrap .sb-pack .ui-corner-right,
|
437 |
-
.wrap .sb-pack .ui-corner-tr {
|
438 |
-
border-top-right-radius: 0;
|
439 |
-
}
|
440 |
-
.wrap .sb-pack .ui-corner-bottom,
|
441 |
-
.wrap .sb-pack .ui-corner-left,
|
442 |
-
.wrap .sb-pack .ui-corner-bl {
|
443 |
-
border-bottom-left-radius: 0;
|
444 |
-
}
|
445 |
-
.wrap .sb-pack .ui-corner-all,
|
446 |
-
.wrap .sb-pack .ui-corner-bottom,
|
447 |
-
.wrap .sb-pack .ui-corner-right,
|
448 |
-
.wrap .sb-pack .ui-corner-br {
|
449 |
-
border-bottom-right-radius: 0;
|
450 |
-
}
|
451 |
-
|
452 |
-
.wrap .sb-pack .ui-corner-all,
|
453 |
-
.wrap .sb-pack .ui-corner-bottom,
|
454 |
-
.wrap .sb-pack .ui-corner-left,
|
455 |
-
.wrap .sb-pack .ui-corner-bl {
|
456 |
-
border-bottom-left-radius: 0;
|
457 |
-
}
|
458 |
-
|
459 |
-
.wrap .sb-pack .ui-slider-horizontal {
|
460 |
-
height:1.3em;
|
461 |
-
}
|
462 |
-
|
463 |
-
.wrap .sb-pack .ui-slider .ui-slider-handle {
|
464 |
-
width:1.8em;
|
465 |
-
height:1.8em;
|
466 |
-
cursor:pointer;
|
467 |
-
text-align:center;
|
468 |
-
}
|
469 |
-
|
470 |
-
.wrap .sb-pack .ui-widget-content {
|
471 |
-
-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);
|
472 |
-
-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);
|
473 |
-
box-shadow:inset 0 1px 2px rgba(0,0,0,.1);
|
474 |
-
border:1px solid #B2BFCA;
|
475 |
-
background:#F1F2F7;
|
476 |
-
color:#222
|
477 |
-
}
|
478 |
-
/* Progress Bars
|
479 |
-
-------------------------------------------------------------- */
|
480 |
-
.wrap .sb-pack .sbp-progress.time,
|
481 |
-
.wrap .sb-pack .sbp-progress.queries {
|
482 |
-
height: 30px;
|
483 |
-
width: 77%;
|
484 |
-
display: inline-block;
|
485 |
-
position: relative;
|
486 |
-
background-color: #F1F2F7;
|
487 |
-
overflow: hidden;
|
488 |
-
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
489 |
-
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
490 |
-
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
491 |
-
}
|
492 |
-
.wrap .sbp-progress.time > span,
|
493 |
-
.wrap .sbp-progress.queries > span {
|
494 |
-
background-color: #7EDBA5;
|
495 |
-
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #7EDBA5),color-stop(1, #2DCB73));
|
496 |
-
background-image: -webkit-linear-gradient(top, #7EDBA5, #2DCB73);
|
497 |
-
background-image: -moz-linear-gradient(top, #7EDBA5, #2DCB73);
|
498 |
-
background-image: -ms-linear-gradient(top, #7EDBA5, #2DCB73);
|
499 |
-
background-image: -o-linear-gradient(top, #7EDBA5, #f36d0a);
|
500 |
-
color:#fff;
|
501 |
-
width: 0%;
|
502 |
-
max-width: 98%;
|
503 |
-
float: left;
|
504 |
-
display: block;
|
505 |
-
height: 100%;
|
506 |
-
position: relative;
|
507 |
-
overflow: hidden;
|
508 |
-
}
|
509 |
-
|
510 |
-
.wrap .sb-pack .sbp-progress.time > span {
|
511 |
-
-webkit-animation: progress-bar-time 2s 1 forwards;
|
512 |
-
-moz-animation: progress-bar-time 2s 1 forwards;
|
513 |
-
-ms-animation: progress-bar-time 2s 1 forwards;
|
514 |
-
-o-animation: progress-bar-time 2s 1 forwards;
|
515 |
-
animation: progress-bar-time 2s 1 forwards;
|
516 |
-
|
517 |
-
}
|
518 |
-
|
519 |
-
.wrap .sb-pack .sbp-progress.queries > span {
|
520 |
-
-webkit-animation: progress-bar-queries 2s 1 forwards;
|
521 |
-
-moz-animation: progress-bar-queries 2s 1 forwards;
|
522 |
-
-ms-animation: progress-bar-queries 2s 1 forwards;
|
523 |
-
-o-animation: progress-bar-queries 2s 1 forwards;
|
524 |
-
animation: progress-bar-queries 2s 1 forwards;
|
525 |
-
|
526 |
-
}
|
527 |
-
|
528 |
-
.wrap .sb-pack .sbp-values {
|
529 |
-
float: right;
|
530 |
-
padding: 0 5px;
|
531 |
-
background-color: #1AB4EF;
|
532 |
-
color: #fff;
|
533 |
-
width: 18%;
|
534 |
-
height: 30px;
|
535 |
-
line-height: 30px;
|
536 |
-
text-align: center;
|
537 |
-
text-shadow: 0px -2px #1AB4EF;
|
538 |
-
}
|
539 |
-
|
540 |
-
.wrap .sb-pack .sbp-numbers {
|
541 |
-
-webkit-animation: opacity 2s; /* Safari and Chrome */
|
542 |
-
-moz-animation: opacity 2s; /* Firefox */
|
543 |
-
-ms-animation: opacity 2s; /* Internet Explorer */
|
544 |
-
-o-animation: opacity 2s; /* Opera */
|
545 |
-
animation: opacity 2s;
|
546 |
-
transition-delay: 2s;
|
547 |
-
-moz-transition-delay: 2s; /* Firefox 4 */
|
548 |
-
-webkit-transition-delay: 2s; /* Safari and Chrome */
|
549 |
-
-o-transition-delay: 2s; /* Opera */
|
550 |
-
font-size: 16px;
|
551 |
-
}
|
552 |
-
|
553 |
-
@keyframes opacity {
|
554 |
-
from { opacity:0; }
|
555 |
-
to { opacity: 1; }
|
556 |
-
}
|
557 |
-
|
558 |
-
/* Firefox */
|
559 |
-
@-moz-keyframes opacity {
|
560 |
-
from { opacity:0; }
|
561 |
-
to { opacity: 1; }
|
562 |
-
}
|
563 |
-
|
564 |
-
/* Safari and Chrome */
|
565 |
-
@-webkit-keyframes opacity {
|
566 |
-
from { opacity:0; }
|
567 |
-
to { opacity: 1; }
|
568 |
-
}
|
569 |
-
|
570 |
-
/* Internet Explorer */
|
571 |
-
@-ms-keyframes opacity {
|
572 |
-
from { opacity:0; }
|
573 |
-
to { opacity: 1; }
|
574 |
-
}
|
575 |
-
|
576 |
-
/* Opera */
|
577 |
-
@-o-keyframes opacity {
|
578 |
-
from { opacity:0; }
|
579 |
-
to { opacity: 1; }
|
580 |
-
}
|
581 |
-
|
582 |
-
@media screen and (max-width: 783px) {
|
583 |
-
.wrap .sb-pack input.regular-text {
|
584 |
-
width: 14em;
|
585 |
-
}
|
586 |
-
}
|
587 |
-
|
588 |
-
@media screen and (min-width: 784px) {
|
589 |
-
.wrap .sb-pack input.regular-text {
|
590 |
-
width: 45em;
|
591 |
-
}
|
592 |
-
}
|
593 |
-
|
594 |
-
/* Feedback Box */
|
595 |
-
.feedback-box {
|
596 |
-
border: 1px dashed #555;
|
597 |
-
background: #fff;
|
598 |
-
width: 100%;
|
599 |
-
padding: 40px;
|
600 |
-
text-align: center;
|
601 |
-
margin-top: 15px;
|
602 |
-
box-sizing: border-box;
|
603 |
-
}
|
604 |
-
.feedback-box .button.button-feedback {
|
605 |
-
padding: 10px 40px;
|
606 |
-
height: initial;
|
607 |
-
}
|
608 |
-
|
609 |
-
#sab-current-image img {
|
610 |
-
max-width: 130px;
|
611 |
-
height: auto;
|
612 |
-
}
|
613 |
-
.feedback-box h3 {
|
614 |
-
font-weight: 700;
|
615 |
-
}
|
616 |
-
.feedback-box h3 > img {
|
617 |
-
width: 30px;
|
618 |
-
}
|
619 |
-
.feedback-box > p {
|
620 |
-
max-width: 720px;
|
621 |
-
margin: 0 auto;
|
622 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/vendors/jquery-ui/images/ui-icons_444444_256x240.png
ADDED
Binary file
|
css/vendors/jquery-ui/images/ui-icons_555555_256x240.png
ADDED
Binary file
|
css/vendors/jquery-ui/images/ui-icons_777620_256x240.png
ADDED
Binary file
|
css/vendors/jquery-ui/images/ui-icons_777777_256x240.png
ADDED
Binary file
|
css/vendors/jquery-ui/images/ui-icons_cc0000_256x240.png
ADDED
Binary file
|
css/vendors/jquery-ui/images/ui-icons_ffffff_256x240.png
ADDED
Binary file
|
css/vendors/jquery-ui/jquery-ui.min.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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}
|
feedback/class-epsilon-feedback.php
ADDED
@@ -0,0 +1,271 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Epsilon_Feedback {
|
4 |
+
|
5 |
+
private $plugin_file = '';
|
6 |
+
private $plugin_name = '';
|
7 |
+
|
8 |
+
function __construct( $_plugin_file ) {
|
9 |
+
|
10 |
+
$this->plugin_file = $_plugin_file;
|
11 |
+
$this->plugin_name = basename( $this->plugin_file, '.php' );
|
12 |
+
|
13 |
+
// Deactivation
|
14 |
+
add_filter( 'plugin_action_links_' . plugin_basename( $this->plugin_file ), array(
|
15 |
+
$this,
|
16 |
+
'filter_action_links',
|
17 |
+
) );
|
18 |
+
add_action( 'admin_footer-plugins.php', array( $this, 'goodbye_ajax' ) );
|
19 |
+
add_action( 'wp_ajax_epsilon_deactivate_plugin', array( $this, 'epsilon_deactivate_plugin_callback' ) );
|
20 |
+
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Filter the deactivation link to allow us to present a form when the user deactivates the plugin
|
25 |
+
*
|
26 |
+
* @since 1.0.0
|
27 |
+
*/
|
28 |
+
public function filter_action_links( $links ) {
|
29 |
+
|
30 |
+
if ( isset( $links['deactivate'] ) ) {
|
31 |
+
$deactivation_link = $links['deactivate'];
|
32 |
+
// Insert an onClick action to allow form before deactivating
|
33 |
+
$deactivation_link = str_replace( '<a ', '<div class="epsilon-deactivate-form-wrapper"><span class="epsilon-deactivate-form" id="epsilon-deactivate-form-' . esc_attr( $this->plugin_name ) . '"></span></div><a onclick="javascript:event.preventDefault();" id="epsilon-deactivate-link-' . esc_attr( $this->plugin_name ) . '" ', $deactivation_link );
|
34 |
+
$links['deactivate'] = $deactivation_link;
|
35 |
+
}
|
36 |
+
|
37 |
+
return $links;
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Form text strings
|
42 |
+
* These can be filtered
|
43 |
+
*
|
44 |
+
* @since 1.0.0
|
45 |
+
*/
|
46 |
+
public function goodbye_ajax() {
|
47 |
+
// Get our strings for the form
|
48 |
+
$form = $this->get_form_info();
|
49 |
+
|
50 |
+
// Build the HTML to go in the form
|
51 |
+
$html = '<div class="epsilon-deactivate-form-head"><strong>' . esc_html( $form['heading'] ) . '</strong></div>';
|
52 |
+
$html .= '<div class="epsilon-deactivate-form-body"><p>' . esc_html( $form['body'] ) . '</p>';
|
53 |
+
if ( is_array( $form['options'] ) ) {
|
54 |
+
$html .= '<div class="epsilon-deactivate-options"><p>';
|
55 |
+
foreach ( $form['options'] as $key => $option ) {
|
56 |
+
if ( 'features' == $key ) {
|
57 |
+
$html .= '<input type="radio" name="epsilon-deactivate-reason" checked="checked" id="' . esc_attr( $key ) . '" value="' . esc_attr( $key ) . '"> <label for="' . esc_attr( $key ) . '">' . esc_attr( $option ) . '</label><br>';
|
58 |
+
} else {
|
59 |
+
$html .= '<input type="radio" name="epsilon-deactivate-reason" id="' . esc_attr( $key ) . '" value="' . esc_attr( $key ) . '"> <label for="' . esc_attr( $key ) . '">' . esc_attr( $option ) . '</label><br>';
|
60 |
+
}
|
61 |
+
}
|
62 |
+
$html .= '</p><label id="epsilon-deactivate-details-label" for="epsilon-deactivate-reasons"><strong>' . esc_html( $form['details'] ) . '</strong></label><textarea name="epsilon-deactivate-details" id="epsilon-deactivate-details" rows="2" style="width:100%"></textarea>';
|
63 |
+
$html .= '<input type="checkbox" name="epsilon-deactivate-tracking" checked="" id="allow-tracking" value="yes"> <label for="allow-tracking">' . esc_html__( 'Allow us to get more information in order to improve our plugin', 'sb-pack' ) . '</label><br>';
|
64 |
+
$html .= '</div><!-- .epsilon-deactivate-options -->';
|
65 |
+
}
|
66 |
+
$html .= '</div><!-- .epsilon-deactivate-form-body -->';
|
67 |
+
$html .= '<p class="deactivating-spinner"><span class="spinner"></span> ' . __( 'Submitting form', 'sb-pack' ) . '</p>';
|
68 |
+
$html .= '<div class="epsilon-deactivate-form-footer"><p><a id="epsilon-deactivate-plugin" href="#">' . __( 'Just Deactivate', 'sb-pack' ) . '</a><a id="epsilon-deactivate-submit-form" class="button button-primary" href="#">' . __( 'Submit and Deactivate', 'sb-pack' ) . '</a></p></div>'
|
69 |
+
?>
|
70 |
+
<div class="epsilon-deactivate-form-bg"></div>
|
71 |
+
<style type="text/css">
|
72 |
+
.epsilon-deactivate-form-active .epsilon-deactivate-form-bg {
|
73 |
+
background: rgba(0, 0, 0, .5);
|
74 |
+
position: fixed;
|
75 |
+
top: 0;
|
76 |
+
left: 0;
|
77 |
+
width: 100%;
|
78 |
+
height: 100%;
|
79 |
+
}
|
80 |
+
|
81 |
+
.epsilon-deactivate-form-wrapper {
|
82 |
+
position: relative;
|
83 |
+
z-index: 999;
|
84 |
+
display: none;
|
85 |
+
}
|
86 |
+
|
87 |
+
.epsilon-deactivate-form-active .epsilon-deactivate-form-wrapper {
|
88 |
+
display: block;
|
89 |
+
}
|
90 |
+
|
91 |
+
.epsilon-deactivate-form {
|
92 |
+
display: none;
|
93 |
+
}
|
94 |
+
|
95 |
+
.epsilon-deactivate-form-active .epsilon-deactivate-form {
|
96 |
+
position: absolute;
|
97 |
+
bottom: 30px;
|
98 |
+
left: 0;
|
99 |
+
max-width: 400px;
|
100 |
+
background: #fff;
|
101 |
+
white-space: normal;
|
102 |
+
}
|
103 |
+
|
104 |
+
.epsilon-deactivate-form-head {
|
105 |
+
background: #272754;
|
106 |
+
color: #fff;
|
107 |
+
padding: 8px 18px;
|
108 |
+
}
|
109 |
+
|
110 |
+
.epsilon-deactivate-form-body {
|
111 |
+
padding: 8px 18px;
|
112 |
+
color: #444;
|
113 |
+
}
|
114 |
+
|
115 |
+
.deactivating-spinner {
|
116 |
+
display: none;
|
117 |
+
}
|
118 |
+
|
119 |
+
.deactivating-spinner .spinner {
|
120 |
+
float: none;
|
121 |
+
margin: 4px 4px 0 18px;
|
122 |
+
vertical-align: bottom;
|
123 |
+
visibility: visible;
|
124 |
+
}
|
125 |
+
|
126 |
+
.epsilon-deactivate-form-footer {
|
127 |
+
padding: 8px 18px;
|
128 |
+
}
|
129 |
+
|
130 |
+
.epsilon-deactivate-form-footer p {
|
131 |
+
display: flex;
|
132 |
+
align-items: center;
|
133 |
+
justify-content: space-between;
|
134 |
+
}
|
135 |
+
|
136 |
+
.epsilon-deactivate-form.process-response .epsilon-deactivate-form-body,
|
137 |
+
.epsilon-deactivate-form.process-response .epsilon-deactivate-form-footer {
|
138 |
+
position: relative;
|
139 |
+
}
|
140 |
+
|
141 |
+
.epsilon-deactivate-form.process-response .epsilon-deactivate-form-body:after,
|
142 |
+
.epsilon-deactivate-form.process-response .epsilon-deactivate-form-footer:after {
|
143 |
+
content: "";
|
144 |
+
display: block;
|
145 |
+
position: absolute;
|
146 |
+
top: 0;
|
147 |
+
left: 0;
|
148 |
+
width: 100%;
|
149 |
+
height: 100%;
|
150 |
+
background-color: rgba(255, 255, 255, .5);
|
151 |
+
}
|
152 |
+
</style>
|
153 |
+
<script>
|
154 |
+
jQuery( document ).ready( function( $ ) {
|
155 |
+
var deactivateURL = $( "#epsilon-deactivate-link-<?php echo esc_attr( $this->plugin_name ); ?>" ),
|
156 |
+
formContainer = $( '#epsilon-deactivate-form-<?php echo esc_attr( $this->plugin_name ); ?>' ),
|
157 |
+
detailsStrings = {
|
158 |
+
'setup': '<?php echo __( 'What was the dificult part ?', 'sb-pack' ) ?>',
|
159 |
+
'documentation': '<?php echo __( 'What can we describe more ?', 'sb-pack' ) ?>',
|
160 |
+
'features': '<?php echo __( 'How could we improve ?', 'sb-pack' ) ?>',
|
161 |
+
'better-plugin': '<?php echo __( 'Can you mention it ?', 'sb-pack' ) ?>',
|
162 |
+
'incompatibility': '<?php echo __( 'With what plugin or theme is incompatible ?', 'sb-pack' ) ?>',
|
163 |
+
};
|
164 |
+
|
165 |
+
$( deactivateURL ).on( "click", function() {
|
166 |
+
// We'll send the user to this deactivation link when they've completed or dismissed the form
|
167 |
+
var url = deactivateURL.attr( 'href' );
|
168 |
+
$( 'body' ).toggleClass( 'epsilon-deactivate-form-active' );
|
169 |
+
formContainer.fadeIn();
|
170 |
+
formContainer.html( '<?php echo $html; ?>' );
|
171 |
+
|
172 |
+
formContainer.on( 'change', 'input[name="epsilon-deactivate-reason"]', function() {
|
173 |
+
var detailsLabel = formContainer.find( '#epsilon-deactivate-details-label strong' );
|
174 |
+
var value = formContainer.find( 'input[name="epsilon-deactivate-reason"]:checked' ).val();
|
175 |
+
detailsLabel.text( detailsStrings[ value ] );
|
176 |
+
} );
|
177 |
+
|
178 |
+
formContainer.on( 'click', '#epsilon-deactivate-submit-form', function( e ) {
|
179 |
+
var data = {
|
180 |
+
'action': 'epsilon_deactivate_plugin',
|
181 |
+
'security': "<?php echo wp_create_nonce( 'epsilon_deactivate_plugin' ); ?>",
|
182 |
+
'dataType': "json"
|
183 |
+
};
|
184 |
+
e.preventDefault();
|
185 |
+
// As soon as we click, the body of the form should disappear
|
186 |
+
formContainer.addClass( 'process-response' );
|
187 |
+
// Fade in spinner
|
188 |
+
formContainer.find( ".deactivating-spinner" ).fadeIn();
|
189 |
+
|
190 |
+
data[ 'reason' ] = formContainer.find( 'input[name="epsilon-deactivate-reason"]:checked' ).val();
|
191 |
+
data[ 'details' ] = formContainer.find( '#epsilon-deactivate-details' ).val();
|
192 |
+
data[ 'tracking' ] = formContainer.find( '#allow-tracking:checked' ).length;
|
193 |
+
|
194 |
+
$.post(
|
195 |
+
ajaxurl,
|
196 |
+
data,
|
197 |
+
function( response ) {
|
198 |
+
// Redirect to original deactivation URL
|
199 |
+
window.location.href = url;
|
200 |
+
}
|
201 |
+
);
|
202 |
+
} );
|
203 |
+
|
204 |
+
formContainer.on( 'click', '#epsilon-deactivate-plugin', function( e ) {
|
205 |
+
e.preventDefault();
|
206 |
+
window.location.href = url;
|
207 |
+
} );
|
208 |
+
|
209 |
+
// If we click outside the form, the form will close
|
210 |
+
$( '.epsilon-deactivate-form-bg' ).on( 'click', function() {
|
211 |
+
formContainer.fadeOut();
|
212 |
+
$( 'body' ).removeClass( 'epsilon-deactivate-form-active' );
|
213 |
+
} );
|
214 |
+
} );
|
215 |
+
} );
|
216 |
+
</script>
|
217 |
+
<?php }
|
218 |
+
|
219 |
+
/*
|
220 |
+
* Form text strings
|
221 |
+
* These are non-filterable and used as fallback in case filtered strings aren't set correctly
|
222 |
+
* @since 1.0.0
|
223 |
+
*/
|
224 |
+
public function get_form_info() {
|
225 |
+
$form = array();
|
226 |
+
$form['heading'] = __( 'Sorry to see you go', 'sb-pack' );
|
227 |
+
$form['body'] = __( 'Before you deactivate the plugin, would you quickly give us your reason for doing so?', 'sb-pack' );
|
228 |
+
$form['options'] = array(
|
229 |
+
'setup' => __( 'Set up is too difficult', 'sb-pack' ),
|
230 |
+
'documentation' => __( 'Lack of documentation', 'sb-pack' ),
|
231 |
+
'features' => __( 'Not the features I wanted', 'sb-pack' ),
|
232 |
+
'better-plugin' => __( 'Found a better plugin', 'sb-pack' ),
|
233 |
+
'incompatibility' => __( 'Incompatible with theme or plugin', 'sb-pack' ),
|
234 |
+
);
|
235 |
+
$form['details'] = __( 'How could we improve ?', 'sb-pack' );
|
236 |
+
|
237 |
+
return $form;
|
238 |
+
}
|
239 |
+
|
240 |
+
public function epsilon_deactivate_plugin_callback() {
|
241 |
+
|
242 |
+
check_ajax_referer( 'epsilon_deactivate_plugin', 'security' );
|
243 |
+
|
244 |
+
if ( isset( $_POST['reason'] ) && isset( $_POST['details'] ) && isset( $_POST['tracking'] ) ) {
|
245 |
+
require_once 'class-epsilon-plugin-request.php';
|
246 |
+
$args = array(
|
247 |
+
'reason' => $_POST['reason'],
|
248 |
+
'details' => $_POST['details'],
|
249 |
+
'tracking' => $_POST['tracking'],
|
250 |
+
);
|
251 |
+
$request = new Epsilon_Plugin_Request( $this->plugin_file, $args );
|
252 |
+
if ( $request->request_successful ) {
|
253 |
+
echo json_encode( array(
|
254 |
+
'status' => 'ok',
|
255 |
+
) );
|
256 |
+
} else {
|
257 |
+
echo json_encode( array(
|
258 |
+
'status' => 'nok',
|
259 |
+
) );
|
260 |
+
}
|
261 |
+
} else {
|
262 |
+
echo json_encode( array(
|
263 |
+
'status' => 'ok',
|
264 |
+
) );
|
265 |
+
}
|
266 |
+
|
267 |
+
die();
|
268 |
+
|
269 |
+
}
|
270 |
+
|
271 |
+
}
|
feedback/class-epsilon-plugin-request.php
ADDED
@@ -0,0 +1,225 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Epsilon_Plugin_Request {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Url for the request
|
7 |
+
*
|
8 |
+
* @var string
|
9 |
+
*/
|
10 |
+
private $url = 'https://tamewp.com/';
|
11 |
+
/**
|
12 |
+
* Api endpoint
|
13 |
+
*
|
14 |
+
* @var string
|
15 |
+
*/
|
16 |
+
private $endpoint = 'wp-json/epsilon/v1/add-tracking-data';
|
17 |
+
/**
|
18 |
+
* Private data
|
19 |
+
*
|
20 |
+
* @var array
|
21 |
+
*/
|
22 |
+
private $data = array(
|
23 |
+
'server' => array(),
|
24 |
+
'user' => array(),
|
25 |
+
'wordpress' => array(
|
26 |
+
'deactivated_plugin' => array(),
|
27 |
+
),
|
28 |
+
);
|
29 |
+
/**
|
30 |
+
* Plugin file
|
31 |
+
*
|
32 |
+
* @var string
|
33 |
+
*/
|
34 |
+
private $plugin_file = '';
|
35 |
+
|
36 |
+
private $allow_tracking = 0;
|
37 |
+
|
38 |
+
public $request_successful = false;
|
39 |
+
|
40 |
+
function __construct( $_plugin_file, $args ) {
|
41 |
+
|
42 |
+
// Set variables
|
43 |
+
$this->allow_tracking = $args['tracking'];
|
44 |
+
$this->plugin_file = $_plugin_file;
|
45 |
+
$this->data['unique'] = md5( home_url() . get_bloginfo( 'admin_email' ) );
|
46 |
+
$this->data['wordpress']['deactivated_plugin']['uninstall_reason'] = $args['reason'];
|
47 |
+
$this->data['wordpress']['deactivated_plugin']['uninstall_details'] = $args['details'];
|
48 |
+
|
49 |
+
// Start collecting data
|
50 |
+
$this->_collect_data();
|
51 |
+
$this->_generate_url();
|
52 |
+
$this->request_successful = $this->_send_request();
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Collect all data for the request.
|
57 |
+
*
|
58 |
+
*/
|
59 |
+
private function _collect_data() {
|
60 |
+
|
61 |
+
$current_plugin = get_plugin_data( $this->plugin_file );
|
62 |
+
|
63 |
+
// Plugin data
|
64 |
+
$this->data['wordpress']['deactivated_plugin']['slug'] = $current_plugin['TextDomain'];
|
65 |
+
$this->data['wordpress']['deactivated_plugin']['name'] = $current_plugin['Name'];
|
66 |
+
$this->data['wordpress']['deactivated_plugin']['version'] = $current_plugin['Version'];
|
67 |
+
$this->data['wordpress']['deactivated_plugin']['author'] = $current_plugin['AuthorName'];
|
68 |
+
|
69 |
+
if ( $this->allow_tracking ) {
|
70 |
+
$this->_collect_wordpress_data();
|
71 |
+
$this->_collect_server_data();
|
72 |
+
$this->_collect_user_data();
|
73 |
+
}
|
74 |
+
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Collect WordPress data.
|
79 |
+
*
|
80 |
+
*/
|
81 |
+
private function _collect_wordpress_data() {
|
82 |
+
$this->data['wordpress']['locale'] = ( get_bloginfo( 'version' ) >= 4.7 ) ? get_user_locale() : get_locale();
|
83 |
+
$this->data['wordpress']['wp_version'] = get_bloginfo( 'version' );
|
84 |
+
$this->data['wordpress']['multisite'] = is_multisite();
|
85 |
+
|
86 |
+
$this->data['wordpress']['themes'] = $this->get_themes();
|
87 |
+
$this->data['wordpress']['plugins'] = $this->get_plugins();
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Collect server data.
|
92 |
+
*
|
93 |
+
*/
|
94 |
+
private function _collect_server_data() {
|
95 |
+
$this->data['server']['server'] = isset( $_SERVER['SERVER_SOFTWARE'] ) ? $_SERVER['SERVER_SOFTWARE'] : '';
|
96 |
+
$this->data['server']['php_version'] = phpversion();
|
97 |
+
$this->data['server']['url'] = home_url();
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Collect user data.
|
102 |
+
*
|
103 |
+
*/
|
104 |
+
private function _collect_user_data() {
|
105 |
+
$admin = get_user_by( 'email', get_bloginfo( 'admin_email' ) );
|
106 |
+
if ( ! $admin ) {
|
107 |
+
$this->data['user']['email'] = '';
|
108 |
+
$this->data['user']['first_name'] = '';
|
109 |
+
$this->data['user']['last_name'] = '';
|
110 |
+
}else{
|
111 |
+
$this->data['user']['email'] = get_bloginfo( 'admin_email' );
|
112 |
+
$this->data['user']['first_name'] = $admin->first_name;
|
113 |
+
$this->data['user']['last_name'] = $admin->last_name;
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Get current themes
|
119 |
+
*
|
120 |
+
* @return array
|
121 |
+
*/
|
122 |
+
private function get_themes() {
|
123 |
+
$theme = wp_get_theme();
|
124 |
+
|
125 |
+
return array(
|
126 |
+
'installed' => $this->_get_installed_themes(),
|
127 |
+
'active' => array(
|
128 |
+
'slug' => get_stylesheet(),
|
129 |
+
'name' => $theme->get( 'Name' ),
|
130 |
+
'version' => $theme->get( 'Version' ),
|
131 |
+
'author' => $theme->get( 'Author' ),
|
132 |
+
),
|
133 |
+
);
|
134 |
+
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Get an array of installed themes
|
138 |
+
*/
|
139 |
+
private function _get_installed_themes() {
|
140 |
+
$installed = wp_get_themes();
|
141 |
+
$theme = get_stylesheet();
|
142 |
+
$arr = array();
|
143 |
+
|
144 |
+
foreach ( $installed as $slug => $info ) {
|
145 |
+
if ( $slug === $theme ) {
|
146 |
+
continue;
|
147 |
+
}
|
148 |
+
$arr[ $slug ] = array(
|
149 |
+
'slug' => $slug,
|
150 |
+
'name' => $info->get( 'Name' ),
|
151 |
+
'version' => $info->get( 'Version' ),
|
152 |
+
'author' => $info->get( 'Author' )
|
153 |
+
);
|
154 |
+
};
|
155 |
+
|
156 |
+
return $arr;
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Get a list of installed plugins
|
161 |
+
*/
|
162 |
+
private function get_plugins() {
|
163 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
164 |
+
include ABSPATH . '/wp-admin/includes/plugin.php';
|
165 |
+
}
|
166 |
+
|
167 |
+
$plugins = get_plugins();
|
168 |
+
$option = get_option( 'active_plugins', array() );
|
169 |
+
$active = array();
|
170 |
+
$installed = array();
|
171 |
+
foreach ( $plugins as $id => $info ) {
|
172 |
+
if ( in_array( $id, $active ) ) {
|
173 |
+
continue;
|
174 |
+
}
|
175 |
+
|
176 |
+
$id = explode( '/', $id );
|
177 |
+
$id = ucwords( str_replace( '-', ' ', $id[0] ) );
|
178 |
+
|
179 |
+
$installed[] = $id;
|
180 |
+
}
|
181 |
+
|
182 |
+
foreach ( $option as $id ) {
|
183 |
+
$id = explode( '/', $id );
|
184 |
+
$id = ucwords( str_replace( '-', ' ', $id[0] ) );
|
185 |
+
|
186 |
+
$active[] = $id;
|
187 |
+
}
|
188 |
+
|
189 |
+
return array(
|
190 |
+
'installed' => $installed,
|
191 |
+
'active' => $active,
|
192 |
+
);
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Generate the url
|
197 |
+
*/
|
198 |
+
protected function _generate_url() {
|
199 |
+
$this->url = $this->url . $this->endpoint;
|
200 |
+
}
|
201 |
+
|
202 |
+
/**
|
203 |
+
* Send dat to server.
|
204 |
+
*
|
205 |
+
*/
|
206 |
+
private function _send_request() {
|
207 |
+
|
208 |
+
$request = wp_remote_post( $this->url, array(
|
209 |
+
'method' => 'POST',
|
210 |
+
'timeout' => 20,
|
211 |
+
'redirection' => 5,
|
212 |
+
'httpversion' => '1.1',
|
213 |
+
'blocking' => true,
|
214 |
+
'body' => $this->data,
|
215 |
+
'user-agent' => 'MT/EPSILON-CUSTOMER-TRACKING/' . esc_url( home_url() )
|
216 |
+
) );
|
217 |
+
|
218 |
+
if ( is_wp_error( $request ) ) {
|
219 |
+
return false;
|
220 |
+
}
|
221 |
+
|
222 |
+
return true;
|
223 |
+
|
224 |
+
}
|
225 |
+
}
|
inc/core.php
CHANGED
@@ -1,538 +1,611 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*--------------------------------------------------------------------------------------------------------
|
4 |
-
Plugin Core Functions
|
5 |
-
---------------------------------------------------------------------------------------------------------*/
|
6 |
-
|
7 |
-
if( !class_exists( 'Speed_Booster_Pack_Core' ) ) {
|
8 |
-
|
9 |
-
class Speed_Booster_Pack_Core {
|
10 |
-
|
11 |
-
public function __construct() {
|
12 |
-
|
13 |
-
global $sbp_options;
|
14 |
-
|
15 |
-
add_action( 'wp_enqueue_scripts', array( $this, '
|
16 |
-
|
17 |
-
|
18 |
-
add_action( '
|
19 |
-
|
20 |
-
|
21 |
-
add_action( '
|
22 |
-
add_action( '
|
23 |
-
|
24 |
-
|
25 |
-
$this->sbp_css_optimizer(); // CSS Optimizer functions
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
//
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
if ( !is_admin()
|
62 |
-
|
63 |
-
}
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
if ( !
|
70 |
-
add_filter( '
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
}
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
}
|
393 |
-
|
394 |
-
|
395 |
-
/*--------------------------------------------------------------------------------------------------------
|
396 |
-
|
397 |
-
---------------------------------------------------------------------------------------------------------*/
|
398 |
-
|
399 |
-
function
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
}
|
463 |
-
|
464 |
-
|
465 |
-
$
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
538 |
} // END if(!class_exists('Speed_Booster_Pack_Core'))
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*--------------------------------------------------------------------------------------------------------
|
4 |
+
Plugin Core Functions
|
5 |
+
---------------------------------------------------------------------------------------------------------*/
|
6 |
+
|
7 |
+
if ( ! class_exists( 'Speed_Booster_Pack_Core' ) ) {
|
8 |
+
|
9 |
+
class Speed_Booster_Pack_Core {
|
10 |
+
|
11 |
+
public function __construct() {
|
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 |
+
add_action( 'init', array( $this, 'sbp_show_page_load_stats' ), 999 );
|
21 |
+
add_action( 'after_setup_theme', array( $this, 'sbp_junk_header_tags' ) );
|
22 |
+
add_action( 'init', array( $this, 'sbp_init' ) );
|
23 |
+
|
24 |
+
|
25 |
+
$this->sbp_css_optimizer(); // CSS Optimizer functions
|
26 |
+
|
27 |
+
|
28 |
+
// Use Google Libraries
|
29 |
+
if ( ! is_admin() and isset( $sbp_options['use_google_libs'] ) ) {
|
30 |
+
$this->sbp_use_google_libraries();
|
31 |
+
}
|
32 |
+
|
33 |
+
|
34 |
+
|
35 |
+
// Minifier
|
36 |
+
if ( ! is_admin() and isset( $sbp_options['minify_html_js'] ) ) {
|
37 |
+
$this->sbp_minifier();
|
38 |
+
}
|
39 |
+
|
40 |
+
// Defer parsing of JavaScript
|
41 |
+
if ( ! is_admin() and isset( $sbp_options['defer_parsing'] ) ) {
|
42 |
+
add_filter( 'script_loader_tag', array( $this, 'sbp_defer_parsing_of_js' ), 10, 3 );
|
43 |
+
}
|
44 |
+
|
45 |
+
// Remove query strings from static resources
|
46 |
+
if ( ! is_admin() and isset( $sbp_options['query_strings'] ) ) {
|
47 |
+
add_filter( 'script_loader_src', array( $this, 'sbp_remove_query_strings' ), 15, 1 );
|
48 |
+
add_filter( 'style_loader_src', array( $this, 'sbp_remove_query_strings' ), 15, 1 );
|
49 |
+
}
|
50 |
+
|
51 |
+
|
52 |
+
// JPEG Compression filter
|
53 |
+
add_filter( 'jpeg_quality', array( $this, 'filter_image_quality' ) );
|
54 |
+
add_filter( 'wp_editor_set_quality', array( $this, 'filter_image_quality' ) );
|
55 |
+
|
56 |
+
|
57 |
+
/**
|
58 |
+
* @since 3.7
|
59 |
+
*/
|
60 |
+
// Disable emojis
|
61 |
+
if ( ! is_admin() && isset( $sbp_options['remove_emojis'] ) ) {
|
62 |
+
add_action( 'init', array( $this, 'sbp_disable_emojis' ) );
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* @since 3.7
|
67 |
+
*/
|
68 |
+
// Disable XML-RPC
|
69 |
+
if ( ! isset( $sbp_options['disable_xmlrpc'] ) ) {
|
70 |
+
add_filter( 'xmlrpc_enabled', '__return_false' );
|
71 |
+
add_filter( 'wp_headers', array( $this, 'sbp_remove_x_pingback' ) );
|
72 |
+
add_filter( 'pings_open', '__return_false', 9999 );
|
73 |
+
}
|
74 |
+
|
75 |
+
} // END public public function __construct
|
76 |
+
|
77 |
+
|
78 |
+
/*--------------------------------------------------------------------------------------------------------
|
79 |
+
Init the CSS Optimizer actions
|
80 |
+
---------------------------------------------------------------------------------------------------------*/
|
81 |
+
|
82 |
+
function sbp_init() {
|
83 |
+
|
84 |
+
global $sbp_options;
|
85 |
+
|
86 |
+
if ( wp_is_mobile() and isset ( $sbp_options['sbp_is_mobile'] ) ) { // disable all CSS options on mobile devices
|
87 |
+
return;
|
88 |
+
}
|
89 |
+
|
90 |
+
if ( ! is_admin() and isset( $sbp_options['sbp_css_async'] ) ) {
|
91 |
+
add_action( 'wp_print_styles', array( $this, 'sbp_print_styles' ), SBP_FOOTER );
|
92 |
+
add_action( 'wp_footer', array( $this, 'sbp_print_delayed_styles' ), SBP_FOOTER + 1 );
|
93 |
+
}
|
94 |
+
|
95 |
+
}
|
96 |
+
|
97 |
+
|
98 |
+
/*--------------------------------------------------------------------------------------------------------
|
99 |
+
Get image quality value if it's set. Otherwise it's set to 90
|
100 |
+
---------------------------------------------------------------------------------------------------------*/
|
101 |
+
|
102 |
+
function filter_image_quality() {
|
103 |
+
|
104 |
+
if ( get_option( 'sbp_integer' ) ) {
|
105 |
+
$sbp_compression = get_option( 'sbp_integer' );
|
106 |
+
} else {
|
107 |
+
$sbp_compression = 75; //@since v3.7
|
108 |
+
}
|
109 |
+
|
110 |
+
return $sbp_compression;
|
111 |
+
}
|
112 |
+
|
113 |
+
|
114 |
+
/*--------------------------------------------------------------------------------------------------------
|
115 |
+
ACTION wp_print_styles
|
116 |
+
---------------------------------------------------------------------------------------------------------*/
|
117 |
+
|
118 |
+
function sbp_print_styles() {
|
119 |
+
global $sbp_styles_are_async;
|
120 |
+
global $sbp_styles;
|
121 |
+
global $sbp_options;
|
122 |
+
|
123 |
+
if ( isset( $sbp_options['sbp_css_minify'] ) ) {
|
124 |
+
$minify = true;
|
125 |
+
} else {
|
126 |
+
$minify = false;
|
127 |
+
}
|
128 |
+
|
129 |
+
$sbp_styles_are_async = true;
|
130 |
+
|
131 |
+
$sbp_styles = sbp_generate_styles_list();
|
132 |
+
|
133 |
+
if ( ! isset( $sbp_options['sbp_footer_css'] ) ) {
|
134 |
+
|
135 |
+
$not_inlined = array();
|
136 |
+
|
137 |
+
foreach ( $sbp_styles as $style ) {
|
138 |
+
echo "<style type=\"text/css\" " . ( $style['media'] ? "media=\"{$style['media']}\"" : '' ) . ">";
|
139 |
+
if ( ! sbp_inline_css( $style['src'], $minify ) ) {
|
140 |
+
$not_inlined[] = $style;
|
141 |
+
}
|
142 |
+
echo "</style>";
|
143 |
+
}
|
144 |
+
if ( ! empty( $not_inlined ) ) {
|
145 |
+
foreach ( $not_inlined as $style ) {
|
146 |
+
?>
|
147 |
+
<link rel="stylesheet" href="<?php echo $style['src'] ?>" type="text/css" <?php echo $style['media'] ? "media=\"{$style['media']}\"" : '' ?> /><?php
|
148 |
+
}
|
149 |
+
}
|
150 |
+
}
|
151 |
+
|
152 |
+
sbp_unregister_styles();
|
153 |
+
}
|
154 |
+
|
155 |
+
|
156 |
+
/*--------------------------------------------------------------------------------------------------------
|
157 |
+
ACTION wp_footer
|
158 |
+
---------------------------------------------------------------------------------------------------------*/
|
159 |
+
|
160 |
+
function sbp_print_delayed_styles() {
|
161 |
+
global $sbp_styles;
|
162 |
+
global $sbp_options;
|
163 |
+
|
164 |
+
if ( isset( $sbp_options['sbp_css_minify'] ) ) {
|
165 |
+
$minify = true;
|
166 |
+
} else {
|
167 |
+
$minify = false;
|
168 |
+
}
|
169 |
+
|
170 |
+
if ( isset( $sbp_options['sbp_footer_css'] ) ) {
|
171 |
+
|
172 |
+
$not_inlined = array();
|
173 |
+
foreach ( $sbp_styles as $style ) {
|
174 |
+
echo "<style type=\"text/css\" " . ( $style['media'] ? "media=\"{$style['media']}\"" : '' ) . ">";
|
175 |
+
if ( ! sbp_inline_css( $style['src'], $minify ) ) {
|
176 |
+
$not_inlined[] = $style;
|
177 |
+
}
|
178 |
+
echo "</style>";
|
179 |
+
}
|
180 |
+
if ( ! empty( $not_inlined ) ) {
|
181 |
+
foreach ( $not_inlined as $style ) {
|
182 |
+
?>
|
183 |
+
<link rel="stylesheet" href="<?php echo $style['src'] ?>" type="text/css" <?php echo $style['media'] ? "media=\"{$style['media']}\"" : '' ?> /><?php
|
184 |
+
}
|
185 |
+
}
|
186 |
+
}
|
187 |
+
}
|
188 |
+
|
189 |
+
|
190 |
+
/*--------------------------------------------------------------------------------------------------------
|
191 |
+
Moves scripts to the footer to decrease page load times, while keeping stylesheets in the header
|
192 |
+
---------------------------------------------------------------------------------------------------------*/
|
193 |
+
|
194 |
+
function sbp_move_scripts_to_footer() {
|
195 |
+
|
196 |
+
global $sbp_options;
|
197 |
+
|
198 |
+
if ( ! is_admin() and isset( $sbp_options['jquery_to_footer'] ) ) {
|
199 |
+
|
200 |
+
remove_action( 'wp_head', 'wp_print_scripts' );
|
201 |
+
remove_action( 'wp_head', 'wp_print_head_scripts', 9 );
|
202 |
+
remove_action( 'wp_head', 'wp_enqueue_scripts', 1 );
|
203 |
+
|
204 |
+
}
|
205 |
+
|
206 |
+
} // END function sbp_move_scripts_to_footer
|
207 |
+
|
208 |
+
|
209 |
+
/*--------------------------------------------------------------------------------------------------------
|
210 |
+
Put scripts back to the head
|
211 |
+
---------------------------------------------------------------------------------------------------------*/
|
212 |
+
|
213 |
+
public function sbp_scripts_to_head() {
|
214 |
+
|
215 |
+
|
216 |
+
if ( get_option( 'sbp_head_html_script1' ) ) {
|
217 |
+
echo get_option( 'sbp_head_html_script1' ) . "\n";
|
218 |
+
}
|
219 |
+
|
220 |
+
if ( get_option( 'sbp_head_html_script2' ) ) {
|
221 |
+
echo get_option( 'sbp_head_html_script2' ) . "\n";
|
222 |
+
}
|
223 |
+
|
224 |
+
if ( get_option( 'sbp_head_html_script3' ) ) {
|
225 |
+
echo get_option( 'sbp_head_html_script3' ) . "\n";
|
226 |
+
}
|
227 |
+
|
228 |
+
if ( get_option( 'sbp_head_html_script4' ) ) {
|
229 |
+
echo get_option( 'sbp_head_html_script4' ) . "\n";
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* Default: add jQuery to header always
|
234 |
+
*
|
235 |
+
* @since 3.7
|
236 |
+
*/
|
237 |
+
global $wp_scripts;
|
238 |
+
$js_footer_exceptions1 = '';
|
239 |
+
$js_footer_exceptions2 = '';
|
240 |
+
$js_footer_exceptions3 = '';
|
241 |
+
$js_footer_exceptions4 = '';
|
242 |
+
|
243 |
+
if ( get_option( 'sbp_js_footer_exceptions1' ) ) {
|
244 |
+
$js_footer_exceptions1 = get_option( 'sbp_js_footer_exceptions1' );
|
245 |
+
}
|
246 |
+
|
247 |
+
if ( get_option( 'sbp_js_footer_exceptions2' ) ) {
|
248 |
+
$js_footer_exceptions2 = get_option( 'sbp_js_footer_exceptions2' );
|
249 |
+
}
|
250 |
+
|
251 |
+
if ( get_option( 'sbp_js_footer_exceptions3' ) ) {
|
252 |
+
$js_footer_exceptions3 = get_option( 'sbp_js_footer_exceptions3' );
|
253 |
+
}
|
254 |
+
|
255 |
+
if ( get_option( 'sbp_js_footer_exceptions4' ) ) {
|
256 |
+
$js_footer_exceptions4 = get_option( 'sbp_js_footer_exceptions4' );
|
257 |
+
}
|
258 |
+
|
259 |
+
$sbp_enq = 'enqueued';
|
260 |
+
$sbp_reg = 'registered';
|
261 |
+
$sbp_done = 'done';
|
262 |
+
|
263 |
+
/**
|
264 |
+
* Echo jQuery in header all the time, if none of the other options contain in
|
265 |
+
*
|
266 |
+
* @since 3.7
|
267 |
+
*
|
268 |
+
* New solution, going forward so not to crash so many sites anymore
|
269 |
+
*
|
270 |
+
* This should come BEFORE the fallback function, since jQuery should be ALWAYS
|
271 |
+
* the first loaded script.
|
272 |
+
*
|
273 |
+
*/
|
274 |
+
if ( $js_footer_exceptions1 !== 'jquery-core' || $js_footer_exceptions2 !== 'jquery-core' || $js_footer_exceptions3 !== 'jquery-core' || $js_footer_exceptions4 !== 'jquery-core' ) {
|
275 |
+
|
276 |
+
// if the script actually exists, dequeue it and re-add it for header inclusion
|
277 |
+
$script_src = $wp_scripts->registered['jquery-core']->src;
|
278 |
+
|
279 |
+
if ( strpos( $script_src, 'wp-includes' ) == true ) { // it's a local resource, append wordpress installation URL
|
280 |
+
echo '<script type="text/javascript" src="' . get_site_url() . esc_attr( $script_src ) . '"></script>';
|
281 |
+
} else {
|
282 |
+
echo '<script type="text/javascript" src="' . esc_attr( $script_src ) . '"></script>';
|
283 |
+
}
|
284 |
+
|
285 |
+
// deregister & dequeue the script
|
286 |
+
wp_deregister_script( 'jquery-core' );
|
287 |
+
wp_dequeue_script( 'jquery-core' );
|
288 |
+
}
|
289 |
+
|
290 |
+
|
291 |
+
/**
|
292 |
+
* Echo the scripts in the header
|
293 |
+
*
|
294 |
+
* @since 3.7
|
295 |
+
*
|
296 |
+
* Fallback for previous plugin users
|
297 |
+
*
|
298 |
+
*/
|
299 |
+
if ( array_key_exists( $js_footer_exceptions1, $wp_scripts->registered ) ) {
|
300 |
+
$script_src = '';
|
301 |
+
// if the script actually exists, dequeue it and re-add it for header inclusion
|
302 |
+
$script_src = $wp_scripts->registered[ $js_footer_exceptions1 ]->src;
|
303 |
+
|
304 |
+
if ( strpos( $script_src, 'wp-includes' ) == true ) { // it's a local resource, append wordpress installation URL
|
305 |
+
echo '<script type="text/javascript" src="' . esc_attr( $script_src ) . '"></script>';
|
306 |
+
} else {
|
307 |
+
echo '<script type="text/javascript" src="' . esc_attr( $script_src ) . '"></script>';
|
308 |
+
}
|
309 |
+
}
|
310 |
+
|
311 |
+
if ( array_key_exists( $js_footer_exceptions2, $wp_scripts->registered ) ) {
|
312 |
+
$script_src = '';
|
313 |
+
// if the script actually exists, dequeue it and re-add it for header inclusion
|
314 |
+
$script_src = $wp_scripts->registered[ $js_footer_exceptions2 ]->src;
|
315 |
+
|
316 |
+
if ( strpos( $script_src, 'wp-includes' ) == true ) {
|
317 |
+
echo '<script type="text/javascript" src="' . get_site_url() . esc_attr( $script_src ) . '"></script>';
|
318 |
+
} else {
|
319 |
+
echo '<script type="text/javascript" src="' . esc_attr( $script_src ) . '"></script>';
|
320 |
+
}
|
321 |
+
}
|
322 |
+
|
323 |
+
if ( array_key_exists( $js_footer_exceptions3, $wp_scripts->registered ) ) {
|
324 |
+
$script_src = '';
|
325 |
+
// if the script actually exists, dequeue it and re-add it for header inclusion
|
326 |
+
$script_src = $wp_scripts->registered[ $js_footer_exceptions3 ]->src;
|
327 |
+
|
328 |
+
if ( strpos( $script_src, 'wp-includes' ) == true ) {
|
329 |
+
echo '<script type="text/javascript" src="' . get_site_url() . esc_attr( $script_src ) . '"></script>';
|
330 |
+
} else {
|
331 |
+
echo '<script type="text/javascript" src="' . esc_attr( $script_src ) . '"></script>';
|
332 |
+
}
|
333 |
+
|
334 |
+
}
|
335 |
+
|
336 |
+
if ( array_key_exists( $js_footer_exceptions4, $wp_scripts->registered ) ) {
|
337 |
+
$script_src = '';
|
338 |
+
// if the script actually exists, dequeue it and re-add it for header inclusion
|
339 |
+
$script_src = $wp_scripts->registered[ $js_footer_exceptions4 ]->src;
|
340 |
+
|
341 |
+
if ( strpos( $script_src, 'wp-includes' ) == true ) { // it's a local resource, append wordpress installation URL
|
342 |
+
echo '<script type="text/javascript" src="' . get_site_url() . esc_attr( $script_src ) . '"></script>';
|
343 |
+
} else {
|
344 |
+
echo '<script type="text/javascript" src="' . esc_attr( $script_src ) . '"></script>';
|
345 |
+
}
|
346 |
+
}
|
347 |
+
|
348 |
+
|
349 |
+
/**
|
350 |
+
* De-register the scripts from other parts of the site since they're already echo-ed in the header
|
351 |
+
*/
|
352 |
+
/*--------------------------------------------------------------------------------------------------------*/
|
353 |
+
if ( ! empty( $sbp_js_footer_exceptions1 ) and wp_script_is( $js_footer_exceptions1, $sbp_enq ) ) {
|
354 |
+
wp_dequeue_script( $js_footer_exceptions1 );
|
355 |
+
}
|
356 |
+
if ( ! empty( $sbp_js_footer_exceptions2 ) and wp_script_is( $js_footer_exceptions2, $sbp_enq ) ) {
|
357 |
+
wp_dequeue_script( $js_footer_exceptions2 );
|
358 |
+
}
|
359 |
+
if ( ! empty( $sbp_js_footer_exceptions3 ) and wp_script_is( $js_footer_exceptions3, $sbp_enq ) ) {
|
360 |
+
wp_dequeue_script( $sbp_js_footer_exceptions3 );
|
361 |
+
}
|
362 |
+
if ( ! empty( $sbp_js_footer_exceptions4 ) and wp_script_is( $js_footer_exceptions4, $sbp_enq ) ) {
|
363 |
+
wp_dequeue_script( $sbp_js_footer_exceptions4 );
|
364 |
+
}
|
365 |
+
/*--------------------------------------------------------------------------------------------------------*/
|
366 |
+
if ( ! empty( $js_footer_exceptions1 ) and wp_script_is( $js_footer_exceptions1, $sbp_reg ) ) {
|
367 |
+
wp_deregister_script( $js_footer_exceptions1 );
|
368 |
+
}
|
369 |
+
if ( ! empty( $js_footer_exceptions2 ) and wp_script_is( $js_footer_exceptions2, $sbp_reg ) ) {
|
370 |
+
wp_deregister_script( $js_footer_exceptions2 );
|
371 |
+
}
|
372 |
+
if ( ! empty( $js_footer_exceptions3 ) and wp_script_is( $js_footer_exceptions3, $sbp_reg ) ) {
|
373 |
+
wp_deregister_script( $js_footer_exceptions3 );
|
374 |
+
}
|
375 |
+
if ( ! empty( $js_footer_exceptions4 ) and wp_script_is( $js_footer_exceptions4, $sbp_reg ) ) {
|
376 |
+
wp_deregister_script( $js_footer_exceptions4 );
|
377 |
+
}
|
378 |
+
/*--------------------------------------------------------------------------------------------------------*/
|
379 |
+
if ( ! empty( $js_footer_exceptions1 ) and wp_script_is( $js_footer_exceptions1, $sbp_done ) ) {
|
380 |
+
wp_deregister_script( $js_footer_exceptions1 );
|
381 |
+
}
|
382 |
+
if ( ! empty( $js_footer_exceptions2 ) and wp_script_is( $js_footer_exceptions2, $sbp_done ) ) {
|
383 |
+
wp_deregister_script( $js_footer_exceptions2 );
|
384 |
+
}
|
385 |
+
if ( ! empty( $js_footer_exceptions3 ) and wp_script_is( $js_footer_exceptions3, $sbp_done ) ) {
|
386 |
+
wp_deregister_script( $js_footer_exceptions3 );
|
387 |
+
}
|
388 |
+
if ( ! empty( $js_footer_exceptions4 ) and wp_script_is( $js_footer_exceptions4, $sbp_done ) ) {
|
389 |
+
wp_deregister_script( $js_footer_exceptions4 );
|
390 |
+
}
|
391 |
+
|
392 |
+
}
|
393 |
+
|
394 |
+
|
395 |
+
/*--------------------------------------------------------------------------------------------------------
|
396 |
+
Show Number of Queries and Page Load Time
|
397 |
+
---------------------------------------------------------------------------------------------------------*/
|
398 |
+
|
399 |
+
function sbp_show_page_load_stats() {
|
400 |
+
$timer_stop = timer_stop( 0, 2 ); // to display milliseconds instead of seconds usethe following: $timer_stop = 1000 * ( float ) timer_stop( 0, 4 );
|
401 |
+
$get_num_queries = get_num_queries();
|
402 |
+
update_option( 'sbp_page_time', $timer_stop );
|
403 |
+
update_option( 'sbp_page_queries', $get_num_queries );
|
404 |
+
}
|
405 |
+
|
406 |
+
|
407 |
+
/*--------------------------------------------------------------------------------------------------------
|
408 |
+
Use Google Libraries
|
409 |
+
---------------------------------------------------------------------------------------------------------*/
|
410 |
+
|
411 |
+
function sbp_use_google_libraries() {
|
412 |
+
|
413 |
+
require_once( SPEED_BOOSTER_PACK_PATH . 'inc/use-google-libraries.php' );
|
414 |
+
|
415 |
+
if ( class_exists( 'SBP_GoogleLibraries' ) ) {
|
416 |
+
SBP_GoogleLibraries::configure_plugin();
|
417 |
+
|
418 |
+
}
|
419 |
+
|
420 |
+
} // End function sbp_use_google_libraries()
|
421 |
+
|
422 |
+
|
423 |
+
|
424 |
+
|
425 |
+
/*--------------------------------------------------------------------------------------------------------
|
426 |
+
Minify HTML and Javascripts
|
427 |
+
---------------------------------------------------------------------------------------------------------*/
|
428 |
+
|
429 |
+
function sbp_minifier() {
|
430 |
+
|
431 |
+
require_once( SPEED_BOOSTER_PACK_PATH . 'inc/sbp-minifier.php' );
|
432 |
+
} // End function sbp_minifier()
|
433 |
+
|
434 |
+
|
435 |
+
/*--------------------------------------------------------------------------------------------------------
|
436 |
+
CSS Optimizer
|
437 |
+
---------------------------------------------------------------------------------------------------------*/
|
438 |
+
|
439 |
+
function sbp_css_optimizer() {
|
440 |
+
|
441 |
+
require_once( SPEED_BOOSTER_PACK_PATH . 'inc/css-optimizer.php' );
|
442 |
+
|
443 |
+
} // End function sbp_css_optimizer()
|
444 |
+
|
445 |
+
/*--------------------------------------------------------------------------------------------------------
|
446 |
+
Defer parsing of JavaScript and exclusion files
|
447 |
+
---------------------------------------------------------------------------------------------------------*/
|
448 |
+
|
449 |
+
function sbp_defer_parsing_of_js( $tag, $handle, $src ) {
|
450 |
+
|
451 |
+
$defer_exclude1 = '';
|
452 |
+
$defer_exclude2 = '';
|
453 |
+
$defer_exclude3 = '';
|
454 |
+
$defer_exclude4 = '';
|
455 |
+
|
456 |
+
if ( get_option( 'sbp_defer_exceptions1' ) ) {
|
457 |
+
$defer_exclude1 = get_option( 'sbp_defer_exceptions1' );
|
458 |
+
}
|
459 |
+
|
460 |
+
if ( get_option( 'sbp_defer_exceptions2' ) ) {
|
461 |
+
$defer_exclude2 = get_option( 'sbp_defer_exceptions2' );
|
462 |
+
}
|
463 |
+
|
464 |
+
if ( get_option( 'sbp_defer_exceptions3' ) ) {
|
465 |
+
$defer_exclude3 = get_option( 'sbp_defer_exceptions3' );
|
466 |
+
}
|
467 |
+
|
468 |
+
if ( get_option( 'sbp_defer_exceptions4' ) ) {
|
469 |
+
$defer_exclude4 = get_option( 'sbp_defer_exceptions4' );
|
470 |
+
}
|
471 |
+
|
472 |
+
$array_with_values[] = $defer_exclude1;
|
473 |
+
$array_with_values[] = $defer_exclude2;
|
474 |
+
$array_with_values[] = $defer_exclude3;
|
475 |
+
$array_with_values[] = $defer_exclude4;
|
476 |
+
|
477 |
+
$array_with_values = apply_filters( 'sbp_exclude_defer_scripts', $array_with_values ); // possibility of extending this via filters
|
478 |
+
$array_with_values = array_filter( $array_with_values ); // remove empty entries
|
479 |
+
|
480 |
+
|
481 |
+
if ( ! in_array( $handle, $array_with_values ) ) {
|
482 |
+
return '<script src="' . $src . '" defer="defer" type="text/javascript"></script>' . "\n";
|
483 |
+
}
|
484 |
+
|
485 |
+
return $tag;
|
486 |
+
|
487 |
+
} // END function sbp_defer_parsing_of_js
|
488 |
+
|
489 |
+
|
490 |
+
/*--------------------------------------------------------------------------------------------------------
|
491 |
+
Remove query strings from static resources
|
492 |
+
---------------------------------------------------------------------------------------------------------*/
|
493 |
+
|
494 |
+
function sbp_remove_query_strings( $src ) { // remove "?ver" string
|
495 |
+
|
496 |
+
$output = preg_split( "/(\?rev|&ver|\?ver)/", $src );
|
497 |
+
|
498 |
+
return $output[0];
|
499 |
+
|
500 |
+
}
|
501 |
+
|
502 |
+
/*--------------------------------------------------------------------------------------------------------
|
503 |
+
Disable Emoji
|
504 |
+
---------------------------------------------------------------------------------------------------------*/
|
505 |
+
function sbp_disable_emojis() {
|
506 |
+
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
|
507 |
+
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
|
508 |
+
remove_action( 'wp_print_styles', 'print_emoji_styles' );
|
509 |
+
remove_action( 'admin_print_styles', 'print_emoji_styles' );
|
510 |
+
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
|
511 |
+
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
|
512 |
+
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
|
513 |
+
|
514 |
+
add_filter( 'tiny_mce_plugins', array( $this, 'sbp_disable_emojis_tinymce' ) );
|
515 |
+
add_filter( 'wp_resource_hints', array( $this, 'sbp_disable_emojis_dns_prefetch' ), 10, 2 );
|
516 |
+
}
|
517 |
+
|
518 |
+
function sbp_disable_emojis_tinymce( $plugins ) {
|
519 |
+
if ( is_array( $plugins ) ) {
|
520 |
+
return array_diff( $plugins, array( 'wpemoji' ) );
|
521 |
+
} else {
|
522 |
+
return array();
|
523 |
+
}
|
524 |
+
}
|
525 |
+
|
526 |
+
function sbp_disable_emojis_dns_prefetch( $urls, $relation_type ) {
|
527 |
+
if ( 'dns-prefetch' == $relation_type ) {
|
528 |
+
$emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2.2.1/svg/' );
|
529 |
+
$urls = array_diff( $urls, array( $emoji_svg_url ) );
|
530 |
+
}
|
531 |
+
|
532 |
+
return $urls;
|
533 |
+
}
|
534 |
+
|
535 |
+
/*--------------------------------------------------------------------------------------------------------
|
536 |
+
Disable XML-RPC
|
537 |
+
---------------------------------------------------------------------------------------------------------*/
|
538 |
+
|
539 |
+
function sbp_remove_x_pingback( $headers ) {
|
540 |
+
unset( $headers['X-Pingback'] );
|
541 |
+
|
542 |
+
return $headers;
|
543 |
+
}
|
544 |
+
|
545 |
+
/*--------------------------------------------------------------------------------------------------------
|
546 |
+
Dequeue extra Font Awesome stylesheet
|
547 |
+
---------------------------------------------------------------------------------------------------------*/
|
548 |
+
|
549 |
+
function sbp_no_more_fontawesome() {
|
550 |
+
global $wp_styles;
|
551 |
+
global $sbp_options;
|
552 |
+
|
553 |
+
// 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
|
554 |
+
$patterns = array(
|
555 |
+
'font-awesome.css',
|
556 |
+
'font-awesome.min.css',
|
557 |
+
);
|
558 |
+
// multiple patterns hook
|
559 |
+
$regex = '/(' . implode( '|', $patterns ) . ')/i';
|
560 |
+
foreach ( $wp_styles->registered as $registered ) {
|
561 |
+
if ( ! is_admin() and preg_match( $regex, $registered->src ) and isset( $sbp_options['font_awesome'] ) ) {
|
562 |
+
wp_dequeue_style( $registered->handle );
|
563 |
+
// FA was dequeued, so here we need to enqueue it again from CDN
|
564 |
+
wp_enqueue_style( 'font-awesome', '//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css' );
|
565 |
+
} // END if( preg_match...
|
566 |
+
} // END foreach
|
567 |
+
} // End function dfa_no_more_fontawesome
|
568 |
+
|
569 |
+
|
570 |
+
/*--------------------------------------------------------------------------------------------------------
|
571 |
+
Remove junk header tags
|
572 |
+
---------------------------------------------------------------------------------------------------------*/
|
573 |
+
|
574 |
+
public function sbp_junk_header_tags() {
|
575 |
+
|
576 |
+
global $sbp_options;
|
577 |
+
|
578 |
+
// Remove Adjacent Posts links PREV/NEXT
|
579 |
+
if ( isset( $sbp_options['remove_adjacent'] ) ) {
|
580 |
+
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' );
|
581 |
+
}
|
582 |
+
|
583 |
+
// Remove Windows Live Writer Manifest Link
|
584 |
+
if ( isset( $sbp_options['wml_link'] ) ) {
|
585 |
+
remove_action( 'wp_head', 'wlwmanifest_link' );
|
586 |
+
}
|
587 |
+
|
588 |
+
// Remove RSD (Really Simple Discovery) Link
|
589 |
+
if ( isset( $sbp_options['rsd_link'] ) ) {
|
590 |
+
remove_action( 'wp_head', 'rsd_link' );
|
591 |
+
}
|
592 |
+
|
593 |
+
// Remove WordPress Shortlinks from WP Head
|
594 |
+
if ( isset( $sbp_options['remove_wsl'] ) ) {
|
595 |
+
remove_action( 'wp_head', 'wp_shortlink_wp_head' );
|
596 |
+
}
|
597 |
+
|
598 |
+
// Remove WP Generator/Version - for security reasons and cleaning the header
|
599 |
+
if ( isset( $sbp_options['wp_generator'] ) ) {
|
600 |
+
remove_action( 'wp_head', 'wp_generator' );
|
601 |
+
}
|
602 |
+
|
603 |
+
// Remove all feeds
|
604 |
+
if ( isset( $sbp_options['remove_all_feeds'] ) ) {
|
605 |
+
remove_action( 'wp_head', 'feed_links_extra', 3 ); // remove the feed links from the extra feeds such as category feeds
|
606 |
+
remove_action( 'wp_head', 'feed_links', 2 ); // remove the feed links from the general feeds: Post and Comment Feed
|
607 |
+
}
|
608 |
+
|
609 |
+
} // END public function sbp_junk_header_tags
|
610 |
+
} // END class Speed_Booster_Pack_Core
|
611 |
} // END if(!class_exists('Speed_Booster_Pack_Core'))
|
inc/crazy-lazy.class.php
CHANGED
@@ -1,172 +1,172 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* CrazyLazy plugin class
|
4 |
-
*
|
5 |
-
* @package CrazyLazy
|
6 |
-
*/
|
7 |
-
|
8 |
-
/* Quit */
|
9 |
-
defined( 'ABSPATH' ) or exit;
|
10 |
-
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Class CrazyLazy
|
14 |
-
*/
|
15 |
-
final class CrazyLazy {
|
16 |
-
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Class instance
|
20 |
-
*
|
21 |
-
* @since 0.0.1
|
22 |
-
* @change 0.0.1
|
23 |
-
*/
|
24 |
-
public static function instance() {
|
25 |
-
new self();
|
26 |
-
}
|
27 |
-
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Class constructor
|
31 |
-
*
|
32 |
-
* @since 0.0.1
|
33 |
-
* @change 0.0.9
|
34 |
-
*/
|
35 |
-
public function __construct() {
|
36 |
-
/* Go home */
|
37 |
-
if ( is_feed() || ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ( defined( 'DOING_CRON' ) && DOING_CRON ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) ) {
|
38 |
-
return;
|
39 |
-
}
|
40 |
-
|
41 |
-
/* Hooks */
|
42 |
-
add_filter(
|
43 |
-
'the_content',
|
44 |
-
array(
|
45 |
-
__CLASS__,
|
46 |
-
'prepare_images',
|
47 |
-
),
|
48 |
-
12 /* Important for galleries */
|
49 |
-
);
|
50 |
-
add_filter(
|
51 |
-
'post_thumbnail_html',
|
52 |
-
array(
|
53 |
-
__CLASS__,
|
54 |
-
'prepare_images',
|
55 |
-
)
|
56 |
-
);
|
57 |
-
add_action(
|
58 |
-
'wp_enqueue_scripts',
|
59 |
-
array(
|
60 |
-
__CLASS__,
|
61 |
-
'print_scripts',
|
62 |
-
)
|
63 |
-
);
|
64 |
-
}
|
65 |
-
|
66 |
-
|
67 |
-
/**
|
68 |
-
* Prepare content images for Crazy Lazy usage
|
69 |
-
*
|
70 |
-
* @since 0.0.1
|
71 |
-
* @change 1.0.0
|
72 |
-
*
|
73 |
-
* @param string $content The original post content.
|
74 |
-
*
|
75 |
-
* @return string The modified post content.
|
76 |
-
*/
|
77 |
-
public static function prepare_images( $content ) {
|
78 |
-
/* No lazy images? */
|
79 |
-
if ( strpos( $content, '-image' ) === false ) {
|
80 |
-
return $content;
|
81 |
-
}
|
82 |
-
|
83 |
-
/* Replace images */
|
84 |
-
return preg_replace_callback(
|
85 |
-
'/(?P<all> (?# match the whole img tag )
|
86 |
-
<img(?P<before>[^>]*) (?# the opening of the img and some optional attributes )
|
87 |
-
( (?# match a class attribute followed by some optional ones and the src attribute )
|
88 |
-
class=["\'](?P<class1>.*?(?:wp-image-|wp-post-image)[^>"\']*)["\']
|
89 |
-
(?P<between1>[^>]*)
|
90 |
-
src=["\'](?P<src1>[^>"\']*)["\']
|
91 |
-
| (?# match same as before, but with the src attribute before the class attribute )
|
92 |
-
src=["\'](?P<src2>[^>"\']*)["\']
|
93 |
-
(?P<between2>[^>]*)
|
94 |
-
class=["\'](?P<class2>.*?(?:wp-image-|wp-post-image)[^>"\']*)["\']
|
95 |
-
)
|
96 |
-
(?P<after>[^>]*) (?# match any additional optional attributes )
|
97 |
-
(?P<closing>\/?)> (?# match the closing of the img tag with or without a self closing slash )
|
98 |
-
)/x',
|
99 |
-
array( 'CrazyLazy', 'replace_images' ),
|
100 |
-
$content
|
101 |
-
);
|
102 |
-
}
|
103 |
-
|
104 |
-
/**
|
105 |
-
* The callback function for the preg_match_callback to modify the img tags.
|
106 |
-
*
|
107 |
-
* @since 1.0.0
|
108 |
-
*
|
109 |
-
* @param array $matches The regex matches.
|
110 |
-
*
|
111 |
-
* @return string The modified content string.
|
112 |
-
*/
|
113 |
-
public static function replace_images( $matches ) {
|
114 |
-
/* Empty gif */
|
115 |
-
$null = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
116 |
-
// Return unmodified image if the "data skip" attribute was found or the image has already been processed.
|
117 |
-
if ( false !== strpos( $matches['all'], 'data-crazy-lazy="exclude"' ) || false !== strpos( $matches['class1'] . $matches['class2'], 'crazy_lazy' ) ) {
|
118 |
-
return $matches['all'];
|
119 |
-
} else {
|
120 |
-
return '<img ' . $matches['before']
|
121 |
-
. ' style="display:none" '
|
122 |
-
. ' class="crazy_lazy ' . $matches['class1'] . $matches['class2'] . '" src="' . $null . '" '
|
123 |
-
. $matches['between1'] . $matches['between2']
|
124 |
-
. ' data-src="' . $matches['src1'] . $matches['src2'] . '" '
|
125 |
-
. $matches['after']
|
126 |
-
. $matches['closing'] . '><noscript>' . $matches['all'] . '</noscript>';
|
127 |
-
}
|
128 |
-
}
|
129 |
-
|
130 |
-
|
131 |
-
/**
|
132 |
-
* Print lazy load scripts in footer
|
133 |
-
*
|
134 |
-
* @since 0.0.1
|
135 |
-
* @change 0.0.6
|
136 |
-
*/
|
137 |
-
public static function print_scripts() {
|
138 |
-
/* Globals */
|
139 |
-
global $wp_scripts;
|
140 |
-
|
141 |
-
/* Check for jQuery */
|
142 |
-
if ( ! empty( $wp_scripts ) && (bool) $wp_scripts->query( 'jquery' ) ) { /* hot fix for buggy wp_script_is() */
|
143 |
-
self::_print_jquery_lazyload();
|
144 |
-
} else {
|
145 |
-
self::_print_javascript_lazyload();
|
146 |
-
}
|
147 |
-
}
|
148 |
-
|
149 |
-
|
150 |
-
/**
|
151 |
-
* Call unveil lazy load jQuery plugin
|
152 |
-
*
|
153 |
-
* @since 0.0.5
|
154 |
-
* @change 0.0.9
|
155 |
-
*/
|
156 |
-
private static function _print_jquery_lazyload() {
|
157 |
-
// wp_enqueue_script( 'unveil.js', plugins_url( '/js/jquery.unveil.min.js', CRAZY_LAZY_BASE ), array( 'jquery' ), '', true );
|
158 |
-
wp_enqueue_script( 'unveil.js', plugin_dir_url( __FILE__ ) . 'js/jquery.unveil.min.js', array( 'jquery' ), SPEED_BOOSTER_PACK_VERSION, true );
|
159 |
-
}
|
160 |
-
|
161 |
-
|
162 |
-
/**
|
163 |
-
* Call pure javascript lazyload.js
|
164 |
-
*
|
165 |
-
* @since 0.0.5
|
166 |
-
* @change 0.0.9
|
167 |
-
*/
|
168 |
-
private static function _print_javascript_lazyload() {
|
169 |
-
// wp_enqueue_script( 'lazyload.js', plugins_url( '/js/lazyload.min.js', CRAZY_LAZY_BASE ), array(), '', true );
|
170 |
-
wp_enqueue_script( 'lazyload.js', plugin_dir_url( __FILE__ ) . 'js/lazyload.min.js', array( 'jquery' ), SPEED_BOOSTER_PACK_VERSION, true );
|
171 |
-
}
|
172 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* CrazyLazy plugin class
|
4 |
+
*
|
5 |
+
* @package CrazyLazy
|
6 |
+
*/
|
7 |
+
|
8 |
+
/* Quit */
|
9 |
+
defined( 'ABSPATH' ) or exit;
|
10 |
+
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class CrazyLazy
|
14 |
+
*/
|
15 |
+
final class CrazyLazy {
|
16 |
+
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Class instance
|
20 |
+
*
|
21 |
+
* @since 0.0.1
|
22 |
+
* @change 0.0.1
|
23 |
+
*/
|
24 |
+
public static function instance() {
|
25 |
+
new self();
|
26 |
+
}
|
27 |
+
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Class constructor
|
31 |
+
*
|
32 |
+
* @since 0.0.1
|
33 |
+
* @change 0.0.9
|
34 |
+
*/
|
35 |
+
public function __construct() {
|
36 |
+
/* Go home */
|
37 |
+
if ( is_feed() || ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ( defined( 'DOING_CRON' ) && DOING_CRON ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) ) {
|
38 |
+
return;
|
39 |
+
}
|
40 |
+
|
41 |
+
/* Hooks */
|
42 |
+
add_filter(
|
43 |
+
'the_content',
|
44 |
+
array(
|
45 |
+
__CLASS__,
|
46 |
+
'prepare_images',
|
47 |
+
),
|
48 |
+
12 /* Important for galleries */
|
49 |
+
);
|
50 |
+
add_filter(
|
51 |
+
'post_thumbnail_html',
|
52 |
+
array(
|
53 |
+
__CLASS__,
|
54 |
+
'prepare_images',
|
55 |
+
)
|
56 |
+
);
|
57 |
+
add_action(
|
58 |
+
'wp_enqueue_scripts',
|
59 |
+
array(
|
60 |
+
__CLASS__,
|
61 |
+
'print_scripts',
|
62 |
+
)
|
63 |
+
);
|
64 |
+
}
|
65 |
+
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Prepare content images for Crazy Lazy usage
|
69 |
+
*
|
70 |
+
* @since 0.0.1
|
71 |
+
* @change 1.0.0
|
72 |
+
*
|
73 |
+
* @param string $content The original post content.
|
74 |
+
*
|
75 |
+
* @return string The modified post content.
|
76 |
+
*/
|
77 |
+
public static function prepare_images( $content ) {
|
78 |
+
/* No lazy images? */
|
79 |
+
if ( strpos( $content, '-image' ) === false ) {
|
80 |
+
return $content;
|
81 |
+
}
|
82 |
+
|
83 |
+
/* Replace images */
|
84 |
+
return preg_replace_callback(
|
85 |
+
'/(?P<all> (?# match the whole img tag )
|
86 |
+
<img(?P<before>[^>]*) (?# the opening of the img and some optional attributes )
|
87 |
+
( (?# match a class attribute followed by some optional ones and the src attribute )
|
88 |
+
class=["\'](?P<class1>.*?(?:wp-image-|wp-post-image)[^>"\']*)["\']
|
89 |
+
(?P<between1>[^>]*)
|
90 |
+
src=["\'](?P<src1>[^>"\']*)["\']
|
91 |
+
| (?# match same as before, but with the src attribute before the class attribute )
|
92 |
+
src=["\'](?P<src2>[^>"\']*)["\']
|
93 |
+
(?P<between2>[^>]*)
|
94 |
+
class=["\'](?P<class2>.*?(?:wp-image-|wp-post-image)[^>"\']*)["\']
|
95 |
+
)
|
96 |
+
(?P<after>[^>]*) (?# match any additional optional attributes )
|
97 |
+
(?P<closing>\/?)> (?# match the closing of the img tag with or without a self closing slash )
|
98 |
+
)/x',
|
99 |
+
array( 'CrazyLazy', 'replace_images' ),
|
100 |
+
$content
|
101 |
+
);
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* The callback function for the preg_match_callback to modify the img tags.
|
106 |
+
*
|
107 |
+
* @since 1.0.0
|
108 |
+
*
|
109 |
+
* @param array $matches The regex matches.
|
110 |
+
*
|
111 |
+
* @return string The modified content string.
|
112 |
+
*/
|
113 |
+
public static function replace_images( $matches ) {
|
114 |
+
/* Empty gif */
|
115 |
+
$null = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
116 |
+
// Return unmodified image if the "data skip" attribute was found or the image has already been processed.
|
117 |
+
if ( false !== strpos( $matches['all'], 'data-crazy-lazy="exclude"' ) || false !== strpos( $matches['class1'] . $matches['class2'], 'crazy_lazy' ) ) {
|
118 |
+
return $matches['all'];
|
119 |
+
} else {
|
120 |
+
return '<img ' . $matches['before']
|
121 |
+
. ' style="display:none" '
|
122 |
+
. ' class="crazy_lazy ' . $matches['class1'] . $matches['class2'] . '" src="' . $null . '" '
|
123 |
+
. $matches['between1'] . $matches['between2']
|
124 |
+
. ' data-src="' . $matches['src1'] . $matches['src2'] . '" '
|
125 |
+
. $matches['after']
|
126 |
+
. $matches['closing'] . '><noscript>' . $matches['all'] . '</noscript>';
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Print lazy load scripts in footer
|
133 |
+
*
|
134 |
+
* @since 0.0.1
|
135 |
+
* @change 0.0.6
|
136 |
+
*/
|
137 |
+
public static function print_scripts() {
|
138 |
+
/* Globals */
|
139 |
+
global $wp_scripts;
|
140 |
+
|
141 |
+
/* Check for jQuery */
|
142 |
+
if ( ! empty( $wp_scripts ) && (bool) $wp_scripts->query( 'jquery' ) ) { /* hot fix for buggy wp_script_is() */
|
143 |
+
self::_print_jquery_lazyload();
|
144 |
+
} else {
|
145 |
+
self::_print_javascript_lazyload();
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Call unveil lazy load jQuery plugin
|
152 |
+
*
|
153 |
+
* @since 0.0.5
|
154 |
+
* @change 0.0.9
|
155 |
+
*/
|
156 |
+
private static function _print_jquery_lazyload() {
|
157 |
+
// wp_enqueue_script( 'unveil.js', plugins_url( '/js/jquery.unveil.min.js', CRAZY_LAZY_BASE ), array( 'jquery' ), '', true );
|
158 |
+
wp_enqueue_script( 'unveil.js', plugin_dir_url( __FILE__ ) . 'js/jquery.unveil.min.js', array( 'jquery' ), SPEED_BOOSTER_PACK_VERSION, true );
|
159 |
+
}
|
160 |
+
|
161 |
+
|
162 |
+
/**
|
163 |
+
* Call pure javascript lazyload.js
|
164 |
+
*
|
165 |
+
* @since 0.0.5
|
166 |
+
* @change 0.0.9
|
167 |
+
*/
|
168 |
+
private static function _print_javascript_lazyload() {
|
169 |
+
// wp_enqueue_script( 'lazyload.js', plugins_url( '/js/lazyload.min.js', CRAZY_LAZY_BASE ), array(), '', true );
|
170 |
+
wp_enqueue_script( 'lazyload.js', plugin_dir_url( __FILE__ ) . 'js/lazyload.min.js', array( 'jquery' ), SPEED_BOOSTER_PACK_VERSION, true );
|
171 |
+
}
|
172 |
+
}
|
inc/crazy-lazy.php
CHANGED
@@ -1,37 +1,37 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Copyright (C) 2013-2015 Sergej Müller & https://github.com/pluginkollektiv/crazy-lazy
|
5 |
-
|
6 |
-
This program is free software; you can redistribute it and/or modify
|
7 |
-
it under the terms of the GNU General Public License as published by
|
8 |
-
the Free Software Foundation; either version 2 of the License, or
|
9 |
-
(at your option) any later version.
|
10 |
-
|
11 |
-
This program is distributed in the hope that it will be useful,
|
12 |
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 |
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 |
-
GNU General Public License for more details.
|
15 |
-
|
16 |
-
You should have received a copy of the GNU General Public License along
|
17 |
-
with this program; if not, write to the Free Software Foundation, Inc.,
|
18 |
-
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
19 |
-
*/
|
20 |
-
|
21 |
-
|
22 |
-
/* Quit */
|
23 |
-
defined( 'ABSPATH' ) || exit;
|
24 |
-
|
25 |
-
|
26 |
-
/* FE only */
|
27 |
-
if ( is_admin() ) {
|
28 |
-
return;
|
29 |
-
}
|
30 |
-
|
31 |
-
|
32 |
-
/* Fire! */
|
33 |
-
define( 'CRAZY_LAZY_BASE', plugin_basename( __FILE__ ) );
|
34 |
-
|
35 |
-
require_once( SPEED_BOOSTER_PACK_PATH . 'inc/crazy-lazy.class.php' );
|
36 |
-
|
37 |
-
add_action( 'wp', array( 'CrazyLazy', 'instance' ) );
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
Copyright (C) 2013-2015 Sergej Müller & https://github.com/pluginkollektiv/crazy-lazy
|
5 |
+
|
6 |
+
This program is free software; you can redistribute it and/or modify
|
7 |
+
it under the terms of the GNU General Public License as published by
|
8 |
+
the Free Software Foundation; either version 2 of the License, or
|
9 |
+
(at your option) any later version.
|
10 |
+
|
11 |
+
This program is distributed in the hope that it will be useful,
|
12 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 |
+
GNU General Public License for more details.
|
15 |
+
|
16 |
+
You should have received a copy of the GNU General Public License along
|
17 |
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
18 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
19 |
+
*/
|
20 |
+
|
21 |
+
|
22 |
+
/* Quit */
|
23 |
+
defined( 'ABSPATH' ) || exit;
|
24 |
+
|
25 |
+
|
26 |
+
/* FE only */
|
27 |
+
if ( is_admin() ) {
|
28 |
+
return;
|
29 |
+
}
|
30 |
+
|
31 |
+
|
32 |
+
/* Fire! */
|
33 |
+
define( 'CRAZY_LAZY_BASE', plugin_basename( __FILE__ ) );
|
34 |
+
|
35 |
+
require_once( SPEED_BOOSTER_PACK_PATH . 'inc/crazy-lazy.class.php' );
|
36 |
+
|
37 |
+
add_action( 'wp', array( 'CrazyLazy', 'instance' ) );
|
inc/css-optimizer.php
CHANGED
@@ -1,204 +1,228 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*--------------------------------------------------------------------------------------------------------
|
4 |
-
CSS OPTIMIZER - Generate Styles List
|
5 |
-
---------------------------------------------------------------------------------------------------------*/
|
6 |
-
|
7 |
-
function sbp_generate_styles_list() {
|
8 |
-
|
9 |
-
global $wp_styles;
|
10 |
-
|
11 |
-
$list = array();
|
12 |
-
if ( isset( $wp_styles->queue ) && is_array( $wp_styles->queue ) ) {
|
13 |
-
foreach ( $wp_styles->queue as $style ) {
|
14 |
-
if ( is_css_excluded( $style ) ) {
|
15 |
-
// load excluded stylesheet in render-blocking manner
|
16 |
-
} else {
|
17 |
-
$list[] = array(
|
18 |
-
'src'
|
19 |
-
'media'
|
20 |
-
|
21 |
-
}
|
22 |
-
}
|
23 |
-
}
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
$
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
$
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
}
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
$css =
|
120 |
-
$css = str_replace(array(
|
121 |
-
$
|
122 |
-
|
123 |
-
$
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
}
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
$
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*--------------------------------------------------------------------------------------------------------
|
4 |
+
CSS OPTIMIZER - Generate Styles List
|
5 |
+
---------------------------------------------------------------------------------------------------------*/
|
6 |
+
|
7 |
+
function sbp_generate_styles_list() {
|
8 |
+
|
9 |
+
global $wp_styles;
|
10 |
+
|
11 |
+
$list = array();
|
12 |
+
if ( isset( $wp_styles->queue ) && is_array( $wp_styles->queue ) ) {
|
13 |
+
foreach ( $wp_styles->queue as $style ) {
|
14 |
+
if ( is_css_excluded( $style ) ) {
|
15 |
+
// load excluded stylesheet in render-blocking manner
|
16 |
+
} else {
|
17 |
+
$list[] = array(
|
18 |
+
'src' => $wp_styles->registered[ $style ]->src,
|
19 |
+
'media' => $wp_styles->registered[ $style ]->args,
|
20 |
+
);
|
21 |
+
}
|
22 |
+
}
|
23 |
+
}
|
24 |
+
|
25 |
+
return $list;
|
26 |
+
|
27 |
+
} // END function sbp_generate_styles_list
|
28 |
+
|
29 |
+
|
30 |
+
/*--------------------------------------------------------------------------------------------------------
|
31 |
+
CSS OPTIMIZER - Deregister all styles
|
32 |
+
---------------------------------------------------------------------------------------------------------*/
|
33 |
+
|
34 |
+
function sbp_unregister_styles() {
|
35 |
+
|
36 |
+
global $wp_styles;
|
37 |
+
|
38 |
+
if ( isset( $wp_styles->queue ) && is_array( $wp_styles->queue ) ) {
|
39 |
+
|
40 |
+
foreach ( $wp_styles->queue as $style ) {
|
41 |
+
if ( is_css_excluded( $style ) ) {
|
42 |
+
continue;
|
43 |
+
}
|
44 |
+
|
45 |
+
wp_dequeue_style( $style );
|
46 |
+
wp_deregister_style( $style );
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
} // END function sbp_unregister_styles
|
51 |
+
|
52 |
+
|
53 |
+
/*--------------------------------------------------------------------------------------------------------
|
54 |
+
CSS OPTIMIZER - Generate inline styles
|
55 |
+
---------------------------------------------------------------------------------------------------------*/
|
56 |
+
|
57 |
+
function sbp_inline_css( $url, $minify = true ) {
|
58 |
+
|
59 |
+
$base_url = get_bloginfo( 'wpurl' );
|
60 |
+
$path = false;
|
61 |
+
|
62 |
+
if ( strpos( $url, $base_url ) !== false ) {
|
63 |
+
|
64 |
+
$path = str_replace( $base_url, rtrim( ABSPATH, '/' ), $url );
|
65 |
+
|
66 |
+
} elseif ( $url[0] == '/' && $url[1] != '/' ) {
|
67 |
+
|
68 |
+
$path = rtrim( ABSPATH, '/' ) . $url;
|
69 |
+
$url = $base_url . $url;
|
70 |
+
}
|
71 |
+
|
72 |
+
if ( $path && file_exists( $path ) ) {
|
73 |
+
|
74 |
+
$css = file_get_contents( $path );
|
75 |
+
|
76 |
+
if ( $minify ) {
|
77 |
+
$css = sbp_minify_css( $css );
|
78 |
+
}
|
79 |
+
|
80 |
+
$css = sbp_rebuilding_css_urls( $css, $url );
|
81 |
+
|
82 |
+
echo $css;
|
83 |
+
|
84 |
+
return true;
|
85 |
+
|
86 |
+
} else {
|
87 |
+
|
88 |
+
return false;
|
89 |
+
}
|
90 |
+
|
91 |
+
} // END function sbp_inline_css
|
92 |
+
|
93 |
+
|
94 |
+
/*--------------------------------------------------------------------------------------------------------
|
95 |
+
CSS OPTIMIZER - Rebuilding CSS URLs
|
96 |
+
---------------------------------------------------------------------------------------------------------*/
|
97 |
+
|
98 |
+
function sbp_rebuilding_css_urls( $css, $url ) {
|
99 |
+
$css_dir = substr( $url, 0, strrpos( $url, '/' ) );
|
100 |
+
|
101 |
+
// old regex expresison
|
102 |
+
//$css = preg_replace( "/url\((?!data:)['\"]?([^\/][^'\"\)]*)['\"]?\)/i", "url({$css_dir}/$1)", $css );
|
103 |
+
|
104 |
+
// new regex expression
|
105 |
+
$css = preg_replace( "/url(?!\(['\"]?(data:|http:))\(['\"]?([^\/][^'\"\)]*)['\"]?\)/i", "url({$css_dir}/$2)", $css );
|
106 |
+
|
107 |
+
|
108 |
+
return $css;
|
109 |
+
}
|
110 |
+
|
111 |
+
|
112 |
+
/*--------------------------------------------------------------------------------------------------------
|
113 |
+
CSS OPTIMIZER - Minify All CSS
|
114 |
+
---------------------------------------------------------------------------------------------------------*/
|
115 |
+
|
116 |
+
|
117 |
+
function sbp_minify_css( $css ) {
|
118 |
+
|
119 |
+
$css = sbp_remove_multiline_comments( $css );
|
120 |
+
$css = str_replace( array( "\t", "\n", "\r" ), ' ', $css );
|
121 |
+
$cnt = 1;
|
122 |
+
|
123 |
+
while ( $cnt > 0 ) {
|
124 |
+
$css = str_replace( ' ', ' ', $css, $cnt );
|
125 |
+
}
|
126 |
+
|
127 |
+
$css = str_replace( array( ' {', '{ ' ), '{', $css );
|
128 |
+
$css = str_replace( array( ' }', '} ', ';}' ), '}', $css );
|
129 |
+
$css = str_replace( ': ', ':', $css );
|
130 |
+
$css = str_replace( '; ', ';', $css );
|
131 |
+
$css = str_replace( ', ', ',', $css );
|
132 |
+
|
133 |
+
return $css;
|
134 |
+
}
|
135 |
+
|
136 |
+
|
137 |
+
/*--------------------------------------------------------------------------------------------------------
|
138 |
+
CSS OPTIMIZER - Remove multi-line comments from CSS
|
139 |
+
---------------------------------------------------------------------------------------------------------*/
|
140 |
+
|
141 |
+
function sbp_remove_multiline_comments( $code, $method = 0 ) {
|
142 |
+
|
143 |
+
switch ( $method ) {
|
144 |
+
case 1:
|
145 |
+
{
|
146 |
+
|
147 |
+
$code = preg_replace( '/\s*(?!<\")\/\*[^\*]+\*\/(?!\")\s*/', '', $code );
|
148 |
+
break;
|
149 |
+
}
|
150 |
+
|
151 |
+
case 0:
|
152 |
+
|
153 |
+
default :
|
154 |
+
{
|
155 |
+
|
156 |
+
$open_pos = strpos( $code, '/*' );
|
157 |
+
while ( $open_pos !== false ) {
|
158 |
+
$close_pos = strpos( $code, '*/', $open_pos ) + 2;
|
159 |
+
if ( $close_pos ) {
|
160 |
+
$code = substr( $code, 0, $open_pos ) . substr( $code, $close_pos );
|
161 |
+
} else {
|
162 |
+
$code = substr( $code, 0, $open_pos );
|
163 |
+
}
|
164 |
+
|
165 |
+
$open_pos = strpos( $code, '/*', $open_pos );
|
166 |
+
}
|
167 |
+
|
168 |
+
break;
|
169 |
+
}
|
170 |
+
}
|
171 |
+
|
172 |
+
return $code;
|
173 |
+
}
|
174 |
+
|
175 |
+
|
176 |
+
/*--------------------------------------------------------------------------------------------------------
|
177 |
+
CSS OPTIMIZER - get stylesheets exception list
|
178 |
+
---------------------------------------------------------------------------------------------------------*/
|
179 |
+
|
180 |
+
function sbp_style_exceptions() {
|
181 |
+
|
182 |
+
/**
|
183 |
+
* Never include these CSS handles/files
|
184 |
+
*
|
185 |
+
* @since 3.7
|
186 |
+
*/
|
187 |
+
$default = array(
|
188 |
+
'admin-bar',
|
189 |
+
'dashicons',
|
190 |
+
);
|
191 |
+
|
192 |
+
$array = explode( "\n", get_option( 'sbp_css_exceptions' ) );
|
193 |
+
$css_exceptions = array();
|
194 |
+
foreach ( $array as $key => $ex ) {
|
195 |
+
if ( trim( $ex ) != '' ) {
|
196 |
+
$css_exceptions[ $key ] = trim( $ex );
|
197 |
+
|
198 |
+
}
|
199 |
+
}
|
200 |
+
|
201 |
+
// merge defaults with our actual exceptions
|
202 |
+
$css_exceptions = array_merge( $css_exceptions, $default );
|
203 |
+
|
204 |
+
return (array) $css_exceptions;
|
205 |
+
}
|
206 |
+
|
207 |
+
|
208 |
+
/*--------------------------------------------------------------------------------------------------------
|
209 |
+
CSS OPTIMIZER - get stylesheets exception names
|
210 |
+
---------------------------------------------------------------------------------------------------------*/
|
211 |
+
|
212 |
+
function is_css_excluded( $file ) {
|
213 |
+
global $wp_styles;
|
214 |
+
$css_exceptions = sbp_style_exceptions();
|
215 |
+
|
216 |
+
if ( is_string( $file ) && isset( $wp_styles->registered[ $file ] ) ) {
|
217 |
+
$filename = $file;
|
218 |
+
$file = $wp_styles->registered[ $file ];
|
219 |
+
}
|
220 |
+
|
221 |
+
foreach ( $css_exceptions as $ex ) {
|
222 |
+
if ( $file->handle == $ex || ( strpos( $ex, '.' ) !== false && strpos( $file->src, $ex ) !== false ) ) {
|
223 |
+
return true;
|
224 |
+
}
|
225 |
+
}
|
226 |
+
|
227 |
+
return false;
|
228 |
}
|
inc/images/icon-128x128.jpg
ADDED
Binary file
|
inc/images/icon-16x16.png
ADDED
Binary file
|
inc/images/sp.png
DELETED
Binary file
|
inc/js/admin-scripts.js
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* The contents of this script only gets loaded on the plugin page
|
3 |
+
*/
|
4 |
+
(function( $ ) {
|
5 |
+
|
6 |
+
'use strict';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Function used to handle admin UI postboxes
|
10 |
+
*/
|
11 |
+
function admin_postboxes() {
|
12 |
+
|
13 |
+
postboxes.add_postbox_toggles( pagenow );
|
14 |
+
|
15 |
+
// set cursor to pointer
|
16 |
+
$( '.postbox .hndle' ).css( 'cursor', 'pointer' );
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Function used for the image compression slider under "Image Optimization"
|
21 |
+
*/
|
22 |
+
function admin_jquery_sliders() {
|
23 |
+
|
24 |
+
var slider_selector = ".sbp-slider";
|
25 |
+
var slider_amount = ".sbp-amount";
|
26 |
+
var slider_integer = "#sbp_integer";
|
27 |
+
|
28 |
+
if ( $( slider_selector ).length > 0 ) {
|
29 |
+
|
30 |
+
$( slider_selector ).slider( {
|
31 |
+
value: jpegCompression,
|
32 |
+
min: 0,
|
33 |
+
max: 100,
|
34 |
+
step: 1,
|
35 |
+
slide: function( event, ui ) {
|
36 |
+
jQuery( slider_amount ).val( ui.value );
|
37 |
+
jQuery( slider_integer ).val( ui.value );
|
38 |
+
}
|
39 |
+
} );
|
40 |
+
|
41 |
+
$( slider_amount ).val( $( slider_selector ).slider( "value" ) );
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Handle UI tab switching via jQuery instead of relying on CSS only
|
47 |
+
*/
|
48 |
+
function admin_tab_switching() {
|
49 |
+
|
50 |
+
var nav_tab_selector = '.nav-tab-wrapper a';
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Default tab handling
|
54 |
+
*/
|
55 |
+
|
56 |
+
// make the first tab active by default
|
57 |
+
$( nav_tab_selector + ':first' ).addClass( 'nav-tab-active' );
|
58 |
+
|
59 |
+
// get the first tab href
|
60 |
+
var initial_tab_href = $( nav_tab_selector + ':first' ).attr( 'href' );
|
61 |
+
|
62 |
+
// make all the tabs, except the first one hidden
|
63 |
+
$( '.sb-pack-tab' ).each( function( index, value ) {
|
64 |
+
if ( '#' + $( this ).attr( 'id' ) !== initial_tab_href ) {
|
65 |
+
$( this ).hide();
|
66 |
+
}
|
67 |
+
} );
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Listen for click events on nav-tab links
|
71 |
+
*/
|
72 |
+
$( nav_tab_selector ).click( function( event ) {
|
73 |
+
|
74 |
+
$( nav_tab_selector ).removeClass( 'nav-tab-active' ); // remove class from previous selector
|
75 |
+
$( this ).addClass( 'nav-tab-active' ).blur(); // add class to currently clicked selector
|
76 |
+
|
77 |
+
var clicked_tab = $( this ).attr( 'href' );
|
78 |
+
|
79 |
+
$( '.sb-pack-tab' ).each( function( index, value ) {
|
80 |
+
if ( '#' + $( this ).attr( 'id' ) !== clicked_tab ) {
|
81 |
+
$( this ).hide();
|
82 |
+
}
|
83 |
+
|
84 |
+
$( clicked_tab ).fadeIn();
|
85 |
+
|
86 |
+
} );
|
87 |
+
|
88 |
+
// prevent default behavior
|
89 |
+
event.preventDefault();
|
90 |
+
|
91 |
+
} );
|
92 |
+
}
|
93 |
+
|
94 |
+
$( document ).ready( function() {
|
95 |
+
admin_postboxes();
|
96 |
+
admin_jquery_sliders();
|
97 |
+
admin_tab_switching();
|
98 |
+
} );
|
99 |
+
|
100 |
+
})( jQuery );
|
inc/js/jquery.unveil.js
CHANGED
@@ -1,72 +1,72 @@
|
|
1 |
-
/**
|
2 |
-
* jQuery Unveil
|
3 |
-
* A very lightweight jQuery plugin to lazy load images
|
4 |
-
* http://luis-almeida.github.com/unveil
|
5 |
-
*
|
6 |
-
* Modified by Sergej Müller
|
7 |
-
* http://wpcoder.de
|
8 |
-
*
|
9 |
-
* Licensed under the MIT license.
|
10 |
-
*/
|
11 |
-
|
12 |
-
;(function($) {
|
13 |
-
$.fn.unveil = function() {
|
14 |
-
|
15 |
-
var $w = $(window),
|
16 |
-
images = this,
|
17 |
-
loaded,
|
18 |
-
inview,
|
19 |
-
source;
|
20 |
-
|
21 |
-
this.one(
|
22 |
-
'unveil',
|
23 |
-
function() {
|
24 |
-
var $$ = $(this),
|
25 |
-
source = $$.data('src') || $$.attr('data-src');
|
26 |
-
|
27 |
-
if ( source) {
|
28 |
-
$$
|
29 |
-
.css('opacity', 0)
|
30 |
-
.attr('src', source)
|
31 |
-
.animate(
|
32 |
-
{
|
33 |
-
'opacity': 1
|
34 |
-
},
|
35 |
-
200
|
36 |
-
);
|
37 |
-
}
|
38 |
-
}
|
39 |
-
);
|
40 |
-
|
41 |
-
function unveil() {
|
42 |
-
inview = images.filter(
|
43 |
-
function() {
|
44 |
-
var $e = $(this),
|
45 |
-
wt = $w.scrollTop(),
|
46 |
-
wb = wt + $w.height(),
|
47 |
-
et = $e.offset().top,
|
48 |
-
eb = et + $e.height();
|
49 |
-
|
50 |
-
return eb >= wt && et <= wb;
|
51 |
-
}
|
52 |
-
);
|
53 |
-
|
54 |
-
loaded = inview.trigger('unveil');
|
55 |
-
images = images.not(loaded);
|
56 |
-
}
|
57 |
-
|
58 |
-
$w.scroll(unveil);
|
59 |
-
$w.resize(unveil);
|
60 |
-
|
61 |
-
unveil();
|
62 |
-
|
63 |
-
return this;
|
64 |
-
};
|
65 |
-
})(window.jQuery);
|
66 |
-
|
67 |
-
|
68 |
-
jQuery(document).ready(
|
69 |
-
function(){
|
70 |
-
jQuery("img.crazy_lazy").css('display', '').unveil();
|
71 |
-
}
|
72 |
);
|
1 |
+
/**
|
2 |
+
* jQuery Unveil
|
3 |
+
* A very lightweight jQuery plugin to lazy load images
|
4 |
+
* http://luis-almeida.github.com/unveil
|
5 |
+
*
|
6 |
+
* Modified by Sergej Müller
|
7 |
+
* http://wpcoder.de
|
8 |
+
*
|
9 |
+
* Licensed under the MIT license.
|
10 |
+
*/
|
11 |
+
|
12 |
+
;(function($) {
|
13 |
+
$.fn.unveil = function() {
|
14 |
+
|
15 |
+
var $w = $(window),
|
16 |
+
images = this,
|
17 |
+
loaded,
|
18 |
+
inview,
|
19 |
+
source;
|
20 |
+
|
21 |
+
this.one(
|
22 |
+
'unveil',
|
23 |
+
function() {
|
24 |
+
var $$ = $(this),
|
25 |
+
source = $$.data('src') || $$.attr('data-src');
|
26 |
+
|
27 |
+
if ( source) {
|
28 |
+
$$
|
29 |
+
.css('opacity', 0)
|
30 |
+
.attr('src', source)
|
31 |
+
.animate(
|
32 |
+
{
|
33 |
+
'opacity': 1
|
34 |
+
},
|
35 |
+
200
|
36 |
+
);
|
37 |
+
}
|
38 |
+
}
|
39 |
+
);
|
40 |
+
|
41 |
+
function unveil() {
|
42 |
+
inview = images.filter(
|
43 |
+
function() {
|
44 |
+
var $e = $(this),
|
45 |
+
wt = $w.scrollTop(),
|
46 |
+
wb = wt + $w.height(),
|
47 |
+
et = $e.offset().top,
|
48 |
+
eb = et + $e.height();
|
49 |
+
|
50 |
+
return eb >= wt && et <= wb;
|
51 |
+
}
|
52 |
+
);
|
53 |
+
|
54 |
+
loaded = inview.trigger('unveil');
|
55 |
+
images = images.not(loaded);
|
56 |
+
}
|
57 |
+
|
58 |
+
$w.scroll(unveil);
|
59 |
+
$w.resize(unveil);
|
60 |
+
|
61 |
+
unveil();
|
62 |
+
|
63 |
+
return this;
|
64 |
+
};
|
65 |
+
})(window.jQuery);
|
66 |
+
|
67 |
+
|
68 |
+
jQuery(document).ready(
|
69 |
+
function(){
|
70 |
+
jQuery("img.crazy_lazy").css('display', '').unveil();
|
71 |
+
}
|
72 |
);
|
inc/js/jquery.unveil.min.js
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
/**
|
2 |
-
* jQuery Unveil
|
3 |
-
* A very lightweight jQuery plugin to lazy load images
|
4 |
-
* http://luis-almeida.github.com/unveil
|
5 |
-
*
|
6 |
-
* Modified by Sergej Müller
|
7 |
-
* http://wpcoder.de
|
8 |
-
*
|
9 |
-
* Licensed under the MIT license.
|
10 |
-
*/
|
11 |
-
|
12 |
(function(c){c.fn.unveil=function(){function b(){e=a.filter(function(){var f=c(this),g=d.scrollTop(),b=g+d.height(),a=f.offset().top;return a+f.height()>=g&&a<=b});h=e.trigger("unveil");a=a.not(h)}var d=c(window),a=this,h,e;this.one("unveil",function(){var a=c(this),b=a.data("src")||a.attr("data-src");b&&a.css("opacity",0).attr("src",b).animate({opacity:1},200)});d.scroll(b);d.resize(b);b();return this}})(window.jQuery);jQuery(document).ready(function(){jQuery("img.crazy_lazy").css("display","").unveil()});
|
1 |
+
/**
|
2 |
+
* jQuery Unveil
|
3 |
+
* A very lightweight jQuery plugin to lazy load images
|
4 |
+
* http://luis-almeida.github.com/unveil
|
5 |
+
*
|
6 |
+
* Modified by Sergej Müller
|
7 |
+
* http://wpcoder.de
|
8 |
+
*
|
9 |
+
* Licensed under the MIT license.
|
10 |
+
*/
|
11 |
+
|
12 |
(function(c){c.fn.unveil=function(){function b(){e=a.filter(function(){var f=c(this),g=d.scrollTop(),b=g+d.height(),a=f.offset().top;return a+f.height()>=g&&a<=b});h=e.trigger("unveil");a=a.not(h)}var d=c(window),a=this,h,e;this.one("unveil",function(){var a=c(this),b=a.data("src")||a.attr("data-src");b&&a.css("opacity",0).attr("src",b).animate({opacity:1},200)});d.scroll(b);d.resize(b);b();return this}})(window.jQuery);jQuery(document).ready(function(){jQuery("img.crazy_lazy").css("display","").unveil()});
|
inc/js/lazyload.js
CHANGED
@@ -1,91 +1,91 @@
|
|
1 |
-
/* lazyload.js (c) Lorenzo Giuliani
|
2 |
-
* MIT License (http://www.opensource.org/licenses/mit-license.html)
|
3 |
-
*
|
4 |
-
* Modified by Sergej Müller | http://wpcoder.de
|
5 |
-
*/
|
6 |
-
|
7 |
-
|
8 |
-
window.onload = function() {
|
9 |
-
var $q = function(q, res){
|
10 |
-
if (document.querySelectorAll) {
|
11 |
-
res = document.querySelectorAll(q);
|
12 |
-
} else {
|
13 |
-
var d=document,
|
14 |
-
a=d.styleSheets[0] || d.createStyleSheet();
|
15 |
-
|
16 |
-
a.addRule(q,'f:b');
|
17 |
-
for(var l=d.all,b=0,c=[],f=l.length;b<f;b++)
|
18 |
-
l[b].currentStyle.f && c.push(l[b]);
|
19 |
-
|
20 |
-
a.removeRule(0);
|
21 |
-
res = c;
|
22 |
-
}
|
23 |
-
|
24 |
-
return res;
|
25 |
-
},
|
26 |
-
|
27 |
-
addEventListener = function(evt, fn) {
|
28 |
-
window.addEventListener
|
29 |
-
? this.addEventListener(evt, fn, false)
|
30 |
-
: (window.attachEvent)
|
31 |
-
? this.attachEvent('on' + evt, fn)
|
32 |
-
: this['on' + evt] = fn;
|
33 |
-
},
|
34 |
-
|
35 |
-
_has = function(obj, key) {
|
36 |
-
return Object.prototype.hasOwnProperty.call(obj, key);
|
37 |
-
};
|
38 |
-
|
39 |
-
function loadImage (el, fn) {
|
40 |
-
var img = new Image(),
|
41 |
-
src = el.getAttribute('data-src');
|
42 |
-
|
43 |
-
img.onload = function() {
|
44 |
-
if ( !! el.parent )
|
45 |
-
el.parent.replaceChild(img, el)
|
46 |
-
else
|
47 |
-
el.src = src;
|
48 |
-
|
49 |
-
if ( fn ) fn();
|
50 |
-
}
|
51 |
-
|
52 |
-
img.src = src;
|
53 |
-
}
|
54 |
-
|
55 |
-
function elementInViewport(el) {
|
56 |
-
var rect = el.getBoundingClientRect();
|
57 |
-
|
58 |
-
return (
|
59 |
-
rect.top >= 0
|
60 |
-
&& rect.left >= 0
|
61 |
-
&& rect.top <= (window.innerHeight || document.documentElement.clientHeight)
|
62 |
-
);
|
63 |
-
}
|
64 |
-
|
65 |
-
var images = new Array(),
|
66 |
-
query = $q('img.crazy_lazy'),
|
67 |
-
processScroll = function() {
|
68 |
-
for (var i = 0; i < images.length; i++) {
|
69 |
-
if (elementInViewport(images[i])) {
|
70 |
-
loadImage(
|
71 |
-
images[i],
|
72 |
-
function () {
|
73 |
-
images.splice(i, i);
|
74 |
-
}
|
75 |
-
);
|
76 |
-
}
|
77 |
-
}
|
78 |
-
};
|
79 |
-
|
80 |
-
for (var i = 0; i < query.length; i++) {
|
81 |
-
query[i].removeAttribute('style');
|
82 |
-
images.push(query[i]);
|
83 |
-
};
|
84 |
-
|
85 |
-
processScroll();
|
86 |
-
|
87 |
-
addEventListener(
|
88 |
-
'scroll',
|
89 |
-
processScroll
|
90 |
-
);
|
91 |
};
|
1 |
+
/* lazyload.js (c) Lorenzo Giuliani
|
2 |
+
* MIT License (http://www.opensource.org/licenses/mit-license.html)
|
3 |
+
*
|
4 |
+
* Modified by Sergej Müller | http://wpcoder.de
|
5 |
+
*/
|
6 |
+
|
7 |
+
|
8 |
+
window.onload = function() {
|
9 |
+
var $q = function(q, res){
|
10 |
+
if (document.querySelectorAll) {
|
11 |
+
res = document.querySelectorAll(q);
|
12 |
+
} else {
|
13 |
+
var d=document,
|
14 |
+
a=d.styleSheets[0] || d.createStyleSheet();
|
15 |
+
|
16 |
+
a.addRule(q,'f:b');
|
17 |
+
for(var l=d.all,b=0,c=[],f=l.length;b<f;b++)
|
18 |
+
l[b].currentStyle.f && c.push(l[b]);
|
19 |
+
|
20 |
+
a.removeRule(0);
|
21 |
+
res = c;
|
22 |
+
}
|
23 |
+
|
24 |
+
return res;
|
25 |
+
},
|
26 |
+
|
27 |
+
addEventListener = function(evt, fn) {
|
28 |
+
window.addEventListener
|
29 |
+
? this.addEventListener(evt, fn, false)
|
30 |
+
: (window.attachEvent)
|
31 |
+
? this.attachEvent('on' + evt, fn)
|
32 |
+
: this['on' + evt] = fn;
|
33 |
+
},
|
34 |
+
|
35 |
+
_has = function(obj, key) {
|
36 |
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
37 |
+
};
|
38 |
+
|
39 |
+
function loadImage (el, fn) {
|
40 |
+
var img = new Image(),
|
41 |
+
src = el.getAttribute('data-src');
|
42 |
+
|
43 |
+
img.onload = function() {
|
44 |
+
if ( !! el.parent )
|
45 |
+
el.parent.replaceChild(img, el)
|
46 |
+
else
|
47 |
+
el.src = src;
|
48 |
+
|
49 |
+
if ( fn ) fn();
|
50 |
+
}
|
51 |
+
|
52 |
+
img.src = src;
|
53 |
+
}
|
54 |
+
|
55 |
+
function elementInViewport(el) {
|
56 |
+
var rect = el.getBoundingClientRect();
|
57 |
+
|
58 |
+
return (
|
59 |
+
rect.top >= 0
|
60 |
+
&& rect.left >= 0
|
61 |
+
&& rect.top <= (window.innerHeight || document.documentElement.clientHeight)
|
62 |
+
);
|
63 |
+
}
|
64 |
+
|
65 |
+
var images = new Array(),
|
66 |
+
query = $q('img.crazy_lazy'),
|
67 |
+
processScroll = function() {
|
68 |
+
for (var i = 0; i < images.length; i++) {
|
69 |
+
if (elementInViewport(images[i])) {
|
70 |
+
loadImage(
|
71 |
+
images[i],
|
72 |
+
function () {
|
73 |
+
images.splice(i, i);
|
74 |
+
}
|
75 |
+
);
|
76 |
+
}
|
77 |
+
}
|
78 |
+
};
|
79 |
+
|
80 |
+
for (var i = 0; i < query.length; i++) {
|
81 |
+
query[i].removeAttribute('style');
|
82 |
+
images.push(query[i]);
|
83 |
+
};
|
84 |
+
|
85 |
+
processScroll();
|
86 |
+
|
87 |
+
addEventListener(
|
88 |
+
'scroll',
|
89 |
+
processScroll
|
90 |
+
);
|
91 |
};
|
inc/js/lazyload.min.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
/* lazyload.js (c) Lorenzo Giuliani
|
2 |
-
* MIT License (http://www.opensource.org/licenses/mit-license.html)
|
3 |
-
*
|
4 |
-
* Modified by Sergej Müller | http://wpcoder.de
|
5 |
-
*/
|
6 |
-
|
7 |
-
window.onload=function(){function h(a,e){var c=new Image,b=a.getAttribute("data-src");c.onload=function(){a.parent?a.parent.replaceChild(c,a):a.src=b;e&&e()};c.src=b}function k(a){a=a.getBoundingClientRect();return 0<=a.top&&0<=a.left&&a.top<=(window.innerHeight||document.documentElement.clientHeight)}for(var b=[],f=function(a,e){if(document.querySelectorAll)e=document.querySelectorAll(a);else{var c=document,b=c.styleSheets[0]||c.createStyleSheet();b.addRule(a,"f:b");for(var c=c.all,d=0,f=[],g=c.length;d<
|
8 |
g;d++)c[d].currentStyle.f&&f.push(c[d]);b.removeRule(0);e=f}return e}("img.crazy_lazy"),g=function(){for(var a=0;a<b.length;a++)k(b[a])&&h(b[a],function(){b.splice(a,a)})},d=0;d<f.length;d++)f[d].removeAttribute("style"),b.push(f[d]);g();(function(a,b){window.addEventListener?this.addEventListener(a,b,!1):window.attachEvent?this.attachEvent("on"+a,b):this["on"+a]=b})("scroll",g)};
|
1 |
+
/* lazyload.js (c) Lorenzo Giuliani
|
2 |
+
* MIT License (http://www.opensource.org/licenses/mit-license.html)
|
3 |
+
*
|
4 |
+
* Modified by Sergej Müller | http://wpcoder.de
|
5 |
+
*/
|
6 |
+
|
7 |
+
window.onload=function(){function h(a,e){var c=new Image,b=a.getAttribute("data-src");c.onload=function(){a.parent?a.parent.replaceChild(c,a):a.src=b;e&&e()};c.src=b}function k(a){a=a.getBoundingClientRect();return 0<=a.top&&0<=a.left&&a.top<=(window.innerHeight||document.documentElement.clientHeight)}for(var b=[],f=function(a,e){if(document.querySelectorAll)e=document.querySelectorAll(a);else{var c=document,b=c.styleSheets[0]||c.createStyleSheet();b.addRule(a,"f:b");for(var c=c.all,d=0,f=[],g=c.length;d<
|
8 |
g;d++)c[d].currentStyle.f&&f.push(c[d]);b.removeRule(0);e=f}return e}("img.crazy_lazy"),g=function(){for(var a=0;a<b.length;a++)k(b[a])&&h(b[a],function(){b.splice(a,a)})},d=0;d<f.length;d++)f[d].removeAttribute("style"),b.push(f[d]);g();(function(a,b){window.addEventListener?this.addEventListener(a,b,!1):window.attachEvent?this.attachEvent("on"+a,b):this["on"+a]=b})("scroll",g)};
|
inc/js/plugin-install.js
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function( wp, $ ) {
|
2 |
+
'use strict';
|
3 |
+
|
4 |
+
if ( ! wp ) {
|
5 |
+
return;
|
6 |
+
}
|
7 |
+
|
8 |
+
function activatePlugin( url, el ) {
|
9 |
+
var message = el.data( 'message' );
|
10 |
+
|
11 |
+
$.ajax( {
|
12 |
+
async: true,
|
13 |
+
type: 'GET',
|
14 |
+
dataType: 'html',
|
15 |
+
url: url,
|
16 |
+
success: function() {
|
17 |
+
el.removeClass( 'sbp-updating' );
|
18 |
+
el.text( message );
|
19 |
+
}
|
20 |
+
} );
|
21 |
+
}
|
22 |
+
|
23 |
+
$( function() {
|
24 |
+
$( document ).on( 'click', '.sbp-plugin-button', function( event ) {
|
25 |
+
var action = $( this ).data( 'action' ),
|
26 |
+
url = $( this ).attr( 'href' ),
|
27 |
+
slug = $( this ).data( 'slug' );
|
28 |
+
|
29 |
+
event.preventDefault();
|
30 |
+
|
31 |
+
if ( 'install' === action ) {
|
32 |
+
|
33 |
+
$( this ).addClass( 'sbp-updating disbpled' );
|
34 |
+
|
35 |
+
wp.updates.installPlugin( {
|
36 |
+
slug: slug
|
37 |
+
} );
|
38 |
+
|
39 |
+
} else if ( 'activate' === action ) {
|
40 |
+
|
41 |
+
$( this ).addClass( 'sbp-updating disbpled' );
|
42 |
+
activatePlugin( url, $( this ) );
|
43 |
+
|
44 |
+
}
|
45 |
+
|
46 |
+
} );
|
47 |
+
|
48 |
+
$( document ).on( 'wp-plugin-install-success', function( response, data ) {
|
49 |
+
var el = $( '.sbp-plugin-button[data-slug="' + data.slug + '"]' );
|
50 |
+
event.preventDefault();
|
51 |
+
activatePlugin( data.activateUrl, el );
|
52 |
+
} );
|
53 |
+
|
54 |
+
} );
|
55 |
+
})( window.wp, jQuery );
|
inc/js/post-tabs-edit.js
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
jQuery(document).on('ready', function($){
|
2 |
-
postboxes.save_state = function(){
|
3 |
-
return;
|
4 |
-
};
|
5 |
-
postboxes.save_order = function(){
|
6 |
-
return;
|
7 |
-
};
|
8 |
-
postboxes.add_postbox_toggles();
|
9 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/js/sbp-hide.js
DELETED
@@ -1,16 +0,0 @@
|
|
1 |
-
if (typeof (jQuery) != 'undefined') {
|
2 |
-
jQuery(document).ready(function () {
|
3 |
-
validate();
|
4 |
-
jQuery('input').change(function () {
|
5 |
-
validate();
|
6 |
-
})
|
7 |
-
});
|
8 |
-
|
9 |
-
function validate() {
|
10 |
-
if (jQuery('input[id=sbp_css_async]').is(':checked')) {
|
11 |
-
jQuery('#sbp-css-content').show();
|
12 |
-
} else {
|
13 |
-
jQuery('#sbp-css-content').hide();
|
14 |
-
}
|
15 |
-
}
|
16 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/js/sbp-slide.js
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
jQuery(document).ready(function () {
|
2 |
-
jQuery(".sbp-slider").slider({
|
3 |
-
value: jpegCompression,
|
4 |
-
min: 0,
|
5 |
-
max: 100,
|
6 |
-
step: 1,
|
7 |
-
slide: function (event, ui) {
|
8 |
-
jQuery(".sbp-amount").val(ui.value);
|
9 |
-
jQuery("#sbp_integer").val(ui.value);
|
10 |
-
}
|
11 |
-
});
|
12 |
-
jQuery(".sbp-amount").val(jQuery(".sbp-slider").slider("value"));
|
13 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/sbp-minifier.php
CHANGED
@@ -1,120 +1,121 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*--------------------------------------------------------------------------------------------------------
|
4 |
-
MINIFIER - increase your page load speed by minifying JavaScript and HTML
|
5 |
-
---------------------------------------------------------------------------------------------------------*/
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
protected $
|
11 |
-
protected $
|
12 |
-
protected $
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
$
|
29 |
-
$
|
30 |
-
$savings =
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
$
|
38 |
-
$
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
//
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
$str = str_replace("\
|
102 |
-
$str = str_replace("\
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
|
|
120 |
add_action('get_header', 'sbp_html_minifier_start');
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*--------------------------------------------------------------------------------------------------------
|
4 |
+
MINIFIER - increase your page load speed by minifying JavaScript and HTML
|
5 |
+
---------------------------------------------------------------------------------------------------------*/
|
6 |
+
|
7 |
+
|
8 |
+
class SBP_HTML_Minifier {
|
9 |
+
// Minify settings
|
10 |
+
protected $minify_css = true;
|
11 |
+
protected $minify_js = false;
|
12 |
+
protected $info_comment = true;
|
13 |
+
protected $remove_comments = true;
|
14 |
+
|
15 |
+
// Minify variables
|
16 |
+
protected $html;
|
17 |
+
public function __construct($html) {
|
18 |
+
if (!empty($html)) {
|
19 |
+
$this->parseHTML($html);
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
public function __toString() {
|
24 |
+
return $this->html;
|
25 |
+
}
|
26 |
+
|
27 |
+
protected function bottomComment($raw, $minified) {
|
28 |
+
$raw = strlen($raw);
|
29 |
+
$minified = strlen($minified);
|
30 |
+
$savings = ($raw-$minified) / $raw * 100;
|
31 |
+
$savings = round($savings, 2);
|
32 |
+
return '<!--HTML minified, size saved '.$savings.'%. From '.$raw.' bytes, now '.$minified.' bytes-->';
|
33 |
+
}
|
34 |
+
|
35 |
+
protected function minifyHTML($html) {
|
36 |
+
$pattern = '/<(?<script>script).*?<\/script\s*>|<(?<style>style).*?<\/style\s*>|<!(?<comment>--).*?-->|<(?<tag>[\/\w.:-]*)(?:".*?"|\'.*?\'|[^\'">]+)*>|(?<text>((<[^!\/\w.:-])?[^<]*)+)|/si';
|
37 |
+
preg_match_all($pattern, $html, $matches, PREG_SET_ORDER);
|
38 |
+
$overriding = false;
|
39 |
+
$raw_tag = false;
|
40 |
+
// Variable reused for output
|
41 |
+
$html = '';
|
42 |
+
foreach ($matches as $token) {
|
43 |
+
$tag = (isset($token['tag'])) ? strtolower($token['tag']) : null;
|
44 |
+
|
45 |
+
$content = $token[0];
|
46 |
+
|
47 |
+
if (is_null($tag)) {
|
48 |
+
if ( !empty($token['script']) ) {
|
49 |
+
$strip = $this->minify_js;
|
50 |
+
} else if ( !empty($token['style']) ) {
|
51 |
+
$strip = $this->minify_css;
|
52 |
+
} else if ($content == '<!--sbp-html-minifier no minifier-->'){
|
53 |
+
$overriding = !$overriding;
|
54 |
+
|
55 |
+
// Don't print the comments
|
56 |
+
continue;
|
57 |
+
} else if ($this->remove_comments){
|
58 |
+
if (!$overriding && $raw_tag != 'textarea'){
|
59 |
+
// Remove any HTML comments, except MSIE conditional comments
|
60 |
+
$content = preg_replace('/<!--(?!\s*(?:\[if [^\]]+]|<!|>))(?:(?!-->).)*-->/s', '', $content);
|
61 |
+
}
|
62 |
+
}
|
63 |
+
}else{
|
64 |
+
if ($tag == 'pre' || $tag == 'textarea'){
|
65 |
+
$raw_tag = $tag;
|
66 |
+
}else if ($tag == '/pre' || $tag == '/textarea'){
|
67 |
+
$raw_tag = false;
|
68 |
+
}else{
|
69 |
+
if ($raw_tag || $overriding){
|
70 |
+
$strip = false;
|
71 |
+
}else{
|
72 |
+
$strip = true;
|
73 |
+
// Remove all empty attributes, except action, alt, content, src
|
74 |
+
$content = preg_replace('/(\s+)(\w++(?<!\baction|\balt|\bcontent|\bsrc)="")/', '$1', $content);
|
75 |
+
// Remove all space before the end of self-closing XHTML tags
|
76 |
+
// JavaScript excluded
|
77 |
+
$content = str_replace(' />', '/>', $content);
|
78 |
+
}
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
if ($strip){
|
83 |
+
$content = $this->removeWhiteSpace($content);
|
84 |
+
}
|
85 |
+
|
86 |
+
$html .= $content;
|
87 |
+
}
|
88 |
+
|
89 |
+
return $html;
|
90 |
+
}
|
91 |
+
|
92 |
+
public function parseHTML($html){
|
93 |
+
$this->html = $this->minifyHTML($html);
|
94 |
+
|
95 |
+
if ($this->info_comment){
|
96 |
+
$this->html .= "\n" . $this->bottomComment($html, $this->html);
|
97 |
+
}
|
98 |
+
}
|
99 |
+
|
100 |
+
protected function removeWhiteSpace($str){
|
101 |
+
$str = str_replace("\t", ' ', $str);
|
102 |
+
$str = str_replace("\n", '', $str);
|
103 |
+
$str = str_replace("\r", '', $str);
|
104 |
+
|
105 |
+
while (stristr($str, ' ')){
|
106 |
+
$str = str_replace(' ', ' ', $str);
|
107 |
+
}
|
108 |
+
|
109 |
+
return $str;
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
function sbp_html_minifier_finish($html){
|
114 |
+
return new SBP_HTML_Minifier($html);
|
115 |
+
}
|
116 |
+
|
117 |
+
function sbp_html_minifier_start(){
|
118 |
+
ob_start('sbp_html_minifier_finish');
|
119 |
+
}
|
120 |
+
|
121 |
add_action('get_header', 'sbp_html_minifier_start');
|
inc/settings.php
CHANGED
@@ -1,324 +1,290 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if( !class_exists( 'Speed_Booster_Pack_Options' ) ) {
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
/*--------------------------------------------------------------------------------------------------------
|
109 |
-
|
110 |
-
---------------------------------------------------------------------------------------------------------*/
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
if ( get_option( 'sbp_defer_exceptions2' ) ) {
|
293 |
-
$defer_exceptions2 = get_option( 'sbp_defer_exceptions2' );
|
294 |
-
} else {
|
295 |
-
$defer_exceptions2 = '' ;
|
296 |
-
}
|
297 |
-
|
298 |
-
if ( get_option( 'sbp_defer_exceptions3' ) ) {
|
299 |
-
$defer_exceptions3 = get_option( 'sbp_defer_exceptions3' );
|
300 |
-
} else {
|
301 |
-
$defer_exceptions3 = '' ;
|
302 |
-
}
|
303 |
-
|
304 |
-
if ( get_option( 'sbp_defer_exceptions4' ) ) {
|
305 |
-
$defer_exceptions4 = get_option( 'sbp_defer_exceptions4' );
|
306 |
-
} else {
|
307 |
-
$defer_exceptions4 = '' ;
|
308 |
-
}
|
309 |
-
|
310 |
-
/*--------------------------------------------------------------------------------------------------------*/
|
311 |
-
|
312 |
-
// Render the plugin options page HTML
|
313 |
-
include( SPEED_BOOSTER_PACK_PATH . 'css/dynamic-css.php' );
|
314 |
-
|
315 |
-
// Render the plugin options page HTML
|
316 |
-
include( SPEED_BOOSTER_PACK_PATH . 'inc/template/options.php' );
|
317 |
-
|
318 |
-
} // END public function sbp_plugin_settings_page()
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
} // END class Speed_Booster_Pack_Options
|
323 |
-
|
324 |
-
} // END if(!class_exists('Speed_Booster_Pack_Options'))
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! class_exists( 'Speed_Booster_Pack_Options' ) ) {
|
4 |
+
|
5 |
+
class Speed_Booster_Pack_Options {
|
6 |
+
|
7 |
+
private $sbp_options;
|
8 |
+
|
9 |
+
/*--------------------------------------------------------------------------------------------------------
|
10 |
+
Construct the plugin object
|
11 |
+
---------------------------------------------------------------------------------------------------------*/
|
12 |
+
|
13 |
+
public function __construct() {
|
14 |
+
|
15 |
+
add_action( 'admin_init', array( $this, 'sbp_admin_init' ) );
|
16 |
+
add_action( 'admin_menu', array( $this, 'sbp_add_menu' ) );
|
17 |
+
add_action( 'wp_footer', array( $this, 'sbp_detected_scripts_handle' ), 999 );
|
18 |
+
add_action( 'wp_footer', array( $this, 'sbp_detected_scripts_src' ), 999 );
|
19 |
+
add_action( 'wp_footer', array( $this, 'sbp_detected_styles_handle' ), 999 );
|
20 |
+
|
21 |
+
} // END public function __construct
|
22 |
+
|
23 |
+
|
24 |
+
public function sbp_admin_init() {
|
25 |
+
|
26 |
+
register_setting( 'speed_booster_settings_group', 'sbp_settings' );
|
27 |
+
register_setting( 'speed_booster_settings_group', 'sbp_integer' );
|
28 |
+
register_setting( 'speed_booster_settings_group', 'sbp_css_exceptions' );
|
29 |
+
register_setting( 'speed_booster_settings_group', 'sbp_sanitize' );
|
30 |
+
|
31 |
+
register_setting( 'speed_booster_settings_group', 'sbp_js_footer_exceptions1' );
|
32 |
+
register_setting( 'speed_booster_settings_group', 'sbp_js_footer_exceptions2' );
|
33 |
+
register_setting( 'speed_booster_settings_group', 'sbp_js_footer_exceptions3' );
|
34 |
+
register_setting( 'speed_booster_settings_group', 'sbp_js_footer_exceptions4' );
|
35 |
+
|
36 |
+
register_setting( 'speed_booster_settings_group', 'sbp_defer_exceptions1' );
|
37 |
+
register_setting( 'speed_booster_settings_group', 'sbp_defer_exceptions2' );
|
38 |
+
register_setting( 'speed_booster_settings_group', 'sbp_defer_exceptions3' );
|
39 |
+
register_setting( 'speed_booster_settings_group', 'sbp_defer_exceptions4' );
|
40 |
+
|
41 |
+
} // END public function admin_init
|
42 |
+
|
43 |
+
|
44 |
+
/*--------------------------------------------------------------------------------------------------------
|
45 |
+
Get enqueued scripts handles
|
46 |
+
---------------------------------------------------------------------------------------------------------*/
|
47 |
+
|
48 |
+
public function sbp_detected_scripts_handle( $handles = array() ) {
|
49 |
+
|
50 |
+
global $wp_scripts;
|
51 |
+
|
52 |
+
|
53 |
+
// scripts
|
54 |
+
foreach ( $wp_scripts->registered as $registered ) {
|
55 |
+
$script_urls[ $registered->handle ] = $registered->src;
|
56 |
+
}
|
57 |
+
|
58 |
+
// if empty
|
59 |
+
if ( empty( $handles ) ) {
|
60 |
+
$handles = array_merge( $wp_scripts->done );
|
61 |
+
array_values( $handles );
|
62 |
+
}
|
63 |
+
// output of values
|
64 |
+
$get_enqueued_scripts_handle = '';
|
65 |
+
foreach ( $handles as $handle ) {
|
66 |
+
if ( ! empty( $script_urls[ $handle ] ) ) {
|
67 |
+
$get_enqueued_scripts_handle .= $handle . '<br />';
|
68 |
+
}
|
69 |
+
|
70 |
+
}
|
71 |
+
|
72 |
+
update_option( 'all_theme_scripts_handle', $get_enqueued_scripts_handle );
|
73 |
+
|
74 |
+
}
|
75 |
+
|
76 |
+
/*--------------------------------------------------------------------------------------------------------
|
77 |
+
Get enqueued scripts src path
|
78 |
+
---------------------------------------------------------------------------------------------------------*/
|
79 |
+
|
80 |
+
public function sbp_detected_scripts_src( $handles = array() ) {
|
81 |
+
|
82 |
+
global $wp_scripts;
|
83 |
+
|
84 |
+
// scripts
|
85 |
+
foreach ( $wp_scripts->registered as $registered ) {
|
86 |
+
$script_urls[ $registered->handle ] = $registered->src;
|
87 |
+
}
|
88 |
+
|
89 |
+
// if empty
|
90 |
+
if ( empty( $handles ) ) {
|
91 |
+
$handles = array_merge( $wp_scripts->done );
|
92 |
+
array_values( $handles );
|
93 |
+
}
|
94 |
+
// output of values
|
95 |
+
$get_enqueued_scripts_src = '';
|
96 |
+
foreach ( $handles as $handle ) {
|
97 |
+
if ( ! empty( $script_urls[ $handle ] ) ) {
|
98 |
+
$get_enqueued_scripts_src .= $script_urls[ $handle ] . '<br />';
|
99 |
+
}
|
100 |
+
|
101 |
+
}
|
102 |
+
|
103 |
+
update_option( 'all_theme_scripts_src', $get_enqueued_scripts_src );
|
104 |
+
|
105 |
+
}
|
106 |
+
|
107 |
+
|
108 |
+
/*--------------------------------------------------------------------------------------------------------
|
109 |
+
Get enqueued style handles
|
110 |
+
---------------------------------------------------------------------------------------------------------*/
|
111 |
+
|
112 |
+
public function sbp_detected_styles_handle( $handles = array() ) {
|
113 |
+
|
114 |
+
global $wp_styles;
|
115 |
+
|
116 |
+
|
117 |
+
// scripts
|
118 |
+
foreach ( $wp_styles->registered as $registered ) {
|
119 |
+
$style_urls[ $registered->handle ] = $registered->src;
|
120 |
+
}
|
121 |
+
|
122 |
+
// if empty
|
123 |
+
if ( empty( $handles ) ) {
|
124 |
+
$handles = array_merge( $wp_styles->queue );
|
125 |
+
array_values( $handles );
|
126 |
+
}
|
127 |
+
// output of values
|
128 |
+
$get_enqueued_styles_handle = '';
|
129 |
+
foreach ( $handles as $handle ) {
|
130 |
+
if ( ! empty( $style_urls[ $handle ] ) ) {
|
131 |
+
$get_enqueued_styles_handle .= $handle . '<br />';
|
132 |
+
}
|
133 |
+
|
134 |
+
}
|
135 |
+
|
136 |
+
update_option( 'all_theme_styles_handle', $get_enqueued_styles_handle );
|
137 |
+
|
138 |
+
}
|
139 |
+
|
140 |
+
|
141 |
+
/*--------------------------------------------------------------------------------------------------------
|
142 |
+
Sanitize Options
|
143 |
+
---------------------------------------------------------------------------------------------------------*/
|
144 |
+
|
145 |
+
public function sbp_sanitize( $input ) {
|
146 |
+
|
147 |
+
$output = array();
|
148 |
+
|
149 |
+
foreach ( $input as $key => $tigu ) {
|
150 |
+
|
151 |
+
switch ( $key ) {
|
152 |
+
case 'sbp_js_footer_exceptions1':
|
153 |
+
$output[ $key ] = esc_html( $tigu );
|
154 |
+
break;
|
155 |
+
case 'sbp_js_footer_exceptions2':
|
156 |
+
$output[ $key ] = esc_html( $tigu );
|
157 |
+
break;
|
158 |
+
case 'sbp_js_footer_exceptions3':
|
159 |
+
$output[ $key ] = esc_html( $tigu );
|
160 |
+
break;
|
161 |
+
case 'sbp_js_footer_exceptions4':
|
162 |
+
$output[ $key ] = esc_html( $tigu );
|
163 |
+
break;
|
164 |
+
}
|
165 |
+
|
166 |
+
}
|
167 |
+
|
168 |
+
return $output;
|
169 |
+
}
|
170 |
+
|
171 |
+
|
172 |
+
/*--------------------------------------------------------------------------------------------------------
|
173 |
+
// Add a page to manage the plugin's settings
|
174 |
+
---------------------------------------------------------------------------------------------------------*/
|
175 |
+
|
176 |
+
public function sbp_add_menu() {
|
177 |
+
|
178 |
+
global $sbp_settings_page;
|
179 |
+
$sbp_settings_page = add_menu_page( __( 'Speed Booster Options', 'sb-pack' ), __( 'Speed Booster', 'sb-pack' ), 'manage_options', 'sbp-options', array(
|
180 |
+
$this,
|
181 |
+
'sbp_plugin_settings_page',
|
182 |
+
), plugin_dir_url( __FILE__ ) . 'images/icon-16x16.png' );
|
183 |
+
|
184 |
+
} // END public function add_menu()
|
185 |
+
|
186 |
+
|
187 |
+
public function sbp_plugin_settings_page() {
|
188 |
+
|
189 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
190 |
+
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
|
191 |
+
}
|
192 |
+
|
193 |
+
|
194 |
+
/*--------------------------------------------------------------------------------------------------------
|
195 |
+
Global Variables used on options HTML page
|
196 |
+
---------------------------------------------------------------------------------------------------------*/
|
197 |
+
|
198 |
+
global $sbp_options;
|
199 |
+
|
200 |
+
// Global variables used in plugin options page
|
201 |
+
$url = get_site_url();
|
202 |
+
$response = wp_remote_get( $url, array() );
|
203 |
+
$page_time = get_option( 'sbp_page_time' );
|
204 |
+
$page_queries = get_option( 'sbp_page_queries' );
|
205 |
+
$get_enqueued_scripts_handle = get_option( 'all_theme_scripts_handle' );
|
206 |
+
$get_enqueued_scripts_src = get_option( 'all_theme_scripts_src' );
|
207 |
+
$get_enqueued_styles_handle = get_option( 'all_theme_styles_handle' );
|
208 |
+
|
209 |
+
// fallback for image compression integer
|
210 |
+
if ( get_option( 'sbp_integer' ) ) {
|
211 |
+
$this->image_compression = get_option( 'sbp_integer' );
|
212 |
+
} else {
|
213 |
+
$this->image_compression = 75;
|
214 |
+
}
|
215 |
+
$this->plugin_url = plugin_dir_url( dirname( __FILE__ ) );
|
216 |
+
|
217 |
+
// fallback for stylesheets exception handle
|
218 |
+
if ( get_option( 'sbp_css_exceptions' ) ) {
|
219 |
+
$css_exceptions = get_option( 'sbp_css_exceptions' );
|
220 |
+
} else {
|
221 |
+
$css_exceptions = '';
|
222 |
+
}
|
223 |
+
|
224 |
+
/*--------------------------------------------------------------------------------------------------------*/
|
225 |
+
|
226 |
+
if ( get_option( 'sbp_js_footer_exceptions1' ) ) {
|
227 |
+
$js_footer_exceptions1 = get_option( 'sbp_js_footer_exceptions1' );
|
228 |
+
} else {
|
229 |
+
$js_footer_exceptions1 = '';
|
230 |
+
}
|
231 |
+
|
232 |
+
if ( get_option( 'sbp_js_footer_exceptions2' ) ) {
|
233 |
+
$js_footer_exceptions2 = get_option( 'sbp_js_footer_exceptions2' );
|
234 |
+
} else {
|
235 |
+
$js_footer_exceptions2 = '';
|
236 |
+
}
|
237 |
+
|
238 |
+
if ( get_option( 'sbp_js_footer_exceptions3' ) ) {
|
239 |
+
$js_footer_exceptions3 = get_option( 'sbp_js_footer_exceptions3' );
|
240 |
+
} else {
|
241 |
+
$js_footer_exceptions3 = '';
|
242 |
+
}
|
243 |
+
|
244 |
+
if ( get_option( 'sbp_js_footer_exceptions4' ) ) {
|
245 |
+
$js_footer_exceptions4 = get_option( 'sbp_js_footer_exceptions4' );
|
246 |
+
} else {
|
247 |
+
$js_footer_exceptions4 = '';
|
248 |
+
}
|
249 |
+
|
250 |
+
/*--------------------------------------------------------------------------------------------------------*/
|
251 |
+
|
252 |
+
|
253 |
+
|
254 |
+
if ( get_option( 'sbp_defer_exceptions1' ) ) {
|
255 |
+
$defer_exceptions1 = get_option( 'sbp_defer_exceptions1' );
|
256 |
+
} else {
|
257 |
+
$defer_exceptions1 = '';
|
258 |
+
}
|
259 |
+
|
260 |
+
if ( get_option( 'sbp_defer_exceptions2' ) ) {
|
261 |
+
$defer_exceptions2 = get_option( 'sbp_defer_exceptions2' );
|
262 |
+
} else {
|
263 |
+
$defer_exceptions2 = '';
|
264 |
+
}
|
265 |
+
|
266 |
+
if ( get_option( 'sbp_defer_exceptions3' ) ) {
|
267 |
+
$defer_exceptions3 = get_option( 'sbp_defer_exceptions3' );
|
268 |
+
} else {
|
269 |
+
$defer_exceptions3 = '';
|
270 |
+
}
|
271 |
+
|
272 |
+
if ( get_option( 'sbp_defer_exceptions4' ) ) {
|
273 |
+
$defer_exceptions4 = get_option( 'sbp_defer_exceptions4' );
|
274 |
+
} else {
|
275 |
+
$defer_exceptions4 = '';
|
276 |
+
}
|
277 |
+
|
278 |
+
/*--------------------------------------------------------------------------------------------------------*/
|
279 |
+
|
280 |
+
|
281 |
+
|
282 |
+
// Render the plugin options page HTML
|
283 |
+
include( SPEED_BOOSTER_PACK_PATH . 'inc/template/options.php' );
|
284 |
+
|
285 |
+
} // END public function sbp_plugin_settings_page()
|
286 |
+
|
287 |
+
|
288 |
+
} // END class Speed_Booster_Pack_Options
|
289 |
+
|
290 |
+
} // END if(!class_exists('Speed_Booster_Pack_Options'))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/template/notice.php
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
-
<div class='notice notice-warning' id='sbp-news' style="padding-top: 7px">
|
2 |
-
<div style="float:right;"><a href="javascript:dismissNews()" class="button" style="margin-top:10px;"><?php _e('Dismiss','sb-pack');?></a></div>
|
3 |
-
<strong><?php _e('Speed Booster Pack','sb-pack');?></strong>
|
4 |
-
<p><?php printf(__('Check out the %s Plugin settings %s for new features that can make your site load faster.','sb-pack'), '<a href="
|
5 |
-
</div>
|
6 |
-
<script>
|
7 |
-
function dismissNews() {
|
8 |
-
jQuery("#sbp-news").hide();
|
9 |
-
var data = { action : 'sbp_dismiss_notices'};
|
10 |
-
jQuery.get('<?php echo admin_url('admin-ajax.php'); ?>', data, function(response) {
|
11 |
-
data = JSON.parse(response);
|
12 |
-
if(data["Status"] == 0) {
|
13 |
-
console.log("dismissed");
|
14 |
-
}
|
15 |
-
});
|
16 |
-
}
|
17 |
-
</script>
|
1 |
+
<div class='notice notice-warning' id='sbp-news' style="padding-top: 7px">
|
2 |
+
<div style="float:right;"><a href="javascript:dismissNews()" class="button" style="margin-top:10px;"><?php _e('Dismiss','sb-pack');?></a></div>
|
3 |
+
<strong><?php _e('Speed Booster Pack','sb-pack');?></strong>
|
4 |
+
<p><?php printf(__('Check out the %s Plugin settings %s for new features that can make your site load faster.','sb-pack'), '<a href="admin.php?page=sbp-options">', '</a>');?></p>
|
5 |
+
</div>
|
6 |
+
<script>
|
7 |
+
function dismissNews() {
|
8 |
+
jQuery("#sbp-news").hide();
|
9 |
+
var data = { action : 'sbp_dismiss_notices'};
|
10 |
+
jQuery.get('<?php echo admin_url('admin-ajax.php'); ?>', data, function(response) {
|
11 |
+
data = JSON.parse(response);
|
12 |
+
if(data["Status"] == 0) {
|
13 |
+
console.log("dismissed");
|
14 |
+
}
|
15 |
+
});
|
16 |
+
}
|
17 |
+
</script>
|
inc/template/options.php
CHANGED
@@ -1,444 +1,579 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
<div class="
|
21 |
-
|
22 |
-
|
23 |
-
<
|
24 |
-
|
25 |
-
<div class="
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
<
|
34 |
-
<
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
<
|
39 |
-
<
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
<
|
49 |
-
|
50 |
-
<
|
51 |
-
|
52 |
-
|
53 |
-
<
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
<
|
66 |
-
<
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
<div class="
|
73 |
-
<
|
74 |
-
|
75 |
-
<
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
<
|
81 |
-
|
82 |
-
|
83 |
-
</
|
84 |
-
|
85 |
-
<
|
86 |
-
<
|
87 |
-
<
|
88 |
-
|
89 |
-
|
90 |
-
<
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
<
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
<
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
<
|
115 |
-
<
|
116 |
-
|
117 |
-
|
118 |
-
<
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
<
|
125 |
-
|
126 |
-
|
127 |
-
<
|
128 |
-
</
|
129 |
-
|
130 |
-
|
131 |
-
<
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
<
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
<
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
<
|
159 |
-
|
160 |
-
|
161 |
-
<
|
162 |
-
<
|
163 |
-
|
164 |
-
|
165 |
-
<
|
166 |
-
|
167 |
-
</p>
|
168 |
-
|
169 |
-
<p>
|
170 |
-
<input
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
<
|
179 |
-
|
180 |
-
|
181 |
-
<
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
<
|
190 |
-
<
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
</
|
203 |
-
|
204 |
-
|
205 |
-
<p>
|
206 |
-
<
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
<
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
</
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
</
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
<
|
246 |
-
|
247 |
-
|
248 |
-
<
|
249 |
-
|
250 |
-
</p>
|
251 |
-
|
252 |
-
<p>
|
253 |
-
<input
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
<
|
258 |
-
</
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
</
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
<
|
277 |
-
|
278 |
-
</
|
279 |
-
|
280 |
-
<div>
|
281 |
-
|
282 |
-
<p
|
283 |
-
|
284 |
-
</p>
|
285 |
-
|
286 |
-
<
|
287 |
-
|
288 |
-
<
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
</
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
<
|
304 |
-
<
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
<
|
322 |
-
|
323 |
-
<
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
<
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
<
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
<
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
<
|
344 |
-
|
345 |
-
|
346 |
-
<
|
347 |
-
|
348 |
-
|
349 |
-
<
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
<
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
</div>
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
<
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
</div
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
</
|
395 |
-
|
396 |
-
</div>
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
<
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
<
|
431 |
-
|
432 |
-
</div>
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// handle closed postboxes
|
4 |
+
$user_id = get_current_user_id();
|
5 |
+
$option_name = 'closedpostboxes_' . 'toplevel_page_sbp-options'; // use the "pagehook" ID
|
6 |
+
$option_arr = get_user_option( $option_name, $user_id ); // get the options for that page
|
7 |
+
|
8 |
+
|
9 |
+
if ( is_array( $option_arr ) && in_array( 'exclude-from-footer', $option_arr ) ) {
|
10 |
+
$closed = true;
|
11 |
+
}
|
12 |
+
|
13 |
+
|
14 |
+
if ( is_array( $option_arr ) && in_array( 'defer-from-footer', $option_arr ) ) {
|
15 |
+
$closed_defer = true;
|
16 |
+
}
|
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 |
+
<?php
|
27 |
+
/* Translators: Welcome Screen Description. */
|
28 |
+
echo esc_html__( 'Speed Booster Pack is a lightweight, frequently updated, easy to use and well supported plugin which allows you to improve your website’s loading speed. Visitors usually close a website if it doesn’t load in a few seconds and the slower a site loads the greater the chances are that the visitors will leave. And you don’t want that to happen, do you?
|
29 |
+
', 'sb-pack' );
|
30 |
+
?>
|
31 |
+
</div>
|
32 |
+
<div class="wp-badge sbp-welcome-logo"></div>
|
33 |
+
<div class="sbp-fast-as-a-rabbit">
|
34 |
+
<div class="sbp-speed-page-load">
|
35 |
+
<?php _e( 'Page load: ', 'sb-pack' ); ?>
|
36 |
+
<span><?php echo esc_html( $page_time ) . __( ' sec', 'sb-pack' ); ?></span>
|
37 |
+
<span class="sbp-progress-bar">
|
38 |
+
<?php if ( $page_time < 10 ) { ?>
|
39 |
+
<progress max="100" value="<?php echo $page_time * 10; ?>">
|
40 |
+
<?php } else { ?>
|
41 |
+
<progress max="100" value="100" class="sbp-progress-red">
|
42 |
+
<?php } ?>
|
43 |
+
</progress>
|
44 |
+
|
45 |
+
<?php if ( ( $page_time ) > 10 ) { ?>
|
46 |
+
<img draggable="false" class="emoji" title="Your page loading time just made us cry" alt="😥" src="https://s.w.org/images/core/emoji/2.4/svg/1f625.svg">
|
47 |
+
<?php } else if ( ( $page_time ) > 8 && ( $page_time ) < 10 ) { ?>
|
48 |
+
<img draggable="false" class="emoji" title="Your page loading time just made us cry" alt="😥" src="https://s.w.org/images/core/emoji/2.4/svg/1f625.svg">
|
49 |
+
<?php } else if ( ( $page_time ) > 6 && ( $page_time ) < 8 ) { ?>
|
50 |
+
<img draggable="false" class="emoji" title="I'm not gonna lie, things aren't looking to good" alt="😮" src="https://s.w.org/images/core/emoji/2.4/svg/1f62e.svg">
|
51 |
+
<?php } else if ( ( $page_time ) > 4 && ( $page_time ) < 6 ) { ?>
|
52 |
+
<img draggable="false" class="emoji" title="Could be better" alt="🙄" src="https://s.w.org/images/core/emoji/2.4/svg/1f644.svg">
|
53 |
+
<?php } else if ( ( $page_time ) > 2 && ( $page_time ) < 4 ) { ?>
|
54 |
+
<img draggable="false" class="emoji" title="Going strong" alt="😥" src="https://s.w.org/images/core/emoji/2.4/svg/1f625.svg">
|
55 |
+
<?php } else if ( ( $page_time ) < 2 ) { ?>
|
56 |
+
<img draggable="false" title="You're a star" class="emoji" alt="⭐" src="https://s.w.org/images/core/emoji/2.4/svg/2b50.svg">
|
57 |
+
<?php } ?>
|
58 |
+
</span>
|
59 |
+
|
60 |
+
</div>
|
61 |
+
<div class="sbp-speed-db-queries">
|
62 |
+
<i class="dashicons dashicons-dashboard"></i><span><?php echo esc_html( $page_queries ); ?></span> <?php _e( 'DB Queries', 'sb-pack' ); ?>
|
63 |
+
</div>
|
64 |
+
|
65 |
+
<div class="sbp-speed-memory-usage">
|
66 |
+
<i class="dashicons dashicons-chart-pie"></i>
|
67 |
+
<?php _e( 'Memory: ', 'sb-pack' ); ?>
|
68 |
+
<span><?php echo number_format( ( memory_get_peak_usage() / 1024 / 1024 ), 1, ',', '' ) . ' / ' . ini_get( 'memory_limit' ), '<br />'; ?></span>
|
69 |
+
|
70 |
+
</div>
|
71 |
+
|
72 |
+
<div class="sbp-speed-plugin-number">
|
73 |
+
<i class="dashicons dashicons-admin-plugins"></i>
|
74 |
+
<?php _e( 'Plugins: ', 'sb-pack' ); ?>
|
75 |
+
<span><?php echo count( get_option( 'active_plugins' ) ); ?></span>
|
76 |
+
</div>
|
77 |
+
|
78 |
+
<div class="sbp-speed-info-analyze-container">
|
79 |
+
<!-- <a href="#" class="button button-secondary"><i class="dashicons dashicons-info"></i></a> -->
|
80 |
+
<!-- <a href="#" class="button button-primary"><i class="dashicons dashicons-search"></i><?php _e( 'Analyse', 'sb-pack' ); ?> -->
|
81 |
+
</a>
|
82 |
+
</div>
|
83 |
+
</div>
|
84 |
+
|
85 |
+
<h2 class="nav-tab-wrapper wp-clearfix">
|
86 |
+
<a class="nav-tab" href="#general-options"><?php esc_html_e( 'General', 'sb-pack' ); ?></a>
|
87 |
+
<a class="nav-tab" href="#advanced-options"><?php esc_html_e( 'Advanced', 'sb-pack' ); ?></a>
|
88 |
+
<a class="nav-tab" href="#image-options"><?php esc_html_e( 'Image Optimization', 'sb-pack' ); ?></a>
|
89 |
+
<a class="nav-tab" href="#support"><?php esc_html_e( 'Support', 'sb-pack' ); ?></a>
|
90 |
+
<a class="nav-tab" href="#optimize-more"><?php esc_html_e( 'Optimize More', 'sb-pack' ); ?></a>
|
91 |
+
</h2>
|
92 |
+
|
93 |
+
<form method="post" action="options.php">
|
94 |
+
|
95 |
+
<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
|
96 |
+
<?php wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?>
|
97 |
+
<?php settings_fields( 'speed_booster_settings_group' ); ?>
|
98 |
+
|
99 |
+
<div id="general-options" class="sb-pack-tab">
|
100 |
+
|
101 |
+
<h3><?php _e( 'General', 'sb-pack' ); ?></h3>
|
102 |
+
|
103 |
+
<p>
|
104 |
+
<input id="sbp_settings[jquery_to_footer]" name="sbp_settings[jquery_to_footer]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['jquery_to_footer'] ) ); ?> />
|
105 |
+
<label for="sbp_settings[jquery_to_footer]"><?php _e( 'Move scripts to the footer', 'sb-pack' ); ?></label>
|
106 |
+
<span class="tooltip-right"
|
107 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
108 |
+
<i class="dashicons dashicons-editor-help"></i>
|
109 |
+
</span>
|
110 |
+
|
111 |
+
</p>
|
112 |
+
|
113 |
+
<p>
|
114 |
+
<input id="sbp_settings[use_google_libs]" name="sbp_settings[use_google_libs]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['use_google_libs'] ) ); ?> />
|
115 |
+
<label for="sbp_settings[use_google_libs]"><?php _e( 'Load JS from Google Libraries', 'sb-pack' ); ?></label>
|
116 |
+
<span class="tooltip-right"
|
117 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
118 |
+
<i class="dashicons dashicons-editor-help"></i>
|
119 |
+
</span>
|
120 |
+
</p>
|
121 |
+
|
122 |
+
<p>
|
123 |
+
<input id="sbp_settings[minify_html_js]" name="sbp_settings[minify_html_js]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['minify_html_js'] ) ); ?> />
|
124 |
+
<label for="sbp_settings[minify_html_js]"><?php _e( 'Minify HTML', 'sb-pack' ); ?></label>
|
125 |
+
<span class="tooltip-right"
|
126 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
127 |
+
<i class="dashicons dashicons-editor-help"></i>
|
128 |
+
</span>
|
129 |
+
</p>
|
130 |
+
|
131 |
+
<p>
|
132 |
+
<input id="sbp_settings[defer_parsing]" name="sbp_settings[defer_parsing]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['defer_parsing'] ) ); ?> />
|
133 |
+
<label for="sbp_settings[defer_parsing]"><?php _e( 'Defer parsing of javascript files', 'sb-pack' ); ?></label>
|
134 |
+
<span class="tooltip-right"
|
135 |
+
data-tooltip="<?php echo __( '!!!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.', 'sb-pack' ); ?>">
|
136 |
+
<i class="dashicons dashicons-editor-help"></i>
|
137 |
+
</span>
|
138 |
+
</p>
|
139 |
+
|
140 |
+
<p>
|
141 |
+
<input id="sbp_settings[query_strings]" name="sbp_settings[query_strings]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['query_strings'] ) ); ?> />
|
142 |
+
<label for="sbp_settings[query_strings]"><?php _e( 'Remove query strings', 'sb-pack' ); ?></label>
|
143 |
+
<span class="tooltip-right"
|
144 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
145 |
+
<i class="dashicons dashicons-editor-help"></i>
|
146 |
+
</span>
|
147 |
+
</p>
|
148 |
+
|
149 |
+
<p>
|
150 |
+
<input id="sbp_settings[font_awesome]" name="sbp_settings[font_awesome]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['font_awesome'] ) ); ?> />
|
151 |
+
<label for="sbp_settings[font_awesome]"><?php _e( 'Removes extra Font Awesome styles', 'sb-pack' ); ?></label>
|
152 |
+
<span class="tooltip-right"
|
153 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
154 |
+
<i class="dashicons dashicons-editor-help"></i>
|
155 |
+
</span>
|
156 |
+
</p>
|
157 |
+
|
158 |
+
<h3> <?php _e( 'More settings', 'sb-pack' ); ?></h3>
|
159 |
+
|
160 |
+
<p>
|
161 |
+
<input id="sbp_settings[remove_emojis]" name="sbp_settings[remove_emojis]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['remove_emojis'] ) ); ?> />
|
162 |
+
<label for="sbp_settings[remove_emojis]"><?php _e( 'Remove WordPress Emoji scripts', 'sb-pack' ); ?></label>
|
163 |
+
<span class="tooltip-right"
|
164 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
165 |
+
<i class="dashicons dashicons-editor-help"></i>
|
166 |
+
</span>
|
167 |
+
</p>
|
168 |
+
|
169 |
+
<p>
|
170 |
+
<input id="sbp_settings[remove_wsl]" name="sbp_settings[remove_wsl]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['remove_wsl'] ) ); ?> />
|
171 |
+
<label for="sbp_settings[remove_wsl]"><?php _e( 'Remove WordPress Shortlink', 'sb-pack' ); ?></label>
|
172 |
+
<span class="tooltip-right"
|
173 |
+
data-tooltip="<?php echo __( 'WordPress URL shortening is sometimes useful, but it automatically adds an ugly code in your header, so you can remove it.', 'sb-pack' ); ?>">
|
174 |
+
<i class="dashicons dashicons-editor-help"></i>
|
175 |
+
</span>
|
176 |
+
</p>
|
177 |
+
|
178 |
+
<p>
|
179 |
+
<input id="sbp_settings[remove_adjacent]" name="sbp_settings[remove_adjacent]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['remove_adjacent'] ) ); ?> />
|
180 |
+
<label for="sbp_settings[remove_adjacent]"><?php _e( 'Remove Adjacent Posts Links', 'sb-pack' ); ?></label>
|
181 |
+
<span class="tooltip-right"
|
182 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
183 |
+
<i class="dashicons dashicons-editor-help"></i>
|
184 |
+
</span>
|
185 |
+
</p>
|
186 |
+
|
187 |
+
<p>
|
188 |
+
<input id="sbp_settings[wml_link]" name="sbp_settings[wml_link]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['wml_link'] ) ); ?> />
|
189 |
+
<label for="sbp_settings[wml_link]"><?php _e( 'Remove Windows Manifest', 'sb-pack' ); ?></label>
|
190 |
+
<span class="tooltip-right"
|
191 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
192 |
+
<i class="dashicons dashicons-editor-help"></i>
|
193 |
+
</span>
|
194 |
+
</p>
|
195 |
+
|
196 |
+
<p>
|
197 |
+
<input id="sbp_settings[rsd_link]" name="sbp_settings[rsd_link]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['rsd_link'] ) ); ?> />
|
198 |
+
<label for="sbp_settings[rsd_link]"><?php _e( 'Remove RSD(Really Simple Discovery) Link', 'sb-pack' ); ?></label>
|
199 |
+
<span class="tooltip-right"
|
200 |
+
data-tooltip="<?php echo __( 'This type of link is used by blog clients. If you edit your site from your browser then you don’t need this. It is also used by some 3rd party applications that utilize XML-RPC requests. In most cases, this is just unnecessary code.', 'sb-pack' ); ?>">
|
201 |
+
<i class="dashicons dashicons-editor-help"></i>
|
202 |
+
</span>
|
203 |
+
</p>
|
204 |
+
|
205 |
+
<p>
|
206 |
+
<input id="sbp_settings[wp_generator]" name="sbp_settings[wp_generator]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['wp_generator'] ) ); ?> />
|
207 |
+
<label for="sbp_settings[wp_generator]"><?php _e( 'Remove the WordPress Version', 'sb-pack' ); ?></label>
|
208 |
+
<span class="tooltip-right"
|
209 |
+
data-tooltip="<?php echo __( 'This option is added for security reasons and cleaning the header.', 'sb-pack' ); ?>">
|
210 |
+
<i class="dashicons dashicons-editor-help"></i>
|
211 |
+
</span>
|
212 |
+
</p>
|
213 |
+
|
214 |
+
<p>
|
215 |
+
<input id="sbp_settings[remove_all_feeds]" name="sbp_settings[remove_all_feeds]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['remove_all_feeds'] ) ); ?> />
|
216 |
+
<label for="sbp_settings[remove_all_feeds]"><?php _e( 'Remove all rss feed links', 'sb-pack' ); ?></label>
|
217 |
+
<span class="tooltip-right"
|
218 |
+
data-tooltip="<?php echo __( 'This option wil 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.', 'sb-pack' ); ?>">
|
219 |
+
<i class="dashicons dashicons-editor-help"></i>
|
220 |
+
</span>
|
221 |
+
</p>
|
222 |
+
|
223 |
+
<p>
|
224 |
+
<input id="sbp_settings[disable_xmlrpc]" name="sbp_settings[disable_xmlrpc]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['disable_xmlrpc'] ) ); ?> />
|
225 |
+
<label for="sbp_settings[disable_xmlrpc]"><?php _e( 'Disable XML-RPC', 'sb-pack' ); ?></label>
|
226 |
+
<span class="tooltip-right"
|
227 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
228 |
+
<i class="dashicons dashicons-editor-help"></i>
|
229 |
+
</span>
|
230 |
+
</p>
|
231 |
+
|
232 |
+
<h3><?php _e( 'Need even more speed?', 'sb-pack' ); ?></h3>
|
233 |
+
|
234 |
+
<p>
|
235 |
+
<input id="sbp_css_async" name="sbp_settings[sbp_css_async]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['sbp_css_async'] ) ); ?> />
|
236 |
+
<label for="sbp_css_async"><?php _e( 'Inline all CSS styles', 'sb-pack' ); ?></label>
|
237 |
+
<span class="tooltip-right"
|
238 |
+
data-tooltip="<?php echo __( 'Checking this option will inline the contents of all your stylesheets. This helps with the annoying render blocking error Google Page Speed Insights displays.', 'sb-pack' ); ?>">
|
239 |
+
<i class="dashicons dashicons-editor-help"></i>
|
240 |
+
</span>
|
241 |
+
</p>
|
242 |
+
|
243 |
+
<p>
|
244 |
+
<input id="sbp_settings[sbp_css_minify]" name="sbp_settings[sbp_css_minify]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['sbp_css_minify'] ) ); ?> />
|
245 |
+
<label for="sbp_settings[sbp_css_minify]"><?php _e( 'Minify all (previously) inlined CSS styles', 'sb-pack' ); ?></label>
|
246 |
+
<span class="tooltip-right"
|
247 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
248 |
+
<i class="dashicons dashicons-editor-help"></i>
|
249 |
+
</span>
|
250 |
+
</p>
|
251 |
+
|
252 |
+
<p>
|
253 |
+
<input id="sbp_settings[sbp_footer_css]" name="sbp_settings[sbp_footer_css]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['sbp_footer_css'] ) ); ?> />
|
254 |
+
<label for="sbp_settings[sbp_footer_css]"><?php _e( 'Move all inlined CSS into the footer', 'sb-pack' ); ?></label>
|
255 |
+
<span class="tooltip-right"
|
256 |
+
data-tooltip="<?php echo __( '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.', 'sb-pack' ); ?>">
|
257 |
+
<i class="dashicons dashicons-editor-help"></i>
|
258 |
+
</span>
|
259 |
+
</p>
|
260 |
+
|
261 |
+
<p>
|
262 |
+
<input id="sbp_settings[sbp_is_mobile]" name="sbp_settings[sbp_is_mobile]" type="checkbox" value="1" <?php checked( 1, isset( $sbp_options['sbp_is_mobile'] ) ); ?> />
|
263 |
+
<label for="sbp_settings[sbp_is_mobile]"><?php _e( 'Disable all above CSS options on mobile devices', 'sb-pack' ); ?></label>
|
264 |
+
<span class="tooltip-right"
|
265 |
+
data-tooltip="<?php echo __( 'Disable all above CSS options on mobile devices: this option was added to avoid some appearance issues on mobile devices.', 'sb-pack' ); ?>">
|
266 |
+
<i class="dashicons dashicons-editor-help"></i>
|
267 |
+
</span>
|
268 |
+
</p>
|
269 |
+
|
270 |
+
<div class="td-border-last"></div>
|
271 |
+
|
272 |
+
<h4><?php _e( 'Exclude styles from being inlined and/or minified option: ', 'sb-pack' ); ?></h4>
|
273 |
+
<p>
|
274 |
+
<textarea cols="50" rows="3" name="sbp_css_exceptions" id="sbp_css_exceptions" value="<?php echo esc_attr( $css_exceptions ); ?>" /><?php echo wp_kses_post( $css_exceptions ); ?></textarea>
|
275 |
+
</p>
|
276 |
+
<p class="description">
|
277 |
+
<?php _e( 'Enter one by line, the handles of css files or the final part of the style URL. For example: <code>font-awesome</code> or <code>font-awesome.min.css</code>', 'sb-pack' ); ?>
|
278 |
+
</p>
|
279 |
+
|
280 |
+
<div class="td-border-last"></div>
|
281 |
+
|
282 |
+
<p>
|
283 |
+
<h4><?php _e( 'As a guidance, here is a list of css handles of each enqueued style detected by our plugin:', 'sb-pack' ); ?></h4>
|
284 |
+
</p>
|
285 |
+
|
286 |
+
<div class="sbp-all-enqueued">
|
287 |
+
|
288 |
+
<div class="sbp-div-head">
|
289 |
+
<div class="sbp-title-scripts"><?php _e( 'CSS Handle', 'sb-pack' ); ?></div>
|
290 |
+
</div>
|
291 |
+
|
292 |
+
<div class="sbp-inline-wrap">
|
293 |
+
<div class="sbp-columns1 sbp-width">
|
294 |
+
<?php print_r( get_option( 'all_theme_styles_handle' ) ); ?>
|
295 |
+
</div>
|
296 |
+
</div>
|
297 |
+
</div>
|
298 |
+
|
299 |
+
</div><!--#general-options-->
|
300 |
+
<div id="advanced-options" class="sb-pack-tab">
|
301 |
+
|
302 |
+
<div id="poststuff">
|
303 |
+
<div id="postbox-container-exclude-footer-scripts" class="postbox-container">
|
304 |
+
<div class="meta-box-sortables" id="normal-sortables">
|
305 |
+
<?php if ( isset( $closed ) && $closed == true ) { ?>
|
306 |
+
<div class="postbox closed" id="exclude-from-footer">
|
307 |
+
<?php } else { ?>
|
308 |
+
<div class="postbox" id="exclude-from-footer">
|
309 |
+
<?Php } ?>
|
310 |
+
<button type="button" class="handlediv" aria-expanded="true">
|
311 |
+
<span class="screen-reader-text"><?php _e( 'Exclude scripts from being moved to the footer', 'sb-pack' ); ?></span>
|
312 |
+
<span class="toggle-indicator" aria-hidden="true"></span>
|
313 |
+
</button>
|
314 |
+
<h3 class="hndle ui-sortable-handle">
|
315 |
+
<span><?php _e( 'Exclude scripts from being moved to the footer', 'sb-pack' ); ?></span>
|
316 |
+
</h3>
|
317 |
+
<div class="inside">
|
318 |
+
<div class="sbp-inline-wrap">
|
319 |
+
|
320 |
+
<h4><?php _e( 'Script Handle', 'sb-pack' ); ?></h4>
|
321 |
+
<i>
|
322 |
+
<?php _e( 'Enter one js handle per text field.', 'sb-pack' ); ?> <?php _e( 'Read more', 'sb-pack' ); ?>
|
323 |
+
<a href="https://docs.machothemes.com/article/119-plugin-options-explained#exclude-scripts-from-being-moved-to-the-footer-50" target="_blank" title="Documentation"><?php _e( 'detailed instructions', 'sb-pack' ); ?></a> <?php _e( 'on this option on plugin documentation.', 'sb-pack' ); ?>
|
324 |
+
|
325 |
+
</i>
|
326 |
+
|
327 |
+
<p>
|
328 |
+
<input type="text" name="sbp_js_footer_exceptions1" id="sbp_js_footer_exceptions1" value="<?php echo esc_attr( $js_footer_exceptions1 ); ?>" />
|
329 |
+
</p>
|
330 |
+
|
331 |
+
<p>
|
332 |
+
<input type="text" name="sbp_js_footer_exceptions2" id="sbp_js_footer_exceptions2" value="<?php echo esc_attr( $js_footer_exceptions2 ); ?>" />
|
333 |
+
</p>
|
334 |
+
|
335 |
+
<p>
|
336 |
+
<input type="text" name="sbp_js_footer_exceptions3" id="sbp_js_footer_exceptions3" value="<?php echo esc_attr( $js_footer_exceptions3 ); ?>" />
|
337 |
+
</p>
|
338 |
+
|
339 |
+
<p>
|
340 |
+
<input type="text" name="sbp_js_footer_exceptions4" id="sbp_js_footer_exceptions4" value="<?php echo esc_attr( $js_footer_exceptions4 ); ?>" />
|
341 |
+
</p>
|
342 |
+
|
343 |
+
<div class="td-border-last"></div>
|
344 |
+
|
345 |
+
<p>
|
346 |
+
<h4><?php _e( 'As a guidance, here is a list of script handles and script paths of each enqueued script detected by our plugin:', 'sb-pack' ); ?></h4>
|
347 |
+
</p>
|
348 |
+
|
349 |
+
<div class="sbp-all-enqueued">
|
350 |
+
|
351 |
+
<div class="sbp-div-head">
|
352 |
+
<div class="sbp-title-scripts"><?php _e( 'Script Handle', 'sb-pack' ); ?></div>
|
353 |
+
<div class="sbp-title-scripts"><?php _e( 'Script Path', 'sb-pack' ); ?></div>
|
354 |
+
</div>
|
355 |
+
|
356 |
+
<div class="sbp-inline-wrap">
|
357 |
+
|
358 |
+
<div class="sbp-columns1 sbp-width">
|
359 |
+
<?php
|
360 |
+
$all_script_handles = get_option( 'all_theme_scripts_handle' );
|
361 |
+
|
362 |
+
$all_script_handles = explode( '<br />', $all_script_handles );
|
363 |
+
|
364 |
+
foreach ( $all_script_handles as $key => $value ) {
|
365 |
+
if ( ! empty( $value ) ) {
|
366 |
+
echo '<p>' . esc_html( $value ) . '</p>';
|
367 |
+
}
|
368 |
+
}
|
369 |
+
?>
|
370 |
+
</div>
|
371 |
+
|
372 |
+
<div class="sbp-columns2 sbp-width">
|
373 |
+
<?php
|
374 |
+
$all_scripts_src = get_option( 'all_theme_scripts_src' );
|
375 |
+
|
376 |
+
$all_scripts_src = explode( '<br />', $all_scripts_src );
|
377 |
+
|
378 |
+
foreach ( $all_scripts_src as $key => $value ) {
|
379 |
+
if ( ! empty( $value ) ) {
|
380 |
+
$value = parse_url( $value );
|
381 |
+
echo '<p>' . esc_html( str_replace( '/wp-content', '', $value['path'] ) ) . '</p>';
|
382 |
+
}
|
383 |
+
|
384 |
+
}
|
385 |
+
?>
|
386 |
+
</div>
|
387 |
+
|
388 |
+
</div>
|
389 |
+
|
390 |
+
</div>
|
391 |
+
|
392 |
+
</div><!--/.sbp-inline-wrap-->
|
393 |
+
|
394 |
+
</div>
|
395 |
+
</div>
|
396 |
+
</div>
|
397 |
+
</div>
|
398 |
+
|
399 |
+
<div id="postbox-container-defer-scripts" class="postbox-container">
|
400 |
+
|
401 |
+
<?php if ( isset( $closed_defer ) && $closed_defer == true ) { ?>
|
402 |
+
<div class="postbox closed" id="defer-from-footer">
|
403 |
+
<?php } else { ?>
|
404 |
+
<div class="postbox" id="defer-from-footer">
|
405 |
+
<?Php } ?>
|
406 |
+
|
407 |
+
<button type="button" class="handlediv" aria-expanded="true">
|
408 |
+
<span class="screen-reader-text"><?php _e( 'Exclude scripts from being deferred', 'sb-pack' ); ?></span>
|
409 |
+
<span class="toggle-indicator" aria-hidden="true"></span>
|
410 |
+
</button>
|
411 |
+
<h3 class="hndle ui-sortable-handle">
|
412 |
+
<span><?php _e( 'Exclude scripts from being deferred', 'sb-pack' ); ?></span>
|
413 |
+
</h3>
|
414 |
+
<div class="inside">
|
415 |
+
|
416 |
+
<div class="sbp-inline-wrap">
|
417 |
+
<p>
|
418 |
+
<input type="text" class="sbp-more-width" name="sbp_defer_exceptions1" id="sbp_defer_exceptions1" value="<?php echo $defer_exceptions1; ?>" />
|
419 |
+
</p>
|
420 |
+
|
421 |
+
<p>
|
422 |
+
<input type="text" class="sbp-more-width" name="sbp_defer_exceptions2" id="sbp_defer_exceptions2" value="<?php echo $defer_exceptions2; ?>" />
|
423 |
+
</p>
|
424 |
+
|
425 |
+
<p>
|
426 |
+
<input type="text" class="sbp-more-width" name="sbp_defer_exceptions3" id="sbp_defer_exceptions3" value="<?php echo $defer_exceptions3; ?>" />
|
427 |
+
</p>
|
428 |
+
|
429 |
+
<p>
|
430 |
+
<input type="text" class="sbp-more-width" name="sbp_defer_exceptions4" id="sbp_defer_exceptions4" value="<?php echo $defer_exceptions4; ?>" />
|
431 |
+
</p>
|
432 |
+
</div>
|
433 |
+
<p class="description">
|
434 |
+
<?php _e( '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.', 'sb-pack' ); ?>
|
435 |
+
</p>
|
436 |
+
|
437 |
+
</div>
|
438 |
+
</div>
|
439 |
+
</div>
|
440 |
+
</div>
|
441 |
+
</div>
|
442 |
+
|
443 |
+
<div id="image-options" class="sb-pack-tab">
|
444 |
+
|
445 |
+
<h3><?php _e( 'Change the default image compression level', 'sb-pack' ); ?></h3>
|
446 |
+
|
447 |
+
<script type='text/javascript'>
|
448 |
+
var jpegCompression = '<?php echo $this->image_compression; ?>';
|
449 |
+
</script>
|
450 |
+
|
451 |
+
<p class="sbp-amount">
|
452 |
+
<?php _e( 'Compression level:', 'sb-pack' ); ?>
|
453 |
+
<input type="text" class="sbp-amount" id="sbp-amount" />
|
454 |
+
</p>
|
455 |
+
|
456 |
+
<p>
|
457 |
+
<div class="sbp-slider" id="sbp-slider"></div>
|
458 |
+
<input type="hidden" name="sbp_integer" id="sbp_integer" value="<?php echo $this->image_compression; ?>" />
|
459 |
+
</p>
|
460 |
+
|
461 |
+
<p class="description">
|
462 |
+
<?php _e( 'The default image compression setting in WordPress is 90%. Compressing your images further than the default will make your file sizes even smaller and will boost your site performance. As a reference, a lower level of compression means more performance but might induce quality loss. We recommend you choose a compression level between 50 and 75.', 'sb-pack' ); ?>
|
463 |
+
<br />
|
464 |
+
</p>
|
465 |
+
<p class="description"><strong>
|
466 |
+
<?php _e( 'Note that any changes you make will only affect new images uploaded to your site. A specialized plugin can optimize all your present images and will also optimize new ones as they are added. ', 'sb-pack' ); ?>
|
467 |
+
</strong></p>
|
468 |
+
<br>
|
469 |
+
|
470 |
+
</div><!--#image-options-->
|
471 |
+
<div id="support" class="sb-pack-tab">
|
472 |
+
|
473 |
+
<?php
|
474 |
+
if ( ! defined( 'WPINC' ) ) {
|
475 |
+
die;
|
476 |
+
}
|
477 |
+
?>
|
478 |
+
<div class="feature-section sbp-support">
|
479 |
+
<div class="row two-col center-support">
|
480 |
+
|
481 |
+
<h3>
|
482 |
+
<i class="dashicons dashicons-sos" style="display: inline-block;vertical-align: middle;margin-right: 5px"></i><?php esc_html_e( 'Contact Support', 'sb-pack' ); ?>
|
483 |
+
</h3>
|
484 |
+
<p>
|
485 |
+
<i><?php esc_html_e( 'We offer support through WordPress.org\'s support forums.', 'sb-pack' ); ?></i>
|
486 |
+
</p>
|
487 |
+
<p>
|
488 |
+
<a target="_blank" class="button button-hero button-primary" href="<?php echo esc_url( 'https://wordpress.org/support/plugin/speed-booster-pack#new-post' ); ?>"><?php esc_html_e( 'Post on our support forums', 'sb-pack' ); ?></a>
|
489 |
+
</p>
|
490 |
+
|
491 |
+
</div>
|
492 |
+
<div class="row">
|
493 |
+
<h2 class="sbp-title">Looking for better WP hosting ?</h2>
|
494 |
+
</div>
|
495 |
+
<div class="row sbp-blog three-col">
|
496 |
+
<div class="col">
|
497 |
+
<h3>
|
498 |
+
<i class="dashicons dashicons-performance" style="display: inline-block;vertical-align: middle;margin-right: 5px"></i><?php esc_html_e( 'Our Bluehost Hosting Review', 'sb-pack' ); ?>
|
499 |
+
</h3>
|
500 |
+
<p>
|
501 |
+
<i><?php esc_html_e( 'Despite its popularity, though, Bluehost often carries a negative perception among WordPress professionals. So as we dig into this Bluehost review, we\'ll be looking to figure out whether Bluehost\'s performance and features actually justify that reputation.', 'sb-pack' ); ?></i>
|
502 |
+
</p>
|
503 |
+
<p>
|
504 |
+
<a target="_blank" href="<?php echo esc_url( 'https://www.machothemes.com/blog/bluehost-review/?utm_source=sbp&utm_medium=about-page&utm_campaign=blog-links' ); ?>"><?php esc_html_e( 'Read more', 'sb-pack' ); ?></a>
|
505 |
+
</p>
|
506 |
+
</div><!--/.col-->
|
507 |
+
|
508 |
+
<div class="col">
|
509 |
+
<h3>
|
510 |
+
<i class="dashicons dashicons-performance" style="display: inline-block;vertical-align: middle;margin-right: 5px"></i><?php esc_html_e( 'Our InMotion Hosting Review', 'sb-pack' ); ?>
|
511 |
+
</h3>
|
512 |
+
<p>
|
513 |
+
<i><?php esc_html_e( 'InMotion Hosting is a popular independent web host that serves over 300,000 customers. They\'re notably not a part of the EIG behemoth (the parent company behind Bluehost, HostGator, and more), which is a plus in my book.', 'sb-pack' ); ?></i>
|
514 |
+
</p>
|
515 |
+
<p>
|
516 |
+
<a target="_blank" href="<?php echo esc_url( 'https://www.machothemes.com/blog/inmotion-hosting-review/?utm_source=sbp&utm_medium=about-page&utm_campaign=blog-links' ); ?>"><?php esc_html_e( 'Read more', 'sb-pack' ); ?></a>
|
517 |
+
</p>
|
518 |
+
</div><!--/.col-->
|
519 |
+
|
520 |
+
<div class="col">
|
521 |
+
<h3>
|
522 |
+
<i class="dashicons dashicons-performance" style="display: inline-block;vertical-align: middle;margin-right: 5px"></i><?php esc_html_e( 'Our A2 Hosting Review', 'sb-pack' ); ?>
|
523 |
+
</h3>
|
524 |
+
<p>
|
525 |
+
<i><?php esc_html_e( 'When it comes to affordable WordPress hosting, A2 Hosting is a name that often comes up in various WordPress groups for offering quick-loading performance that belies its low price tag.', 'sb-pack' ); ?></i>
|
526 |
+
</p>
|
527 |
+
<p>
|
528 |
+
<a target="_blank" href="<?php echo esc_url( 'https://www.machothemes.com/blog/a2-hosting-review/?utm_source=sbp&utm_medium=about-page&utm_campaign=blog-links' ); ?>"><?php esc_html_e( 'Read more', 'sb-pack' ); ?></a>
|
529 |
+
</p>
|
530 |
+
</div><!--/.col-->
|
531 |
+
</div>
|
532 |
+
</div><!--/.feature-section-->
|
533 |
+
|
534 |
+
<div class="col-fulwidth feedback-box">
|
535 |
+
<h3>
|
536 |
+
<?php esc_html_e( 'Lend a hand & share your thoughts', 'sb-pack' ); ?>
|
537 |
+
<img src="<?php echo $this->plugin_url . "inc/images/handshake.png"; ?>">
|
538 |
+
</h3>
|
539 |
+
<p>
|
540 |
+
<?php
|
541 |
+
echo vsprintf( // Translators: 1 is Theme Name, 2 is opening Anchor, 3 is closing.
|
542 |
+
__( 'We\'ve been working hard on making %1$s the best one out there. We\'re interested in hearing your thoughts about %1$s and what we could do to <u>make it even better</u>.<br/> <br/> %2$sHave your say%3$s', 'sb-pack' ), array(
|
543 |
+
'Speed Booster Pack',
|
544 |
+
'<a class="button button-feedback" target="_blank" href="http://bit.ly/feedback-speed-booster-pack">',
|
545 |
+
'</a>',
|
546 |
+
) );
|
547 |
+
?>
|
548 |
+
</p>
|
549 |
+
</div>
|
550 |
+
</div><!--#support-->
|
551 |
+
|
552 |
+
<div id="optimize-more" class="sb-pack-tab three-col">
|
553 |
+
|
554 |
+
<div class="col sbp-box">
|
555 |
+
<img src="https://ps.w.org/shortpixel-image-optimiser/assets/icon-128x128.png?rev=1038819">
|
556 |
+
<div class="sbp-box__name"><?php esc_html_e( 'ShortPixel Image Optimizer', 'sb-pack' ); ?></div>
|
557 |
+
|
558 |
+
<div class="sbp-box__description">
|
559 |
+
<?php esc_html_e( 'Increase your website’s SEO ranking, number of visitors and ultimately your sales by optimizing any image or PDF document on your website. ', 'sb-pack' ); ?>
|
560 |
+
</div>
|
561 |
+
|
562 |
+
<div class="sbp-box__action-bar">
|
563 |
+
<span class="sbp-box__action-button">
|
564 |
+
<a class="button" href="<?php echo esc_url( 'https://shortpixel.com/h/af/IVAKFSX31472' ); ?>" target="_blank"><?php esc_html_e( 'Test your site for free', 'sb-pack' ); ?></a>
|
565 |
+
</span>
|
566 |
+
</div>
|
567 |
+
</div>
|
568 |
+
|
569 |
+
</div><!--#optimize-more-->
|
570 |
+
|
571 |
+
<div class="textright">
|
572 |
+
<hr />
|
573 |
+
<?php submit_button( '', 'button button-primary button-hero' ); ?>
|
574 |
+
</div>
|
575 |
+
|
576 |
+
</form>
|
577 |
+
|
578 |
+
</div><!--/.sb-pack-->
|
579 |
+
</div> <!-- end wrap div -->
|
inc/use-google-libraries.php
CHANGED
@@ -1,492 +1,504 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
*
|
25 |
-
*
|
26 |
-
*
|
27 |
-
*
|
28 |
-
*
|
29 |
-
*
|
30 |
-
*
|
31 |
-
*
|
32 |
-
*
|
33 |
-
*
|
34 |
-
* - '
|
35 |
-
*
|
36 |
-
* - 'google-
|
37 |
-
*
|
38 |
-
*
|
39 |
-
*
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
*
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
*
|
66 |
-
*
|
67 |
-
*
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
*
|
100 |
-
*
|
101 |
-
*
|
102 |
-
*
|
103 |
-
*
|
104 |
-
*
|
105 |
-
*
|
106 |
-
*
|
107 |
-
*
|
108 |
-
*
|
109 |
-
*
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
'jquery' => array( '
|
118 |
-
|
119 |
-
/* jQuery UI */
|
120 |
-
'jquery-ui-
|
121 |
-
'jquery-ui-
|
122 |
-
'jquery-ui-
|
123 |
-
'jquery-ui-
|
124 |
-
'jquery-ui-
|
125 |
-
'jquery-ui-
|
126 |
-
'jquery-ui-
|
127 |
-
'jquery-ui-
|
128 |
-
'jquery-ui-
|
129 |
-
'jquery-ui-
|
130 |
-
'jquery-ui-
|
131 |
-
'jquery-ui-
|
132 |
-
'jquery-ui-
|
133 |
-
'jquery-ui-
|
134 |
-
'jquery-ui-
|
135 |
-
'jquery-ui-
|
136 |
-
'jquery-ui-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
'jquery-effects-
|
141 |
-
'jquery-effects-
|
142 |
-
'jquery-effects-
|
143 |
-
'jquery-effects-
|
144 |
-
'jquery-effects-
|
145 |
-
'jquery-effects-
|
146 |
-
'jquery-effects-
|
147 |
-
'jquery-effects-
|
148 |
-
'jquery-effects-
|
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-
|
153 |
-
'jquery-effects-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
'scriptaculous-
|
161 |
-
'scriptaculous-
|
162 |
-
'scriptaculous-
|
163 |
-
'scriptaculous-
|
164 |
-
'scriptaculous-
|
165 |
-
'scriptaculous-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
$this->
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
//
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
// '
|
221 |
-
//
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
*
|
234 |
-
*
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
*
|
250 |
-
*
|
251 |
-
* @
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
* `
|
281 |
-
*
|
282 |
-
* '`jquery-core`'
|
283 |
-
*
|
284 |
-
*
|
285 |
-
*
|
286 |
-
* @
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
$this->
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
//
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
return
|
313 |
-
}
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
*
|
325 |
-
*
|
326 |
-
*
|
327 |
-
*
|
328 |
-
*
|
329 |
-
*
|
330 |
-
*
|
331 |
-
*
|
332 |
-
* @
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
$
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
$
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
*
|
389 |
-
*
|
390 |
-
*
|
391 |
-
*
|
392 |
-
*
|
393 |
-
*
|
394 |
-
*
|
395 |
-
*
|
396 |
-
* @
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
if (
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
$cache
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
*
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
$
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
if ( !
|
454 |
-
return false;
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 enqued 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/es_ES.mo
DELETED
Binary file
|
lang/es_ES.po
DELETED
@@ -1,372 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
4 |
-
"Content-Transfer-Encoding: 8bit\n"
|
5 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
6 |
-
"Project-Id-Version: Speed Booster Pack\n"
|
7 |
-
"POT-Creation-Date: \n"
|
8 |
-
"PO-Revision-Date: \n"
|
9 |
-
"Last-Translator: jelena kovacevic <jecajeca260@gmail.com>\n"
|
10 |
-
"Language-Team: Tiguandesign.com <tiguan@tiguandesign.com>\n"
|
11 |
-
"MIME-Version: 1.0\n"
|
12 |
-
"Language: en\n"
|
13 |
-
"X-Generator: Poedit 1.5.5\n"
|
14 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
-
"X-Poedit-KeywordsList: _e;__\n"
|
16 |
-
"X-Poedit-Basepath: .\n"
|
17 |
-
"X-Poedit-SearchPath-0: ..\n"
|
18 |
-
"X-Poedit-SearchPath-1: ...\n"
|
19 |
-
|
20 |
-
#. Text in echo
|
21 |
-
#: speed-booster-pack/inc/template/options.php:399
|
22 |
-
msgid " with guidelines to enhance your website performance."
|
23 |
-
msgstr "con directrices para mejorar el rendimiento de su sitio web.."
|
24 |
-
|
25 |
-
#. Text in echo
|
26 |
-
#: speed-booster-pack/inc/template/options.php:360
|
27 |
-
msgid "*The list may be incomplete in some circumstances."
|
28 |
-
msgstr "* La lista puede ser incompleta en algunas circunstancias"
|
29 |
-
|
30 |
-
#. Text in echo
|
31 |
-
#: speed-booster-pack/inc/template/options.php:132
|
32 |
-
msgid "Active Plugins:"
|
33 |
-
msgstr "Plugins activos:"
|
34 |
-
|
35 |
-
#. Text in echo
|
36 |
-
#: speed-booster-pack/inc/template/options.php:367
|
37 |
-
msgid "Additional information:"
|
38 |
-
msgstr "Información adicional:"
|
39 |
-
|
40 |
-
#. Text in echo
|
41 |
-
#: speed-booster-pack/inc/template/options.php:342
|
42 |
-
msgid ""
|
43 |
-
"As a guidance, here is a list of css handles of each enqueued style detected "
|
44 |
-
"by our plugin:"
|
45 |
-
msgstr ""
|
46 |
-
"Como guía, aquí está una lista de los handles css de cada estilo en cola "
|
47 |
-
"detectado por nuestro plugin:"
|
48 |
-
|
49 |
-
#. Text in echo
|
50 |
-
#: speed-booster-pack/inc/template/options.php:200
|
51 |
-
msgid ""
|
52 |
-
"As a guidance, here is a list of script handles and script paths of each "
|
53 |
-
"enqueued script detected by our plugin:"
|
54 |
-
msgstr ""
|
55 |
-
"Como guía, aquí está una lista de handles de script y rutas de script de "
|
56 |
-
"cada secuencia de comandos en cola detectado por nuestro plugin:"
|
57 |
-
|
58 |
-
#. Text in echo
|
59 |
-
#: speed-booster-pack/inc/template/options.php:19
|
60 |
-
msgid "Boost Your Website Speed!"
|
61 |
-
msgstr "¡Aumente la velocidad de su Sitio Web!"
|
62 |
-
|
63 |
-
#. Text in echo
|
64 |
-
#: speed-booster-pack/inc/template/options.php:348
|
65 |
-
msgid "CSS Handle"
|
66 |
-
msgstr "Handle CSS"
|
67 |
-
|
68 |
-
#. Text in echo
|
69 |
-
#: speed-booster-pack/inc/template/options.php:265
|
70 |
-
msgid "Change the default image compression level"
|
71 |
-
msgstr "Cambiar el nivel de compresión de imágenes"
|
72 |
-
|
73 |
-
#. Text in echo
|
74 |
-
#: speed-booster-pack/inc/template/options.php:277
|
75 |
-
msgid "Compression level:"
|
76 |
-
msgstr "Nivel de compresión:"
|
77 |
-
|
78 |
-
#. Text in echo
|
79 |
-
#: speed-booster-pack/inc/template/options.php:172
|
80 |
-
msgid "Copy the HTML code of the script from your page source and add it below"
|
81 |
-
msgstr ""
|
82 |
-
"Copie el código HTML del script de la fuente de su página y añádalo a "
|
83 |
-
"continuación"
|
84 |
-
|
85 |
-
#. Text in echo
|
86 |
-
#: speed-booster-pack/inc/template/options.php:45
|
87 |
-
msgid "Defer parsing of javascript files"
|
88 |
-
msgstr "Aplazar análisis de archivos javascript"
|
89 |
-
|
90 |
-
#. Text in echo
|
91 |
-
#: speed-booster-pack/inc/template/options.php:325
|
92 |
-
msgid "Disable all above CSS options on mobile devices"
|
93 |
-
msgstr "Desactivar todas las opciones CSS de arriba en dispositivos móviles"
|
94 |
-
|
95 |
-
#. Text in echo
|
96 |
-
#: speed-booster-pack/inc/template/options.php:333
|
97 |
-
msgid ""
|
98 |
-
"Enter one by line, the handles of css files or the final part of the style "
|
99 |
-
"URL. For example: <code>font-awesome</code> or <code>font-awesome.min.css</"
|
100 |
-
"code>"
|
101 |
-
msgstr ""
|
102 |
-
"Introduzca uno por línea, los handles de los archivos CSS o la parte final "
|
103 |
-
"de la URL del estilo. Por ejemplo: <code>-font awesome </code> o <code> font-"
|
104 |
-
"awesome.min.css </code>"
|
105 |
-
|
106 |
-
#. Text in echo
|
107 |
-
#: speed-booster-pack/inc/template/options.php:257
|
108 |
-
msgid ""
|
109 |
-
"Enter one by text field, the final part of the js files that you want to be "
|
110 |
-
"excluded from defer parsing option. For example: <code>jquery.min.js</code> "
|
111 |
-
"If you want to exclude more than 4 scripts, your page score will be hit and "
|
112 |
-
"therefore the use of \"Defer parsing of javascript files\" option will "
|
113 |
-
"become useless so you can disable it"
|
114 |
-
msgstr ""
|
115 |
-
"Introduzca uno por campo de texto, la parte final de los archivos js que "
|
116 |
-
"desea que sea excluido de la opción del análisis defer. Por ejemplo: <code> "
|
117 |
-
"jquery.min.js </code> Si desea excluir más de 4 scripts, el puntaje de su "
|
118 |
-
"página se verá afectado y por lo tanto el uso de la opción \"Análisis defer "
|
119 |
-
"de archivos javascript\" se convertirá en inútil por lo que puede "
|
120 |
-
"desactivarla"
|
121 |
-
|
122 |
-
#. Text in echo
|
123 |
-
#: speed-booster-pack/inc/template/options.php:195
|
124 |
-
msgid ""
|
125 |
-
"Enter one js handle per text field, in the left area and the corespondent "
|
126 |
-
"html script in the right text fields."
|
127 |
-
msgstr ""
|
128 |
-
"Introduzca un handle js por campo de texto, en la parte izquierda y la "
|
129 |
-
"secuencia de comandos HTML correspondiente en los campos de texto adecuados."
|
130 |
-
|
131 |
-
#. Text in echo
|
132 |
-
#: speed-booster-pack/inc/template/options.php:233
|
133 |
-
msgid "Exclude scripts from being deferred"
|
134 |
-
msgstr "Excluir scripts de ser diferidos"
|
135 |
-
|
136 |
-
#. Text in echo
|
137 |
-
#: speed-booster-pack/inc/template/options.php:143
|
138 |
-
msgid "Exclude scripts from being moved to the footer"
|
139 |
-
msgstr "Excluir scripts de ser trasladado al pie de página"
|
140 |
-
|
141 |
-
#. Text in echo
|
142 |
-
#: speed-booster-pack/inc/template/options.php:330
|
143 |
-
msgid "Exclude styles from asynchronously option: "
|
144 |
-
msgstr "Excluir estilos de opción de forma asíncrona:"
|
145 |
-
|
146 |
-
#. Text in echo
|
147 |
-
#: speed-booster-pack/inc/template/options.php:23
|
148 |
-
msgid "General options"
|
149 |
-
msgstr "Opciones generales"
|
150 |
-
|
151 |
-
#. Text in echo
|
152 |
-
#: speed-booster-pack/inc/template/options.php:104
|
153 |
-
msgid "Home Page Load Stats"
|
154 |
-
msgstr "Página de inicio Carga Estadísticas"
|
155 |
-
|
156 |
-
#. Text in echo
|
157 |
-
#: speed-booster-pack/inc/template/options.php:195
|
158 |
-
msgid ""
|
159 |
-
"If you want to exclude more than 4 scripts, your page score will be hit and "
|
160 |
-
"therefore the use of \"Move scripts to footer\" option will become useless "
|
161 |
-
"so you can disable it."
|
162 |
-
msgstr ""
|
163 |
-
"Si desea excluir más de 4 scripts, el puntaje de su página se verá afectado "
|
164 |
-
"y por lo tanto el uso de la opción \"Mover scripts a pie de página\" se "
|
165 |
-
"convertirá en inútil por lo que puede desactivarla."
|
166 |
-
|
167 |
-
#. Text in echo
|
168 |
-
#: speed-booster-pack/inc/template/options.php:320
|
169 |
-
msgid "Insert all CSS styles inline to the footer"
|
170 |
-
msgstr "Inserte todos los estilos CSS en línea al pie de página"
|
171 |
-
|
172 |
-
#. Text in echo
|
173 |
-
#: speed-booster-pack/inc/template/options.php:368
|
174 |
-
msgid "Insert all CSS styles inline to the footer: "
|
175 |
-
msgstr "Insertar todos los estilos CSS en línea al pie de página:"
|
176 |
-
|
177 |
-
#. Text in echo
|
178 |
-
#: speed-booster-pack/inc/template/options.php:416
|
179 |
-
msgid "Installed Version:"
|
180 |
-
msgstr "Versión instalada:"
|
181 |
-
|
182 |
-
#. Text in echo
|
183 |
-
#: speed-booster-pack/inc/template/options.php:55
|
184 |
-
msgid "Lazy load images to improve speed"
|
185 |
-
msgstr "Cargar imágenes Lazy para mejorar la velocidad"
|
186 |
-
|
187 |
-
#. Text in echo
|
188 |
-
#: speed-booster-pack/inc/template/options.php:305
|
189 |
-
msgid "Load CSS asynchronously"
|
190 |
-
msgstr "Cargar CSS de forma asíncrona"
|
191 |
-
|
192 |
-
#. Text in echo
|
193 |
-
#: speed-booster-pack/inc/template/options.php:40
|
194 |
-
msgid "Load JS from Google Libraries"
|
195 |
-
msgstr "Cargar JS desde Bibliotecas Google"
|
196 |
-
|
197 |
-
#. Text in echo
|
198 |
-
#: speed-booster-pack/inc/template/options.php:31
|
199 |
-
msgid "Main plugin options"
|
200 |
-
msgstr "Opciones Principales del plugin"
|
201 |
-
|
202 |
-
#. Text in echo
|
203 |
-
#: speed-booster-pack/inc/template/options.php:313
|
204 |
-
msgid "Minify all CSS styles"
|
205 |
-
msgstr "Minimizar todos los estilos CSS"
|
206 |
-
|
207 |
-
#. Text in echo
|
208 |
-
#: speed-booster-pack/inc/template/options.php:35
|
209 |
-
msgid "Move scripts to the footer"
|
210 |
-
msgstr "Mover scripts al pie de página"
|
211 |
-
|
212 |
-
#. Text in echo
|
213 |
-
#: speed-booster-pack/inc/template/options.php:289
|
214 |
-
msgid ""
|
215 |
-
"Note that any changes you make will only affect new images uploaded to your "
|
216 |
-
"site. If you want to update all of your images with the new sizes, install "
|
217 |
-
"and run the Regenerate Thumbnails plugin. As a reference, a lower level of "
|
218 |
-
"compression means more performance. We recommend you choose a compression "
|
219 |
-
"level between 50 and 75."
|
220 |
-
msgstr ""
|
221 |
-
"Tenga en cuenta que los cambios que realice sólo afectarán a las nuevas "
|
222 |
-
"imágenes subidas a su sitio. Si desea actualizar todas sus imágenes con los "
|
223 |
-
"nuevos tamaños, instale y ejecute el plugin Regenerar miniaturas. Como "
|
224 |
-
"referencia, un menor nivel de compresión significa más rendimiento. Le "
|
225 |
-
"recomendamos que escoja un nivel de compresión entre 50 y 75."
|
226 |
-
|
227 |
-
#. Text in echo
|
228 |
-
#: speed-booster-pack/inc/template/options.php:118
|
229 |
-
msgid "Number of executed queries:"
|
230 |
-
msgstr "Número de consultas ejecutadas:"
|
231 |
-
|
232 |
-
#. Text in echo
|
233 |
-
#: speed-booster-pack/inc/template/options.php:106
|
234 |
-
msgid "Page loading time in seconds:"
|
235 |
-
msgstr "Tiempo de carga de página en segundos:"
|
236 |
-
|
237 |
-
#. Text in echo
|
238 |
-
#: speed-booster-pack/inc/template/options.php:131
|
239 |
-
msgid "Peak Memory Used:"
|
240 |
-
msgstr "Memoria pico utilizada:"
|
241 |
-
|
242 |
-
#. Text in echo
|
243 |
-
#: speed-booster-pack/inc/template/options.php:195
|
244 |
-
msgid "Read more"
|
245 |
-
msgstr "Leer más"
|
246 |
-
|
247 |
-
#. Text in echo
|
248 |
-
#: speed-booster-pack/inc/template/options.php:399
|
249 |
-
msgid "Read online plugin documentation"
|
250 |
-
msgstr "Leer la documentación en línea del plugin"
|
251 |
-
|
252 |
-
#. Text in echo
|
253 |
-
#: speed-booster-pack/inc/template/options.php:423
|
254 |
-
msgid "Released date:"
|
255 |
-
msgstr "Fecha de lanzamiento:"
|
256 |
-
|
257 |
-
#. Text in echo
|
258 |
-
#: speed-booster-pack/inc/template/options.php:81
|
259 |
-
msgid "Remove Adjacent Posts Links"
|
260 |
-
msgstr "Quitar Enlaces de Mensajes Adyacentes"
|
261 |
-
|
262 |
-
#. Text in echo
|
263 |
-
#: speed-booster-pack/inc/template/options.php:71
|
264 |
-
msgid "Remove RSD Link"
|
265 |
-
msgstr "Eliminar Enlace RSD"
|
266 |
-
|
267 |
-
#. Text in echo
|
268 |
-
#: speed-booster-pack/inc/template/options.php:86
|
269 |
-
msgid "Remove Windows Manifest"
|
270 |
-
msgstr "Eliminar Manifiesto Windows"
|
271 |
-
|
272 |
-
#. Text in echo
|
273 |
-
#: speed-booster-pack/inc/template/options.php:76
|
274 |
-
msgid "Remove WordPress Shortlink"
|
275 |
-
msgstr "Eliminar Shortlink WordPress"
|
276 |
-
|
277 |
-
#. Text in echo
|
278 |
-
#: speed-booster-pack/inc/template/options.php:96
|
279 |
-
msgid "Remove all rss feed links"
|
280 |
-
msgstr "Quitar todos los enlaces rss feed"
|
281 |
-
|
282 |
-
#. Text in echo
|
283 |
-
#: speed-booster-pack/inc/template/options.php:67
|
284 |
-
msgid "Remove junk header tags"
|
285 |
-
msgstr "Eliminar encabezados basura"
|
286 |
-
|
287 |
-
#. Text in echo
|
288 |
-
#: speed-booster-pack/inc/template/options.php:50
|
289 |
-
msgid "Remove query strings"
|
290 |
-
msgstr "Retirar las cadenas de consulta"
|
291 |
-
|
292 |
-
#. Text in echo
|
293 |
-
#: speed-booster-pack/inc/template/options.php:91
|
294 |
-
msgid "Remove the WordPress Version"
|
295 |
-
msgstr "Eiminar la versión WordPress"
|
296 |
-
|
297 |
-
#. Text in echo
|
298 |
-
#: speed-booster-pack/inc/template/options.php:60
|
299 |
-
msgid "Removes extra Font Awesome styles"
|
300 |
-
msgstr "Eliminar estilos de Font Awesome adicionales"
|
301 |
-
|
302 |
-
#. Text in echo
|
303 |
-
#: speed-booster-pack/inc/template/options.php:149
|
304 |
-
#: speed-booster-pack/inc/template/options.php:206
|
305 |
-
msgid "Script Handle"
|
306 |
-
msgstr "Handle de Script"
|
307 |
-
|
308 |
-
#. Text in echo
|
309 |
-
#: speed-booster-pack/inc/template/options.php:207
|
310 |
-
msgid "Script Path"
|
311 |
-
msgstr "Ruta del script"
|
312 |
-
|
313 |
-
#. Text in echo
|
314 |
-
#: speed-booster-pack/inc/template/options.php:299
|
315 |
-
msgid "Still need more speed?"
|
316 |
-
msgstr "¿Todavía necesita más velocidad?"
|
317 |
-
|
318 |
-
#. Text in echo
|
319 |
-
#: speed-booster-pack/inc/template/options.php:286
|
320 |
-
msgid ""
|
321 |
-
"The default image compression setting in WordPress is 90%. Compressing your "
|
322 |
-
"images further than the default will make your file sizes even smaller and "
|
323 |
-
"will boost your site performance."
|
324 |
-
msgstr ""
|
325 |
-
"El ajuste de compresión de imagen por defecto de WordPress es del 90%. La "
|
326 |
-
"compresión de imágenes más allá del de por defecto hará los tamaños de "
|
327 |
-
"archivos aún más pequeños y aumentará el rendimiento de su sitio."
|
328 |
-
|
329 |
-
#. Text in echo
|
330 |
-
#: speed-booster-pack/inc/template/options.php:405
|
331 |
-
msgid "Version Information"
|
332 |
-
msgstr "Información de la versión"
|
333 |
-
|
334 |
-
#. Text in echo
|
335 |
-
#: speed-booster-pack/inc/template/options.php:389
|
336 |
-
msgid "What do these settings mean?"
|
337 |
-
msgstr "¿Qué significan estos ajustes?"
|
338 |
-
|
339 |
-
#. Text in echo
|
340 |
-
#: speed-booster-pack/inc/template/options.php:195
|
341 |
-
msgid "detailed instructions"
|
342 |
-
msgstr "Instrucciones detalladas"
|
343 |
-
|
344 |
-
#. Text in echo
|
345 |
-
#: speed-booster-pack/inc/template/options.php:195
|
346 |
-
msgid "on this option on plugin documentation."
|
347 |
-
msgstr "sobre esta opción en la documentación del plugin."
|
348 |
-
|
349 |
-
#. Text in echo
|
350 |
-
#: speed-booster-pack/inc/template/options.php:126
|
351 |
-
msgid "q"
|
352 |
-
msgstr "Q"
|
353 |
-
|
354 |
-
#. Text in echo
|
355 |
-
#: speed-booster-pack/inc/template/options.php:114
|
356 |
-
msgid "s"
|
357 |
-
msgstr "S"
|
358 |
-
|
359 |
-
#. Text in echo
|
360 |
-
#: speed-booster-pack/inc/template/options.php:368
|
361 |
-
msgid ""
|
362 |
-
"this option will eliminate render-blocking CSS warning in Google Page Speed "
|
363 |
-
"test. If there is something broken after activation, you need to disable "
|
364 |
-
"this option. Please note that before enabling this sensitive option, it is "
|
365 |
-
"strongly recommended that you also enable the \"Move scripts to the footer\" "
|
366 |
-
"option."
|
367 |
-
msgstr ""
|
368 |
-
"esta opción eliminará render de bloqueo de advertencia CSS en la prueba de "
|
369 |
-
"Velocidad de Página Google Page. Si hay algo que falle después de la "
|
370 |
-
"activación, es necesario deshabilitar esta opción. Tenga en cuenta que antes "
|
371 |
-
"de habilitar esta opción sensible, se recomienda encarecidamente que también "
|
372 |
-
"habilite la opción \"Mover scripts al pie de página\"."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lang/ro_RO.mo
DELETED
Binary file
|
lang/ro_RO.po
DELETED
@@ -1,374 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
4 |
-
"Content-Transfer-Encoding: 8bit\n"
|
5 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
6 |
-
"Project-Id-Version: Speed Booster Pack\n"
|
7 |
-
"POT-Creation-Date: \n"
|
8 |
-
"PO-Revision-Date: \n"
|
9 |
-
"Last-Translator: Liviu Costache <tiguan@tiguandesign.com>\n"
|
10 |
-
"Language-Team: Tiguandesign.com <tiguan@tiguandesign.com>\n"
|
11 |
-
"MIME-Version: 1.0\n"
|
12 |
-
"Language: en\n"
|
13 |
-
"X-Generator: Poedit 1.6.7\n"
|
14 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
-
"X-Poedit-KeywordsList: _e;__\n"
|
16 |
-
"X-Poedit-Basepath: .\n"
|
17 |
-
"X-Poedit-SearchPath-0: ..\n"
|
18 |
-
"X-Poedit-SearchPath-1: ...\n"
|
19 |
-
|
20 |
-
#. Text in echo
|
21 |
-
#: speed-booster-pack/inc/template/options.php:399
|
22 |
-
msgid " with guidelines to enhance your website performance."
|
23 |
-
msgstr "care conţine îndrumari pentru a îmbunătăți performanța site-ul tău."
|
24 |
-
|
25 |
-
#. Text in echo
|
26 |
-
#: speed-booster-pack/inc/template/options.php:360
|
27 |
-
msgid "*The list may be incomplete in some circumstances."
|
28 |
-
msgstr "* Lista poate fi incompletă în anumite circumstanțe."
|
29 |
-
|
30 |
-
#. Text in echo
|
31 |
-
#: speed-booster-pack/inc/template/options.php:132
|
32 |
-
msgid "Active Plugins:"
|
33 |
-
msgstr "Pluginuri Active:"
|
34 |
-
|
35 |
-
#. Text in echo
|
36 |
-
#: speed-booster-pack/inc/template/options.php:367
|
37 |
-
msgid "Additional information:"
|
38 |
-
msgstr "Informaţii suplimentare:"
|
39 |
-
|
40 |
-
#. Text in echo
|
41 |
-
#: speed-booster-pack/inc/template/options.php:342
|
42 |
-
msgid ""
|
43 |
-
"As a guidance, here is a list of css handles of each enqueued style detected "
|
44 |
-
"by our plugin:"
|
45 |
-
msgstr ""
|
46 |
-
"Orientativ, aici este o listă cu toate handle-urile CSS detectate de "
|
47 |
-
"pluginul nostru:"
|
48 |
-
|
49 |
-
#. Text in echo
|
50 |
-
#: speed-booster-pack/inc/template/options.php:200
|
51 |
-
msgid ""
|
52 |
-
"As a guidance, here is a list of script handles and script paths of each "
|
53 |
-
"enqueued script detected by our plugin:"
|
54 |
-
msgstr ""
|
55 |
-
"Orientativ, aici este o listă cu toate handle-urile JS si calea acestora, "
|
56 |
-
"detectate de pluginul nostru:"
|
57 |
-
|
58 |
-
#. Text in echo
|
59 |
-
#: speed-booster-pack/inc/template/options.php:19
|
60 |
-
msgid "Boost Your Website Speed!"
|
61 |
-
msgstr "Sporeşte-ţi viteza site-ului!"
|
62 |
-
|
63 |
-
#. Text in echo
|
64 |
-
#: speed-booster-pack/inc/template/options.php:348
|
65 |
-
msgid "CSS Handle"
|
66 |
-
msgstr "Handle pentru CSS"
|
67 |
-
|
68 |
-
#. Text in echo
|
69 |
-
#: speed-booster-pack/inc/template/options.php:265
|
70 |
-
msgid "Change the default image compression level"
|
71 |
-
msgstr "Schimbă nivelul de compresie al imaginilor"
|
72 |
-
|
73 |
-
#. Text in echo
|
74 |
-
#: speed-booster-pack/inc/template/options.php:277
|
75 |
-
msgid "Compression level:"
|
76 |
-
msgstr "Nivelul de compresie:"
|
77 |
-
|
78 |
-
#. Text in echo
|
79 |
-
#: speed-booster-pack/inc/template/options.php:172
|
80 |
-
msgid "Copy the HTML code of the script from your page source and add it below"
|
81 |
-
msgstr ""
|
82 |
-
"Copiaţi codul HTML al script-ului din sursa paginii, şi adăugaţi-l mai jos"
|
83 |
-
|
84 |
-
#. Text in echo
|
85 |
-
#: speed-booster-pack/inc/template/options.php:45
|
86 |
-
msgid "Defer parsing of javascript files"
|
87 |
-
msgstr "Amână analizarea fişierelor javascript"
|
88 |
-
|
89 |
-
#. Text in echo
|
90 |
-
#: speed-booster-pack/inc/template/options.php:325
|
91 |
-
msgid "Disable all above CSS options on mobile devices"
|
92 |
-
msgstr ""
|
93 |
-
"Dezactivează toate opţiunile CSS de mai sus pentru dispozitivele mobile"
|
94 |
-
|
95 |
-
#. Text in echo
|
96 |
-
#: speed-booster-pack/inc/template/options.php:333
|
97 |
-
msgid ""
|
98 |
-
"Enter one by line, the handles of css files or the final part of the style "
|
99 |
-
"URL. For example: <code>font-awesome</code> or <code>font-awesome.min.css</"
|
100 |
-
"code>"
|
101 |
-
msgstr ""
|
102 |
-
"Introdu câte una pe linie, denumirile fişierelor CSS sau partea finală a URL-"
|
103 |
-
"ului acestora. De exemplu: <code>font-awesome</code> sau <code>font-awesome."
|
104 |
-
"min.css</code>"
|
105 |
-
|
106 |
-
#. Text in echo
|
107 |
-
#: speed-booster-pack/inc/template/options.php:257
|
108 |
-
msgid ""
|
109 |
-
"Enter one by text field, the final part of the js files that you want to be "
|
110 |
-
"excluded from defer parsing option. For example: <code>jquery.min.js</code> "
|
111 |
-
"If you want to exclude more than 4 scripts, your page score will be hit and "
|
112 |
-
"therefore the use of \"Defer parsing of javascript files\" option will "
|
113 |
-
"become useless so you can disable it"
|
114 |
-
msgstr ""
|
115 |
-
"Introdu câte una pe linie, partea finală a fişierelor JS pe care vrei să le "
|
116 |
-
"excluzi de la opţiunea \"Amână analizarea fişierelor javascript\" De "
|
117 |
-
"exemplu: <code>jquery.min.js</code> Dacă doreşti să excluzi mai mult de 4 "
|
118 |
-
"script-uri, scorul pagini va avea de suferit şi, prin urmare, utilizarea "
|
119 |
-
"opţiunii \"Amână analizarea fişierelor javascript \" va deveni inutilă, şi "
|
120 |
-
"o poţi dezactiva."
|
121 |
-
|
122 |
-
#. Text in echo
|
123 |
-
#: speed-booster-pack/inc/template/options.php:195
|
124 |
-
msgid ""
|
125 |
-
"Enter one js handle per text field, in the left area and the corespondent "
|
126 |
-
"html script in the right text fields."
|
127 |
-
msgstr ""
|
128 |
-
"Introdu un handle js pe câte un câmp text, în zona din stânga şi codul HTML "
|
129 |
-
"al script-ului corespondent în câmpurile text din dreapta."
|
130 |
-
|
131 |
-
#. Text in echo
|
132 |
-
#: speed-booster-pack/inc/template/options.php:233
|
133 |
-
msgid "Exclude scripts from being deferred"
|
134 |
-
msgstr ""
|
135 |
-
"Exclude script-uri de la opţiunea \"Amână analizarea fişierelor javascript\""
|
136 |
-
|
137 |
-
#. Text in echo
|
138 |
-
#: speed-booster-pack/inc/template/options.php:143
|
139 |
-
msgid "Exclude scripts from being moved to the footer"
|
140 |
-
msgstr "Exclude script-uri de la opţiunea \"Muta script-uri in footer\""
|
141 |
-
|
142 |
-
#. Text in echo
|
143 |
-
#: speed-booster-pack/inc/template/options.php:330
|
144 |
-
msgid "Exclude styles from asynchronously option: "
|
145 |
-
msgstr "Exclude stiluri de la opţiunea \"Încărcare CSS în mod asincron\""
|
146 |
-
|
147 |
-
#. Text in echo
|
148 |
-
#: speed-booster-pack/inc/template/options.php:23
|
149 |
-
msgid "General options"
|
150 |
-
msgstr "Opţiuni Generale"
|
151 |
-
|
152 |
-
#. Text in echo
|
153 |
-
#: speed-booster-pack/inc/template/options.php:104
|
154 |
-
msgid "Home Page Load Stats"
|
155 |
-
msgstr "Încărcarea paginii de bază"
|
156 |
-
|
157 |
-
#. Text in echo
|
158 |
-
#: speed-booster-pack/inc/template/options.php:195
|
159 |
-
msgid ""
|
160 |
-
"If you want to exclude more than 4 scripts, your page score will be hit and "
|
161 |
-
"therefore the use of \"Move scripts to footer\" option will become useless "
|
162 |
-
"so you can disable it."
|
163 |
-
msgstr ""
|
164 |
-
"Dacă doreşti să excluzi mai mult de 4 script-uri, scorul paginii va avea de "
|
165 |
-
"suferit şi, prin urmare, utilizarea opţiunii \"Mută script-uri în footer \" "
|
166 |
-
"va deveni inutilă, şi o poţi dezactiva."
|
167 |
-
|
168 |
-
#. Text in echo
|
169 |
-
#: speed-booster-pack/inc/template/options.php:320
|
170 |
-
msgid "Insert all CSS styles inline to the footer"
|
171 |
-
msgstr "Mută toate stilurile CSS în linie în footer"
|
172 |
-
|
173 |
-
#. Text in echo
|
174 |
-
#: speed-booster-pack/inc/template/options.php:368
|
175 |
-
msgid "Insert all CSS styles inline to the footer: "
|
176 |
-
msgstr "Mută toate stilurile CSS în linie în footer:"
|
177 |
-
|
178 |
-
#. Text in echo
|
179 |
-
#: speed-booster-pack/inc/template/options.php:416
|
180 |
-
msgid "Installed Version:"
|
181 |
-
msgstr "Versiunea instalată:"
|
182 |
-
|
183 |
-
#. Text in echo
|
184 |
-
#: speed-booster-pack/inc/template/options.php:55
|
185 |
-
msgid "Lazy load images to improve speed"
|
186 |
-
msgstr "Întârzie încărcarea imaginilor"
|
187 |
-
|
188 |
-
#. Text in echo
|
189 |
-
#: speed-booster-pack/inc/template/options.php:305
|
190 |
-
msgid "Load CSS asynchronously"
|
191 |
-
msgstr "Încărcare CSS în mod asincron"
|
192 |
-
|
193 |
-
#. Text in echo
|
194 |
-
#: speed-booster-pack/inc/template/options.php:40
|
195 |
-
msgid "Load JS from Google Libraries"
|
196 |
-
msgstr "Încarcă JS din Google Libraries"
|
197 |
-
|
198 |
-
#. Text in echo
|
199 |
-
#: speed-booster-pack/inc/template/options.php:31
|
200 |
-
msgid "Main plugin options"
|
201 |
-
msgstr "Opţiunile principale"
|
202 |
-
|
203 |
-
#. Text in echo
|
204 |
-
#: speed-booster-pack/inc/template/options.php:313
|
205 |
-
msgid "Minify all CSS styles"
|
206 |
-
msgstr "Comprimă toate fişierele CSS"
|
207 |
-
|
208 |
-
#. Text in echo
|
209 |
-
#: speed-booster-pack/inc/template/options.php:35
|
210 |
-
msgid "Move scripts to the footer"
|
211 |
-
msgstr "Muta script-uri in footer"
|
212 |
-
|
213 |
-
#. Text in echo
|
214 |
-
#: speed-booster-pack/inc/template/options.php:289
|
215 |
-
msgid ""
|
216 |
-
"Note that any changes you make will only affect new images uploaded to your "
|
217 |
-
"site. If you want to update all of your images with the new sizes, install "
|
218 |
-
"and run the Regenerate Thumbnails plugin. As a reference, a lower level of "
|
219 |
-
"compression means more performance. We recommend you choose a compression "
|
220 |
-
"level between 50 and 75."
|
221 |
-
msgstr ""
|
222 |
-
"Reţine că după alegerea nivelului de compresie, modificările vor afecta "
|
223 |
-
"numai imaginile noi încărcate pe site. Dacă doreşti să actualizezi toate "
|
224 |
-
"imaginile la noul nivel de compresie, instalează şi rulează plugin-ul "
|
225 |
-
"Regenerate Thumbnails. Că referinţă, un nivel mai scăzut de comprimare "
|
226 |
-
"înseamnă mai multă performanţă a site-ului. Îţi recomandăm să alegi un nivel "
|
227 |
-
"de compresie cu valorea cuprinsă între 50 şi 75."
|
228 |
-
|
229 |
-
#. Text in echo
|
230 |
-
#: speed-booster-pack/inc/template/options.php:118
|
231 |
-
msgid "Number of executed queries:"
|
232 |
-
msgstr "Numărul de interogări (queries) executate:"
|
233 |
-
|
234 |
-
#. Text in echo
|
235 |
-
#: speed-booster-pack/inc/template/options.php:106
|
236 |
-
msgid "Page loading time in seconds:"
|
237 |
-
msgstr "Timpul de încărcare a paginii în secunde:"
|
238 |
-
|
239 |
-
#. Text in echo
|
240 |
-
#: speed-booster-pack/inc/template/options.php:131
|
241 |
-
msgid "Peak Memory Used:"
|
242 |
-
msgstr "Memoria folosită"
|
243 |
-
|
244 |
-
#. Text in echo
|
245 |
-
#: speed-booster-pack/inc/template/options.php:195
|
246 |
-
msgid "Read more"
|
247 |
-
msgstr "Citeşte mai multe"
|
248 |
-
|
249 |
-
#. Text in echo
|
250 |
-
#: speed-booster-pack/inc/template/options.php:399
|
251 |
-
msgid "Read online plugin documentation"
|
252 |
-
msgstr "Citeşte online documentaţia pluginului"
|
253 |
-
|
254 |
-
#. Text in echo
|
255 |
-
#: speed-booster-pack/inc/template/options.php:423
|
256 |
-
msgid "Released date:"
|
257 |
-
msgstr "Data lansării:"
|
258 |
-
|
259 |
-
#. Text in echo
|
260 |
-
#: speed-booster-pack/inc/template/options.php:81
|
261 |
-
msgid "Remove Adjacent Posts Links"
|
262 |
-
msgstr "Elimină Adjacent Posts Links"
|
263 |
-
|
264 |
-
#. Text in echo
|
265 |
-
#: speed-booster-pack/inc/template/options.php:71
|
266 |
-
msgid "Remove RSD Link"
|
267 |
-
msgstr "Elimină linkul RSD"
|
268 |
-
|
269 |
-
#. Text in echo
|
270 |
-
#: speed-booster-pack/inc/template/options.php:86
|
271 |
-
msgid "Remove Windows Manifest"
|
272 |
-
msgstr "Elimină Windows Manifest"
|
273 |
-
|
274 |
-
#. Text in echo
|
275 |
-
#: speed-booster-pack/inc/template/options.php:76
|
276 |
-
msgid "Remove WordPress Shortlink"
|
277 |
-
msgstr "Elimină WordPress Shortlink"
|
278 |
-
|
279 |
-
#. Text in echo
|
280 |
-
#: speed-booster-pack/inc/template/options.php:96
|
281 |
-
msgid "Remove all rss feed links"
|
282 |
-
msgstr "Elimină toate link-urile RSS feed"
|
283 |
-
|
284 |
-
#. Text in echo
|
285 |
-
#: speed-booster-pack/inc/template/options.php:67
|
286 |
-
msgid "Remove junk header tags"
|
287 |
-
msgstr "Elimină tag-urile inutile din header"
|
288 |
-
|
289 |
-
#. Text in echo
|
290 |
-
#: speed-booster-pack/inc/template/options.php:50
|
291 |
-
msgid "Remove query strings"
|
292 |
-
msgstr "Elimină versiunea fisierelor"
|
293 |
-
|
294 |
-
#. Text in echo
|
295 |
-
#: speed-booster-pack/inc/template/options.php:91
|
296 |
-
msgid "Remove the WordPress Version"
|
297 |
-
msgstr "Elimină versiunea WordPress"
|
298 |
-
|
299 |
-
#. Text in echo
|
300 |
-
#: speed-booster-pack/inc/template/options.php:60
|
301 |
-
msgid "Removes extra Font Awesome styles"
|
302 |
-
msgstr "Elimină extra Font Awesome CSS"
|
303 |
-
|
304 |
-
#. Text in echo
|
305 |
-
#: speed-booster-pack/inc/template/options.php:149
|
306 |
-
#: speed-booster-pack/inc/template/options.php:206
|
307 |
-
msgid "Script Handle"
|
308 |
-
msgstr "Script Handle"
|
309 |
-
|
310 |
-
#. Text in echo
|
311 |
-
#: speed-booster-pack/inc/template/options.php:207
|
312 |
-
msgid "Script Path"
|
313 |
-
msgstr "Calea scriptului"
|
314 |
-
|
315 |
-
#. Text in echo
|
316 |
-
#: speed-booster-pack/inc/template/options.php:299
|
317 |
-
msgid "Still need more speed?"
|
318 |
-
msgstr "Încă ai nevoie de mai multă viteză?"
|
319 |
-
|
320 |
-
#. Text in echo
|
321 |
-
#: speed-booster-pack/inc/template/options.php:286
|
322 |
-
msgid ""
|
323 |
-
"The default image compression setting in WordPress is 90%. Compressing your "
|
324 |
-
"images further than the default will make your file sizes even smaller and "
|
325 |
-
"will boost your site performance."
|
326 |
-
msgstr ""
|
327 |
-
"Nivelul implicit de comprimare a imaginilor în WordPress este de 90%. "
|
328 |
-
"Comprimarea imaginilor la un nivel mai mare decât nivelul implicit va "
|
329 |
-
"micşora dimensiunile fişierelor şi va stimula performanta site-ului tău."
|
330 |
-
|
331 |
-
#. Text in echo
|
332 |
-
#: speed-booster-pack/inc/template/options.php:405
|
333 |
-
msgid "Version Information"
|
334 |
-
msgstr "Informaţii despre versiune"
|
335 |
-
|
336 |
-
#. Text in echo
|
337 |
-
#: speed-booster-pack/inc/template/options.php:389
|
338 |
-
msgid "What do these settings mean?"
|
339 |
-
msgstr "Ce reprezintă toate aceste opţiuni?"
|
340 |
-
|
341 |
-
#. Text in echo
|
342 |
-
#: speed-booster-pack/inc/template/options.php:195
|
343 |
-
msgid "detailed instructions"
|
344 |
-
msgstr "instrucţiuni detaliate"
|
345 |
-
|
346 |
-
#. Text in echo
|
347 |
-
#: speed-booster-pack/inc/template/options.php:195
|
348 |
-
msgid "on this option on plugin documentation."
|
349 |
-
msgstr "cu privire la această opţiune în documentaţia puginului."
|
350 |
-
|
351 |
-
#. Text in echo
|
352 |
-
#: speed-booster-pack/inc/template/options.php:126
|
353 |
-
msgid "q"
|
354 |
-
msgstr "q"
|
355 |
-
|
356 |
-
#. Text in echo
|
357 |
-
#: speed-booster-pack/inc/template/options.php:114
|
358 |
-
msgid "s"
|
359 |
-
msgstr "q"
|
360 |
-
|
361 |
-
#. Text in echo
|
362 |
-
#: speed-booster-pack/inc/template/options.php:368
|
363 |
-
msgid ""
|
364 |
-
"this option will eliminate render-blocking CSS warning in Google Page Speed "
|
365 |
-
"test. If there is something broken after activation, you need to disable "
|
366 |
-
"this option. Please note that before enabling this sensitive option, it is "
|
367 |
-
"strongly recommended that you also enable the \"Move scripts to the footer\" "
|
368 |
-
"option."
|
369 |
-
msgstr ""
|
370 |
-
"această opţiune va elimina mesajul render-blocking CSS din Google Page "
|
371 |
-
"Speed. Dacă observi că ceva nu merge după activare, va trebui să dezactivezi "
|
372 |
-
"această opţiune. Te rog să notezi că înainte de activarea acestei opţiuni "
|
373 |
-
"sensibile, este neapărat necesar că şi opţiunea de mutare a scripturilor în "
|
374 |
-
"footer trebuie să fie activă."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lang/sb-pack.mo
DELETED
Binary file
|
lang/sb-pack.po
DELETED
@@ -1,339 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
4 |
-
"Content-Transfer-Encoding: 8bit\n"
|
5 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
6 |
-
"Project-Id-Version: Speed Booster Pack\n"
|
7 |
-
"POT-Creation-Date: \n"
|
8 |
-
"PO-Revision-Date: \n"
|
9 |
-
"Last-Translator: Liviu Costache <tiguan@tiguandesign.com>\n"
|
10 |
-
"Language-Team: Tiguandesign.com <tiguan@tiguandesign.com>\n"
|
11 |
-
"MIME-Version: 1.0\n"
|
12 |
-
"Language: en\n"
|
13 |
-
"X-Generator: Poedit 1.6.7\n"
|
14 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
-
"X-Poedit-KeywordsList: _e;__\n"
|
16 |
-
"X-Poedit-Basepath: .\n"
|
17 |
-
"X-Poedit-SearchPath-0: ..\n"
|
18 |
-
"X-Poedit-SearchPath-1: ...\n"
|
19 |
-
|
20 |
-
#. Text in echo
|
21 |
-
#: speed-booster-pack/inc/template/options.php:399
|
22 |
-
msgid " with guidelines to enhance your website performance."
|
23 |
-
msgstr ""
|
24 |
-
|
25 |
-
#. Text in echo
|
26 |
-
#: speed-booster-pack/inc/template/options.php:360
|
27 |
-
msgid "*The list may be incomplete in some circumstances."
|
28 |
-
msgstr ""
|
29 |
-
|
30 |
-
#. Text in echo
|
31 |
-
#: speed-booster-pack/inc/template/options.php:132
|
32 |
-
msgid "Active Plugins:"
|
33 |
-
msgstr ""
|
34 |
-
|
35 |
-
#. Text in echo
|
36 |
-
#: speed-booster-pack/inc/template/options.php:367
|
37 |
-
msgid "Additional information:"
|
38 |
-
msgstr ""
|
39 |
-
|
40 |
-
#. Text in echo
|
41 |
-
#: speed-booster-pack/inc/template/options.php:342
|
42 |
-
msgid ""
|
43 |
-
"As a guidance, here is a list of css handles of each enqueued style detected "
|
44 |
-
"by our plugin:"
|
45 |
-
msgstr ""
|
46 |
-
|
47 |
-
#. Text in echo
|
48 |
-
#: speed-booster-pack/inc/template/options.php:200
|
49 |
-
msgid ""
|
50 |
-
"As a guidance, here is a list of script handles and script paths of each "
|
51 |
-
"enqueued script detected by our plugin:"
|
52 |
-
msgstr ""
|
53 |
-
|
54 |
-
#. Text in echo
|
55 |
-
#: speed-booster-pack/inc/template/options.php:19
|
56 |
-
msgid "Boost Your Website Speed!"
|
57 |
-
msgstr ""
|
58 |
-
|
59 |
-
#. Text in echo
|
60 |
-
#: speed-booster-pack/inc/template/options.php:348
|
61 |
-
msgid "CSS Handle"
|
62 |
-
msgstr ""
|
63 |
-
|
64 |
-
#. Text in echo
|
65 |
-
#: speed-booster-pack/inc/template/options.php:265
|
66 |
-
msgid "Change the default image compression level"
|
67 |
-
msgstr ""
|
68 |
-
|
69 |
-
#. Text in echo
|
70 |
-
#: speed-booster-pack/inc/template/options.php:277
|
71 |
-
msgid "Compression level:"
|
72 |
-
msgstr ""
|
73 |
-
|
74 |
-
#. Text in echo
|
75 |
-
#: speed-booster-pack/inc/template/options.php:172
|
76 |
-
msgid "Copy the HTML code of the script from your page source and add it below"
|
77 |
-
msgstr ""
|
78 |
-
|
79 |
-
#. Text in echo
|
80 |
-
#: speed-booster-pack/inc/template/options.php:45
|
81 |
-
msgid "Defer parsing of javascript files"
|
82 |
-
msgstr ""
|
83 |
-
|
84 |
-
#. Text in echo
|
85 |
-
#: speed-booster-pack/inc/template/options.php:325
|
86 |
-
msgid "Disable all above CSS options on mobile devices"
|
87 |
-
msgstr ""
|
88 |
-
|
89 |
-
#. Text in echo
|
90 |
-
#: speed-booster-pack/inc/template/options.php:333
|
91 |
-
msgid ""
|
92 |
-
"Enter one by line, the handles of css files or the final part of the style "
|
93 |
-
"URL. For example: <code>font-awesome</code> or <code>font-awesome.min.css</"
|
94 |
-
"code>"
|
95 |
-
msgstr ""
|
96 |
-
|
97 |
-
#. Text in echo
|
98 |
-
#: speed-booster-pack/inc/template/options.php:257
|
99 |
-
msgid ""
|
100 |
-
"Enter one by text field, the final part of the js files that you want to be "
|
101 |
-
"excluded from defer parsing option. For example: <code>jquery.min.js</code> "
|
102 |
-
"If you want to exclude more than 4 scripts, your page score will be hit and "
|
103 |
-
"therefore the use of \"Defer parsing of javascript files\" option will "
|
104 |
-
"become useless so you can disable it"
|
105 |
-
msgstr ""
|
106 |
-
|
107 |
-
#. Text in echo
|
108 |
-
#: speed-booster-pack/inc/template/options.php:195
|
109 |
-
msgid ""
|
110 |
-
"Enter one js handle per text field, in the left area and the corespondent "
|
111 |
-
"html script in the right text fields."
|
112 |
-
msgstr ""
|
113 |
-
|
114 |
-
#. Text in echo
|
115 |
-
#: speed-booster-pack/inc/template/options.php:233
|
116 |
-
msgid "Exclude scripts from being deferred"
|
117 |
-
msgstr ""
|
118 |
-
|
119 |
-
#. Text in echo
|
120 |
-
#: speed-booster-pack/inc/template/options.php:143
|
121 |
-
msgid "Exclude scripts from being moved to the footer"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
#. Text in echo
|
125 |
-
#: speed-booster-pack/inc/template/options.php:330
|
126 |
-
msgid "Exclude styles from asynchronously option: "
|
127 |
-
msgstr ""
|
128 |
-
|
129 |
-
#. Text in echo
|
130 |
-
#: speed-booster-pack/inc/template/options.php:23
|
131 |
-
msgid "General options"
|
132 |
-
msgstr ""
|
133 |
-
|
134 |
-
#. Text in echo
|
135 |
-
#: speed-booster-pack/inc/template/options.php:104
|
136 |
-
msgid "Home Page Load Stats"
|
137 |
-
msgstr ""
|
138 |
-
|
139 |
-
#. Text in echo
|
140 |
-
#: speed-booster-pack/inc/template/options.php:195
|
141 |
-
msgid ""
|
142 |
-
"If you want to exclude more than 4 scripts, your page score will be hit and "
|
143 |
-
"therefore the use of \"Move scripts to footer\" option will become useless "
|
144 |
-
"so you can disable it."
|
145 |
-
msgstr ""
|
146 |
-
|
147 |
-
#. Text in echo
|
148 |
-
#: speed-booster-pack/inc/template/options.php:320
|
149 |
-
msgid "Insert all CSS styles inline to the footer"
|
150 |
-
msgstr ""
|
151 |
-
|
152 |
-
#. Text in echo
|
153 |
-
#: speed-booster-pack/inc/template/options.php:368
|
154 |
-
msgid "Insert all CSS styles inline to the footer: "
|
155 |
-
msgstr ""
|
156 |
-
|
157 |
-
#. Text in echo
|
158 |
-
#: speed-booster-pack/inc/template/options.php:416
|
159 |
-
msgid "Installed Version:"
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#. Text in echo
|
163 |
-
#: speed-booster-pack/inc/template/options.php:55
|
164 |
-
msgid "Lazy load images to improve speed"
|
165 |
-
msgstr ""
|
166 |
-
|
167 |
-
#. Text in echo
|
168 |
-
#: speed-booster-pack/inc/template/options.php:305
|
169 |
-
msgid "Load CSS asynchronously"
|
170 |
-
msgstr ""
|
171 |
-
|
172 |
-
#. Text in echo
|
173 |
-
#: speed-booster-pack/inc/template/options.php:40
|
174 |
-
msgid "Load JS from Google Libraries"
|
175 |
-
msgstr ""
|
176 |
-
|
177 |
-
#. Text in echo
|
178 |
-
#: speed-booster-pack/inc/template/options.php:31
|
179 |
-
msgid "Main plugin options"
|
180 |
-
msgstr ""
|
181 |
-
|
182 |
-
#. Text in echo
|
183 |
-
#: speed-booster-pack/inc/template/options.php:313
|
184 |
-
msgid "Minify all CSS styles"
|
185 |
-
msgstr ""
|
186 |
-
|
187 |
-
#. Text in echo
|
188 |
-
#: speed-booster-pack/inc/template/options.php:35
|
189 |
-
msgid "Move scripts to the footer"
|
190 |
-
msgstr ""
|
191 |
-
|
192 |
-
#. Text in echo
|
193 |
-
#: speed-booster-pack/inc/template/options.php:289
|
194 |
-
msgid ""
|
195 |
-
"Note that any changes you make will only affect new images uploaded to your "
|
196 |
-
"site. If you want to update all of your images with the new sizes, install "
|
197 |
-
"and run the Regenerate Thumbnails plugin. As a reference, a lower level of "
|
198 |
-
"compression means more performance. We recommend you choose a compression "
|
199 |
-
"level between 50 and 75."
|
200 |
-
msgstr ""
|
201 |
-
|
202 |
-
#. Text in echo
|
203 |
-
#: speed-booster-pack/inc/template/options.php:118
|
204 |
-
msgid "Number of executed queries:"
|
205 |
-
msgstr ""
|
206 |
-
|
207 |
-
#. Text in echo
|
208 |
-
#: speed-booster-pack/inc/template/options.php:106
|
209 |
-
msgid "Page loading time in seconds:"
|
210 |
-
msgstr ""
|
211 |
-
|
212 |
-
#. Text in echo
|
213 |
-
#: speed-booster-pack/inc/template/options.php:131
|
214 |
-
msgid "Peak Memory Used:"
|
215 |
-
msgstr ""
|
216 |
-
|
217 |
-
#. Text in echo
|
218 |
-
#: speed-booster-pack/inc/template/options.php:195
|
219 |
-
msgid "Read more"
|
220 |
-
msgstr ""
|
221 |
-
|
222 |
-
#. Text in echo
|
223 |
-
#: speed-booster-pack/inc/template/options.php:399
|
224 |
-
msgid "Read online plugin documentation"
|
225 |
-
msgstr ""
|
226 |
-
|
227 |
-
#. Text in echo
|
228 |
-
#: speed-booster-pack/inc/template/options.php:423
|
229 |
-
msgid "Released date:"
|
230 |
-
msgstr ""
|
231 |
-
|
232 |
-
#. Text in echo
|
233 |
-
#: speed-booster-pack/inc/template/options.php:81
|
234 |
-
msgid "Remove Adjacent Posts Links"
|
235 |
-
msgstr ""
|
236 |
-
|
237 |
-
#. Text in echo
|
238 |
-
#: speed-booster-pack/inc/template/options.php:71
|
239 |
-
msgid "Remove RSD Link"
|
240 |
-
msgstr ""
|
241 |
-
|
242 |
-
#. Text in echo
|
243 |
-
#: speed-booster-pack/inc/template/options.php:86
|
244 |
-
msgid "Remove Windows Manifest"
|
245 |
-
msgstr ""
|
246 |
-
|
247 |
-
#. Text in echo
|
248 |
-
#: speed-booster-pack/inc/template/options.php:76
|
249 |
-
msgid "Remove WordPress Shortlink"
|
250 |
-
msgstr ""
|
251 |
-
|
252 |
-
#. Text in echo
|
253 |
-
#: speed-booster-pack/inc/template/options.php:96
|
254 |
-
msgid "Remove all rss feed links"
|
255 |
-
msgstr ""
|
256 |
-
|
257 |
-
#. Text in echo
|
258 |
-
#: speed-booster-pack/inc/template/options.php:67
|
259 |
-
msgid "Remove junk header tags"
|
260 |
-
msgstr ""
|
261 |
-
|
262 |
-
#. Text in echo
|
263 |
-
#: speed-booster-pack/inc/template/options.php:50
|
264 |
-
msgid "Remove query strings"
|
265 |
-
msgstr ""
|
266 |
-
|
267 |
-
#. Text in echo
|
268 |
-
#: speed-booster-pack/inc/template/options.php:91
|
269 |
-
msgid "Remove the WordPress Version"
|
270 |
-
msgstr ""
|
271 |
-
|
272 |
-
#. Text in echo
|
273 |
-
#: speed-booster-pack/inc/template/options.php:60
|
274 |
-
msgid "Removes extra Font Awesome styles"
|
275 |
-
msgstr ""
|
276 |
-
|
277 |
-
#. Text in echo
|
278 |
-
#: speed-booster-pack/inc/template/options.php:149
|
279 |
-
#: speed-booster-pack/inc/template/options.php:206
|
280 |
-
msgid "Script Handle"
|
281 |
-
msgstr ""
|
282 |
-
|
283 |
-
#. Text in echo
|
284 |
-
#: speed-booster-pack/inc/template/options.php:207
|
285 |
-
msgid "Script Path"
|
286 |
-
msgstr ""
|
287 |
-
|
288 |
-
#. Text in echo
|
289 |
-
#: speed-booster-pack/inc/template/options.php:299
|
290 |
-
msgid "Still need more speed?"
|
291 |
-
msgstr ""
|
292 |
-
|
293 |
-
#. Text in echo
|
294 |
-
#: speed-booster-pack/inc/template/options.php:286
|
295 |
-
msgid ""
|
296 |
-
"The default image compression setting in WordPress is 90%. Compressing your "
|
297 |
-
"images further than the default will make your file sizes even smaller and "
|
298 |
-
"will boost your site performance."
|
299 |
-
msgstr ""
|
300 |
-
|
301 |
-
#. Text in echo
|
302 |
-
#: speed-booster-pack/inc/template/options.php:405
|
303 |
-
msgid "Version Information"
|
304 |
-
msgstr ""
|
305 |
-
|
306 |
-
#. Text in echo
|
307 |
-
#: speed-booster-pack/inc/template/options.php:389
|
308 |
-
msgid "What do these settings mean?"
|
309 |
-
msgstr ""
|
310 |
-
|
311 |
-
#. Text in echo
|
312 |
-
#: speed-booster-pack/inc/template/options.php:195
|
313 |
-
msgid "detailed instructions"
|
314 |
-
msgstr ""
|
315 |
-
|
316 |
-
#. Text in echo
|
317 |
-
#: speed-booster-pack/inc/template/options.php:195
|
318 |
-
msgid "on this option on plugin documentation."
|
319 |
-
msgstr ""
|
320 |
-
|
321 |
-
#. Text in echo
|
322 |
-
#: speed-booster-pack/inc/template/options.php:126
|
323 |
-
msgid "q"
|
324 |
-
msgstr ""
|
325 |
-
|
326 |
-
#. Text in echo
|
327 |
-
#: speed-booster-pack/inc/template/options.php:114
|
328 |
-
msgid "s"
|
329 |
-
msgstr ""
|
330 |
-
|
331 |
-
#. Text in echo
|
332 |
-
#: speed-booster-pack/inc/template/options.php:368
|
333 |
-
msgid ""
|
334 |
-
"this option will eliminate render-blocking CSS warning in Google Page Speed "
|
335 |
-
"test. If there is something broken after activation, you need to disable "
|
336 |
-
"this option. Please note that before enabling this sensitive option, it is "
|
337 |
-
"strongly recommended that you also enable the \"Move scripts to the footer\" "
|
338 |
-
"option."
|
339 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lang/sb-pack.pot
DELETED
@@ -1,339 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
4 |
-
"Content-Transfer-Encoding: 8bit\n"
|
5 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
6 |
-
"Project-Id-Version: Speed Booster Pack\n"
|
7 |
-
"POT-Creation-Date: \n"
|
8 |
-
"PO-Revision-Date: \n"
|
9 |
-
"Last-Translator: Liviu Costache <tiguan@tiguandesign.com>\n"
|
10 |
-
"Language-Team: Tiguandesign.com <tiguan@tiguandesign.com>\n"
|
11 |
-
"MIME-Version: 1.0\n"
|
12 |
-
"Language: en\n"
|
13 |
-
"X-Generator: Poedit 1.6.7\n"
|
14 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
-
"X-Poedit-KeywordsList: _e;__\n"
|
16 |
-
"X-Poedit-Basepath: .\n"
|
17 |
-
"X-Poedit-SearchPath-0: ..\n"
|
18 |
-
"X-Poedit-SearchPath-1: ...\n"
|
19 |
-
|
20 |
-
#. Text in echo
|
21 |
-
#: speed-booster-pack/inc/template/options.php:399
|
22 |
-
msgid " with guidelines to enhance your website performance."
|
23 |
-
msgstr ""
|
24 |
-
|
25 |
-
#. Text in echo
|
26 |
-
#: speed-booster-pack/inc/template/options.php:360
|
27 |
-
msgid "*The list may be incomplete in some circumstances."
|
28 |
-
msgstr ""
|
29 |
-
|
30 |
-
#. Text in echo
|
31 |
-
#: speed-booster-pack/inc/template/options.php:132
|
32 |
-
msgid "Active Plugins:"
|
33 |
-
msgstr ""
|
34 |
-
|
35 |
-
#. Text in echo
|
36 |
-
#: speed-booster-pack/inc/template/options.php:367
|
37 |
-
msgid "Additional information:"
|
38 |
-
msgstr ""
|
39 |
-
|
40 |
-
#. Text in echo
|
41 |
-
#: speed-booster-pack/inc/template/options.php:342
|
42 |
-
msgid ""
|
43 |
-
"As a guidance, here is a list of css handles of each enqueued style detected "
|
44 |
-
"by our plugin:"
|
45 |
-
msgstr ""
|
46 |
-
|
47 |
-
#. Text in echo
|
48 |
-
#: speed-booster-pack/inc/template/options.php:200
|
49 |
-
msgid ""
|
50 |
-
"As a guidance, here is a list of script handles and script paths of each "
|
51 |
-
"enqueued script detected by our plugin:"
|
52 |
-
msgstr ""
|
53 |
-
|
54 |
-
#. Text in echo
|
55 |
-
#: speed-booster-pack/inc/template/options.php:19
|
56 |
-
msgid "Boost Your Website Speed!"
|
57 |
-
msgstr ""
|
58 |
-
|
59 |
-
#. Text in echo
|
60 |
-
#: speed-booster-pack/inc/template/options.php:348
|
61 |
-
msgid "CSS Handle"
|
62 |
-
msgstr ""
|
63 |
-
|
64 |
-
#. Text in echo
|
65 |
-
#: speed-booster-pack/inc/template/options.php:265
|
66 |
-
msgid "Change the default image compression level"
|
67 |
-
msgstr ""
|
68 |
-
|
69 |
-
#. Text in echo
|
70 |
-
#: speed-booster-pack/inc/template/options.php:277
|
71 |
-
msgid "Compression level:"
|
72 |
-
msgstr ""
|
73 |
-
|
74 |
-
#. Text in echo
|
75 |
-
#: speed-booster-pack/inc/template/options.php:172
|
76 |
-
msgid "Copy the HTML code of the script from your page source and add it below"
|
77 |
-
msgstr ""
|
78 |
-
|
79 |
-
#. Text in echo
|
80 |
-
#: speed-booster-pack/inc/template/options.php:45
|
81 |
-
msgid "Defer parsing of javascript files"
|
82 |
-
msgstr ""
|
83 |
-
|
84 |
-
#. Text in echo
|
85 |
-
#: speed-booster-pack/inc/template/options.php:325
|
86 |
-
msgid "Disable all above CSS options on mobile devices"
|
87 |
-
msgstr ""
|
88 |
-
|
89 |
-
#. Text in echo
|
90 |
-
#: speed-booster-pack/inc/template/options.php:333
|
91 |
-
msgid ""
|
92 |
-
"Enter one by line, the handles of css files or the final part of the style "
|
93 |
-
"URL. For example: <code>font-awesome</code> or <code>font-awesome.min.css</"
|
94 |
-
"code>"
|
95 |
-
msgstr ""
|
96 |
-
|
97 |
-
#. Text in echo
|
98 |
-
#: speed-booster-pack/inc/template/options.php:257
|
99 |
-
msgid ""
|
100 |
-
"Enter one by text field, the final part of the js files that you want to be "
|
101 |
-
"excluded from defer parsing option. For example: <code>jquery.min.js</code> "
|
102 |
-
"If you want to exclude more than 4 scripts, your page score will be hit and "
|
103 |
-
"therefore the use of \"Defer parsing of javascript files\" option will "
|
104 |
-
"become useless so you can disable it"
|
105 |
-
msgstr ""
|
106 |
-
|
107 |
-
#. Text in echo
|
108 |
-
#: speed-booster-pack/inc/template/options.php:195
|
109 |
-
msgid ""
|
110 |
-
"Enter one js handle per text field, in the left area and the corespondent "
|
111 |
-
"html script in the right text fields."
|
112 |
-
msgstr ""
|
113 |
-
|
114 |
-
#. Text in echo
|
115 |
-
#: speed-booster-pack/inc/template/options.php:233
|
116 |
-
msgid "Exclude scripts from being deferred"
|
117 |
-
msgstr ""
|
118 |
-
|
119 |
-
#. Text in echo
|
120 |
-
#: speed-booster-pack/inc/template/options.php:143
|
121 |
-
msgid "Exclude scripts from being moved to the footer"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
#. Text in echo
|
125 |
-
#: speed-booster-pack/inc/template/options.php:330
|
126 |
-
msgid "Exclude styles from asynchronously option: "
|
127 |
-
msgstr ""
|
128 |
-
|
129 |
-
#. Text in echo
|
130 |
-
#: speed-booster-pack/inc/template/options.php:23
|
131 |
-
msgid "General options"
|
132 |
-
msgstr ""
|
133 |
-
|
134 |
-
#. Text in echo
|
135 |
-
#: speed-booster-pack/inc/template/options.php:104
|
136 |
-
msgid "Home Page Load Stats"
|
137 |
-
msgstr ""
|
138 |
-
|
139 |
-
#. Text in echo
|
140 |
-
#: speed-booster-pack/inc/template/options.php:195
|
141 |
-
msgid ""
|
142 |
-
"If you want to exclude more than 4 scripts, your page score will be hit and "
|
143 |
-
"therefore the use of \"Move scripts to footer\" option will become useless "
|
144 |
-
"so you can disable it."
|
145 |
-
msgstr ""
|
146 |
-
|
147 |
-
#. Text in echo
|
148 |
-
#: speed-booster-pack/inc/template/options.php:320
|
149 |
-
msgid "Insert all CSS styles inline to the footer"
|
150 |
-
msgstr ""
|
151 |
-
|
152 |
-
#. Text in echo
|
153 |
-
#: speed-booster-pack/inc/template/options.php:368
|
154 |
-
msgid "Insert all CSS styles inline to the footer: "
|
155 |
-
msgstr ""
|
156 |
-
|
157 |
-
#. Text in echo
|
158 |
-
#: speed-booster-pack/inc/template/options.php:416
|
159 |
-
msgid "Installed Version:"
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#. Text in echo
|
163 |
-
#: speed-booster-pack/inc/template/options.php:55
|
164 |
-
msgid "Lazy load images to improve speed"
|
165 |
-
msgstr ""
|
166 |
-
|
167 |
-
#. Text in echo
|
168 |
-
#: speed-booster-pack/inc/template/options.php:305
|
169 |
-
msgid "Load CSS asynchronously"
|
170 |
-
msgstr ""
|
171 |
-
|
172 |
-
#. Text in echo
|
173 |
-
#: speed-booster-pack/inc/template/options.php:40
|
174 |
-
msgid "Load JS from Google Libraries"
|
175 |
-
msgstr ""
|
176 |
-
|
177 |
-
#. Text in echo
|
178 |
-
#: speed-booster-pack/inc/template/options.php:31
|
179 |
-
msgid "Main plugin options"
|
180 |
-
msgstr ""
|
181 |
-
|
182 |
-
#. Text in echo
|
183 |
-
#: speed-booster-pack/inc/template/options.php:313
|
184 |
-
msgid "Minify all CSS styles"
|
185 |
-
msgstr ""
|
186 |
-
|
187 |
-
#. Text in echo
|
188 |
-
#: speed-booster-pack/inc/template/options.php:35
|
189 |
-
msgid "Move scripts to the footer"
|
190 |
-
msgstr ""
|
191 |
-
|
192 |
-
#. Text in echo
|
193 |
-
#: speed-booster-pack/inc/template/options.php:289
|
194 |
-
msgid ""
|
195 |
-
"Note that any changes you make will only affect new images uploaded to your "
|
196 |
-
"site. If you want to update all of your images with the new sizes, install "
|
197 |
-
"and run the Regenerate Thumbnails plugin. As a reference, a lower level of "
|
198 |
-
"compression means more performance. We recommend you choose a compression "
|
199 |
-
"level between 50 and 75."
|
200 |
-
msgstr ""
|
201 |
-
|
202 |
-
#. Text in echo
|
203 |
-
#: speed-booster-pack/inc/template/options.php:118
|
204 |
-
msgid "Number of executed queries:"
|
205 |
-
msgstr ""
|
206 |
-
|
207 |
-
#. Text in echo
|
208 |
-
#: speed-booster-pack/inc/template/options.php:106
|
209 |
-
msgid "Page loading time in seconds:"
|
210 |
-
msgstr ""
|
211 |
-
|
212 |
-
#. Text in echo
|
213 |
-
#: speed-booster-pack/inc/template/options.php:131
|
214 |
-
msgid "Peak Memory Used:"
|
215 |
-
msgstr ""
|
216 |
-
|
217 |
-
#. Text in echo
|
218 |
-
#: speed-booster-pack/inc/template/options.php:195
|
219 |
-
msgid "Read more"
|
220 |
-
msgstr ""
|
221 |
-
|
222 |
-
#. Text in echo
|
223 |
-
#: speed-booster-pack/inc/template/options.php:399
|
224 |
-
msgid "Read online plugin documentation"
|
225 |
-
msgstr ""
|
226 |
-
|
227 |
-
#. Text in echo
|
228 |
-
#: speed-booster-pack/inc/template/options.php:423
|
229 |
-
msgid "Released date:"
|
230 |
-
msgstr ""
|
231 |
-
|
232 |
-
#. Text in echo
|
233 |
-
#: speed-booster-pack/inc/template/options.php:81
|
234 |
-
msgid "Remove Adjacent Posts Links"
|
235 |
-
msgstr ""
|
236 |
-
|
237 |
-
#. Text in echo
|
238 |
-
#: speed-booster-pack/inc/template/options.php:71
|
239 |
-
msgid "Remove RSD Link"
|
240 |
-
msgstr ""
|
241 |
-
|
242 |
-
#. Text in echo
|
243 |
-
#: speed-booster-pack/inc/template/options.php:86
|
244 |
-
msgid "Remove Windows Manifest"
|
245 |
-
msgstr ""
|
246 |
-
|
247 |
-
#. Text in echo
|
248 |
-
#: speed-booster-pack/inc/template/options.php:76
|
249 |
-
msgid "Remove WordPress Shortlink"
|
250 |
-
msgstr ""
|
251 |
-
|
252 |
-
#. Text in echo
|
253 |
-
#: speed-booster-pack/inc/template/options.php:96
|
254 |
-
msgid "Remove all rss feed links"
|
255 |
-
msgstr ""
|
256 |
-
|
257 |
-
#. Text in echo
|
258 |
-
#: speed-booster-pack/inc/template/options.php:67
|
259 |
-
msgid "Remove junk header tags"
|
260 |
-
msgstr ""
|
261 |
-
|
262 |
-
#. Text in echo
|
263 |
-
#: speed-booster-pack/inc/template/options.php:50
|
264 |
-
msgid "Remove query strings"
|
265 |
-
msgstr ""
|
266 |
-
|
267 |
-
#. Text in echo
|
268 |
-
#: speed-booster-pack/inc/template/options.php:91
|
269 |
-
msgid "Remove the WordPress Version"
|
270 |
-
msgstr ""
|
271 |
-
|
272 |
-
#. Text in echo
|
273 |
-
#: speed-booster-pack/inc/template/options.php:60
|
274 |
-
msgid "Removes extra Font Awesome styles"
|
275 |
-
msgstr ""
|
276 |
-
|
277 |
-
#. Text in echo
|
278 |
-
#: speed-booster-pack/inc/template/options.php:149
|
279 |
-
#: speed-booster-pack/inc/template/options.php:206
|
280 |
-
msgid "Script Handle"
|
281 |
-
msgstr ""
|
282 |
-
|
283 |
-
#. Text in echo
|
284 |
-
#: speed-booster-pack/inc/template/options.php:207
|
285 |
-
msgid "Script Path"
|
286 |
-
msgstr ""
|
287 |
-
|
288 |
-
#. Text in echo
|
289 |
-
#: speed-booster-pack/inc/template/options.php:299
|
290 |
-
msgid "Still need more speed?"
|
291 |
-
msgstr ""
|
292 |
-
|
293 |
-
#. Text in echo
|
294 |
-
#: speed-booster-pack/inc/template/options.php:286
|
295 |
-
msgid ""
|
296 |
-
"The default image compression setting in WordPress is 90%. Compressing your "
|
297 |
-
"images further than the default will make your file sizes even smaller and "
|
298 |
-
"will boost your site performance."
|
299 |
-
msgstr ""
|
300 |
-
|
301 |
-
#. Text in echo
|
302 |
-
#: speed-booster-pack/inc/template/options.php:405
|
303 |
-
msgid "Version Information"
|
304 |
-
msgstr ""
|
305 |
-
|
306 |
-
#. Text in echo
|
307 |
-
#: speed-booster-pack/inc/template/options.php:389
|
308 |
-
msgid "What do these settings mean?"
|
309 |
-
msgstr ""
|
310 |
-
|
311 |
-
#. Text in echo
|
312 |
-
#: speed-booster-pack/inc/template/options.php:195
|
313 |
-
msgid "detailed instructions"
|
314 |
-
msgstr ""
|
315 |
-
|
316 |
-
#. Text in echo
|
317 |
-
#: speed-booster-pack/inc/template/options.php:195
|
318 |
-
msgid "on this option on plugin documentation."
|
319 |
-
msgstr ""
|
320 |
-
|
321 |
-
#. Text in echo
|
322 |
-
#: speed-booster-pack/inc/template/options.php:126
|
323 |
-
msgid "q"
|
324 |
-
msgstr ""
|
325 |
-
|
326 |
-
#. Text in echo
|
327 |
-
#: speed-booster-pack/inc/template/options.php:114
|
328 |
-
msgid "s"
|
329 |
-
msgstr ""
|
330 |
-
|
331 |
-
#. Text in echo
|
332 |
-
#: speed-booster-pack/inc/template/options.php:368
|
333 |
-
msgid ""
|
334 |
-
"this option will eliminate render-blocking CSS warning in Google Page Speed "
|
335 |
-
"test. If there is something broken after activation, you need to disable "
|
336 |
-
"this option. Please note that before enabling this sensitive option, it is "
|
337 |
-
"strongly recommended that you also enable the \"Move scripts to the footer\" "
|
338 |
-
"option."
|
339 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -1,206 +1,246 @@
|
|
1 |
-
=== Speed Booster Pack ===
|
2 |
-
Contributors: machothemes
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
Stable tag: 3.
|
8 |
-
License:
|
9 |
-
License URI: http://www.gnu.org/licenses/gpl-
|
10 |
-
|
11 |
-
A light, frequently updated and easy to use plugin to make your site load faster and score higher on Google PSI.
|
12 |
-
|
13 |
-
== Description ==
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
* **
|
31 |
-
* **
|
32 |
-
* **
|
33 |
-
* **
|
34 |
-
* **
|
35 |
-
* **
|
36 |
-
* **
|
37 |
-
* **
|
38 |
-
* **
|
39 |
-
* **
|
40 |
-
* **
|
41 |
-
* **
|
42 |
-
* **
|
43 |
-
* **
|
44 |
-
* **
|
45 |
-
* **Remove
|
46 |
-
|
47 |
-
*
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
Future Development:
|
54 |
-
|
55 |
-
* Enable compression option.
|
56 |
-
* Leverage browser caching.
|
57 |
-
* Option to disable specific plugin actions on specific pages directly via the page edit screen metabox.
|
58 |
-
* Option to keep specific scripts in the header, since there are many javascript-based plugins scripts, that rely on jQuery to be loaded prior to the HTML elements.
|
59 |
-
|
60 |
-
= Recommended Plugins =
|
61 |
-
|
62 |
-
* [Simple Author Box](http://wordpress.org/plugins/simple-author-box/) - A simple but cool author box with social icons.
|
63 |
-
|
64 |
-
**About us:**
|
65 |
-
We are a young team of WordPress aficionados who love building WordPress plugins & <a href="https://www.machothemes.com/" target="_blank" title="Premium WordPress themes">Premium WordPress themes</a> over on our theme shop. We’re also blogging and wish to help our users find the <a href="https://www.machothemes.com/blog/best-cheap-wordpress-hosting/" target="_blank" title="Best Cheap WordPress Hosting">Best Cheap WordPress Hosting</a> available on the market. Check out our blog.
|
66 |
-
|
67 |
-
|
68 |
-
== Installation ==
|
69 |
-
|
70 |
-
1. Download the plugin (.zip file) on your hard drive.
|
71 |
-
2. Unzip the zip file contents.
|
72 |
-
3. Upload the `speed-booster-pack` folder to the `/wp-content/plugins/` directory.
|
73 |
-
4. Activate the plugin through the 'Plugins' menu in WordPress.
|
74 |
-
5. A new sub menu item `Speed Booster Pack` will appear in your main Settings menu.
|
75 |
-
|
76 |
-
== Screenshots ==
|
77 |
-
1. Plugin options page, simple view (v2.5)
|
78 |
-
|
79 |
-
== Changelog ==
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
*
|
94 |
-
|
95 |
-
|
96 |
-
*
|
97 |
-
|
98 |
-
|
99 |
-
*
|
100 |
-
|
101 |
-
|
102 |
-
*
|
103 |
-
*
|
104 |
-
|
105 |
-
|
106 |
-
*
|
107 |
-
|
108 |
-
|
109 |
-
*
|
110 |
-
|
111 |
-
|
112 |
-
*
|
113 |
-
|
114 |
-
|
115 |
-
*
|
116 |
-
|
117 |
-
|
118 |
-
*
|
119 |
-
|
120 |
-
|
121 |
-
*
|
122 |
-
|
123 |
-
|
124 |
-
*
|
125 |
-
|
126 |
-
=
|
127 |
-
*
|
128 |
-
|
129 |
-
=
|
130 |
-
* Added option to
|
131 |
-
|
132 |
-
|
133 |
-
*
|
134 |
-
|
135 |
-
=
|
136 |
-
*
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
=
|
152 |
-
*
|
153 |
-
|
154 |
-
|
155 |
-
* Added
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
*
|
161 |
-
|
162 |
-
|
163 |
-
*
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
*
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
*
|
172 |
-
* Added
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
*
|
179 |
-
|
180 |
-
=
|
181 |
-
*
|
182 |
-
|
183 |
-
=
|
184 |
-
*
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
*
|
193 |
-
*
|
194 |
-
*
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
*
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== Speed Booster Pack ===
|
2 |
+
Contributors: machothemes, silkalns
|
3 |
+
Tags: speed, optimization, performance, scripts to the footer, google libraries, font awesome cdn, defer parsing of javascript, remove query strings, gtmetrix, google pageSpeed, yslow, compression, render-blocking css
|
4 |
+
Requires at least: 3.6
|
5 |
+
Tested up to: 4.9
|
6 |
+
Requires PHP: 5.6
|
7 |
+
Stable tag: 3.7.3
|
8 |
+
License: GPLv3 or later
|
9 |
+
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
+
|
11 |
+
A light, frequently updated and easy to use plugin to make your site load faster and score higher on Google PSI.
|
12 |
+
|
13 |
+
== Description ==
|
14 |
+
|
15 |
+
A short video about how Speed Booster pack can help actually increase a website's score in Google PageSpeed Insights:
|
16 |
+
|
17 |
+
https://www.youtube.com/watch?v=u0G6pk2mX4M
|
18 |
+
|
19 |
+
**Speed Booster Pack is a lightweight, frequently updated, easy to use and well supported plugin which allows you to improve your website's loading speed.**
|
20 |
+
|
21 |
+
Improving your site's speed will get you a better score on major speed testing services such as [Google PageSpeed](http://developers.google.com/speed/pagespeed/insights/), [GTmetrix](http://gtmetrix.com/), [YSlow](https://developer.yahoo.com/yslow/), [Pingdom](http://tools.pingdom.com/fpt/), [Webpagetest](http://www.webpagetest.org/) and will also improve your overall site's usability. This will persuade Google and other search engines to rank your site higher in search results thus sending more traffic.
|
22 |
+
|
23 |
+
= Why Site Speed Is Important? =
|
24 |
+
|
25 |
+
Visitors usually close a website if it doesn't load in a few seconds and the slower a site loads the greater the chances are that the visitors will leave. And you don't want that to happen, do you? :-)
|
26 |
+
Speed Booster Pack is a plugin that can help you speed up your website by tweaking different options.
|
27 |
+
|
28 |
+
= Main Plugin Features =
|
29 |
+
|
30 |
+
* **Eliminate external render-blocking javascript and css** in above-the-fold content.
|
31 |
+
* **Move scripts to the footer** to improve page loading speed.
|
32 |
+
* **Load CSS asynchronously** to render your page more quickly and get a higher score on the major speed testing services.
|
33 |
+
* **Minify and inline all CSS styles and move them to the footer** to eliminate external render-blocking CSS and optimize CSS delivery.
|
34 |
+
* ** Minify HTML and JavaScript to increase your page load speed.
|
35 |
+
* **Change image compression level** to keep file sizes smaller; Change JPG quality.
|
36 |
+
* **Load javascript files from Google Libraries** rather than serving them from your WordPress install directly, to reduce latency, increase parallelism and improve browser caching.
|
37 |
+
* **Defer parsing of javascript files** to reduce the initial load time of your page.
|
38 |
+
* **Remove query strings from static resources** to improve your speed scores.
|
39 |
+
* **Remove extra Font Awesome stylesheets** added to your theme by certain plugins, if *Font Awesome* is already used in your theme.
|
40 |
+
* **Remove junk header tags** to clean up your WordPress Header.
|
41 |
+
* **Display page loading time** in the plugin options page.
|
42 |
+
* **Display the number of executed SQL queries** in the plugin options page.
|
43 |
+
* **Display the Peak Memory Used** in the plugin options page.
|
44 |
+
* **Exclude scripts** from being moved to the footer or defered.
|
45 |
+
* **Remove RSD Link** if you are not using a Weblog Client or some 3rd party sites/programs that use the XML-RPC request formats.
|
46 |
+
* **Remove WordPress Shortlink**
|
47 |
+
* **Remove the WordPress Version** this option is added for security reasons and cleaning the header.
|
48 |
+
* **Remove all rss feed links** to cleanup your WordPress header.
|
49 |
+
|
50 |
+
* For complete usage instructions visit [Plugin Documentation](http://docs.machothemes.com/category/118-speed-booster)
|
51 |
+
|
52 |
+
|
53 |
+
Future Development:
|
54 |
+
|
55 |
+
* Enable compression option.
|
56 |
+
* Leverage browser caching.
|
57 |
+
* Option to disable specific plugin actions on specific pages directly via the page edit screen metabox.
|
58 |
+
* Option to keep specific scripts in the header, since there are many javascript-based plugins scripts, that rely on jQuery to be loaded prior to the HTML elements.
|
59 |
+
|
60 |
+
= Recommended Plugins =
|
61 |
+
|
62 |
+
* [Simple Author Box](http://wordpress.org/plugins/simple-author-box/) - A simple but cool author box with social icons.
|
63 |
+
|
64 |
+
**About us:**
|
65 |
+
We are a young team of WordPress aficionados who love building WordPress plugins & <a href="https://www.machothemes.com/" target="_blank" title="Premium WordPress themes">Premium WordPress themes</a> over on our theme shop. We’re also blogging and wish to help our users find the <a href="https://www.machothemes.com/blog/best-cheap-wordpress-hosting/" target="_blank" title="Best Cheap WordPress Hosting">Best Cheap WordPress Hosting</a> available on the market. Check out our blog.
|
66 |
+
|
67 |
+
|
68 |
+
== Installation ==
|
69 |
+
|
70 |
+
1. Download the plugin (.zip file) on your hard drive.
|
71 |
+
2. Unzip the zip file contents.
|
72 |
+
3. Upload the `speed-booster-pack` folder to the `/wp-content/plugins/` directory.
|
73 |
+
4. Activate the plugin through the 'Plugins' menu in WordPress.
|
74 |
+
5. A new sub menu item `Speed Booster Pack` will appear in your main Settings menu.
|
75 |
+
|
76 |
+
== Screenshots ==
|
77 |
+
1. Plugin options page, simple view (v2.5)
|
78 |
+
|
79 |
+
== Changelog ==
|
80 |
+
|
81 |
+
= 3.7.3 =
|
82 |
+
* minor backend tweaks
|
83 |
+
|
84 |
+
= 3.7.2 =
|
85 |
+
* minor tweaks & version bump
|
86 |
+
* removed ShortPixel aff integration
|
87 |
+
|
88 |
+
= 3.7.1 =
|
89 |
+
* Temporarily remove lazyLoad as the bundled JS files, namely, CrazyLazy don't seem to be working properly with the latest jQuery version.
|
90 |
+
|
91 |
+
= 3.7 =
|
92 |
+
|
93 |
+
* Bumped FontAwesome bundled CSS version from 4.1 -> 4.7 and changed to using MaxCDN
|
94 |
+
* (Hopefully) fixed the issue affecting relative/absolute paths when using minify CSS
|
95 |
+
* Wrongfully used escape functions
|
96 |
+
* Should use wp_scripts-> done instead of wp_scripts->queue
|
97 |
+
* Update Use Google Libraries 3rd party dependency
|
98 |
+
* Can't be fully translated because of one wrong text-domain string
|
99 |
+
* Change UI to WordPress Core UI
|
100 |
+
* Added plugin uninstall feedback
|
101 |
+
* Added plugin (dedicated) support tab && moved plugin feedback section only to support tab
|
102 |
+
* Added tooltips to all fields
|
103 |
+
* Re-worked the page load / site stats bar & added a bit more info
|
104 |
+
* Removed the old way of handling the uninstall hook & deletion of the sbp_integer variable from SBP when you uninstall it. In case you change your mind & reactivate the plugin, your former image compression value's there waiting for you.
|
105 |
+
* Addressed a small issue with the "Exclude scripts from being moved to footer" display
|
106 |
+
* Made all of the plugin's link send to MachoTheme's docs instead of Tiguan
|
107 |
+
* Updated jQuery UI CSS to latest version & included the PNG sprites that come by default with jQuery UI, eliminating some back-end "asset not found" errors
|
108 |
+
* Removed unused files
|
109 |
+
* Added feature: "Remove Emoji scripts"
|
110 |
+
* Added feature: "Disable XML-RPC" pings
|
111 |
+
* Added default values. Now it's even easier to get speed boosts without actually having to toggle stuff
|
112 |
+
* Removed po/mo files from SBP since translations are now handled here: https://translate.wordpress.org/projects/wp-plugins/speed-booster-pack
|
113 |
+
* jQuery will always be enqueued in the header, as a security/fallback measure.
|
114 |
+
* Fixed the way "exclude scripts from footer" works. It's now usable and only requires the script handle. Added backwards compat as well
|
115 |
+
* Fixed the way script deferring works, it's now actually usable. Introduced a filter: sbp_exclude_defer_scripts so users can exclude more than 4 scripts from being deferred
|
116 |
+
* Rewrote the way the plugin was handling removal of query strings from assets
|
117 |
+
* Automatically exclude certain known CSS assets from being async/minifed and/or moved from header (ex: dashicons / admin-bar)
|
118 |
+
* Full list of changes for v3.7, here: https://github.com/MachoThemes/speed-booster-pack/milestone/1?closed=1
|
119 |
+
|
120 |
+
= 3.6.1 =
|
121 |
+
* Added a section for feedback in the plugin's dashboard
|
122 |
+
|
123 |
+
= 3.6 =
|
124 |
+
* Changed contributors and fixed a few bugs. Plugin is now under new ownership.
|
125 |
+
|
126 |
+
= 3.5 =
|
127 |
+
* Fix compatibility with the CrazyLazy plugin.
|
128 |
+
|
129 |
+
= 3.4 =
|
130 |
+
* Added an option to increase your page load speed by minifying JavaScript and HTML. Removed option to remove RSD Link, since its impact on improving speed was insignificant.
|
131 |
+
|
132 |
+
= 3.3 =
|
133 |
+
* Fix Lazy Load CSS problem.
|
134 |
+
|
135 |
+
= 3.2 =
|
136 |
+
* Added Lazy Load feature to improve the web page loading times of your images.
|
137 |
+
|
138 |
+
= 3.1 =
|
139 |
+
* Following requests from users, added back the option of excluding javascript elements.
|
140 |
+
|
141 |
+
= 3.0 =
|
142 |
+
* We removed the option of excluding javascript elements as this option falls page speed score, making this plugin almost useless. Also, these options were only for advanced users, for regular users, incorrect use these options could destabilize the entire site functionality.
|
143 |
+
* We also removed the lazy load images option because it was outdated and broken. We'll come up with a new and updated solution soon.
|
144 |
+
|
145 |
+
= 2.9 =
|
146 |
+
* Added a new recommended features that can make your site load faster
|
147 |
+
|
148 |
+
= 2.8 =
|
149 |
+
* Fixed plugin options visibility issue
|
150 |
+
|
151 |
+
= 2.7 =
|
152 |
+
* All important options switched to off by default (on first plugin activation).
|
153 |
+
|
154 |
+
= 2.6 =
|
155 |
+
* Added Spanish translation by [Andrew Kurtis](http://www.webhostinghub.com/)
|
156 |
+
|
157 |
+
= 2.5 =
|
158 |
+
* Added option to exclude certain JS files from being moved to the footer.
|
159 |
+
* Added option to exclude certain JS files from being defered.
|
160 |
+
* Added a list of handles of all scripts and styles enqueued by your theme, useful for excluding options.
|
161 |
+
* Removed FOUC option since is useless with W3 Total Cache.
|
162 |
+
* Some visual changes on plugin options page.
|
163 |
+
* Translation updated with the new strings.
|
164 |
+
* Moved some admin inline scripts to js files.
|
165 |
+
|
166 |
+
= 2.4 =
|
167 |
+
* Fixed TypeError: $ is not a function when Prevent Flash of Unstyled Content (FOUC) option is active. Thanks to [@Marcio Duarte](http://profiles.wordpress.org/pagelab) for the [bug report](http://wordpress.org/support/topic/javascript-error-53).
|
168 |
+
|
169 |
+
= 2.3 =
|
170 |
+
* Added option to exclude certain CSS files from being loaded asynchronously.
|
171 |
+
* Changed the position of the styles when they are inlined to the footer (before js files).
|
172 |
+
* Added an experimental option to eliminate flash of unstyled content (FOUC) when all CSS styles are inlined to the footer.
|
173 |
+
* Translations updated.
|
174 |
+
|
175 |
+
= 2.2 =
|
176 |
+
* Fixed option to disable all CSS Async features on mobile devices.
|
177 |
+
* Fixed incompatibility with WPtouch plugin. Thanks to [@DevilIce](http://profiles.wordpress.org/devilice) for the [bug report](http://wordpress.org/support/topic/css-asynchronously-and-wptouch-issue).
|
178 |
+
* Updated function wp_is_mobile() on lazy load images to really disabled this feature on mobile devices.
|
179 |
+
|
180 |
+
= 2.1 =
|
181 |
+
*Added an option to disable all CSS Async features on mobile devices, to avoid some appearance issues until finding a clean solution to fix it.
|
182 |
+
|
183 |
+
= 2.0 =
|
184 |
+
*Modified: amended previous except for the admin toolbar css to enqueue its stylesheets only if admin bar is showing, to not break the render blocking plugin option.
|
185 |
+
|
186 |
+
= 1.9 =
|
187 |
+
* Fix: breaking the SEO by Yoast plugin interface (perhaps as well as to others too). Thanks to [@JahLive](http://profiles.wordpress.org/jahlive) for the [bug report](http://wordpress.org/support/topic/yoast-wordpress-seo-broken-after-update).
|
188 |
+
* Added an except for the admin toolbar css since the Load CSS asynchronously option removes its dashicons and stylesheets.
|
189 |
+
|
190 |
+
|
191 |
+
= 1.8 =
|
192 |
+
* Added option to load CSS asynchronously to render your page more quickly and get a higher score on the major speed testing services
|
193 |
+
* Added option to inline and minify all CSS styles and move them to the header or to the footer, to eliminate external render-blocking CSS and optimize CSS delivery.
|
194 |
+
* Added option to change the default image compression level, to help your pages load faster and keep file sizes smaller.
|
195 |
+
* Added memory usage information and active plugins number in the plugin options page.
|
196 |
+
* Replaced PHP version info with memory usage information (more useful).
|
197 |
+
* Added Romanian translation and POT file. Translators are welcome!
|
198 |
+
|
199 |
+
= 1.7 =
|
200 |
+
* Fixed Lazy Load missed js.
|
201 |
+
|
202 |
+
= 1.6 =
|
203 |
+
* Fixed some errors and missed codes from plugin functions.
|
204 |
+
|
205 |
+
= 1.5 =
|
206 |
+
* Added Lazy Load feature to improve the web page loading times of your images.
|
207 |
+
* Added an option to remove all rss feed links from WP Head.
|
208 |
+
* Added plugin options informations to the footer, visible in page source(hidden in front end), useful for debugging.
|
209 |
+
|
210 |
+
= 1.4 =
|
211 |
+
* Added a new option to remove extra Font Awesome stylesheets added to your theme by certain plugins, if Font Awesome is already used in your theme.
|
212 |
+
* Added a new option to remove WordPress Version Number.
|
213 |
+
|
214 |
+
= 1.3 =
|
215 |
+
* Fixed strict standards error: redefining already defined constructor for class.
|
216 |
+
|
217 |
+
= 1.2 =
|
218 |
+
* Modified the plugin version number variable in plugin options page.
|
219 |
+
|
220 |
+
= 1.1 =
|
221 |
+
* Modified Readme file
|
222 |
+
|
223 |
+
= 1.0 =
|
224 |
+
* Initial release
|
225 |
+
|
226 |
+
== Page Load Stats ==
|
227 |
+
|
228 |
+
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.
|
229 |
+
|
230 |
+
**Page loading time** – the progress bar color will be:
|
231 |
+
|
232 |
+
* *green* if the page load takes less than a second
|
233 |
+
* *orange* when loading the page takes between 1 and 2 seconds
|
234 |
+
* *red* if the page loading takes longer than 2 seconds
|
235 |
+
|
236 |
+
**Number of executed queries** – the progress bar color will be:
|
237 |
+
|
238 |
+
* *green* if there were less than 100 queries
|
239 |
+
* *orange* if there were between 100 and 200 queries
|
240 |
+
* *red* if the page required more than 200 queries
|
241 |
+
|
242 |
+
== Credits ==
|
243 |
+
|
244 |
+
* Thanks to [Jason Penney](http://jasonpenney.net/) for Google Libraries feature.
|
245 |
+
* CSS option was implemented from Async JS and CSS plugin and updated to our plugin.
|
246 |
+
* Credits for Lazy Load feature belongs to [pluginkollektiv](https://github.com/pluginkollektiv/crazy-lazy)
|
speed-booster-pack.php
CHANGED
@@ -1,291 +1,281 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Plugin Name: Speed Booster Pack
|
4 |
-
* Plugin URI: http://wordpress.org/plugins/speed-booster-pack/
|
5 |
-
* Description: Speed Booster Pack allows you to improve your page loading speed and get a higher score on the major
|
6 |
-
*
|
7 |
-
*
|
8 |
-
*
|
9 |
-
*
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
if( class_exists( 'Speed_Booster_Pack' ) ) {
|
283 |
-
|
284 |
-
// Installation and uninstallation hooks
|
285 |
-
register_activation_hook( __FILE__, array( 'Speed_Booster_Pack', 'sbp_activate' ) );
|
286 |
-
register_deactivation_hook( __FILE__, array( 'Speed_Booster_Pack', 'sbp_deactivate' ) );
|
287 |
-
|
288 |
-
// instantiate the plugin class
|
289 |
-
$speed_booster_pack = new Speed_Booster_Pack();
|
290 |
-
|
291 |
-
} // End if (!class_exists("Speed_Booster_Pack")) (2)
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Plugin Name: Speed Booster Pack
|
4 |
+
* Plugin URI: http://wordpress.org/plugins/speed-booster-pack/
|
5 |
+
* Description: Speed Booster Pack allows you to improve your page loading speed and get a higher score on the major
|
6 |
+
* speed testing services such as <a href="http://gtmetrix.com/">GTmetrix</a>, <a
|
7 |
+
* href="http://developers.google.com/speed/pagespeed/insights/">Google PageSpeed</a> or other speed testing tools.
|
8 |
+
* Version: 3.7.3
|
9 |
+
* Author: Macho Themes
|
10 |
+
* Author URI: https://www.machothemes.com/
|
11 |
+
* License: GPLv3
|
12 |
+
*/
|
13 |
+
|
14 |
+
/* Copyright 2018 Macho Themes (email : support [at] machothemes [dot] com)
|
15 |
+
|
16 |
+
THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
|
17 |
+
IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
|
18 |
+
THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
|
19 |
+
(AT YOUR OPTION) ANY LATER VERSION.
|
20 |
+
|
21 |
+
THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
22 |
+
BUT WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
|
23 |
+
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE
|
24 |
+
GNU GENERAL PUBLIC LICENSE FOR MORE DETAILS.
|
25 |
+
|
26 |
+
YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
|
27 |
+
ALONG WITH THIS PROGRAM; IF NOT, WRITE TO THE FREE SOFTWARE
|
28 |
+
FOUNDATION, INC., 51 FRANKLIN ST, FIFTH FLOOR, BOSTON, MA 02110-1301 USA
|
29 |
+
*/
|
30 |
+
|
31 |
+
|
32 |
+
//@todo: rework the CSS Async functionality
|
33 |
+
//@todo: fix lazyLoad with WooCommerce <- it actually works flawlessly, it doesn't seem to work with AO and/or Cloudflare hosted CSS
|
34 |
+
//@todo: add system info menu page
|
35 |
+
//@todo: automatically collapse accordeons on "advanced" tab
|
36 |
+
|
37 |
+
|
38 |
+
/*----------------------------------------------------------------------------------------------------------
|
39 |
+
Global Variables
|
40 |
+
-----------------------------------------------------------------------------------------------------------*/
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Default plugin values
|
44 |
+
*
|
45 |
+
* @since 3.7
|
46 |
+
*/
|
47 |
+
$sbp_defaults = array(
|
48 |
+
'remove_emojis' => 1, // remove emoji scripts
|
49 |
+
'remove_wsl' => 1, // remove WSL link in header
|
50 |
+
'remove_adjacent' => 1, // remove post adjacent links
|
51 |
+
'wml_link' => 1, // remove Windows Manifest Live link
|
52 |
+
'rsd_link' => 1, // remove really simple discovery
|
53 |
+
'wp_generator' => 1, // remove WP version
|
54 |
+
'remove_all_feeds' => 1, // remove all WP feeds
|
55 |
+
'disable_xmlrpc' => 1, // disable XML-RPC pingbacks
|
56 |
+
'font_awesome' => 1, // remove extra font awesome styles
|
57 |
+
'query_strings' => 1, // remove query strings
|
58 |
+
'use_google_libs' => 1, // serve JS assets (when possible) from Google CDN
|
59 |
+
);
|
60 |
+
|
61 |
+
$sbp_options = get_option( 'sbp_settings', (array) $sbp_defaults ); // retrieve the plugin settings from the options table
|
62 |
+
|
63 |
+
/*----------------------------------------------------------------------------------------------------------
|
64 |
+
Define some useful plugin constants
|
65 |
+
-----------------------------------------------------------------------------------------------------------*/
|
66 |
+
|
67 |
+
define( 'SPEED_BOOSTER_PACK_PATH', plugin_dir_path( __FILE__ ) ); // Defining plugin dir path
|
68 |
+
define( 'SPEED_BOOSTER_PACK_VERSION', '3.7.3' ); // Defining plugin version
|
69 |
+
define( 'SBP_FOOTER', 10 ); // Defining css position
|
70 |
+
define( 'SBP_FOOTER_LAST', 99999 ); // Defining css last position
|
71 |
+
|
72 |
+
/*----------------------------------------------------------------------------------------------------------
|
73 |
+
Main Plugin Class
|
74 |
+
-----------------------------------------------------------------------------------------------------------*/
|
75 |
+
|
76 |
+
if ( ! class_exists( 'Speed_Booster_Pack' ) ) {
|
77 |
+
|
78 |
+
class Speed_Booster_Pack {
|
79 |
+
|
80 |
+
/*----------------------------------------------------------------------------------------------------------
|
81 |
+
Function Construct
|
82 |
+
-----------------------------------------------------------------------------------------------------------*/
|
83 |
+
|
84 |
+
public function __construct() {
|
85 |
+
global $sbp_options;
|
86 |
+
|
87 |
+
// Enqueue admin scripts
|
88 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'sbp_admin_enqueue_scripts' ) );
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Should remain disabled until we release wpspeedbooster.com
|
92 |
+
*
|
93 |
+
* @since: 3.7
|
94 |
+
*
|
95 |
+
*/
|
96 |
+
//add_action( 'wp_dashboard_setup', [ $this, 'sbp_load_dashboard_widget' ] );
|
97 |
+
|
98 |
+
|
99 |
+
// load plugin textdomain
|
100 |
+
add_action( 'plugins_loaded', array( $this, 'sbp_load_translation' ) );
|
101 |
+
|
102 |
+
add_action( 'admin_notices', array( &$this, 'sbp_display_notices' ) );
|
103 |
+
add_action( 'wp_ajax_sbp_dismiss_notices', array( &$this, 'sbp_dismiss_notices' ) );
|
104 |
+
|
105 |
+
// Load plugin settings page
|
106 |
+
require_once( SPEED_BOOSTER_PACK_PATH . 'inc/settings.php' );
|
107 |
+
$Speed_Booster_Pack_Options = new Speed_Booster_Pack_Options();
|
108 |
+
|
109 |
+
// Load main plugin functions
|
110 |
+
require_once( SPEED_BOOSTER_PACK_PATH . 'inc/core.php' );
|
111 |
+
$Speed_Booster_Pack_Core = new Speed_Booster_Pack_Core();
|
112 |
+
|
113 |
+
// Enqueue admin style
|
114 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'sbp_enqueue_styles' ) );
|
115 |
+
|
116 |
+
|
117 |
+
// Filters
|
118 |
+
$this->path = plugin_basename( __FILE__ );
|
119 |
+
add_filter( "plugin_action_links_$this->path", array( $this, 'sbp_settings_link' ) );
|
120 |
+
|
121 |
+
// load the uninstall feedback class
|
122 |
+
require_once 'feedback/class-epsilon-feedback.php';
|
123 |
+
new Epsilon_Feedback( __FILE__ );
|
124 |
+
|
125 |
+
} // END public function __construct
|
126 |
+
|
127 |
+
|
128 |
+
function sbp_load_dashboard_widget() {
|
129 |
+
|
130 |
+
require_once plugin_dir_path( __FILE__ ) . 'widgets/dashboard-widget.php';
|
131 |
+
|
132 |
+
}
|
133 |
+
|
134 |
+
/*----------------------------------------------------------------------------------------------------------
|
135 |
+
Load plugin textdomain
|
136 |
+
-----------------------------------------------------------------------------------------------------------*/
|
137 |
+
|
138 |
+
function sbp_load_translation() {
|
139 |
+
load_plugin_textdomain( 'sb-pack', false, SPEED_BOOSTER_PACK_PATH . '/lang/' );
|
140 |
+
}
|
141 |
+
|
142 |
+
|
143 |
+
/*----------------------------------------------------------------------------------------------------------
|
144 |
+
Display/dismiss admin notices if needed
|
145 |
+
-----------------------------------------------------------------------------------------------------------*/
|
146 |
+
|
147 |
+
function sbp_display_notices() {
|
148 |
+
if ( ! get_option( 'sbp_news' ) ) {
|
149 |
+
global $sbp_settings_page;
|
150 |
+
$screen = get_current_screen();
|
151 |
+
if ( $screen->id != $sbp_settings_page ) {
|
152 |
+
require_once( SPEED_BOOSTER_PACK_PATH . 'inc/template/notice.php' );
|
153 |
+
}
|
154 |
+
}
|
155 |
+
}
|
156 |
+
|
157 |
+
function sbp_dismiss_notices() {
|
158 |
+
update_option( 'sbp_news', true );
|
159 |
+
|
160 |
+
return json_encode( array( "Status" => 0 ) );
|
161 |
+
}
|
162 |
+
|
163 |
+
/*----------------------------------------------------------------------------------------------------------
|
164 |
+
Activate the plugin
|
165 |
+
-----------------------------------------------------------------------------------------------------------*/
|
166 |
+
|
167 |
+
public static function sbp_activate() {
|
168 |
+
|
169 |
+
$sbp_options = get_option( 'sbp_settings', '' );
|
170 |
+
$timer_stop = timer_stop( 0, 2 );
|
171 |
+
$get_num_queries = get_num_queries();
|
172 |
+
|
173 |
+
$url = get_site_url();
|
174 |
+
$response = wp_remote_get( $url, array() );
|
175 |
+
|
176 |
+
$get_enqueued_scripts_handle = get_option( 'all_theme_scripts_handle' );
|
177 |
+
$get_enqueued_scripts_src = get_option( 'all_theme_scripts_src' );
|
178 |
+
$get_enqueued_styles_handle = get_option( 'all_theme_styles_handle' );
|
179 |
+
|
180 |
+
if ( get_option( 'sbp_page_time' ) == '' ) {
|
181 |
+
update_option( 'sbp_page_time', $timer_stop );
|
182 |
+
}
|
183 |
+
|
184 |
+
if ( get_option( 'sbp_page_queries' ) == '' ) {
|
185 |
+
update_option( 'sbp_page_queries', $get_num_queries );
|
186 |
+
}
|
187 |
+
|
188 |
+
if ( get_option( 'all_theme_scripts_handle' ) == '' ) {
|
189 |
+
update_option( 'all_theme_scripts_handle', $get_enqueued_scripts_handle );
|
190 |
+
}
|
191 |
+
|
192 |
+
if ( get_option( 'all_theme_scripts_src' ) == '' ) {
|
193 |
+
update_option( 'all_theme_scripts_src', $get_enqueued_scripts_src );
|
194 |
+
}
|
195 |
+
|
196 |
+
if ( get_option( 'all_theme_styles_handle' ) == '' ) {
|
197 |
+
update_option( 'all_theme_styles_handle', $get_enqueued_styles_handle );
|
198 |
+
}
|
199 |
+
|
200 |
+
} // END public static function sb_activate
|
201 |
+
|
202 |
+
|
203 |
+
/*----------------------------------------------------------------------------------------------------------
|
204 |
+
Deactivate the plugin
|
205 |
+
-----------------------------------------------------------------------------------------------------------*/
|
206 |
+
|
207 |
+
public static function sbp_deactivate() {
|
208 |
+
}
|
209 |
+
|
210 |
+
|
211 |
+
/*----------------------------------------------------------------------------------------------------------
|
212 |
+
CSS style of the plugin options page
|
213 |
+
-----------------------------------------------------------------------------------------------------------*/
|
214 |
+
|
215 |
+
function sbp_enqueue_styles( $hook ) {
|
216 |
+
|
217 |
+
// load stylesheet only on plugin options page
|
218 |
+
global $sbp_settings_page;
|
219 |
+
if ( $hook != $sbp_settings_page ) {
|
220 |
+
return;
|
221 |
+
}
|
222 |
+
wp_enqueue_style( 'sbp-styles', plugin_dir_url( __FILE__ ) . 'css/style.css' );
|
223 |
+
wp_enqueue_style( 'jquery-ui', plugin_dir_url( __FILE__ ) . 'css/vendors/jquery-ui/jquery-ui.min.css' );
|
224 |
+
|
225 |
+
} // End function sbp_enqueue_styles
|
226 |
+
|
227 |
+
|
228 |
+
/*----------------------------------------------------------------------------------------------------------
|
229 |
+
Enqueue admin scripts to plugin options page
|
230 |
+
-----------------------------------------------------------------------------------------------------------*/
|
231 |
+
|
232 |
+
public function sbp_admin_enqueue_scripts( $hook_sbp ) {
|
233 |
+
// load scripts only on plugin options page
|
234 |
+
global $sbp_settings_page;
|
235 |
+
if ( $hook_sbp != $sbp_settings_page ) {
|
236 |
+
return;
|
237 |
+
}
|
238 |
+
wp_enqueue_script( 'jquery-ui-slider' );
|
239 |
+
wp_enqueue_script( 'postbox' );
|
240 |
+
|
241 |
+
wp_enqueue_script( 'sbp-admin-scripts', plugins_url( 'inc/js/admin-scripts.js', __FILE__ ), array(
|
242 |
+
'jquery',
|
243 |
+
'postbox',
|
244 |
+
'jquery-ui-slider',
|
245 |
+
), SPEED_BOOSTER_PACK_VERSION, true );
|
246 |
+
|
247 |
+
wp_enqueue_script( 'sbp-plugin-install', plugins_url( 'inc/js/plugin-install.js', __FILE__ ), array(
|
248 |
+
'jquery',
|
249 |
+
'updates',
|
250 |
+
), SPEED_BOOSTER_PACK_VERSION, true );
|
251 |
+
|
252 |
+
}
|
253 |
+
|
254 |
+
|
255 |
+
/*----------------------------------------------------------------------------------------------------------
|
256 |
+
Add settings link on plugins page
|
257 |
+
-----------------------------------------------------------------------------------------------------------*/
|
258 |
+
|
259 |
+
function sbp_settings_link( $links ) {
|
260 |
+
|
261 |
+
$settings_link = ' <a href="admin.php?page=sbp-options">Settings</a > ';
|
262 |
+
array_unshift( $links, $settings_link );
|
263 |
+
|
264 |
+
return $links;
|
265 |
+
|
266 |
+
} // End function sbp_settings_link
|
267 |
+
}// End class Speed_Booster_Pack
|
268 |
+
} // End if (!class_exists("Speed_Booster_Pack")) (1)
|
269 |
+
|
270 |
+
if ( class_exists( 'Speed_Booster_Pack' ) ) {
|
271 |
+
|
272 |
+
// Installation and uninstallation hooks
|
273 |
+
register_activation_hook( __FILE__, array( 'Speed_Booster_Pack', 'sbp_activate' ) );
|
274 |
+
register_deactivation_hook( __FILE__, array( 'Speed_Booster_Pack', 'sbp_deactivate' ) );
|
275 |
+
|
276 |
+
// instantiate the plugin class
|
277 |
+
$speed_booster_pack = new Speed_Booster_Pack();
|
278 |
+
|
279 |
+
} // End if (!class_exists("Speed_Booster_Pack")) (2)
|
280 |
+
|
281 |
+
// make sure to update the path to where you cloned the projects to!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
widgets/dashboard-widget.php
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?Php
|
2 |
+
|
3 |
+
// WordPress Events and News
|
4 |
+
wp_add_dashboard_widget( 'sbp_dashboard_primary', __( 'Speed Booster Pack Overview' ), 'sbp_dashboard_events_news' );
|
5 |
+
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Renders the Events and News dashboard widget.
|
9 |
+
*
|
10 |
+
* @since 3.7
|
11 |
+
*/
|
12 |
+
function sbp_dashboard_events_news() {
|
13 |
+
|
14 |
+
?>
|
15 |
+
|
16 |
+
<div class="wordpress-news hide-if-no-js">
|
17 |
+
<?php sbp_dashboard_widget(); ?>
|
18 |
+
</div>
|
19 |
+
|
20 |
+
|
21 |
+
<!--
|
22 |
+
<p class="community-events-footer">
|
23 |
+
see this:
|
24 |
+
- https://github.com/WordPress/WordPress/blob/921e131eae45801b8fdb1ecfceb5d7839fdfd509/wp-admin/includes/dashboard.php#L1124-L1159
|
25 |
+
- https://codex.wordpress.org/Dashboard_Widgets_API#Advanced:_Forcing_your_widget_to_the_top
|
26 |
+
|
27 |
+
</p>
|
28 |
+
-->
|
29 |
+
|
30 |
+
<?php
|
31 |
+
}
|
32 |
+
|
33 |
+
|
34 |
+
/**
|
35 |
+
* 'WordPress Events and News' dashboard widget.
|
36 |
+
*
|
37 |
+
* @since 3.7
|
38 |
+
*/
|
39 |
+
function sbp_dashboard_widget() {
|
40 |
+
$feeds = array(
|
41 |
+
'news' => array(
|
42 |
+
'link' => apply_filters( 'sbp_dashboard_primary_link', __( 'https://www.machothemes.com/' ) ),
|
43 |
+
'url' => apply_filters( 'sbp_dashboard_primary_feed', __( 'https://www.machothemes.com/blog/feed/' ) ),
|
44 |
+
'title' => apply_filters( 'sbp_dashboard_primary_title', __( 'Speed Booster Pack Overview' ) ),
|
45 |
+
'items' => 3,
|
46 |
+
'show_summary' => 1,
|
47 |
+
'show_author' => 0,
|
48 |
+
'show_date' => 0,
|
49 |
+
),
|
50 |
+
);
|
51 |
+
|
52 |
+
sbp_dashboard_primary_output( 'sbp_dashboard_primary', $feeds );
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Display the WordPress events and news feeds.
|
57 |
+
*
|
58 |
+
* @since 3.7
|
59 |
+
*
|
60 |
+
* @param string $widget_id Widget ID.
|
61 |
+
* @param array $feeds Array of RSS feeds.
|
62 |
+
*/
|
63 |
+
function sbp_dashboard_primary_output( $widget_id, $feeds ) {
|
64 |
+
foreach ( $feeds as $type => $args ) {
|
65 |
+
$args['type'] = $type;
|
66 |
+
echo '<div class="rss-widget">';
|
67 |
+
wp_widget_rss_output( $args['url'], $args );
|
68 |
+
echo '</div>';
|
69 |
+
}
|
70 |
+
}
|