Admin CSS MU function admincssmu_add_menu_links() { if ( is_multisite() ) { if ( get_current_blog_id() == SITE_ID_CURRENT_SITE ) { add_theme_page ( __('Admin CSS MU','abl_admincssmu_td'), __('Admin CSS MU','abl_admincssmu_td'), 'update_core', 'admin-css-mu','admincssmu_admin_interface_render' ); } } else { add_theme_page ( __('Admin CSS MU','abl_admincssmu_td'), __('Admin CSS MU','abl_admincssmu_td'), 'update_core', 'admin-css-mu','admincssmu_admin_interface_render' ); } } add_action( 'admin_menu', 'admincssmu_add_menu_links' ); // Print Direct Link To Admin CSS MU Options Page In Plugins List function admincssmu_settings_link( $links ) { return array_merge( array( 'settings' => '' . __( 'Add CSS', 'abl_admincssmu_td' ) . '' ), $links ); } add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), 'admincssmu_settings_link' ); // Add Links to Plugins list function admincssmu_plugin_row_meta( $links, $file ) { if ( strpos( $file, 'admincssmu.php' ) !== false ) { $new_links = array( 'donate' => 'Donate', 'hireme' => 'Hire Me For A Project', ); $links = array_merge( $links, $new_links ); } return $links; } add_filter( 'plugin_row_meta', 'admincssmu_plugin_row_meta', 10, 2 ); // Load Text Domain function admincssmu_load_plugin_textdomain() { load_plugin_textdomain( 'abl_admincssmu_td', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' ); } add_action( 'plugins_loaded', 'admincssmu_load_plugin_textdomain' ); // Register Settings function admincssmu_register_settings() { register_setting( 'admincssmu_settings_group', 'admincssmu_custom_css', 'admincssmu_clean_css_with_csstidy' ); } add_action( 'admin_init', 'admincssmu_register_settings' ); // Delete Options During Uninstall function admincssmu_uninstall_plugin() { delete_option( 'admincssmu_custom_css' ); } register_uninstall_hook(__FILE__, 'admincssmu_uninstall_plugin' ); /** * Admin footer text * * @since 2.3 */ function admincssmu_footer_text($default) { // Retun default on non-plugin pages $screen = get_current_screen(); if ( $screen->id !== "appearance_page_admin-css-mu" ) { return $default; } $admincssmu_footer_text = sprintf( __( 'If you like this plugin, please make a donation or leave a ★★★★★ rating to support continued development. Thanks a bunch!', 'abl_admincssmu_td' ), 'http://millionclues.com/donate/', 'https://wordpress.org/support/plugin/admin-css-mu/reviews/?rate=5#new-post' ); return $admincssmu_footer_text; } add_filter('admin_footer_text', 'admincssmu_footer_text'); /*--------------------------------------*/ /* Admin Options Page */ /*--------------------------------------*/ // Load Syntax Highlighter function admincssmu_register_highlighter( $hook ) { if ( 'appearance_page_admin-css-mu' === $hook ) { wp_enqueue_style( 'highlighter-css', plugins_url( basename( dirname( __FILE__ ) ) . '/highlighter/codemirror.css' ) ); wp_enqueue_script( 'highlighter-js', plugins_url( basename( dirname( __FILE__ ) ) . '/highlighter/codemirror.js' ), array(), '20140329', true ); wp_enqueue_script( 'highlighter-css-js', plugins_url( basename( dirname( __FILE__ ) ) . '/highlighter/css.js' ), array(), '20140329', true ); } } add_action( 'admin_enqueue_scripts', 'admincssmu_register_highlighter' ); // Sanitize CSS with CSS Tidy - Uses CSS Tidy Modified By The Jetpack Team. function admincssmu_clean_css_with_csstidy ( $input ) { $input['admincssmu_admin_css'] = admincssmu_csstidy_helper ( $input['admincssmu_admin_css'] ); return $input; } // Scrub And Clean With CSS Tidy function admincssmu_csstidy_helper ( $css, $minify=false ) { include_once('csstidy/class.csstidy.php'); $csstidy = new csstidy(); $csstidy->set_cfg( 'remove_bslash', false ); $csstidy->set_cfg( 'compress_colors', false ); $csstidy->set_cfg( 'compress_font-weight', false ); $csstidy->set_cfg( 'optimise_shorthands', 0 ); $csstidy->set_cfg( 'remove_last_;', false ); $csstidy->set_cfg( 'case_properties', false ); $csstidy->set_cfg( 'discard_invalid_properties', true ); $csstidy->set_cfg( 'css_level', 'CSS3.0' ); $csstidy->set_cfg( 'preserve_css', true ); if ($minify === false) { $csstidy->set_cfg( 'template', dirname( __FILE__ ) . '/csstidy/wordpress-standard.tpl' ); } else { $csstidy->set_cfg( 'template', 'highest'); } $css = preg_replace( '/\\\\([0-9a-fA-F]{4})/', '\\\\\\\\$1', $css ); $css = str_replace( '<=', '<=', $css ); $css = wp_kses_split( $css, array(), array() ); $css = str_replace( '>', '>', $css ); // kses replaces lone '>' with > $css = strip_tags( $css ); $csstidy->parse( $css ); $css = $csstidy->print->plain(); return $css; } // Admin Interface: Appearance > Admin CSS MU function admincssmu_admin_interface_render () { if ( is_multisite() ) { $admincssmu_custom_css_option = get_blog_option( get_current_blog_id(), 'admincssmu_custom_css' ); } else { $admincssmu_custom_css_option = get_option( 'admincssmu_custom_css' ); } $admincssmu_admin_css_content = isset( $admincssmu_custom_css_option['admincssmu_admin_css'] ) && ! empty( $admincssmu_custom_css_option['admincssmu_admin_css'] ) ? $admincssmu_custom_css_option['admincssmu_admin_css'] : __( "/* Enter Your Custom Admin CSS Here */\r\n", 'abl_admincssmu_td' ); ?>


>
', $admincssmu_admin_css_content ); // Minify if ( is_multisite() ) { $settings = get_blog_option( get_current_blog_id(), 'admincssmu_custom_css' ); } else { $settings = get_option( 'admincssmu_custom_css' ); } if ( (isset($settings['minfy_css'])) && (boolval($settings['minfy_css'])) ) { $admincssmu_admin_css_content = admincssmu_csstidy_helper($admincssmu_admin_css_content, true); } ?>