PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 3.0.0
Admin and Site Enhancements (ASE) v3.0.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
298 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 $current_screen = get_current_screen();
167
168 // Get all WP Enhancements options, default to empty array in case it's not been created yet
169 $options = get_option( 'admin_site_enhancements', array() );
170
171 // For main page of this plugin
172
173 if ( is_asenha() ) {
174 wp_enqueue_style( 'asenha-jbox', ASENHA_URL . 'assets/css/jBox.all.min.css', array(), ASENHA_VERSION );
175 wp_enqueue_script( 'asenha-jbox', ASENHA_URL . 'assets/js/jBox.all.min.js', array(), ASENHA_VERSION, false );
176 wp_enqueue_script( 'asenha-jsticky', ASENHA_URL . 'assets/js/jquery.jsticky.mod.min.js', array( 'jquery' ), ASENHA_VERSION, false );
177 wp_enqueue_script( 'asenha-js-cookie', ASENHA_URL . 'assets/js/js.cookie.min.js', array(), ASENHA_VERSION, false );
178
179 // jQuery UI Sortables. In use, e.g. for Admin Interface >> Admin Menu Organizer
180 // Re-register and re-enqueue jQuery UI Core and plugins required for sortable, draggable and droppable when ordering menu items
181 wp_deregister_script( 'jquery-ui-core' );
182 wp_register_script( 'jquery-ui-core', get_site_url() . '/wp-includes/js/jquery/ui/core.js', array( 'jquery' ), ASENHA_VERSION, false );
183 wp_enqueue_script( 'jquery-ui-core' );
184
185 wp_deregister_script( 'jquery-ui-mouse' );
186 wp_register_script( 'jquery-ui-mouse', get_site_url() . '/wp-includes/js/jquery/ui/mouse.js', array( 'jquery-ui-core' ), ASENHA_VERSION, false );
187 wp_enqueue_script( 'jquery-ui-mouse' );
188
189 wp_deregister_script( 'jquery-ui-sortable' );
190 wp_register_script( 'jquery-ui-sortable', get_site_url() . '/wp-includes/js/jquery/ui/sortable.js', array( 'jquery-ui-mouse' ), ASENHA_VERSION, false );
191 wp_enqueue_script( 'jquery-ui-sortable' );
192
193 wp_deregister_script( 'jquery-ui-draggable' );
194 wp_register_script( 'jquery-ui-draggable', get_site_url() . '/wp-includes/js/jquery/ui/draggable.js', array( 'jquery-ui-mouse' ), ASENHA_VERSION, false );
195 wp_enqueue_script( 'jquery-ui-draggable' );
196
197 wp_deregister_script( 'jquery-ui-droppable' );
198 wp_register_script( 'jquery-ui-droppable', get_site_url() . '/wp-includes/js/jquery/ui/droppable.js', array( 'jquery-ui-draggable' ), ASENHA_VERSION, false );
199 wp_enqueue_script( 'jquery-ui-droppable' );
200
201 // Script to set behaviour and actions of the sortable menu
202 wp_enqueue_script( 'asenha-custom-admin-menu', ASENHA_URL . 'assets/js/custom-admin-menu.js', array( 'jquery-ui-draggable' ), ASENHA_VERSION, false );
203
204 // CodeMirror. In use, e.g. for Utilities >> Enable Custom Admin / Frontend CSS
205 wp_enqueue_style( 'asenha-codemirror', ASENHA_URL . 'assets/css/codemirror/codemirror.min.css', array(), ASENHA_VERSION );
206 wp_enqueue_script( 'asenha-codemirror', ASENHA_URL . 'assets/js/codemirror/codemirror.min.js', array(), ASENHA_VERSION, true );
207 wp_enqueue_script( 'asenha-codemirror-css-mode', ASENHA_URL . 'assets/js/codemirror/css.js', array( 'asenha-codemirror' ), ASENHA_VERSION, true ); // CSS mode
208
209 // DataTables. In use, e.g. for Security >> Limit Login Attempts
210 wp_enqueue_style( 'asenha-datatables', ASENHA_URL . 'assets/css/datatables/datatables.min.css', array(), ASENHA_VERSION );
211 wp_enqueue_script( 'asenha-datatables', ASENHA_URL . 'assets/js/datatables/datatables.min.js', array( 'jquery' ), ASENHA_VERSION, false );
212
213 // Main style and script for the admin page
214 wp_enqueue_style( 'asenha-admin-page', ASENHA_URL . 'assets/css/admin-page.css', array( 'asenha-jbox', 'asenha-codemirror', 'asenha-datatables' ), ASENHA_VERSION );
215 wp_enqueue_script( 'asenha-admin-page', ASENHA_URL . 'assets/js/admin-page.js', array( 'asenha-jsticky', 'asenha-jbox', 'asenha-js-cookie', 'asenha-codemirror-css-mode', 'asenha-datatables', 'asenha-custom-admin-menu' ), ASENHA_VERSION, false );
216 }
217
218 // Enqueue on all wp-admin
219
220 wp_enqueue_style( 'asenha-wp-admin', ASENHA_URL . 'assets/css/wp-admin.css', array(), ASENHA_VERSION );
221
222 // Content Management >> Show IDs, for list tables in wp-admin, e.g. All Posts page
223
224 if ( ( false !== strpos( $current_screen->base, 'edit' ) ) // List tables for pages, posts, taxonomies
225 || ( false !== strpos( $current_screen->base, 'users' ) ) // Users list table
226 || ( false !== strpos( $current_screen->base, 'upload' ) ) // Media list table
227 ) {
228 wp_enqueue_style( 'asenha-list-table', ASENHA_URL . 'assets/css/list-table.css', array(), ASENHA_VERSION );
229 }
230
231 // Content Management >> Enable Media Replacement
232
233 if ( ( $current_screen->base == 'upload' ) // Media list table
234 || ( $current_screen->id == 'attachment' ) // Media edit page
235 ) {
236 // wp_enqueue_style( 'asenha-jbox', ASENHA_URL . 'assets/css/jBox.all.min.css', array(), ASENHA_VERSION );
237 // wp_enqueue_script( 'asenha-jbox', ASENHA_URL . 'assets/js/jBox.all.min.js', array(), ASENHA_VERSION, false );
238 wp_enqueue_style( 'asenha-media-replace', ASENHA_URL . 'assets/css/media-replace.css', array(), ASENHA_VERSION );
239 wp_enqueue_script( 'asenha-media-replace', ASENHA_URL . 'assets/js/media-replace.js', array(), ASENHA_VERSION, false );
240 }
241
242 // Content Management >> Hide Admin Notices
243 if ( array_key_exists( 'hide_admin_notices', $options ) && $options['hide_admin_notices'] ) {
244 wp_enqueue_style( 'asenha-jbox', ASENHA_URL . 'assets/css/jBox.all.min.css', array(), ASENHA_VERSION );
245 wp_enqueue_script( 'asenha-jbox', ASENHA_URL . 'assets/js/jBox.all.min.js', array(), ASENHA_VERSION, false );
246 wp_enqueue_style( 'asenha-hide-admin-notices', ASENHA_URL . 'assets/css/hide-admin-notices.css', array(), ASENHA_VERSION );
247 wp_enqueue_script( 'asenha-hide-admin-notices', ASENHA_URL . 'assets/js/hide-admin-notices.js', array( 'asenha-jbox' ), ASENHA_VERSION, false );
248 }
249
250 }
251
252 /**
253 * Add 'Access now' plugin action link.
254 *
255 * @since 1.0.0
256 */
257
258 function asenha_plugin_action_links( $links ) {
259
260 $settings_link = '<a href="tools.php?page=' . ASENHA_SLUG . '">Configure now</a>';
261
262 array_unshift($links, $settings_link);
263
264 return $links;
265
266 }
267
268 /**
269 * Modify footer text
270 *
271 * @since 1.0.0
272 */
273 function asenha_footer_text() {
274
275 if ( is_asenha() ) {
276 ?>
277 <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>.
278 <?php
279 }
280
281 }
282
283 /**
284 * Check if current screen is this plugin's main page
285 *
286 * @since 1.0.0
287 */
288 function is_asenha() {
289
290 $request_uri = sanitize_text_field( $_SERVER['REQUEST_URI'] ); // e.g. /wp-admin/index.php?page=page-slug
291
292 if ( strpos( $request_uri, 'page=' . ASENHA_SLUG ) !== false ) {
293 return true; // Yes, this is the plugin's main page
294 } else {
295 return false; // Nope, this is NOT the plugin's page
296 }
297
298 }