PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 3.6.1
Admin and Site Enhancements (ASE) v3.6.1
9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 8.3.2 8.4.0 8.4.1 8.4.2 8.5.0 8.5.1 8.5.2 8.6.0 8.6.1 8.6.2 8.7.0 5.0.1 5.0.2 5.0.2.1 5.0.2.2 5.0.2.3 5.0.2.4 5.1.0 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.8.0 5.8.1 6.0.0 6.0.3 6.0.4 6.0.5 6.0.5.1 6.0.6 6.0.7 6.0.8.1 6.1.0 6.1.3 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.3.0 6.3.1 6.3.2 6.4.0 6.5.0 6.5.1 6.6.0 6.7.0 6.8.0 6.8.2 6.8.3 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13.1 6.9.13.2 6.9.2 6.9.3 6.9.4 6.9.5 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.2 7.0.2.1 7.0.2.2 7.0.2.3 7.0.3 7.1.0 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2.0 7.2.1 7.3.0 7.3.1 7.3.2 7.3.3 7.4.0 7.4.2 7.4.4 7.4.5 7.4.6 7.4.7 7.4.8 7.5.0 7.5.1 7.5.2 7.5.3 7.5.4 7.6.0 7.6.1 7.6.1.1 7.6.10 7.6.11 7.6.2 7.6.3 7.6.4 7.6.5 7.6.6 7.6.7 7.6.7.1 7.6.8 7.6.9 7.7.0 7.8.0 7.8.1 7.8.10 7.8.11 7.8.12 7.8.13 7.8.14 7.8.15 7.8.16 7.8.17 7.8.18 7.8.2 7.8.3 7.8.4 7.8.5 7.8.5.1 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1 7.9.10 7.9.11 7.9.2 7.9.3 7.9.4 7.9.5 7.9.6 7.9.7 7.9.8 7.9.9 8.0.0 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.0.6 8.0.7 8.0.8 8.1.0 8.1.1 8.1.2 8.1.3 8.1.4 8.2.0 trunk 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 2.0.0 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.2.0 3.3.0 3.4.0 3.5.0 3.6.1 3.7.0 3.8.0 3.9.0 3.9.1 3.9.2 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.9.0 4.9.1 4.9.2 4.9.3 5.0.0
admin-site-enhancements / settings.php
admin-site-enhancements Last commit date
assets 3 years ago classes 3 years ago vendor 3 years ago LICENSE.md 3 years ago README.md 3 years ago admin-site-enhancements.php 3 years ago bootstrap.php 3 years ago settings.php 3 years ago
settings.php
330 lines
1 <?php
2
3 /**
4 * Register admin menu
5 *
6 * @since 1.0.0
7 */
8 function asenha_register_admin_menu() {
9
10 add_submenu_page(
11 'tools.php', // Parent page/menu
12 'Admin and Site Enhancements', // Browser tab/window title
13 'Enhancements', // Sube menu title
14 'manage_options', // Minimal user capabililty
15 ASENHA_SLUG, // Page slug. Shows up in URL.
16 'asenha_add_settings_page'
17 );
18
19 }
20
21 /**
22 * Create the settings page of the plugin
23 *
24 * @since 1.0.0
25 */
26 function asenha_add_settings_page() {
27 ?>
28 <div class="wrap asenha">
29
30 <div id="asenha-header" class="asenha-header">
31 <div class="asenha-header-left">
32 <h1 class="asenha-heading"><?php echo get_admin_page_title(); ?> <small><?php esc_html_e( 'by', 'admin-site-enhancements' ); ?> <a href="https://bowo.io" target="_blank">bowo.io</a></small></h1>
33 <!-- <a href="https://wordpress.org/plugins/admin-site-enhancements/" target="_blank" class="asenha-header-action"><span>&#8505;</span> <?php // esc_html_e( 'Info', 'admin-site-enhancements' ); ?></a> -->
34 <a href="https://wordpress.org/plugins/admin-site-enhancements/#reviews" target="_blank" class="asenha-header-action"><span>&starf;</span> <?php esc_html_e( 'Review', 'admin-site-enhancements' ); ?></a>
35 <a href="https://wordpress.org/support/plugin/admin-site-enhancements/" target="_blank" class="asenha-header-action">&#10010; <?php esc_html_e( 'Feedback', 'admin-site-enhancements' ); ?></a>
36 <a href="https://paypal.me/qriouslad" target="_blank" class="asenha-header-action">&#9829; <?php esc_html_e( 'Donate', 'admin-site-enhancements' ); ?></a>
37 </div>
38 <div class="asenha-header-right">
39 <a class="button button-primary asenha-save-button">Save Changes</a>
40 <div class="asenha-changes-saved" style="display:none;">Changes have been saved.</div>
41 </div>
42 </div>
43
44 <div class="asenha-body">
45 <form action="options.php" method="post">
46 <div class="asenha-vertical-tabs">
47 <div class="asenha-tab-buttons">
48 <input id="tab-content-management" type="radio" name="tabs" checked><label for="tab-content-management">Content Management</label>
49 <input id="tab-admin-interface" type="radio" name="tabs"><label for="tab-admin-interface">Admin Interface</label>
50 <input id="tab-login-logout" type="radio" name="tabs"><label for="tab-login-logout">Log In | Log Out</label>
51 <input id="tab-custom-code" type="radio" name="tabs"><label for="tab-custom-code">Custom Code</label>
52 <input id="tab-disable-components" type="radio" name="tabs"><label for="tab-disable-components">Disable Components</label>
53 <input id="tab-security" type="radio" name="tabs"><label for="tab-security">Security</label>
54 <input id="tab-utilities" type="radio" name="tabs"><label for="tab-utilities">Utilities</label>
55 </div>
56 <div class="asenha-tab-contents">
57 <section class="asenha-fields fields-content-management">
58 <table class="form-table" role="presentation">
59 <tbody></tbody>
60 </table>
61 </section>
62 <section class="asenha-fields fields-admin-interface">
63 <table class="form-table" role="presentation">
64 <tbody></tbody>
65 </table>
66 </section>
67 <section class="asenha-fields fields-login-logout">
68 <table class="form-table" role="presentation">
69 <tbody></tbody>
70 </table>
71 </section>
72 <section class="asenha-fields fields-custom-code">
73 <table class="form-table" role="presentation">
74 <tbody></tbody>
75 </table>
76 </section>
77 <section class="asenha-fields fields-disable-components">
78 <table class="form-table" role="presentation">
79 <tbody></tbody>
80 </table>
81 </section>
82 <section class="asenha-fields fields-security">
83 <table class="form-table" role="presentation">
84 <tbody></tbody>
85 </table>
86 </section>
87 <section class="asenha-fields fields-utilities">
88 <table class="form-table" role="presentation">
89 <tbody></tbody>
90 </table>
91 </section>
92 </div>
93 </div>
94 <div style="display:none;"><!-- Hide to prevent flash of fields appearing at the bottom of the page -->
95 <?php settings_fields( ASENHA_ID ); ?>
96 <?php do_settings_sections( ASENHA_SLUG ); ?>
97 <?php submit_button(
98 'Save Changes', // Button copy
99 'primary', // Type: 'primary', 'small', or 'large'
100 'submit', // The 'name' attribute
101 true, // Whether to wrap in <p> tag
102 array( 'id' => 'asenha-submit' ), // additional attributes
103 ); ?>
104 </div>
105 </form>
106 </div>
107
108 <div class="asenha-footer">
109 </div>
110
111 </div>
112 <?php
113
114 }
115
116 /**
117 * Suppress all notices, then add notice for successful settings update
118 *
119 * @since 1.1.0
120 */
121 function asenha_suppress_notices() {
122
123 global $plugin_page;
124
125 // Suppress all notices
126
127 if ( ASENHA_SLUG === $plugin_page ) {
128
129 remove_all_actions( 'admin_notices' );
130
131 }
132
133 // Add notice for successful settings update
134
135 if (
136 isset( $_GET[ 'page' ] )
137 && ASENHA_SLUG == $_GET[ 'page' ]
138 && isset( $_GET[ 'settings-updated' ] )
139 && true == $_GET[ 'settings-updated' ]
140 ) {
141 ?>
142 <script>
143 jQuery(document).ready( function() {
144 jQuery('.asenha-changes-saved').fadeIn(400).delay(2500).fadeOut(400);
145 });
146 </script>
147
148 <?php
149 }
150 }
151
152 /**
153 * Suppress all generic notices on the plugin settings page
154 *
155 * @since 2.7.0
156 */
157 function asenha_suppress_generic_notices() {
158
159 global $plugin_page;
160
161 // Suppress all notices
162
163 if ( ASENHA_SLUG === $plugin_page ) {
164
165 remove_all_actions( 'all_admin_notices' );
166
167 }
168
169 }
170
171 /**
172 * Enqueue admin scripts
173 *
174 * @since 1.0.0
175 */
176 function asenha_admin_scripts( $hook_suffix ) {
177
178 global $wp_version;
179
180 $current_screen = get_current_screen();
181
182 // Get all WP Enhancements options, default to empty array in case it's not been created yet
183 $options = get_option( 'admin_site_enhancements', array() );
184
185 // For main page of this plugin
186
187 if ( is_asenha() ) {
188 wp_enqueue_style( 'asenha-jbox', ASENHA_URL . 'assets/css/jBox.all.min.css', array(), ASENHA_VERSION );
189 wp_enqueue_script( 'asenha-jbox', ASENHA_URL . 'assets/js/jBox.all.min.js', array(), ASENHA_VERSION, false );
190 wp_enqueue_script( 'asenha-jsticky', ASENHA_URL . 'assets/js/jquery.jsticky.mod.min.js', array( 'jquery' ), ASENHA_VERSION, false );
191 wp_enqueue_script( 'asenha-js-cookie', ASENHA_URL . 'assets/js/js.cookie.min.js', array(), ASENHA_VERSION, false );
192
193 // jQuery UI Sortables. In use, e.g. for Admin Interface >> Admin Menu Organizer
194 // Re-register and re-enqueue jQuery UI Core and plugins required for sortable, draggable and droppable when ordering menu items
195 wp_deregister_script( 'jquery-ui-core' );
196 wp_register_script( 'jquery-ui-core', get_site_url() . '/wp-includes/js/jquery/ui/core.min.js', array( 'jquery' ), ASENHA_VERSION, false );
197 wp_enqueue_script( 'jquery-ui-core' );
198
199 if ( version_compare( $wp_version, '5.6.0', '>=' ) ) {
200
201 wp_deregister_script( 'jquery-ui-mouse' );
202 wp_register_script( 'jquery-ui-mouse', get_site_url() . '/wp-includes/js/jquery/ui/mouse.min.js', array( 'jquery-ui-core' ), ASENHA_VERSION, false );
203 wp_enqueue_script( 'jquery-ui-mouse' );
204
205 } else {
206
207 wp_deregister_script( 'jquery-ui-widget' );
208 wp_register_script( 'jquery-ui-widget', get_site_url() . '/wp-includes/js/jquery/ui/widget.min.js', array( 'jquery' ), ASENHA_VERSION, false );
209 wp_enqueue_script( 'jquery-ui-widget' );
210
211 wp_deregister_script( 'jquery-ui-mouse' );
212 wp_register_script( 'jquery-ui-mouse', get_site_url() . '/wp-includes/js/jquery/ui/mouse.min.js', array( 'jquery-ui-core', 'jquery-ui-widget' ), ASENHA_VERSION, false );
213 wp_enqueue_script( 'jquery-ui-mouse' );
214
215 }
216
217 wp_deregister_script( 'jquery-ui-sortable' );
218 wp_register_script( 'jquery-ui-sortable', get_site_url() . '/wp-includes/js/jquery/ui/sortable.min.js', array( 'jquery-ui-mouse' ), ASENHA_VERSION, false );
219 wp_enqueue_script( 'jquery-ui-sortable' );
220
221 wp_deregister_script( 'jquery-ui-draggable' );
222 wp_register_script( 'jquery-ui-draggable', get_site_url() . '/wp-includes/js/jquery/ui/draggable.min.js', array( 'jquery-ui-mouse' ), ASENHA_VERSION, false );
223 wp_enqueue_script( 'jquery-ui-draggable' );
224
225 wp_deregister_script( 'jquery-ui-droppable' );
226 wp_register_script( 'jquery-ui-droppable', get_site_url() . '/wp-includes/js/jquery/ui/droppable.min.js', array( 'jquery-ui-draggable' ), ASENHA_VERSION, false );
227 wp_enqueue_script( 'jquery-ui-droppable' );
228
229 // Script to set behaviour and actions of the sortable menu
230 wp_enqueue_script( 'asenha-custom-admin-menu', ASENHA_URL . 'assets/js/custom-admin-menu.js', array( 'jquery-ui-draggable' ), ASENHA_VERSION, false );
231
232 // CodeMirror. In use, e.g. for Utilities >> Enable Custom Admin / Frontend CSS / ads.txt / app-ads.txt
233 wp_enqueue_style( 'asenha-codemirror', ASENHA_URL . 'assets/css/codemirror/codemirror.min.css', array(), ASENHA_VERSION );
234 wp_enqueue_script( 'asenha-codemirror', ASENHA_URL . 'assets/js/codemirror/codemirror.min.js', array(), ASENHA_VERSION, true );
235 wp_enqueue_script( 'asenha-codemirror-htmlmixed-mode', ASENHA_URL . 'assets/js/codemirror/htmlmixed.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true );
236 wp_enqueue_script( 'asenha-codemirror-xml-mode', ASENHA_URL . 'assets/js/codemirror/xml.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true );
237 wp_enqueue_script( 'asenha-codemirror-javascript-mode', ASENHA_URL . 'assets/js/codemirror/javascript.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true );
238 wp_enqueue_script( 'asenha-codemirror-css-mode', ASENHA_URL . 'assets/js/codemirror/css.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true );
239 wp_enqueue_script( 'asenha-codemirror-markdown-mode', ASENHA_URL . 'assets/js/codemirror/markdown.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true );
240
241 // DataTables. In use, e.g. for Security >> Limit Login Attempts
242 wp_enqueue_style( 'asenha-datatables', ASENHA_URL . 'assets/css/datatables/datatables.min.css', array(), ASENHA_VERSION );
243 wp_enqueue_script( 'asenha-datatables', ASENHA_URL . 'assets/js/datatables/datatables.min.js', array( 'jquery' ), ASENHA_VERSION, false );
244
245 // Main style and script for the admin page
246 wp_enqueue_style( 'asenha-admin-page', ASENHA_URL . 'assets/css/admin-page.css', array( 'asenha-jbox', 'asenha-codemirror', 'asenha-datatables' ), ASENHA_VERSION );
247 wp_enqueue_script( 'asenha-admin-page', ASENHA_URL . 'assets/js/admin-page.js', array( 'asenha-jsticky', 'asenha-jbox', 'asenha-js-cookie', 'asenha-codemirror-htmlmixed-mode', 'asenha-codemirror-xml-mode', 'asenha-codemirror-javascript-mode', 'asenha-codemirror-css-mode', 'asenha-codemirror-markdown-mode', 'asenha-datatables', 'asenha-custom-admin-menu' ), ASENHA_VERSION, false );
248 }
249
250 // Enqueue on all wp-admin
251
252 wp_enqueue_style( 'asenha-wp-admin', ASENHA_URL . 'assets/css/wp-admin.css', array(), ASENHA_VERSION );
253
254 // Content Management >> Show IDs, for list tables in wp-admin, e.g. All Posts page
255
256 if ( ( false !== strpos( $current_screen->base, 'edit' ) ) // List tables for pages, posts, taxonomies
257 || ( false !== strpos( $current_screen->base, 'users' ) ) // Users list table
258 || ( false !== strpos( $current_screen->base, 'upload' ) ) // Media list table
259 ) {
260 wp_enqueue_style( 'asenha-list-table', ASENHA_URL . 'assets/css/list-table.css', array(), ASENHA_VERSION );
261 }
262
263 // Content Management >> Enable Media Replacement
264
265 if ( ( $current_screen->base == 'upload' ) // Media list table
266 || ( $current_screen->id == 'attachment' ) // Media edit page
267 ) {
268 // wp_enqueue_style( 'asenha-jbox', ASENHA_URL . 'assets/css/jBox.all.min.css', array(), ASENHA_VERSION );
269 // wp_enqueue_script( 'asenha-jbox', ASENHA_URL . 'assets/js/jBox.all.min.js', array(), ASENHA_VERSION, false );
270 wp_enqueue_style( 'asenha-media-replace', ASENHA_URL . 'assets/css/media-replace.css', array(), ASENHA_VERSION );
271 wp_enqueue_script( 'asenha-media-replace', ASENHA_URL . 'assets/js/media-replace.js', array(), ASENHA_VERSION, false );
272 }
273
274 // Content Management >> Hide Admin Notices
275 if ( array_key_exists( 'hide_admin_notices', $options ) && $options['hide_admin_notices'] ) {
276 wp_enqueue_style( 'asenha-jbox', ASENHA_URL . 'assets/css/jBox.all.min.css', array(), ASENHA_VERSION );
277 wp_enqueue_script( 'asenha-jbox', ASENHA_URL . 'assets/js/jBox.all.min.js', array(), ASENHA_VERSION, false );
278 wp_enqueue_style( 'asenha-hide-admin-notices', ASENHA_URL . 'assets/css/hide-admin-notices.css', array(), ASENHA_VERSION );
279 wp_enqueue_script( 'asenha-hide-admin-notices', ASENHA_URL . 'assets/js/hide-admin-notices.js', array( 'asenha-jbox' ), ASENHA_VERSION, false );
280 }
281
282 }
283
284 /**
285 * Add 'Access now' plugin action link.
286 *
287 * @since 1.0.0
288 */
289
290 function asenha_plugin_action_links( $links ) {
291
292 $settings_link = '<a href="tools.php?page=' . ASENHA_SLUG . '">Configure now</a>';
293
294 array_unshift($links, $settings_link);
295
296 return $links;
297
298 }
299
300 /**
301 * Modify footer text
302 *
303 * @since 1.0.0
304 */
305 function asenha_footer_text() {
306
307 if ( is_asenha() ) {
308 ?>
309 <a href="https://wordpress.org/plugins/admin-site-enhancements/" target="_blank">Admin Site Enhancements</a> is on <a href="https://github.com/qriouslad/admin-site-enhancements" target="_blank">github</a>.
310 <?php
311 }
312
313 }
314
315 /**
316 * Check if current screen is this plugin's main page
317 *
318 * @since 1.0.0
319 */
320 function is_asenha() {
321
322 $request_uri = sanitize_text_field( $_SERVER['REQUEST_URI'] ); // e.g. /wp-admin/index.php?page=page-slug
323
324 if ( strpos( $request_uri, 'page=' . ASENHA_SLUG ) !== false ) {
325 return true; // Yes, this is the plugin's main page
326 } else {
327 return false; // Nope, this is NOT the plugin's page
328 }
329
330 }