Version Description
- Bug Fix: When the handle's key on update was equal with 0 (for remove global unload), the rule would not be remove *
Download this release
Release Info
Developer | gabelivan |
Plugin | ![]() |
Version | 1.2.4.1 |
Comparing to | |
See all releases |
Code changes from version 1.2.2 to 1.2.4.1
- assets/icheck/icheck.min.js +0 -0
- assets/icheck/skins/square/red.css +0 -0
- assets/icheck/skins/square/red.png +0 -0
- assets/icheck/skins/square/red@2x.png +0 -0
- assets/script.js +44 -12
- assets/script.min.js +1 -0
- assets/style.css +55 -148
- assets/style.min.css +1 -0
- assets/style.scss +23 -5
- classes/GlobalRules.php +129 -0
- classes/HomePage.php +22 -45
- classes/Main.php +111 -504
- classes/Menu.php +12 -2
- classes/Misc.php +83 -0
- classes/OwnAssets.php +160 -0
- classes/Update.php +525 -0
- readme.txt +23 -13
- templates/meta-box-loaded.php +201 -26
- templates/settings-frontend.php +2 -2
- templates/settings-globals.php +237 -0
- templates/settings-home-page.php +1 -1
- templates/settings-plugin.php +1 -1
- wpacu-load.php +16 -10
- wpacu.php +2 -2
assets/icheck/icheck.min.js
CHANGED
File without changes
|
assets/icheck/skins/square/red.css
CHANGED
File without changes
|
assets/icheck/skins/square/red.png
CHANGED
File without changes
|
assets/icheck/skins/square/red@2x.png
CHANGED
File without changes
|
assets/script.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/**
|
2 |
-
* WP Asset
|
3 |
*/
|
4 |
jQuery(document).ready(function($) {
|
5 |
//
|
@@ -7,7 +7,7 @@ jQuery(document).ready(function($) {
|
|
7 |
//
|
8 |
var WpAssetCleanUp = {
|
9 |
load: function() {
|
10 |
-
var cbSelector = '.icheckbox_square-red
|
11 |
|
12 |
$(cbSelector).iCheck({
|
13 |
checkboxClass: 'icheckbox_square-red',
|
@@ -22,39 +22,44 @@ jQuery(document).ready(function($) {
|
|
22 |
$(event.target).closest('tr').removeClass('wpacu_not_load');
|
23 |
});
|
24 |
|
25 |
-
var handle;
|
26 |
-
|
27 |
// Unload Everywhere
|
28 |
$('.wpacu_global_unload').click(function() {
|
29 |
handle = $(this).attr('data-handle');
|
30 |
|
31 |
if ($(this).prop('checked')) {
|
32 |
$(this).parent('label').addClass('wpacu_global_checked');
|
33 |
-
|
34 |
|
|
|
35 |
if ($(this).hasClass('wpacu_global_style')) {
|
36 |
$('#style_' + handle).iCheck('check').iCheck('disable');
|
37 |
} else if($(this).hasClass('wpacu_global_script')) {
|
38 |
$('#script_' + handle).iCheck('check').iCheck('disable');
|
39 |
}
|
|
|
40 |
} else {
|
41 |
$(this).parent('label').removeClass('wpacu_global_checked');
|
42 |
-
|
43 |
|
|
|
44 |
if ($(this).hasClass('wpacu_global_style')) {
|
45 |
$('#style_' + handle).iCheck('uncheck').iCheck('enable');
|
46 |
} else if($(this).hasClass('wpacu_global_script')) {
|
47 |
$('#script_' + handle).iCheck('uncheck').iCheck('enable');
|
48 |
}
|
|
|
49 |
|
|
|
50 |
// Un-check make exception as it is not relevant
|
51 |
// if unload everywhere is selected
|
52 |
$('#wpacu_style_load_it_' + handle)
|
53 |
.prop('checked', false)
|
54 |
.parent('label').removeClass('wpacu_global_unload_exception');
|
|
|
55 |
}
|
56 |
});
|
57 |
|
|
|
58 |
// Asset Global Options
|
59 |
$('.wpacu_global_option').click(function() {
|
60 |
var handle = $(this).attr('data-handle'), handleType;
|
@@ -67,10 +72,10 @@ jQuery(document).ready(function($) {
|
|
67 |
|
68 |
if ($(this).val() == 'remove') {
|
69 |
$(this).closest('tr').removeClass('wpacu_not_load');
|
70 |
-
|
71 |
$('#wpacu_load_it_option_'+ handleType +'_'+ handle).hide();
|
|
|
72 |
|
73 |
-
|
74 |
&& !$('#wpacu_'+ handleType +'_load_it_'+ handle).prop('checked')) {
|
75 |
$(this).closest('tr').addClass('wpacu_not_load');
|
76 |
}
|
@@ -79,9 +84,19 @@ jQuery(document).ready(function($) {
|
|
79 |
$('#wpacu_load_it_option_'+ handleType + '_' + handle).show();
|
80 |
}
|
81 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
|
83 |
// Load it checkbox
|
84 |
$('.wpacu_load_it_option').click(function() {
|
|
|
85 |
var handle = $(this).attr('data-handle'), wpacu_input_name;
|
86 |
|
87 |
if ($(this).hasClass('wpacu_style')) {
|
@@ -89,13 +104,14 @@ jQuery(document).ready(function($) {
|
|
89 |
} else if ($(this).hasClass('wpacu_script')) {
|
90 |
wpacu_input_name = 'wpacu_options_scripts['+ handle +']';
|
91 |
}
|
|
|
92 |
|
93 |
if ($(this).prop('checked')) {
|
94 |
$(this).parent('label').addClass('wpacu_global_unload_exception');
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
} else {
|
100 |
$(this).parent('label').removeClass('wpacu_global_unload_exception');
|
101 |
}
|
@@ -103,6 +119,22 @@ jQuery(document).ready(function($) {
|
|
103 |
}
|
104 |
};
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
//
|
107 |
// Asset Front-end Edit (if setting is enabled)
|
108 |
//
|
1 |
/**
|
2 |
+
* WP Asset CleanUp
|
3 |
*/
|
4 |
jQuery(document).ready(function($) {
|
5 |
//
|
7 |
//
|
8 |
var WpAssetCleanUp = {
|
9 |
load: function() {
|
10 |
+
var cbSelector = '.icheckbox_square-red', handle;
|
11 |
|
12 |
$(cbSelector).iCheck({
|
13 |
checkboxClass: 'icheckbox_square-red',
|
22 |
$(event.target).closest('tr').removeClass('wpacu_not_load');
|
23 |
});
|
24 |
|
|
|
|
|
25 |
// Unload Everywhere
|
26 |
$('.wpacu_global_unload').click(function() {
|
27 |
handle = $(this).attr('data-handle');
|
28 |
|
29 |
if ($(this).prop('checked')) {
|
30 |
$(this).parent('label').addClass('wpacu_global_checked');
|
31 |
+
//$(this).closest('tr').addClass('wpacu_not_load');
|
32 |
|
33 |
+
/*
|
34 |
if ($(this).hasClass('wpacu_global_style')) {
|
35 |
$('#style_' + handle).iCheck('check').iCheck('disable');
|
36 |
} else if($(this).hasClass('wpacu_global_script')) {
|
37 |
$('#script_' + handle).iCheck('check').iCheck('disable');
|
38 |
}
|
39 |
+
*/
|
40 |
} else {
|
41 |
$(this).parent('label').removeClass('wpacu_global_checked');
|
42 |
+
//$(this).closest('tr').removeClass('wpacu_not_load');
|
43 |
|
44 |
+
/*
|
45 |
if ($(this).hasClass('wpacu_global_style')) {
|
46 |
$('#style_' + handle).iCheck('uncheck').iCheck('enable');
|
47 |
} else if($(this).hasClass('wpacu_global_script')) {
|
48 |
$('#script_' + handle).iCheck('uncheck').iCheck('enable');
|
49 |
}
|
50 |
+
*/
|
51 |
|
52 |
+
/*
|
53 |
// Un-check make exception as it is not relevant
|
54 |
// if unload everywhere is selected
|
55 |
$('#wpacu_style_load_it_' + handle)
|
56 |
.prop('checked', false)
|
57 |
.parent('label').removeClass('wpacu_global_unload_exception');
|
58 |
+
*/
|
59 |
}
|
60 |
});
|
61 |
|
62 |
+
/*
|
63 |
// Asset Global Options
|
64 |
$('.wpacu_global_option').click(function() {
|
65 |
var handle = $(this).attr('data-handle'), handleType;
|
72 |
|
73 |
if ($(this).val() == 'remove') {
|
74 |
$(this).closest('tr').removeClass('wpacu_not_load');
|
|
|
75 |
$('#wpacu_load_it_option_'+ handleType +'_'+ handle).hide();
|
76 |
+
}
|
77 |
|
78 |
+
if ($(this).val() == 'default'
|
79 |
&& !$('#wpacu_'+ handleType +'_load_it_'+ handle).prop('checked')) {
|
80 |
$(this).closest('tr').addClass('wpacu_not_load');
|
81 |
}
|
84 |
$('#wpacu_load_it_option_'+ handleType + '_' + handle).show();
|
85 |
}
|
86 |
});
|
87 |
+
*/
|
88 |
+
|
89 |
+
$('.wpacu_post_type_unload').click(function() {
|
90 |
+
if ($(this).prop('checked')) {
|
91 |
+
$(this).parent('label').addClass('wpacu_post_type_unload_active');
|
92 |
+
} else {
|
93 |
+
$(this).parent('label').removeClass('wpacu_post_type_unload_active');
|
94 |
+
}
|
95 |
+
});
|
96 |
|
97 |
// Load it checkbox
|
98 |
$('.wpacu_load_it_option').click(function() {
|
99 |
+
/*
|
100 |
var handle = $(this).attr('data-handle'), wpacu_input_name;
|
101 |
|
102 |
if ($(this).hasClass('wpacu_style')) {
|
104 |
} else if ($(this).hasClass('wpacu_script')) {
|
105 |
wpacu_input_name = 'wpacu_options_scripts['+ handle +']';
|
106 |
}
|
107 |
+
*/
|
108 |
|
109 |
if ($(this).prop('checked')) {
|
110 |
$(this).parent('label').addClass('wpacu_global_unload_exception');
|
111 |
+
//$(this).closest('tr').removeClass('wpacu_not_load');
|
112 |
+
///} else if ($('input[name="'+ wpacu_input_name +'"]:checked').val() == 'default') {
|
113 |
+
// $(this).parent('label').removeClass('wpacu_global_unload_exception');
|
114 |
+
//$(this).closest('tr').addClass('wpacu_not_load');
|
115 |
} else {
|
116 |
$(this).parent('label').removeClass('wpacu_global_unload_exception');
|
117 |
}
|
119 |
}
|
120 |
};
|
121 |
|
122 |
+
$('#wpacu_post_type_select').change(function() {
|
123 |
+
$('#wpacu_post_type_form').submit();
|
124 |
+
});
|
125 |
+
|
126 |
+
// Items are marked for removal from the unload list
|
127 |
+
// from either "Everywhere" or "Post Type"
|
128 |
+
$('.wpacu_remove_rule').click(function() {
|
129 |
+
var $wpacuGlobalRuleRow = $(this).parents('.wpacu_global_rule_row');
|
130 |
+
|
131 |
+
if ($(this).prop('checked')) {
|
132 |
+
$wpacuGlobalRuleRow.addClass('selected');
|
133 |
+
} else {
|
134 |
+
$wpacuGlobalRuleRow.removeClass('selected');
|
135 |
+
}
|
136 |
+
});
|
137 |
+
|
138 |
//
|
139 |
// Asset Front-end Edit (if setting is enabled)
|
140 |
//
|
assets/script.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(document).ready(function(a){var b={load:function(){var b,c=".icheckbox_square-red";a(c).iCheck({checkboxClass:"icheckbox_square-red",increaseArea:"20%"}),a(c).on("ifChecked",function(b){a(b.target).closest("tr").addClass("wpacu_not_load")}),a(c).on("ifUnchecked",function(b){a(b.target).closest("tr").removeClass("wpacu_not_load")}),a(".wpacu_global_unload").click(function(){b=a(this).attr("data-handle"),a(this).prop("checked")?a(this).parent("label").addClass("wpacu_global_checked"):a(this).parent("label").removeClass("wpacu_global_checked")}),a(".wpacu_post_type_unload").click(function(){a(this).prop("checked")?a(this).parent("label").addClass("wpacu_post_type_unload_active"):a(this).parent("label").removeClass("wpacu_post_type_unload_active")}),a(".wpacu_load_it_option").click(function(){a(this).prop("checked")?a(this).parent("label").addClass("wpacu_global_unload_exception"):a(this).parent("label").removeClass("wpacu_global_unload_exception")})}};if(a("#wpacu_post_type_select").change(function(){a("#wpacu_post_type_form").submit()}),a(".wpacu_remove_rule").click(function(){var b=a(this).parents(".wpacu_global_rule_row");a(this).prop("checked")?b.addClass("selected"):b.removeClass("selected")}),a("#wpacu_wrap_assets").length>0&&b.load(),"undefined"==typeof wpacu_object||a("#wpacu_meta_box_content").length<1)return!1;var c=wpacu_object.plugin_name+"_load=1";jQuery.post(wpacu_object.post_url,c,function(c){var d={action:wpacu_object.plugin_name+"_get_loaded_assets",contents:c,post_id:wpacu_object.post_id,post_url:wpacu_object.post_url};jQuery.post(wpacu_object.ajax_url,d,function(c){return""!=c&&(a("#wpacu_meta_box_content").html(c),a("#wpacu_home_page_form").length>0&&a("#submit").show(),void b.load())})})});
|
assets/style.css
CHANGED
@@ -1,156 +1,63 @@
|
|
1 |
-
tr.wpacu_not_load th, tr.wpacu_not_load td {
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
#wpacu_meta_box_content {
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
#
|
17 |
-
|
18 |
-
background-color: #f5f5f5; }
|
19 |
-
|
20 |
-
#wpacu_meta_box_content div.wpacu_warning, #wpacu_wrap_assets div.wpacu_warning {
|
21 |
-
border: 1px solid #cc0000; }
|
22 |
-
|
23 |
-
#wpacu_meta_box_content div.wpacu_verified {
|
24 |
-
padding: 10px;
|
25 |
-
background-color: #f5f5f5;
|
26 |
-
border-left: 1px solid #ddd; }
|
27 |
-
#wpacu_meta_box_content div.wpacu_verified span {
|
28 |
-
color: #0073aa;
|
29 |
-
font-weight: bold; }
|
30 |
-
#wpacu_meta_box_content ul.wpacu_asset_options {
|
31 |
-
margin: 0;
|
32 |
-
padding: 0; }
|
33 |
-
#wpacu_meta_box_content ul.wpacu_asset_options li {
|
34 |
-
list-style: none;
|
35 |
-
display: inline-block; }
|
36 |
-
#wpacu_meta_box_content ul.wpacu_asset_options label {
|
37 |
-
margin-right: 20px;
|
38 |
-
font-weight: normal; }
|
39 |
|
40 |
/*
|
41 |
* Asset List Styling: Front-end and Back-end
|
42 |
*/
|
43 |
-
#wpacu_wrap_assets {
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
#wpacu_wrap_assets p {
|
57 |
-
margin: 10px 0;
|
58 |
-
line-height: 22px;
|
59 |
-
text-align: left; }
|
60 |
-
#wpacu_wrap_assets h1 {
|
61 |
-
margin: 0 0 20px;
|
62 |
-
font-size: 160%;
|
63 |
-
text-align: left; }
|
64 |
-
#wpacu_wrap_assets h3 {
|
65 |
-
margin: 20px 0;
|
66 |
-
font-size: 130%; }
|
67 |
-
|
68 |
-
.wpacu_verified {
|
69 |
-
margin: 0 0 10px 0; }
|
70 |
-
|
71 |
-
.wpacu_asset_row td {
|
72 |
-
padding: 10px; }
|
73 |
-
.wpacu_asset_row td p {
|
74 |
-
margin-bottom: 10px;
|
75 |
-
word-wrap: break-word; }
|
76 |
-
.wpacu_asset_row td label {
|
77 |
-
cursor: pointer !important;
|
78 |
-
display: inline-block !important;
|
79 |
-
font-size: 100%;
|
80 |
-
font-weight: normal; }
|
81 |
-
.wpacu_asset_row td label span {
|
82 |
-
font-size: 100% !important; }
|
83 |
-
.wpacu_asset_row td.wpacu_check {
|
84 |
-
width: 50px; }
|
85 |
|
86 |
/* Dashboard adjust */
|
87 |
-
body.wp-admin .wpacu_asset_row td.wpacu_check {
|
88 |
-
|
89 |
-
|
90 |
-
label.
|
91 |
-
|
92 |
-
label.
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
ul.wpacu_asset_options {
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
list-style: none;
|
103 |
-
display: inline-block; }
|
104 |
-
ul.wpacu_asset_options label {
|
105 |
-
margin-right: 20px;
|
106 |
-
font-weight: normal; }
|
107 |
-
ul.wpacu_asset_options label input {
|
108 |
-
margin-right: 4px; }
|
109 |
|
110 |
/* Assets Table */
|
111 |
-
.wp-asset-clean-up.widefat {
|
112 |
-
|
113 |
-
|
114 |
-
.wpacu_widefat {
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
.
|
120 |
-
|
121 |
-
|
122 |
-
.wpacu_update_btn {
|
123 |
-
-moz-box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
124 |
-
-webkit-box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
125 |
-
box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
126 |
-
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7)) !important;
|
127 |
-
background: -moz-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
128 |
-
background: -webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
129 |
-
background: -o-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
130 |
-
background: -ms-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
131 |
-
background: linear-gradient(to bottom, #007dc1 5%, #0061a7 100%) !important;
|
132 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7',GradientType=0) !important;
|
133 |
-
background-color: #007dc1 !important;
|
134 |
-
-moz-border-radius: 3px !important;
|
135 |
-
-webkit-border-radius: 3px !important;
|
136 |
-
border-radius: 3px !important;
|
137 |
-
border: 1px solid #124d77 !important;
|
138 |
-
display: inline-block !important;
|
139 |
-
cursor: pointer !important;
|
140 |
-
color: #ffffff !important;
|
141 |
-
font-size: 15px !important;
|
142 |
-
padding: 10px 24px !important;
|
143 |
-
text-decoration: none !important;
|
144 |
-
text-shadow: 0 1px 0 #154682 !important; }
|
145 |
-
.wpacu_update_btn:hover {
|
146 |
-
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #0061a7), color-stop(1, #007dc1)) !important;
|
147 |
-
background: -moz-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
148 |
-
background: -webkit-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
149 |
-
background: -o-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
150 |
-
background: -ms-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
151 |
-
background: linear-gradient(to bottom, #0061a7 5%, #007dc1 100%) !important;
|
152 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0061a7', endColorstr='#007dc1',GradientType=0) !important;
|
153 |
-
background-color: #0061a7 !important; }
|
154 |
-
.wpacu_update_btn:active {
|
155 |
-
position: relative !important;
|
156 |
-
top: 1px !important; }
|
1 |
+
tr.wpacu_not_load th, tr.wpacu_not_load td { background: #FFE1E1; }
|
2 |
+
|
3 |
+
.widefat .check-column.wpacu_check { padding: 10px; }
|
4 |
+
|
5 |
+
#wpacu_meta_box_content { width: 99%; }
|
6 |
+
#wpacu_meta_box_content h3 { margin-left: 0; padding-left: 0; }
|
7 |
+
#wpacu_meta_box_content div.wpacu_note { padding: 10px; background-color: #f5f5f5; }
|
8 |
+
|
9 |
+
#wpacu_wrap_assets div.wpacu_note { padding: 10px; background-color: #f5f5f5; }
|
10 |
+
|
11 |
+
#wpacu_meta_box_content div.wpacu_warning, #wpacu_wrap_assets div.wpacu_warning { border: 1px solid #cc0000; }
|
12 |
+
|
13 |
+
#wpacu_meta_box_content div.wpacu_verified { padding: 10px; background-color: #f5f5f5; border-left: 1px solid #ddd; }
|
14 |
+
#wpacu_meta_box_content div.wpacu_verified span { color: #0073aa; font-weight: bold; }
|
15 |
+
#wpacu_meta_box_content ul.wpacu_asset_options { margin: 0; padding: 0; }
|
16 |
+
#wpacu_meta_box_content ul.wpacu_asset_options li { list-style: none; display: inline-block; }
|
17 |
+
#wpacu_meta_box_content ul.wpacu_asset_options label { margin-right: 20px; font-weight: normal; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
/*
|
20 |
* Asset List Styling: Front-end and Back-end
|
21 |
*/
|
22 |
+
#wpacu_wrap_assets { color: #000000 !important; text-align: left; clear: both; width: 90%; padding: 20px; margin: 30px 0 0 15px; border: 1px solid #cdcdcd; z-index: 10000 !important; position: relative; background-color: white; }
|
23 |
+
#wpacu_wrap_assets img { display: inline-block !important; }
|
24 |
+
#wpacu_wrap_assets p { margin: 10px 0; line-height: 22px; text-align: left; }
|
25 |
+
#wpacu_wrap_assets h1 { margin: 0 0 20px; font-size: 160%; text-align: left; }
|
26 |
+
#wpacu_wrap_assets h3 { margin: 20px 0; font-size: 130%; }
|
27 |
+
|
28 |
+
.wpacu_verified { margin: 0 0 10px 0; }
|
29 |
+
|
30 |
+
.wpacu_asset_row td { padding: 10px; }
|
31 |
+
.wpacu_asset_row td p { margin-bottom: 10px; word-wrap: break-word; }
|
32 |
+
.wpacu_asset_row td label { cursor: pointer !important; display: inline-block !important; font-size: 100%; font-weight: normal; }
|
33 |
+
.wpacu_asset_row td label span { font-size: 100% !important; }
|
34 |
+
.wpacu_asset_row td.wpacu_check { width: 50px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
/* Dashboard adjust */
|
37 |
+
body.wp-admin .wpacu_asset_row td.wpacu_check { width: 25px; }
|
38 |
+
|
39 |
+
label.wpacu_add_global { cursor: pointer; }
|
40 |
+
label.wpacu_global_checked { font-weight: bold; color: #d54e21; }
|
41 |
+
label.wpacu_global_unload_exception { font-weight: bold !important; }
|
42 |
+
label.wpacu_post_type_unload_active { color: #d54e21; }
|
43 |
+
|
44 |
+
tr.wpacu_global_rule_row.selected { background: #e7e7e7; }
|
45 |
+
|
46 |
+
.nav-tab-wrapper { border-bottom: 1px solid #ccc; width: 95%; }
|
47 |
+
|
48 |
+
ul.wpacu_asset_options { margin: 0; padding: 0; }
|
49 |
+
ul.wpacu_asset_options li { list-style: none; display: inline-block; }
|
50 |
+
ul.wpacu_asset_options label { margin-right: 20px; font-weight: normal; }
|
51 |
+
ul.wpacu_asset_options label input { margin-right: 4px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
|
53 |
/* Assets Table */
|
54 |
+
.wp-asset-clean-up.widefat { width: 99%; }
|
55 |
+
|
56 |
+
.wpacu_widefat { border: 1px solid #e5e5e5 !important; }
|
57 |
+
.wpacu_widefat td { border: 1px solid #e5e5e5 !important; }
|
58 |
+
|
59 |
+
.wpacu_striped > tbody > :nth-child(odd), ul.wpacu_striped > :nth-child(odd) { background-color: #f9f9f9 !important; }
|
60 |
+
|
61 |
+
.wpacu_update_btn { -moz-box-shadow: inset 0 1px 0 0 #54a3f7 !important; -webkit-box-shadow: inset 0 1px 0 0 #54a3f7 !important; box-shadow: inset 0 1px 0 0 #54a3f7 !important; background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7)) !important; background: -moz-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important; background: -webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important; background: -o-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important; background: -ms-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important; background: linear-gradient(to bottom, #007dc1 5%, #0061a7 100%) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7',GradientType=0) !important; background-color: #007dc1 !important; -moz-border-radius: 3px !important; -webkit-border-radius: 3px !important; border-radius: 3px !important; border: 1px solid #124d77 !important; display: inline-block !important; cursor: pointer !important; color: #ffffff !important; font-size: 15px !important; padding: 10px 24px !important; text-decoration: none !important; text-shadow: 0 1px 0 #154682 !important; }
|
62 |
+
.wpacu_update_btn:hover { background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #0061a7), color-stop(1, #007dc1)) !important; background: -moz-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important; background: -webkit-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important; background: -o-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important; background: -ms-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important; background: linear-gradient(to bottom, #0061a7 5%, #007dc1 100%) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0061a7', endColorstr='#007dc1',GradientType=0) !important; background-color: #0061a7 !important; }
|
63 |
+
.wpacu_update_btn:active { position: relative !important; top: 1px !important; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/style.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
tr.wpacu_not_load td,tr.wpacu_not_load th{background:#FFE1E1}.widefat .check-column.wpacu_check{padding:10px}#wpacu_meta_box_content{width:99%}#wpacu_meta_box_content h3{margin-left:0;padding-left:0}#wpacu_meta_box_content div.wpacu_note,#wpacu_wrap_assets div.wpacu_note{padding:10px;background-color:#f5f5f5}#wpacu_meta_box_content div.wpacu_warning,#wpacu_wrap_assets div.wpacu_warning{border:1px solid #c00}#wpacu_meta_box_content div.wpacu_verified{padding:10px;background-color:#f5f5f5;border-left:1px solid #ddd}#wpacu_meta_box_content div.wpacu_verified span{color:#0073aa;font-weight:700}#wpacu_meta_box_content ul.wpacu_asset_options{margin:0;padding:0}#wpacu_meta_box_content ul.wpacu_asset_options li{list-style:none;display:inline-block}#wpacu_wrap_assets img,.wpacu_asset_row td label{display:inline-block!important}#wpacu_meta_box_content ul.wpacu_asset_options label{margin-right:20px;font-weight:400}#wpacu_wrap_assets{color:#000!important;text-align:left;clear:both;width:90%;padding:20px;margin:30px 0 0 15px;border:1px solid #cdcdcd;z-index:10000!important;position:relative;background-color:#fff}#wpacu_wrap_assets p{margin:10px 0;line-height:22px;text-align:left}#wpacu_wrap_assets h1{margin:0 0 20px;font-size:160%;text-align:left}#wpacu_wrap_assets h3{margin:20px 0;font-size:130%}.wpacu_verified{margin:0 0 10px}.wpacu_asset_row td{padding:10px}.wpacu_asset_row td p{margin-bottom:10px;word-wrap:break-word}.wpacu_asset_row td label{cursor:pointer!important;font-size:100%;font-weight:400}.wpacu_asset_row td label span{font-size:100%!important}.wpacu_asset_row td.wpacu_check{width:50px}body.wp-admin .wpacu_asset_row td.wpacu_check{width:25px}label.wpacu_add_global{cursor:pointer}label.wpacu_global_checked{font-weight:700;color:#d54e21}label.wpacu_global_unload_exception{font-weight:700!important}label.wpacu_post_type_unload_active{color:#d54e21}tr.wpacu_global_rule_row.selected{background:#e7e7e7}.nav-tab-wrapper{border-bottom:1px solid #ccc;width:95%}ul.wpacu_asset_options{margin:0;padding:0}ul.wpacu_asset_options li{list-style:none;display:inline-block}ul.wpacu_asset_options label{margin-right:20px;font-weight:400}ul.wpacu_asset_options label input{margin-right:4px}.wp-asset-clean-up.widefat{width:99%}.wpacu_widefat,.wpacu_widefat td{border:1px solid #e5e5e5!important}.wpacu_striped>tbody>:nth-child(odd),ul.wpacu_striped>:nth-child(odd){background-color:#f9f9f9!important}.wpacu_update_btn{-moz-box-shadow:inset 0 1px 0 0 #54a3f7!important;-webkit-box-shadow:inset 0 1px 0 0 #54a3f7!important;box-shadow:inset 0 1px 0 0 #54a3f7!important;background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#007dc1),color-stop(1,#0061a7))!important;background:-moz-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-webkit-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-o-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-ms-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:linear-gradient(to bottom,#007dc1 5%,#0061a7 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7', GradientType=0)!important;background-color:#007dc1!important;-moz-border-radius:3px!important;-webkit-border-radius:3px!important;border-radius:3px!important;border:1px solid #124d77!important;display:inline-block!important;cursor:pointer!important;color:#fff!important;font-size:15px!important;padding:10px 24px!important;text-decoration:none!important;text-shadow:0 1px 0 #154682!important}.wpacu_update_btn:hover{background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#0061a7),color-stop(1,#007dc1))!important;background:-moz-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-webkit-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-o-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-ms-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:linear-gradient(to bottom,#0061a7 5%,#007dc1 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0061a7', endColorstr='#007dc1', GradientType=0)!important;background-color:#0061a7!important}.wpacu_update_btn:active{position:relative!important;top:1px!important}
|
assets/style.scss
CHANGED
@@ -127,10 +127,25 @@ label {
|
|
127 |
color: #d54e21;
|
128 |
}
|
129 |
&.wpacu_global_unload_exception {
|
130 |
-
font-weight: bold;
|
|
|
|
|
|
|
|
|
131 |
}
|
132 |
}
|
133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
ul.wpacu_asset_options {
|
135 |
margin: 0;
|
136 |
padding: 0;
|
@@ -148,6 +163,9 @@ ul.wpacu_asset_options {
|
|
148 |
}
|
149 |
|
150 |
/* Assets Table */
|
|
|
|
|
|
|
151 |
|
152 |
.wpacu_widefat {
|
153 |
border: 1px solid #e5e5e5 !important;
|
@@ -161,9 +179,9 @@ ul.wpacu_asset_options {
|
|
161 |
}
|
162 |
|
163 |
.wpacu_update_btn {
|
164 |
-
-moz-box-shadow: inset
|
165 |
-
-webkit-box-shadow: inset
|
166 |
-
box-shadow: inset
|
167 |
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7)) !important;
|
168 |
background: -moz-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
169 |
background: -webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
@@ -182,7 +200,7 @@ ul.wpacu_asset_options {
|
|
182 |
font-size: 15px !important;
|
183 |
padding: 10px 24px !important;
|
184 |
text-decoration: none !important;
|
185 |
-
text-shadow:
|
186 |
&:hover {
|
187 |
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #0061a7), color-stop(1, #007dc1)) !important;
|
188 |
background: -moz-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
127 |
color: #d54e21;
|
128 |
}
|
129 |
&.wpacu_global_unload_exception {
|
130 |
+
font-weight: bold !important;
|
131 |
+
}
|
132 |
+
|
133 |
+
&.wpacu_post_type_unload_active {
|
134 |
+
color: #d54e21;
|
135 |
}
|
136 |
}
|
137 |
|
138 |
+
tr.wpacu_global_rule_row {
|
139 |
+
&.selected {
|
140 |
+
background: #e7e7e7;
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
.nav-tab-wrapper {
|
145 |
+
border-bottom: 1px solid #ccc;
|
146 |
+
width: 95%;
|
147 |
+
}
|
148 |
+
|
149 |
ul.wpacu_asset_options {
|
150 |
margin: 0;
|
151 |
padding: 0;
|
163 |
}
|
164 |
|
165 |
/* Assets Table */
|
166 |
+
.wp-asset-clean-up.widefat {
|
167 |
+
width: 99%;
|
168 |
+
}
|
169 |
|
170 |
.wpacu_widefat {
|
171 |
border: 1px solid #e5e5e5 !important;
|
179 |
}
|
180 |
|
181 |
.wpacu_update_btn {
|
182 |
+
-moz-box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
183 |
+
-webkit-box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
184 |
+
box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
185 |
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7)) !important;
|
186 |
background: -moz-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
187 |
background: -webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
200 |
font-size: 15px !important;
|
201 |
padding: 10px 24px !important;
|
202 |
text-decoration: none !important;
|
203 |
+
text-shadow: 0 1px 0 #154682 !important;
|
204 |
&:hover {
|
205 |
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #0061a7), color-stop(1, #007dc1)) !important;
|
206 |
background: -moz-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
classes/GlobalRules.php
ADDED
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace WpAssetCleanUp;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class GlobalRules
|
6 |
+
* @package WpAssetCleanUp
|
7 |
+
*/
|
8 |
+
class GlobalRules
|
9 |
+
{
|
10 |
+
/**
|
11 |
+
* @var string
|
12 |
+
*/
|
13 |
+
public $wpacuFor = 'everywhere';
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @var string
|
17 |
+
*/
|
18 |
+
public $wpacuPostType = 'post';
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @var array
|
22 |
+
*/
|
23 |
+
public $data = array();
|
24 |
+
|
25 |
+
/**
|
26 |
+
* GlobalRules constructor.
|
27 |
+
*/
|
28 |
+
public function __construct()
|
29 |
+
{
|
30 |
+
$this->wpacuFor = isset($_REQUEST['wpacu_for'])
|
31 |
+
? $_REQUEST['wpacu_for']
|
32 |
+
: $this->wpacuFor;
|
33 |
+
|
34 |
+
$this->wpacuPostType = isset($_REQUEST['wpacu_post_type'])
|
35 |
+
? $_REQUEST['wpacu_post_type']
|
36 |
+
: $this->wpacuPostType;
|
37 |
+
|
38 |
+
if (isset($_REQUEST['wpacu_update']) && $_REQUEST['wpacu_update'] == 1) {
|
39 |
+
$this->update();
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* @return array
|
45 |
+
*/
|
46 |
+
public function getCount()
|
47 |
+
{
|
48 |
+
$values = array();
|
49 |
+
|
50 |
+
if ($this->wpacuFor === 'everywhere') {
|
51 |
+
$values = Main::instance()->getGlobalUnload();
|
52 |
+
} elseif ($this->wpacuFor === 'post_types') {
|
53 |
+
$values = Main::instance()->getPostTypeUnload($this->wpacuPostType);
|
54 |
+
}
|
55 |
+
|
56 |
+
return $values;
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
*
|
61 |
+
*/
|
62 |
+
public function page()
|
63 |
+
{
|
64 |
+
$this->data['for'] = $this->wpacuFor;
|
65 |
+
|
66 |
+
if ($this->wpacuFor === 'post_types') {
|
67 |
+
$this->data['post_type'] = $this->wpacuPostType;
|
68 |
+
|
69 |
+
// Get All Post Types
|
70 |
+
$postTypes = get_post_types(array('public' => true));
|
71 |
+
$this->data['post_types_list'] = $postTypes;
|
72 |
+
}
|
73 |
+
|
74 |
+
$this->data['values'] = $this->getCount();
|
75 |
+
|
76 |
+
$this->data['nonce_name'] = Update::NONCE_FIELD_NAME;
|
77 |
+
$this->data['nonce_action'] = Update::NONCE_ACTION_NAME;
|
78 |
+
|
79 |
+
Main::instance()->parseTemplate('settings-globals', $this->data, true);
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
*
|
84 |
+
*/
|
85 |
+
public function update()
|
86 |
+
{
|
87 |
+
if ($this->wpacuFor === 'everywhere') {
|
88 |
+
$removed = (new Update)->removeEverywhereUnloads();
|
89 |
+
|
90 |
+
if ($removed) {
|
91 |
+
add_action('admin_notices', array($this, 'noticeGlobalsRemoved'));
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
if ($this->wpacuFor === 'post_types') {
|
96 |
+
$removed = (new Update)->removeBulkUnloads($this->wpacuPostType);
|
97 |
+
|
98 |
+
if ($removed) {
|
99 |
+
add_action('admin_notices', array($this, 'noticePostTypesRemoved'));
|
100 |
+
}
|
101 |
+
}
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
*
|
106 |
+
*/
|
107 |
+
public function noticeGlobalsRemoved()
|
108 |
+
{
|
109 |
+
?>
|
110 |
+
<div class="updated notice is-dismissible">
|
111 |
+
<p>The selected styles/scripts were removed from the global unload list and they will now load in the pages/posts,
|
112 |
+
unless you have other rules that would prevent them from loading.</p>
|
113 |
+
</div>
|
114 |
+
<?php
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
*
|
119 |
+
*/
|
120 |
+
public function noticePostTypesRemoved()
|
121 |
+
{
|
122 |
+
?>
|
123 |
+
<div class="updated notice is-dismissible">
|
124 |
+
<p>The selected styles/scripts were removed from the unload list for <strong><u><?php echo $this->wpacuPostType; ?></u></strong>
|
125 |
+
post type and they will now load in the pages/posts, unless you have other rules that would prevent them from loading.</p>
|
126 |
+
</div>
|
127 |
+
<?php
|
128 |
+
}
|
129 |
+
}
|
classes/HomePage.php
CHANGED
@@ -20,59 +20,36 @@ class HomePage
|
|
20 |
$this->data['nonce_name'] = WPACU_PLUGIN_NAME.'_settings';
|
21 |
$this->data['show_on_front'] = get_option('show_on_front');
|
22 |
|
23 |
-
|
24 |
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
if ($this->data['page_on_front']) {
|
30 |
-
$this->data['page_on_front_title'] = get_the_title($this->data['page_on_front']);
|
31 |
-
}
|
32 |
|
33 |
-
|
|
|
|
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
} elseif ($this->data['show_on_front'] === 'posts') {
|
39 |
-
// Your latest posts
|
40 |
-
$postUrl = get_option('siteurl');
|
41 |
|
42 |
-
|
43 |
-
$postUrl .= '/';
|
44 |
-
}
|
45 |
|
46 |
-
|
47 |
-
|
48 |
-
add_action('admin_enqueue_scripts', array(Main::instance(), 'stylesAndScriptsForAdmin'));
|
49 |
}
|
50 |
-
}
|
51 |
-
|
52 |
-
|
53 |
-
/**
|
54 |
-
* @param $wpacuNoLoadAssets
|
55 |
-
*/
|
56 |
-
public static function updateFrontPage($wpacuNoLoadAssets)
|
57 |
-
{
|
58 |
-
if (! is_array($wpacuNoLoadAssets)) {
|
59 |
-
return; // only arrays (empty or not) should be used
|
60 |
-
}
|
61 |
|
62 |
-
|
|
|
|
|
63 |
|
64 |
-
|
65 |
-
add_option(WPACU_PLUGIN_NAME . '_front_page_no_load', $jsonNoAssetsLoadList);
|
66 |
}
|
67 |
-
|
68 |
-
// If globally disabled, make exception to load for submitted assets
|
69 |
-
Main::instance()->saveLoadExceptions('front_page');
|
70 |
-
|
71 |
-
// Any global unloads?
|
72 |
-
Main::instance()->saveToGlobalUnload();
|
73 |
-
|
74 |
-
// Any global unloads removed?
|
75 |
-
Main::instance()->removeGlobalUnloads();
|
76 |
}
|
77 |
|
78 |
/**
|
@@ -87,7 +64,7 @@ class HomePage
|
|
87 |
? $_POST[$this->data['nonce_name']] : '';
|
88 |
|
89 |
if (is_array($wpacuNoLoadAssets) && wp_verify_nonce($noncePost, $this->data['nonce_name'])) {
|
90 |
-
|
91 |
}
|
92 |
|
93 |
$this->data['nonce_value'] = wp_create_nonce($this->data['nonce_name']);
|
20 |
$this->data['nonce_name'] = WPACU_PLUGIN_NAME.'_settings';
|
21 |
$this->data['show_on_front'] = get_option('show_on_front');
|
22 |
|
23 |
+
$isHomePageEdit = (isset($_GET['page']) && $_GET['page'] == WPACU_PLUGIN_NAME.'_home_page');
|
24 |
|
25 |
+
// Only continue if we are on the plugin's homepage edit mode
|
26 |
+
if (! $isHomePageEdit) {
|
27 |
+
return '';
|
28 |
+
}
|
|
|
|
|
|
|
29 |
|
30 |
+
if ($this->data['show_on_front'] === 'page') {
|
31 |
+
// Front page displays: A Static Page
|
32 |
+
$this->data['page_on_front'] = get_option('page_on_front');
|
33 |
|
34 |
+
if ($this->data['page_on_front']) {
|
35 |
+
$this->data['page_on_front_title'] = get_the_title($this->data['page_on_front']);
|
36 |
+
}
|
|
|
|
|
|
|
37 |
|
38 |
+
$this->data['page_for_posts'] = get_option('page_for_posts');
|
|
|
|
|
39 |
|
40 |
+
if ($this->data['page_for_posts']) {
|
41 |
+
$this->data['page_for_posts_title'] = get_the_title($this->data['page_for_posts']);
|
|
|
42 |
}
|
43 |
+
} elseif ($this->data['show_on_front'] === 'posts') {
|
44 |
+
// Your latest posts
|
45 |
+
$postUrl = get_option('siteurl');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
+
if (substr($postUrl, -1) != '/') {
|
48 |
+
$postUrl .= '/';
|
49 |
+
}
|
50 |
|
51 |
+
$this->data['site_url'] = $postUrl;
|
|
|
52 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
}
|
54 |
|
55 |
/**
|
64 |
? $_POST[$this->data['nonce_name']] : '';
|
65 |
|
66 |
if (is_array($wpacuNoLoadAssets) && wp_verify_nonce($noncePost, $this->data['nonce_name'])) {
|
67 |
+
(new Update)->updateFrontPage($wpacuNoLoadAssets);
|
68 |
}
|
69 |
|
70 |
$this->data['nonce_value'] = wp_create_nonce($this->data['nonce_name']);
|
classes/Main.php
CHANGED
@@ -11,30 +11,17 @@ class Main
|
|
11 |
*
|
12 |
*/
|
13 |
const STARTDEL = '@ BEGIN WPACU PLUGIN JSON @';
|
14 |
-
/**
|
15 |
-
*
|
16 |
-
*/
|
17 |
-
const ENDDEL = '@ END WPACU PLUGIN JSON @';
|
18 |
|
19 |
/**
|
20 |
*
|
21 |
*/
|
22 |
-
const
|
23 |
-
/**
|
24 |
-
*
|
25 |
-
*/
|
26 |
-
const FRONT_NONCE_FIELD_NAME = 'wpacu_front_nonce';
|
27 |
|
28 |
/**
|
29 |
* @var array
|
30 |
*/
|
31 |
public $assetsRemoved = array();
|
32 |
|
33 |
-
/**
|
34 |
-
* @var bool
|
35 |
-
*/
|
36 |
-
public $loadPluginAssets = false; // default
|
37 |
-
|
38 |
/**
|
39 |
* @var array
|
40 |
*/
|
@@ -64,11 +51,17 @@ class Main
|
|
64 |
* @var array
|
65 |
*/
|
66 |
public $wpScripts = array();
|
|
|
67 |
/**
|
68 |
* @var array
|
69 |
*/
|
70 |
public $wpStyles = array();
|
71 |
|
|
|
|
|
|
|
|
|
|
|
72 |
/**
|
73 |
* @var Main|null
|
74 |
*/
|
@@ -94,19 +87,8 @@ class Main
|
|
94 |
$this->frontendShow = (get_option(WPACU_PLUGIN_NAME.'_frontend_show'));
|
95 |
|
96 |
// Early Triggers
|
97 |
-
// run right after the other 'wp_loaded' action
|
98 |
add_action('wp', array($this, 'setVars'), 2);
|
99 |
|
100 |
-
add_action('admin_enqueue_scripts', array($this, 'stylesAndScriptsForAdmin'));
|
101 |
-
add_action('wp_enqueue_scripts', array($this, 'stylesAndScriptsForPublic'));
|
102 |
-
|
103 |
-
if ($this->frontendShow) {
|
104 |
-
add_action('wp', array($this, 'frontendUpdate'), 1);
|
105 |
-
}
|
106 |
-
|
107 |
-
// After post/page is saved - update your styles/scripts lists
|
108 |
-
add_action('save_post', array($this, 'savePost'));
|
109 |
-
|
110 |
// Fetch the page in the background to see what scripts/styles are already loading
|
111 |
if (isset($_POST[WPACU_PLUGIN_NAME.'_load']) || $this->frontendShow) {
|
112 |
if (isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
@@ -157,6 +139,10 @@ class Main
|
|
157 |
|
158 |
$type = (is_front_page()) ? 'front_page' : 'post';
|
159 |
|
|
|
|
|
|
|
|
|
160 |
$this->loadExceptions = $this->getLoadExceptions($type, $postId);
|
161 |
}
|
162 |
}
|
@@ -171,7 +157,7 @@ class Main
|
|
171 |
if ($obj->public > 0) {
|
172 |
add_meta_box(
|
173 |
WPACU_PLUGIN_NAME.'_asset_list',
|
174 |
-
__('WP Asset
|
175 |
array($this, 'renderMetaBoxContent'),
|
176 |
$postType,
|
177 |
'advanced',
|
@@ -208,7 +194,7 @@ class Main
|
|
208 |
|
209 |
$data['get_assets'] = $getAssets;
|
210 |
|
211 |
-
$data['fetch_url'] =
|
212 |
|
213 |
$this->parseTemplate('meta-box', $data, true);
|
214 |
}
|
@@ -259,6 +245,20 @@ class Main
|
|
259 |
}
|
260 |
}
|
261 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
$list = array_unique($list);
|
263 |
}
|
264 |
|
@@ -345,6 +345,20 @@ class Main
|
|
345 |
}
|
346 |
}
|
347 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
$list = array_unique($list);
|
349 |
}
|
350 |
|
@@ -385,99 +399,6 @@ class Main
|
|
385 |
}
|
386 |
}
|
387 |
|
388 |
-
/**
|
389 |
-
* Save post metadata when a post is saved.
|
390 |
-
*
|
391 |
-
* @param $postId
|
392 |
-
*/
|
393 |
-
public function savePost($postId, $post = array())
|
394 |
-
{
|
395 |
-
if (empty($post)) {
|
396 |
-
global $post;
|
397 |
-
}
|
398 |
-
|
399 |
-
if (! isset($post->ID)) {
|
400 |
-
return;
|
401 |
-
}
|
402 |
-
|
403 |
-
// Has to be a public post type
|
404 |
-
$obj = get_post_type_object($post->post_type);
|
405 |
-
|
406 |
-
if ($obj->public < 1) {
|
407 |
-
return;
|
408 |
-
}
|
409 |
-
|
410 |
-
// only for admins
|
411 |
-
if (! current_user_can('manage_options')) {
|
412 |
-
return;
|
413 |
-
}
|
414 |
-
|
415 |
-
$wpacuNoLoadAssets = isset($_POST[WPACU_PLUGIN_NAME])
|
416 |
-
? $_POST[WPACU_PLUGIN_NAME] : array();
|
417 |
-
|
418 |
-
if (is_array($wpacuNoLoadAssets)) {
|
419 |
-
$jsonNoAssetsLoadList = json_encode($wpacuNoLoadAssets);
|
420 |
-
|
421 |
-
if (! add_post_meta($postId, '_'.WPACU_PLUGIN_NAME.'_no_load', $jsonNoAssetsLoadList, true)) {
|
422 |
-
update_post_meta($postId, '_'.WPACU_PLUGIN_NAME.'_no_load', $jsonNoAssetsLoadList);
|
423 |
-
}
|
424 |
-
}
|
425 |
-
|
426 |
-
// If globally disabled, make exception to load for submitted assets
|
427 |
-
Main::instance()->saveLoadExceptions('post', $postId);
|
428 |
-
|
429 |
-
// Any global unloads?
|
430 |
-
Main::instance()->saveToGlobalUnload();
|
431 |
-
|
432 |
-
// Any global unloads removed?
|
433 |
-
Main::instance()->removeGlobalUnloads();
|
434 |
-
}
|
435 |
-
|
436 |
-
/**
|
437 |
-
*
|
438 |
-
*/
|
439 |
-
public function frontendUpdate()
|
440 |
-
{
|
441 |
-
global $post;
|
442 |
-
|
443 |
-
// Check nonce
|
444 |
-
$nonceName = self::FRONT_NONCE_FIELD_NAME;
|
445 |
-
$nonceAction = self::FRONT_NONCE_ACTION_NAME;
|
446 |
-
|
447 |
-
$updateAction = isset($_POST['wpacu_update_asset_frontend']) ?
|
448 |
-
$_POST['wpacu_update_asset_frontend'] : '';
|
449 |
-
|
450 |
-
if (! isset($_POST[$nonceName]) || $updateAction != 1 || ! $this->frontendShow) {
|
451 |
-
return;
|
452 |
-
}
|
453 |
-
|
454 |
-
// only for admins
|
455 |
-
if (! current_user_can('manage_options')) {
|
456 |
-
return;
|
457 |
-
}
|
458 |
-
|
459 |
-
if (! wp_verify_nonce($_POST[$nonceName], $nonceAction)) {
|
460 |
-
$postUrlAnchor = get_permalink($post->ID).'#wpacu_wrap_assets';
|
461 |
-
wp_die(
|
462 |
-
sprintf(
|
463 |
-
__('The nonce expired or is not correct, thus the request was not processed. %sPlease retry%s.', WPACU_PLUGIN_NAME),
|
464 |
-
'<a href="'.$postUrlAnchor.'">',
|
465 |
-
'</a>'
|
466 |
-
),
|
467 |
-
__('Nonce Expired', WPACU_PLUGIN_NAME)
|
468 |
-
);
|
469 |
-
}
|
470 |
-
|
471 |
-
if (is_front_page()) {
|
472 |
-
$wpacuNoLoadAssets = isset($_POST[WPACU_PLUGIN_NAME])
|
473 |
-
? $_POST[WPACU_PLUGIN_NAME] : array();
|
474 |
-
|
475 |
-
HomePage::updateFrontPage($wpacuNoLoadAssets);
|
476 |
-
} else {
|
477 |
-
$this->savePost($post->ID, $post);
|
478 |
-
}
|
479 |
-
}
|
480 |
-
|
481 |
/**
|
482 |
* @param string $type
|
483 |
* @param string $postId
|
@@ -527,150 +448,6 @@ class Main
|
|
527 |
return $exceptionsList;
|
528 |
}
|
529 |
|
530 |
-
/**
|
531 |
-
* @param string $type
|
532 |
-
* @param string $postId
|
533 |
-
* @return bool
|
534 |
-
*/
|
535 |
-
public function saveLoadExceptions($type = 'post', $postId = '')
|
536 |
-
{
|
537 |
-
if ($type == 'post' && !$postId) {
|
538 |
-
// $postId needs to have a value if $type is a 'post' type
|
539 |
-
return false;
|
540 |
-
}
|
541 |
-
|
542 |
-
if (! in_array($type, array('post', 'front_page'))) {
|
543 |
-
// Invalid request
|
544 |
-
return false;
|
545 |
-
}
|
546 |
-
|
547 |
-
// Any global upload options
|
548 |
-
$isPostOptionStyles = (isset($_POST['wpacu_styles_load_it']) && ! empty($_POST['wpacu_styles_load_it']));
|
549 |
-
$isPostOptionScripts = (isset($_POST['wpacu_scripts_load_it']) && ! empty($_POST['wpacu_scripts_load_it']));
|
550 |
-
|
551 |
-
$loadExceptionsStyles = $loadExceptionsScripts = array();
|
552 |
-
|
553 |
-
// Clear existing list first
|
554 |
-
if ($type == 'post') {
|
555 |
-
delete_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_load_exceptions');
|
556 |
-
} elseif ($type == 'front_page') {
|
557 |
-
delete_option(WPACU_PLUGIN_NAME . '_front_page_load_exceptions');
|
558 |
-
}
|
559 |
-
|
560 |
-
if (!$isPostOptionStyles && !$isPostOptionScripts) {
|
561 |
-
return false;
|
562 |
-
}
|
563 |
-
|
564 |
-
// Load Exception
|
565 |
-
if (isset($_POST['wpacu_styles_load_it']) && ! empty($_POST['wpacu_styles_load_it'])) {
|
566 |
-
foreach ($_POST['wpacu_styles_load_it'] as $wpacuHandle) {
|
567 |
-
// Do not append it if the global unload is removed
|
568 |
-
if (isset($_POST['wpacu_options_styles'][$wpacuHandle])
|
569 |
-
&& $_POST['wpacu_options_styles'][$wpacuHandle] == 'remove') {
|
570 |
-
continue;
|
571 |
-
}
|
572 |
-
$loadExceptionsStyles[] = $wpacuHandle;
|
573 |
-
}
|
574 |
-
}
|
575 |
-
|
576 |
-
if (! empty($_POST['wpacu_scripts_load_it'])) {
|
577 |
-
foreach ($_POST['wpacu_scripts_load_it'] as $wpacuHandle) {
|
578 |
-
// Do not append it if the global unload is removed
|
579 |
-
if (isset($_POST['wpacu_options_scripts'][$wpacuHandle])
|
580 |
-
&& $_POST['wpacu_options_scripts'][$wpacuHandle] == 'remove') {
|
581 |
-
continue;
|
582 |
-
}
|
583 |
-
$loadExceptionsScripts[] = $wpacuHandle;
|
584 |
-
}
|
585 |
-
}
|
586 |
-
|
587 |
-
if (! empty($loadExceptionsStyles) || ! empty($loadExceptionsScripts)) {
|
588 |
-
// Default
|
589 |
-
$list = array('styles' => array(), 'scripts' => array());
|
590 |
-
|
591 |
-
// Build list
|
592 |
-
if (! empty($loadExceptionsStyles)) {
|
593 |
-
foreach ($loadExceptionsStyles as $postHandle) {
|
594 |
-
$list['styles'][] = $postHandle;
|
595 |
-
}
|
596 |
-
}
|
597 |
-
|
598 |
-
if (! empty($loadExceptionsScripts)) {
|
599 |
-
foreach ($loadExceptionsScripts as $postHandle) {
|
600 |
-
$list['scripts'][] = $postHandle;
|
601 |
-
}
|
602 |
-
}
|
603 |
-
|
604 |
-
if (is_array($list['styles'])) {
|
605 |
-
$list['styles'] = array_unique($list['styles']);
|
606 |
-
}
|
607 |
-
|
608 |
-
if (is_array($list['scripts'])) {
|
609 |
-
$list['scripts'] = array_unique($list['scripts']);
|
610 |
-
}
|
611 |
-
|
612 |
-
$jsonLoadExceptions = json_encode($list);
|
613 |
-
|
614 |
-
if ($type == 'post') {
|
615 |
-
if (! add_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_load_exceptions', $jsonLoadExceptions, true)) {
|
616 |
-
update_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_load_exceptions', $jsonLoadExceptions);
|
617 |
-
}
|
618 |
-
} elseif ($type == 'front_page') {
|
619 |
-
update_option(WPACU_PLUGIN_NAME . '_front_page_load_exceptions', $jsonLoadExceptions);
|
620 |
-
}
|
621 |
-
}
|
622 |
-
}
|
623 |
-
|
624 |
-
/**
|
625 |
-
*
|
626 |
-
*/
|
627 |
-
public function saveToGlobalUnload()
|
628 |
-
{
|
629 |
-
$postStyles = (isset($_POST['wpacu_global_unload_styles']) && is_array($_POST['wpacu_global_unload_styles']))
|
630 |
-
? $_POST['wpacu_global_unload_styles'] : array();
|
631 |
-
|
632 |
-
$postScripts = (isset($_POST['wpacu_global_unload_scripts']) && is_array($_POST['wpacu_global_unload_scripts']))
|
633 |
-
? $_POST['wpacu_global_unload_scripts'] : array();
|
634 |
-
|
635 |
-
// Is there any entry already in JSON format?
|
636 |
-
$existingListJson = get_option(WPACU_PLUGIN_NAME.'_global_unload');
|
637 |
-
|
638 |
-
// Default list as array
|
639 |
-
$existingListEmpty = array('styles' => array(), 'scripts' => array());
|
640 |
-
|
641 |
-
if (! $existingListJson) {
|
642 |
-
$existingList = $existingListEmpty;
|
643 |
-
} else {
|
644 |
-
$existingList = json_decode($existingListJson, true);
|
645 |
-
|
646 |
-
if (json_last_error() != JSON_ERROR_NONE) {
|
647 |
-
$existingList = $existingListEmpty;
|
648 |
-
}
|
649 |
-
}
|
650 |
-
|
651 |
-
// Append to the list anything from the POST (if any)
|
652 |
-
if (! empty($postStyles)) {
|
653 |
-
foreach ($postStyles as $postStyleHandle) {
|
654 |
-
$existingList['styles'][] = $postStyleHandle;
|
655 |
-
}
|
656 |
-
}
|
657 |
-
|
658 |
-
if (! empty($postScripts)) {
|
659 |
-
foreach ($postScripts as $postScriptHandle) {
|
660 |
-
$existingList['scripts'][] = $postScriptHandle;
|
661 |
-
}
|
662 |
-
}
|
663 |
-
|
664 |
-
// Make sure all entries are unique (no handle duplicates)
|
665 |
-
$existingList['styles'] = array_unique($existingList['styles']);
|
666 |
-
$existingList['scripts'] = array_unique($existingList['scripts']);
|
667 |
-
|
668 |
-
update_option(
|
669 |
-
WPACU_PLUGIN_NAME.'_global_unload',
|
670 |
-
json_encode($existingList)
|
671 |
-
);
|
672 |
-
}
|
673 |
-
|
674 |
/**
|
675 |
* @return array
|
676 |
*/
|
@@ -694,61 +471,38 @@ class Main
|
|
694 |
}
|
695 |
|
696 |
/**
|
697 |
-
*
|
|
|
698 |
*/
|
699 |
-
public function
|
700 |
{
|
701 |
-
$
|
702 |
-
$scriptsList = isset($_POST['wpacu_options_scripts']) ? $_POST['wpacu_options_scripts'] : array();
|
703 |
|
704 |
-
$
|
705 |
|
706 |
-
if (!
|
707 |
-
|
708 |
-
if ($value == 'remove') {
|
709 |
-
$removeStylesList[] = $handle;
|
710 |
-
}
|
711 |
-
}
|
712 |
-
}
|
713 |
-
|
714 |
-
if (! empty($scriptsList)) {
|
715 |
-
foreach ($scriptsList as $handle => $value) {
|
716 |
-
if ($value == 'remove') {
|
717 |
-
$removeScriptsList[] = $handle;
|
718 |
-
}
|
719 |
-
}
|
720 |
}
|
721 |
|
722 |
-
$
|
723 |
|
724 |
-
if
|
725 |
-
return;
|
726 |
}
|
727 |
|
728 |
-
$existingList =
|
729 |
|
730 |
-
if (
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
unset($existingList['styles'][$handleKey]);
|
735 |
-
}
|
736 |
-
}
|
737 |
-
}
|
738 |
-
|
739 |
-
if (! empty($removeScriptsList)) {
|
740 |
-
foreach ($existingList['scripts'] as $handleKey => $handle) {
|
741 |
-
if (in_array($handle, $removeScriptsList)) {
|
742 |
-
unset($existingList['scripts'][$handleKey]);
|
743 |
-
}
|
744 |
-
}
|
745 |
-
}
|
746 |
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
);
|
751 |
}
|
|
|
|
|
752 |
}
|
753 |
|
754 |
/**
|
@@ -815,10 +569,27 @@ class Main
|
|
815 |
}
|
816 |
}
|
817 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
818 |
/*
|
819 |
* Style List
|
820 |
*/
|
821 |
if (! empty($wp_styles)) {
|
|
|
|
|
822 |
$skipStyles = array(
|
823 |
'admin-bar',
|
824 |
WPACU_PLUGIN_NAME . '-icheck-square-red',
|
@@ -841,7 +612,7 @@ class Main
|
|
841 |
}
|
842 |
}
|
843 |
|
844 |
-
//
|
845 |
if (! empty($currentUnloadedAll['styles']) && !empty($stylesBeforeUnload)) {
|
846 |
foreach ($currentUnloadedAll['styles'] as $sbuHandle) {
|
847 |
if (!in_array($sbuHandle, $wp_styles->done)) {
|
@@ -866,6 +637,8 @@ class Main
|
|
866 |
* Scripts List
|
867 |
*/
|
868 |
if (! empty($wp_scripts)) {
|
|
|
|
|
869 |
$skipScripts = array(
|
870 |
'admin-bar',
|
871 |
WPACU_PLUGIN_NAME . '-icheck',
|
@@ -888,7 +661,7 @@ class Main
|
|
888 |
}
|
889 |
}
|
890 |
|
891 |
-
//
|
892 |
if (! empty($currentUnloadedAll['scripts']) && !empty($scriptsBeforeUnload)) {
|
893 |
foreach ($currentUnloadedAll['scripts'] as $sbuHandle) {
|
894 |
if (!in_array($sbuHandle, $wp_scripts->done)) {
|
@@ -918,13 +691,12 @@ class Main
|
|
918 |
$data['all']['scripts'] = $list['scripts'];
|
919 |
$data['all']['styles'] = $list['styles'];
|
920 |
|
921 |
-
$this->fetchUrl =
|
922 |
-
? get_option('siteurl') : $this->getPostUrl($post->ID);
|
923 |
|
924 |
$data['fetch_url'] = $this->fetchUrl;
|
925 |
|
926 |
-
$data['nonce_name'] =
|
927 |
-
$data['nonce_action'] =
|
928 |
|
929 |
$data = $this->alterAssetObj($data);
|
930 |
|
@@ -935,6 +707,15 @@ class Main
|
|
935 |
|
936 |
$data['load_exceptions'] = $this->getLoadExceptions($type, $postId);
|
937 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
938 |
$this->parseTemplate('settings-frontend', $data, true);
|
939 |
} elseif ($isDashboardView) {
|
940 |
// AJAX call from the WordPress Dashboard
|
@@ -972,169 +753,6 @@ class Main
|
|
972 |
return $result;
|
973 |
}
|
974 |
|
975 |
-
/**
|
976 |
-
*
|
977 |
-
*/
|
978 |
-
public function stylesAndScriptsForAdmin()
|
979 |
-
{
|
980 |
-
global $post;
|
981 |
-
|
982 |
-
$page = (isset($_GET['page'])) ? $_GET['page'] : '';
|
983 |
-
$getPostId = (isset($_GET['post'])) ? (int)$_GET['post'] : '';
|
984 |
-
|
985 |
-
$homepageClass = new HomePage;
|
986 |
-
|
987 |
-
if (isset($post->ID)) {
|
988 |
-
$this->loadPluginAssets = true;
|
989 |
-
}
|
990 |
-
|
991 |
-
if ($getPostId > 0) {
|
992 |
-
$this->loadPluginAssets = true;
|
993 |
-
}
|
994 |
-
|
995 |
-
if ($page == WPACU_PLUGIN_NAME.'_home_page'
|
996 |
-
&& $homepageClass->data['show_on_front'] === 'posts'
|
997 |
-
) {
|
998 |
-
$this->loadPluginAssets = true;
|
999 |
-
}
|
1000 |
-
|
1001 |
-
if (! $this->loadPluginAssets) {
|
1002 |
-
return;
|
1003 |
-
}
|
1004 |
-
|
1005 |
-
$this->enqueueAdminStyles();
|
1006 |
-
$this->enqueueAdminScripts();
|
1007 |
-
}
|
1008 |
-
|
1009 |
-
/**
|
1010 |
-
*
|
1011 |
-
*/
|
1012 |
-
public function stylesAndScriptsForPublic()
|
1013 |
-
{
|
1014 |
-
$this->enqueuePublicStyles();
|
1015 |
-
$this->enqueuePublicScripts();
|
1016 |
-
}
|
1017 |
-
|
1018 |
-
/**
|
1019 |
-
*
|
1020 |
-
*/
|
1021 |
-
private function enqueueAdminStyles()
|
1022 |
-
{
|
1023 |
-
wp_enqueue_style(WPACU_PLUGIN_NAME . '-style', plugins_url('/assets/style.css', WPACU_PLUGIN_FILE));
|
1024 |
-
wp_enqueue_style(WPACU_PLUGIN_NAME . '-icheck-square-red', plugins_url('/assets/icheck/skins/square/red.css', WPACU_PLUGIN_FILE));
|
1025 |
-
}
|
1026 |
-
|
1027 |
-
/**
|
1028 |
-
*
|
1029 |
-
*/
|
1030 |
-
private function enqueueAdminScripts()
|
1031 |
-
{
|
1032 |
-
global $post, $pagenow;
|
1033 |
-
|
1034 |
-
$page = (isset($_GET['page'])) ? $_GET['page'] : '';
|
1035 |
-
|
1036 |
-
$getPostId = (isset($_GET['post'])
|
1037 |
-
&& isset($_GET['action'])
|
1038 |
-
&& $_GET['action'] === 'edit'
|
1039 |
-
&& $pagenow == 'post.php')
|
1040 |
-
? (int)$_GET['post'] : '';
|
1041 |
-
|
1042 |
-
$postId = (isset($post->ID)) ? $post->ID : 0;
|
1043 |
-
|
1044 |
-
if ($getPostId > 0 && $getPostId != $postId) {
|
1045 |
-
$postId = $getPostId;
|
1046 |
-
}
|
1047 |
-
|
1048 |
-
if ($page == WPACU_PLUGIN_NAME.'_home_page' || $postId < 1) {
|
1049 |
-
$postId = 0; // for home page
|
1050 |
-
}
|
1051 |
-
|
1052 |
-
// Not home page (posts list)? See if the individual post is published to continue
|
1053 |
-
if ($postId > 0) {
|
1054 |
-
$postStatus = get_post_status($postId);
|
1055 |
-
|
1056 |
-
if (! $postStatus) {
|
1057 |
-
return;
|
1058 |
-
}
|
1059 |
-
|
1060 |
-
// Only for Published Posts
|
1061 |
-
if ($postStatus != 'publish') {
|
1062 |
-
return;
|
1063 |
-
}
|
1064 |
-
}
|
1065 |
-
|
1066 |
-
wp_register_script(WPACU_PLUGIN_NAME . '-script', plugins_url('/assets/script.js', WPACU_PLUGIN_FILE), array('jquery'), '1.1');
|
1067 |
-
|
1068 |
-
// It can also be the front page URL
|
1069 |
-
$postUrl = $this->getPostUrl($postId);
|
1070 |
-
|
1071 |
-
$this->fetchUrl = $postUrl;
|
1072 |
-
|
1073 |
-
wp_localize_script(
|
1074 |
-
WPACU_PLUGIN_NAME . '-script',
|
1075 |
-
'wpacu_object',
|
1076 |
-
array(
|
1077 |
-
'plugin_name' => WPACU_PLUGIN_NAME,
|
1078 |
-
'ajax_url' => admin_url('admin-ajax.php'),
|
1079 |
-
'post_id' => $postId,
|
1080 |
-
'post_url' => $postUrl
|
1081 |
-
)
|
1082 |
-
);
|
1083 |
-
|
1084 |
-
wp_enqueue_script(WPACU_PLUGIN_NAME . '-icheck', plugins_url('/assets/icheck/icheck.min.js', WPACU_PLUGIN_FILE), array('jquery'));
|
1085 |
-
wp_enqueue_script(WPACU_PLUGIN_NAME . '-script');
|
1086 |
-
}
|
1087 |
-
|
1088 |
-
/**
|
1089 |
-
*
|
1090 |
-
*/
|
1091 |
-
private function enqueuePublicStyles()
|
1092 |
-
{
|
1093 |
-
if ($this->frontendShow && current_user_can('manage_options') && !isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
1094 |
-
wp_enqueue_style(WPACU_PLUGIN_NAME . '-style', plugins_url('/assets/style.css', WPACU_PLUGIN_FILE));
|
1095 |
-
wp_enqueue_style(WPACU_PLUGIN_NAME . '-icheck-square-red', plugins_url('/assets/icheck/skins/square/red.css', WPACU_PLUGIN_FILE));
|
1096 |
-
}
|
1097 |
-
}
|
1098 |
-
|
1099 |
-
/**
|
1100 |
-
*
|
1101 |
-
*/
|
1102 |
-
public function enqueuePublicScripts()
|
1103 |
-
{
|
1104 |
-
if ($this->frontendShow && current_user_can('manage_options') && !isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
1105 |
-
wp_enqueue_script(WPACU_PLUGIN_NAME . '-icheck', plugins_url('/assets/icheck/icheck.min.js', WPACU_PLUGIN_FILE), array('jquery'));
|
1106 |
-
wp_enqueue_script(WPACU_PLUGIN_NAME . '-script', plugins_url('/assets/script.js', WPACU_PLUGIN_FILE), array('jquery'), '1.1');
|
1107 |
-
}
|
1108 |
-
}
|
1109 |
-
|
1110 |
-
/**
|
1111 |
-
* @param $postId
|
1112 |
-
* @return false|mixed|string|void
|
1113 |
-
*/
|
1114 |
-
public function getPostUrl($postId)
|
1115 |
-
{
|
1116 |
-
if ($postId > 0) {
|
1117 |
-
$postUrl = get_permalink($postId);
|
1118 |
-
} else {
|
1119 |
-
$postUrl = get_option('siteurl');
|
1120 |
-
|
1121 |
-
if (substr($postUrl, -1) != '/') {
|
1122 |
-
$postUrl .= '/';
|
1123 |
-
}
|
1124 |
-
}
|
1125 |
-
|
1126 |
-
// If we are in the Dashboard on a HTTPS connection,
|
1127 |
-
// then we will make the AJAX call over HTTPS as well for the front-end
|
1128 |
-
// to avoid blocking
|
1129 |
-
$https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off');
|
1130 |
-
|
1131 |
-
if ($https && strpos($postUrl, 'http://') === 0) {
|
1132 |
-
$postUrl = str_ireplace('http://', 'https://', $postUrl);
|
1133 |
-
}
|
1134 |
-
|
1135 |
-
return $postUrl;
|
1136 |
-
}
|
1137 |
-
|
1138 |
/**
|
1139 |
*
|
1140 |
*/
|
@@ -1145,7 +763,7 @@ class Main
|
|
1145 |
$postUrl = isset($_POST['post_url']) ? $_POST['post_url'] : '';
|
1146 |
|
1147 |
$json = base64_decode(
|
1148 |
-
|
1149 |
$contents,
|
1150 |
self::STARTDEL,
|
1151 |
self::ENDDEL
|
@@ -1174,6 +792,18 @@ class Main
|
|
1174 |
$data['fetch_url'] = $postUrl;
|
1175 |
$data['global_unload'] = $this->getGlobalUnload();
|
1176 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1177 |
$type = ($postId == 0) ? 'front_page' : 'post';
|
1178 |
|
1179 |
$data['load_exceptions'] = $this->getLoadExceptions($type, $postId);
|
@@ -1237,8 +867,8 @@ class Main
|
|
1237 |
$data['core_scripts_loaded'] = false;
|
1238 |
|
1239 |
if (isset($data['contents'])) {
|
1240 |
-
$headPart =
|
1241 |
-
$bodyPart =
|
1242 |
}
|
1243 |
|
1244 |
foreach ($data['all']['scripts'] as $key => $obj) {
|
@@ -1311,8 +941,8 @@ class Main
|
|
1311 |
}
|
1312 |
|
1313 |
/**
|
1314 |
-
* @param
|
1315 |
-
* @return array|mixed|void
|
1316 |
*/
|
1317 |
public function getAssetsUnloaded($postId = 0)
|
1318 |
{
|
@@ -1336,27 +966,4 @@ class Main
|
|
1336 |
|
1337 |
return $this->assetsRemoved;
|
1338 |
}
|
1339 |
-
|
1340 |
-
/**
|
1341 |
-
* @param $string
|
1342 |
-
* @param $start
|
1343 |
-
* @param $end
|
1344 |
-
* @return string
|
1345 |
-
*/
|
1346 |
-
public function extractBetween($string, $start, $end)
|
1347 |
-
{
|
1348 |
-
$pos = stripos($string, $start);
|
1349 |
-
|
1350 |
-
$str = substr($string, $pos);
|
1351 |
-
|
1352 |
-
$strTwo = substr($str, strlen($start));
|
1353 |
-
|
1354 |
-
$secondPos = stripos($strTwo, $end);
|
1355 |
-
|
1356 |
-
$strThree = substr($strTwo, 0, $secondPos);
|
1357 |
-
|
1358 |
-
$unit = trim($strThree); // remove whitespaces
|
1359 |
-
|
1360 |
-
return $unit;
|
1361 |
-
}
|
1362 |
}
|
11 |
*
|
12 |
*/
|
13 |
const STARTDEL = '@ BEGIN WPACU PLUGIN JSON @';
|
|
|
|
|
|
|
|
|
14 |
|
15 |
/**
|
16 |
*
|
17 |
*/
|
18 |
+
const ENDDEL = '@ END WPACU PLUGIN JSON @';
|
|
|
|
|
|
|
|
|
19 |
|
20 |
/**
|
21 |
* @var array
|
22 |
*/
|
23 |
public $assetsRemoved = array();
|
24 |
|
|
|
|
|
|
|
|
|
|
|
25 |
/**
|
26 |
* @var array
|
27 |
*/
|
51 |
* @var array
|
52 |
*/
|
53 |
public $wpScripts = array();
|
54 |
+
|
55 |
/**
|
56 |
* @var array
|
57 |
*/
|
58 |
public $wpStyles = array();
|
59 |
|
60 |
+
/**
|
61 |
+
* @var array
|
62 |
+
*/
|
63 |
+
public $postTypesUnloaded = array();
|
64 |
+
|
65 |
/**
|
66 |
* @var Main|null
|
67 |
*/
|
87 |
$this->frontendShow = (get_option(WPACU_PLUGIN_NAME.'_frontend_show'));
|
88 |
|
89 |
// Early Triggers
|
|
|
90 |
add_action('wp', array($this, 'setVars'), 2);
|
91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
// Fetch the page in the background to see what scripts/styles are already loading
|
93 |
if (isset($_POST[WPACU_PLUGIN_NAME.'_load']) || $this->frontendShow) {
|
94 |
if (isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
139 |
|
140 |
$type = (is_front_page()) ? 'front_page' : 'post';
|
141 |
|
142 |
+
if (is_singular()) {
|
143 |
+
$this->postTypesUnloaded = $this->getPostTypeUnload($post->post_type);
|
144 |
+
}
|
145 |
+
|
146 |
$this->loadExceptions = $this->getLoadExceptions($type, $postId);
|
147 |
}
|
148 |
}
|
157 |
if ($obj->public > 0) {
|
158 |
add_meta_box(
|
159 |
WPACU_PLUGIN_NAME.'_asset_list',
|
160 |
+
__('WP Asset CleanUp', WPACU_PLUGIN_NAME),
|
161 |
array($this, 'renderMetaBoxContent'),
|
162 |
$postType,
|
163 |
'advanced',
|
194 |
|
195 |
$data['get_assets'] = $getAssets;
|
196 |
|
197 |
+
$data['fetch_url'] = Misc::getPostUrl($postId);
|
198 |
|
199 |
$this->parseTemplate('meta-box', $data, true);
|
200 |
}
|
245 |
}
|
246 |
}
|
247 |
|
248 |
+
if (is_singular()) {
|
249 |
+
// Any bulk unloaded styles (e.g. for all pages belonging to a post type)? Append them
|
250 |
+
if (empty($this->postTypesUnloaded)) {
|
251 |
+
global $post;
|
252 |
+
$this->postTypesUnloaded = $this->getPostTypeUnload($post->post_type);
|
253 |
+
}
|
254 |
+
|
255 |
+
if (!empty($this->postTypesUnloaded['scripts'])) {
|
256 |
+
foreach ($this->postTypesUnloaded['scripts'] as $handleStyle) {
|
257 |
+
$list[] = $handleStyle;
|
258 |
+
}
|
259 |
+
}
|
260 |
+
}
|
261 |
+
|
262 |
$list = array_unique($list);
|
263 |
}
|
264 |
|
345 |
}
|
346 |
}
|
347 |
|
348 |
+
if (is_singular()) {
|
349 |
+
// Any bulk unloaded styles (e.g. for all pages belonging to a post type)? Append them
|
350 |
+
if (empty($this->postTypesUnloaded)) {
|
351 |
+
global $post;
|
352 |
+
$this->postTypesUnloaded = $this->getPostTypeUnload($post->post_type);
|
353 |
+
}
|
354 |
+
|
355 |
+
if (!empty($this->postTypesUnloaded['styles'])) {
|
356 |
+
foreach ($this->postTypesUnloaded['styles'] as $handleStyle) {
|
357 |
+
$list[] = $handleStyle;
|
358 |
+
}
|
359 |
+
}
|
360 |
+
}
|
361 |
+
|
362 |
$list = array_unique($list);
|
363 |
}
|
364 |
|
399 |
}
|
400 |
}
|
401 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
402 |
/**
|
403 |
* @param string $type
|
404 |
* @param string $postId
|
448 |
return $exceptionsList;
|
449 |
}
|
450 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
/**
|
452 |
* @return array
|
453 |
*/
|
471 |
}
|
472 |
|
473 |
/**
|
474 |
+
* @param $postType
|
475 |
+
* @return array
|
476 |
*/
|
477 |
+
public function getPostTypeUnload($postType)
|
478 |
{
|
479 |
+
$existingListEmpty = array();
|
|
|
480 |
|
481 |
+
$existingListAllJson = get_option(WPACU_PLUGIN_NAME.'_bulk_unload');
|
482 |
|
483 |
+
if (! $existingListAllJson) {
|
484 |
+
return $existingListEmpty;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
485 |
}
|
486 |
|
487 |
+
$existingListAll = json_decode($existingListAllJson, true);
|
488 |
|
489 |
+
if (json_last_error() != JSON_ERROR_NONE) {
|
490 |
+
return $existingListEmpty;
|
491 |
}
|
492 |
|
493 |
+
$existingList = array();
|
494 |
|
495 |
+
if (isset($existingListAll['styles']['post_type'][$postType])
|
496 |
+
&& is_array($existingListAll['styles']['post_type'][$postType])) {
|
497 |
+
$existingList['styles'] = $existingListAll['styles']['post_type'][$postType];
|
498 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
499 |
|
500 |
+
if (isset($existingListAll['scripts']['post_type'][$postType])
|
501 |
+
&& is_array($existingListAll['scripts']['post_type'][$postType])) {
|
502 |
+
$existingList['scripts'] = $existingListAll['scripts']['post_type'][$postType];
|
|
|
503 |
}
|
504 |
+
|
505 |
+
return $existingList;
|
506 |
}
|
507 |
|
508 |
/**
|
569 |
}
|
570 |
}
|
571 |
|
572 |
+
// Append bulk unloaded assets to current (one by one) unloaded ones
|
573 |
+
if (is_singular()) {
|
574 |
+
if (! empty($this->postTypesUnloaded['styles'])) {
|
575 |
+
foreach ($this->postTypesUnloaded['styles'] as $postTypeStyle) {
|
576 |
+
$currentUnloadedAll['styles'][] = $postTypeStyle;
|
577 |
+
}
|
578 |
+
}
|
579 |
+
|
580 |
+
if (! empty($this->postTypesUnloaded['scripts'])) {
|
581 |
+
foreach ($this->postTypesUnloaded['scripts'] as $postTypeScript) {
|
582 |
+
$currentUnloadedAll['scripts'][] = $postTypeScript;
|
583 |
+
}
|
584 |
+
}
|
585 |
+
}
|
586 |
+
|
587 |
/*
|
588 |
* Style List
|
589 |
*/
|
590 |
if (! empty($wp_styles)) {
|
591 |
+
/* These styles below are used by this plugin (except admin-bar) and they should not show in the list
|
592 |
+
as they are loaded only when you (or other admin) manage the assets, never for your website visitors */
|
593 |
$skipStyles = array(
|
594 |
'admin-bar',
|
595 |
WPACU_PLUGIN_NAME . '-icheck-square-red',
|
612 |
}
|
613 |
}
|
614 |
|
615 |
+
// Append unloaded ones (if any)
|
616 |
if (! empty($currentUnloadedAll['styles']) && !empty($stylesBeforeUnload)) {
|
617 |
foreach ($currentUnloadedAll['styles'] as $sbuHandle) {
|
618 |
if (!in_array($sbuHandle, $wp_styles->done)) {
|
637 |
* Scripts List
|
638 |
*/
|
639 |
if (! empty($wp_scripts)) {
|
640 |
+
/* These scripts below are used by this plugin (except admin-bar) and they should not show in the list
|
641 |
+
as they are loaded only when you (or other admin) manage the assets, never for your website visitors */
|
642 |
$skipScripts = array(
|
643 |
'admin-bar',
|
644 |
WPACU_PLUGIN_NAME . '-icheck',
|
661 |
}
|
662 |
}
|
663 |
|
664 |
+
// Append unloaded ones (if any)
|
665 |
if (! empty($currentUnloadedAll['scripts']) && !empty($scriptsBeforeUnload)) {
|
666 |
foreach ($currentUnloadedAll['scripts'] as $sbuHandle) {
|
667 |
if (!in_array($sbuHandle, $wp_scripts->done)) {
|
691 |
$data['all']['scripts'] = $list['scripts'];
|
692 |
$data['all']['styles'] = $list['styles'];
|
693 |
|
694 |
+
$this->fetchUrl = Misc::getPostUrl($post->ID);
|
|
|
695 |
|
696 |
$data['fetch_url'] = $this->fetchUrl;
|
697 |
|
698 |
+
$data['nonce_name'] = Update::NONCE_FIELD_NAME;
|
699 |
+
$data['nonce_action'] = Update::NONCE_ACTION_NAME;
|
700 |
|
701 |
$data = $this->alterAssetObj($data);
|
702 |
|
707 |
|
708 |
$data['load_exceptions'] = $this->getLoadExceptions($type, $postId);
|
709 |
|
710 |
+
if (is_singular()) {
|
711 |
+
// Current Post Type
|
712 |
+
$data['post_type'] = $post->post_type;
|
713 |
+
|
714 |
+
// Are there any assets unloaded for this specific post type?
|
715 |
+
// (e.g. page, post, product (from WooCommerce) or other custom post type)
|
716 |
+
$data['post_type_unloaded'] = $this->getPostTypeUnload($data['post_type']);
|
717 |
+
}
|
718 |
+
|
719 |
$this->parseTemplate('settings-frontend', $data, true);
|
720 |
} elseif ($isDashboardView) {
|
721 |
// AJAX call from the WordPress Dashboard
|
753 |
return $result;
|
754 |
}
|
755 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
756 |
/**
|
757 |
*
|
758 |
*/
|
763 |
$postUrl = isset($_POST['post_url']) ? $_POST['post_url'] : '';
|
764 |
|
765 |
$json = base64_decode(
|
766 |
+
Misc::extractBetween(
|
767 |
$contents,
|
768 |
self::STARTDEL,
|
769 |
self::ENDDEL
|
792 |
$data['fetch_url'] = $postUrl;
|
793 |
$data['global_unload'] = $this->getGlobalUnload();
|
794 |
|
795 |
+
// Post Information
|
796 |
+
$postData = get_post($postId);
|
797 |
+
|
798 |
+
// Current Post Type
|
799 |
+
$data['post_type'] = $postData->post_type;
|
800 |
+
|
801 |
+
// Are there any assets unloaded for this specific post type?
|
802 |
+
// (e.g. page, post, product (from WooCommerce) or other custom post type)
|
803 |
+
$data['post_type_unloaded'] = $this->getPostTypeUnload($data['post_type']);
|
804 |
+
|
805 |
+
//echo '<pre>'; print_r($data['post_type_unloaded']);
|
806 |
+
|
807 |
$type = ($postId == 0) ? 'front_page' : 'post';
|
808 |
|
809 |
$data['load_exceptions'] = $this->getLoadExceptions($type, $postId);
|
867 |
$data['core_scripts_loaded'] = false;
|
868 |
|
869 |
if (isset($data['contents'])) {
|
870 |
+
$headPart = Misc::extractBetween($data['contents'], '<head', '</head>');
|
871 |
+
$bodyPart = Misc::extractBetween($data['contents'], '<body', '</body>');
|
872 |
}
|
873 |
|
874 |
foreach ($data['all']['scripts'] as $key => $obj) {
|
941 |
}
|
942 |
|
943 |
/**
|
944 |
+
* @param int $postId
|
945 |
+
* @return array|mixed|string|void
|
946 |
*/
|
947 |
public function getAssetsUnloaded($postId = 0)
|
948 |
{
|
966 |
|
967 |
return $this->assetsRemoved;
|
968 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
969 |
}
|
classes/Menu.php
CHANGED
@@ -24,8 +24,8 @@ class Menu
|
|
24 |
$capability = 'manage_options';
|
25 |
|
26 |
add_menu_page(
|
27 |
-
__('WP Asset
|
28 |
-
__('WP Asset
|
29 |
$capability,
|
30 |
$menuSlug,
|
31 |
array('\WpAssetCleanUp\Settings', 'settingsPage'),
|
@@ -41,6 +41,16 @@ class Menu
|
|
41 |
array(new HomePage, 'page')
|
42 |
);
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
$GLOBALS['submenu'][$menuSlug][0][0] = esc_attr__('Settings', WPACU_PLUGIN_NAME);
|
45 |
}
|
46 |
}
|
24 |
$capability = 'manage_options';
|
25 |
|
26 |
add_menu_page(
|
27 |
+
__('WP Asset CleanUp', WPACU_PLUGIN_NAME),
|
28 |
+
__('WP Asset CleanUp', WPACU_PLUGIN_NAME),
|
29 |
$capability,
|
30 |
$menuSlug,
|
31 |
array('\WpAssetCleanUp\Settings', 'settingsPage'),
|
41 |
array(new HomePage, 'page')
|
42 |
);
|
43 |
|
44 |
+
add_submenu_page(
|
45 |
+
$menuSlug,
|
46 |
+
__('Global Rules', WPACU_PLUGIN_NAME),
|
47 |
+
__('Global Rules', WPACU_PLUGIN_NAME),
|
48 |
+
$capability,
|
49 |
+
WPACU_PLUGIN_NAME.'_globals',
|
50 |
+
array(new GlobalRules, 'page')
|
51 |
+
);
|
52 |
+
|
53 |
+
// Rename first item from the menu which has the same title as the menu page
|
54 |
$GLOBALS['submenu'][$menuSlug][0][0] = esc_attr__('Settings', WPACU_PLUGIN_NAME);
|
55 |
}
|
56 |
}
|
classes/Misc.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace WpAssetCleanUp;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class Misc
|
6 |
+
* contains various common functions that are used by the plugin
|
7 |
+
* @package WpAssetCleanUp
|
8 |
+
*/
|
9 |
+
class Misc
|
10 |
+
{
|
11 |
+
/**
|
12 |
+
* @param $string
|
13 |
+
* @param $start
|
14 |
+
* @param $end
|
15 |
+
* @return string
|
16 |
+
*/
|
17 |
+
public static function extractBetween($string, $start, $end)
|
18 |
+
{
|
19 |
+
$pos = stripos($string, $start);
|
20 |
+
|
21 |
+
$str = substr($string, $pos);
|
22 |
+
|
23 |
+
$strTwo = substr($str, strlen($start));
|
24 |
+
|
25 |
+
$secondPos = stripos($strTwo, $end);
|
26 |
+
|
27 |
+
$strThree = substr($strTwo, 0, $secondPos);
|
28 |
+
|
29 |
+
$unit = trim($strThree); // remove whitespaces
|
30 |
+
|
31 |
+
return $unit;
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @return string
|
36 |
+
*/
|
37 |
+
public static function isHttpsSecure()
|
38 |
+
{
|
39 |
+
$isSecure = false;
|
40 |
+
|
41 |
+
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
|
42 |
+
$isSecure = true;
|
43 |
+
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
|
44 |
+
|| !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
|
45 |
+
// Is it behind a load balancer?
|
46 |
+
$isSecure = true;
|
47 |
+
}
|
48 |
+
|
49 |
+
return $isSecure;
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* @param $postId
|
54 |
+
* @return false|mixed|string|void
|
55 |
+
*/
|
56 |
+
public static function getPostUrl($postId)
|
57 |
+
{
|
58 |
+
if (is_front_page()) {
|
59 |
+
return get_option('siteurl');
|
60 |
+
}
|
61 |
+
|
62 |
+
if ($postId > 0) {
|
63 |
+
$postUrl = get_permalink($postId);
|
64 |
+
} else {
|
65 |
+
$postUrl = get_option('siteurl');
|
66 |
+
|
67 |
+
if (substr($postUrl, -1) != '/') {
|
68 |
+
$postUrl .= '/';
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
// If we are in the Dashboard on a HTTPS connection,
|
73 |
+
// then we will make the AJAX call over HTTPS as well for the front-end
|
74 |
+
// to avoid blocking
|
75 |
+
$https = Misc::isHttpsSecure();
|
76 |
+
|
77 |
+
if ($https && strpos($postUrl, 'http://') === 0) {
|
78 |
+
$postUrl = str_ireplace('http://', 'https://', $postUrl);
|
79 |
+
}
|
80 |
+
|
81 |
+
return $postUrl;
|
82 |
+
}
|
83 |
+
}
|
classes/OwnAssets.php
ADDED
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace WpAssetCleanUp;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class OwnAssets
|
6 |
+
*
|
7 |
+
* These are plugin's own assets and they are used only when you're logged and do not show in the list for unload
|
8 |
+
*
|
9 |
+
* @package WpAssetCleanUp
|
10 |
+
*/
|
11 |
+
class OwnAssets
|
12 |
+
{
|
13 |
+
/**
|
14 |
+
* @var bool
|
15 |
+
*/
|
16 |
+
public $loadPluginAssets = false; // default
|
17 |
+
|
18 |
+
/**
|
19 |
+
* OwnAssets constructor.
|
20 |
+
*/
|
21 |
+
public function __construct()
|
22 |
+
{
|
23 |
+
add_action('admin_enqueue_scripts', array($this, 'stylesAndScriptsForAdmin'));
|
24 |
+
add_action('wp_enqueue_scripts', array($this, 'stylesAndScriptsForPublic'));
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
*/
|
30 |
+
public function stylesAndScriptsForAdmin()
|
31 |
+
{
|
32 |
+
global $post;
|
33 |
+
|
34 |
+
$page = (isset($_GET['page'])) ? $_GET['page'] : '';
|
35 |
+
$getPostId = (isset($_GET['post'])) ? (int)$_GET['post'] : '';
|
36 |
+
|
37 |
+
// Only load the plugin's assets when they are needed
|
38 |
+
// This an example of assets that are correctly loaded in WordPress
|
39 |
+
if (isset($post->ID)) {
|
40 |
+
$this->loadPluginAssets = true;
|
41 |
+
}
|
42 |
+
|
43 |
+
if ($getPostId > 0) {
|
44 |
+
$this->loadPluginAssets = true;
|
45 |
+
}
|
46 |
+
|
47 |
+
if (in_array($page, array(WPACU_PLUGIN_NAME.'_home_page', WPACU_PLUGIN_NAME.'_globals'))) {
|
48 |
+
$this->loadPluginAssets = true;
|
49 |
+
}
|
50 |
+
|
51 |
+
if (! $this->loadPluginAssets) {
|
52 |
+
return;
|
53 |
+
}
|
54 |
+
|
55 |
+
$this->enqueueAdminStyles();
|
56 |
+
$this->enqueueAdminScripts();
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
+
/**
|
61 |
+
*
|
62 |
+
*/
|
63 |
+
public function stylesAndScriptsForPublic()
|
64 |
+
{
|
65 |
+
$this->enqueuePublicStyles();
|
66 |
+
$this->enqueuePublicScripts();
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
*
|
71 |
+
*/
|
72 |
+
private function enqueueAdminStyles()
|
73 |
+
{
|
74 |
+
wp_enqueue_style(WPACU_PLUGIN_NAME . '-style', plugins_url('/assets/style.min.css', WPACU_PLUGIN_FILE));
|
75 |
+
wp_enqueue_style(WPACU_PLUGIN_NAME . '-icheck-square-red', plugins_url('/assets/icheck/skins/square/red.css', WPACU_PLUGIN_FILE));
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
*
|
80 |
+
*/
|
81 |
+
private function enqueueAdminScripts()
|
82 |
+
{
|
83 |
+
global $post, $pagenow;
|
84 |
+
|
85 |
+
$page = (isset($_GET['page'])) ? $_GET['page'] : '';
|
86 |
+
|
87 |
+
$getPostId = (isset($_GET['post'])
|
88 |
+
&& isset($_GET['action'])
|
89 |
+
&& $_GET['action'] === 'edit'
|
90 |
+
&& $pagenow == 'post.php')
|
91 |
+
? (int)$_GET['post'] : '';
|
92 |
+
|
93 |
+
$postId = (isset($post->ID)) ? $post->ID : 0;
|
94 |
+
|
95 |
+
if ($getPostId > 0 && $getPostId != $postId) {
|
96 |
+
$postId = $getPostId;
|
97 |
+
}
|
98 |
+
|
99 |
+
if ($page == WPACU_PLUGIN_NAME.'_home_page' || $postId < 1) {
|
100 |
+
$postId = 0; // for home page
|
101 |
+
}
|
102 |
+
|
103 |
+
// Not home page (posts list)? See if the individual post is published to continue
|
104 |
+
if ($postId > 0) {
|
105 |
+
$postStatus = get_post_status($postId);
|
106 |
+
|
107 |
+
if (! $postStatus) {
|
108 |
+
return;
|
109 |
+
}
|
110 |
+
|
111 |
+
// Only for Published Posts
|
112 |
+
if ($postStatus != 'publish') {
|
113 |
+
return;
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
wp_register_script(WPACU_PLUGIN_NAME . '-script', plugins_url('/assets/script.min.js', WPACU_PLUGIN_FILE), array('jquery'), '1.1');
|
118 |
+
|
119 |
+
// It can also be the front page URL
|
120 |
+
$postUrl = Misc::getPostUrl($postId);
|
121 |
+
|
122 |
+
$this->fetchUrl = $postUrl;
|
123 |
+
|
124 |
+
wp_localize_script(
|
125 |
+
WPACU_PLUGIN_NAME . '-script',
|
126 |
+
'wpacu_object',
|
127 |
+
array(
|
128 |
+
'plugin_name' => WPACU_PLUGIN_NAME,
|
129 |
+
'ajax_url' => admin_url('admin-ajax.php'),
|
130 |
+
'post_id' => $postId,
|
131 |
+
'post_url' => $postUrl
|
132 |
+
)
|
133 |
+
);
|
134 |
+
|
135 |
+
wp_enqueue_script(WPACU_PLUGIN_NAME . '-icheck', plugins_url('/assets/icheck/icheck.min.js', WPACU_PLUGIN_FILE), array('jquery'));
|
136 |
+
wp_enqueue_script(WPACU_PLUGIN_NAME . '-script');
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
*
|
141 |
+
*/
|
142 |
+
private function enqueuePublicStyles()
|
143 |
+
{
|
144 |
+
if (Main::instance()->frontendShow && current_user_can('manage_options') && !isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
145 |
+
wp_enqueue_style(WPACU_PLUGIN_NAME . '-style', plugins_url('/assets/style.min.css', WPACU_PLUGIN_FILE));
|
146 |
+
wp_enqueue_style(WPACU_PLUGIN_NAME . '-icheck-square-red', plugins_url('/assets/icheck/skins/square/red.css', WPACU_PLUGIN_FILE));
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
*
|
152 |
+
*/
|
153 |
+
public function enqueuePublicScripts()
|
154 |
+
{
|
155 |
+
if (Main::instance()->frontendShow && current_user_can('manage_options') && !isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
156 |
+
wp_enqueue_script(WPACU_PLUGIN_NAME . '-icheck', plugins_url('/assets/icheck/icheck.min.js', WPACU_PLUGIN_FILE), array('jquery'));
|
157 |
+
wp_enqueue_script(WPACU_PLUGIN_NAME . '-script', plugins_url('/assets/script.min.js', WPACU_PLUGIN_FILE), array('jquery'), '1.1');
|
158 |
+
}
|
159 |
+
}
|
160 |
+
}
|
classes/Update.php
ADDED
@@ -0,0 +1,525 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace WpAssetCleanUp;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class Update
|
6 |
+
* @package WpAssetCleanUp
|
7 |
+
*/
|
8 |
+
class Update
|
9 |
+
{
|
10 |
+
/**
|
11 |
+
*
|
12 |
+
*/
|
13 |
+
const NONCE_ACTION_NAME = 'wpacu_data_update';
|
14 |
+
/**
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
const NONCE_FIELD_NAME = 'wpacu_data_nonce';
|
18 |
+
|
19 |
+
/**
|
20 |
+
*
|
21 |
+
*/
|
22 |
+
public function init()
|
23 |
+
{
|
24 |
+
if (Main::instance()->frontendShow) {
|
25 |
+
add_action('wp', array($this, 'frontendUpdate'), 1);
|
26 |
+
}
|
27 |
+
|
28 |
+
// After post/page is saved - update your styles/scripts lists
|
29 |
+
add_action('save_post', array($this, 'savePost'));
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
*
|
34 |
+
*/
|
35 |
+
public function frontendUpdate()
|
36 |
+
{
|
37 |
+
global $post;
|
38 |
+
|
39 |
+
// Check nonce
|
40 |
+
$nonceName = self::NONCE_FIELD_NAME;
|
41 |
+
$nonceAction = self::NONCE_ACTION_NAME;
|
42 |
+
|
43 |
+
$updateAction = isset($_POST['wpacu_update_asset_frontend']) ?
|
44 |
+
$_POST['wpacu_update_asset_frontend'] : '';
|
45 |
+
|
46 |
+
if (! isset($_POST[$nonceName]) || $updateAction != 1 || ! Main::instance()->frontendShow) {
|
47 |
+
return;
|
48 |
+
}
|
49 |
+
|
50 |
+
// only for admins
|
51 |
+
if (! current_user_can('manage_options')) {
|
52 |
+
return;
|
53 |
+
}
|
54 |
+
|
55 |
+
if (! wp_verify_nonce($_POST[$nonceName], $nonceAction)) {
|
56 |
+
$postUrlAnchor = get_permalink($post->ID).'#wpacu_wrap_assets';
|
57 |
+
wp_die(
|
58 |
+
sprintf(
|
59 |
+
__('The nonce expired or is not correct, thus the request was not processed. %sPlease retry%s.', WPACU_PLUGIN_NAME),
|
60 |
+
'<a href="'.$postUrlAnchor.'">',
|
61 |
+
'</a>'
|
62 |
+
),
|
63 |
+
__('Nonce Expired', WPACU_PLUGIN_NAME)
|
64 |
+
);
|
65 |
+
}
|
66 |
+
|
67 |
+
if (is_front_page()) {
|
68 |
+
$wpacuNoLoadAsse |