PluginProbe
Page Optimize / 0.6.3
Page Optimize v0.6.3
trunk 0.4.2 0.4.3 0.4.4 0.4.6 0.4.7 0.5.0 0.5.1 0.5.2 0.5.3 0.5.4 0.5.5 0.5.6 0.5.7 0.5.8 0.6.0 0.6.1 0.6.2 0.6.3
page-optimize / settings.php

settings.php in Page Optimize 0.6.3, at settings.php

203 lines 6.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 function page_optimize_settings_page() {
4 ?>
5 <div class="wrap">
6 <h1><?php _e( 'Performance Settings', page_optimize_get_text_domain() ); ?></h1>
7 <form method="post" action="options.php">
8 <?php
9 settings_fields( 'performance' );
10 do_settings_sections( 'page-optimize' );
11 submit_button();
12 ?>
13 </form>
14 </div>
15 <?php
16 }
17
18 function page_optimize_settings_section() {
19 _e(
20 'Concatenating JavaScript and CSS for faster site loading and lower number of requests. Scripts are grouped by the original placement.',
21 page_optimize_get_text_domain()
22 );
23 echo '<br />';
24 _e(
25 'This plugin disables Jetpack "Speed up static file load times".',
26 page_optimize_get_text_domain()
27 );
28 }
29
30 function page_optimize_settings_field_js( $args ) {
31 ?>
32 <fieldset>
33 <label>
34 <input type="checkbox" id="page_optimize-js" name="page_optimize-js" value="1" <?php checked( get_option( 'page_optimize-js' ) ); ?>>
35 <?php _e( 'Concatenate scripts', page_optimize_get_text_domain() ); ?>
36 </label>
37 <br>
38 <label for="page_optimize-js-exclude">
39 <?php _e( 'Comma separated list of strings to exclude from JS concatenating:', page_optimize_get_text_domain() ); ?>
40 </label>
41 <br>
42 <input type="text"
43 id="page_optimize-js-exclude"
44 name="page_optimize-js-exclude"
45 value="<?php echo esc_html( get_option( 'page_optimize-js-exclude' ) ); ?>"
46 class="regular-text ltr">
47 </fieldset>
48 <?php
49 }
50
51 function page_optimize_settings_field_js_load_mode( $args ) {
52 ?>
53 <fieldset>
54 <label>
55 <input type="radio" name="page_optimize-load-mode" value="" <?php checked( '', get_option( 'page_optimize-load-mode' ), true ); ?>>
56 <?php _e( 'None', page_optimize_get_text_domain() ); ?>
57 </label>
58 <label>
59 <input type="radio" name="page_optimize-load-mode" value="async" <?php checked( 'async', get_option( 'page_optimize-load-mode' ), true ); ?>>
60 <?php _e( 'Async', page_optimize_get_text_domain() ); ?>
61 </label>
62 <label>
63 <input type="radio" name="page_optimize-load-mode" value="defer" <?php checked( 'defer', get_option( 'page_optimize-load-mode' ), true ); ?>>
64 <?php _e( 'Defer', page_optimize_get_text_domain() ); ?>
65 </label>
66
67 <p class="description">
68 <?php _e( 'You can choose the execution mode of the concatenated JavaScript. <strong>This option might break your site, so use carefully.</strong>', page_optimize_get_text_domain() ); ?>
69 </p>
70 </fieldset>
71 <?php
72 }
73
74 function page_optimize_settings_field_css( $args ) {
75 ?>
76 <fieldset>
77 <label>
78 <input type="checkbox" id="page_optimize-css" name="page_optimize-css" value="1" <?php checked( get_option( 'page_optimize-css' ) ); ?>>
79 <?php _e( 'Concatenate styles', page_optimize_get_text_domain() ); ?>
80 </label>
81 <br>
82 <label for="page_optimize-css-exclude">
83 <?php _e( 'Comma separated list of strings to exclude from CSS concatenating:', page_optimize_get_text_domain() ); ?>
84 </label>
85 <br>
86 <input type="text"
87 id="page_optimize-css-exclude"
88 name="page_optimize-css-exclude"
89 value="<?php echo esc_html( get_option( 'page_optimize-css-exclude' ) ); ?>"
90 class="regular-text ltr">
91 </fieldset>
92 <?php
93 }
94
95 function page_optimize_settings_add_menu() {
96 add_options_page(
97 __( 'Performance Settings', page_optimize_get_text_domain() ),
98 __( 'Performance', page_optimize_get_text_domain() ),
99 'manage_options',
100 'page-optimize',
101 'page_optimize_settings_page'
102 );
103 }
104
105 add_action( 'admin_menu', 'page_optimize_settings_add_menu' );
106
107 function page_optimize_settings_init() {
108 register_setting(
109 'performance',
110 'page_optimize-js',
111 array(
112 'description' => __( 'JavaScript concatenation', page_optimize_get_text_domain() ),
113 'type' => 'boolean',
114 'default' => page_optimize_js_default(),
115 )
116 );
117 register_setting(
118 'performance',
119 'page_optimize-load-mode',
120 array(
121 'description' => __( 'Non-critical script execution mode', page_optimize_get_text_domain() ),
122 'type' => 'string',
123 'default' => page_optimize_js_load_mode_default(),
124 'sanitize_callback' => 'page_optimize_sanitize_js_load_mode',
125 )
126 );
127 register_setting(
128 'performance',
129 'page_optimize-js-exclude',
130 array(
131 'description' => __( 'Comma separated list of strings to exclude from JS concatenating', page_optimize_get_text_domain() ),
132 'type' => 'string',
133 'default' => implode( ',', page_optimize_js_exclude_list_default() ),
134 'sanitize_callback' => 'page_optimize_sanitize_exclude_field',
135 )
136 );
137 register_setting(
138 'performance',
139 'page_optimize-css',
140 array(
141 'description' => __( 'CSS concatenation', page_optimize_get_text_domain() ),
142 'type' => 'boolean',
143 'default' => page_optimize_css_default(),
144 )
145 );
146 register_setting(
147 'performance',
148 'page_optimize-css-exclude',
149 array(
150 'description' => __( 'Comma separated list of strings to exclude from CSS concating', page_optimize_get_text_domain() ),
151 'type' => 'string',
152 'default' => implode( ',', page_optimize_css_exclude_list_default() ),
153 'sanitize_callback' => 'page_optimize_sanitize_exclude_field',
154 )
155 );
156
157 add_settings_section(
158 'page_optimize_settings_section',
159 __( 'Page Optimization', page_optimize_get_text_domain() ),
160 'page_optimize_settings_section',
161 'page-optimize'
162 );
163 add_settings_field(
164 'page_optimize_js',
165 __( 'JavaScript', page_optimize_get_text_domain() ),
166 'page_optimize_settings_field_js',
167 'page-optimize',
168 'page_optimize_settings_section'
169 );
170 add_settings_field(
171 'page_optimize_js_load_mode',
172 __( 'Non-critical script execution mode (experimental)', page_optimize_get_text_domain() ),
173 'page_optimize_settings_field_js_load_mode',
174 'page-optimize',
175 'page_optimize_settings_section'
176 );
177 add_settings_field(
178 'page_optimize_css',
179 __( 'CSS', page_optimize_get_text_domain() ),
180 'page_optimize_settings_field_css',
181 'page-optimize',
182 'page_optimize_settings_section'
183 );
184 }
185
186 add_action( 'admin_init', 'page_optimize_settings_init' );
187
188 function page_optimize_add_plugin_settings_link( $plugin_action_links, $plugin_file = null ) {
189 if ( ! ( 'page-optimize/page-optimize.php' === $plugin_file && current_user_can( 'manage_options' ) ) ) {
190 return $plugin_action_links;
191 }
192
193 $settings_link = sprintf(
194 '<a href="options-general.php?page=page-optimize">%s</a>',
195 __( 'Settings', page_optimize_get_text_domain() )
196 );
197 array_unshift( $plugin_action_links, $settings_link );
198
199 return $plugin_action_links;
200 }
201
202 add_filter( 'plugin_action_links', 'page_optimize_add_plugin_settings_link', 10, 2 );
203