PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 3.3.0
Admin and Site Enhancements (ASE) v3.3.0
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
318 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-disable-components" type="radio" name="tabs"><label for="tab-disable-components">Disable Components</label>
51 <input id="tab-security" type="radio" name="tabs"><label for="tab-security">Security</label>
52 <input id="tab-utilities" type="radio" name="tabs"><label for="tab-utilities">Utilities</label>
53 </div>
54 <div class="asenha-tab-contents">
55 <section class="asenha-fields fields-content-management">
56 <table class="form-table" role="presentation">
57 <tbody></tbody>
58 </table>
59 </section>
60 <section class="asenha-fields fields-admin-interface">
61 <table class="form-table" role="presentation">
62 <tbody></tbody>
63 </table>
64 </section>
65 <section class="asenha-fields fields-disable-components">
66 <table class="form-table" role="presentation">
67 <tbody></tbody>
68 </table>
69 </section>
70 <section class="asenha-fields fields-security">
71 <table class="form-table" role="presentation">
72 <tbody></tbody>
73 </table>
74 </section>
75 <section class="asenha-fields fields-utilities">
76 <table class="form-table" role="presentation">
77 <tbody></tbody>
78 </table>
79 </section>
80 </div>
81 </div>
82 <div style="display:none;"><!-- Hide to prevent flash of fields appearing at the bottom of the page -->
83 <?php settings_fields( ASENHA_ID ); ?>
84 <?php do_settings_sections( ASENHA_SLUG ); ?>
85 <?php submit_button(
86 'Save Changes', // Button copy
87 'primary', // Type: 'primary', 'small', or 'large'
88 'submit', // The 'name' attribute
89 true, // Whether to wrap in <p> tag
90 array( 'id' => 'asenha-submit' ), // additional attributes
91 ); ?>
92 </div>
93 </form>
94 </div>
95
96 <div class="asenha-footer">
97 </div>
98
99 </div>
100 <?php
101
102 }
103
104 /**
105 * Suppress all notices, then add notice for successful settings update
106 *
107 * @since 1.1.0
108 */
109 function asenha_suppress_notices() {
110
111 global $plugin_page;
112
113 // Suppress all notices
114
115 if ( ASENHA_SLUG === $plugin_page ) {
116
117 remove_all_actions( 'admin_notices' );
118
119 }
120
121 // Add notice for successful settings update
122
123 if (
124 isset( $_GET[ 'page' ] )
125 && ASENHA_SLUG == $_GET[ 'page' ]
126 && isset( $_GET[ 'settings-updated' ] )
127 && true == $_GET[ 'settings-updated' ]
128 ) {
129 ?>
130 <script>
131 jQuery(document).ready( function() {
132 jQuery('.asenha-changes-saved').fadeIn(400).delay(2500).fadeOut(400);
133 });
134 </script>
135
136 <?php
137 }
138 }
139
140 /**
141 * Suppress all generic notices on the plugin settings page
142 *
143 * @since 2.7.0
144 */
145 function asenha_suppress_generic_notices() {
146
147 global $plugin_page;
148
149 // Suppress all notices
150
151 if ( ASENHA_SLUG === $plugin_page ) {
152
153 remove_all_actions( 'all_admin_notices' );
154
155 }
156
157 }
158
159 /**
160 * Enqueue admin scripts
161 *
162 * @since 1.0.0
163 */
164 function asenha_admin_scripts( $hook_suffix ) {
165
166 global $wp_version;
167
168 $current_screen = get_current_screen();
169
170 // Get all WP Enhancements options, default to empty array in case it's not been created yet
171 $options = get_option( 'admin_site_enhancements', array() );
172
173 // For main page of this plugin
174
175 if ( is_asenha() ) {
176 wp_enqueue_style( 'asenha-jbox', ASENHA_URL . 'assets/css/jBox.all.min.css', array(), ASENHA_VERSION );
177 wp_enqueue_script( 'asenha-jbox', ASENHA_URL . 'assets/js/jBox.all.min.js', array(), ASENHA_VERSION, false );
178 wp_enqueue_script( 'asenha-jsticky', ASENHA_URL . 'assets/js/jquery.jsticky.mod.min.js', array( 'jquery' ), ASENHA_VERSION, false );
179 wp_enqueue_script( 'asenha-js-cookie', ASENHA_URL . 'assets/js/js.cookie.min.js', array(), ASENHA_VERSION, false );
180
181 // jQuery UI Sortables. In use, e.g. for Admin Interface >> Admin Menu Organizer
182 // Re-register and re-enqueue jQuery UI Core and plugins required for sortable, draggable and droppable when ordering menu items
183 wp_deregister_script( 'jquery-ui-core' );
184 wp_register_script( 'jquery-ui-core', get_site_url() . '/wp-includes/js/jquery/ui/core.min.js', array( 'jquery' ), ASENHA_VERSION, false );
185 wp_enqueue_script( 'jquery-ui-core' );
186
187 if ( version_compare( $wp_version, '5.6.0', '>=' ) ) {
188
189 wp_deregister_script( 'jquery-ui-mouse' );
190 wp_register_script( 'jquery-ui-mouse', get_site_url() . '/wp-includes/js/jquery/ui/mouse.min.js', array( 'jquery-ui-core' ), ASENHA_VERSION, false );
191 wp_enqueue_script( 'jquery-ui-mouse' );
192
193 } else {
194
195 wp_deregister_script( 'jquery-ui-widget' );
196 wp_register_script( 'jquery-ui-widget', get_site_url() . '/wp-includes/js/jquery/ui/widget.min.js', array( 'jquery' ), ASENHA_VERSION, false );
197 wp_enqueue_script( 'jquery-ui-widget' );
198
199 wp_deregister_script( 'jquery-ui-mouse' );
200 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 );
201 wp_enqueue_script( 'jquery-ui-mouse' );
202
203 }
204
205 wp_deregister_script( 'jquery-ui-sortable' );
206 wp_register_script( 'jquery-ui-sortable', get_site_url() . '/wp-includes/js/jquery/ui/sortable.min.js', array( 'jquery-ui-mouse' ), ASENHA_VERSION, false );
207 wp_enqueue_script( 'jquery-ui-sortable' );
208
209 wp_deregister_script( 'jquery-ui-draggable' );
210 wp_register_script( 'jquery-ui-draggable', get_site_url() . '/wp-includes/js/jquery/ui/draggable.min.js', array( 'jquery-ui-mouse' ), ASENHA_VERSION, false );
211 wp_enqueue_script( 'jquery-ui-draggable' );
212
213 wp_deregister_script( 'jquery-ui-droppable' );
214 wp_register_script( 'jquery-ui-droppable', get_site_url() . '/wp-includes/js/jquery/ui/droppable.min.js', array( 'jquery-ui-draggable' ), ASENHA_VERSION, false );
215 wp_enqueue_script( 'jquery-ui-droppable' );
216
217 // Script to set behaviour and actions of the sortable menu
218 wp_enqueue_script( 'asenha-custom-admin-menu', ASENHA_URL . 'assets/js/custom-admin-menu.js', array( 'jquery-ui-draggable' ), ASENHA_VERSION, false );
219
220 // CodeMirror. In use, e.g. for Utilities >> Enable Custom Admin / Frontend CSS / ads.txt / app-ads.txt
221 wp_enqueue_style( 'asenha-codemirror', ASENHA_URL . 'assets/css/codemirror/codemirror.min.css', array(), ASENHA_VERSION );
222 wp_enqueue_script( 'asenha-codemirror', ASENHA_URL . 'assets/js/codemirror/codemirror.min.js', array(), ASENHA_VERSION, true );
223 wp_enqueue_script( 'asenha-codemirror-htmlmixed-mode', ASENHA_URL . 'assets/js/codemirror/htmlmixed.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true );
224 wp_enqueue_script( 'asenha-codemirror-xml-mode', ASENHA_URL . 'assets/js/codemirror/xml.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true );
225 wp_enqueue_script( 'asenha-codemirror-javascript-mode', ASENHA_URL . 'assets/js/codemirror/javascript.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true );
226 wp_enqueue_script( 'asenha-codemirror-css-mode', ASENHA_URL . 'assets/js/codemirror/css.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true );
227 wp_enqueue_script( 'asenha-codemirror-markdown-mode', ASENHA_URL . 'assets/js/codemirror/markdown.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true );
228
229 // DataTables. In use, e.g. for Security >> Limit Login Attempts
230 wp_enqueue_style( 'asenha-datatables', ASENHA_URL . 'assets/css/datatables/datatables.min.css', array(), ASENHA_VERSION );
231 wp_enqueue_script( 'asenha-datatables', ASENHA_URL . 'assets/js/datatables/datatables.min.js', array( 'jquery' ), ASENHA_VERSION, false );
232
233 // Main style and script for the admin page
234 wp_enqueue_style( 'asenha-admin-page', ASENHA_URL . 'assets/css/admin-page.css', array( 'asenha-jbox', 'asenha-codemirror', 'asenha-datatables' ), ASENHA_VERSION );
235 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 );
236 }
237
238 // Enqueue on all wp-admin
239
240 wp_enqueue_style( 'asenha-wp-admin', ASENHA_URL . 'assets/css/wp-admin.css', array(), ASENHA_VERSION );
241
242 // Content Management >> Show IDs, for list tables in wp-admin, e.g. All Posts page
243
244 if ( ( false !== strpos( $current_screen->base, 'edit' ) ) // List tables for pages, posts, taxonomies
245 || ( false !== strpos( $current_screen->base, 'users' ) ) // Users list table
246 || ( false !== strpos( $current_screen->base, 'upload' ) ) // Media list table
247 ) {
248 wp_enqueue_style( 'asenha-list-table', ASENHA_URL . 'assets/css/list-table.css', array(), ASENHA_VERSION );
249 }
250
251 // Content Management >> Enable Media Replacement
252
253 if ( ( $current_screen->base == 'upload' ) // Media list table
254 || ( $current_screen->id == 'attachment' ) // Media edit page
255 ) {
256 // wp_enqueue_style( 'asenha-jbox', ASENHA_URL . 'assets/css/jBox.all.min.css', array(), ASENHA_VERSION );
257 // wp_enqueue_script( 'asenha-jbox', ASENHA_URL . 'assets/js/jBox.all.min.js', array(), ASENHA_VERSION, false );
258 wp_enqueue_style( 'asenha-media-replace', ASENHA_URL . 'assets/css/media-replace.css', array(), ASENHA_VERSION );
259 wp_enqueue_script( 'asenha-media-replace', ASENHA_URL . 'assets/js/media-replace.js', array(), ASENHA_VERSION, false );
260 }
261
262 // Content Management >> Hide Admin Notices
263 if ( array_key_exists( 'hide_admin_notices', $options ) && $options['hide_admin_notices'] ) {
264 wp_enqueue_style( 'asenha-jbox', ASENHA_URL . 'assets/css/jBox.all.min.css', array(), ASENHA_VERSION );
265 wp_enqueue_script( 'asenha-jbox', ASENHA_URL . 'assets/js/jBox.all.min.js', array(), ASENHA_VERSION, false );
266 wp_enqueue_style( 'asenha-hide-admin-notices', ASENHA_URL . 'assets/css/hide-admin-notices.css', array(), ASENHA_VERSION );
267 wp_enqueue_script( 'asenha-hide-admin-notices', ASENHA_URL . 'assets/js/hide-admin-notices.js', array( 'asenha-jbox' ), ASENHA_VERSION, false );
268 }
269
270 }
271
272 /**
273 * Add 'Access now' plugin action link.
274 *
275 * @since 1.0.0
276 */
277
278 function asenha_plugin_action_links( $links ) {
279
280 $settings_link = '<a href="tools.php?page=' . ASENHA_SLUG . '">Configure now</a>';
281
282 array_unshift($links, $settings_link);
283
284 return $links;
285
286 }
287
288 /**
289 * Modify footer text
290 *
291 * @since 1.0.0
292 */
293 function asenha_footer_text() {
294
295 if ( is_asenha() ) {
296 ?>
297 <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>.
298 <?php
299 }
300
301 }
302
303 /**
304 * Check if current screen is this plugin's main page
305 *
306 * @since 1.0.0
307 */
308 function is_asenha() {
309
310 $request_uri = sanitize_text_field( $_SERVER['REQUEST_URI'] ); // e.g. /wp-admin/index.php?page=page-slug
311
312 if ( strpos( $request_uri, 'page=' . ASENHA_SLUG ) !== false ) {
313 return true; // Yes, this is the plugin's main page
314 } else {
315 return false; // Nope, this is NOT the plugin's page
316 }
317
318 }